diff options
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs')
3 files changed, 213 insertions, 44 deletions
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Revert-ld.hugetlbfs-fix-Ttext-segment-argument-on-AA.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Revert-ld.hugetlbfs-fix-Ttext-segment-argument-on-AA.patch new file mode 100644 index 000000000..0787ef27d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Revert-ld.hugetlbfs-fix-Ttext-segment-argument-on-AA.patch @@ -0,0 +1,210 @@ +From 0a163f60b4a316c4b6f1726a71c84755f3bd85e7 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <martin.jansa@lge.com> +Date: Wed, 16 Sep 2020 04:36:04 -0700 +Subject: [PATCH] Revert "ld.hugetlbfs: fix -Ttext-segment argument on AArch64" + +This reverts commit 852dcc963ce44861ed7c4e225aa92ff2b5b43579. + +* works around + ERROR: libhugetlbfs-1_2.23-r0 do_populate_sysroot: Fatal errors occurred in subprocesses: + Command '['arm-oe-linux-gnueabi-strip', '--remove-section=.comment', '--remove-section=.note', 'libhugetlbfs/1_2.23-r0/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/linkhuge_rw']' returned non-zero exit status 1. + Subprocess output:arm-oe-linux-gnueabi-strip: + libhugetlbfs/1_2.23-r0/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/stmuFa58: error: PHDR segment not covered by LOAD segment + arm-oe-linux-gnueabi-strip: libhugetlbfs/1_2.23-r0/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/stmuFa58[.interp]: file format not recognized + +I don't see anything suspicious in the build (the same cmdline as in 2.22 +version), but it uses + +libhugetlbfs/1_2.22-r0-old/temp/log.do_compile:arm-oe-linux-gnueabi-gcc + -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -Wl,-O1 +-Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now +-fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security +-Werror=format-security -Werror=return-type +--sysroot=/jenkins/mjansa/build/ros/oe-melodic-gatesgarth/libhugetlbfs/1_2.22-r0/recipe-sysroot +-I.. -O2 -Wall -g -o obj32/linkhuge_rw.o -c linkhuge_rw.c +libhugetlbfs/1_2.22-r0-old/temp/log.do_compile:arm-oe-linux-gnueabi-gcc + -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -Wl,-O1 +-Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now +-fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security +-Werror=format-security -Werror=return-type +--sysroot=/jenkins/mjansa/build/ros/oe-melodic-gatesgarth/libhugetlbfs/1_2.22-r0/recipe-sysroot +-B./obj32 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now +-ldl -L../obj32 -o obj32/linkhuge_rw -Wl,--no-as-needed -lpthread -ldl +-lhugetlbfs_privutils -Wl,--hugetlbfs-align obj32/linkhuge_rw.o +obj32/testutils.o +libhugetlbfs/1_2.23-r0-new/temp/log.do_compile:arm-oe-linux-gnueabi-gcc + -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -Wl,-O1 +-Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now +-fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security +-Werror=format-security -Werror=return-type +--sysroot=/jenkins/mjansa/build/ros/oe-melodic-gatesgarth/libhugetlbfs/1_2.23-r0/recipe-sysroot +-I.. -O2 -Wall -g -o obj32/linkhuge_rw.o -c linkhuge_rw.c +libhugetlbfs/1_2.23-r0-new/temp/log.do_compile:arm-oe-linux-gnueabi-gcc + -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -Wl,-O1 +-Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now +-fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security +-Werror=format-security -Werror=return-type +--sysroot=/jenkins/mjansa/build/ros/oe-melodic-gatesgarth/libhugetlbfs/1_2.23-r0/recipe-sysroot +-B./obj32 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now +-ldl -L../obj32 -o obj32/linkhuge_rw -Wl,--no-as-needed -lpthread -ldl +-lhugetlbfs_privutils -Wl,--hugetlbfs-align obj32/linkhuge_rw.o +obj32/testutils.o + +And the git log between 2.22 and 2.23 is also very short and looks +reasonable. +https://github.com/libhugetlbfs/libhugetlbfs/compare/2.22...2.23 + +When checking with readelf -l it also shows the error about PHDR segment: +arm-oe-linux-gnueabi-readelf -l +./1_2.22-r0-old/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/linkhuge_rw + +Elf file type is DYN (Shared object file) +Entry point 0x201105 +There are 10 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + PHDR 0x000034 0x00200034 0x00200034 0x00140 0x00140 R 0x4 + INTERP 0x000174 0x00200174 0x00200174 0x0001d 0x0001d R 0x1 + [Requesting program interpreter: /usr/lib/ld-linux-armhf.so.3] + LOAD 0x000000 0x00200000 0x00200000 0x1222c 0x1222c R E 0x200000 + LOAD 0x1ffdf0 0x005ffdf0 0x005ffdf0 0x102e0 0x202ec RW 0x200000 + DYNAMIC 0x1ffdf8 0x005ffdf8 0x005ffdf8 0x00128 0x00128 RW 0x4 + NOTE 0x000194 0x00200194 0x00200194 0x00044 0x00044 R 0x4 + GNU_EH_FRAME 0x012224 0x00212224 0x00212224 0x00008 0x00008 R 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10 + EXIDX 0x001c5c 0x00201c5c 0x00201c5c 0x00008 0x00008 R 0x4 + GNU_RELRO 0x1ffdf0 0x005ffdf0 0x005ffdf0 0x00210 0x00210 RW 0x4 + + Section to Segment mapping: + Segment Sections... + 00 + 01 .interp + 02 .interp .note.ABI-tag .note.gnu.build-id .dynsym .dynstr +.gnu.hash .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text +.fini .ARM.extab .ARM.exidx .rodata .eh_frame .eh_frame_hdr + 03 .fini_array .init_array .dynamic .got .data .bss + 04 .dynamic + 05 .note.ABI-tag .note.gnu.build-id + 06 .eh_frame_hdr + 07 + 08 .ARM.extab .ARM.exidx + 09 .fini_array .init_array .dynamic .got + +arm-oe-linux-gnueabi-readelf -l +./1_2.23-r0-new/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/linkhuge_rw + +Elf file type is DYN (Shared object file) +Entry point 0x31cd1 +There are 10 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + PHDR 0x000000 0x00000000 0x00000000 0x00000 0x00000 R 0 +readelf: Error: the PHDR segment is not covered by a LOAD segment + INTERP 0x030d40 0x00030d40 0x00030d40 0x0001d 0x0001d R 0x1 + [Requesting program interpreter: /usr/lib/ld-linux-armhf.so.3] + LOAD 0x030d40 0x00030d40 0x00030d40 0x120b8 0x120b8 R E 0x200000 + LOAD 0x1ffdf0 0x003ffdf0 0x003ffdf0 0x102e0 0x202ec RW 0x200000 + DYNAMIC 0x1ffdf8 0x003ffdf8 0x003ffdf8 0x00128 0x00128 RW 0x4 + NOTE 0x030d60 0x00030d60 0x00030d60 0x00044 0x00044 R 0x4 + GNU_EH_FRAME 0x042df0 0x00042df0 0x00042df0 0x00008 0x00008 R 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10 + EXIDX 0x032828 0x00032828 0x00032828 0x00008 0x00008 R 0x4 + GNU_RELRO 0x1ffdf0 0x003ffdf0 0x003ffdf0 0x00210 0x00210 RW 0x4 + + Section to Segment mapping: + Segment Sections... + 00 + 01 .interp + 02 .interp .note.ABI-tag .note.gnu.build-id .dynsym .dynstr +.gnu.hash .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text +.fini .ARM.extab .ARM.exidx .rodata .eh_frame .eh_frame_hdr + 03 .fini_array .init_array .dynamic .got .data .bss + 04 .dynamic + 05 .note.ABI-tag .note.gnu.build-id + 06 .eh_frame_hdr + 07 + 08 .ARM.extab .ARM.exidx + 09 .fini_array .init_array .dynamic .got + +And the diff between these 2: + +1_2.22-r0-old/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/linkhuge_rw.readelf +1_2.23-r0-new/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/linkhuge_rw.readelf + Elf file type is DYN (Shared object file) +-Entry point 0x201105 ++Entry point 0x31cd1 + There are 10 program headers, starting at offset 52 + + Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align +- PHDR 0x000034 0x00200034 0x00200034 0x00140 0x00140 R 0x4 +- INTERP 0x000174 0x00200174 0x00200174 0x0001d 0x0001d R 0x1 ++ PHDR 0x000000 0x00000000 0x00000000 0x00000 0x00000 R 0 ++readelf: Error: the PHDR segment is not covered by a LOAD segment ++ INTERP 0x030d40 0x00030d40 0x00030d40 0x0001d 0x0001d R 0x1 + [Requesting program interpreter: /usr/lib/ld-linux-armhf.so.3] +- LOAD 0x000000 0x00200000 0x00200000 0x1222c 0x1222c R E 0x200000 +- LOAD 0x1ffdf0 0x005ffdf0 0x005ffdf0 0x102e0 0x202ec RW 0x200000 +- DYNAMIC 0x1ffdf8 0x005ffdf8 0x005ffdf8 0x00128 0x00128 RW 0x4 +- NOTE 0x000194 0x00200194 0x00200194 0x00044 0x00044 R 0x4 +- GNU_EH_FRAME 0x012224 0x00212224 0x00212224 0x00008 0x00008 R 0x4 ++ LOAD 0x030d40 0x00030d40 0x00030d40 0x120b8 0x120b8 R E 0x200000 ++ LOAD 0x1ffdf0 0x003ffdf0 0x003ffdf0 0x102e0 0x202ec RW 0x200000 ++ DYNAMIC 0x1ffdf8 0x003ffdf8 0x003ffdf8 0x00128 0x00128 RW 0x4 ++ NOTE 0x030d60 0x00030d60 0x00030d60 0x00044 0x00044 R 0x4 ++ GNU_EH_FRAME 0x042df0 0x00042df0 0x00042df0 0x00008 0x00008 R 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10 +- EXIDX 0x001c5c 0x00201c5c 0x00201c5c 0x00008 0x00008 R 0x4 +- GNU_RELRO 0x1ffdf0 0x005ffdf0 0x005ffdf0 0x00210 0x00210 RW 0x4 ++ EXIDX 0x032828 0x00032828 0x00032828 0x00008 0x00008 R 0x4 ++ GNU_RELRO 0x1ffdf0 0x003ffdf0 0x003ffdf0 0x00210 0x00210 RW 0x4 + + Section to Segment mapping: + +Revert fixes this build issue, but I still don't see why it fails this way. + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> + +# Please enter the commit message for your changes. Lines starting +# with '#' will be ignored, and an empty message aborts the commit. +# +# Date: Wed Sep 16 13:43:09 2020 +0200 +# +# On branch jansa/master +# Changes to be committed: +# new file: meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Revert-ld.hugetlbfs-fix-Ttext-segment-argument-on-AA.patch +# modified: meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb +# +# Untracked files: +# counts.txt +# diff +# log.svn +# log.svn2 +# wip/ +# +--- + ld.hugetlbfs | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/ld.hugetlbfs b/ld.hugetlbfs +index 5e4e497..6ee8238 100755 +--- a/ld.hugetlbfs ++++ b/ld.hugetlbfs +@@ -130,9 +130,7 @@ if [ "$HTLB_ALIGN" == "slice" ]; then + # targeting the ARM platform one needs to explicitly set the text segment offset + # otherwise it will be NULL. + case "$EMU" in +- armelf*_linux_eabi|aarch64elf*|aarch64linux*) +- printf -v TEXTADDR "%x" "$SLICE_SIZE" +- HTLBOPTS="$HTLBOPTS -Ttext-segment=$TEXTADDR" ;; ++ armelf*_linux_eabi|aarch64elf*|aarch64linux*) HTLBOPTS="$HTLBOPTS -Ttext-segment=$SLICE_SIZE" ;; + elf_i386) HTLBOPTS="$HTLBOPTS -Ttext-segment=0x08000000" ;; + elf64ppc|elf64lppc) + if [ "$MMU_TYPE" == "Hash" ] ; then +-- +2.17.1 + diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-tests-add-explicit-permissions-to-open-call.patch b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-tests-add-explicit-permissions-to-open-call.patch deleted file mode 100644 index 9d52b908e..000000000 --- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-tests-add-explicit-permissions-to-open-call.patch +++ /dev/null @@ -1,41 +0,0 @@ -From d07d2f9601b49bb72cd4b36838f0c238bd1b0fc1 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Wed, 15 Jan 2020 18:45:09 -0800 -Subject: [PATCH] tests: add explicit permissions to open() call - -Fixes -gethugepagesizes.c:227:35: error: open with O_CREAT in second argument needs 3 arguments -| fd = open(fname, O_WRONLY|O_CREAT); -| ^ - -Upstream-Status: Submitted [https://groups.google.com/forum/#!topic/libhugetlbfs/anNtDXbQKro] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - tests/gethugepagesizes.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/gethugepagesizes.c b/tests/gethugepagesizes.c -index 9551b38..5777265 100644 ---- a/tests/gethugepagesizes.c -+++ b/tests/gethugepagesizes.c -@@ -223,7 +223,7 @@ void setup_fake_data(long sizes[], int n_elem) - FAIL("mkdtemp: %s", strerror(errno)); - - sprintf(fname, "%s/meminfo-none", fake_meminfo); -- fd = open(fname, O_WRONLY|O_CREAT); -+ fd = open(fname, O_WRONLY|O_CREAT, 0600); - if (fd < 0) - FAIL("open: %s", strerror(errno)); - if (write(fd, meminfo_base, -@@ -233,7 +233,7 @@ void setup_fake_data(long sizes[], int n_elem) - FAIL("close: %s", strerror(errno)); - - sprintf(fname, "%s/meminfo-hugepages", fake_meminfo); -- fd = open(fname, O_WRONLY|O_CREAT); -+ fd = open(fname, O_WRONLY|O_CREAT, 0600); - if (fd < 0) - FAIL("open: %s", strerror(errno)); - if (write(fd, meminfo_base, --- -2.25.0 - diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb index 4768d7b63..2f07c938b 100644 --- a/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb +++ b/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb @@ -7,10 +7,10 @@ DEPENDS = "sysfsutils" RDEPENDS_${PN} += "bash python3-core" RDEPENDS_${PN}-tests += "bash python3-core" -PV = "2.22" +PV = "2.23" PE = "1" -SRCREV = "e6499ff92b4a7dcffbd131d1f5d24933e48c3f20" +SRCREV = "6b126a4d7da9490fa40fe7e1b962edcb939feddc" SRC_URI = " \ git://github.com/libhugetlbfs/libhugetlbfs.git;protocol=https \ file://skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch \ @@ -24,8 +24,8 @@ SRC_URI = " \ file://0004-shm.c-Mark-glibc-specific-changes-so.patch \ file://0005-Include-dirent.h-for-ino_t.patch \ file://0006-include-limits.h-for-PATH_MAX.patch \ - file://0001-tests-add-explicit-permissions-to-open-call.patch \ file://0001-huge_page_setup_helper-use-python3-interpreter.patch \ + file://0001-Revert-ld.hugetlbfs-fix-Ttext-segment-argument-on-AA.patch \ " UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" |