This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.13-163-gda62f81


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  da62f81bdd23bb5095cd54c0b34ae6d5a93df69e (commit)
      from  20030ae6d7e7187d7caf1b23c4aa5471fcf56d47 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=da62f81bdd23bb5095cd54c0b34ae6d5a93df69e

commit da62f81bdd23bb5095cd54c0b34ae6d5a93df69e
Author: Andreas Schwab <schwab@redhat.com>
Date:   Fri May 13 23:31:43 2011 -0400

    Add support for generated PIE link rules

diff --git a/ChangeLog b/ChangeLog
index 839ad68..a25ddb2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2011-05-11  Andreas Schwab  <schwab@redhat.com>
+
+	* Makeconfig (+link-pie): Indent.
+	* Rules (binaries-pie): Define if $(have-fpie) and
+	$(build-shared).
+	(binaries-shared): Also filter out $(binaries-pie).
+	($(addprefix $(objpfx),$(binaries-pie))): New rule.
+	* nscd/Makefile (others-pie): Add nscd.
+	(LDFLAGS-nscd): Set this instead of relro-LDFLAGS.
+	($(objpfx)nscd): Remove command override.
+	* login/Makefile (others-pie): Add pt_chown.
+	($(objpfx)pt_chown): Remove command override.
+	* elf/Makefile: Add PIE tests to tests and tests-pie variables and
+	remove command overrides.
+
 2011-05-13  Ulrich Drepper  <drepper@gmail.com>
 
 	* libio/tst_putwc.c: Fix error messages.
diff --git a/Makeconfig b/Makeconfig
index 4d91458..3c51498 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -450,9 +450,9 @@ ifndef +link-pie
 	     $(addprefix $(csu-objpfx),S$(start-installed-name)) \
 	     $(+preinit) $(+prectorS) \
 	     $(filter-out $(addprefix $(csu-objpfx),start.o \
-	     S$(start-installed-name))\
-	     $(+preinit) $(link-extra-libs) \
-	     $(common-objpfx)libc% $(+postinit),$^) \
+						    S$(start-installed-name))\
+			  $(+preinit) $(link-extra-libs) \
+			  $(common-objpfx)libc% $(+postinit),$^) \
 	     $(link-extra-libs) $(link-libc) $(+postctorS) $(+postinit)
 endif
 # Command for statically linking programs with the C library.
diff --git a/Rules b/Rules
index 5ace24c..00f03df 100644
--- a/Rules
+++ b/Rules
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2000,2002,2003,2004,2005,2006
+# Copyright (C) 1991-2000,2002,2003,2004,2005,2006,2011
 #	Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
@@ -106,12 +106,19 @@ endif
 ifeq ($(build-programs),yes)
 binaries-all = $(others) $(sysdep-others) $(tests) $(xtests) $(test-srcs)
 binaries-static = $(others-static) $(tests-static) $(xtests-static)
+ifeq (yesyes,$(have-fpie)$(build-shared))
+binaries-pie = $(others-pie) $(tests-pie) $(xtests-pie)
+else
+binaries-pie =
+endif
 else
 binaries-all = $(tests) $(xtests) $(test-srcs)
 binaries-static =
+binaries-pie =
 endif
 
-binaries-shared = $(filter-out $(binaries-static), $(binaries-all))
+binaries-shared = $(filter-out $(binaries-pie) $(binaries-static), \
+			       $(binaries-all))
 
 ifneq "$(strip $(binaries-shared))" ""
 $(addprefix $(objpfx),$(binaries-shared)): %: %.o \
@@ -120,6 +127,13 @@ $(addprefix $(objpfx),$(binaries-shared)): %: %.o \
 	$(+link)
 endif
 
+ifneq "$(strip $(binaries-pie))" ""
+$(addprefix $(objpfx),$(binaries-pie)): %: %.o \
+  $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
+  $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
+	$(+link-pie)
+endif
+
 ifneq "$(strip $(binaries-static))" ""
 $(addprefix $(objpfx),$(binaries-static)): %: %.o \
   $(sort $(filter $(common-objpfx)lib%,$(link-libc-static))) \
diff --git a/elf/Makefile b/elf/Makefile
index a18c1cd..8d9657d 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -213,9 +213,6 @@ ifeq (x86_64,$(config-machine))
 tests += tst-audit3 tst-audit4 tst-audit5 tst-audit6 tst-audit7
 endif
 endif
-ifeq (yesyes,$(have-fpie)$(build-shared))
-tests: $(objpfx)tst-pie1.out
-endif
 tests: $(objpfx)tst-leaks1-mem $(objpfx)noload-mem
 tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
