#define of 'extern' in stackgap.c

Enrico Scholz <[email protected]> Wed, 16 Mar 2016 11:52:46 +0100
Newsgroups gmane.linux.lib.dietlibc
Message-ID <[email protected]>
Hi,

lib/stackgap.c contains a

| #define extern __hidden__

at the start of file.

This means that symbols in subsequent #included headers are rewritten
e.g. from

| === <signal,h> ====
| extern const char *const* sys_siglist;

to

| __attribute__((visibility("hidden"))) const char *const* sys_siglist;


This adds them to the symbol table of stackgap.o and at least the gold
linker prefers them over the (correct) symbols in sys_siglist.o.

What's the sense behind the '#define'?  Would it suffice to apply it
only to the 'extern' symbols in stackgap.c (at least the testsuite on
ARM run now successful with it)?



Enrico