[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Proposal: Making Debian compiler agnostic



On 28/08/2012 18:27, Ben Hutchings wrote:
On Tue, 2012-08-28 at 17:18 +0200, Sylvestre Ledru wrote:
Hello,

This summer, during the Google Summer of Code (GSoC), we have been
working to provide a way to rebuild the archive with a non-gcc compiler
(in our case: clang).

Our project's intent is not to change the default compiler, just use a
secondary compiler to generate more errors or warnings for package
maintainers to be aware of. In most cases, keeping both compilers happy
would result in higher quality code, something I think we can all get
behind.
[...]
We should also make the following assumption -- the CC / CXX compiler
will accept gcc compatible arguments, with only very minor changes that
are gcc compatible as well (such as using -O3 rather then the
meaningless -O6, etc). The clang compiler, for example, considers
incompatible arguments with gcc a bug.
[...]

Are all alternate compilers expected to implement gcc extensions?  Must
the code be changed to use appropriate '#ifdef __GNUC__' guards?  (And
what happens the next time gcc adds a new extension...?)
With clang, most of them are implemented.
However, some of them are not. For example, nested functions:
http://clang.debian.net/status.php?version=3.1&key=EXPECTED_SEMILON
or some "Variable-length arrays" declarations:
http://clang.debian.net/status.php?version=3.1&key=VARIABLE_LENGTH_ARRAY
http://clang.debian.net/status.php?version=3.1&key=NON-POD

Most of the time, they are not implemented on purpose (one of the goal of clang is to be a replacement of gcc).
For more information:
http://clang.llvm.org/docs/UsersManual.html#c_unimpl_gcc

About Intel compilers or path64, I don't know how far they go.

I just would like to remind that our proposal is not about gcc vs clang but more about decouple Debian and gcc.

Sylvestre


Reply to: