[Llvm-bgq-discuss] mathcalls.h and ppu_intrinsics.h

Hal Finkel hfinkel at anl.gov
Tue Jan 24 18:05:08 CST 2017


Hi Jozsef,

Interesting. Do you know what is being used out of ppu_intrinsics.h? 
That is really a GCC-internal header file. Maybe we need a Clang 
equivalent, or maybe this is easy to work around?

  -Hal


On 01/24/2017 03:02 PM, Jozsef Bakosi wrote:
> Hi folks,
>
> I'm trying to compile code including ppu_intrinsics.h as well as math.h and they
> seem to be incompatible with each other. Here is the error I get:
>
> =============================================
> In file included from /soft/compilers/bgclang/r284961-stable/libc++/include/c++/v1/unordered_map:369:
> In file included from /soft/compilers/bgclang/r284961-stable/libc++/include/c++/v1/__hash_table:19:
> In file included from /soft/compilers/bgclang/r284961-stable/libc++/include/c++/v1/cmath:305:
> In file included from /soft/compilers/bgclang/r284961-stable/libc++/include/c++/v1/math.h:301:
> In file included from /bgsys/drivers/V1R2M2/ppc64/gnu-linux-4.7.2/powerpc64-bgq-linux/sys-include/math.h:70:
> /bgsys/drivers/V1R2M2/ppc64/gnu-linux-4.7.2/powerpc64-bgq-linux/sys-include/bits/mathcalls.h:182:1: error: exception specification in declaration does not match previous
>        declaration
> __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__));
> ^
> /bgsys/drivers/V1R2M2/ppc64/gnu-linux-4.7.2/powerpc64-bgq-linux/sys-include/math.h:59:3: note: expanded from macro '__MATHCALLX'
>    __MATHDECLX (_Mdouble_,function,suffix, args, attrib)
>    ^
> /bgsys/drivers/V1R2M2/ppc64/gnu-linux-4.7.2/powerpc64-bgq-linux/sys-include/math.h:62:22: note: expanded from macro '__MATHDECLX'
>    __MATHDECL_1(type, __CONCAT(__,function),suffix, args) __attribute__ (attrib)
>                       ^
> /bgsys/drivers/V1R2M2/ppc64/gnu-linux-4.7.2/powerpc64-bgq-linux/sys-include/sys/cdefs.h:89:23: note: expanded from macro '__CONCAT'
> #define __CONCAT(x,y)   x ## y
>                          ^
> <scratch space>:360:1: note: expanded from here
> __fabs
> ^
> /usr/lib/gcc/ppc64-redhat-linux/4.4.4/include/ppu_intrinsics.h:411:16: note: expanded from macro '__fabs'
> #define __fabs __ppu_fabs
>                 ^
> /usr/lib/gcc/ppc64-redhat-linux/4.4.4/include/ppu_intrinsics.h:416:1: note: previous declaration is here
> __fabs(double x)
> ^
> /usr/lib/gcc/ppc64-redhat-linux/4.4.4/include/ppu_intrinsics.h:411:16: note: expanded from macro '__fabs'
> #define __fabs __ppu_fabs
>                 ^
> =============================================
>
> Does anyone have an idea of a workaround?
>
> Thanks,
> Jozsef

-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-bgq-discuss mailing list