Shake fails to accept GHC parameters, demo fails to run

15 views
Skip to first unread message

mous...@bu.edu

unread,
Apr 2, 2019, 11:11:54 AM4/2/19
to Shake build system
I need to be able to pass "-optL=/usr/lib/libocinv.dylib" to ghc somehow. Seem unable. Shake

$ ghc -V
The Glorious Glasgow Haskell Compilation System, version 8.6.4
$ stack --version
Version 1.9.3, Git revision 40cf7b37526b86d1676da82167ea8758a854953b (6211 commits) x86_64 hpack-0.31.1
$ shake --version
Shake build system, version 0.17.7

$ ghcup debug-info
Script version: 0.0.7

Script variables:
GHC install location: /Users/ur20980/.ghcup/ghc
Binary install location: /Users/ur20980/.ghcup/bin
Tarball cache location: /Users/ur20980/.ghcup/cache
Downloader: curl --fail -O <url>
Script update url: https://raw.githubusercontent.com/haskell/ghcup/master/ghcup
GHC download baseurl: https://downloads.haskell.org/~ghc
Meta download url https://raw.githubusercontent.com/haskell/ghcup/master/.download-urls
Meta download format 1
Meta version url https://raw.githubusercontent.com/haskell/ghcup/master/.available-versions
Meta version format 1

Detected system information:
Architecture: x86_64
Distribution: Darwin
Distro alias: darwin
Distro version: 18.2.0
$
$ stack exec -- shake --demo
% Welcome to the Shake v0.17.7 demo mode!
% Detecting machine configuration... done

% The Shake demo uses an empty directory, OK to use:
% /Users/ur20980/shake-demo
% [Y/N] (then ENTER): y
% Copying files... done

