This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH][PR gdb/23985] Fix libinproctrace.so build
- From: Szabolcs Nagy <Szabolcs dot Nagy at arm dot com>
- To: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Cc: nd <nd at arm dot com>, Pedro Alves <palves at redhat dot com>
- Date: Wed, 30 Jan 2019 11:00:02 +0000
- Subject: Re: [PATCH][PR gdb/23985] Fix libinproctrace.so build
- References: <c5aa7f3c-a323-c1f3-7f98-719c976eda3a@arm.com> <32215c31-59e2-0e52-b605-6bcdf8f1380d@arm.com>
On 09/01/2019 14:51, Szabolcs Nagy wrote:
> 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)
>
ping2.