This is the mail archive of the libc-alpha@sourceware.cygnus.com mailing list for the glibc project.


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

gnu/lib-names.h gets built incorrectly in some cases


Hello,

 When issuing `make clean all' with shared objects enabled, library
versions are missing from gnu/lib-names.h.  This happens due to
$(all-sonames)  being empty upon building the file.  As a result the
process of building libc fails at one stage.

 The following patch ensures the soversions.mk part of Makefile gets
included before building gnu/lib-names.h thus $(all-sonames) is set
appropriately.  It was generated and tested against a May 23rd snapshot of
the CVS tree.

  Maciej

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: macro@ds2.pg.gda.pl, PGP key available        +

diff -u --recursive --new-file glibc.macro/Makeconfig glibc/Makeconfig
--- glibc.macro/Makeconfig	Sat Apr 29 02:26:00 2000
+++ glibc/Makeconfig	Sat May 27 17:49:05 2000
@@ -706,14 +706,15 @@
 	  done > $@T; exit 0
 	mv -f $@T $@
 $(common-objpfx)soversions.mk: $(common-objpfx)soversions.i
-	while read lib number setname; do \
-	  case $$number in \
-	    [0-9]*) echo "$$lib.so-version=.$$number"; \
-		    echo "all-sonames+=$$lib.so\$$($$lib.so-version)";;\
-	    *)	    echo "$$lib.so-version=$$number"; \
-		    echo "all-sonames+=\$$($$lib.so-version)";;\
-	  esac; \
-	done < $< > $@T; exit 0
+	(while read lib number setname; do \
+	   case $$number in \
+	     [0-9]*) echo "$$lib.so-version=.$$number"; \
+		     echo "all-sonames+=$$lib.so\$$($$lib.so-version)";;\
+	     *)	     echo "$$lib.so-version=$$number"; \
+		     echo "all-sonames+=\$$($$lib.so-version)";;\
+	   esac; \
+	 done; \
+	 echo soversions.mk-done = t;) < $< > $@T; exit 0
 	mv -f $@T $@
 endif
 endif
@@ -723,6 +724,7 @@
 # Generate the header containing the names of all shared libraries.
 # We use a stamp file to avoid uncessary recompilations.
 before-compile += $(common-objpfx)gnu/lib-names.h
+ifeq ($(soversions.mk-done),t)
 $(common-objpfx)gnu/lib-names.h: $(common-objpfx)gnu/lib-names.stmp; @:
 $(common-objpfx)gnu/lib-names.stmp: $(common-objpfx)soversions.mk
 	$(make-target-directory)
@@ -744,6 +746,7 @@
 	 echo '#endif	/* gnu/lib-names.h */';) > ${@:stmp=T}
 	$(move-if-change) ${@:stmp=T} ${@:stmp=h}
 	touch $@
+endif
 
 common-generated += gnu/lib-names.h gnu/lib-names.stmp
 


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