Hello community,

here is the log from the commit of package libhugetlbfs for openSUSE:Factory 
checked in at 2013-03-20 09:53:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libhugetlbfs (Old)
 and      /work/SRC/openSUSE:Factory/.libhugetlbfs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libhugetlbfs", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libhugetlbfs/libhugetlbfs.changes        
2013-01-29 10:48:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libhugetlbfs.new/libhugetlbfs.changes   
2013-03-20 09:53:22.000000000 +0100
@@ -1,0 +2,11 @@
+Mon Mar 11 09:02:48 UTC 2013 - [email protected]
+
+- Update to version 2.16:
+  Features:
+  * ARM Support
+  * s390x Dynamic TASK_SIZE support
+
+  Bug Fixes:
+  * find_mounts() now properly NULL terminates mount point names
+
+-------------------------------------------------------------------

Old:
----
  libhugetlbfs-2.15.tar.gz

New:
----
  libhugetlbfs-2.16.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libhugetlbfs.spec ++++++
--- /var/tmp/diff_new_pack.X4xXXY/_old  2013-03-20 09:53:24.000000000 +0100
+++ /var/tmp/diff_new_pack.X4xXXY/_new  2013-03-20 09:53:24.000000000 +0100
@@ -32,7 +32,7 @@
 Obsoletes:      libhugetlbfs-64bit
 %endif
 #
-Version:        2.15
+Version:        2.16
 Release:        0
 Url:            http://libhugetlbfs.sourceforge.net/
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ libhugetlbfs-2.15.tar.gz -> libhugetlbfs-2.16.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.15/Makefile 
new/libhugetlbfs-2.16/Makefile
--- old/libhugetlbfs-2.15/Makefile      2012-12-08 18:15:26.000000000 +0100
+++ new/libhugetlbfs-2.16/Makefile      2013-03-10 03:59:52.000000000 +0100
@@ -51,6 +51,12 @@
 ELF32 = elf32ppclinux
 TMPLIB32 = lib
 else
+ifeq ($(ARCH),armv7l)
+CC32 = gcc
+TMPLIB32 = lib
+ELF32 += armelf_linux_eabi
+CUSTOM_LDSCRIPTS = no
+else
 ifeq ($(ARCH),i386)
 CC32 = gcc
 ELF32 = elf_i386
@@ -89,6 +95,7 @@
 endif
 endif
 endif
+endif
 endif
 endif
 endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.15/NEWS new/libhugetlbfs-2.16/NEWS
--- old/libhugetlbfs-2.15/NEWS  2012-12-08 18:15:26.000000000 +0100
+++ new/libhugetlbfs-2.16/NEWS  2013-03-10 03:59:52.000000000 +0100
@@ -1,3 +1,16 @@
+libhugetlbfs 2.16 "Joe E. Parker"
+======================================================================
+New Features
+* ARM Support
+* s390x Dynamic TASK_SIZE support
+
+Bug Fixes
+* find_mounts() now properly NULL terminates mount point names
+
+Test Suite
+* ARM Support
+* mremap-fixed-huge-near-normal no longer calls munmap with 0 length
+
 libhugetlbfs 2.15 "Minature Panda"
 ======================================================================
 New Features
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.15/hugeutils.c 
new/libhugetlbfs-2.16/hugeutils.c
--- old/libhugetlbfs-2.15/hugeutils.c   2012-12-08 18:15:26.000000000 +0100
+++ new/libhugetlbfs-2.16/hugeutils.c   2013-03-10 03:59:52.000000000 +0100
@@ -665,6 +665,7 @@
                                continue;
 
                        strncpy(path, match, end - match);
+                       path[end - match] = '\0';
                        if ((hugetlbfs_test_path(path) == 1) &&
                            !(access(path, R_OK | W_OK | X_OK)))
                                add_hugetlbfs_mount(path, 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.15/ld.hugetlbfs 
new/libhugetlbfs-2.16/ld.hugetlbfs
--- old/libhugetlbfs-2.15/ld.hugetlbfs  2012-12-08 18:15:26.000000000 +0100
+++ new/libhugetlbfs-2.16/ld.hugetlbfs  2013-03-10 03:59:52.000000000 +0100
@@ -79,6 +79,11 @@
     HTLB_ALIGN="" # --hugetlbfs-link overrides --hugetlbfs-align
     LDSCRIPT="$EMU.x$HTLB_LINK"
     HTLBOPTS="-T${HUGETLB_LDSCRIPT_PATH}/${LDSCRIPT}"
+
+    if [ "$EMU" == "armelf_linux_eabi" ]; then
+        echo "Please use --hugetlbfs-align when targeting ARM."
+       exit -1
+    fi
 fi
 
 MB=$((1024*1024))
@@ -86,11 +91,18 @@
 elf32ppclinux|elf64ppc)        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)     HPAGE_SIZE=$((2*$MB)) SLICE_SIZE=$HPAGE_SIZE ;;
 esac
 
 if [ "$HTLB_ALIGN" == "slice" ]; then
        HTLBOPTS="-zcommon-page-size=$SLICE_SIZE -zmax-page-size=$SLICE_SIZE"
        HTLBOPTS="$HTLBOPTS -lhugetlbfs"
+
+       # targeting the ARM platform one needs to explicitly set the text 
segment offset
+       # otherwise it will be NULL.
+       if [ "$EMU" == "armelf_linux_eabi" ]; then
+               HTLBOPTS="$HTLBOPTS -Ttext-segment=$SLICE_SIZE"
+       fi
 fi
 
 ${LD} "${args[@]}" ${HTLBOPTS}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.15/sys-armelf_linux_eabi.S 