@@ -268,8 +265,8 @@ modules-names += tst-array2dep tst-array5dep
 endif
 ifeq (yesyes,$(have-fpie)$(build-shared))
 modules-names += tst-piemod1
-extra-test-objs += tst-pie1.o
-test-extras += tst-pie1
+tests += tst-pie1
+tests-pie += tst-pie1
 endif
 ifeq (x86_64,$(config-machine))
 modules-names += tst-auditmod3a tst-auditmod3b \
@@ -306,9 +303,8 @@ test-extras += $(ifunc-test-modules)
 ifeq (yes,$(have-fpie))
 ifunc-pie-tests = ifuncmain1pie ifuncmain1vispie ifuncmain1staticpie \
 		  ifuncmain5pie ifuncmain6pie ifuncmain7pie
-tests: $(patsubst %,$(objpfx)%.out, $(ifunc-pie-tests))
-extra-test-objs += $(ifunc-pie-tests:=.o)
-test-extras += $(ifunc-pie-tests)
+tests += $(ifunc-pie-tests)
+tests-pie += $(ifunc-pie-tests)
 endif
 modules-names += ifuncmod1 ifuncmod3 ifuncmod5 ifuncmod6
 endif
@@ -911,19 +907,9 @@ $(objpfx)tst-array5-static.out: $(objpfx)tst-array5-static
 	$(objpfx)tst-array5-static > $@
 	cmp $@ tst-array5-static.exp > /dev/null
 
-ifeq (yesyes,$(have-fpie)$(build-shared))
 CFLAGS-tst-pie1.c += $(pie-ccflag)
 
-$(objpfx)tst-pie1.out: $(objpfx)tst-pie1
-	$(elf-objpfx)$(rtld-installed-name) \
-	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
-	  $< > $@
-
-$(objpfx)tst-pie1: $(objpfx)tst-pie1.o $(objpfx)tst-piemod1.so
-	$(+link-pie)
-
-generated += tst-pie1 tst-pie1.out tst-pie1.o
-endif
+$(objpfx)tst-pie1: $(objpfx)tst-piemod1.so
 
 check-textrel-CFLAGS = -O -Wall -D_XOPEN_SOURCE=600 -D_BSD_SOURCE
 $(objpfx)check-textrel: check-textrel.c
@@ -1086,7 +1072,6 @@ CFLAGS-ifuncmain7picstatic.c += $(pic-ccflag)
 
 LDFLAGS-ifuncmain3 = -Wl,-export-dynamic
 
-ifeq (yesyes,$(have-fpie)$(build-shared))
 CFLAGS-ifuncmain1pie.c += $(pie-ccflag)
 CFLAGS-ifuncmain1vispie.c += $(pie-ccflag)
 CFLAGS-ifuncmain1staticpie.c += $(pie-ccflag)
@@ -1094,66 +1079,11 @@ CFLAGS-ifuncmain5pie.c += $(pie-ccflag)
 CFLAGS-ifuncmain6pie.c += $(pie-ccflag)
 CFLAGS-ifuncmain7pie.c += $(pie-ccflag)
 
