OBS User unknown 2008-10-22 16:13:52 +00:00 committed by Git OBS Bridge
parent 6c9379761a
commit 973e01c990
3 changed files with 71 additions and 1 deletions

View File

@ -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 Wed Aug 27 18:33:12 CEST 2008 - olh@suse.de

View File

@ -0,0 +1,61 @@
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)

View File

@ -24,7 +24,7 @@ License: LGPL v2.1 or later
Group: Development/Libraries/Other Group: Development/Libraries/Other
Summary: hugetlbfs helper library Summary: hugetlbfs helper library
Version: 2.0 Version: 2.0
Release: 1 Release: 7
Url: http://libhugetlbfs.sourceforge.net/ Url: http://libhugetlbfs.sourceforge.net/
BuildRoot: %{_tmppath}/%{name}-%{version}-build 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 %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 Patch1: libhugetlbfs.ia64-libdir.patch
Patch2: libhugetlbfs.s390.patch Patch2: libhugetlbfs.s390.patch
Patch3: libhugetlbfs.tests-malloc.patch Patch3: libhugetlbfs.tests-malloc.patch
Patch4: libhugetlbfs.linkerscript.patch
%description %description
libhugetlbfs interacts with the Linux hugetlbfs to make large pages libhugetlbfs interacts with the Linux hugetlbfs to make large pages
@ -51,6 +52,7 @@ Authors:
%patch1 -p1 %patch1 -p1
%patch2 -p1 %patch2 -p1
%patch3 -p1 %patch3 -p1
%patch4 -p1
%build %build
make %{my_make_flags} libs $tests make %{my_make_flags} libs $tests
@ -77,6 +79,8 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/lib* %{_libdir}/lib*
%changelog %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 * Wed Aug 27 2008 olh@suse.de
- update to version 2.0 (fate#304340) - update to version 2.0 (fate#304340)
New Features New Features