diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | Makeconfig | 8 | ||||
-rw-r--r-- | elf/rtld-Rules | 13 |
3 files changed, 22 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index f3735a9d68..68351b6ac7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +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-10-18 Andreas Schwab <schwab@redhat.com> * elf/dl-open.c (dl_open_worker): Don't expand DST here, let diff --git a/Makeconfig b/Makeconfig index c5a58f2abf..e5cbf646fa 100644 --- a/Makeconfig +++ b/Makeconfig @@ -695,7 +695,7 @@ CPPFLAGS = $($(subdir)-CPPFLAGS) $(+includes) $(defines) \ -include $(..)include/libc-symbols.h $(sysdep-CPPFLAGS) \ $(CPPFLAGS-$(suffix $@)) \ $(foreach lib,$(libof-$(basename $(@F))) \ - $(libof-$(<F)) $(libof-$(@F)),$(CPPFLAGS-$(lib))) \ + $(libof-$(<F)) $(libof-$(@F)),$(CPPFLAGS-$(lib))) \ $(CPPFLAGS-$(<F)) $(CPPFLAGS-$(@F)) $(CPPFLAGS-$(basename $(@F))) override CFLAGS = -std=gnu99 $(gnu89-inline-CFLAGS) \ $(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \ @@ -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 9f31a560e5..10c9452ce0 100644 --- a/elf/rtld-Rules +++ b/elf/rtld-Rules @@ -1,6 +1,6 @@ # Subroutine makefile for compiling libc modules linked into dynamic linker. -# Copyright (C) 2002, 2003, 2005, 2006, 2008 Free Software Foundation, Inc. +# Copyright (C) 2002,2003,2005,2006,2008,2010 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 @@ -56,7 +56,7 @@ $(objpfx)rtld-libc.a: $(foreach dir,$(rtld-subdirs),\ # Use the verbose option of ar and tar when not running silently. ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s verbose := v -else # -s +else # -s verbose := endif # not -s @@ -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) |