-$(objpfx)ifuncmain1pie.out: $(objpfx)ifuncmain1pie
-	$(elf-objpfx)$(rtld-installed-name) \
-	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
-	  $< > $@
-
-$(objpfx)ifuncmain1pie: $(objpfx)ifuncmain1pie.o $(objpfx)ifuncmod1.so
-	$(+link-pie)
-
-generated += ifuncmain1pie ifuncmain1pie.out
-
-$(objpfx)ifuncmain1staticpie.out: $(objpfx)ifuncmain1staticpie
-	$(elf-objpfx)$(rtld-installed-name) \
-	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
-	  $< > $@
-
-$(objpfx)ifuncmain1staticpie: $(objpfx)ifuncmain1staticpie.o $(objpfx)ifuncdep1pic.o
-	$(+link-pie)
-
-generated += ifuncmain1staticpie ifuncmain1staticpie.out
-
-$(objpfx)ifuncmain1vispie.out: $(objpfx)ifuncmain1vispie
-	$(elf-objpfx)$(rtld-installed-name) \
-	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
-	  $< > $@
-
-$(objpfx)ifuncmain1vispie: $(objpfx)ifuncmain1vispie.o $(objpfx)ifuncmod1.so
-	$(+link-pie)
-
-generated += ifuncmain1vispie ifuncmain1vispie.out
-
-$(objpfx)ifuncmain5pie.out: $(objpfx)ifuncmain5pie
-	$(elf-objpfx)$(rtld-installed-name) \
-	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
-	  $< > $@
-
-$(objpfx)ifuncmain5pie: $(objpfx)ifuncmain5pie.o $(objpfx)ifuncmod5.so
-	$(+link-pie)
-
-generated += ifuncmain5pie ifuncmain5pie.out
-
-$(objpfx)ifuncmain6pie.out: $(objpfx)ifuncmain6pie
-	$(elf-objpfx)$(rtld-installed-name) \
-	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
-	  $< > $@
-
-$(objpfx)ifuncmain6pie: $(objpfx)ifuncmain6pie.o $(objpfx)ifuncmod6.so
-	$(+link-pie)
-
-generated += ifuncmain6pie ifuncmain6pie.out
-
-$(objpfx)ifuncmain7pie.out: $(objpfx)ifuncmain7pie
-	$(elf-objpfx)$(rtld-installed-name) \
-	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
-	  $< > $@
-
-$(objpfx)ifuncmain7pie: $(objpfx)ifuncmain7pie.o
-	$(+link-pie)
-
-generated += ifuncmain7pie ifuncmain7pie.out
-endif
+$(objpfx)ifuncmain1pie: $(objpfx)ifuncmod1.so
+$(objpfx)ifuncmain1staticpie: $(objpfx)ifuncdep1pic.o
+$(objpfx)ifuncmain1vispie: $(objpfx)ifuncmod1.so
+$(objpfx)ifuncmain5pie: $(objpfx)ifuncmod5.so
+$(objpfx)ifuncmain6pie: $(objpfx)ifuncmod6.so
 
 $(objpfx)ifuncmain1: $(addprefix $(objpfx),ifuncmod1.so)
 $(objpfx)ifuncmain1pic: $(addprefix $(objpfx),ifuncmod1.so)
diff --git a/login/Makefile b/login/Makefile
index beb2a5c..46bde13 100644
--- a/login/Makefile
+++ b/login/Makefile
@@ -30,6 +30,7 @@ routines := getutent getutent_r getutid getutline getutid_r getutline_r \
 CFLAGS-grantpt.c = -DLIBEXECDIR='"$(libexecdir)"'
 
 others = utmpdump pt_chown
+others-pie = pt_chown
 install-others-programs = $(inst_libexecdir)/pt_chown
 
 distribute := utmp-private.h utmp-equal.h pty-private.h
@@ -67,9 +68,6 @@ CFLAGS-pt_chown.c = $(pt_chown-cflags)
 LDLIBS-pt_chown = $(libcap)
 ifeq (yesyes,$(have-fpie)$(build-shared))
 LDFLAGS-pt_chown = -Wl,-z,now
-
-$(objpfx)pt_chown: $(objpfx)pt_chown.o
-	$(+link-pie)
 endif
 
 # pt_chown needs to be setuid root.
diff --git a/nscd/Makefile b/nscd/Makefile
index 4abae8c..097e6f0 100644
--- a/nscd/Makefile
+++ b/nscd/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1998,2000,2002-2009 Free Software Foundation, Inc.
+# Copyright (C) 1998,2000,2002-2009,2011 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
@@ -38,9 +38,8 @@ nscd-modules := nscd connections pwdcache getpwnam_r getpwuid_r grpcache \
 
 ifeq ($(have-thread-library),yes)
 
-ifneq (yesyes,$(have-fpie)$(build-shared))
 others += nscd
-endif
+others-pie += nscd
 install-sbin := nscd
 
 extra-objs := $(nscd-modules:=.o)
@@ -124,10 +123,7 @@ CFLAGS-getsrvbypt_r.c += $(nscd-cflags)
 CFLAGS-res_hconf.c += $(nscd-cflags)
 
 ifeq (yesyes,$(have-fpie)$(build-shared))
-relro-LDFLAGS += -Wl,-z,now
-
-$(objpfx)nscd: $(addprefix $(objpfx),$(nscd-modules:=.o))
-	$(+link-pie)
+LDFLAGS-nscd = -Wl,-z,now
 endif
 
 # This makes sure -DNOT_IN_libc is passed for all these modules.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog      |   15 +++++++++
 Makeconfig     |    6 ++--
 Rules          |   18 ++++++++++-
 elf/Makefile   |   90 ++++++-------------------------------------------------
 login/Makefile |    4 +--
 nscd/Makefile  |   10 ++----
 6 files changed, 48 insertions(+), 95 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]