mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
Update.
2003-02-07 Jim Meyering <jim@meyering.net> * io/ftw.c: Add autoconf-recommended block of alloca-related code. Include autoconf-recommended block of dirent/NAMELEN-related definitions and includes. Use NAMELEN throughout, rather than _D_EXACT_NAMLEN. [_LIBC]: Define NAMELEN to _D_EXACT_NAMLEN. [!_LIBC] (__getcwd): Define to xgetcwd and declare xgetcwd. (stpcpy): Declare, if necessary. (mempcpy): Define, if necessary. [!_LIBC] (__stpcpy, __mempcpy): Define. [!_LIBC] (LXSTAT, XSTAT): Define. (lstat) [!LIBC && !LSTAT_FOLLOWS_SLASHED_SYMLINK]: Define to rpl_lstat. (find_object): Don't use c99-style struct initializer. Tweak wording in a couple comments.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/* Special .init and .fini section support for SH. Linuxthread version.
|
||||
Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it
|
||||
@@ -77,12 +77,6 @@ _init:\n\
|
||||
.long __gmon_start__@PLT\n\
|
||||
.L24:\n\
|
||||
.long __pthread_initialize_minimal@PLT\n\
|
||||
.data\n\
|
||||
.global __fpscr_values\n\
|
||||
__fpscr_values:\n\
|
||||
.long 0\n\
|
||||
.long 0x80000\n\
|
||||
.previous\n\
|
||||
1:\n\
|
||||
ALIGN\n\
|
||||
END_INIT\n\
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
add _IMP16,r15; \
|
||||
lds.l @r15+,pr; \
|
||||
DO_CALL(syscall_name, args); \
|
||||
SYSCALL_INST_PAD; \
|
||||
sts.l pr,@-r15; \
|
||||
mov.l r0,@-r15; \
|
||||
CDISABLE; \
|
||||
@@ -106,6 +107,7 @@
|
||||
.align 2; \
|
||||
1: .long __local_enable_asynccancel - 0b; \
|
||||
2:
|
||||
|
||||
# define CDISABLE \
|
||||
mov.l 1f,r0; \
|
||||
bsrf r0; \
|
||||
@@ -129,6 +131,7 @@ extern int __local_multiple_threads attribute_hidden;
|
||||
# if !defined PIC
|
||||
# define SINGLE_THREAD_P \
|
||||
mov.l 1f,r0; \
|
||||
mov.l @r0,r0; \
|
||||
bra 2f; \
|
||||
tst r0,r0; \
|
||||
.align 2; \
|
||||
@@ -136,7 +139,15 @@ extern int __local_multiple_threads attribute_hidden;
|
||||
2:
|
||||
# elif defined FLOATING_STACKS && USE___THREAD
|
||||
# define SINGLE_THREAD_P \
|
||||
mov.l @(MULTIPLE_THREADS_OFFSET,gbr),r0; tst r0,r0
|
||||
stc gbr,r0; \
|
||||
mov.w 0f,r1; \
|
||||
sub r1,r0; \
|
||||
mov.l @(MULTIPLE_THREADS_OFFSET,r0),r0; \
|
||||
bra 1f; \
|
||||
tst r0,r0; \
|
||||
0: .word TLS_PRE_TCB_SIZE; \
|
||||
1:
|
||||
|
||||
# else
|
||||
# define SINGLE_THREAD_P \
|
||||
mov r12,r2; \
|
||||
|
||||
@@ -26,8 +26,14 @@
|
||||
and the process ID of the new process to the old process. */
|
||||
|
||||
ENTRY (__vfork)
|
||||
SINGLE_THREAD_P
|
||||
bf .Lhidden_fork
|
||||
#ifdef SHARED
|
||||
mov.l .Lpthread_func, r0
|
||||
mov.l @(r0,r12), r0
|
||||
#else
|
||||
mov.l .Lpthread_fork, r0
|
||||
#endif
|
||||
tst r0, r0
|
||||
bf .Lhidden_fork
|
||||
|
||||
mov.w .L1, r3
|
||||
trapa #0x10
|
||||
@@ -42,6 +48,14 @@ ENTRY (__vfork)
|
||||
rts
|
||||
nop
|
||||
.L1: .word __NR_vfork
|
||||
.align 2
|
||||
#ifdef SHARED
|
||||
.Lpthread_func:
|
||||
.long __libc_pthread_functions@GOTOFF
|
||||
#else
|
||||
.Lpthread_fork:
|
||||
.long __pthread_fork
|
||||
#endif
|
||||
|
||||
.Lhidden_fork:
|
||||
mov.l .L2, r1
|
||||
|
||||
Reference in New Issue
Block a user