mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-28 23:34:53 +03: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:
		| @@ -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> | ||||
| 
 | ||||
| 	[BZ #18046] | ||||
|   | ||||
							
								
								
									
										8
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								NEWS
									
									
									
									
									
								
							| @@ -10,10 +10,10 @@ Version 2.22 | ||||
| * The following bugs are resolved with this release: | ||||
|  | ||||
|   4719, 14841, 13064, 14094, 15319, 15467, 15790, 15969, 16351, 16560, | ||||
|   16783, 17269, 17523, 17569, 17588, 17792, 17836, 17912, 17916, 17932, | ||||
|   17944, 17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996, | ||||
|   17998, 17999, 18019, 18020, 18029, 18030, 18032, 18038, 18039, 18046, | ||||
|   18047. | ||||
|   16783, 17269, 17523, 17569, 17588, 17711, 17792, 17836, 17912, 17916, | ||||
|   17932, 17944, 17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991, | ||||
|   17996, 17998, 17999, 18019, 18020, 18029, 18030, 18032, 18038, 18039, | ||||
|   18046, 18047. | ||||
|  | ||||
| * Character encoding and ctype tables were updated to Unicode 7.0.0, using | ||||
|   new generator scripts contributed by Pravin Satpute and Mike FABIAN (Red | ||||
|   | ||||
| @@ -130,7 +130,7 @@ endif | ||||
| tests += $(tests-static) | ||||
| ifeq (yes,$(build-shared)) | ||||
| 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 \ | ||||
| 	 nodlopen nodlopen2 neededtest neededtest2 \ | ||||
| 	 neededtest3 neededtest4 unload2 lateglobal initfirst global \ | ||||
| @@ -218,6 +218,9 @@ ifeq (yesyes,$(have-fpie)$(build-shared)) | ||||
| modules-names += tst-piemod1 | ||||
| tests += tst-pie1 tst-pie2 | ||||
| tests-pie += tst-pie1 tst-pie2 | ||||
| tests += vismain | ||||
| tests-pie += vismain | ||||
| CFLAGS-vismain.c = $(PIE-ccflag) | ||||
| endif | ||||
| modules-execstack-yes = tst-execstack-mod | ||||
| extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) | ||||
|   | ||||
| @@ -15,6 +15,11 @@ | ||||
|    License along with the GNU C Library; if not, see | ||||
|    <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 <stdlib.h> | ||||
| #include <string.h> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user