rui314 / mold

Mold: A Modern Linker 🦠
MIT License
14.11k stars 463 forks source link

x86_64-global-offset-table fails on mold-git 5c7a75b3e44b36e8333775400e0f22946cc3da03 #1141

Closed ms178 closed 10 months ago

ms178 commented 10 months ago

With 5c7a75b3e44b36e8333775400e0f22946cc3da03, I get this test error:

124/338 Test #124: x86_64-global-offset-table ...............***Failed    0.03 sec
++ dirname /tmp/makepkg/mold-git/src/mold/test/elf/global-offset-table.sh
+ . /tmp/makepkg/mold-git/src/mold/test/elf/common.inc
++ export LC_ALL=C
++ LC_ALL=C
++ '[' -z x86_64 ']'
++ '[' -z '' ']'
++ MACHINE=x86_64
++ TESTDIR=out/test/elf/x86_64
++ CC=cc
++ CXX=c++
++ GCC=gcc
++ GXX=g++
++ OBJDUMP=objdump
++ OBJCOPY=objcopy
++ STRIP=strip
++ QEMU=
++ '[' x86_64 = x86_64 -o x86_64 = i686 -o x86_64 = arm ']'
++ tlsdesc_opt=-mtls-dialect=gnu2
++ '[' x86_64 = i686 ']'
++ '[' x86_64 = ppc64le -a -e /proc/cpuinfo ']'
++ trap 'on_error $LINENO' ERR
++ trap on_exit EXIT
+++ basename /tmp/makepkg/mold-git/src/mold/test/elf/global-offset-table.sh .sh
++ testname=global-offset-table
++ echo -n 'Testing global-offset-table ... '
Testing global-offset-table ... ++ t=out/test/elf/x86_64/global-offset-table
++ mkdir -p out/test/elf/x86_64/global-offset-table
+ '[' x86_64 = ppc64le ']'
+ cat
+ cc -fPIC -c -o out/test/elf/x86_64/global-offset-table/a.o -xc -
+ cc -B. -no-pie -o out/test/elf/x86_64/global-offset-table/exe out/test/elf/x86_64/global-offset-table/a.o -Wl,-defsym=foo=_GLOBAL_OFFSET_TABLE_
mold: error: --defsym: undefined symbol: _GLOBAL_OFFSET_TABLE_
collect2: error: ld returned 1 exit status
++ on_error 16
++ code=1
++ echo 'command failed: 16: $CC -B. -no-pie -o $t/exe $t/a.o -Wl,-defsym=foo=_GLOBAL_OFFSET_TABLE_'
command failed: 16: $CC -B. -no-pie -o $t/exe $t/a.o -Wl,-defsym=foo=_GLOBAL_OFFSET_TABLE_
++ trap - EXIT
++ exit 1

CFLAGS with GCC 13.2.1:

CPPFLAGS="-D_FORTIFY_SOURCE=0"
CFLAGS="-O3 -march=native -mtune=native -maes -mbmi2 -mpclmul -fno-semantic-interposition -falign-functions=32 -fipa-pta -flive-range-shrinkage -fno-math-errno -fno-trapping-math -mtls-dialect=gnu2 -feliminate-unused-debug-types -floop-nest-optimize -fgraphite-identity -fcf-protection=none -flto=auto -fdevirtualize-at-ltrans -floop-parallelize-all -ftree-parallelize-loops=36 -fopenmp -fopenmp-simd -mharden-sls=none -funroll-loops -malign-data=cacheline -fomit-frame-pointer -mprefer-vector-width=256 -fivopts -fmodulo-sched -fdata-sections -ffunction-sections -Wl,-zmax-page-size=0x200000"
CXXFLAGS="$CFLAGS -Wp,-U_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O3,--as-needed,-Bsymbolic-functions,--sort-common,-flto=auto -fopenmp -fopenmp-simd -fuse-ld=mold -Wl,--gc-sections -march=native -mtune=native -maes -mbmi2 -mpclmul -Wl,-zmax-page-size=0x200000"
CCLDFLAGS="$LDFLAGS"
CXXLDFLAGS="$LDFLAGS"
FFLAGS="$CFLAGS"
FCFLAGS="$CFLAGS"
ASFLAGS="-D__AVX__=1 -D__AVX2__=1 -msse2avx -D__FMA__=1"
LTOFLAGS="-flto=auto"
rui314 commented 10 months ago

I reverted that change for now.