Skip to content

Stack does not pass parameters given in command line to GHC #4526

@mouse07410

Description

@mouse07410

General summary/comments (optional)

stack is invoked with --ghc-options -optL=/usr/lib/libiconv.dylib. This is not passed to GHC, as the log below shows.

This problem screws up using stack on MacOS with Macports installed.

Steps to reproduce

  1. Get a Mac computer, install Macports and Haskell Platform.
  2. Do stack install intero --ghc-options -optL=/usr/lib/libiconv.dylib or stack install hsdev --ghc-options -optL=/usr/lib/libiconv.dylib, or stack install happy --ghc-options -optL=/usr/lib/libiconv.dylib

~/.stack/config.yaml (in case it can help):

#resolver: lts-13.2

system-ghc: true
skip-ghc-check: true
extra-path:
- /usr/local/bin

arch: x86_64

with-gcc: /opt/local/bin/gcc

extra-include-dirs: [ /opt/local/include, /usr/local/include ]
#extra-lib-dirs: [ /opt/local/lib, /usr/local/lib ]
extra-lib-dirs: [ /opt/local/lib/liconv, /opt/local/lib, /usr/local/lib, /usr/lib ]

#ignore-revision-mismatch: true
allow-newer: true

ghc-options:
    # All packages
    #"$locals": -Wall /usr/lib/libiconv.dylib
    "$targets": -Wall /usr/lib/libiconv.dylib
    "$everything": -O2 /usr/lib/libiconv.dylib
apply-ghc-options: everything

build:
  cabal-verbose: true

Expected

Successful build.

Actual

$ stack install hsdev --ghc-options -optL=/usr/lib/libiconv.dylib --verbose 2>&1 | tee hsdev-build.txt
Version 1.9.3, Git revision 40cf7b37526b86d1676da82167ea8758a854953b (6211 commits) x86_64 hpack-0.31.1
2019-01-21 13:15:12.147091: [debug] Checking for project config at: /Users/uri/src/stack.yaml
2019-01-21 13:15:12.147617: [debug] Checking for project config at: /Users/uri/stack.yaml
2019-01-21 13:15:12.147685: [debug] Checking for project config at: /Users/stack.yaml
2019-01-21 13:15:12.147735: [debug] Checking for project config at: /stack.yaml
2019-01-21 13:15:12.147785: [debug] No project config file found, using defaults.
2019-01-21 13:15:12.149954: [debug] Run from outside a project, using implicit global project config
2019-01-21 13:15:12.150343: [debug] Decoding build plan from: /Users/uri/.stack/build-plan/lts-13.2.yaml
2019-01-21 13:15:12.150398: [debug] Trying to decode /Users/uri/.stack/build-plan-cache/lts-13.2.cache
2019-01-21 13:15:12.156167: [debug] Success decoding /Users/uri/.stack/build-plan-cache/lts-13.2.cache
2019-01-21 13:15:12.156340: [debug] Getting system compiler version
2019-01-21 13:15:12.156619: [debug] Run process: /usr/local/bin/ghc --info
2019-01-21 13:15:12.261122: [debug] Process finished in 104ms: /usr/local/bin/ghc --info
2019-01-21 13:15:12.262655: [debug] Getting global package database location
2019-01-21 13:15:12.262895: [debug] Run process: /usr/local/bin/ghc-pkg --no-user-package-db list --global
2019-01-21 13:15:12.263590: [debug] Asking GHC for its version
2019-01-21 13:15:12.263769: [debug] Run process: /usr/local/bin/ghc --numeric-version
2019-01-21 13:15:12.264668: [debug] Getting Cabal package version
2019-01-21 13:15:12.264772: [debug] Run process: /usr/local/bin/ghc-pkg --no-user-package-db field --simple-output Cabal version
2019-01-21 13:15:12.349020: [debug] Process finished in 86ms: /usr/local/bin/ghc-pkg --no-user-package-db list --global
. . . . .
2019-01-21 13:15:29.285083: [debug] Encoding /Users/uri/.stack/global-project/.stack-work/install/x86_64-osx/lts-13.2/8.6.3/flag-cache/network-uri-2.6.1.0-K75fCYvLQE41EntOQ30cqK
2019-01-21 13:15:29.285590: [debug] Finished writing /Users/uri/.stack/global-project/.stack-work/install/x86_64-osx/lts-13.2/8.6.3/flag-cache/network-uri-2.6.1.0-K75fCYvLQE41EntOQ30cqK

