This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, master, updated. glibc-2.13-163-gda62f81
- From: drepper at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 14 May 2011 03:32:03 -0000
- Subject: 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