From 91adb529b07eca93e25a84d0054418335e2fc6cf Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 10 Feb 2005 09:18:34 +0000 Subject: [BZ #632] 2005-02-10 Roland McGrath [BZ #632] * scripts/soversions.awk: Expect cpu, vendor, os as separate variables from command line. Grok shlib-versions lines with WORDSIZE* in second column. Add new leading column to output, DEFAULT for existing output lines. Also emit lines with WORDSIZE* for alternate configurations. * Makeconfig ($(common-objpfx)soversions.i): Pass those variables. ($(common-objpfx)soversions.mk): Grok new column, use only DEFAULT. ($(common-objpfx)gnu/lib-names.stmp): Depend on soversions.i instead of soversions.mk; replace inline shell script with use of ... * scripts/lib-names.awk: New file. If input has non-DEFAULT lines, emit multiple sets of macros under #if. * shlib-versions (x86_64-.*-.*): Add WORDSIZE32 line mapping to i686. (s390x-.*-.*): Likewise for s390. (powerpc64-.*-.*): Likewise for powerpc. (sparc64-.*-.*): Likewise for sparc. --- Makeconfig | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) (limited to 'Makeconfig') diff --git a/Makeconfig b/Makeconfig index 5ecda01169..306053241d 100644 --- a/Makeconfig +++ b/Makeconfig @@ -787,11 +787,14 @@ soversions-default-setname = $(patsubst %, %,\ $(common-objpfx)soversions.i: $(..)scripts/soversions.awk \ $(common-objpfx)shlib-versions.v $(AWK) -v default_setname='$(soversions-default-setname)' \ - -v config='$(config-machine)-$(config-vendor)-$(config-os)' \ + -v cpu='$(config-machine)' \ + -v vendor='$(config-vendor)' \ + -v os='$(config-os)' \ -f $^ > $@T mv -f $@T $@ $(common-objpfx)soversions.mk: $(common-objpfx)soversions.i - (while read lib number setname; do \ + (while read which lib number setname; do \ + test x"$$which" = xDEFAULT || continue; \ case $$number in \ [0-9]*) echo "$$lib.so-version=.$$number"; \ echo "all-sonames+=$$lib=$$lib.so\$$($$lib.so-version)";;\ @@ -812,31 +815,11 @@ postclean-generated += soversions.mk soversions.i \ 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 +$(common-objpfx)gnu/lib-names.stmp: $(..)scripts/lib-names.awk \ + $(common-objpfx)soversions.i $(make-target-directory) @rm -f ${@:stmp=T} $@ - (echo '/* This file is automatically generated.';\ - echo ' It defines macros to allow user program to find the shared';\ - echo ' library files which come as part of GNU libc. */';\ - echo '#ifndef __GNU_LIB_NAMES_H'; \ - echo '#define __GNU_LIB_NAMES_H 1'; \ - echo; \ - (libs='$(all-sonames)';\ - for l in $$libs; do \ - name=`echo $$l | sed 's/.*=//'`; \ - upname=`echo $$l | sed 's/=.*//' | \ - tr 'abcdefghijklmnopqrstuvwxyz-' \ - 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`; \ - upname2=`echo $$name | sed 's/[.]so.*//' | \ - tr 'abcdefghijklmnopqrstuvwxyz-' \ - 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`; \ - echo "#define $${upname}_SO \"$$name\""; \ - if test $$upname != $$upname2; then \ - echo "#define $${upname2}_SO \"$$name\""; \ - fi; \ - done;) | sort; \ - echo; \ - echo '#endif /* gnu/lib-names.h */';) > ${@:stmp=T} + $(AWK) -f $^ > ${@:stmp=T} $(move-if-change) ${@:stmp=T} ${@:stmp=h} touch $@ endif -- cgit 1.4.1