[PATCH][PR gdb/23985] Fix libinproctrace.so build

Szabolcs Nagy Szabolcs.Nagy@arm.com
Wed Jan 9 14:51:00 GMT 2019


On 14/12/2018 18:03, Szabolcs Nagy wrote:
> The IPA objects currently may use gnulib replacement apis, which is
> wrong: gnulib is not linked into the produced dso and it cannot be
> because it is not built with -fPIC -fvisibility=hidden.
> 
> The gnulib replacement detection is broken under cross compilation:
> for targets other than *-gnu*, replacements are enabled that depend
> on execution time detection. This causes unnecessary build failure
> when the target has proper support for the replaced api.
> 
> This fix tries to undo the replacements, which is tricky because the
> gnulib headers are still used for various compile time fixups and
> there is no simple knob in gnulib to only turn the replacements off.
> 
> Without this workaround gdb fails to cross build to non-gnu targets:
> 
>   ld: tracepoint-ipa.o: in function `gdb_agent_helper_thread(void*)':
>   gdb/gdbserver/tracepoint.c:7221: undefined reference to `rpl_strerror'
>   ...
>   Makefile:434: recipe for target 'libinproctrace.so' failed
> 
> gdb/gdbserver/ChangeLog:
> 
> 2018-12-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
> 
> 	PR gdb/23985
> 	* Makefile.in (IPAGENT_CFLAGS): Add UNDO_GNULIB_CFLAGS.
> 	(UNDO_GNULIB_CFLAGS): Undo gnulib replacements.
> 

ping.

shall i try to remove strerror usage from the code instead?
(i think that's a more intrusive change, but less hackish)



More information about the Gdb-patches mailing list