1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00
2003-01-26  Andreas Schwab  <schwab@suse.de>

	* sysdeps/wordsize-32/divdi3.c: Export the functions only as
	compatibility symbols.  Remove INTDEF for __divdi3.
	* sysdeps/wordsize-32/lldiv.c: Don't use __divdi3_internal.
	* sysdeps/powerpc/powerpc32/divdi3.c: Remove.
	* sysdeps/powerpc/powerpc32/Makefile (CPPFLAGS-divdi3.c): Don't
	define.
	* sysdeps/powerpc/powerpc32/Dist: Remove divdi3.c.

2003-01-24  Jakub Jelinek  <jakub@redhat.com>

	* elf/tls-macros.h: Add SPARC 32-bit definitions.
	* sysdeps/sparc/sparc32/elf/configure.in: Add TLS check.
	* sysdeps/sparc/sparc32/dl-machine.h: Add dl_machine_h guards
	for the first half of the header.  Include tls.h.
	(elf_machine_type_class): Return ELF_RTYPE_CLASS_PLT for TLS
	relocs too.
	(elf_machine_rela): Handle TLS relocs.
	* sysdeps/sparc/dl-tls.h: New file.

	* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Add cancellation
	support.

	* sysdeps/sparc/sparc32/sparcv9/hp-timing.h: Use %g6 instead of %g7.
	* sysdeps/sparc/sparc32/memchr.S: Likewise.
	* sysdeps/sparc/sparc32/memcpy.S: Likewise.
	* sysdeps/sparc/sparc32/strcat.S: Likewise.
	* sysdeps/sparc/sparc32/strchr.S: Likewise.
	* sysdeps/sparc/sparc32/strcmp.S: Likewise.
	* sysdeps/sparc/sparc32/strcpy.S: Likewise.
	* sysdeps/sparc/sparc64/sparcv9b/memcpy.S: Likewise.
	* sysdeps/sparc/sparc64/hp-timing.h: Likewise.
	* sysdeps/sparc/sparc64/memcpy.S: Likewise.
	* sysdeps/sparc/sparc64/stpcpy.S: Likewise.
	* sysdeps/sparc/sparc64/stpncpy.S: Likewise.
	* sysdeps/sparc/sparc64/strcat.S: Likewise.
	* sysdeps/sparc/sparc64/strchr.S: Likewise.
	* sysdeps/sparc/sparc64/strcmp.S: Likewise.
	* sysdeps/sparc/sparc64/strcpy.S: Likewise.
	* sysdeps/sparc/sparc64/strncmp.S: Likewise.
	* sysdeps/sparc/sparc64/strncpy.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.

2003-01-24  Andreas Schwab  <schwab@suse.de>

	* elf/dl-close.c (_dl_close): Don't relocate DT_FINI_ARRAY
	elements, and process them backwards.
	* elf/Makefile ($(objpfx)tst-array4): New target.
	($(objpfx)tst-array4.out): Likewise.
	(tests) [$(have-initfini-array) = yes]: Add tst-array4.
	* elf/tst-array4.c: New file.
	* elf/tst-array4.exp: Likewise.

2003-01-24  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c: New file.

2003-01-27  Guido Guenther  <agx@sigxcpu.org>

	* sysdeps/unix/sysv/linux/mips/sysdep.h (SYSCALL_ERROR_LABEL): Define.
	* sysdeps/unix/sysv/linux/mips/pread.c: Add support for
	cancellation handling and handle both __NR_pread64 and __NR_pread.
	* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite.c: Add support for
	cancellation handling and handle both __NR_pwrite64 and __NR_pwrite.
	* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
	* sysdeps/unix/mips/sysdep.S: Don't set errno in the _LIBC_REENTRANT
	case, use register names consistently.

2003-01-27  Wolfram Gloger  <wg@malloc.de>

	* malloc/hooks.c (mem2chunk_check): Check alignment of mem
	pointer, not of the computed chunk.  Bug report from Carlos
	O'Donell <carlos@baldric.uwo.ca>.
