This patch improves ada-link-lib.dpatch. Now, we build statically linked versions of gnatmake and gnatlink, and use them to build all the other tools. Thus we no longer rely on LD_LIBRARY_PATH to find libgnat-4.1.so; LD_LIBRARY_PATH only works on some build platforms.
The other improvement is that we now rebuild gnatlink as a dynamically linked executable, too. Apply this patch on top of the ada-link-lib.dpatch in patch #5. -- Ludovic Brenta. Index: patches/ada-link-lib.dpatch =================================================================== RCS file: /var/lib/cvs/gcc-debian/F-E104505123C347D1FD56DA709B5585A9.dpatch,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- patches/ada-link-lib.dpatch 12 Apr 2006 16:41:55 -0000 1.13 +++ patches/ada-link-lib.dpatch 13 Apr 2006 15:31:36 -0000 1.14 @@ -757,8 +757,17 @@ - ../../vms_help$(exeext) $(fsrcdir)/gnat.help_in \ - $(fsrcdir)/vms_data.ads ../../gnat.hlp --- gnattools/Makefile.in~ -+++ gnattools/Makefile.in 2006-04-12 17:07:44.000000000 +0200 -@@ -32,113 +32,15 @@ ++++ gnattools/Makefile.in 2006-04-13 17:15:59.000000000 +0200 +@@ -18,6 +18,8 @@ + # Default target; must be first. + all: gnattools + ++.SUFFIXES: ++ + # Standard autoconf-set variables. + SHELL = @SHELL@ + srcdir = @srcdir@ +@@ -32,113 +34,16 @@ [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ @@ -875,13 +884,14 @@ +ADA_INCLUDES=-nostdinc -I- -I. -I../gcc/ada/rts [EMAIL PROTECTED]@/../gcc/ada +LIB_VERSION=$(strip $(shell grep ' Library_Version :' \ + @srcdir@/../gcc/ada/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/')) ++ADA_LIBS := -L../gcc/ada/rts -lgnat-$(LIB_VERSION) + +# We will use the just-built compiler to compile and link everything. +GCC=../gcc/xgcc -B../gcc/ # File lists # ---------- -@@ -147,18 +49,129 @@ +@@ -147,18 +52,134 @@ EXTRA_GNATTOOLS = @EXTRA_GNATTOOLS@ TOOLS_TARGET_PAIRS = @TOOLS_TARGET_PAIRS@ @@ -897,11 +907,16 @@ - ../../gnatname$(exeext) \ - ../../gnatclean$(exeext) \ - ../../gprmake$(exeext) -+# Stage 1 builds xgcc and gnatbind; we can use them to build gnatmake -+# and gnatlink, then use gnatmake and gnatlink to build the other -+# tools. This is the list of these other tools. -+TOOLS := gnat gnatchop gnatclean gnatfind gnatkr gnatls gnatname -+TOOLS += gnatprep gnatxref gprmake ++# Stage 1 builds xgcc and gnatbind; we can use them to build ++# gnatmake-static and gnatlink-static, then use gnatmake-static and ++# gnatlink-static to build the other tools. The reason we first build ++# statically-linked versions of gnatmake and gnatlink is so we can run ++# them with confidence on all build platforms, without LD_LIBRARY_PATH ++# or some such variable. ++ ++# The tools we will build using gnatmake-static and gnatlink-static. ++TOOLS := gnat gnatbind gnatchop gnatclean gnatfind gnatkr gnatls gnatlink ++TOOLS += gnatmake gnatname gnatprep gnatxref gprmake + +# Since we don't have gnatmake, we must specify the full list of +# object files necessary to build gnatmake and gnatlink. @@ -1023,7 +1038,7 @@ # Makefile targets # ---------------- -@@ -166,126 +179,101 @@ +@@ -166,126 +187,107 @@ .PHONY: gnattools gnattools-native gnattools-cross regnattools gnattools: @default_gnattools_target@ @@ -1053,8 +1068,9 @@ + +gnattools-native: ../gcc/ada/rts/libgnat-$(LIB_VERSION).so +gnattools-native: stamp-gnattools-sources -+gnattools-native: gnatmake gnatlink $(TOOLS) gnatbl -+$(TOOLS): | gnatmake gnatlink ++gnattools-native: $(TOOLS) gnatbl ++ ++$(TOOLS) gnatcmd: | gnatmake-static gnatlink-static + +vpath %.c @srcdir@/../gcc/ada:@srcdir@/../gcc +vpath %.h @srcdir@/../gcc/ada @@ -1068,10 +1084,14 @@ + +# gnatlink + -+gnatlink: $(GNATLINK_OBJS) b_gnatl.o link.o -+ $(GCC) -o $@ $^ -L../gcc/ada/rts -lgnat-$(LIB_VERSION) \ ++gnatlink-static: $(GNATLINK_OBJS) b_gnatl.o link.o ++ $(GCC) -o $@ $^ \ ++ ../gcc/ada/rts/libgnat.a \ + ../libiberty/libiberty.a + ++gnatlink: $(GNATLINK_OBJS) b_gnatl.o link.o ++ $(GCC) -o $@ $^ $(ADA_LIBS) ../libiberty/libiberty.a ++ +b_gnatl.o: b_gnatl.c adaint.h + $(GCC) -c -o $@ $(CFLAGS) $< + @@ -1080,9 +1100,13 @@ + +# gnatmake + -+gnatmake: $(GNATMAKE_OBJS) b_gnatm.o link.o ++gnatmake-static: $(GNATMAKE_OBJS) b_gnatm.o link.o + $(GCC) -o $@ $(ADA_CFLAGS) $^ \ -+ -L../gcc/ada/rts -lgnat-$(LIB_VERSION) ../libiberty/libiberty.a ++ ../gcc/ada/rts/libgnat.a \ ++ ../libiberty/libiberty.a ++ ++gnatmake: $(GNATMAKE_OBJS) b_gnatm.o link.o ++ $(GCC) -o $@ $(ADA_CFLAGS) $^ $(ADA_LIBS) ../libiberty/libiberty.a + +b_gnatm.o: b_gnatm.c adaint.h + $(GCC) -c -o $@ $(CFLAGS) $< @@ -1092,36 +1116,33 @@ + +# Other tools +gnatchop gnatkr: version.o -+ LD_LIBRARY_PATH=../gcc/ada/rts \ -+ ./gnatmake -c -b $@ $(ADA_CFLAGS) $(ADA_INCLUDES) \ ++ ./gnatmake-static -c -b $@ $(ADA_CFLAGS) $(ADA_INCLUDES) \ + --GCC="$(GCC)" \ + --GNATBIND=../gcc/gnatbind -+ LD_LIBRARY_PATH=../gcc/ada/rts \ -+ ./gnatlink -o $@ [EMAIL PROTECTED] $^ $(ADA_INCLUDES) \ -+ -L../gcc/ada/rts -lgnat-$(LIB_VERSION) \ ++ ./gnatlink-static -o $@ [EMAIL PROTECTED] $^ $(ADA_INCLUDES) $(ADA_LIBS) \ + --GCC="$(GCC) $(ADA_INCLUDES)" ++ strip $@ + +gnat: gnatcmd + cp -lp $< $@ + -+gnatclean gnatcmd gnatfind gnatls gnatname gnatprep gnatxref gprmake: \ ++gnatbind gnatclean gnatcmd gnatfind gnatls gnatname gnatprep gnatxref gprmake: \ +link.o version.o prefix.o -+ LD_LIBRARY_PATH=../gcc/ada/rts \ -+ ./gnatmake -c -b $@ $(ADA_CFLAGS) $(ADA_INCLUDES) \ ++ ./gnatmake-static -c -b $@ $(ADA_CFLAGS) $(ADA_INCLUDES) \ + --GCC="$(GCC)" \ + --GNATBIND=../gcc/gnatbind -+ LD_LIBRARY_PATH=../gcc/ada/rts \ -+ ./gnatlink -v -o $@ [EMAIL PROTECTED] $^ $(ADA_INCLUDES) \ -+ -L../gcc/ada/rts -lgnat-$(LIB_VERSION) ../libiberty/libiberty.a \ ++ ./gnatlink-static -o $@ [EMAIL PROTECTED] $^ $(ADA_INCLUDES) $(ADA_LIBS) \ ++ ../libiberty/libiberty.a \ + --GCC="$(GCC) $(ADA_INCLUDES)" ++ strip $@ + +gnatbl: gnatbl.c link.o version.o prefix.o + $(GCC) -o $@ $< $(CFLAGS) \ + -I../gcc [EMAIL PROTECTED]@/../gcc/config [EMAIL PROTECTED]@/../gcc \ + [EMAIL PROTECTED]@/../include \ + $(filter-out %.c,$^) \ -+ -L../gcc/ada/rts -lgnat-$(LIB_VERSION) \ -+ ../libiberty/libiberty.a ++ $(ADA_LIBS) ../libiberty/libiberty.a ++ strip $@ + +# Force compiling sdefault.adb, not .ads, to produce sdefault.o +sdefault.o: sdefault.adb @@ -1242,7 +1263,7 @@ # Other # ----- -@@ -307,13 +295,16 @@ +@@ -307,13 +309,16 @@ # Installation rules. install: -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]