--  While building package happy-1.19.9 using:
      /usr/local/bin/ghc --make -odir /private/var/folders/pd/mxn5kp_55jg23x7jjd10gtwm0000gn/T/stack3944/happy-1.19.9/.stack-work/dist/x86_64-osx/Cabal-2.4.0.1/setup -hidir /private/var/folders/pd/mxn5kp_55jg23x7jjd10gtwm0000gn/T/stack3944/happy-1.19.9/.stack-work/dist/x86_64-osx/Cabal-2.4.0.1/setup -i -i. -clear-package-db -global-package-db -package-db=/Users/uri/.stack/snapshots/x86_64-osx/lts-13.2/8.6.3/pkgdb -package-db=/Users/uri/.stack/global-project/.stack-work/install/x86_64-osx/lts-13.2/8.6.3/pkgdb -hide-all-packages -package-id=Cabal-2.4.1.0-Df4rkGuWEtO4aZs4eesJ3r -package-id=base-4.12.0.0 -package-id=directory-1.3.3.0 -package-id=filepath-1.4.2.1 -optP-include -optP/private/var/folders/pd/mxn5kp_55jg23x7jjd10gtwm0000gn/T/stack3944/happy-1.19.9/.stack-work/dist/x86_64-osx/Cabal-2.4.0.1/setup/setup_macros.h /private/var/folders/pd/mxn5kp_55jg23x7jjd10gtwm0000gn/T/stack3944/happy-1.19.9/Setup.lhs /Users/uri/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs -main-is StackSetupShim.mainOverride -o /private/var/folders/pd/mxn5kp_55jg23x7jjd10gtwm0000gn/T/stack3944/happy-1.19.9/.stack-work/dist/x86_64-osx/Cabal-2.4.0.1/setup/setup -threaded
    Process exited with code: ExitFailure 1
    Logs have been written to: /Users/uri/.stack/global-project/.stack-work/logs/happy-1.19.9.log

    [1 of 2] Compiling Main             ( /private/var/folders/pd/mxn5kp_55jg23x7jjd10gtwm0000gn/T/stack3944/happy-1.19.9/Setup.lhs, /private/var/folders/pd/mxn5kp_55jg23x7jjd10gtwm0000gn/T/stack3944/happy-1.19.9/.stack-work/dist/x86_64-osx/Cabal-2.4.0.1/setup/Main.o )
    
    /private/var/folders/pd/mxn5kp_55jg23x7jjd10gtwm0000gn/T/stack3944/happy-1.19.9/Setup.lhs:48:22: warning: [-Wdeprecations]
        In the use of ‘rawSystemProgramConf’
        (imported from Distribution.Simple.Program):
        Deprecated: "use runDbProgram instead. This symbol will be removed in Cabal-3.0 (est. Mar 2019)."
       |
    48 |   let runProgram p = rawSystemProgramConf (fromFlagOrDefault normal (buildVerbosity flags))
       |                      ^^^^^^^^^^^^^^^^^^^^
    [2 of 2] Compiling StackSetupShim   ( /Users/uri/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /private/var/folders/pd/mxn5kp_55jg23x7jjd10gtwm0000gn/T/stack3944/happy-1.19.9/.stack-work/dist/x86_64-osx/Cabal-2.4.0.1/setup/StackSetupShim.o )
    Linking /private/var/folders/pd/mxn5kp_55jg23x7jjd10gtwm0000gn/T/stack3944/happy-1.19.9/.stack-work/dist/x86_64-osx/Cabal-2.4.0.1/setup/setup ...
    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_iconvEncoding6_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding6_info , _base_GHCziIOziEncodingziIconv_iconvEncoding5_closure , _hs_iconv_open , _base_GHCziIOziEncodingziIconv_iconvEncoding9_info , _base_GHCziIOziEncodingziIconv_iconvEncoding11_info , _base_GHCziIOziEncodingziIconv_iconvEncoding12_info , _base_GHCziIOziEncodingziIconv_iconvEncoding14_bytes , _hs_iconv_close , _base_GHCziIOziEncodingziIconv_iconvEncoding2_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding2_info , _base_GHCziIOziEncodingziIconv_iconvEncoding11_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding15_info , _base_GHCziIOziEncodingziIconv_iconvEncoding_info , _base_GHCziIOziEncodingziIconv_iconvEncoding12_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding10_bytes , _base_GHCziIOziEncodingziIconv_iconvEncoding8_info , _base_GHCziIOziEncodingziIconv_iconvEncoding1_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding8_closure , _hs_iconv , _base_GHCziIOziEncodingziIconv_iconvEncoding13_closure , _base_GHCziIOziEncodingziIconv_iconvEncoding13_info , _base_GHCziIOziEncodingziIconv_iconvEncoding7_info , _base_GHCziIOziEncodingziIconv_iconvEncoding9_closure )
      "_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)
$

Complete build log: hsdev-build.txt

happy-log.txt

Stack version

$ stack --version
Version 1.9.3, Git revision 40cf7b37526b86d1676da82167ea8758a854953b (6211 commits) x86_64 hpack-0.31.1

Method of installation

  • Official binary, downloaded from/with Haskell Platform, an updated via stack update

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions