Skip to content

prototype mismatch with EFF_ from unregisterisered GHC when building ieee754

Where building ieee754 succeeded with GHC 7.10, it fails with 8.0 on platforms without registerised builds, for example arm64:

[1 of 2] Compiling Numeric.IEEE     ( Numeric/IEEE.hs, dist-ghc/build/Numeric/IEEE.o )

In file included from /tmp/ghc8e40_0/ghc_2.hc:3:0: error: 

/tmp/ghc8e40_0/ghc_2.hc:2448:6: error:
     error: conflicting types for 'nextup'
     EFF_(nextup);
          ^

/usr/lib/ghc/include/Stg.h:228:24: error:
     note: in definition of macro 'EFF_'
     #define EFF_(f)   void f() /* See Note [External function prototypes] */
                            ^

In file included from /usr/include/features.h:364:0: error:
    0,
                     from /usr/include/math.h:26,
                     from /usr/lib/ghc/include/Stg.h:74,
                     from /tmp/ghc8e40_0/ghc_2.hc:3:

/usr/include/aarch64-linux-gnu/bits/mathcalls.h:301:1: error:
     note: previous declaration of 'nextup' was here
     __MATHCALL (nextup,, (_Mdouble_ __x));
     ^

In file included from /tmp/ghc8e40_0/ghc_2.hc:3:0: error: 

/tmp/ghc8e40_0/ghc_2.hc:2501:6: error:
     error: conflicting types for 'nextup'
     EFF_(nextup);
          ^

/usr/lib/ghc/include/Stg.h:228:24: error:
     note: in definition of macro 'EFF_'
     #define EFF_(f)   void f() /* See Note [External function prototypes] */
                            ^

In file included from /usr/include/features.h:364:0: error:
    0,
                     from /usr/include/math.h:26,
                     from /usr/lib/ghc/include/Stg.h:74,
                     from /tmp/ghc8e40_0/ghc_2.hc:3:

/usr/include/aarch64-linux-gnu/bits/mathcalls.h:301:1: error:
     note: previous declaration of 'nextup' was here
     __MATHCALL (nextup,, (_Mdouble_ __x));
     ^

In file included from /tmp/ghc8e40_0/ghc_2.hc:3:0: error: 

/tmp/ghc8e40_0/ghc_2.hc:2554:6: error:
     error: conflicting types for 'nextupf'
     EFF_(nextupf);
          ^

/usr/lib/ghc/include/Stg.h:228:24: error:
     note: in definition of macro 'EFF_'
     #define EFF_(f)   void f() /* See Note [External function prototypes] */
                            ^

In file included from /usr/lib/ghc/include/Stg.h:74:0: error:
    0,
                     from /tmp/ghc8e40_0/ghc_2.hc:3:

/usr/include/aarch64-linux-gnu/bits/mathcalls.h:301:1: error:
     note: previous declaration of 'nextupf' was here
     __MATHCALL (nextup,, (_Mdouble_ __x));
     ^

In file included from /tmp/ghc8e40_0/ghc_2.hc:3:0: error: 

/tmp/ghc8e40_0/ghc_2.hc:2607:6: error:
     error: conflicting types for 'nextupf'
     EFF_(nextupf);
          ^

/usr/lib/ghc/include/Stg.h:228:24: error:
     note: in definition of macro 'EFF_'
     #define EFF_(f)   void f() /* See Note [External function prototypes] */
                            ^

In file included from /usr/lib/ghc/include/Stg.h:74:0: error:
    0,
                     from /tmp/ghc8e40_0/ghc_2.hc:3:

/usr/include/aarch64-linux-gnu/bits/mathcalls.h:301:1: error:
     note: previous declaration of 'nextupf' was here
     __MATHCALL (nextup,, (_Mdouble_ __x));
     ^

In file included from /tmp/ghc8e40_0/ghc_2.hc:3:0: error: 

/tmp/ghc8e40_0/ghc_2.hc:2660:6: error:
     error: conflicting types for 'nextdown'
     EFF_(nextdown);
          ^

/usr/lib/ghc/include/Stg.h:228:24: error:
     note: in definition of macro 'EFF_'
     #define EFF_(f)   void f() /* See Note [External function prototypes] */
                            ^

In file included from /usr/include/features.h:364:0: error:
    0,
                     from /usr/include/math.h:26,
                     from /usr/lib/ghc/include/Stg.h:74,
                     from /tmp/ghc8e40_0/ghc_2.hc:3:

/usr/include/aarch64-linux-gnu/bits/mathcalls.h:299:1: error:
     note: previous declaration of 'nextdown' was here
     __MATHCALL (nextdown,, (_Mdouble_ __x));
     ^

In file included from /tmp/ghc8e40_0/ghc_2.hc:3:0: error: 

/tmp/ghc8e40_0/ghc_2.hc:2713:6: error:
     error: conflicting types for 'nextdown'
     EFF_(nextdown);
          ^

/usr/lib/ghc/include/Stg.h:228:24: error:
     note: in definition of macro 'EFF_'
     #define EFF_(f)   void f() /* See Note [External function prototypes] */
                            ^

