Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libhugetlbfs for openSUSE:Factory 
checked in at 2026-02-20 17:42:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libhugetlbfs (Old)
 and      /work/SRC/openSUSE:Factory/.libhugetlbfs.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libhugetlbfs"

Fri Feb 20 17:42:42 2026 rev:54 rq:1334017 version:2.24.9.ga83fbb2

Changes:
--------
--- /work/SRC/openSUSE:Factory/libhugetlbfs/libhugetlbfs.changes        
2024-03-11 15:43:13.966972287 +0100
+++ /work/SRC/openSUSE:Factory/.libhugetlbfs.new.1977/libhugetlbfs.changes      
2026-02-20 17:50:46.219880713 +0100
@@ -1,0 +2,14 @@
+Thu Feb 19 15:10:04 UTC 2026 - [email protected]
+
+- Update to version 2.24.9.ga83fbb2:
+  * support reproducible builds
+  * The issue of not determining whether the memory request was successful.
+  * fix: allocating large page memory using libhugetlbfs in the loongarch 
architecture failed.
+  * build: Update HOWTO to reflect changes made in #86
+  * elflink.c: Fix HUGETLB_FORCE_ELFMAP partial segment remapping
+  * tests/icache-hygiene: Add LoongArch64 support for SIGILL handling
+  * tests: fixed check for __loongarch64 define
+  * Add support for loongarch64 architecture in ld.hugetlbfs
+  * keep_symbol: keep STB_GNU_UNIQUE symbols
+
+-------------------------------------------------------------------

Old:
----
  libhugetlbfs-2.24.0.g1322884.obscpio

New:
----
  libhugetlbfs-2.24.9.ga83fbb2.obscpio

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

Other differences:
------------------
++++++ libhugetlbfs.spec ++++++
--- /var/tmp/diff_new_pack.vgGCyV/_old  2026-02-20 17:50:48.927993928 +0100
+++ /var/tmp/diff_new_pack.vgGCyV/_new  2026-02-20 17:50:48.939994430 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package libhugetlbfs
 #
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2026 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %define my_make_flags V=1 CFLAGS="%{optflags} -fPIC" LDFLAGS="-pie" 
BUILDTYPE=NATIVEONLY PREFIX=%{_prefix} LIBDIR32=%{_libdir} DESTDIR=%{buildroot}
 Name:           libhugetlbfs
-Version:        2.24.0.g1322884
+Version:        2.24.9.ga83fbb2
 Release:        0
 Summary:        Helper library for the Huge Translation Lookaside Buffer 
Filesystem
 License:        LGPL-2.1-or-later

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.vgGCyV/_old  2026-02-20 17:50:49.216005969 +0100
+++ /var/tmp/diff_new_pack.vgGCyV/_new  2026-02-20 17:50:49.220006136 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/libhugetlbfs/libhugetlbfs.git</param>
-              <param 
name="changesrevision">1322884fb0d55dc55f53563c1aa6328d118997e7</param></service></servicedata>
+              <param 
name="changesrevision">a83fbb243a656df14cb74c213640b274861d9ce7</param></service></servicedata>
 (No newline at EOF)
 

++++++ libhugetlbfs-2.24.0.g1322884.obscpio -> 
libhugetlbfs-2.24.9.ga83fbb2.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.24.0.g1322884/HOWTO 
new/libhugetlbfs-2.24.9.ga83fbb2/HOWTO
--- old/libhugetlbfs-2.24.0.g1322884/HOWTO      2024-03-11 09:21:36.000000000 
+0100
+++ new/libhugetlbfs-2.24.9.ga83fbb2/HOWTO      2025-11-18 07:50:21.000000000 
+0100
@@ -178,7 +178,11 @@
 Installation
 ============
 
-1. Type "make" to build the library
+1. Use autotools to build the library:
+
+       ./autogen.sh
+       ./configure
+       make
 
 This will create "obj32" and/or "obj64" under the top level
 libhugetlbfs directory, and build, respectively, 32-bit and 64-bit
@@ -187,7 +191,8 @@
 
 On i386 systems, only the 32-bit library will be built.  On PowerPC
 and AMD64 systems, both 32-bit and 64-bit versions will be built (the
-32-bit AMD64 version is identical to the i386 version).
+32-bit AMD64 version is identical to the i386 version) unless the
+BUILDTYPE=NATIVEONLY variable is set when running "make".
 
 2. Run the testsuite with "make check"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.24.0.g1322884/Makefile.in 
new/libhugetlbfs-2.24.9.ga83fbb2/Makefile.in
--- old/libhugetlbfs-2.24.0.g1322884/Makefile.in        2024-03-11 
09:21:36.000000000 +0100
+++ new/libhugetlbfs-2.24.9.ga83fbb2/Makefile.in        2025-11-18 
07:50:21.000000000 +0100
@@ -447,11 +447,11 @@
        $(INSTALL) -d $(DESTDIR)$(MANDIR8)
        for x in $(INSTALL_MAN1); do \
                $(INSTALL) -m 444 man/$$x $(DESTDIR)$(MANDIR1); \
