diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-03-29 17:03:23 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-03-29 17:03:23 +0000 |
commit | cb34385453717065a4bbfd9fae971b76c186df1e (patch) | |
tree | e06251493cba024dca02e8dfb2aaebe888b296d5 /elf | |
parent | a44d23932dea41a56c4345394a973767af45cf02 (diff) | |
download | glibc-cb34385453717065a4bbfd9fae971b76c186df1e.tar.gz glibc-cb34385453717065a4bbfd9fae971b76c186df1e.tar.xz glibc-cb34385453717065a4bbfd9fae971b76c186df1e.zip |
Update.
1998-03-29 16:50 Ulrich Drepper <drepper@cygnus.com> * config.make.in (ldd-rewrite-script): New variable. * configure.in: Substitute ldd-rewrite-script. * elf/Makefile: Rewrite rules to generate ldd script. * elf/ldd.bash.in: Allow handling of non-ELF binaries. * elf/ldd.sh.in: Likewise. * sysdeps/unix/sysv/linux/Makefile: Remove rule to install lddlibc4. * sysdeps/unix/sysv/linux/configure.in: Define ldd_rewrite_script to point to sed script for libc4 handling insertion for ix86, m68, SPARC. * sysdeps/unix/sysv/linux/i386/Makefile: Add rule to install lddlibc4. 1998-03-26 15:20 Zack Weinberg <zack@rabi.phys.columbia.edu> * inet/rcmd.c (iruserok): Remain setuid to the local user while .rhosts is actually read, to make .rhosts-over-NFS work (PR libc/524). Use iruserfopen() for security checks on both hosts.equiv and .rhosts. General cleanup. (iruserfopen): New function, performs careful checking on hosts.equiv/.rhosts files. Disallows all the old forbidden stuff plus hard links to files. 1998-03-29 09:26 Ulrich Drepper <drepper@cygnus.com> * setjmp/tst-setjmp.c: Don't test __setjmp, test _setjmp instead. 1998-03-29 02:02 H.J. Lu <hjl@gnu.org> * sysdeps/i386/i486/bits/string.h: Fix typos. * nss/nsswitch.c (__nss_lookup): Fix the bogus checking for "adjusted for next function". 1998-03-28 00:13 H.J. Lu <hjl@gnu.org> * sysdeps/unix/sysv/linux/alpha/readdir.c (__readdir64): New strong alias. * sysdeps/unix/sysv/linux/alpha/syscalls.list (socket): Added. * libc.map (__ieee_get_fp_control, __ieee_set_fp_control): Added. Used by libm.so on alpha. 1998-03-28 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * intl/bindtextdom.c [_LIBC]: Define strdup only if not yet defined. 1998-03-27 07:29 H.J. Lu <hjl@gnu.org> * Makerules (object-suffixes-for-rules): Add .oS only for building shared library. Add ranlib rule for nonshared library. (rmobjs): Fix typo. * Makeconfig (libtype.oS, CFLAGS-.oS, CPPFLAGS-.oS): Moved into for shared library only. (CPPFLAGS-.oS): Add -DPIC. (libtypes): Use $(object-suffixes-for-rules) instead of $(object-suffixes). 1998-03-28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/Makefile (inhibit-stdio_lim): Compile and install lddlibc4. 1998-03-28 09:13 Zack Weinberg <zack@rabi.phys.columbia.edu> * iconvdata/gap.pl: Gobble rest of line with a scalar, not a hash. * iconvdata/gaptab.pl: Likewise.
Diffstat (limited to 'elf')
-rw-r--r-- | elf/Makefile | 35 | ||||
-rw-r--r-- | elf/ldd.bash.in | 15 | ||||
-rw-r--r-- | elf/ldd.sh.in | 8 |
3 files changed, 44 insertions, 14 deletions
diff --git a/elf/Makefile b/elf/Makefile index 5e221ec352..33f60c52f1 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -164,23 +164,34 @@ $(inst_slibdir)/$(rtld-installed-name): \ .PHONY: ldso_install ldso_install: $(inst_slibdir)/$(rtld-installed-name) + +sh-ldd-rewrite = -e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \ + -e 's%@VERSION@%$(version)%g' +bash-ldd-rewrite = $(sh-ldd-rewrite) -e 's%@BASH@%$(BASH)%g' \ + -e 's%@TEXTDOMAINDIR@%$(localedir)%g' + ifneq ($(have-bash2),yes) -$(objpfx)ldd: ldd.sh.in $(common-objpfx)version.mk \ - $(common-objpfx)soversions.mk $(common-objpfx)config.make - sed -e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \ - -e 's%@VERSION@%$(version)%g' < $< > $@.new - chmod 555 $@.new - mv -f $@.new $@ +ldd-shell = bash +else +ldd-shell = sh +endif + +ifeq ($(ldd-rewrite-script),no) +define gen-ldd +sed $($(ldd-shell)-ldd-rewrite) < $< > $@.new +endef else -$(objpfx)ldd: ldd.bash.in $(common-objpfx)version.mk \ +define gen-ldd +sed $($(ldd-shell)-ldd-rewrite) < $< | sed -f $(ldd-rewrite-script) > $@.new +endef +endif + +$(objpfx)ldd: ldd.$(ldd-shell).in $(common-objpfx)version.mk \ $(common-objpfx)soversions.mk $(common-objpfx)config.make - sed -e 's%@BASH@%$(BASH)%g' \ - -e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \ - -e 's%@VERSION@%$(version)%g' \ - -e 's%@TEXTDOMAINDIR@%$(localedir)%g' < $< > $@.new + $(gen-ldd) chmod 555 $@.new mv -f $@.new $@ -endif + ifeq ($(build-shared),yes) $(objpfx)sprof: $(objpfx)libdl.so$(libdl.so-version) diff --git a/elf/ldd.bash.in b/elf/ldd.bash.in index 54dc837d3e..5d4bb3cccc 100644 --- a/elf/ldd.bash.in +++ b/elf/ldd.bash.in @@ -87,6 +87,12 @@ Report bugs using the \`glibcbug' script to <bugs@gnu.org>." esac done +nonelf () +{ + # Maybe extra code for non-ELF binaries. + return 1; +} + add_env="LD_TRACE_LOADED_OBJECTS=1 LD_WARN=$warn LD_BIND_NOW=$bind_now" add_env="$add_env LD_VERBOSE=$verbose" case $# in @@ -115,6 +121,8 @@ case $# in eval $add_env exec '"$file"' || exit 1 ;; 1) + # This can be a non-ELF binary or no binary at all. + nonelf $file || echo $" not a dynamic executable" exit 1 ;; @@ -154,8 +162,11 @@ warning: you do not have execution permission for" "\`$file'" eval $add_env '"$file"' || result=1 ;; 1) - echo $" not a dynamic executable" - result=1 + # This can be a non-ELF binary or no binary at all. + nonelf $file || { + echo $" not a dynamic executable" + result=1 + } ;; 2) eval $add_env ${RTLD} '"$file"' || result=1 diff --git a/elf/ldd.sh.in b/elf/ldd.sh.in index 884472f654..a82deb5cb7 100644 --- a/elf/ldd.sh.in +++ b/elf/ldd.sh.in @@ -83,6 +83,12 @@ Try \`ldd --help' for more information." esac done +nonelf () +{ + # Maybe extra code for non-ELF binaries. + return 1; +} + add_env="LD_TRACE_LOADED_OBJECTS=1 LD_WARN=$warn LD_BIND_NOW=$bind_now" add_env="$add_env LD_VERBOSE=$verbose" case $# in @@ -113,6 +119,7 @@ Try \`ldd --help' for more information." eval $add_env exec '"$file"' || exit 1 ;; 1) + nonelf $file || echo ' not a dynamic executable' exit 1 ;; @@ -155,6 +162,7 @@ ldd: warning: you do not have execution permission for \`$file'" eval $add_env '"$file"' || result=1 ;; 1) + nonelf $file || echo ' not a dynamic executable' result=1 ;; |