about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Makeconfig4
-rw-r--r--shlib-versions7
3 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 0dc9fbe718..d8efcb08e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2000-03-18  Roland McGrath  <roland@baalperazim.frob.com>
 
+	* Makeconfig (soversions.mk): Convert % -> # in shlib-versions
+	after stripping # comments, and then run it through cpp.
+	This allows things like "%ifdef FOO" based on config.h settings.
+	* shlib-versions [USE_IN_LIBIO] (.*-.*-gnu-gnu*): libc=0.2.90.libio
+
 	* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): For MACH_SEND_INTERRUPTED
 	and other errors that indicate a pseudo-receive happened, grok through
 	the message buffer for port rights that need references fixed up.
diff --git a/Makeconfig b/Makeconfig
index 6d87892d74..de1b1b186a 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -685,7 +685,9 @@ $(common-objpfx)soversions.mk: $(..)shlib-versions $(..)Makeconfig \
 	       $(wildcard $(patsubst %,$(..)%/shlib-versions,$(subdirs))) \
 	       $(..)shlib-versions"; \
 	 for f in $$file; do \
-	   sed 's/#.*$$//' $$f | while read conf versions; do \
+	   sed 's/#.*$$//;s/^[ 	]*%/#/' $$f \
+	   | $(CC) -include $(common-objpfx)config.h -E -x c - \
+	   | while read conf versions; do \
 	     test -n "$$versions" && \
 	     test `expr '$(config-machine)-$(config-vendor)-$(config-os)' \
 			: "$$conf"` != 0 || continue; \
diff --git a/shlib-versions b/shlib-versions
index 565d8e4c9b..abf2fd49de 100644
--- a/shlib-versions
+++ b/shlib-versions
@@ -5,6 +5,9 @@
 # list is processed, with earlier entries taking precedence over later
 # entries.  So loose patterns at the end of the list can give defaults.
 
+# This file can use cpp-style conditionals starting with % instead of #
+# to test the symbols defined in config.h by configure.
+
 # Configuration		Library versions
 # -------------		------- --------
 
@@ -29,7 +32,11 @@ alpha.*-.*-linux.*	libc=6.1
 .*-.*-gnu-gnu*		libhurduser=0.0
 
 # libc.so.0.2 is for the Hurd alpha release 0.2.
+%ifdef USE_IN_LIBIO /* experimental only! */
+.*-.*-gnu-gnu*		libc=0.2.90.libio
+%else
 .*-.*-gnu-gnu*		libc=0.2
+%endif
 
 # The dynamic loader also requires different names.
 i.86-.*-linux.*		ld=ld-linux.so.2