[PATCH] ld: Properly override compiler flags in tests

H.J. Lu hjl.tools@gmail.com
Sat Aug 16 21:50:05 GMT 2025


On Sat, Aug 16, 2025 at 5:21 AM Sam James <sam@gentoo.org> wrote:
>
> "H.J. Lu" <hjl.tools@gmail.com> writes:
>
> > Some tests need to be compiled with additional flags.  When binutils is
> > built and compiled with
> >
> > CC="gcc -fsanitize=address,undefined" CXX="g++ -fsanitize=address,undefined"
> >
> > [...]
>
> It causes some improvements but some regressions for me:
>
> -# of expected passes           3043
> -# of unexpected failures       64
> +# of expected passes           3063
> +# of unexpected failures       44
>  # of expected failures         60
>  # of untested testcases                29
>  # of unsupported tests         29
>
> (The existing failures are because of an unrelated issue.)
>
> A new failure:
>
> gcc  -B/tmp/build2/ld/tmpdir/ld/ -I/home/sam/git/binutils-gdb/ld/testsuite/ld-elf -g -O2 -fno-sanitize=all   -fsanitize=address,undefined -c -fno-lto -fno-PIE  -fno-sanitize=all  -fno-sanitize=all -c /home/sam/git/binutils-gdb/ld/testsuite/ld-elf/dl6amain.c -o tmpdir/dl6amain.o
> Executing on host: sh -c {gcc  -B/tmp/build2/ld/tmpdir/ld/ -I/home/sam/git/binutils-gdb/ld/testsuite/ld-elf -g -O2 -fno-sanitize=all   -fsanitize=address,undefined -c -fno-lto -fno-PIE  -fno-sanitize=all  -fno-sanitize=all -c /home/sam/git/binutils-gdb/ld/testsuite/ld-elf/dl6amain.c -o tmpdir/dl6amain.o 2>&1}  /dev/null ld.tmp (timeout = 300)
> spawn [open ...]
> gcc  -B/tmp/build2/ld/tmpdir/ld/  -fsanitize=address,undefined  -fno-sanitize=all  -L/usr/local/x86_64-pc-linux-gnu/lib64 -L/usr/local/lib64 -L/lib64 -L/usr/lib64 -L/usr/local/x86_64-pc-linux-gnu/lib -L/usr/local/lib -L/lib -L/usr/lib    -o tmpdir/dl6a2  -L/home/sam/git/binutils-gdb/ld/testsuite/ld-elf -no-pie -Wl,--no-as-needed,-Bsymbolic-functions -ldl tmpdir/dl6amain.o
> Executing on host: sh -c {gcc  -B/tmp/build2/ld/tmpdir/ld/  -fsanitize=address,undefined  -fno-sanitize=all  -L/usr/local/x86_64-pc-linux-gnu/lib64 -L/usr/local/lib64 -L/lib64 -L/usr/lib64 -L/usr/local/x86_64-pc-linux-gnu/lib -L/usr/local/lib -L/lib -L/usr/lib    -o tmpdir/dl6a2  -L/home/sam/git/binutils-gdb/ld/testsuite/ld-elf -no-pie -Wl,--no-as-needed,-Bsymbolic-functions -ldl tmpdir/dl6amain.o  2>&1}  /dev/null ld.tmp (timeout = 300)
> spawn [open ...]
> Running: tmpdir/dl6a2 > tmpdir/dl6a2.out
> ==592377==ASan runtime does not come first in initial library list; you should either link runtime to your application or manually preload it with LD_PRELOAD.
> FAIL: Run dl6a2 with -Bsymbolic-functions and dlopen on libdl6a.
>
> libdl1.so is built with sanitizers enabled. The change exposes some
> missing $NOSANITIZE_CFLAGS we need to sprinkle around.

I sent out the v2 patch.

-- 
H.J.


More information about the Binutils mailing list