From ceca4209347d0639a7ed726822a21c33891ca15b Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Tue, 4 Feb 2014 10:06:41 -0600 Subject: [PATCH] abilist-pattern configurability 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 | 11 +++++++++ Makerules | 48 +++++++++++++++++++++++++++++++--------- sysdeps/powerpc/Makefile | 4 ++++ 3 files changed, 53 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index ac1a76a1e2b..0575323717e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2014-02-04 Roland McGrath + Adhemerval Zanella + + * 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 [BZ#16431] diff --git a/Makerules b/Makerules index 7d0bc1b14e9..bd8642a4700 100644 --- 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 diff --git a/sysdeps/powerpc/Makefile b/sysdeps/powerpc/Makefile index f75e62523c3..b11edd77bd2 100644 --- a/sysdeps/powerpc/Makefile +++ b/sysdeps/powerpc/Makefile @@ -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 -- 2.47.2