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 - norm...@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 <jstan...@redhat.com>

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 <jstan...@redhat.com>
---
 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 <errno.h>
 #include <signal.h>
 #include <sys/mman.h>
+#include <sys/utsname.h>
 
 #include <hugetlbfs.h>
 
@@ -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+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to