[cfe-users] Migrating to clang from GCC

Garg, Ankit Ankit_Garg at mentor.com
Fri Jul 24 10:12:01 PDT 2015

Hi David,
           I am aware that both clang and gcc align to generic itanium ABI so ideally there shouldn't be any problem in mixing object code compiled with these 2 compilers.  Thanks for the clear answer, I guess I can take up this model to migrate to clang.. 

From: David Blaikie [dblaikie at gmail.com]
Sent: Friday, July 24, 2015 8:49 PM
To: Garg, Ankit
Cc: cfe-users at cs.uiuc.edu
Subject: Re: [cfe-users] Migrating to clang from GCC

This thread seems to have gone in a strange direction - using clang does not imply or require using libc++.

To answer your original question: this is essentially fine/correct modulo bugs and version incompatibilities (the two compilers don't necessarily line up perfectly with respect to feature, bug, etc implementation at all times)

You can compile parts of your c++ program (including using c++ standard library types on that interface boundary) with clang and parts with gcc (both using the same standard library) and they should link and run correctly together.

(If you're curious about the nitty gritty of why this works, its related to a thing called the ABI, and specifically the itanium ABI)

On Jul 24, 2015 12:40 AM, "Ankit Garg" <Ankit_Garg at mentor.com<mailto:Ankit_Garg at mentor.com>> wrote:
Hi All,
         I am not sure whether its the right forum to ask this question.  I am trying to move to clang compiler from GCC, but our software has tons of components independently developed provding different static archive libraries. All these libraries are finally linked into executable.  Now rather than compiling every component with clang from scratch, I was thinking to pick one component at time to compile with clang and use GCC compiled static archives for other components to link into executable using clang compiler.  Would this always work ?

So my question is whether GCC compiled object/archives involving C/C++ code would always be compatible with clang generated object files and can be mixed together during link step using clang compiler.  Would this always work if I can make sure that our libraries are not using any features of C++11 .


cfe-users mailing list
cfe-users at cs.uiuc.edu<mailto:cfe-users at cs.uiuc.edu>

More information about the cfe-users mailing list