-ansi, POSIX etc basic questions?

Nathan Sidwell nathan@codesourcery.com
Fri Sep 24 11:57:00 GMT 2004


Phil Prentice wrote:
> Hi
> 
>   I have some basic questions around compiler definitions.  I am porting some 
> code which contains a mixture of BSD & SVR4 from Solaris to Linux.
> 
>   Forgive me if some of these questions are rather basic.
> 
>   1)  I have been using the -ansi flag definition, because that seemed the 
> right thing to do?  I seem to remember that -ansi will (where possible) check 
> prototyping and will define the __STDC__ definition.
>        Am I correct to be trying to use this -ansi flag????
> 
>   2)  The sad thing is that if I use the -ansi flag it stops many of the 'C'  
> files from compiling. For example MAXNAMLEN will be undefined or things like 
> u_long or S_IFDIR will not be defined.  I presume that this is related to 
> compiler definitions like __USE_BSD or __USE_POSIX or __USE_XOPEN etc
> 
>        Presumably -ansi is automatically turning some of these compiler 
> definitions off??
these are not compiler definitions. They come from include files.  Presumably
they are being disabled when STDC is defined.  You probably want something like

#define _POSIX somevalueorother
#define _XOPEN_SOURCE  somevalueorother
before #including sytem files.  You'll need to consult your system
documentation (or grep /usr/include/**/*.h for their uses.
/usr/include/features.h might be a good one to look in.)

> 
>       Should I be defining these definitions (as required) when I'm building 
> the 'C' files using -ansi????

Do not define the __USE_BSD type things, use the higher level switches
I just mentioned.
> 
>        Any other suggestions?
> 
>        Currently in many cases I am simply defining these defn's as part of 
> the C source.....not the most ideal solution.


> 
>   3)  Can I get the compiler to somehow list out the compiler definitions 
> that it is using?
Perhaps -E -dD will help you here.

nathan

-- 
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
nathan@codesourcery.com    ::     http://www.planetfall.pwp.blueyonder.co.uk




More information about the Gcc-help mailing list