]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
abilist-pattern configurability
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Tue, 4 Feb 2014 16:06:41 +0000 (10:06 -0600)
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Tue, 4 Feb 2014 17:10:07 +0000 (11:10 -0600)
This patch creates implicit rules to match the abifiles if
abilist-pattern is defined in the architecture Makefile. This allows
machine specific Makefiles to define different abifiles names
(for instance *-le.abilist for powerpc64le).

ChangeLog
Makerules
sysdeps/powerpc/Makefile

index ac1a76a1e2b0e619a8952c21f321f6ccbec1c2fe..0575323717ea5e1918efff7f9b790f18c110219e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2014-02-04  Roland McGrath  <roland@hack.frob.com>
+           Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
+
+       * sysdeps/powerpc/Makefile [$(config-machine) ends with 'le']
+       (abilist-pattern): New variable, set to %-le.abilist.
+
+       * Makerules (abilist-pattern): New variable.
+       (vpath): Use $(abilist-pattern) in place of %.abilist.
+       (check-abi-% pattern rule): Likewise.
+       (check-abi, update-abi): Likewise.
+
 2014-01-23  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
        [BZ#16431]
index 7d0bc1b14e960bd386295af4d4cddfd410a77e07..bd8642a47009a1d5da2018d2f5af2e21640ca65e 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -1144,11 +1144,15 @@ ifeq ($(versioning),yes)
        LC_ALL=C $(OBJDUMP) --dynamic-syms $< > $@T
        mv -f $@T $@
 
-ifndef abilist
-abilist=.abilist
+# A sysdeps/.../Makefile can set abilist-pattern to something like
+# %-foo.abilist to look for libc-foo.abilist instead of libc.abilist.
+# This makes sense if multiple ABIs can be most cleanly supported by a
+# configuration without using separate sysdeps directories for each.
+ifdef abilist-pattern
+vpath $(abilist-pattern) $(+sysdep_dirs)
 endif
 
-vpath %$(abilist) $(+sysdep_dirs)
+vpath %.abilist $(+sysdep_dirs)
 
 # The .PRECIOUS rule prevents the files built by an implicit rule whose
 # target pattern is %.symlist from being considered "intermediate files"
@@ -1157,24 +1161,48 @@ vpath %$(abilist) $(+sysdep_dirs)
 .PRECIOUS: %.symlist
 generated += $(extra-libs:=.symlist)
 
-check-abi-%: $(common-objpfx)config.make %$(abilist) $(objpfx)%.symlist
+ifdef abilist-pattern
+check-abi-%: $(common-objpfx)config.make $(abilist-pattern) $(objpfx)%.symlist
+       $(check-abi-pattern)
+check-abi-%: $(common-objpfx)config.make $(abilist-pattern) \
+            $(common-objpfx)%.symlist
+       $(check-abi-pattern)
+endif
+check-abi-%: $(common-objpfx)config.make %.abilist $(objpfx)%.symlist
        $(check-abi)
-check-abi-%: $(common-objpfx)config.make %$(abilist) $(common-objpfx)%.symlist
+check-abi-%: $(common-objpfx)config.make %.abilist $(common-objpfx)%.symlist
        $(check-abi)
+define check-abi-pattern
+       diff -p -U 0 $(filter $(abilist-pattern),$^) $(filter %.symlist,$^)
+endef
 define check-abi
-       diff -p -U 0 $(filter %$(abilist),$^) $(filter %.symlist,$^)
+       diff -p -U 0 $(filter %.abilist,$^) $(filter %.symlist,$^)
 endef
 
-update-abi-%: $(objpfx)%.symlist %$(abilist)
+ifdef abilist-pattern
+update-abi-%: $(objpfx)%.symlist $(abilist-pattern)
+       $(update-abi-pattern)
+update-abi-%: $(common-objpfx)%.symlist $(abilist-pattern)
+       $(update-abi-pattern)
+endif
+update-abi-%: $(objpfx)%.symlist %.abilist
        $(update-abi)
-update-abi-%: $(common-objpfx)%.symlist %$(abilist)
+update-abi-%: $(common-objpfx)%.symlist %.abilist
        $(update-abi)
+define update-abi-pattern
+@if cmp -s $^ 2> /dev/null; \
+ then \
+      echo '+++ $(filter $(abilist-pattern),$^) is unchanged'; \
+ else cp -f $^; \
+      echo '*** Now check $(filter $(abilist-pattern),$^) changes for correctness ***'; \
+ fi
+endef
 define update-abi
 @if cmp -s $^ 2> /dev/null; \
  then \
-      echo '+++ $(filter %$(abilist),$^) is unchanged'; \
+      echo '+++ $(filter %.abilist,$^) is unchanged'; \
  else cp -f $^; \
-      echo '*** Now check $(filter %$(abilist),$^) changes for correctness ***'; \
+      echo '*** Now check $(filter %.abilist,$^) changes for correctness ***'; \
  fi
 endef
 
index f75e62523c3a794f832932c7d37b13b4ecf93fed..b11edd77bd2c22d41a04a6dd63527a2ea8a3c50d 100644 (file)
@@ -27,3 +27,7 @@ ifeq ($(subdir),misc)
 sysdep_headers += sys/platform/ppc.h
 tests += test-gettimebase
 endif
+
+ifneq (,$(filter %le,$(config-machine)))
+abilist-pattern = %-le.abilist
+endif