a hidden object is not referenced correctly when using -fPIC compilation mode. The following code illustrates this
extern int foo0 __attribute__((__visibility__("hidden")));
extern int foo1;
return foo0 + foo1;
when compiled with "pcc -fPIC -S test.c" handles a reference to the _GLOBAL_OFFSET_TABLE_, but does not use it for foo0
contrast this with gcc output, which produces
addl $_GLOBAL_OFFSET_TABLE_, %ecx
anyway, this causes errors down the line, in the linking part of libraries which are using hidden symbols.