|
@@ -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
|
|
|
+
|