mold
mold copied to clipboard
riscv64-shared-abs-sym fails with 2.31.0
one more riscv64 failure in 2.31.0, see https://gitlab.alpinelinux.org/alpine/aports/-/jobs/1377073
Log:
210/332 Test #211: riscv64-shared-abs-sym ......................***Failed 0.54 sec
++ dirname /builds/alpine/aports/community/mold/src/mold-2.31.0/test/elf/shared-abs-sym.sh
+ . /builds/alpine/aports/community/mold/src/mold-2.31.0/test/elf/common.inc
++ export LC_ALL=C
++ LC_ALL=C
++ '[' -z riscv64 ']'
++ '[' -z '' ']'
++ TESTDIR=out/test/elf/riscv64
++ CC=cc
++ CXX=c++
++ GCC=gcc
++ GXX=g++
++ OBJDUMP=objdump
++ OBJCOPY=objcopy
++ STRIP=strip
++ QEMU=
++ '[' riscv64 = x86_64 -o riscv64 = i686 -o riscv64 = arm ']'
++ '[' riscv64 = aarch64 ']'
++ trap 'on_error $LINENO' ERR
++ trap on_exit EXIT
+++ basename /builds/alpine/aports/community/mold/src/mold-2.31.0/test/elf/shared-abs-sym.sh .sh
++ testname=shared-abs-sym
++ echo -n 'Testing shared-abs-sym ... '
Testing shared-abs-sym ... ++ t=out/test/elf/riscv64/shared-abs-sym
++ mkdir -p out/test/elf/riscv64/shared-abs-sym
+ cat
+ cc -B. -fPIC -shared -o out/test/elf/riscv64/shared-abs-sym/a.so -xassembler -
+ cat
+ cc -B. -fPIC -shared -o out/test/elf/riscv64/shared-abs-sym/b.so -xassembler -
+ cc -fPIC -c -o out/test/elf/riscv64/shared-abs-sym/c.o -xc -
+ cat
+ cc -B. -o out/test/elf/riscv64/shared-abs-sym/exe1 -pie out/test/elf/riscv64/shared-abs-sym/c.o out/test/elf/riscv64/shared-abs-sym/a.so
+ out/test/elf/riscv64/shared-abs-sym/exe1
+ grep -q foo=0x3
+ LD_PRELOAD=out/test/elf/riscv64/shared-abs-sym/b.so
+ out/test/elf/riscv64/shared-abs-sym/exe1
+ grep -q foo=0x5
++ on_error 23
++ code=1
++ echo 'command failed: 23: grep -q '\''foo=0x5'\'''
command failed: 23: grep -q 'foo=0x5'
++ trap - EXIT
++ exit 1
How do I reproduce the failure? I tried with alpine:edge docker image with --platform riscv64, but the test didn't fail.
I tried to reproduce on my end with podman and --arch riscv64 and I get a riscv64-section-order crashes consistantly with both master and v2.31.0. riscv64-shared-abs-sym didnt fail as well.
215/339 Test #215: riscv64-section-order .......................***Failed 0.69 sec
++ dirname /tmp/mold/test/elf/section-order.sh
+ . /tmp/mold/test/elf/common.inc
++ export LC_ALL=C
++ LC_ALL=C
++ '[' -z riscv64 ']'
++ '[' -z '' ']'
++ TESTDIR=out/test/elf/riscv64
++ CC=cc
++ CXX=c++
++ GCC=gcc
++ GXX=g++
++ OBJDUMP=objdump
++ OBJCOPY=objcopy
++ STRIP=strip
++ QEMU=
++ '[' riscv64 = x86_64 -o riscv64 = i686 -o riscv64 = arm ']'
++ '[' riscv64 = aarch64 ']'
++ trap 'on_error $LINENO' ERR
++ trap on_exit EXIT
+++ basename /tmp/mold/test/elf/section-order.sh .sh
++ testname=section-order
++ echo -n 'Testing section-order ... '
Testing section-order ... ++ t=out/test/elf/riscv64/section-order
++ mkdir -p out/test/elf/riscv64/section-order
+ on_qemu
+ '[' '' '!=' '' ']'
+ grep -qw qemu /proc/cpuinfo
+ cat
+ cc -o out/test/elf/riscv64/section-order/a.o -c -xc -fno-PIC -
+ cc -B. -o out/test/elf/riscv64/section-order/exe1 out/test/elf/riscv64/section-order/a.o -no-pie '-Wl,--section-order==0x100000 PHDR =0x200000 .fn2 TEXT =0x300000 .fn1 DATA BSS RODATA'
+ out/test/elf/riscv64/section-order/exe1
+ grep -q Hello
++ on_error 20
++ code=1
++ echo 'command failed: 20: grep -q Hello'
command failed: 20: grep -q Hello
++ trap - EXIT
++ exit 1
The alpine riscv64 runs on real hardware (scaleway and milkv pioneer),