[PATCH 08/58] Mark __dso_handle as hidden [BZ #18822]
Florian Weimer
fweimer@redhat.com
Mon Sep 4 07:23:00 GMT 2017
On 09/03/2017 03:42 PM, H.J. Lu wrote:
> On Sun, Sep 3, 2017 at 2:11 AM, Florian Weimer <fweimer@redhat.com> wrote:
>> On 09/03/2017 10:21 AM, Florian Weimer wrote:
>>> On 09/01/2017 07:59 PM, H.J. Lu wrote:
>>>> diff --git a/include/stdlib.h b/include/stdlib.h
>>>> index 2274790a2e..d0dcbf81c3 100644
>>>> --- a/include/stdlib.h
>>>> +++ b/include/stdlib.h
>>>> @@ -5,6 +5,10 @@
>>>> #endif
>>>> #include <stdlib/stdlib.h>
>>>>
>>>> +/* __dso_handle is always defined by either crtbegin.o from GCC or our
>>>> + dso_handle.c. */
>>>> +extern void *__dso_handle __attribute__ ((visibility ("hidden")));
>>>
>>> This causes conform test failures. You need to use __visibility__ here.
>> Or alternatively, move the declaration under #ifndef _ISOMAC. That's
>> probably the better approach because __dso_handle is not part of the
>> installed headers.
>>
>
> No, we can't do that. Some tests reference __dso_handle and _ISOMAC
> isn't defined for tests.
These tests should be moved to tests-internal, or __dso_handle should be
declared in a different header and the tests should include it.
As far as I understand it, the _ISOMAC mechanism is there to make the
include/ headers as close as possible to the installed headers, so
declaring things there which are not available after installation
partially invalidates in-tree testing.
Thanks,
Florian
More information about the Libc-alpha
mailing list