From bc174f20b83d19167ecac14ce0762eddbe47cc64 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Mon, 26 Dec 2016 10:08:51 +0100 Subject: Ignore __stack_chk_fail* in the rtld mapfile computation [BZ #7065] The previous commit prevented rtld itself from being built with -fstack-protector, but this is not quite enough. We identify which objects belong in rtld via a test link and analysis of the resulting mapfile. That link is necessarily done against objects that are stack-protected, so drags in __stack_chk_fail_local, __stack_chk_fail, and all the libc and libio code they use. To stop this happening, use --defsym in the test librtld.map-production link to force the linker to predefine these two symbols (to 0, but it could be to anything). (In a real link, this would of course be catastrophic, but these object files are never used for anything else.) --- ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 82fc4e29d3..ae58d91110 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2016-12-26 Nick Alcock + + [BZ #7065] + * elf/Makefile (dummy-stack-chk-fail): New. + (librtld.map): Use it. + 2016-12-26 Nick Alcock [BZ #7065] -- cgit 1.4.1