Problem with make dist
Andreas Schwab
schwab@suse.de
Mon Sep 4 09:52:00 GMT 2000
The makefile in sysdeps/ia64 modifies dl-routines and rtld-routines to get
dl-symaddr and dl-fptr into the dynamic linker objects. This is wrong, a
sysdep makefile should never modify generic object lists, only sysdep
lists. It breaks `make dist' when running on ia64. This patch adds the
necessary hooks to elf/Makefile that the sysdep makefile can use.
Andreas.
2000-09-04 Andreas Schwab <schwab@suse.de>
* elf/Makefile (all-dl-routines): New variable.
(elide-routines.os): Use it instead of $(dl-routines).
(all-rtld-routines): New variable.
(extra-objs): Use it instead of $(rtld-routines).
($(objpfx)dl-allobjs.os): Likewise.
* sysdeps/ia64/Makefile [$(subdir) = elf]: Modify
sysdep-dl-routines and sysdep_routines instead of rtld-routines
and dl-routines.
Index: libc/elf/Makefile
===================================================================
RCS file: /cvs/glibc/libc/elf/Makefile,v
retrieving revision 1.172
diff -u -a -u -r1.172 libc/elf/Makefile
--- libc/elf/Makefile 2000/08/26 23:23:41 1.172
+++ libc/elf/Makefile 2000/09/04 16:47:34
@@ -29,12 +29,15 @@
dl-routines = $(addprefix dl-,load cache lookup object reloc deps \
runtime error init fini debug misc \
version profile)
+all-dl-routines = $(dl-routines) $(sysdep-dl-routines)
# But they are absent from the shared libc, because that code is in ld.so.
-elide-routines.os = $(dl-routines) dl-support enbl-secure
+elide-routines.os = $(all-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-environ dl-minimal
+all-rtld-routines = $(rtld-routines) $(sysdep-dl-routines)
+
distribute := $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \
dl-cache.h dl-hash.h soinit.c sofini.c ldd.bash.in \
genrtldtbl.awk atomicity.h dl-procinfo.h ldsodefs.h \
@@ -60,7 +63,7 @@
endif
ifeq (yes,$(build-shared))
-extra-objs = $(rtld-routines:=.os) soinit.os sofini.os interp.os
+extra-objs = $(all-rtld-routines:%=%.os) soinit.os sofini.os interp.os
generated += librtld.os dl-allobjs.os ld.so ldd
install-others = $(inst_slibdir)/$(rtld-installed-name)
install-bin = ldd
@@ -118,7 +121,7 @@
# Command to link into a larger single relocatable object.
reloc-link = $(LINK.o) -nostdlib -nostartfiles -r -o $@
-$(objpfx)dl-allobjs.os: $(rtld-routines:%=$(objpfx)%.os)
+$(objpfx)dl-allobjs.os: $(all-rtld-routines:%=$(objpfx)%.os)
$(reloc-link) $^
# Link together the dynamic linker into a single relocatable object.
Index: sysdeps/ia64/Makefile
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/ia64/Makefile,v
retrieving revision 1.1
diff -u -a -u -r1.1 sysdeps/ia64/Makefile
--- sysdeps/ia64/Makefile 2000/05/05 16:41:36 1.1
+++ sysdeps/ia64/Makefile 2000/09/04 16:45:02
@@ -3,6 +3,6 @@
endif
ifeq ($(subdir),elf)
-dl-routines += dl-symaddr dl-fptr
-rtld-routines += dl-symaddr dl-fptr
+sysdep-dl-routines += dl-symaddr dl-fptr
+sysdep_routines += $(sysdep-dl-routines)
endif
--
Andreas Schwab "And now for something
SuSE Labs completely different."
Andreas.Schwab@suse.de
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
More information about the Libc-hacker
mailing list