-               gzip -f $(DESTDIR)$(MANDIR1)/$$x; \
+               gzip -fn $(DESTDIR)$(MANDIR1)/$$x; \
        done
        for x in $(INSTALL_MAN3); do \
                $(INSTALL) -m 444 man/$$x $(DESTDIR)$(MANDIR3); \
-               gzip -f $(DESTDIR)$(MANDIR3)/$$x; \
+               gzip -fn $(DESTDIR)$(MANDIR3)/$$x; \
        done
        rm -f $(DESTDIR)$(MANDIR3)/free_huge_pages.3.gz
        rm -f $(DESTDIR)$(MANDIR3)/free_hugepage_region.3.gz
@@ -463,11 +463,11 @@
        ln -s hugetlbfs_find_path.3.gz 
$(DESTDIR)$(MANDIR3)/hugetlbfs_find_path_for_size.3.gz
        for x in $(INSTALL_MAN7); do \
                $(INSTALL) -m 444 man/$$x $(DESTDIR)$(MANDIR7); \
-               gzip -f $(DESTDIR)$(MANDIR7)/$$x; \
+               gzip -fn $(DESTDIR)$(MANDIR7)/$$x; \
        done
        for x in $(INSTALL_MAN8); do \
                $(INSTALL) -m 444 man/$$x $(DESTDIR)$(MANDIR8); \
-               gzip -f $(DESTDIR)$(MANDIR8)/$$x; \
+               gzip -fn $(DESTDIR)$(MANDIR8)/$$x; \
        done
 
 install-bin:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.24.0.g1322884/alloc.c 
new/libhugetlbfs-2.24.9.ga83fbb2/alloc.c
--- old/libhugetlbfs-2.24.0.g1322884/alloc.c    2024-03-11 09:21:36.000000000 
+0100
+++ new/libhugetlbfs-2.24.9.ga83fbb2/alloc.c    2025-11-18 07:50:21.000000000 
+0100
@@ -244,7 +244,28 @@
 {
        __free_huge_pages(ptr, 1);
 }
+static size_t get_l2_cacheline_size(void) 
+{
+    FILE *fp;
+    char path[128] = "\0";
+    char buf[32] = "\0";
+    size_t line_size = 0;
+
+    snprintf(path, sizeof(path), 
+             "/sys/devices/system/cpu/cpu0/cache/index2/coherency_line_size");
+
+    fp = fopen(path, "r");
+    if (!fp) {
+        return 0;
+    }
 
+    if (fgets(buf, sizeof(buf), fp)) {
+        line_size = (size_t)atoi(buf);
+    }
+
+    fclose(fp);
+    return line_size;
+}
 /*
  * Offset the buffer using bytes wasted due to alignment to avoid using the
  * same cache lines for the start of every buffer returned by
@@ -262,6 +283,11 @@
        /* Lookup our cacheline size once */
        if (cacheline_size == 0) {
                cacheline_size = sysconf(_SC_LEVEL2_CACHE_LINESIZE);
+               if (cacheline_size == 0) {
+            cacheline_size = get_l2_cacheline_size();
+            if (cacheline_size == 0)
+                cacheline_size = 64;   
+        }
                linemod = time(NULL);
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.24.0.g1322884/elflink.c 
new/libhugetlbfs-2.24.9.ga83fbb2/elflink.c
--- old/libhugetlbfs-2.24.0.g1322884/elflink.c  2024-03-11 09:21:36.000000000 
+0100
+++ new/libhugetlbfs-2.24.9.ga83fbb2/elflink.c  2025-11-18 07:50:21.000000000 
+0100
@@ -436,7 +436,7 @@
  * symbols based on information in the dynamic section. The following
  * characteristics apply to symbols which may require copying:
  * - Within the BSS
- * - Global or Weak binding
+ * - Global, Weak, or GNU Unique binding
  * - Object type (variable)
  * - Non-zero size (zero size means the symbol is just a marker with no data)
  */
@@ -447,7 +447,8 @@
        if ((void *)s->st_value > end)
                return 0;
        if ((ELF_ST_BIND(s->st_info) != STB_GLOBAL) &&
-           (ELF_ST_BIND(s->st_info) != STB_WEAK))
+               (ELF_ST_BIND(s->st_info) != STB_WEAK) &&
+               (ELF_ST_BIND(s->st_info) != STB_GNU_UNIQUE))
                return 0;
        if (ELF_ST_TYPE(s->st_info) != STT_OBJECT)
                return 0;
@@ -784,7 +785,7 @@
                vaddr = hugetlb_next_slice_start(info->dlpi_addr +
                                                 info->dlpi_phdr[i].p_vaddr);
                gap = vaddr - (info->dlpi_addr + info->dlpi_phdr[i].p_vaddr);
