help-libidn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Asan testing of IDN


From: Jeffrey Walton
Subject: Re: Asan testing of IDN
Date: Tue, 14 May 2019 01:00:57 -0400

On Tue, May 14, 2019 at 12:32 AM Jeffrey Walton <address@hidden> wrote:
>
> Cancel... A reboot fixed it.

My bad... This issue is still present. (I retested on the wrong machine).

I see a difference, but I am not clear why.

First, the successful tests, like Runners 1 and 2, use my
"-Wl,-R,/var/sanitize/lib64 -Wl,--enable-new-dtags". The runpath can
be overridden with LD_LIBRARY_PATH.

libtool: link: gcc -g2 -O2 -fsanitize=address -fno-omit-frame-pointer
-march=native -fPIC -pthread -fsanitize=address -Wl,-R
-Wl,/var/sanitize/lib64 -Wl,--enable-new-dtags -o test-verify
test-verify.o -Wl,--no-as-needed  -L/var/sanitize/lib64 libtests.a
../../lib/gl/.libs/libgnu.a libtests.a -ldl -lpthread -pthread
gmake[4]: Leaving directory '/home/build/libidn-1.35/lib/gltests'
gmake  check-TESTS
gmake[4]: Entering directory '/home/build/libidn-1.35/lib/gltests'
gmake[5]: Entering directory '/home/build/libidn-1.35/lib/gltests'
PASS: test-alloca-opt
PASS: test-c-ctype
...

However, the Gnulib tests fail, and they discard/override my flags and
use "-Wl,-rpath -Wl,/var/sanitize/lib64":

libtool: link: gcc -g2 -O2 -fsanitize=address -fno-omit-frame-pointer
-march=native -fPIC -pthread -fsanitize=address -Wl,-R
-Wl,/var/sanitize/lib64 -Wl,--enable-new-dtags -o tst_tld tst_tld.o
-Wl,--no-as-needed  -L/var/sanitize/lib64 libutils.a
../lib/.libs/libidn.so ../gl/.libs/libgnu.a -ldl -lpthread -pthread
-Wl,-rpath -Wl,/home/build/libidn-1.35/lib/.libs -Wl,-rpath
-Wl,/var/sanitize/lib64
gmake[2]: Leaving directory '/home/build/libidn-1.35/tests'
gmake  check-TESTS
gmake[2]: Entering directory '/home/build/libidn-1.35/tests'
gmake[3]: Entering directory '/home/build/libidn-1.35/tests'
FAIL: tst_stringprep
FAIL: tst_punycode
...

I think that means the test runner has to find the runtime libraries
at /var/sanitize/lib64 or FAIL. FAIL because (1) rpaths (ass opposed
to runpaths) cannot be overridden with LD_LIBRARY_PATH, and (2) the
libraries are not yet installed.

Does anyone have an idea how to fix this?

Jeff

> On Mon, May 13, 2019 at 3:37 PM Jeffrey Walton <address@hidden> wrote:
> >
> > Hi Everyone,
> >
> > I'm catching some failed self tests during IDN testing with Asan. The
> > first two tests runners are OK. The third runner fails as shown below.
> >
> > When I check tests/test-suite.log I see:
> >
> > FAIL: tst_stringprep
> > ====================
> >
> > ==3648==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 tst_stringprep (exit status: 1)
> >
> > libidn.so looks OK:
> >
> > $ ldd libidn-1.35/lib/.libs/libidn.so
> >         linux-vdso.so.1 (0x00007ffdbda7d000)
> >         libasan.so.5 => /lib64/libasan.so.5 (0x00007f25b7a04000)
> >         ...
> >
> > The third test runner uses -fsanitize=address as requested. I
> > inspected all messages with 'libtool: link:', and they look OK. All
> > links that produce artifacts use the sanitizer option. I did not see
> > use of LD_PRELOAD, so I don't believe it is causing the error.
> >
> > Why is the third test runner failing?
> >
> > ========================================
> >
> > # Tail of third runner build
> > ...
> > /bin/sh ../libtool  --tag=CC   --mode=link gcc   -g2 -O2
> > -fsanitize=address -fno-omit-frame-pointer -march=native -fPIC
> > -pthread -no-install -L/var/sanitize/lib64 -fsanitize=address
> > -Wl,-R,/var/sanitize/lib64 -Wl,--enable-new-dtags -o tst_tld tst_tld.o
> > libutils.a ../lib/libidn.la ../gl/libgnu.la -ldl -lpthread
> > -Wl,--no-as-needed
> > libtool: link: gcc -g2 -O2 -fsanitize=address -fno-omit-frame-pointer
> > -march=native -fPIC -pthread -fsanitize=address -Wl,-R
> > -Wl,/var/sanitize/lib64 -Wl,--enable-new-dtags -o tst_tld tst_tld.o
> > -Wl,--no-as-needed  -L/var/sanitize/lib64 libutils.a
> > ../lib/.libs/libidn.so ../gl/.libs/libgnu.a -ldl -lpthread -pthread
> > -Wl,-rpath -Wl,/home/build/libidn-1.35/lib/.libs -Wl,-rpath
> > -Wl,/var/sanitize/lib64
> > gmake[2]: Leaving directory '/home/build/libidn-1.35/tests'
> > gmake  check-TESTS
> > gmake[2]: Entering directory '/home/build/libidn-1.35/tests'
> > gmake[3]: Entering directory '/home/build/libidn-1.35/tests'
> > FAIL: tst_stringprep
> > FAIL: tst_punycode
> > FAIL: tst_idna
> > FAIL: tst_idna2
> > FAIL: tst_idna3
> > FAIL: tst_idna4
> > FAIL: tst_nfkc
> > FAIL: tst_pr29
> > FAIL: tst_strerror
> > FAIL: tst_toutf8
> > FAIL: tst_symbols
> > FAIL: tst_badutf8
> > FAIL: tst_utf8crash
> > FAIL: tst_toascii64oob
> > FAIL: tst_badutf8nfkc
> > FAIL: tst_tld



reply via email to

[Prev in Thread] Current Thread [Next in Thread]