mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
Compile vismain with -fPIE and link with -pie
Protocted symbol in shared library can only be accessed from PIE or shared library. Linker in binutils 2.26 enforces it. We must compile vismain with -fPIE and link it with -pie. [BZ #17711] * elf/Makefile (tests): Add vismain only if PIE is enabled. (tests-pie): Add vismain. (CFLAGS-vismain.c): New. * elf/vismain.c: Add comments for PIE requirement.
This commit is contained in:
parent
2ca725c594
commit
ef4ad06fe5
@ -1,3 +1,11 @@
|
|||||||
|
2015-02-27 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
[BZ #17711]
|
||||||
|
* elf/Makefile (tests): Add vismain only if PIE is enabled.
|
||||||
|
(tests-pie): Add vismain.
|
||||||
|
(CFLAGS-vismain.c): New.
|
||||||
|
* elf/vismain.c: Add comments for PIE requirement.
|
||||||
|
|
||||||
2015-02-27 Joseph Myers <joseph@codesourcery.com>
|
2015-02-27 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
[BZ #18046]
|
[BZ #18046]
|
||||||
|
8
NEWS
8
NEWS
@ -10,10 +10,10 @@ Version 2.22
|
|||||||
* The following bugs are resolved with this release:
|
* The following bugs are resolved with this release:
|
||||||
|
|
||||||
4719, 14841, 13064, 14094, 15319, 15467, 15790, 15969, 16351, 16560,
|
4719, 14841, 13064, 14094, 15319, 15467, 15790, 15969, 16351, 16560,
|
||||||
16783, 17269, 17523, 17569, 17588, 17792, 17836, 17912, 17916, 17932,
|
16783, 17269, 17523, 17569, 17588, 17711, 17792, 17836, 17912, 17916,
|
||||||
17944, 17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996,
|
17932, 17944, 17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991,
|
||||||
17998, 17999, 18019, 18020, 18029, 18030, 18032, 18038, 18039, 18046,
|
17996, 17998, 17999, 18019, 18020, 18029, 18030, 18032, 18038, 18039,
|
||||||
18047.
|
18046, 18047.
|
||||||
|
|
||||||
* Character encoding and ctype tables were updated to Unicode 7.0.0, using
|
* Character encoding and ctype tables were updated to Unicode 7.0.0, using
|
||||||
new generator scripts contributed by Pravin Satpute and Mike FABIAN (Red
|
new generator scripts contributed by Pravin Satpute and Mike FABIAN (Red
|
||||||
|
@ -130,7 +130,7 @@ endif
|
|||||||
tests += $(tests-static)
|
tests += $(tests-static)
|
||||||
ifeq (yes,$(build-shared))
|
ifeq (yes,$(build-shared))
|
||||||
tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
|
tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
|
||||||
constload1 order vismain noload filter unload \
|
constload1 order noload filter unload \
|
||||||
reldep reldep2 reldep3 reldep4 nodelete nodelete2 \
|
reldep reldep2 reldep3 reldep4 nodelete nodelete2 \
|
||||||
nodlopen nodlopen2 neededtest neededtest2 \
|
nodlopen nodlopen2 neededtest neededtest2 \
|
||||||
neededtest3 neededtest4 unload2 lateglobal initfirst global \
|
neededtest3 neededtest4 unload2 lateglobal initfirst global \
|
||||||
@ -218,6 +218,9 @@ ifeq (yesyes,$(have-fpie)$(build-shared))
|
|||||||
modules-names += tst-piemod1
|
modules-names += tst-piemod1
|
||||||
tests += tst-pie1 tst-pie2
|
tests += tst-pie1 tst-pie2
|
||||||
tests-pie += tst-pie1 tst-pie2
|
tests-pie += tst-pie1 tst-pie2
|
||||||
|
tests += vismain
|
||||||
|
tests-pie += vismain
|
||||||
|
CFLAGS-vismain.c = $(PIE-ccflag)
|
||||||
endif
|
endif
|
||||||
modules-execstack-yes = tst-execstack-mod
|
modules-execstack-yes = tst-execstack-mod
|
||||||
extra-test-objs += $(addsuffix .os,$(strip $(modules-names)))
|
extra-test-objs += $(addsuffix .os,$(strip $(modules-names)))
|
||||||
|
@ -15,6 +15,11 @@
|
|||||||
License along with the GNU C Library; if not, see
|
License along with the GNU C Library; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* This file must be compiled as PIE to avoid copy relocation when
|
||||||
|
accessing protected symbols defined in shared libaries since copy
|
||||||
|
relocation doesn't work with protected symbols and linker in
|
||||||
|
binutils 2.26 enforces this rule. */
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
Loading…
Reference in New Issue
Block a user