diff options
author | Roland McGrath <roland@gnu.org> | 2005-02-16 12:31:10 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2005-02-16 12:31:10 +0000 |
commit | 833861be818bb5d45ab0c47370b84068dfb2fedf (patch) | |
tree | 2f1754a415c378f6b067f9158cc42df24d4641d2 /Makeconfig | |
parent | c397a0064061e28a00eea873669e59f3983db791 (diff) |
import later fedora-branch tweaks
Diffstat (limited to 'Makeconfig')
-rw-r--r-- | Makeconfig | 62 |
1 files changed, 41 insertions, 21 deletions
diff --git a/Makeconfig b/Makeconfig index 4c3a4e344c..d267e5af21 100644 --- a/Makeconfig +++ b/Makeconfig @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1991-2003, 2004 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -480,21 +480,32 @@ default-rpath = $(libdir) endif ifndef link-extra-libs -link-extra-libs = $(LDLIBS-$(@F)) -link-extra-libs-static = $(link-extra-libs) -link-extra-libs-bounded = $(link-extra-libs) +ifeq (yes,$(build-shared)) +ifneq ($(common-objpfx),$(objpfx)) +link-extra-libs = $(foreach lib,$(LDLIBS-$(@F)),\ + $(wildcard $(common-objpfx)$(lib).so$($(notdir $(lib)).so-version) \ + $(objpfx)$(lib).so$($(notdir $(lib)).so-version))) +else +link-extra-libs = $(foreach lib,$(LDLIBS-$(@F)),$(common-objpfx)$(lib).so$($(notdir $(lib)).so-version)) +endif +else +link-extra-libs = $(foreach lib,$(LDLIBS-$(@F)),$(common-objpfx)$(lib).a) +endif endif # The static libraries. ifeq (yes,$(build-static)) link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(common-objpfx)libc.a +link-extra-libs-static = $(foreach lib,$(LDLIBS-$(@F)),$(common-objpfx)$(lib).a) else ifeq (yes,$(build-shared)) # We can try to link the programs with lib*_pic.a... link-libc-static = $(static-gnulib) $(common-objpfx)libc_pic.a +link-extra-libs-static = $(link-extra-libs) endif endif link-libc-bounded = $(common-objpfx)libc_b.a $(gnulib) $(common-objpfx)libc_b.a +link-extra-libs-bounded = $(foreach lib,$(LDLIBS-$(@F:%-bp=%)),$(common-objpfx)$(lib)_b.a) ifndef gnulib ifneq ($(have-cc-with-libunwind),yes) @@ -787,16 +798,11 @@ soversions-default-setname = $(patsubst %, %,\ $(common-objpfx)soversions.i: $(..)scripts/soversions.awk \ $(common-objpfx)shlib-versions.v $(AWK) -v default_setname='$(soversions-default-setname)' \ - -v cpu='$(config-machine)' \ - -v vendor='$(config-vendor)' \ - -v os='$(config-os)' \ + -v config='$(config-machine)-$(config-vendor)-$(config-os)' \ -f $^ > $@T mv -f $@T $@ -$(common-objpfx)soversions.mk: $(common-objpfx)soversions.i $(..)Makeconfig - (seen_DEFAULT=0; seen_WORDSIZE32=0; seen_WORDSIZE64=0; \ - while read which lib number setname; do \ - eval seen_$$which=1; \ - test x"$$which" = xDEFAULT || continue; \ +$(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=$$lib.so\$$($$lib.so-version)";;\ @@ -804,12 +810,6 @@ $(common-objpfx)soversions.mk: $(common-objpfx)soversions.i $(..)Makeconfig echo "all-sonames+=$$lib=\$$($$lib.so-version)";;\ esac; \ done; \ - case "$$seen_DEFAULT$$seen_WORDSIZE32$$seen_WORDSIZE64" in \ - 100) echo biarch = no;; \ - 101) echo biarch = 32;; \ - ?1?) echo biarch = 64;; \ - *) echo >&2 BUG; exit 2;; \ - esac; \ echo soversions.mk-done = t;) < $< > $@T; exit 0 mv -f $@T $@ endif @@ -823,11 +823,31 @@ 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: $(..)scripts/lib-names.awk \ - $(common-objpfx)soversions.i +$(common-objpfx)gnu/lib-names.stmp: $(common-objpfx)soversions.mk $(make-target-directory) @rm -f ${@:stmp=T} $@ - $(AWK) -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} $(move-if-change) ${@:stmp=T} ${@:stmp=h} touch $@ endif |