diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-11-04 17:39:39 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-11-04 17:39:39 +0000 |
commit | 4243cbea6d30ce32b58abd8f1103156f8df617fa (patch) | |
tree | 434ef397cb91424e48b123ca704e8176795f2161 /sysdeps/alpha | |
parent | 2004e7fb76bd6806253436d63ab3bda7e24c9cc1 (diff) | |
download | glibc-4243cbea6d30ce32b58abd8f1103156f8df617fa.tar.gz glibc-4243cbea6d30ce32b58abd8f1103156f8df617fa.tar.xz glibc-4243cbea6d30ce32b58abd8f1103156f8df617fa.zip |
Don't use INTDEF/INTUSE with _dl_argv (bug 14132).
Continuing the removal of the obsolete INTDEF / INTUSE mechanism, this patch replaces its use for _dl_argv with rtld_hidden_data_def and rtld_hidden_proto. Some places in .S files that previously used _dl_argv_internal or INTUSE(_dl_argv) now use __GI__dl_argv directly (there are plenty of existing examples of such direct use of __GI_*). A single place in rtld.c previously used _dl_argv without INTUSE, apparently accidentally, while the rtld_hidden_proto mechanism avoids such accidential omissions. As a consequence, this patch *does* change the contents of stripped ld.so. However, the installed stripped shared libraries are identical to those you get if instead of this patch you change that single _dl_argv use to use INTUSE, without any other changes. Tested for x86_64 (testsuite as well as comparison of installed stripped shared libraries as described above). [BZ #14132] * sysdeps/generic/ldsodefs.h (_dl_argv): Use rtld_hidden_proto. [IS_IN_rtld] (_dl_argv_internal): Do not declare. (rtld_progname): Make macro definition unconditional. * elf/rtld.c (_dl_argv): Use rtld_hidden_data_def instead of INTDEF. (dlmopen_doit): Do not use INTUSE with _dl_argv. (dl_main): Likewise. * elf/dl-sysdep.c (_dl_sysdep_start): Likewise. * sysdeps/alpha/dl-machine.h (RTLD_START): Use __GI__dl_argv instead of _dl_argv_internal. * sysdeps/powerpc/powerpc32/dl-start.S (_dl_start_user): Use __GI__dl_argv instead of INTUSE(_dl_argv). * sysdeps/powerpc/powerpc64/dl-machine.h (RTLD_START): Use __GI__dl_argv instead of _dl_argv_internal.
Diffstat (limited to 'sysdeps/alpha')
-rw-r--r-- | sysdeps/alpha/dl-machine.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h index e6537dd6e5..64385ad68a 100644 --- a/sysdeps/alpha/dl-machine.h +++ b/sysdeps/alpha/dl-machine.h @@ -184,16 +184,16 @@ $fixup_stack: \n\ /* Adjust the stack pointer to skip _dl_skip_args words.\n\ This involves copying everything down, since the \n\ stack pointer must always be 16-byte aligned. */ \n\ - ldah $7, _dl_argv_internal($gp) !gprelhigh \n\ + ldah $7, __GI__dl_argv($gp) !gprelhigh \n\ ldq $2, 0($sp) \n\ - ldq $5, _dl_argv_internal($7) !gprellow \n\ + ldq $5, __GI__dl_argv($7) !gprellow \n\ subq $31, $1, $6 \n\ subq $2, $1, $2 \n\ s8addq $6, $5, $5 \n\ mov $sp, $4 \n\ s8addq $1, $sp, $3 \n\ stq $2, 0($sp) \n\ - stq $5, _dl_argv_internal($7) !gprellow \n\ + stq $5, __GI__dl_argv($7) !gprellow \n\ /* Copy down argv. */ \n\ 0: ldq $5, 8($3) \n\ addq $4, 8, $4 \n\ |