% [1/5] Building an example project with Shake.
% Press ENTER to continue:
% RUNNING: cd /Users/ur20980/shake-demo
% RUNNING: ./build.sh
[1 of 1] Compiling Main ( Build.hs, _shake/Main.o )
Linking _shake/build ...
Undefined symbols for architecture x86_64:
"_iconv", referenced from:
_hs_iconv in libHSbase-4.12.0.0.a(iconv.o)
(maybe you meant: _base_GHCziIOziEncodingziIconv_iconvEncoding_closure, _base_GHCziIOziEncodingziIconv_iconvEncoding1_info , _base_GHCziIOziEncodingziIconv_iconvEncoding3_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding4_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding7_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding15_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding4_info , _base_GHCziIOziEncodingziIconv_iconvEncoding7_info , _base_GHCziIOziEncodingziIconv_iconvEncoding6_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding6_info , _base_GHCziIOziEncodingziIconv_iconvEncoding5_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding14_bytes , _base_GHCziIOziEncodingziIconv_iconvEncoding8_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding8_info , _hs_iconv_open , _base_GHCziIOziEncodingziIconv_iconvEncoding9_closure , _hs_iconv_close , _base_GHCziIOziEncodingziIconv_iconvEncoding11_info , _base_GHCziIOziEncodingziIconv_iconvEncoding12_info , _base_GHCziIOziEncodingziIconv_iconvEncoding15_info , _base_GHCziIOziEncodingziIconv_iconvEncoding1_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding10_bytes , _base_GHCziIOziEncodingziIconv_iconvEncoding2_info , _base_GHCziIOziEncodingziIconv_iconvEncoding11_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding12_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding2_closure , _hs_iconv , _base_GHCziIOziEncodingziIconv_iconvEncoding9_info , _base_GHCziIOziEncodingziIconv_iconvEncoding_info , _base_GHCziIOziEncodingziIconv_iconvEncoding13_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding13_info )
"_iconv_open", referenced from:
_hs_iconv_open in libHSbase-4.12.0.0.a(iconv.o)
(maybe you meant: _hs_iconv_open)
"_iconv_close", referenced from:
_hs_iconv_close in libHSbase-4.12.0.0.a(iconv.o)
(maybe you meant: _hs_iconv_close)
"_locale_charset", referenced from:
_localeEncoding in libHSbase-4.12.0.0.a(PrelIOUtils.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
`clang' failed in phase `Linker'. (Exit code: 1)
shake: user error (Development.Shake.cmd, system command failed
Command: ./build.sh
Current directory: /Users/ur20980/shake-demo
Exit code: 1
Stderr:
Undefined symbols for architecture x86_64:
"_iconv", referenced from:
_hs_iconv in libHSbase-4.12.0.0.a(iconv.o)
(maybe you meant: _base_GHCziIOziEncodingziIconv_iconvEncoding_closure, _base_GHCziIOziEncodingziIconv_iconvEncoding1_info , _base_GHCziIOziEncodingziIconv_iconvEncoding3_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding4_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding7_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding15_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding4_info , _base_GHCziIOziEncodingziIconv_iconvEncoding7_info , _base_GHCziIOziEncodingziIconv_iconvEncoding6_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding6_info , _base_GHCziIOziEncodingziIconv_iconvEncoding5_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding14_bytes , _base_GHCziIOziEncodingziIconv_iconvEncoding8_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding8_info , _hs_iconv_open , _base_GHCziIOziEncodingziIconv_iconvEncoding9_closure , _hs_iconv_close , _base_GHCziIOziEncodingziIconv_iconvEncoding11_info , _base_GHCziIOziEncodingziIconv_iconvEncoding12_info , _base_GHCziIOziEncodingziIconv_iconvEncoding15_info , _base_GHCziIOziEncodingziIconv_iconvEncoding1_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding10_bytes , _base_GHCziIOziEncodingziIconv_iconvEncoding2_info , _base_GHCziIOziEncodingziIconv_iconvEncoding11_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding12_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding2_closure , _hs_iconv , _base_GHCziIOziEncodingziIconv_iconvEncoding9_info , _base_GHCziIOziEncodingziIconv_iconvEncoding_info , _base_GHCziIOziEncodingziIconv_iconvEncoding13_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding13_info )
"_iconv_open", referenced from:
_hs_iconv_open in libHSbase-4.12.0.0.a(iconv.o)
(maybe you meant: _hs_iconv_open)
"_iconv_close", referenced from:
_hs_iconv_close in libHSbase-4.12.0.0.a(iconv.o)
(maybe you meant: _hs_iconv_close)
"_locale_charset", referenced from:
_localeEncoding in libHSbase-4.12.0.0.a(PrelIOUtils.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
`clang' failed in phase `Linker'. (Exit code: 1)
)
$
$
$ cd shake-demo
$ runhaskell Build.hs -v

Build.hs:1:1: error:
Could not find module ‘Development.Shake’
Use -v to see a list of the files searched for.
|
1 | import Development.Shake
| ^^^^^^^^^^^^^^^^^^^^^^^^

Build.hs:2:1: error:
Could not find module ‘Development.Shake.Command’
Use -v to see a list of the files searched for.
|
2 | import Development.Shake.Command
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Build.hs:3:1: error:
Could not find module ‘Development.Shake.FilePath’
Use -v to see a list of the files searched for.
|
3 | import Development.Shake.FilePath
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Build.hs:4:1: error:
Could not find module ‘Development.Shake.Util’
Use -v to see a list of the files searched for.
|
4 | import Development.Shake.Util
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$

Neil Mitchell

unread,
Apr 2, 2019, 5:24:59 PM4/2/19
to mous...@bu.edu, Shake build system
Hi,

I've also replied on the ticket at
https://github.com/ndmitchell/shake/issues/664

In general, if the demo doesn't work for you, I wouldn't overly worry
about it - it's purely for teaching Shake - and the issues you
describe won't happen in real build systems (or rather, you are
responsible for defining the command lines there). The demo still
generates a build system, and you should be able to manually generate
what it produces to have it work how you need.

Thanks, Neil

mous...@bu.edu

unread,
Apr 3, 2019, 12:28:46 PM4/3/19
to Shake build system
The problem is that when I go into the demo directory, I seem unable to even compile, let alone build let alone run anything.

The guide sais "runhaskell Build.hs" should compile/link/run the demo, or "./build.sh" - but it fails to compile. 

How does one compile, link and run the demo stuff that's already been generated? As opposed to only doing "stack exec -- shake --demo"?
Reply all
Reply to author
Forward
0 new messages