Re: [PATCH][PR build/24805] Explicitly export symbols from gdb_proc_service

Pedro Alves
2020-01-14T15:47:35Z

On 1/14/20 3:36 PM, Pedro Alves wrote:
> On 1/6/20 11:39 PM, Norbert Lange wrote:
>> Am Mo., 6. Jan. 2020 um 20:21 Uhr schrieb Pedro Alves <palves@redhat.com>:
>>>
>>> On 1/4/20 8:20 PM, Norbert Lange wrote:
>>>> Compiling GDB with '-fvisibility=hidden' will remove the
>>>> symbols that should be exported.
>>>> This patch explicitly marks them as visible.
>>>
>>> Curious. We have gdb/proc-service.list supposedly for this,
>>> doesn't -Wl,--dynamic-list work with -fvisibility=hidden then?
>>>
>>
>> Obviously it doesn't, else I would not have spent time figuring out
>> why libthread_db wont load.
>
> OK. Haven't looked at visibility issues in years. It also wasn't clear
> to me whether the issue could be that -Wl,--dynamic-list wasn't used
> in your build for some reason, maybe related to how you're configuring GDB.
>
>> -Wl,--dynamic-list merely filters the visible symbols, it does not see
>> "hidden" ones.
>
> BTW, you didn't post an actual patch to the list:
> https://sourceware.org/ml/gdb-patches/2020-01/msg00083.html

I knew I must have been confused. I found your patch on the list,
as a reply to that...

>
> I found it in bugzilla, though.
>

> How about something like this? It's similar to your #2 at
> <https://sourceware.org/bugzilla/show_bug.cgi?id=24805#c3>, but
> I'm using typeof to avoid issues with different systems using
> different prototypes.

BTW, I forgot to mention why I suggested this as alternative
to the push/pop approach. It was that the push/pop approach
makes everything indirectly included by <proc_service.h>
have default visibility too. I don't know whether that ends
up being any function in practice, though.

Thanks,
Pedro Alves