Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 874307 Details for
Bug 1076400
libhugetlbfs support ppc64le
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
libhugetlbfs-2.17_ppc64le.patch
libhugetlbfs-2.17_ppc64le.patch (text/plain), 9.24 KB, created by
Michel Normand
on 2014-03-14 10:11:02 UTC
(
hide
)
Description:
libhugetlbfs-2.17_ppc64le.patch
Filename:
MIME Type:
Creator:
Michel Normand
Created:
2014-03-14 10:11:02 UTC
Size:
9.24 KB
patch
obsolete
>From 1594705e64cbe51e0f0b6c5ebcad6adf230e6e35 Mon Sep 17 00:00:00 2001 >From: Michel Normand <normand@linux.vnet.ibm.com> >Date: Fri, 14 Mar 2014 04:51:35 -0500 >Subject: [PATCH] libhugetlbfs add ppc64le support > >related code change already available in libhugetlbfs upstream >after tag 2.17 (there is not yet new 2.18 tag) > >Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com> > >diff --git a/libhugetlbfs.ppc64le.patch b/libhugetlbfs.ppc64le.patch >new file mode 100644 >index 0000000..f472074 >--- /dev/null >+++ b/libhugetlbfs.ppc64le.patch >@@ -0,0 +1,42 @@ >+Add ppc64le support >+ >+Signed-off-by: Anton Blanchard <anton@samba.org> >+--- >+ >+Index: libhugetlbfs-2.17/Makefile >+=================================================================== >+--- libhugetlbfs-2.17.orig/Makefile >++++ libhugetlbfs-2.17/Makefile >+@@ -47,6 +47,11 @@ CC32 = $(CC) -m32 >+ ELF32 = elf32ppclinux >+ endif >+ else >++ifeq ($(ARCH),powerpc64le) >++CC64 = gcc -m64 >++ELF64 = elf64lppc >++TMPLIB64 = lib64 >++else >+ ifeq ($(ARCH),powerpc) >+ CC32 = $(CC) -m32 >+ ELF32 = elf32ppclinux >+@@ -110,6 +115,7 @@ $(error "Unrecognized architecture ($(AR >+ endif >+ endif >+ endif >++endif >+ endif >+ endif >+ endif >+Index: libhugetlbfs-2.17/contrib/tlbmiss_cost.sh >+=================================================================== >+--- libhugetlbfs-2.17.orig/contrib/tlbmiss_cost.sh >++++ libhugetlbfs-2.17/contrib/tlbmiss_cost.sh >+@@ -44,7 +44,7 @@ cpumhz() { >+ FNAME="cpu MHz" >+ FINDEX=4 >+ case "`uname -m`" in >+- ppc64) >++ ppc64|ppc64le) >+ FNAME="clock" >+ FINDEX=3 >+ ;; >diff --git a/libhugetlbfs.ppc64le.step2.patch b/libhugetlbfs.ppc64le.step2.patch >new file mode 100644 >index 0000000..5115680 >--- /dev/null >+++ b/libhugetlbfs.ppc64le.step2.patch >@@ -0,0 +1,70 @@ >+Subject: libhugetlbfs.ppc64le.step2 >+From: Michel Normand <normand@linux.vnet.ibm.com> >+ >+Need to create the elf64lppc.c supposed to be a soft link of elf64ppc.c >+But do not know hwo to do that via a patch <= TODO >+ >+Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com> >+--- >+ elf64lppc.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ >+ 1 file changed, 54 insertions(+) >+ >+Index: libhugetlbfs-2.16/elf64lppc.c >+=================================================================== >+--- /dev/null >++++ libhugetlbfs-2.16/elf64lppc.c >+@@ -0,0 +1,54 @@ >++/* >++ * libhugetlbfs - Easy use of Linux hugepages >++ * Copyright (C) 2008 Adam Litke, IBM Corporation. >++ * >++ * This library is free software; you can redistribute it and/or >++ * modify it under the terms of the GNU Lesser General Public License >++ * as published by the Free Software Foundation; either version 2.1 of >++ * the License, or (at your option) any later version. >++ * >++ * This library is distributed in the hope that it will be useful, but >++ * WITHOUT ANY WARRANTY; without even the implied warranty of >++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >++ * Lesser General Public License for more details. >++ * >++ * You should have received a copy of the GNU Lesser General Public >++ * License along with this library; if not, write to the Free Software >++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA >++ */ >++ >++#include <elf.h> >++#include <link.h> >++ >++#include "libhugetlbfs_internal.h" >++ >++/* >++ * The powerpc 64-bit ELF ABI defines the location and size of the plt as >++ * follows (see the ELF ABI and powerpc64 supplement for details): >++ * >++ * Location: (data segment p_vaddr) + (data segment p_filesz) >++ * Size: (dynamic symbol table DT_PTRELSZ entry) + 24 >++ * >++ * plt entries have likely been initialized when the libhugetlbfs remapping >++ * code runs, we must copy these entries when preparing the data segment. Tell >++ * the arch-independent code how many bytes to copy. >++ */ >++ElfW(Word) plt_extrasz(ElfW(Dyn) *dyntab) >++{ >++ int i; >++ ElfW(Word) pltrelsz = 0; >++ >++ /* Find the needed information in the dynamic section */ >++ for (i = 0; dyntab[i].d_tag != DT_NULL; i++) >++ if (dyntab[i].d_tag == DT_PLTRELSZ) >++ pltrelsz = dyntab[i].d_un.d_val; >++ >++ /* pltrelsz indicates the size of all plt entries used to cache >++ * symbol lookups, but does not include the reserved entry at PLT[0]. >++ * 24 bytes is the ABI-defined size of a plt entry. >++ */ >++ if (pltrelsz) >++ return pltrelsz + 24; >++ else >++ return 0; >++} >diff --git a/libhugetlbfs.ppc64le.step3.patch b/libhugetlbfs.ppc64le.step3.patch >new file mode 100644 >index 0000000..4ae470d >--- /dev/null >+++ b/libhugetlbfs.ppc64le.step3.patch >@@ -0,0 +1,91 @@ >+Subject: libhugetlbfs ppc64le step3 >+From: Michel Normand <normand@linux.vnet.ibm.com> >+ >+sys-elf64ppc.S updated to support PowerPC ABI V2 >+and create a soft link as sys-elf64lppc.S >+TODO: I do not know how to create a soft link via patch >+ >+Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com> >+--- >+ sys-elf64lppc.S | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ >+ sys-elf64ppc.S | 7 ++++++- >+ 2 files changed, 54 insertions(+), 1 deletion(-) >+ >+Index: libhugetlbfs-2.16/sys-elf64ppc.S >+=================================================================== >+--- libhugetlbfs-2.16.orig/sys-elf64ppc.S >++++ libhugetlbfs-2.16/sys-elf64ppc.S >+@@ -20,7 +20,7 @@ >+ */ >+ >+ .text >+- >++#if _CALL_ELF != 2 >+ .align 2 >+ .globl direct_syscall >+ .globl .direct_syscall >+@@ -32,6 +32,11 @@ direct_syscall: >+ .previous >+ .type .direct_syscall,@function >+ .direct_syscall: >++#else >++ .globl direct_syscall >++ .type direct_syscall,@function >++direct_syscall: >++#endif >+ mr 0,3 >+ mr 3,4 >+ mr 4,5 >+Index: libhugetlbfs-2.16/sys-elf64lppc.S >+=================================================================== >+--- /dev/null >++++ libhugetlbfs-2.16/sys-elf64lppc.S >+@@ -0,0 +1,48 @@ >++/* >++ * libhugetlbfs - Easy use of Linux hugepages >++ * Copyright (C) 2007 David Gibson, IBM Corporation. >++ * >++ * Based on code from the GNU C Library, Copyright Free Software Foundation, Inc. >++ * >++ * This library is free software; you can redistribute it and/or >++ * modify it under the terms of the GNU Lesser General Public License >++ * as published by the Free Software Foundation; either version 2.1 of >++ * the License, or (at your option) any later version. >++ * >++ * This library is distributed in the hope that it will be useful, but >++ * WITHOUT ANY WARRANTY; without even the implied warranty of >++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >++ * Lesser General Public License for more details. >++ * >++ * You should have received a copy of the GNU Lesser General Public >++ * License along with this library; if not, write to the Free Software >++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA >++ */ >++ >++ .text >++#if _CALL_ELF != 2 >++ .align 2 >++ .globl direct_syscall >++ .globl .direct_syscall >++ .section ".opd","aw" >++direct_syscall: >++ .quad .direct_syscall >++ .quad .TOC.@tocbase >++ .quad 0 >++ .previous >++ .type .direct_syscall,@function >++.direct_syscall: >++#else >++ .globl direct_syscall >++ .type direct_syscall,@function >++direct_syscall: >++#endif >++ mr 0,3 >++ mr 3,4 >++ mr 4,5 >++ mr 5,6 >++ mr 6,7 >++ mr 7,8 >++ mr 8,9 >++ sc >++ blr >diff --git a/libhugetlbfs.ppc64le.step4.patch b/libhugetlbfs.ppc64le.step4.patch >new file mode 100644 >index 0000000..4e2f722 >--- /dev/null >+++ b/libhugetlbfs.ppc64le.step4.patch >@@ -0,0 +1,37 @@ >+Subject: libhugetlbfs.ppc64le.step4 >+From: Michel Normand <normand@linux.vnet.ibm.com> >+ >+ppc64le support (step4) Add --hugetlbfs-align >+ >+use this existing new method rather than the deprecated linker-script. >+ >+Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com> >+--- >+ Makefile | 1 + >+ ld.hugetlbfs | 1 + >+ 2 files changed, 2 insertions(+) >+ >+Index: libhugetlbfs-2.17/Makefile >+=================================================================== >+--- libhugetlbfs-2.17.orig/Makefile >++++ libhugetlbfs-2.17/Makefile >+@@ -51,6 +51,7 @@ ifeq ($(ARCH),ppc64le) >+ CC64 = gcc -m64 >+ ELF64 = elf64lppc >+ TMPLIB64 = lib64 >++CUSTOM_LDSCRIPTS = no >+ else >+ ifeq ($(ARCH),powerpc) >+ CC32 = $(CC) -m32 >+Index: libhugetlbfs-2.17/ld.hugetlbfs >+=================================================================== >+--- libhugetlbfs-2.17.orig/ld.hugetlbfs >++++ libhugetlbfs-2.17/ld.hugetlbfs >+@@ -84,6 +84,7 @@ fi >+ MB=$((1024*1024)) >+ case "$EMU" in >+ elf32ppclinux|elf64ppc) HPAGE_SIZE=$((16*$MB)) SLICE_SIZE=$((256*$MB)) ;; >++elf64lppc) HPAGE_SIZE=$((16*$MB)) SLICE_SIZE=$((256*$MB)) ;; >+ elf_i386|elf_x86_64) HPAGE_SIZE=$((4*$MB)) SLICE_SIZE=$HPAGE_SIZE ;; >+ elf_s390|elf64_s390) HPAGE_SIZE=$((1*$MB)) SLICE_SIZE=$HPAGE_SIZE ;; >+ armelf_linux_eabi|aarch64elf) HPAGE_SIZE=$((2*MB)) SLICE_SIZE=$HPAGE_SIZE ;; >diff --git a/libhugetlbfs.spec b/libhugetlbfs.spec >index ee543b5..bee4f4b 100644 >--- a/libhugetlbfs.spec >+++ b/libhugetlbfs.spec >@@ -9,6 +9,10 @@ URL: http://libhugetlbfs.sourceforge.net/ > Source0: http://downloads.sourceforge.net/libhugetlbfs/%{name}-%{version}.tar.gz > Patch0: libhugetlbfs-2.17-s390.patch > Patch1: libhugetlbfs-2.17-ppc.patch >+Patch2: libhugetlbfs.ppc64le.patch >+Patch3: libhugetlbfs.ppc64le.step2.patch >+Patch4: libhugetlbfs.ppc64le.step3.patch >+Patch5: libhugetlbfs.ppc64le.step4.patch > > BuildRequires: glibc-devel > BuildRequires: glibc-static >@@ -44,6 +48,10 @@ pool size control. pagesize lists page sizes available on the machine. > %setup -q -n %{name}-%{version} > %patch0 -p1 -b .s390 > %patch1 -p1 -b .ppc >+%patch2 -p1 >+%patch3 -p1 >+%patch4 -p1 >+%patch5 -p1 > > %build > # Parallel builds are not reliable
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 1076400
: 874307 |
883505