glibc/glibc-make-3.82.patch

92 lines
3.3 KiB
Diff

From: Andreas Schwab <schwab at redhat dot com>
To: libc-hacker at sourceware dot org
Subject: [PATCH] Work around shortest-stem feature in make 3.82+
make 3.82+ no longer selects pattern rules by order, but by shortest
stem, so we need to add more rules to make sure we still get the right
matches.
Andreas.
2010-09-09 Andreas Schwab <schwab@redhat.com>
* Makeconfig (sysd-rules-patterns): Add rtld-%:rtld-%.
(sysd-rules-targets): Remove duplicates.
* elf/rtld-Rules ($(objpfx)rtld-%.os): Add pattern rules with
rtld-%.$o dependency.
2010-09-06 Andreas Schwab <schwab@redhat.com>
* manual/Makefile: Don't mix pattern rules with normal rules.
diff --git a/Makeconfig b/Makeconfig
index 9778998..807c1d1 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -966,7 +966,7 @@ endif
# emitted into sysd-rules. A sysdeps Makeconfig fragment can
# add its own special object file prefix to this list with e.g. foo-%:%
# to have foo-*.? compiled from *.? using $(foo-CPPFLAGS).
-sysd-rules-patterns := %:% rtld-%:% m_%:s_%
+sysd-rules-patterns := %:% rtld-%:rtld-% rtld-%:% m_%:s_%
# Let sysdeps/ subdirs contain a Makeconfig fragment for us to include here.
sysdep-makeconfigs := $(wildcard $(+sysdep_dirs:=/Makeconfig))
@@ -975,8 +975,8 @@ include $(sysdep-makeconfigs)
endif
# Compute just the target patterns. Makeconfig has set sysd-rules-patterns.
-sysd-rules-targets := $(foreach p,$(sysd-rules-patterns),\
- $(firstword $(subst :, ,$p)))
+sysd-rules-targets := $(sort $(foreach p,$(sysd-rules-patterns),\
+ $(firstword $(subst :, ,$p))))
endif # Makeconfig not yet included
diff --git a/elf/rtld-Rules b/elf/rtld-Rules
index 9f31a56..fc225f2 100644
--- a/elf/rtld-Rules
+++ b/elf/rtld-Rules
@@ -93,6 +93,12 @@ else
# These are the basic compilation rules corresponding to the Makerules ones.
# The sysd-rules generated makefile already defines pattern rules for rtld-%
# targets built from sysdeps source files.
+$(objpfx)rtld-%.os: rtld-%.S $(before-compile)
+ $(compile-command.S) $(rtld-CPPFLAGS)
+$(objpfx)rtld-%.os: rtld-%.s $(before-compile)
+ $(compile-command.s) $(rtld-CPPFLAGS)
+$(objpfx)rtld-%.os: rtld-%.c $(before-compile)
+ $(compile-command.c) $(rtld-CPPFLAGS)
$(objpfx)rtld-%.os: %.S $(before-compile)
$(compile-command.S) $(rtld-CPPFLAGS)
$(objpfx)rtld-%.os: %.s $(before-compile)
@@ -101,6 +107,9 @@ $(objpfx)rtld-%.os: %.c $(before-compile)
$(compile-command.c) $(rtld-CPPFLAGS)
# The rules for generated source files.
+$(objpfx)rtld-%.os: $(objpfx)rtld-%.S $(before-compile); $(compile-command.S)
+$(objpfx)rtld-%.os: $(objpfx)rtld-%.s $(before-compile); $(compile-command.s)
+$(objpfx)rtld-%.os: $(objpfx)rtld-%.c $(before-compile); $(compile-command.c)
$(objpfx)rtld-%.os: $(objpfx)%.S $(before-compile); $(compile-command.S)
$(objpfx)rtld-%.os: $(objpfx)%.s $(before-compile); $(compile-command.s)
$(objpfx)rtld-%.os: $(objpfx)%.c $(before-compile); $(compile-command.c)
--
1.7.2.2
diff --git a/manual/Makefile b/manual/Makefile
index c5866eb..b1f5fa7 100644
--- a/manual/Makefile
+++ b/manual/Makefile
@@ -232,7 +232,10 @@ ifdef objpfx
.PHONY: stubs
stubs: $(objpfx)stubs
endif
-$(objpfx)stubs ../po/manual.pot $(objpfx)stamp%:
+$(objpfx)stubs ../po/manual.pot:
+ $(make-target-directory)
+ touch $@
+$(objpfx)stamp%:
$(make-target-directory)
touch $@