This commit is contained in:
Ulrich Drepper
2003-01-27 21:03:22 +00:00
parent e4e9446ba3
commit 62f29da7cb
49 changed files with 893 additions and 385 deletions

View File

@ -298,6 +298,75 @@ register void *__gp __asm__("$29");
: "=r" (__l) : : "loc0", __TLS_CALL_CLOBBERS); \
__l; })
#elif defined __sparc__ && !defined __arch64__
# define TLS_LE(x) \
({ int *__l; \
asm ("sethi %%tle_hix22(" #x "), %0" : "=r" (__l)); \
asm ("xor %1, %%tle_lox10(" #x "), %0" : "=r" (__l) : "r" (__l)); \
asm ("add %%g7, %1, %0" : "=r" (__l) : "r" (__l)); \
__l; })
# ifdef __PIC__
# define TLS_LOAD_PIC \
({ register long pc __asm__ ("%o7"); \
long got; \
asm ("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t" \
"call .+8\n\t" \
"add %1, %%lo(_GLOBAL_OFFSET_TABLE_+4), %1\n\t" \
"add %1, %0, %1\n\t" \
: "=r" (pc), "=r" (got)); \
got; })
# else
# define TLS_LOAD_PIC \
({ long got; \
asm (".hidden _GLOBAL_OFFSET_TABLE_\n\t" \
"sethi %%hi(_GLOBAL_OFFSET_TABLE_), %0\n\t" \
"or %0, %%lo(_GLOBAL_OFFSET_TABLE_), %0" \
: "=r" (got)); \
got; })
# endif
# define TLS_IE(x) \
({ int *__l; \
asm ("sethi %%tie_hi22(" #x "), %0" : "=r" (__l)); \
asm ("add %1, %%tie_lo10(" #x "), %0" : "=r" (__l) : "r" (__l)); \
asm ("ld [%1 + %2], %0, %%tie_ld(" #x ")" \
: "=r" (__l) : "r" (TLS_LOAD_PIC), "r" (__l)); \
asm ("add %%g7, %1, %0, %%tie_add(" #x ")" : "=r" (__l) : "r" (__l)); \
__l; })
# define TLS_LD(x) \
({ int *__l; register void *__o0 asm ("%o0"); \
long __o; \
asm ("sethi %%tldm_hi22(" #x "), %0" : "=r" (__l)); \
asm ("add %1, %%tldm_lo10(" #x "), %0" : "=r" (__l) : "r" (__l)); \
asm ("add %1, %2, %0, %%tldm_add(" #x ")" \
: "=r" (__o0) : "r" (TLS_LOAD_PIC), "r" (__l)); \
asm ("call __tls_get_addr, %%tgd_call(" #x ")\n\t" \
" nop" \
: "=r" (__o0) : "0" (__o0) \
: "g1", "g2", "g3", "g4", "g5", "g6", "o1", "o2", "o3", "o4", \
"o5", "o7"); \
asm ("sethi %%tldo_hix22(" #x "), %0" : "=r" (__o)); \
asm ("xor %1, %%tldo_lox10(" #x "), %0" : "=r" (__o) : "r" (__o)); \
asm ("add %1, %2, %0, %%tldo_add(" #x ")" : "=r" (__l) \
: "r" (__o0), "r" (__o)); \
__l; })
# define TLS_GD(x) \
({ int *__l; register void *__o0 asm ("%o0"); \
asm ("sethi %%tgd_hi22(" #x "), %0" : "=r" (__l)); \
asm ("add %1, %%tgd_lo10(" #x "), %0" : "=r" (__l) : "r" (__l)); \
asm ("add %1, %2, %0, %%tgd_add(" #x ")" \
: "=r" (__o0) : "r" (TLS_LOAD_PIC), "r" (__l)); \
asm ("call __tls_get_addr, %%tgd_call(" #x ")\n\t" \
" nop" \
: "=r" (__o0) : "0" (__o0) \
: "g1", "g2", "g3", "g4", "g5", "g6", "o1", "o2", "o3", "o4", \
"o5", "o7"); \
__o0; })
#else
# error "No support for this architecture so far."
#endif