In file included from /usr/include/features.h:364:0: error:
    0,
                     from /usr/include/math.h:26,
                     from /usr/lib/ghc/include/Stg.h:74,
                     from /tmp/ghc8e40_0/ghc_2.hc:3:

/usr/include/aarch64-linux-gnu/bits/mathcalls.h:299:1: error:
     note: previous declaration of 'nextdown' was here
     __MATHCALL (nextdown,, (_Mdouble_ __x));
     ^

In file included from /tmp/ghc8e40_0/ghc_2.hc:3:0: error: 

/tmp/ghc8e40_0/ghc_2.hc:2766:6: error:
     error: conflicting types for 'nextdownf'
     EFF_(nextdownf);
          ^

/usr/lib/ghc/include/Stg.h:228:24: error:
     note: in definition of macro 'EFF_'
     #define EFF_(f)   void f() /* See Note [External function prototypes] */
                            ^

In file included from /usr/lib/ghc/include/Stg.h:74:0: error:
    0,
                     from /tmp/ghc8e40_0/ghc_2.hc:3:

/usr/include/aarch64-linux-gnu/bits/mathcalls.h:299:1: error:
     note: previous declaration of 'nextdownf' was here
     __MATHCALL (nextdown,, (_Mdouble_ __x));
     ^

In file included from /tmp/ghc8e40_0/ghc_2.hc:3:0: error: 

/tmp/ghc8e40_0/ghc_2.hc:2819:6: error:
     error: conflicting types for 'nextdownf'
     EFF_(nextdownf);
          ^

/usr/lib/ghc/include/Stg.h:228:24: error:
     note: in definition of macro 'EFF_'
     #define EFF_(f)   void f() /* See Note [External function prototypes] */
                            ^

In file included from /usr/lib/ghc/include/Stg.h:74:0: error:
    0,
                     from /tmp/ghc8e40_0/ghc_2.hc:3:

/usr/include/aarch64-linux-gnu/bits/mathcalls.h:299:1: error:
     note: previous declaration of 'nextdownf' was here
     __MATHCALL (nextdown,, (_Mdouble_ __x));
     ^
`gcc' failed in phase `C Compiler'. (Exit code: 1)
 [("Project name","The Glorious Glasgow Haskell Compilation System")
 ,("GCC extra via C opts"," -fwrapv -fno-builtin")
 ,("C compiler command","/usr/bin/gcc")
 ,("C compiler flags"," -fno-stack-protector")
 ,("C compiler link flags"," -fuse-ld=gold -Wl,-z,noexecstack")
 ,("Haskell CPP command","/usr/bin/gcc")
 ,("Haskell CPP flags","-E -undef -traditional")
 ,("ld command","/usr/bin/ld.gold")
 ,("ld flags"," -z noexecstack")
 ,("ld supports compact unwind","YES")
 ,("ld supports build-id","YES")
 ,("ld supports filelist","NO")
 ,("ld is GNU ld","YES")
 ,("ar command","/usr/bin/ar")
 ,("ar flags","q")
 ,("ar supports at file","YES")
 ,("touch command","touch")
 ,("dllwrap command","/bin/false")
 ,("windres command","/bin/false")
 ,("libtool command","libtool")
 ,("perl command","/usr/bin/perl")
 ,("cross compiling","NO")
 ,("target os","OSLinux")
 ,("target arch","ArchARM64")
 ,("target word size","8")
 ,("target has GNU nonexec stack","True")
 ,("target has .ident directive","True")
 ,("target has subsections via symbols","False")
 ,("Unregisterised","YES")
 ,("LLVM llc command","llc-3.7")
 ,("LLVM opt command","opt-3.7")
 ,("Project version","8.0.1")
 ,("Project Git commit id","4986837f8168cacf95c24fecc84d7b36c47f3c11")
 ,("Booter version","7.10.3")
 ,("Stage","2")
 ,("Build platform","aarch64-unknown-linux")
 ,("Host platform","aarch64-unknown-linux")
 ,("Target platform","aarch64-unknown-linux")
 ,("Have interpreter","YES")
 ,("Object splitting supported","NO")
 ,("Have native code generator","NO")
 ,("Support SMP","NO")
 ,("Tables next to code","YES")
 ,("RTS ways","l debug thr thr_debug thr_l thr_p dyn debug_dyn thr_dyn thr_debug_dyn l_dyn thr_l_dyn thr_debug_p")
 ,("RTS expects libdw","NO")
 ,("Support dynamic-too","YES")
 ,("Support parallel --make","YES")
 ,("Support reexported-modules","YES")
 ,("Support thinning and renaming package flags","YES")
 ,("Requires unified installed package IDs","YES")
 ,("Uses package keys","YES")
 ,("Uses unit IDs","YES")
 ,("Dynamic by default","NO")
 ,("GHC Dynamic","YES")
 ,("GHC Profiled","NO")
 ,("Leading underscore","NO")
 ,("Debug on","False")
 ,("LibDir","/usr/lib/ghc")
 ,("Global Package DB","/usr/lib/ghc/package.conf.d")
 ]

The same is true for mips64el, s390x, alpha, hppa, m68k, sh4, sparc64, and I imagine mips and mipsel as well.

Trac metadata
Trac field Value
Version 8.0.1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information