[GHC] #8361: hsc2hs error: sizeof/offsetof during solaris2 target compile
GHC
ghc-devs at haskell.org
Thu Sep 26 08:29:48 CEST 2013
#8361: hsc2hs error: sizeof/offsetof during solaris2 target compile
----------------------------------+----------------------------------------
Reporter: leroux | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: None | Version: 7.6.3
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: Building GHC failed
Unknown/Multiple | Test Case:
Difficulty: Unknown | Blocking:
Blocked By: |
Related Tickets: |
----------------------------------+----------------------------------------
I'm trying to cross-(compile/build?) ghc for SmartOS (target) from Mac OS
X (host).
I used https://gist.github.com/leroux/6680744#file-
setup_cross_gcc_linux_illumos-sh to build the gcc cross-compiler (where
target is solaris and host is os x) and
https://gist.github.com/leroux/6710457 to kickoff the ghc build process.
Details
{{{
("Build platform","x86_64-apple-darwin")
("Host platform","x86_64-apple-darwin")
("Target platform","x86_64-sun-solaris2")
}}}
----
The error
{{{
"inplace/bin/hsc2hs" '--cc=/Users/leroux/Documents/gcc/cross/x86_64-sun-
solaris2.11/bin/x86_64-sun-solaris2.11-gcc' '--
ld=/Users/leroux/Documents/gcc/cross/x86_64-sun-solaris2.11/bin/x86_64
-sun-solaris2.11-gcc' --cross-safe --cflag=-fno-stack-protector
--cross-compile --cflag=-Dx86_64_HOST_ARCH=1 --cflag=-Dsolaris2_HOST_OS=1
--cflag=-D__GLASGOW_HASKELL__=707 '--cflag=-fno-stack-protector' '--
cflag=-Ilibraries/haskeline/includes' '--cflag=-DUSE_GHC_ENCODINGS' '--
cflag=-DTERMINFO' '--cflag=-I/Users/leroux/ghc/ghc-
solaris/ghc/libraries/directory/include' '--cflag=-I/Users/leroux/ghc/ghc-
solaris/ghc/libraries/unix/include' '--cflag=-I/Users/leroux/ghc/ghc-
solaris/ghc/libraries/time/include' '--cflag=-I/Users/leroux/ghc/ghc-
solaris/ghc/libraries/containers/include' '--cflag=-I/Users/leroux/ghc
/ghc-solaris/ghc/libraries/bytestring/include' '--
cflag=-I/Users/leroux/ghc/ghc-solaris/ghc/libraries/base/include' '--
cflag=-I/Users/leroux/ghc/ghc-solaris/ghc/rts/dist/build' '--
cflag=-I/Users/leroux/ghc/ghc-solaris/ghc/includes' '--
cflag=-I/Users/leroux/ghc/ghc-solaris/ghc/includes/dist-
derivedconstants/header' '--lflag=-L/Users/leroux/ghc/ghc-
solaris/ghc/libraries/transformers/dist-install/build' '--
lflag=-L/Users/leroux/ghc/ghc-solaris/ghc/libraries/terminfo/dist-
install/build' '--lflag=-L/Users/leroux/ghc/ghc-
solaris/ghc/libraries/directory/dist-install/build' '--
lflag=-L/Users/leroux/ghc/ghc-solaris/ghc/libraries/unix/dist-
install/build' '--lflag=-L/Users/leroux/ghc/ghc-solaris/ghc/libraries/time
/dist-install/build' '--lflag=-L/Users/leroux/ghc/ghc-
solaris/ghc/libraries/old-locale/dist-install/build' '--
lflag=-L/Users/leroux/ghc/ghc-solaris/ghc/libraries/filepath/dist-
install/build' '--lflag=-L/Users/leroux/ghc/ghc-
solaris/ghc/libraries/containers/dist-install/build' '--
lflag=-L/Users/leroux/ghc/ghc-solaris/ghc/libraries/bytestring/dist-
install/build' '--lflag=-L/Users/leroux/ghc/ghc-
solaris/ghc/libraries/deepseq/dist-install/build' '--
lflag=-L/Users/leroux/ghc/ghc-solaris/ghc/libraries/array/dist-
install/build' '--lflag=-L/Users/leroux/ghc/ghc-solaris/ghc/libraries/base
/dist-install/build' '--lflag=-L/Users/leroux/ghc/ghc-
solaris/ghc/libraries/integer-simple/dist-install/build' '--
lflag=-L/Users/leroux/ghc/ghc-solaris/ghc/libraries/ghc-prim/dist-
install/build' '--lflag=-L/Users/leroux/ghc/ghc-
solaris/ghc/rts/dist/build' '--lflag=-lcurses' '--lflag=-lrt' '--
lflag=-ldl' '--lflag=-lm' '--lflag=-lrt' '--lflag=-ldl'
--cflag=-Ilibraries/haskeline/dist-install/build/autogen --cflag=-include
--cflag=libraries/haskeline/dist-install/build/autogen/cabal_macros.h
libraries/haskeline/./System/Console/Haskeline/Backend/Posix.hsc -o
libraries/haskeline/dist-
install/build/System/Console/Haskeline/Backend/Posix.hs
Posix.hsc: In function ‘_hsc2hs_test15’:
Posix.hsc:75:39: error: invalid application of ‘sizeof’ to incomplete type
‘struct winsize’
Posix.hsc: In function ‘_hsc2hs_test17’:
Posix.hsc:77:32: error: ‘TIOCGWINSZ’ undeclared (first use in this
function)
Posix.hsc:77:32: note: each undeclared identifier is reported only once
for each function it appears in
In file included from /Users/leroux/ghc/ghc-solaris/ghc/inplace/lib
/template-hsc.h:4:0,
from libraries/haskeline/dist-
install/build/System/Console/Haskeline/Backend/Posix_hsc_test0.c:1:
Posix.hsc: In function ‘_hsc2hs_test19’:
Posix.hsc:78:48: error: invalid use of undefined type ‘struct winsize’
Posix.hsc: In function ‘_hsc2hs_test21’:
Posix.hsc:79:48: error: invalid use of undefined type ‘struct winsize’
compilation failed
make[1]: *** [libraries/haskeline/dist-
install/build/System/Console/Haskeline/Backend/Posix.hs] Error 1
make: *** [all] Error 2
}}}
----
I attempted to remedy this issue by replacing all occurrences of
`offsetof` with `__builtin_offsetof` which was suggested by
http://web.archiveorange.com/archive/v/j7U5dymASw992FJprhK7, but it didn't
have any apparent affects.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8361>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list