diff options
author | Roland McGrath <roland@hack.frob.com> | 2015-02-12 13:38:47 -0800 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2015-02-12 13:38:47 -0800 |
commit | 04f5a636b6ac79677967d901a956f336a7ccfee3 (patch) | |
tree | d15e1815c2338b2af7dd504597240368568b7850 /Makeconfig | |
parent | 87a629c5d7aa559e5c144196bce123469b17af4c (diff) | |
download | glibc-04f5a636b6ac79677967d901a956f336a7ccfee3.tar.gz |
Support after-link variable to run a final step on binaries.
Diffstat (limited to 'Makeconfig')
-rw-r--r-- | Makeconfig | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/Makeconfig b/Makeconfig index 751e9ffa32..1e03481b9d 100644 --- a/Makeconfig +++ b/Makeconfig @@ -387,6 +387,14 @@ LDFLAGS.so += $(hashstyle-LDFLAGS) LDFLAGS-rtld += $(hashstyle-LDFLAGS) endif +# Command to run after every final link (executable or shared object). +# This is invoked with $(call after-link,...), so it should operate on +# the file $1. This can be set to do some sort of post-processing on +# binaries, or to perform some sort of static sanity check. +ifndef after-link +after-link = +endif + # Command for linking PIE programs with the C library. ifndef +link-pie +link-pie-before-libc = $(CC) -pie -Wl,-O1 -nostdlib -nostartfiles -o $@ \ @@ -400,10 +408,15 @@ ifndef +link-pie $(common-objpfx)libc% $(+postinit),$^) \ $(link-extra-libs) +link-pie-after-libc = $(+postctorS) $(+postinit) -+link-pie = $(+link-pie-before-libc) $(rtld-LDFLAGS) $(link-libc) \ - $(+link-pie-after-libc) -+link-pie-tests = $(+link-pie-before-libc) $(rtld-tests-LDFLAGS) \ - $(link-libc-tests) $(+link-pie-after-libc) +define +link-pie +$(+link-pie-before-libc) $(rtld-LDFLAGS) $(link-libc) $(+link-pie-after-libc) +$(call after-link,$@) +endef +define +link-pie-tests +$(+link-pie-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \ + $(+link-pie-after-libc) +$(call after-link,$@) +endef endif # Command for statically linking programs with the C library. ifndef +link-static @@ -417,10 +430,14 @@ ifndef +link-static $(common-objpfx)libc% $(+postinit),$^) \ $(link-extra-libs-static) +link-static-after-libc = $(+postctorT) $(+postinit) -+link-static = $(+link-static-before-libc) $(link-libc-static) \ - $(+link-static-after-libc) -+link-static-tests = $(+link-static-before-libc) $(link-libc-static-tests) \ - $(+link-static-after-libc) +define +link-static +$(+link-static-before-libc) $(link-libc-static) $(+link-static-after-libc) +$(call after-link,$@) +endef +define +link-static-tests +$(+link-static-before-libc) $(link-libc-static-tests) $(+link-static-after-libc) +$(call after-link,$@) +endef endif # Commands for linking programs with the C library. ifndef +link @@ -436,10 +453,15 @@ ifeq (yes,$(build-shared)) $(common-objpfx)libc% $(+postinit),$^) \ $(link-extra-libs) +link-after-libc = $(+postctor) $(+postinit) -+link = $(+link-before-libc) $(rtld-LDFLAGS) $(link-libc) \ - $(+link-after-libc) -+link-tests = $(+link-before-libc) $(rtld-tests-LDFLAGS) \ - $(link-libc-tests) $(+link-after-libc) +define +link +$(+link-before-libc) $(rtld-LDFLAGS) $(link-libc) $(+link-after-libc) +$(call after-link,$@) +endef +define +link-tests +$(+link-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \ + $(+link-after-libc) +$(call after-link,$@) +endef else +link = $(+link-static) +link-tests = $(+link-static-tests) |