lukexi / halive

Live recompiler for Haskell
BSD 2-Clause "Simplified" License
263 stars 18 forks source link

`stb-image` -related failure with `lambdacube-quake3` #22

Open deepfire opened 7 years ago

deepfire commented 7 years ago
[nix-shell:~/src/lambdacube-quake3]$ cabal clean; cabal build; halive mapviewer/MapViewer.hs . ./dist/build/autogen/
cleaning...
Package has never been configured. Configuring with default flags. If this
fails, please run configure manually.
Warning: The package list for 'hackage.haskell.org' is 330 days old.
Run 'cabal update' to get the latest list of available packages.
Resolving dependencies...
Configuring lambdacube-quake3-0.1.0.0...
Building lambdacube-quake3-0.1.0.0...
Preprocessing library lambdacube-quake3-0.1.0.0...
[ 1 of 24] Compiling Paths_lambdacube_quake3 ( dist/build/autogen/Paths_lambdacube_quake3.hs, dist/build/Paths_lambdacube_quake3.o )
[ 2 of 24] Compiling GameEngine.Utils ( GameEngine/Utils.hs, dist/build/GameEngine/Utils.o )
[ 3 of 24] Compiling GameEngine.Graphics.Frustum ( GameEngine/Graphics/Frustum.hs, dist/build/GameEngine/Graphics/Frustum.o )
[ 4 of 24] Compiling GameEngine.Scene ( GameEngine/Scene.hs, dist/build/GameEngine/Scene.o )
[ 5 of 24] Compiling GameEngine.Loader.Image ( GameEngine/Loader/Image.hs, dist/build/GameEngine/Loader/Image.o )
[ 6 of 24] Compiling GameEngine.Loader.Zip ( GameEngine/Loader/Zip.hs, dist/build/GameEngine/Loader/Zip.o )
[ 7 of 24] Compiling GameEngine.Loader.Entity ( GameEngine/Loader/Entity.hs, dist/build/GameEngine/Loader/Entity.o )
[ 8 of 24] Compiling GameEngine.Data.Material ( GameEngine/Data/Material.hs, dist/build/GameEngine/Data/Material.o )
[ 9 of 24] Compiling GameEngine.Loader.ShaderParser ( GameEngine/Loader/ShaderParser.hs, dist/build/GameEngine/Loader/ShaderParser.o )
[10 of 24] Compiling GameEngine.Graphics.Storage ( GameEngine/Graphics/Storage.hs, dist/build/GameEngine/Graphics/Storage.o )
[11 of 24] Compiling GameEngine.Content ( GameEngine/Content.hs, dist/build/GameEngine/Content.o )
[12 of 24] Compiling GameEngine.Data.GameCharacter ( GameEngine/Data/GameCharacter.hs, dist/build/GameEngine/Data/GameCharacter.o )
[13 of 24] Compiling GameEngine.Loader.GameCharacter ( GameEngine/Loader/GameCharacter.hs, dist/build/GameEngine/Loader/GameCharacter.o )
[14 of 24] Compiling GameEngine.Data.MD3 ( GameEngine/Data/MD3.hs, dist/build/GameEngine/Data/MD3.o )
[15 of 24] Compiling GameEngine.Loader.MD3 ( GameEngine/Loader/MD3.hs, dist/build/GameEngine/Loader/MD3.o )
[16 of 24] Compiling GameEngine.Graphics.MD3 ( GameEngine/Graphics/MD3.hs, dist/build/GameEngine/Graphics/MD3.o )
[17 of 24] Compiling GameEngine.Graphics.GameCharacter ( GameEngine/Graphics/GameCharacter.hs, dist/build/GameEngine/Graphics/GameCharacter.o )
[18 of 24] Compiling GameEngine.Data.BSP ( GameEngine/Data/BSP.hs, dist/build/GameEngine/Data/BSP.o )
[19 of 24] Compiling GameEngine.Loader.BSP ( GameEngine/Loader/BSP.hs, dist/build/GameEngine/Loader/BSP.o )
[20 of 24] Compiling GameEngine.Graphics.Culling ( GameEngine/Graphics/Culling.hs, dist/build/GameEngine/Graphics/Culling.o )
[21 of 24] Compiling GameEngine.Graphics.BezierSurface ( GameEngine/Graphics/BezierSurface.hs, dist/build/GameEngine/Graphics/BezierSurface.o )
[22 of 24] Compiling GameEngine.Graphics.BSP ( GameEngine/Graphics/BSP.hs, dist/build/GameEngine/Graphics/BSP.o )
[23 of 24] Compiling GameEngine.RenderSystem ( GameEngine/RenderSystem.hs, dist/build/GameEngine/RenderSystem.o )
[24 of 24] Compiling GameEngine.Collision ( GameEngine/Collision.hs, dist/build/GameEngine/Collision.o )
Preprocessing executable 'q3mapviewer' for lambdacube-quake3-0.1.0.0...
[1 of 7] Compiling Items            ( mapviewer/Items.hs, dist/build/q3mapviewer/q3mapviewer-tmp/Items.o )
[2 of 7] Compiling Content          ( mapviewer/Content.hs, dist/build/q3mapviewer/q3mapviewer-tmp/Content.o )
[3 of 7] Compiling Entity           ( mapviewer/Entity.hs, dist/build/q3mapviewer/q3mapviewer-tmp/Entity.o )
[4 of 7] Compiling Camera           ( mapviewer/Camera.hs, dist/build/q3mapviewer/q3mapviewer-tmp/Camera.o )
[5 of 7] Compiling Paths_lambdacube_quake3 ( dist/build/autogen/Paths_lambdacube_quake3.hs, dist/build/q3mapviewer/q3mapviewer-tmp/Paths_lambdacube_quake3.o )
[6 of 7] Compiling Engine           ( mapviewer/Engine.hs, dist/build/q3mapviewer/q3mapviewer-tmp/Engine.o )
[7 of 7] Compiling Main             ( mapviewer/MapViewer.hs, dist/build/q3mapviewer/q3mapviewer-tmp/Main.o )
Linking dist/build/q3mapviewer/q3mapviewer ...
Preprocessing executable 'shooter' for lambdacube-quake3-0.1.0.0...
[1 of 9] Compiling Items            ( game/Items.hs, dist/build/shooter/shooter-tmp/Items.o )
[2 of 9] Compiling Visuals          ( game/Visuals.hs, dist/build/shooter/shooter-tmp/Visuals.o )
[3 of 9] Compiling Entities         ( game/Entities.hs, dist/build/shooter/shooter-tmp/Entities.o )
[4 of 9] Compiling Collision        ( game/Collision.hs, dist/build/shooter/shooter-tmp/Collision.o )
[5 of 9] Compiling LoadEntities     ( game/LoadEntities.hs, dist/build/shooter/shooter-tmp/LoadEntities.o )
[6 of 9] Compiling World            ( game/World.hs, dist/build/shooter/shooter-tmp/World.o )
[7 of 9] Compiling GameLogic        ( game/GameLogic.hs, dist/build/shooter/shooter-tmp/GameLogic.o )

