sys/cdefs.h or maybe gcc build issue

Ken Brown kbrown@cornell.edu
Tue Nov 1 19:42:00 GMT 2016


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.

Ken

--
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



More information about the Cygwin mailing list