On 11/1/2016 3:42 PM, Ken Brown wrote: > On 10/30/2016 2:23 PM, cyg Simple wrote: >> The below sample code will give a warning that visibility isn't >> supported in this configuration. Either the GCC build is incorrect or >> the sys/cdefs.h needs to be modified to define __hidden to empty. >> >> /********************************************/ >> #include <sys/cdefs.h> >> #include <stdio.h> >> >> __hidden void hello (char * str) { >> printf("%s %s\n", "Hello", str); >> } >> >> int main (int argc, char ** argv) { >> hello("cruel world!"); >> } >> /********************************************/ > > If you're trying to write portable code, why would you assume that > __hidden is defined? It's not defined in glibc, for example, and your > sample program doesn't compile on Linux: > > $ gcc test.c > test.c:4: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before > ‘void’ > > Do you have a real use case where this issue came up? The sample isn't > very convincing as it stands.
I don't in the real case sense but in Cygwin __hidden is defined. And obviously it is incorrectly defined in _YOUR_ Linux. If the visibility attribute isn't supported by the GCC compiler these helper macros shouldn't be defined as if they were. -- cyg Simple -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple