#4871: Build failure on windows: rts/Linker.c
---------------------------------+------------------------------------------
    Reporter:  nsch              |       Owner:                     
        Type:  bug               |      Status:  new                
    Priority:  normal            |   Component:  Runtime System     
     Version:                    |    Keywords:  mingw              
    Testcase:                    |   Blockedby:                     
          Os:  Windows           |    Blocking:                     
Architecture:  Unknown/Multiple  |     Failure:  Building GHC failed
---------------------------------+------------------------------------------
 I'm getting this error when trying to compile current GHC-HEAD on windows:

 {{{
 "inplace/bin/ghc-stage1.exe" -optc-Wall -optc-Wextra -optc-Wstrict-
 prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Wi
 nline -optc-Waggregate-return -optc-Wpointer-arith -optc-Wmissing-noreturn
 -optc-Wnested-externs -optc-Wredundant-decls -optc-Iincludes -opt
 c-Irts -optc-DCOMPILING_RTS -optc-fno-strict-aliasing -optc-fno-common
 -optc-Ilibffi/build/include -optc-fomit-frame-pointer -optc-DRtsWay=\
 "rts_thr\" -optc-DTHREADED_RTS  -H32m -O -Iincludes -Irts -DCOMPILING_RTS
 -package-name rts  -dcmm-lint  -Ilibffi/build/include     -i -irts
  -irts/dist/build -irts/dist/build/autogen -Irts/dist/build
 -Irts/dist/build/autogen          -optc-O2   -c rts/Linker.c -o
 rts/dist/build/L
 inker.thr_o

 rts\Linker.c:1039:1:  error: conflicting types for 'mktime'
 c:\haskell\ghc-
 
src\inplace\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/time.h:104:40:
 note: previous declaration of 'mktime' was
 here

 rts\Linker.c:1039:1:  error: conflicting types for 'localtime'
 c:\haskell\ghc-
 
src\inplace\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/time.h:121:45:
 note: previous declaration of 'localtime' w
 as here

 rts\Linker.c:1039:1:  error: conflicting types for 'gmtime'
 c:\haskell\ghc-
 
src\inplace\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/time.h:120:45:
 note: previous declaration of 'gmtime' was
 here
 make[1]: *** [rts/dist/build/Linker.thr_o] Error 1
 make: *** [all] Error 2
 }}}

 rts/Linker.c:1039 basicly is just:

 {{{
 RTS_MINGW_ONLY_SYMBOLS
 }}}

 with the definition somewhere below line 381:

 {{{
 /* These are statically linked from the mingw libraries into the ghc
    executable, so we have to employ this hack. */
 #define RTS_MINGW_ONLY_SYMBOLS                           \
       ...
       SymI_NeedsProto(mktime)                            \
       ...
       SymI_NeedsProto(localtime)                         \
       SymI_NeedsProto(gmtime)                            \
       ...
 }}}

 I tried all different versions of MinGW - the one of the current Haskell
 Platform 2010.2.0.0 and the one currently available at mingw.org and an
 old version I had installed.

 However, removing these 3 lines will result in another error, so the
 changes to fix this won't be that trivial:

 {{{
 rts\sm\GC.c: In function 'new_gc_thread':

 rts\sm\GC.c:863:11:
      error: incompatible types when assigning to type 'OSThreadId' from
 type 'int'
 make[1]: *** [rts/dist/build/sm/GC.thr_o] Error 1
 make: *** [all] Error 2
 }}}

 (even though I'm not 100% if that's because of those changes, since I
 probably never got that far in the building process...)

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

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to