Compile unable to find object file when compiling on Windows.
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
**Describe the bug**
Compile unable to find object file when compiling on Windows.
**To Reproduce**
On windows compile https://github.com/haskell-works/hw-rankselect-base/pull/59
```
Building library for hw-rankselect-base-0.3.4.1..
[1 of 9] Compiling HaskellWorks.Data.RankSelect.Base.Internal ( src\HaskellWorks\Data\RankSelect\Base\Internal.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\build\HaskellWorks\Data\RankSelect\Base\Internal.o )
[2 of 9] Compiling HaskellWorks.Data.RankSelect.Base.Rank1 ( src\HaskellWorks\Data\RankSelect\Base\Rank1.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\build\HaskellWorks\Data\RankSelect\Base\Rank1.o )
[3 of 9] Compiling HaskellWorks.Data.RankSelect.Base.Rank0 ( src\HaskellWorks\Data\RankSelect\Base\Rank0.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\build\HaskellWorks\Data\RankSelect\Base\Rank0.o )
[4 of 9] Compiling HaskellWorks.Data.RankSelect.Base.Rank ( src\HaskellWorks\Data\RankSelect\Base\Rank.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\build\HaskellWorks\Data\RankSelect\Base\Rank.o )
[5 of 9] Compiling HaskellWorks.Data.RankSelect.Base.Select1 ( src\HaskellWorks\Data\RankSelect\Base\Select1.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\build\HaskellWorks\Data\RankSelect\Base\Select1.o )
[6 of 9] Compiling HaskellWorks.Data.RankSelect.Base.Select0 ( src\HaskellWorks\Data\RankSelect\Base\Select0.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\build\HaskellWorks\Data\RankSelect\Base\Select0.o )
[7 of 9] Compiling HaskellWorks.Data.RankSelect.Base.Select ( src\HaskellWorks\Data\RankSelect\Base\Select.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\build\HaskellWorks\Data\RankSelect\Base\Select.o )
[8 of 9] Compiling HaskellWorks.Data.RankSelect.Base ( src\HaskellWorks\Data\RankSelect\Base.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\build\HaskellWorks\Data\RankSelect\Base.o )
[9 of 9] Compiling Paths_hw_rankselect_base ( D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\build\autogen\Paths_hw_rankselect_base.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\build\Paths_hw_rankselect_base.o )
Configuring test suite 'hw-rankselect-base-test' for hw-rankselect-base-0.3.4.1..
Configuring test suite 'doctest' for hw-rankselect-base-0.3.4.1..
Configuring benchmark 'bench' for hw-rankselect-base-0.3.4.1..
Preprocessing test suite 'hw-rankselect-base-test' for hw-rankselect-base-0.3.4.1..
Building test suite 'hw-rankselect-base-test' for hw-rankselect-base-0.3.4.1..
Preprocessing test suite 'doctest' for hw-rankselect-base-0.3.4.1..
Building test suite 'doctest' for hw-rankselect-base-0.3.4.1..
Preprocessing benchmark 'bench' for hw-rankselect-base-0.3.4.1..
Building benchmark 'bench' for hw-rankselect-base-0.3.4.1..
[1 of 6] Compiling HaskellWorks.Data.RankSelect.Base.InternalSpec ( test\HaskellWorks\Data\RankSelect\Base\InternalSpec.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\t\hw-rankselect-base-test\build\hw-rankselect-base-test\hw-rankselect-base-test-tmp\HaskellWorks\Data\RankSelect\Base\InternalSpec.o )
[1 of 1] Compiling Main ( bench\Main.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\b\bench\build\bench\bench-tmp\Main.o )
[1 of 1] Compiling Main ( doctest\DoctestDriver.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\t\doctest\build\doctest\doctest-tmp\Main.o )
[2 of 6] Compiling HaskellWorks.Data.RankSelect.Base.Rank0Spec ( test\HaskellWorks\Data\RankSelect\Base\Rank0Spec.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\t\hw-rankselect-base-test\build\hw-rankselect-base-test\hw-rankselect-base-test-tmp\HaskellWorks\Data\RankSelect\Base\Rank0Spec.o )
Linking D:\\a\\hw-rankselect-base\\hw-rankselect-base\\dist-newstyle\\build\\x86_64-windows\\ghc-9.2.8\\hw-rankselect-base-0.3.4.1\\t\\doctest\\build\\doctest\\doctest.exe ...
Linking D:\\a\\hw-rankselect-base\\hw-rankselect-base\\dist-newstyle\\build\\x86_64-windows\\ghc-9.2.8\\hw-rankselect-base-0.3.4.1\\b\\bench\\build\\bench\\bench.exe ...
[3 of 6] Compiling HaskellWorks.Data.RankSelect.Base.Rank1Spec ( test\HaskellWorks\Data\RankSelect\Base\Rank1Spec.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\t\hw-rankselect-base-test\build\hw-rankselect-base-test\hw-rankselect-base-test-tmp\HaskellWorks\Data\RankSelect\Base\Rank1Spec.o )
[4 of 6] Compiling HaskellWorks.Data.RankSelect.Base.Select0Spec ( test\HaskellWorks\Data\RankSelect\Base\Select0Spec.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\t\hw-rankselect-base-test\build\hw-rankselect-base-test\hw-rankselect-base-test-tmp\HaskellWorks\Data\RankSelect\Base\Select0Spec.o )
[5 of 6] Compiling HaskellWorks.Data.RankSelect.Base.Select1Spec ( test\HaskellWorks\Data\RankSelect\Base\Select1Spec.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\t\hw-rankselect-base-test\build\hw-rankselect-base-test\hw-rankselect-base-test-tmp\HaskellWorks\Data\RankSelect\Base\Select1Spec.o )
[6 of 6] Compiling Main ( test\Spec.hs, D:\\a\hw-rankselect-base\hw-rankselect-base\dist-newstyle\build\x86_64-windows\ghc-9.2.8\hw-rankselect-base-0.3.4.1\t\hw-rankselect-base-test\build\hw-rankselect-base-test\hw-rankselect-base-test-tmp\Main.o )
Linking D:\\a\\hw-rankselect-base\\hw-rankselect-base\\dist-newstyle\\build\\x86_64-windows\\ghc-9.2.8\\hw-rankselect-base-0.3.4.1\\t\\hw-rankselect-base-test\\build\\hw-rankselect-base-test\\hw-rankselect-base-test.exe ...
realgcc.exe: error: D:\\a\\hw-rankselect-base\\hw-rankselect-base\\dist-newstyle\\build\\x86_64-windows\\ghc-9.2.8\\hw-rankselect-base-0.3.4.1\\t\\hw-rankselect-base-test\\build\\hw-rankselect-base-test\\hw-rankselect-base-test-tmp\HaskellWorks\Data\RankSelect\Base\InternalSpec.o: No such file or directory
`gcc.exe' failed in phase `Linker'. (Exit code: 1)
Error: cabal-3.10.2.1.exe: Failed to build test:hw-rankselect-base-test from
hw-rankselect-base-0.3.4.1.
```
See the build failures in this PR (if Windows is added to the list of OSes in the Github workflow): https://github.com/haskell-works/hw-rankselect-base/pull/59
https://github.com/haskell-works/hw-rankselect-base/actions/runs/7441179407/job/20242989317?pr=59
Note that `InternalSpec` module was compiled so the object file should be there:
```
[1 of 6] Compiling HaskellWorks.Data.RankSelect.Base.InternalSpec
```
**Expected behavior**
The object file should be found and linked.
**System information**
- Operating system: Windows
- `cabal-3.10.2.1`, All `ghc` versions
**Additional context**
Add any other context about the problem here.
Contributor guide
Research direction
Reproduce the failure by adding Windows to the hw-rankselect-base GitHub workflow from pull request 59 and building the hw-rankselect-base-test suite. Start by tracing Cabal's Windows test-linking step around the generated object path, using test/Spec.hs and the listed InternalSpec compilation as references. Done means the compiled object is found and the test executable links successfully on Windows.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, haskell
- Domain
- build-system, ci-cd, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100