From a1303dc8dc57dbcd4605992dc177d11ae4d45aab Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 6 Apr 2000 05:04:50 +0000 Subject: Update. 2000-04-05 Cristian Gafton * ctype/ctype.h (__isctype_l): Define even if not __OPTIMIZE__ because it is used in generic code. * wctype/wctrans.c: Define __ctype32_toupper and __ctype32_tolower. * wcsmbs/wcwidth.h: Declare __ctype32_b. * intl/gettext.c: Include . * intl/ngettext.c: Likewise. 2000-04-05 Jakub Jelinek * resolv/inet_ntop.c (inet_ntop4, inet_ntop6, inet_ntop): Use socklen_t type for size. * sysdeps/sparc/sparc32/dl-machine.h (RTLD_START): Rewrite for new init function interface. * sysdeps/sparc/sparc64/dl-machine.h (RTLD_START): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/setjmp.h: Don't include sys/ucontext.h. (__jmp_buf): Declare the whole type structure here, don't use ucontext. * iconv/skeleton.c (put16u): Fix typo. Reported by Bruno Haible . --- sysdeps/sparc/sparc32/dl-machine.h | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) (limited to 'sysdeps/sparc/sparc32/dl-machine.h') diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h index 0b98002593..a160f7d41f 100644 --- a/sysdeps/sparc/sparc32/dl-machine.h +++ b/sysdeps/sparc/sparc32/dl-machine.h @@ -234,12 +234,11 @@ _dl_start_user: ld [%i0], %i0 tst %i0 beq 3f - nop + ld [%sp+22*4], %i5 /* load argc */ /* Find out how far to shift. */ - ld [%sp+22*4], %i1 /* load argc */ - sub %i1, %i0, %i1 + sub %i5, %i0, %i5 sll %i0, 2, %i2 - st %i1, [%sp+22*4] + st %i5, [%sp+22*4] add %sp, 23*4, %i1 add %i1, %i2, %i2 /* Copy down argv */ @@ -265,24 +264,17 @@ _dl_start_user: st %i4, [%i1+4] bne 23b add %i1, 8, %i1 - /* Load searchlist of the main object to pass to _dl_init_next. */ -3: sethi %hi(_dl_main_searchlist), %g1 - or %g1, %lo(_dl_main_searchlist), %g1 - ld [%l7+%g1], %l1 - ld [%l1], %l1 - /* Call _dl_init_next to return the address of an initializer to run. */ -4: call _dl_init_next - mov %l1, %o0 - tst %o0 - beq 5f - nop - jmpl %o0, %o7 - sub %o7, 28, %o7 - /* Clear the startup flag. */ -5: sethi %hi(_dl_starting_up), %g1 - or %g1, %lo(_dl_starting_up), %g1 - ld [%l7+%g1], %g1 - st %g0, [%g1] + /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp. */ +3: sethi %hi(_dl_loaded), %o0 + add %sp, 23*4, %o2 + orcc %o0, %lo(_dl_loaded), %o0 + sll %i5, 2, %o3 + ld [%l7+%o0], %o0 + add %o3, 4, %o3 + mov %i5, %o1 + add %o2, %o3, %o3 + call _dl_init + ld [%o0], %o0 /* Pass our finalizer function to the user in %g1. */ sethi %hi(_dl_fini), %g1 or %g1, %lo(_dl_fini), %g1 -- cgit 1.4.1