Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.1:Update
libhugetlbfs
libhugetlbfs.linkerscript.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File libhugetlbfs.linkerscript.patch of Package libhugetlbfs
ADAM G. LITKE <agl@us.ibm.com> - Libhugetlbfs ships a set of linker scripts which can be used to enable ELF segment remapping into huge pages. These linker scripts no longer work with the version of binutils shipped with SLES11. This has been a known problem. Linker scripts are essentially tied to specific versions of binutils but libhugetlbfs only ships a single set. To avoid maintaining and shipping an ever-growing number of linker scripts, a new method of linking binaries for use with huge pages was developed in libhugetlbfs-2.0. Unfortunately, some customers will likely continue to use the old method of linking binaries (with the shipped linker scripts) and will experience problems. The solution to this problem is either to fix the linker scripts for SLES11 by supplying a distro-specific patch, or strip out the deprecated linker scripts so they cannot be used at all. I would prefer to fix the linker scripts (if possible) to allow customers more time to switch to the new linking method. Fix for ppc32 BDT script The only linker script that is known to have problems is the script used to place text, data, and bss into huge pages on 32bit PowerPC. The attached patch fixes the issue by adding the 'SPECIAL' notation to the .plt and .got sections which is required for correct functioning of the dynamic linker. --- ldscripts/elf32ppclinux.xBDT | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) --- a/ldscripts/elf32ppclinux.xBDT +++ b/ldscripts/elf32ppclinux.xBDT @@ -163,8 +163,9 @@ SECTIONS .got1 : { *(.got1) } :hdata .got2 : { *(.got2) } :hdata .dynamic : { *(.dynamic) } :dynamic :hdata - .got : { *(.got.plt .got) } :hdata + .got : SPECIAL { *(.got) } :hdata /* . = DATA_SEGMENT_RELRO_END (0, .); */ + .plt : SPECIAL { *(.plt) } :hdata .data : { *(.data .data.* .gnu.linkonce.d.*) @@ -172,6 +173,7 @@ SECTIONS SORT(CONSTRUCTORS) } :hdata .data1 : { *(.data1) } :hdata + .got : SPECIAL { *(.got) } :hdata /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so we can shorten the on-disk segment size. */ @@ -190,7 +192,7 @@ SECTIONS *(.scommon) PROVIDE (__sbss_end = .); PROVIDE (___sbss_end = .); } :hdata - .plt : { *(.plt) } :hdata + .plt : SPECIAL { *(.plt) } :hdata .bss : { *(.dynbss)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor