diff options
author | Ulrich Drepper <drepper@redhat.com> | 1996-11-02 01:28:01 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1996-11-02 01:28:01 +0000 |
commit | f0e449593777b15ec5721f7276a1574e0906e0fc (patch) | |
tree | f3bfa03c5395db67ec13eefee45270cacd2dfffc /elf | |
parent | 78abf56371e179ccdafeb311a3d15e57505dc7e2 (diff) | |
download | glibc-f0e449593777b15ec5721f7276a1574e0906e0fc.tar.gz |
update from main archive 961101
Sat Nov 2 01:48:47 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/errnos.h: Move declaration of errno
and __errno_location to correct position.
Thu Oct 31 22:51:25 1996 Ulrich Drepper <drepper@cygnus.com>
* Makefile (distribute): Add rellns-sh.
* rellns-sh: New file.
* Makerules (make-link): Use rellns-sh.
* time/Makefile ($(installed-localtime-file)): Likewise.
Thu Oct 31 11:33:01 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile ($objpfx)ldd) Substitute $(version) for @VERSION@.
(distribute): Add ldd.bash.in.
* elf/ldd.sh.in: Process --help and --version parameter.
Correct comments.
* elf/ldd.bash.in: New file.
* stdlib/stdlib.h: Add prototype for clearenv.
* sysdeps/generic/setenv.c: Add implementation of clearenv.
(setenv): Handle __environ == NULL correctly.
* sysdeps/stub/setenv.c: Add stub definition for unsetenv and
clearenv.
* sysdeps/generic/putenv.c: Correct layout to fit in libit.
* sysdeps/generic/setenv.c: Likewise.
* stdlib/strtol.h: Likewise.
* time/sys/time.h: Define __need_timeval and include <timebits.h>.
Remove definition of struct timeval.
* sysdeps/stub/timebits.h [__need_timeval]: Define struct timeval
using `time_t' for members.
* sysdeps/unix/sysv/linux/timebits.h [__need_timeval]: Likewise.
* sysdeps/unix/sysv/linux/alpha/timebits.h: New file. Same
as old Linux specific version.
* string/argz.h: Use __const in definitions.
* inet/herrno.c: Don't define __h_errno, only h_errno otherwise the
__syscall_error defined.
TRACE_MODE.
Craig Metz.
arithmetic.
buggy and more competent people work on a usable version which is
distributed separately.
`finitel'.
better message if it is not available.
whether read failed.
PSEUDO_END macro.
Especially on the currently supported ELF systems the nlist
function comes with the libelf.
"$(i18ndir)/charmaps".
net/if_arp.h, and net/route.h.
version.
EXTERN_PARSER is defined.
set errno (to ENOMEM).
nothing is found. This guarantees all subsequent calls behave
the same.
the file even if no `era's are specified.
pointers.
_llseek to _llseek (not llseek).
Initialize `result'.
end_alt_digits.
__libc_force_cancel_wrapper when compiling reentrant version.
a weak alias.
make tcdrain a weak alias.
lseek, open, read, and write to have __libc_ prefix and make old
names a weak alias.
to fpathconf.
__libc_setlocale_lock.
ld.so.preload. Suggested by David Engel <david@elo.ods.com>.
on the same device as the password file.
variable.
to lock when passing it to __libc_lock_init macro.
sysdep.h to the top outside of #ifndef PIC. Don't include errnos.h.
Use the ENTRY macro.
9th field.
and sys/vt.h.
`_dl_start' so that linking fails if this file should ever be used
in ld.so.
RMS' last standard revision.
(sysdep_headers): Remove sys/sysinfo.h.
match files in the sysdeps hierachy (welcome back,
sys/syscall.h!).
categories which succeeded to load after a wrong or missing data
file was observed.
_IO_flockfile and _IO_funlockfile resp.
all three versions of the math function.
non-trivial inline functions.
rpath-link so that running the check finds the new library.
daylight saving, timezone by time zone.
syscall_error handler for reentrant libc.
warning.
_IO_getc_unlocked.
in version information banner.
clearerr_u, feof_u, ferror_u, fputc_u, getc_u, getchar_u,
iofflush_u, putc_u, putchar_u, ioflockfile.
using __errno_location function.
syscall_error handler for reentrant libc.
definition of function itself.
funlockfile.
_malloc_loc.
but _POSIX_THREAD_DESTRUCTOR_ITERATIONS.
Add macro `errno' to get thread specific variable.
__errno_location function.
* malloc/free.c (free): __lib_malloc_lock -> __libc_malloc_lock.
case, so don't prepend uppercase `ISO' for only numeric arg.
call to __libc_lock_lock.
sys/sysmacros.h. Reported by Curtiss <1CMC3466@IBM.MTSAC.EDU>.
stamp file.
generating stamp file.
implementation.
`decimal' char is 0.
noexpr to "^[nN]"; this conforms to POSIX.2.
conform to POSIX.2.
mon_grouping, int_frac_digits, frac_digits, p_cs_precedes,
p_sep_by_space, n_cs_precedes, n_sep_by_space, p_sign_posn, and
n_sign_posn to CHAR_MAX, as required by the POSIX Standard.
variable.
this changes the global state for `localtime' and `gmtime'. Use
`__localtime_r'/`__gmtime_r' instead.
state.
getutid_r() fails with ESRCH. Reported by Miquel van Smoorenburg.
for "Jensen" so _bus_base() returns 0 on that platform. Use
_bus_base_sparse() to determine base address of sparse memory.
are now in $P/stdio-common.pot.
script at run time, not configure time.
warning.
sorted.
inet_net_pton, inet_net.
value of sprintf.
functions instead of BSD `b*' functions.
$(objpfx)/mach-syscalls.mk.
<marcus@sysc.pdx.edu> for the patch.)
before returning. Reported by Miles Bader.
__BEGIN_DECLS/__END_DECLS up so ntohl() et al are bracketed as
well.
This is not a gross hack, after all---for compatibility,
getlogin() really should check fd 0 only and not try to base its
operation on the controlling tty.
change utmp_data from static to auto.
_IO_file_flags. It's the same as _flags.
call is only a stub.
Mikasa.
pointer as __const.
segfault when called with an N that is not a multiple of four and
src[N-1]=='\0'.
try again with SOCK_STREAM (the Linux syslogd uses a socket of the
latter type).
terminator as a record-delimiter. If __send(LogFile) fails,
`getutline_r'.
`setutline_r'.
of `vscanf'.
name a weak alias.
typo.
initialized in init-first.c. Some actions in the libc work
different when libc is static or dynamic.
`__libc_is_static' variable to determine whether call to
`personality' and `setfpucw' is necessary. When done set variable
to +-1 depending on library type.
`__libc_enable_secure' instead of calling `get{,e}{g,u}id()' to
determine whether it's a SET[UG]ID program.
(open_file): New function, contents mostly from __open.
LD_TRACE_LOADED_OBJECTS is set.
n)' equivalent to `strncpy (d, s, n), d += strnlen (d, n)'.
from the USA any software that even makes it easy to drop in an
encryption module of foreign origin.
old code would have failed on a big-endian 64-bit architecture).
Remove gratitous parentheses around return expressions.
not int.
ustatbits.h.
alphabetically correct place. Mention ustat.
record always gets appended at end of file (wtmp is a log file,
after all). Set ut_type to DEAD_PROCESS if name is empty.
ut_line matches and type is either USER_PROCESS or LOGIN_PROCESS.
avoid duplicate declarations.
word extends right up to rmargin.
point_col ssize_t.
to fiddle __put_limit in conjunction with __linebuf_active.
of, not the ones he is _not_ a member of.
instead of a local function. The latter are difficult to debug
and slow to execute on certain platforms.
place of sizeof (dev). The size of a literal string includes the
NUL byte.
entry. Return 1 on error, not -1.
shift amount for Jensen must be 5 not 4.
for send and connect syscalls.
signed<->unsigned warnings.
variable name, so new a libc with new requirements won't fail to
notice an insufficient Linux version.
PENDIN, NOFLSH): Undefine these at start if they are already
defined to avoid collision with termbits.h.
error is 0. The "placeholder" entries recently added to
memcpy for possibly overlapping strings.
instead of weak_symbol (NAME) after the defn.
necessary using current implementation of memcpy, but...).
Move struct timespec defn outside [_TIME_H] so it can be got with
#define __need_timespec.
__connect instead of connect to avoid name-space collisions (e.g.,
with psgetty).
function ctype_is_charmap to ctype_is_charconv.
charconv.
charconv.
lables according to this.
warnings.
actually do something.
sysdeps/unix/sysv/linux/m68k/init-first.h,
sysdeps/unix/sysv/linux/i386/init-first.h: New files.
init-first.h to make abstract machine dependent parts of
typo/extraneous whitespace.
check-for-pending signals code, release _hurd_siglock before
jumping to deliver_pending.
size_t.
soname of a loaded object, use that object.
if libnss_dns.so module for DNS name lookup in NSS service.
guessing to not assume p_vaddr of first load cmd is zero.
only for ?s, not for *s. Fix from Chet Ramey.
about currently used character set.
name `MAX_IOVEC'. Instead use standard name `UIO_MAXIOV'.
(xdrrec_getlong), sunrpc/xdr_mem.c (xdrmem_getlong): Make sure
appropriate sign-extension is performed on machines with
sizeof(long) > 4.
sizeof(int)<sizeof(long), we need to go through a temporary
variable.
in efect.
volatile to avoid "might get clobbered by longjmp" warning.
unless _LOOSE_KERNEL_NAMES is in effect (which, with high
probability is a sure loser).
sysdeps/unix/sysv/linux/alpha/brk.S,
sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
sysdeps/unix/sysv/linux/alpha/llseek.S,
sysdeps/unix/sysv/linux/alpha/sigsuspend.S,
sysdeps/unix/sysv/linux/alpha/syscall.S: Rename syscall_error to
__syscall_error to avoid intruding application name space.
sysdeps/unix/geteuid.S, sysdeps/unix/getppid.S,
sysdeps/unix/execve.S, sysdeps/unix/fork.S,
sysdeps/unix/syscall.S: Terminate syscall with PSEUDO_END.
(PSEUDO_END): Rename END() to PSEUDO_END().
to PSEUDO_END to improve branch-prediction. Include .frame
directive to make syscalls debugabble.
sysdeps/unix/sysv/linux/alpha/brk.S: Use ldiq instead of ldi since
latter is illegal under DEC Unix.
as well.
EWOULDBLOCK -> EAGAIN mapping was unnecessary since
EWOULDBLOCK==EAGAIN under DEC Unix and Linux/Alpha).
address register in the .frame directive.
avoid RPC definitions of INADDR_LOOPBACK and/or MAXHOSTNAMELEN.
compilable under c++.
as unsigned long, not as int (to avoid incorrect int->long
promotion).
Diffstat (limited to 'elf')
-rw-r--r-- | elf/Makefile | 5 | ||||
-rw-r--r-- | elf/ldd.bash.in | 66 | ||||
-rw-r--r-- | elf/ldd.sh.in | 30 |
3 files changed, 94 insertions, 7 deletions
diff --git a/elf/Makefile b/elf/Makefile index cbb9c11f42..dcca90411f 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -35,7 +35,7 @@ elide-routines.so = $(dl-routines) dl-support enbl-secure # interpreter and operating independent of libc. rtld-routines := rtld $(dl-routines) dl-sysdep dl-minimal distribute = $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \ - soinit.c sofini.c ldd.sh.in eval.c + soinit.c sofini.c ldd.sh.in ldd.bash.in eval.c extra-libs = libdl extra-libs-others = $(extra-libs) @@ -100,7 +100,8 @@ $(objpfx)libdl.so: $(objpfx)libdl_pic.a $(common-objpfx)libc.so $(objpfx)ld.so $(slibdir)/$(rtld-installed-name): $(objpfx)ld.so; $(do-install-program) $(objpfx)ldd: ldd.sh.in Makefile - sed 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' < $< > $@.new + sed -e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \ + -e 's%@VERSION@%$(version)%g' < $< > $@.new chmod 555 $@.new mv -f $@.new $@ diff --git a/elf/ldd.bash.in b/elf/ldd.bash.in new file mode 100644 index 0000000000..e7ad21fa9d --- /dev/null +++ b/elf/ldd.bash.in @@ -0,0 +1,66 @@ +#! @BASH@ + +# This is the `ldd' command, which lists what shared libraries are +# used by given dynamically-linked executables. It works by invoking the +# run-time dynamic linker as a command and setting the environment +# variable LD_TRACE_LOADED_OBJECTS to a non-empty value. + +RTLD=@RTLD@ +usage=$"\ +ldd [OPTION]... FILE... + --help print this help and exit + --version print version information and exit +Report bugs to <bug-glibc@prep.ai.mit.edu>." + +while test $# -gt 0; do + case "$1" in + --v*) + echo 'ldd (GNU libc) @VERSION@'; exit 0 ;; + --h*) + echo "$usage"; exit 0 ;; + --) # Stop option prcessing + shift; break ;; + *) + break ;; + esac +done + +case $# in +0) + echo >&2 $"\ +ldd: missing file arguments +Try \`ldd --help' for more information." + exit 1 ;; +1) + # We don't list the file name when there is only one. + case "$1" in + /*) file="$1" ;; + *) file="./$1" ;; + esac + if test ! -f "$file"; then + echo "${file}:" $"no such file" + elif ${RTLD} --verify "$file"; then + LD_TRACE_LOADED_OBJECTS=1 exec ${RTLD} "$file" && exit 1 + else + echo $" not a dynamic executable" + fi + exit ;; +*) + set -e # Bail out immediately if ${RTLD} loses on any argument. + for file; do + echo "${file}:" + case "$file" in + /*) : ;; + *) file="./$file" ;; + esac + if test ! -f "$file"; then + echo "$file:" $"no such file" + elif ${RTLD} --verify "$file"; then + LD_TRACE_LOADED_OBJECTS=1 ${RTLD} "$file" + else + echo $" not a dynamic executable" + fi + done +esac + +exit 0 diff --git a/elf/ldd.sh.in b/elf/ldd.sh.in index ede1b9790b..16d3fd8b79 100644 --- a/elf/ldd.sh.in +++ b/elf/ldd.sh.in @@ -2,14 +2,34 @@ # This is the `ldd' command, which lists what shared libraries are # used by given dynamically-linked executables. It works by invoking the -# run-time dynamic linker as a command and giving it the special `--list' -# switch. +# run-time dynamic linker as a command and setting the environment +# variable LD_TRACE_LOADED_OBJECTS to a non-empty value. RTLD=@RTLD@ +usage="\ +ldd [OPTION]... FILE... + --help print this help and exit + --version print version information and exit +Report bugs to <bug-glibc@prep.ai.mit.edu>." + +while test $# -gt 0; do + case "$1" in + --v*) + echo 'ldd (GNU libc) @VERSION@'; exit 0 ;; + --h*) + echo "$usage"; exit 0 ;; + --) # Stop option prcessing + shift; break ;; + *) + break ;; + esac +done case $# in 0) - echo >&2 "Usage: $0 FILE..." + echo >&2 "\ +ldd: missing file arguments +Try \`ldd --help' for more information." exit 1 ;; 1) # We don't list the file name when there is only one. @@ -18,7 +38,7 @@ case $# in *) file="./$1" ;; esac if test ! -f "$file"; then - echo "$file: no such file" + echo "${file}: no such file" elif ${RTLD} --verify "$file"; then LD_TRACE_LOADED_OBJECTS=1 exec ${RTLD} "$file" && exit 1 else @@ -30,7 +50,7 @@ case $# in for file; do echo "${file}:" case "$file" in - /*) file="$file" ;; + /*) : ;; *) file="./$file" ;; esac if test ! -f "$file"; then |