-               slice_end = hugetlb_slice_end(vaddr);
+               slice_end = hugetlb_slice_end(vaddr + 1);
                /*
                 * we should stop remapping just before the slice
                 * containing the end of the memsz portion (taking away
@@ -804,7 +805,7 @@
                                        i, memsz, slice_end - vaddr);
                        continue;
                }
-               memsz = hugetlb_prev_slice_end(vaddr + memsz) - vaddr;
+               memsz = hugetlb_prev_slice_end(vaddr + memsz) - vaddr + 1;
 
                if (save_phdr(htlb_num_segs, i, info->dlpi_addr,
                              &info->dlpi_phdr[i]))
@@ -821,6 +822,7 @@
                htlb_seg_table[htlb_num_segs].vaddr = (void *)vaddr;
                htlb_seg_table[htlb_num_segs].filesz = memsz;
                htlb_seg_table[htlb_num_segs].memsz = memsz;
+               htlb_seg_table[htlb_num_segs].page_size = 
segment_requested_page_size(&info->dlpi_phdr[i]);
 
                htlb_num_segs++;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.24.0.g1322884/hugeadm.c 
new/libhugetlbfs-2.24.9.ga83fbb2/hugeadm.c
--- old/libhugetlbfs-2.24.0.g1322884/hugeadm.c  2024-03-11 09:21:36.000000000 
+0100
+++ new/libhugetlbfs-2.24.9.ga83fbb2/hugeadm.c  2025-11-18 07:50:21.000000000 
+0100
@@ -1013,6 +1013,11 @@
        }
 
        buf = malloc(swap_size);
+       if (!buf) {
+               ERROR("out of memory");
+               exit(EXIT_FAILURE);
+       }
+
        memset(buf, 0, swap_size);
        fwrite(buf, sizeof(char), swap_size, f);
        free(buf);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.24.0.g1322884/ld.hugetlbfs 
new/libhugetlbfs-2.24.9.ga83fbb2/ld.hugetlbfs
--- old/libhugetlbfs-2.24.0.g1322884/ld.hugetlbfs       2024-03-11 
09:21:36.000000000 +0100
+++ new/libhugetlbfs-2.24.9.ga83fbb2/ld.hugetlbfs       2025-11-18 
07:50:21.000000000 +0100
@@ -117,6 +117,7 @@
        fi ;;
 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 ;;
+elf64loongarch)         HPAGE_SIZE=$((32*$MB)) SLICE_SIZE=$HPAGE_SIZE ;;
 armelf*_linux_eabi|aarch64elf*|aarch64linux*)
        hpage_kb=$(cat /proc/meminfo  | grep Hugepagesize: | awk '{print $2}')
        HPAGE_SIZE=$((hpage_kb * 1024))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libhugetlbfs-2.24.0.g1322884/tests/icache-hygiene.c 
new/libhugetlbfs-2.24.9.ga83fbb2/tests/icache-hygiene.c
--- old/libhugetlbfs-2.24.0.g1322884/tests/icache-hygiene.c     2024-03-11 
09:21:36.000000000 +0100
+++ new/libhugetlbfs-2.24.9.ga83fbb2/tests/icache-hygiene.c     2025-11-18 
07:50:21.000000000 +0100
@@ -88,14 +88,21 @@
 {
 #if defined(__powerpc__) || defined(__powerpc64__) || defined(__ia64__) || \
     defined(__s390__) || defined(__s390x__) || defined(__sparc__) || \
-    defined(__aarch64__) || (defined(__riscv) && __riscv_xlen == 64 || 
__loongarch64)
+    defined(__aarch64__) || (defined(__riscv) && __riscv_xlen == 64) || \
+    defined(__loongarch64)
        /* On powerpc, ia64, s390 and Aarch64, 0 bytes are an illegal
         * instruction, so, if the icache is cleared properly, we SIGILL
         * as soon as we jump into the cleared page */
        if (signum == SIGILL) {
-               verbose_printf("SIGILL at %p (sig_expected=%p)\n", si->si_addr,
-                              sig_expected);
-               if (si->si_addr == sig_expected) {
+               void *pc;
+#if defined(__loongarch64)
+               ucontext_t *uc = (ucontext_t *)ucontext;
+               pc = (void *)uc->uc_mcontext.__pc;
+#else
+               pc = si->si_addr;
+#endif
+               verbose_printf("SIGILL at %p (sig_expected=%p)\n", pc, 
sig_expected);
+               if (pc == sig_expected) {
                        siglongjmp(sig_escape, 1);
                }
                FAIL("SIGILL somewhere unexpected");

++++++ libhugetlbfs.obsinfo ++++++
--- /var/tmp/diff_new_pack.vgGCyV/_old  2026-02-20 17:50:49.816031054 +0100
+++ /var/tmp/diff_new_pack.vgGCyV/_new  2026-02-20 17:50:49.828031556 +0100
@@ -1,5 +1,5 @@
 name: libhugetlbfs
-version: 2.24.0.g1322884
-mtime: 1710145296
-commit: 1322884fb0d55dc55f53563c1aa6328d118997e7
+version: 2.24.9.ga83fbb2
+mtime: 1763448621
+commit: a83fbb243a656df14cb74c213640b274861d9ce7
 

Reply via email to