This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix --with-build-config=bootstrap-ubsan bootstrap of lto-plugin (PR sanitizer/56781)
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Paolo Bonzini <bonzini at gnu dot org>, DJ Delorie <dj at redhat dot com>, Alexandre Oliva <aoliva at redhat dot com>, Ralf Wildenhues <Ralf dot Wildenhues at gmx dot de>, Richard Biener <rguenther at suse dot de>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 25 Mar 2014 17:24:40 -0700
- Subject: Re: [PATCH] Fix --with-build-config=bootstrap-ubsan bootstrap of lto-plugin (PR sanitizer/56781)
- Authentication-results: sourceware.org; auth=none
- References: <20140325192856 dot GW1817 at tucnak dot redhat dot com> <CAMe9rOo4BKhyrf=T7zDV9uPwm8KvD91K7wiRPtVojZo5YE+G4w at mail dot gmail dot com> <20140325195721 dot GY1817 at tucnak dot redhat dot com> <20140325201707 dot GZ1817 at tucnak dot redhat dot com> <20140325213200 dot GA1817 at tucnak dot redhat dot com> <CAMe9rOoQUfs2zH2JpUN9OS7xoOu6LOM1Ci3mSw9cxzKJ8=G9Bg at mail dot gmail dot com> <20140325221113 dot GC1817 at tucnak dot redhat dot com>
On Tue, Mar 25, 2014 at 3:11 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Tue, Mar 25, 2014 at 03:01:26PM -0700, H.J. Lu wrote:
>> I got
>>
>> /export/gnu/import/git/gcc/libiberty/configure: line 4977: syntax
>> error near unexpected token `-fsanitize=address'
>> /export/gnu/import/git/gcc/libiberty/configure: line 4977: ` *
>> -fsanitize=address *) NOASANFLAG=-fno-sanitize=address ;;'
>> checking fcntl.h usability... yes
>
> Oops, should have been
> case " ${CFLAGS} " in
> *\ -fsanitize=address\ *) NOASANFLAG=-fno-sanitize=address ;;
> esac
> instead of
> case " ${CFLAGS} " in
> * -fsanitize=address *) NOASANFLAG=-fno-sanitize=address ;;
> esac
> I guess.
>
> 2014-03-25 Jakub Jelinek <jakub@redhat.com>
>
> PR sanitizer/56781
> lto-plugin/
> * Makefile.am (CFLAGS, LDFLAGS): Filter out -fsanitize=address.
> (liblto_plugin_la_LIBADD, liblto_plugin_la_LDFLAGS,
> liblto_plugin_la_DEPENDENCIES): Prefer ../libiberty/noasan/libiberty.a
> over ../libiberty/pic/libiberty.a if the former exists.
> * Makefile.in: Regenerated.
> libiberty/
> * maint-tool: Also emit rule for noasan/ subdirectory.
> * configure.ac (NOASANFLAG): Set and substitute.
> * Makefile.in: Regenerated.
> (NOASANFLAG): Set.
> (all, $(TARGETLIB), mostlyclean): Handle noasan subdir like pic
> subdir.
> (stamp-noasandir): New goal.
> * configure: Regenerated.
>
Doesn't work:
libtool: link:
/export/build/gnu/gcc-asan/build-x86_64-linux/./prev-gcc/xgcc
-B/export/build/gnu/gcc-asan/build-x86_64-linux/./prev-gcc/
-B/usr/local/x86_64-unknown-linux-gnu/bin/
-B/usr/local/x86_64-unknown-linux-gnu/bin/
-B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem
/usr/local/x86_64-unknown-linux-gnu/include -isystem
/usr/local/x86_64-unknown-linux-gnu/sys-include -shared
.libs/lto-plugin.o -static-libgcc -static-libstdc++ -static-libgcc
-fsanitize=address -static-libasan
-B/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libsanitizer/
-B/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libsanitizer/asan/
-B/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libsanitizer/asan/.libs
../libiberty/noasan/libiberty.a -Wl,-soname -Wl,liblto_plugin.so.0
-o .libs/liblto_plugin.so.0.0.0
...
/usr/local/x86_64-unknown-linux-gnu/bin/ld:
/export/build/gnu/gcc-asan/build-x86_64-linux/./gcc/liblto_plugin.so:
error loading plugin:
/export/build/gnu/gcc-asan/build-x86_64-linux/./gcc/liblto_plugin.so:
undefined symbol: __asan_option_detect_stack_use_after_return
collect2: error: ld returned 1 exit status
make[5]: *** [libgcc_s.so] Error 1
--
H.J.