aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-06-12 22:31:43 +0000
committerUlrich Drepper <drepper@redhat.com>2003-06-12 22:31:43 +0000
commit2ce1a10fd6a59d6767e0064296e6c0adfa43198a (patch)
tree980d361cbe359fbf1db5a3bfa003faf37c13571c /sysdeps/powerpc
parentad316adfa6d389f27f726e1e377a66e3cdd9748e (diff)
downloadglibc-2ce1a10fd6a59d6767e0064296e6c0adfa43198a.zip
glibc-2ce1a10fd6a59d6767e0064296e6c0adfa43198a.tar.gz
glibc-2ce1a10fd6a59d6767e0064296e6c0adfa43198a.tar.bz2
Update.
* sysdeps/posix/getaddrinfo.c (gaih_inet): Set no_inet6_date alse if only PF_INET address is needed. * nss/getXXbyYY_r.c: Make sure we always return a nonzero value in case of an error.
Diffstat (limited to 'sysdeps/powerpc')
-rw-r--r--sysdeps/powerpc/powerpc64/dl-machine.h22
-rw-r--r--sysdeps/powerpc/powerpc64/sysdep.h18
2 files changed, 31 insertions, 9 deletions
diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h
index d13649c..1336e0d 100644
--- a/sysdeps/powerpc/powerpc64/dl-machine.h
+++ b/sysdeps/powerpc/powerpc64/dl-machine.h
@@ -239,6 +239,18 @@ elf_machine_dynamic (void)
"_dl_start_user:\n" \
" .quad ._dl_start_user, .TOC.@tocbase, 0\n" \
" .previous\n" \
+" .section \".toc\",\"aw\"\n" \
+".LC__dl_starting_up:\n" \
+" .tc _dl_starting_up_internal[TC],_dl_starting_up_internal\n" \
+".LC__rtld_global:\n" \
+" .tc _rtld_global[TC],_rtld_global\n" \
+".LC__dl_argc:\n" \
+" .tc _dl_argc[TC],_dl_argc\n" \
+".LC__dl_argv:\n" \
+" .tc _dl_argv_internal[TC],_dl_argv_internal\n" \
+".LC__dl_fini:\n" \
+" .tc _dl_fini[TC],_dl_fini\n" \
+" .previous\n" \
" .globl ._dl_start_user\n" \
" .type ._dl_start_user,@function\n" \
/* Now, we do our main work of calling initialisation procedures. \
@@ -250,9 +262,9 @@ elf_machine_dynamic (void)
/* the address of _start in r30. */ \
" mr 30,3\n" \
/* &_dl_argc in 29, &_dl_argv in 27, and _dl_loaded in 28. */ \
-" ld 28,_rtld_global@got(2)\n" \
-" ld 29,_dl_argc@got(2)\n" \
-" ld 27,_dl_argv@got(2)\n" \
+" ld 28,.LC__rtld_global@toc(2)\n" \
+" ld 29,.LC__dl_argc@toc(2)\n" \
+" ld 27,.LC__dl_argv@toc(2)\n" \
/* _dl_init (_dl_loaded, _dl_argc, _dl_argv, _dl_argv+_dl_argc+1). */ \
" ld 3,0(28)\n" \
" lwa 4,0(29)\n" \
@@ -279,8 +291,8 @@ elf_machine_dynamic (void)
" addi 6,6,8\n" \
/* Pass a termination function pointer (in this case _dl_fini) in \
r7. */ \
-" ld 7,_dl_fini@got(2)\n" \
-" ld 26,_dl_starting_up@got(2)\n" \
+" ld 7,.LC__dl_fini@toc(2)\n" \
+" ld 26,.LC__dl_starting_up@toc(2)\n" \
/* Pass the stack pointer in r1 (so far so good), pointing to a NULL \
value. This lets our startup code distinguish between a program \
linked statically, which linux will call with argc on top of the \
diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64/sysdep.h
index 0af2b0a..203484c 100644
--- a/sysdeps/powerpc/powerpc64/sysdep.h
+++ b/sysdeps/powerpc/powerpc64/sysdep.h
@@ -34,11 +34,16 @@
.pushsection; \
.section ".data"; \
.align ALIGNARG(2); \
-0: .long 0; \
+__mcount: \
+ .long 0; \
+ .previous; \
+ .section ".toc","aw"; \
+.LC__mcount:; \
+ .tc __mcount[TC],__mcount; \
.previous; \
mflr r0; \
std r0,16(r1); \
- ld r0,0b@got(r2); \
+ ld r0,.LC__mcount@toc(r2); \
bl JUMPTARGET(_mcount);
#else /* SYSV_ELF_PROFILING */
#define CALL_MCOUNT \
@@ -52,11 +57,16 @@
.pushsection; \
.section ".data"; \
.align ALIGNARG(2); \
-0: .long 0; \
+__mcount: \
+ .long 0; \
+ .previous; \
+ .section ".toc","aw"; \
+.LC__mcount:; \
+ .tc __mcount[TC],__mcount; \
.previous; \
mflr r0; \
std r0,16(r1); \
- ld r0,0b@got(r2); \
+ ld r0,.LC__mcount@toc(r2); \
bl JUMPTARGET(_mcount);
#else /* SYSV_ELF_PROFILING */
#define CALL_MCOUNT \