This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: compiler standards (and/or min gcc version) supported with installedheaders ?

On 01/04/2013 05:12 AM, Andreas Jaeger wrote:
> Here're some minor changes. Please review whether the language itself is clear,
> Andreas
> * glibc needs a recent GCC compiler version to build itself (right now
>   at least 4.3 required, 4.6 or newer recommended)

"The GNU C Library requires GCC version 4.3 or newer to build; GCC
 4.6 is recommended."

> * Userland applications and libraries that use glibc's headers and
>   libraries can be build by a variety of compilers with the following notes:

s/build/built/g, s/with the following notes://g

"The following community concensus applies to glibc's headers:"

>   - The installed headers should work with any compiler that:


>     * supports at least ISO C 90 (or C++98)
>     * supports the type "long long"


>   - GCC version 2.95.3 is the oldest compiler supported in general
>     (for some more recent hardware architectures a more recent
>     compiler will be needed)

"GCC version 2.95.3 is the oldest supported compiler, with some
architectures requiring more recent versions."

I feel like we should explicitly say:

    - GCC versions older than 2.95.3 may still be used, but no
      optimizations or special allowances are made for them.

>   - Compiler dependend code needs to be protected by proper feature
>     test macros.

"Compiler dependent code shall be protected by feature test macros."

>     For example the various GCC __builtin_X functions can
>     be used but need to be properly guarded.
>   - The glibc header files might include special optimizations for
>     newer compiler versions which might not be available for older
>     compilers


>   - The header files for glibc use GCC 4.3 as baseline for
>     optimizations


>   - Support for other compilers besides GCC might need extra patches
>     which are welcome to be submitted for inclusion glibc


>   - For headers shared with gnulib, other conditions do apply (the
>     requirements from gnulib to support even older compilers)
> To support different compilers, we would ideally not test - as today -
> for a specific GCC version but for a specific feature.
> So, instead of __GNUC_PREREQ(x,y) to check for a specific version in
> some header file, the advise is to add a macro to features.h, like
> __GLIBC_HAVE_BUILTIN_COMPLEX and use that - and that macro definition
> is dependend on compiler versions.


Thanks for putting this together and driving concensus here.

I assume your goal is to add this to the concensus section on the wiki
and to add it to INSTALL or some other file in the project?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]