From: Richard Biener <richard.guenther@gmail.com>
To: Tom de Vries <tdevries@suse.de>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>, gdb-patches@sourceware.org
Subject: Re: [PATCH][gdb/build] Fix gdbserver build with -fsanitize=thread
Date: Mon, 27 Jun 2022 07:55:37 +0200 [thread overview]
Message-ID: <CAFiYyc1FX+-uUCeMguyHmoPhQ3qh01rDx+G8ynsSPv2H1Ew8rg@mail.gmail.com> (raw)
In-Reply-To: <20220625090808.GA18353@delia.com>
On Sat, Jun 25, 2022 at 11:09 AM Tom de Vries via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> Hi,
>
> When building gdbserver with -fsanitize=thread (added to CFLAGS/CXXFLAGS) we
> run into:
> ...
> ld: ../libiberty/libiberty.a(safe-ctype.o): warning: relocation against \
> `__tsan_init' in read-only section `.text'
> ld: ../libiberty/libiberty.a(safe-ctype.o): relocation R_X86_64_PC32 \
> against symbol `__tsan_init' can not be used when making a shared object; \
> recompile with -fPIC
> ld: final link failed: bad value
> collect2: error: ld returned 1 exit status
> make[1]: *** [libinproctrace.so] Error 1
> ...
> which looks similar to what is described in commit 78e49486944 ("[gdb/build]
> Fix gdbserver build with -fsanitize=address").
>
> The gdbserver component builds a shared library libinproctrace.so, which uses
> libiberty and therefore requires the pic variant. The gdbserver Makefile is
> setup to use this variant, if available, but it's not there.
>
> Fix this by listing gdbserver in the toplevel configure alongside libcc1, as a
> component that needs the libiberty pic variant, setting:
> ...
> extra_host_libiberty_configure_flags=--enable-shared
> ...
>
> Tested on x86_64-linux.
>
> OK for trunk gcc?
OK
> Thanks,
> - Tom
>
> [gdb/build] Fix gdbserver build with -fsanitize=thread
>
> ---
> configure | 2 +-
> configure.ac | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/configure b/configure
> index 1badcb314f8..aac80b88d70 100755
> --- a/configure
> +++ b/configure
> @@ -6964,7 +6964,7 @@ fi
> extra_host_libiberty_configure_flags=
> extra_host_zlib_configure_flags=
> case " $configdirs " in
> - *" lto-plugin "* | *" libcc1 "*)
> + *" lto-plugin "* | *" libcc1 "* | *" gdbserver "*)
> # When these are to be built as shared libraries, the same applies to
> # libiberty.
> extra_host_libiberty_configure_flags=--enable-shared
> diff --git a/configure.ac b/configure.ac
> index 5b6e2048514..29f74d10b5a 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -2344,7 +2344,7 @@ fi
> extra_host_libiberty_configure_flags=
> extra_host_zlib_configure_flags=
> case " $configdirs " in
> - *" lto-plugin "* | *" libcc1 "*)
> + *" lto-plugin "* | *" libcc1 "* | *" gdbserver "*)
> # When these are to be built as shared libraries, the same applies to
> # libiberty.
> extra_host_libiberty_configure_flags=--enable-shared
prev parent reply other threads:[~2022-06-27 5:55 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-25 9:08 Tom de Vries
2022-06-27 5:55 ` Richard Biener [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAFiYyc1FX+-uUCeMguyHmoPhQ3qh01rDx+G8ynsSPv2H1Ew8rg@mail.gmail.com \
--to=richard.guenther@gmail.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=tdevries@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).