Hello community,
here is the log from the commit of package libhugetlbfs for openSUSE:Factory checked in at 2015-02-22 17:26:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libhugetlbfs (Old)
and /work/SRC/openSUSE:Factory/.libhugetlbfs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libhugetlbfs"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libhugetlbfs/libhugetlbfs.changes 2014-04-09 18:47:36.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libhugetlbfs.new/libhugetlbfs.changes 2015-02-22 17:26:22.000000000 +0100
@@ -1,0 +2,13 @@
+Fri Feb 20 12:11:44 UTC 2015 - normand@linux.vnet.ibm.com
+
+- update to 2.18
+ to solve build failures for ppc/ppc64.
+ remove following patches now included in 2.18:
+ libhugetlbfs-ppc64le.patch
+ libhugetlbfs.ppc64le.step2.patch
+ libhugetlbfs.ppc64le.step3.patch
+ libhugetlbfs.ppc64le.step4.patch
+- Add fix_plt_extrasz_always_returning_0_on_ppc64le.patch
+ already upstream.
+
+-------------------------------------------------------------------
Old:
----
libhugetlbfs-2.17.tar.gz
libhugetlbfs-ppc64le.patch
libhugetlbfs.ppc64le.step2.patch
libhugetlbfs.ppc64le.step3.patch
libhugetlbfs.ppc64le.step4.patch
New:
----
fix_plt_extrasz_always_returning_0_on_ppc64le.patch
libhugetlbfs-2.18.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libhugetlbfs.spec ++++++
--- /var/tmp/diff_new_pack.n14yqY/_old 2015-02-22 17:26:23.000000000 +0100
+++ /var/tmp/diff_new_pack.n14yqY/_new 2015-02-22 17:26:23.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libhugetlbfs
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -31,7 +31,7 @@
Obsoletes: libhugetlbfs-64bit
%endif
#
-Version: 2.17
+Version: 2.18
Release: 0
Url: http://libhugetlbfs.sourceforge.net/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -42,12 +42,9 @@
Patch4: libhugetlbfs.tests-malloc.patch
Patch7: libhugetlbfs_ia64_fix_missing_test.patch
Patch8: libhugetlbfs_fix_tests.patch
-Patch9: libhugetlbfs-ppc64le.patch
-Patch10: libhugetlbfs.ppc64le.step2.patch
-Patch11: libhugetlbfs.ppc64le.step3.patch
-Patch12: libhugetlbfs.ppc64le.step4.patch
Patch13: ignore-perl-modules.diff
Patch14: disable-rw-on-non-ldscripts.diff
+Patch15: fix_plt_extrasz_always_returning_0_on_ppc64le.patch
%description
The libhugetlbfs package interacts with the Linux hugetlbfs to
@@ -67,12 +64,9 @@
%patch4 -p1
%patch7 -p1
%patch8 -p1
-%patch9 -p1
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
%patch13
%patch14
+%patch15 -p1
%build
make %{my_make_flags}
++++++ fix_plt_extrasz_always_returning_0_on_ppc64le.patch ++++++
Subject: fix plt_extrasz() always returning 0 on ppc64le
From: Signed-off-by: Jan Stancek
libhugetlbfs.so is not linked with elf64lppc.o on ppc64le,
which makes plt_extrasz() always return 0.
This is causing failures (SIGSEGV) in these tests:
HUGETLB_ELFMAP=W linkhuge_rw (16M: 64):
HUGETLB_ELFMAP=RW linkhuge_rw (16M: 64):
HUGETLB_SHARE=0 HUGETLB_ELFMAP=W linkhuge_rw (16M: 64):
HUGETLB_SHARE=1 HUGETLB_ELFMAP=W linkhuge_rw (16M: 64):
HUGETLB_SHARE=0 HUGETLB_ELFMAP=RW linkhuge_rw (16M: 64):
HUGETLB_SHARE=1 HUGETLB_ELFMAP=RW linkhuge_rw (16M: 64):
as they miss some already initialized data when performing
"minimal copy" in get_extracopy().
This patch links also elf64lppc.o, which defines powerpc
specific version of plt_extrasz().
Signed-off-by: Jan Stancek
---
Makefile | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
index b24bd0f..8cf469f 100644
--- a/Makefile
+++ b/Makefile
@@ -142,6 +142,9 @@ endif
ifeq ($(ELF64),elf64ppc)
LIBOBJS64 += obj64/$(ELF64).o
endif
+ifeq ($(ELF64),elf64lppc)
+LIBOBJS64 += obj64/$(ELF64).o
+endif
LIBOBJS32 += $(LIBOBJS:%=obj32/%)
LIBOBJS64 += $(LIBOBJS:%=obj64/%)
-- 1.7.1
++++++ libhugetlbfs-2.17.tar.gz -> libhugetlbfs-2.18.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhugetlbfs-2.17/Makefile new/libhugetlbfs-2.18/Makefile
--- old/libhugetlbfs-2.17/Makefile 2013-10-22 03:07:56.000000000 +0200
+++ new/libhugetlbfs-2.18/Makefile 2014-04-06 18:11:46.000000000 +0200
@@ -30,14 +30,14 @@
LDFLAGS += -Wl,-z,noexecstack -ldl
CFLAGS ?= -O2 -g
CFLAGS += -Wall -fPIC
-CPPFLAGS += -D__LIBHUGETLBFS__ -DPPC_NO_SEGMENTS
+CPPFLAGS += -D__LIBHUGETLBFS__
ARCH = $(shell uname -m | sed -e s/i.86/i386/)
CC = gcc
CUSTOM_LDSCRIPTS = yes
-ifeq ($(ARCH),powerpc64)
+ifeq ($(ARCH),ppc64)
CC64 = $(CC) -m64
ELF64 = elf64ppc
TMPLIB64 = lib64
@@ -47,10 +47,17 @@
ELF32 = elf32ppclinux
endif
else
-ifeq ($(ARCH),powerpc)
+ifeq ($(ARCH),ppc64le)
+CC64 = $(CC) -m64
+ELF64 = elf64lppc
+TMPLIB64 = lib64
+CUSTOM_LDSCRIPTS = no
+else
+ifeq ($(ARCH),ppc)
CC32 = $(CC) -m32
ELF32 = elf32ppclinux
TMPLIB32 = lib
+CPPFLAGS += -DPPC_NO_SEGMENTS
else
ifeq ($(ARCH),armv7l)
CC32 = $(CC)
@@ -58,7 +65,7 @@
ELF32 += armelf_linux_eabi
CUSTOM_LDSCRIPTS = no
else
-ifeq ($(ARCH),aarch64)
+ifneq (,$(findstring aarch64,$(ARCH)))
CC64 = gcc
ELF64 = aarch64elf
TMPLIB64 = lib64
@@ -102,6 +109,7 @@
endif
endif
endif
+endif
endif
endif
endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhugetlbfs-2.17/NEWS new/libhugetlbfs-2.18/NEWS
--- old/libhugetlbfs-2.17/NEWS 2013-10-22 03:07:56.000000000 +0200
+++ new/libhugetlbfs-2.18/NEWS 2014-04-06 18:11:46.000000000 +0200
@@ -1,3 +1,17 @@
+libhugetlbfs 2.18 "Infinite Corridor"
+======================================================================
+New Features
+* Add support for ppc64le
+* ARM 64 big endian support
+
+Bug Fixes
+* Reverted 3bdd9924 which broke building on PPC64
+* Fix parsing of kernel version string
+* ARM: mark direct_syscall as a FUNC
+
+Test Suite
+* mmap of huge page files with misaligned offset success treated as PASS
+
libhugetlbfs 2.17 "Fowl and Fetus"
======================================================================
New Features
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhugetlbfs-2.17/contrib/tlbmiss_cost.sh new/libhugetlbfs-2.18/contrib/tlbmiss_cost.sh
--- old/libhugetlbfs-2.17/contrib/tlbmiss_cost.sh 2013-10-22 03:07:56.000000000 +0200
+++ new/libhugetlbfs-2.18/contrib/tlbmiss_cost.sh 2014-04-06 18:11:46.000000000 +0200
@@ -44,7 +44,7 @@
FNAME="cpu MHz"
FINDEX=4
case "`uname -m`" in
- ppc64)
+ ppc64|ppc64le)
FNAME="clock"
FINDEX=3
;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhugetlbfs-2.17/elf64lppc.c new/libhugetlbfs-2.18/elf64lppc.c
--- old/libhugetlbfs-2.17/elf64lppc.c 1970-01-01 01:00:00.000000000 +0100
+++ new/libhugetlbfs-2.18/elf64lppc.c 2015-02-22 17:26:24.000000000 +0100
@@ -0,0 +1 @@
+symbolic link to elf64ppc.c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhugetlbfs-2.17/kernel-features.c new/libhugetlbfs-2.18/kernel-features.c
--- old/libhugetlbfs-2.17/kernel-features.c 2013-10-22 03:07:56.000000000 +0200
+++ new/libhugetlbfs-2.18/kernel-features.c 2014-04-06 18:11:46.000000000 +0200
@@ -125,14 +125,18 @@
*(start + 1) == 'r' &&
*(start + 2) == 'e')
start += 3;
+ else {
+ /*
+ * For now we ignore any extraversions besides
+ * pre and rc versions and treat them as equal
+ * to the base version.
+ */
+ return 0;
+ }
ver->pre = strtol(start, &end, 10);
}
- /*
- * For now we ignore any extraversions besides pre and post versions
- * and treat them as equal to the base version.
- */
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhugetlbfs-2.17/ld.hugetlbfs new/libhugetlbfs-2.18/ld.hugetlbfs
--- old/libhugetlbfs-2.17/ld.hugetlbfs 2013-10-22 03:07:56.000000000 +0200
+++ new/libhugetlbfs-2.18/ld.hugetlbfs 2014-04-06 18:11:46.000000000 +0200
@@ -84,6 +84,7 @@
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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhugetlbfs-2.17/sys-armelf_linux_eabi.S new/libhugetlbfs-2.18/sys-armelf_linux_eabi.S
--- old/libhugetlbfs-2.17/sys-armelf_linux_eabi.S 2013-10-22 03:07:56.000000000 +0200
+++ new/libhugetlbfs-2.18/sys-armelf_linux_eabi.S 2014-04-06 18:11:46.000000000 +0200
@@ -19,6 +19,7 @@
.text
.globl direct_syscall
+ .type direct_syscall,%function
direct_syscall:
mov ip, sp
stmfd sp!, {r4, r5, r6, r7}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhugetlbfs-2.17/sys-elf64lppc.S new/libhugetlbfs-2.18/sys-elf64lppc.S
--- old/libhugetlbfs-2.17/sys-elf64lppc.S 1970-01-01 01:00:00.000000000 +0100
+++ new/libhugetlbfs-2.18/sys-elf64lppc.S 2015-02-22 17:26:24.000000000 +0100
@@ -0,0 +1 @@
+symbolic link to sys-elf64ppc.S
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhugetlbfs-2.17/sys-elf64ppc.S new/libhugetlbfs-2.18/sys-elf64ppc.S
--- old/libhugetlbfs-2.17/sys-elf64ppc.S 2013-10-22 03:07:56.000000000 +0200
+++ new/libhugetlbfs-2.18/sys-elf64ppc.S 2014-04-06 18:11:46.000000000 +0200
@@ -20,7 +20,7 @@
*/
.text
-
+#if _CALL_ELF != 2
.align 2
.globl direct_syscall
.globl .direct_syscall
@@ -32,6 +32,11 @@
.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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhugetlbfs-2.17/tests/misalign.c new/libhugetlbfs-2.18/tests/misalign.c
--- old/libhugetlbfs-2.17/tests/misalign.c 2013-10-22 03:07:56.000000000 +0200
+++ new/libhugetlbfs-2.18/tests/misalign.c 2014-04-06 18:11:46.000000000 +0200
@@ -23,6 +23,7 @@
#include
#include
#include
+#include
#include
@@ -40,6 +41,11 @@
* necessary checks for the hugepage paths. This testcase ensures
* that attempted hugepage mappings with parameters which are not
* correctly hugepage aligned are rejected.
+ *
+ * However starting with 3.10-rc1, length passed in mmap() doesn't need
+ * to be aligned because commit af73e4d9506d3b797509f3c030e7dcd554f7d9c4
+ * added ALIGN() to kernel side, in mmap_pgoff(), when mapping huge page
+ * files.
*/
int main(int argc, char *argv[])
{
@@ -47,9 +53,13 @@
int fd;
void *p, *q;
int err;
+ struct utsname buf;
test_init(argc, argv);
+ if (uname(&buf) != 0)
+ FAIL("uname failed %s", strerror(errno));
+
page_size = getpagesize();
hpage_size = check_hugepagesize();
@@ -92,16 +102,30 @@
/* 3) Try a misaligned length */
q = mmap(NULL, page_size, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0);
- if (q != MAP_FAILED)
- FAIL("mmap() with misaligned length 0x%lx succeeded",
- page_size);
+
+ if (test_compare_kver(buf.release, "3.10.0") < 0) {
+ if (q != MAP_FAILED)
+ FAIL("mmap() with misaligned length 0x%lx succeeded",
+ page_size);
+ } else {
+ if (q == MAP_FAILED)
+ FAIL("mmap() with misaligned length 0x%lx failed",
+ page_size);
+ }
/* 4) Try a misaligned length with MAP_FIXED */
q = mmap(p, page_size, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED, fd, 0);
- if (q != MAP_FAILED)
- FAIL("mmap() MAP_FIXED with misaligned length 0x%lx succeeded",
- page_size);
+
+ if (test_compare_kver(buf.release, "3.10.0") < 0) {
+ if (q != MAP_FAILED)
+ FAIL("mmap() MAP_FIXED with misaligned length 0x%lx "
+ "succeeded", page_size);
+ } else {
+ if (q == MAP_FAILED)
+ FAIL("mmap() MAP_FIXED with misaligned length 0x%lx "
+ "failed", page_size);
+ }
/* 5) Try a misaligned offset */
q = mmap(NULL, hpage_size, PROT_READ|PROT_WRITE,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhugetlbfs-2.17/tests/mremap-expand-slice-collision.c new/libhugetlbfs-2.18/tests/mremap-expand-slice-collision.c
--- old/libhugetlbfs-2.17/tests/mremap-expand-slice-collision.c 2013-10-22 03:07:56.000000000 +0200
+++ new/libhugetlbfs-2.18/tests/mremap-expand-slice-collision.c 2014-04-06 18:11:46.000000000 +0200
@@ -36,8 +36,8 @@
void init_slice_boundary(int fd)
{
unsigned long slice_size;
- void *p1, *p2, *heap;
- int slices_ok, i, rc;
+ void *p, *heap;
+ int i, rc;
#if defined(__LP64__) && !defined(__aarch64__)
/* powerpc: 1TB slices starting at 1 TB */
slice_boundary = 0x10000000000;
@@ -52,37 +52,25 @@
heap = malloc(1);
free(heap);
- /* find 2 neighbour slices, which are both free,
+ /* Find 2 neighbour slices with couple huge pages free
+ * around slice boundary.
* 16 is the maximum number of slices (low/high) */
for (i = 0; i < 16-1; i++) {
- slices_ok = 0;
- p1 = mmap((void *)slice_boundary, hpage_size,
- PROT_READ, MAP_SHARED | MAP_FIXED, fd, 0);
- p2 = mmap((void *)(slice_boundary+slice_size), hpage_size,
+ slice_boundary += slice_size;
+ p = mmap((void *)(slice_boundary-2*hpage_size), 4*hpage_size,
PROT_READ, MAP_SHARED | MAP_FIXED, fd, 0);
-
- if (p1 != MAP_FAILED) {
- slices_ok++;
- rc = munmap(p1, hpage_size);
+ if (p == MAP_FAILED) {
+ verbose_printf("can't use slice_boundary: 0x%lx\n",
+ slice_boundary);
+ } else {
+ rc = munmap(p, 4*hpage_size);
if (rc != 0)
FAIL("munmap(p1): %s", strerror(errno));
- }
- if (p2 != MAP_FAILED) {
- slices_ok++;
- rc = munmap(p2, hpage_size);
- if (rc != 0)
- FAIL("munmap(p2): %s", strerror(errno));
- }
-
- slice_boundary += slice_size;
- if (slices_ok == 2)
break;
- else
- verbose_printf("can't use slice_boundary: 0x%lx\n",
- slice_boundary);
+ }
}
- if (slices_ok != 2)
+ if (p == MAP_FAILED)
FAIL("couldn't find 2 free neighbour slices");
verbose_printf("using slice_boundary: 0x%lx\n", slice_boundary);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhugetlbfs-2.17/version new/libhugetlbfs-2.18/version
--- old/libhugetlbfs-2.17/version 2013-10-22 03:08:56.000000000 +0200
+++ new/libhugetlbfs-2.18/version 2014-04-06 18:15:13.000000000 +0200
@@ -1 +1 @@
-2.17
+2.18
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org