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

Reply via email to