game/GameLogic.hs:245:5: warning: [-Woverlapping-patterns]
    Pattern match is redundant
    In a case alternative: e -> ...
[8 of 9] Compiling RenderGame       ( game/RenderGame.hs, dist/build/shooter/shooter-tmp/RenderGame.o )
[9 of 9] Compiling Main             ( game/GameMain.hs, dist/build/shooter/shooter-tmp/Main.o )
Linking dist/build/shooter/shooter ...
██╗  ██╗ █████╗ ██╗     ██╗██╗   ██╗███████╗
██║  ██║██╔══██╗██║     ██║██║   ██║██╔════╝
███████║███████║██║     ██║██║   ██║█████╗
██╔══██║██╔══██║██║     ██║╚██╗ ██╔╝██╔══╝
██║  ██║██║  ██║███████╗██║ ╚████╔╝ ███████╗
╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═══╝  ╚══════╝
                  engaged
SubHalive recompiling: ("mapviewer/MapViewer.hs","main")
Caught exception during recompileExpressionInFile:
ByteCodeLink: can't find label
During interactive linking, GHCi couldn't find the following symbol:
  stbi_load_from_memory
This may be due to you not asking GHCi to load extra object files,
archives or DLLs needed by your current session.  Restart GHCi, specifying
the missing library using the -L/path/to/object/dir and -lmissinglibname
flags, or simply by naming the relevant files on the GHCi command line.
Alternatively, this link failure might indicate a bug in GHCi.
If you suspect the latter, please send a bug report to:
  glasgow-haskell-bugs@haskell.org

************************* Compilation Errors, Waiting...      *************************

ByteCodeLink: can't find label
During interactive linking, GHCi couldn't find the following symbol:
  stbi_load_from_memory
This may be due to you not asking GHCi to load extra object files,
archives or DLLs needed by your current session.  Restart GHCi, specifying
the missing library using the -L/path/to/object/dir and -lmissinglibname
flags, or simply by naming the relevant files on the GHCi command line.
Alternatively, this link failure might indicate a bug in GHCi.
If you suspect the latter, please send a bug report to:
  glasgow-haskell-bugs@haskell.org

^Chalive: thread killed
deepfire commented 7 years ago

Additionally -- the stbi_load_from_memory function is actually linked into the executable:

[nix-shell:~/src/lambdacube-quake3]$ objdump -x dist/build/q3mapviewer/q3mapviewer | grep stbi_load_from_memory
00000000006b0630 g     F .text  0000000000000088              stbi_load_from_memory