new/libhugetlbfs-2.16/sys-armelf_linux_eabi.S
--- old/libhugetlbfs-2.15/sys-armelf_linux_eabi.S       1970-01-01 
01:00:00.000000000 +0100
+++ new/libhugetlbfs-2.16/sys-armelf_linux_eabi.S       2013-03-10 
03:59:52.000000000 +0100
@@ -0,0 +1,32 @@
+/*
+ * libhugetlbfs - Easy use of Linux hugepages
+ * Copyright (C) 2012 ARM Ltd.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * 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
+
+        .globl  direct_syscall
+direct_syscall:
+       mov     ip, sp
+       stmfd   sp!, {r4, r5, r6, r7}
+       mov     r7, r0
+       mov     r0, r1
+       mov     r1, r2
+       mov     r2, r3
+       ldmfd   ip, {r3, r4, r5, r6}
+       swi     0x0
+       ldmfd   sp!, {r4, r5, r6, r7}
+       bx      lr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.15/tests/icache-hygiene.c 
new/libhugetlbfs-2.16/tests/icache-hygiene.c
--- old/libhugetlbfs-2.15/tests/icache-hygiene.c        2012-12-08 
18:15:26.000000000 +0100
+++ new/libhugetlbfs-2.16/tests/icache-hygiene.c        2013-03-10 
03:59:52.000000000 +0100
@@ -52,8 +52,10 @@
 
 static void cacheflush(void *p)
 {
-#ifdef __powerpc__
+#if defined(__powerpc__)
        asm volatile("dcbst 0,%0; sync; icbi 0,%0; isync" : : "r"(p));
+#elif defined(__arm__)
+       __clear_cache(p, p + COPY_SIZE);
 #endif
 }
 
@@ -97,7 +99,7 @@
                }
                FAIL("SIGILL somewhere unexpected");
        }
-#elif defined(__i386__) || defined(__x86_64__)
+#elif defined(__i386__) || defined(__x86_64__) || defined(__arm__)
        /* On x86, zero bytes form a valid instruction:
         *      add %al,(%eax)          (i386)
         * or   add %al,(%rax)          (x86_64)
@@ -109,7 +111,14 @@
         * on the second, truncated page.  If [ER]AX does not contain
         * a valid pointer, we will SEGV on the first instruction in
         * the cleared page.  We check for both possibilities
-        * below. */
+        * below.
+        *
+        * On 32 bit ARM, zero bytes are interpreted as follows:
+        *      andeq   r0, r0, r0      (ARM state, 4 bytes)
+        *      movs    r0, r0          (Thumb state, 2 bytes)
+        *
+        * So, we only expect to run off the end of the huge page and
+        * generate a SIGBUS. */
        if (signum == SIGBUS) {
                verbose_printf("SIGBUS at %p (sig_expected=%p)\n", si->si_addr,
                               sig_expected);
@@ -120,6 +129,7 @@
                }
                FAIL("SIGBUS somewhere unexpected");
        }
+#if defined(__x86_64__) || defined(__i386__)
        if (signum == SIGSEGV) {
 #ifdef __x86_64__
                void *pc = (void *)((ucontext_t 
*)uc)->uc_mcontext.gregs[REG_RIP];
@@ -134,6 +144,7 @@
                }
                FAIL("SIGSEGV somewhere unexpected");
        }
+#endif
 #else
 #error Need to setup signal conditions for this arch
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libhugetlbfs-2.15/tests/mremap-fixed-huge-near-normal.c 
new/libhugetlbfs-2.16/tests/mremap-fixed-huge-near-normal.c
--- old/libhugetlbfs-2.15/tests/mremap-fixed-huge-near-normal.c 2012-12-08 
18:15:26.000000000 +0100
+++ new/libhugetlbfs-2.16/tests/mremap-fixed-huge-near-normal.c 2013-03-10 
03:59:52.000000000 +0100
@@ -87,6 +87,7 @@
 void *map_align(size_t size, size_t align)
 {
        unsigned long xsize = size + align - getpagesize();
+       size_t t;
        void *p, *q;
        int rc;
 
@@ -97,14 +98,19 @@
 
        q = PALIGN(p, align);
 
-       rc = munmap(p, q-p);
-       if (rc != 0)
-               FAIL("munmap(lower aligning): %s", strerror(errno));
-
-       rc = munmap(q + size, p + xsize - (q + size));
-       if (rc != 0)
-               FAIL("munmap(upper aligning): %s", strerror(errno));
-
+       t = q - p;
+       if (t) {
+               rc = munmap(p, t);
+               if (rc != 0)
+                       FAIL("munmap(lower aligning): %s", strerror(errno));
+       }
+
+       t = p + xsize - (q + size);
+       if (t) {
+               rc = munmap(q + size, t);
+               if (rc != 0)
+                       FAIL("munmap(upper aligning): %s", strerror(errno));
+       }
 
        return q;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.15/tests/task-size-overrun.c 
new/libhugetlbfs-2.16/tests/task-size-overrun.c
--- old/libhugetlbfs-2.15/tests/task-size-overrun.c     2012-12-08 
18:15:26.000000000 +0100
+++ new/libhugetlbfs-2.16/tests/task-size-overrun.c     2013-03-10 
03:59:52.000000000 +0100
@@ -82,6 +82,10 @@
                }
                munmap(p, getpagesize());
                addr += getpagesize();
+#if defined(__s390x__)
+               if (addr > (1UL << 42) && addr < (1UL << 53))
+                       addr = 1UL << 53;
+#endif
        }
        /* addr wrapped around */
        return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.15/version 
new/libhugetlbfs-2.16/version
--- old/libhugetlbfs-2.15/version       2012-12-08 18:18:06.000000000 +0100
+++ new/libhugetlbfs-2.16/version       2013-03-10 04:02:17.000000000 +0100
@@ -1 +1 @@
-2.15
+2.16

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to