diff --git a/libhugetlbfs.changes b/libhugetlbfs.changes index 8732f82..d18a456 100644 --- a/libhugetlbfs.changes +++ b/libhugetlbfs.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Oct 21 14:24:22 CEST 2008 - olh@suse.de + +- handle older binutils versions in elf32ppclinux.xBDT (bnc#436451 - LTC49076) + ------------------------------------------------------------------- Wed Aug 27 18:33:12 CEST 2008 - olh@suse.de diff --git a/libhugetlbfs.linkerscript.patch b/libhugetlbfs.linkerscript.patch new file mode 100644 index 0000000..b7fa191 --- /dev/null +++ b/libhugetlbfs.linkerscript.patch @@ -0,0 +1,61 @@ +ADAM G. LITKE - +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) diff --git a/libhugetlbfs.spec b/libhugetlbfs.spec index f30471a..08088d5 100644 --- a/libhugetlbfs.spec +++ b/libhugetlbfs.spec @@ -24,7 +24,7 @@ License: LGPL v2.1 or later Group: Development/Libraries/Other Summary: hugetlbfs helper library Version: 2.0 -Release: 1 +Release: 7 Url: http://libhugetlbfs.sourceforge.net/ BuildRoot: %{_tmppath}/%{name}-%{version}-build %define my_make_flags V=1 CFLAGS="$RPM_OPT_FLAGS -g -fPIC" BUILDTYPE=NATIVEONLY PREFIX=/usr LIBDIR32=%{_libdir} DESTDIR=$RPM_BUILD_ROOT @@ -33,6 +33,7 @@ Patch0: libhugetlbfs.install-header.patch Patch1: libhugetlbfs.ia64-libdir.patch Patch2: libhugetlbfs.s390.patch Patch3: libhugetlbfs.tests-malloc.patch +Patch4: libhugetlbfs.linkerscript.patch %description libhugetlbfs interacts with the Linux hugetlbfs to make large pages @@ -51,6 +52,7 @@ Authors: %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 %build make %{my_make_flags} libs $tests @@ -77,6 +79,8 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/lib* %changelog +* Tue Oct 21 2008 olh@suse.de +- handle older binutils versions in elf32ppclinux.xBDT (bnc#436451 - LTC49076) * Wed Aug 27 2008 olh@suse.de - update to version 2.0 (fate#304340) New Features