glibc/elf/Makefile
Ulrich Drepper 8d57beeab1 update from main archive 970121
Thu Jan 23 04:06:42 1997  Ulrich Drepper  <drepper@cygnus.com>

	* Make-dist (.PHONY: dist): Remove duplicate declaration.
	(README): Depend on version.h not version.c.
	* Makefile (README): Depend on version.h not version.c.

	* Makeconfig (inst_libdir, inst_slibdir, inst_includedir,
	inst_datadir, inst_zonedir, inst_localedir, inst_i18ndir, inst_bindir,
	inst_sbindir, inst_infodir, inst_sysconfdir): New variables.  Same
	as variable withough inst_ but prepended with $(install_root).
	(localtime-time): Use $(inst_sysconfdir) not $(sysconfdir).
	* Makefile (install-others): Use $(inst_includedir).
	(gnu/stabs.h, gnu/lib-names.h): Use $(inst_includedir).
	* Makerules (tons of install rules): Use inst_% variables.
	* elf/Makefile: Likewise.
	* hurd/Makefile: Likewise.
	* intl/Makefile: Likewise.
	* manual/Makefile: Likewise.
	* po/Makefile: Likewise.
	* sunrpc/Makefile: Likewise.
	* sysdeps/mach/hurd/Makefile: Likewise.
	* sysdeps/standalone/i386/force_cpu386/Makefile: Likewise.
	* time/Makefile: Likewise.

	* config.make.in: Revert patch from Sat Jan 18 22:15:26 1997,
	leave install_root in place.

	* gnu-versions.h (_GNU_GETOPT_INTERFACE_VERSION): Define to 2.
	* posix/getopt.c (GETOPT_INTERFACE_VERSION): Define to 2.
	* posix/getopt1.c (GETOPT_INTERFACE_VERSION): Define to 2.

	* elf/Makefile [yes==$(has-ldconfig)]: Correct dependencies of
	ldconfig.
	(CFLAGS-dl-load.c): New variable, avoid gcc warning.

	* sysdeps/mach/hurd/configure.in: Add _LIBC_REENTRENT to DEFINES.

	* sysdeps/mach/hurd/getdents.c: Update copyright.  De-ANSI-declfy.
	* sysdeps/stub/getdents.c: Likewise.  Correct return value.
	* sysdeps/unix/getdents.c: Likewise.
	* sysdeps/unix/sysv/getdents.c: Likewise.

	* sysdeps/unix/readdir.c: Update copyright.

	* sysdeps/unix/bsd/sony/newsos4/Makefile: Correct ifeq arguments.
	* sysdeps/unix/bsd/sun/sunos4/Makefile: Likewise.
	* sysdeps/unix/sysv/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/alpha/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.

	* sysdeps/unix/sysv/linux/Dist: Don't distribute kernel_termios.h,
	but sys/kernel_termios.h.
	* sysdeps/unix/sysv/linux/alpha/Dist: Likewise.
	* sysdeps/unix/sysv/linux/Makefile [$(subdir)==termios]
	(sysdep_headers): Add sys/kernel_termios.h.
	* sysdeps/unix/sysv/linux/kernel_termios.h: Moved to...
	* sysdeps/unix/sysv/linux/sys/kernel_termios.h: ...here.
	* sysdeps/unix/sysv/linux/sys/tcgetattr.c: Use __kernel_termios and
	__KERNEL_NCCS instead of kernel_termios and KERNEL_NCCS resp.

	* sysdeps/unix/sysv/linux/alpha/ioctls.h: New file.

	* sysdeps/unix/sysv/linux/getdents.c: Correct problems with alignment.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove getdents.
	Reported by Eirik Fuller <eirik@netcom.com>.

	* time/Banner: Removed.  Wrong and unnecessary information.  It's now
	in...
	* time/README: New file.
	* time/Makefile (distribute): Remove Banner, add README.

Wed Jan 22 13:19:56 1997  Richard Henderson  <rth@tamu.edu>

	* sysdeps/unix/sysv/linux/alpha/ioperm.c (platforms): Add Sable.
	(init_iosys): Recognize /etc/alpha_systype as a four-tuple for
	the purpose of supporting brand new systems.
	(*): The type of iosys variables should be iosys_t.

1997-01-22  Paul Eggert  <eggert@twinsun.com>

	* strftime.c (_strftime_copytm):
	New function, to work around Solaris 2.5 tzset bug.

Wed Jan 22 23:05:14 1997  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/mach/hurd/vdprintf.c: Complete de-ANSI-declfication.
	* sysdeps/posix/pipestream.c (writedecl): Fix typo.
	Reported by Marcus G. Daniels <marcus@shannon.sysc.pdx.edu>.

Wed Jan 22 13:58:56 1997  Andreas Jaeger  <aj@arthur.pfalz.de>

	* elf/Makefile (CFLAGS-dl-load.c): New Variable to keep gcc silent
	since name_copy is initialized.

Wed Jan 22 16:58:12 1997  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/Makefile (tests): Remove scanf11.
	* stdio-common/scanf11.c: Removed.
	* stdio-common/vfscanf.c Revert patch of Thu Jan 16 23:39:25 1997.
	Although the Corrigendum 1 describes the result as implemented the
	even more recent Amendement 1 seconds the position of ISO C:1990
	where the %n directive has no effect on the assignment count.
	* stdio-common/bug10.c: Likewise.
	* stdio-common/scanf1.c: Likewise.
	* stdio-common/scanf3.c: Likewise.
	* stdio-common/scanf10.c: Likewise.
	* stdio-common/tstdiomisc.c: Likewise.

	* new-malloc/obstack.h: Don't define malloc using bcopy if malloc
	is not available.  This leads to problems since bcopy does not
	return a value.  Instead define _obstack_memcpy based on memcpy or
	bcopy.  This name isn't used outside obstack.h and so no problems
	from using the memcpy function in a file including obstack.h can
	result.
	Reported by Martin Trapp <trapp@ipd.info.uni-karlsruhe.de>.

Tue Jan 21 18:35:55 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* misc/regexp.h (compile): Fix typos.

Tue Jan 21 01:01:59 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/sys/procfs.h (struct elf_prpsinfo): Fix
	type of pr_{pid,ppid,pgrp,sid} fields.
	* sysdeps/unix/sysv/linux/alpha/sys/procfs.h (struct
	elf_prpsinfo): Likewise.
1997-01-23 04:24:20 +00:00

156 lines
5.4 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Makefile for elf subdirectory of GNU C Library.
# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
subdir := elf
headers = elf.h elfclass.h link.h dlfcn.h
routines = $(dl-routines) dl-open dl-close dl-symbol dl-support \
enbl-secure
# The core dynamic linking functions are in libc for the static and
# profiled libraries.
dl-routines = $(addprefix dl-,load cache lookup object reloc deps \
runtime error init fini debug)
# But they are absent from the shared libc, because that code is in ld.so.
elide-routines.so = $(dl-routines) dl-support enbl-secure
# ld.so uses those routines, plus some special stuff for being the program
# 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 ldd.bash.in eval.c
extra-libs = libdl
extra-libs-others = $(extra-libs)
libdl-routines := dlopen dlclose dlsym dlerror dladdr
before-compile = $(objpfx)trusted-dirs.h
all: # Make this the default target; it will be defined in Rules.
include ../Makeconfig
ifeq (yes,$(build-shared))
extra-objs = $(rtld-routines:=.so) soinit.so sofini.so eval.so
generated = librtld.so dl-allobjs.so
install-others = $(inst_slibdir)/$(rtld-installed-name)
install-bin = ldd
endif
ifeq (yes,$(has-ldconfig))
extra-objs = ldconfig.o
install-rootsbin = ldconfig
$(objpfx)ldconfig: $(objpfx)ldconfig.o
$(CC) -nostdlib -nostartfiles -o $@ $(sysdep-LDFLAGS) -static \
$(addprefix $(csu-objpfx),start.o) $(+preinit) \
$(filter-out $(addprefix $(csu-objpfx),start.o) $(+preinit) \
$(link-extra-libs) $(common-objpfx)libc% $(+postinit),$^) \
$(link-extra-libs) $(common-objpfx)libc.a $(gnulib) $(+postinit)
endif
include ../Rules
ifeq (yes,$(build-shared))
# Make sure these things are built in the `make lib' pass so they can be used
# to run programs during the `make others' pass.
lib-noranlib: $(objpfx)$(rtld-installed-name) \
$(addprefix $(objpfx),$(extra-objs))
endif
# Command to link into a larger single relocatable object.
reloc-link = $(LINK.o) -nostdlib -nostartfiles -r -o $@
$(objpfx)dl-allobjs.so: $(rtld-routines:%=$(objpfx)%.so)
$(reloc-link) $^
# Link together the dynamic linker into a single relocatable object.
$(objpfx)librtld.so: $(objpfx)dl-allobjs.so $(common-objpfx)libc_pic.a
$(reloc-link) '-Wl,-(' $^ -lgcc '-Wl,-)'
$(objpfx)ld.so: $(objpfx)librtld.so
$(rtld-link) -Wl,-soname=$(rtld-installed-name)
define rtld-link
$(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
-Wl,-rpath=$(default-rpath) $^
endef
# The dl code in the static libc needs a default library path.
CFLAGS-dl-support.c = -D'DEFAULT_RPATH="$(default-rpath)"'
ifneq (ld.so,$(rtld-installed-name))
# Make sure ld.so.1 exists in the build directory so we can link
# against it.
$(objpfx)$(rtld-installed-name): $(objpfx)ld.so
rm -f $@
ln -s $(<F) $@
endif
# Build a file mentioning all trustworthy directories to look for shared
# libraries when using LD_LIBRARY_PATH in a setuid program. The user can
# add directories to the list by defining $(user-defined-trusted-dirs)
# before starting make.
$(objpfx)trusted-dirs.h: Makefile
$(make-target-directory)
(for dir in `echo "$(default-rpath) $(user-defined-trusted-dirs)" | \
sed 's/:/ /g'`; do \
echo " \"$$dir\","; \
done;) > $@T
mv -f $@T $@
CPPFLAGS-dl-load.c = -I$(objdir)/$(subdir)
CFLAGS-dl-load.c = -Wno-uninitialized
# Specify the dependencies of libdl.so; its commands come from the generic
# rule to build a shared library.
$(objpfx)libdl.so: $(objpfx)libdl_pic.a $(common-objpfx)libc.so $(objpfx)ld.so
$(inst_slibdir)/$(rtld-version-installed-name): $(objpfx)ld.so
$(do-install-program)
$(inst_slibdir)/$(rtld-installed-name): \
$(inst_slibdir)/$(rtld-version-installed-name)
$(make-shlib-link)
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 $@
else
$(objpfx)ldd: ldd.bash.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
chmod 555 $@.new
mv -f $@.new $@
endif
# muwahaha
LDFLAGS-dl.so = -Wl,-dynamic-linker,$(slibdir)/$(rtld-installed-name)
$(objpfx)libdl.so: $(objpfx)eval.so