Ignore __stack_chk_fail* in the rtld mapfile computation [BZ #7065]
authorNick Alcock <nick.alcock@oracle.com>
Mon, 26 Dec 2016 09:08:51 +0000 (10:08 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 26 Dec 2016 09:08:51 +0000 (10:08 +0100)
commitbc174f20b83d19167ecac14ce0762eddbe47cc64
tree0e04ae0e0507b28d468f24e9110ce4880bed2617
parent995635f95b707488c23bba07be8016c9682d4045
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
elf/Makefile