[PATCH] Two level comdat priorities in gold
Ian Lance Taylor
iant@google.com
Thu Jul 23 15:49:00 GMT 2015
On Thu, Jul 23, 2015 at 12:05 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>
> 2) Cary's idea of simply not applying the extra -mxxx flags on
> COMDATS, the out of line inlines and the instantiated template bodies.
>
> Unfortunately this idea does not work too for code like this:
>
> #ifdef __AVX__
> inline foo () {
> avx intrnsics
> }
> ...
> #else
> inline foo() {
> non-avx intrinsics.
> }
> ...
> #endif
>
> This means the AVX comdats are already there past the pre-processor
> once we use -mavx and we cannot undo this in the compiler. Example
> header : https://bitbucket.org/eigen/eigen/src/6ed647a644b8e3924800f0916a4ce4addf9e7739/Eigen/Core?at=default
If you compile this code both with and without -mavx and link the
results together, you have a simple, no excuses, ODR violation, so I
don't find this example convincing.
Ian
More information about the Binutils
mailing list