This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Problem with make dist


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]