[GHC] #12802: prototype mismatch with EFF_ from unregisterisered GHC when building ieee754

GHC ghc-devs at haskell.org
Thu Nov 3 13:36:32 UTC 2016


#12802: prototype mismatch with EFF_ from unregisterisered GHC when building
ieee754
-------------------------------------+-------------------------------------
           Reporter:  clint          |             Owner:
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.0.1
           Keywords:                 |  Operating System:  Linux
       Architecture:                 |   Type of failure:  Incorrect result
  Unknown/Multiple                   |  at runtime
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 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.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12802>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list