This is the mail archive of the
libc-alpha@sourceware.cygnus.com
mailing list for the glibc project.
gnu/lib-names.h gets built incorrectly in some cases
- To: libc-alpha at sourceware dot cygnus dot com
- Subject: gnu/lib-names.h gets built incorrectly in some cases
- From: "Maciej W. Rozycki" <macro at ds2 dot pg dot gda dot pl>
- Date: Fri, 2 Jun 2000 18:15:40 +0200 (MET DST)
- Organization: Technical University of Gdansk
- Reply-To: "Maciej W. Rozycki" <macro at ds2 dot pg dot gda dot pl>
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