Libc not linking when compiling for emscripten

Hey everyone, I have been trying for a while now to compile chipmunk2d for emscripten.
For some reason I am not able to to it though because I always get errors indicating that I didn’t link libc (stdlib.h can’t be found etc.).
I’m using the following command below which is causing said issue. When building for non wasm targets it is working though.

zig build run-basic -Dtarget=wasm32-emscripten --sysroot ~/.emscripten_cache

Below is a link to the gist containing the build.zig and an emcc.zig file. I took some inspiration from raylib-zig and the raylib project.
Something to note is that I am using exe_lib.linkLibC().
Also I tested it on 0.12.1 and 0.13.0
link to build.zig and emcc.zig

If it helps this is the stacktrace:

run-basic
└─ run emrun
└─ run emcc
└─ zig build-lib basic Debug wasm32-emscripten 32 errors
/home/marcel/git/third_party/chipmunkz/src/c/src/cpArray.c:22:10: error:
‘string.h’ file not found
#include <string.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpSpaceQuery.c:22:10: n
ote: in file included from /home/marcel/git/third_party/chipmunkz/src/c/
src/cpSpaceQuery.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpArbiter.c:22:10: note
: in file included from /home/marcel/git/third_party/chipmunkz/src/c/src
/cpArbiter.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpBody.c:25:10: note: i
n file included from /home/marcel/git/third_party/chipmunkz/src/c/src/cp
Body.c:25:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/src/cpSpaceComponent.c:22:1
0: error: ‘string.h’ file not found
#include <string.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpCollision.c:22:10: er
ror: ‘stdio.h’ file not found
#include <stdio.h>
^~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpBBTree.c:22:10: error
: ‘stdlib.h’ file not found
#include “stdlib.h”
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpSpace.c:22:10: error:
‘stdio.h’ file not found
#include <stdio.h>
^~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpSpaceDebug.c:22:10: n
ote: in file included from /home/marcel/git/third_party/chipmunkz/src/c/
src/cpSpaceDebug.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpSweep1D.c:22:10: note
: in file included from /home/marcel/git/third_party/chipmunkz/src/c/src
/cpSweep1D.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpSpaceStep.c:22:10: no
te: in file included from /home/marcel/git/third_party/chipmunkz/src/c/s
rc/cpSpaceStep.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpSpatialIndex.c:22:10:
note: in file included from /home/marcel/git/third_party/chipmunkz/src/
c/src/cpSpatialIndex.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpSpaceHash.c:22:10: no
te: in file included from /home/marcel/git/third_party/chipmunkz/src/c/s
rc/cpSpaceHash.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/src/chipmunk.c:22:10: error
: ‘stdio.h’ file not found
#include <stdio.h>
^~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpSimpleMotor.c:22:10:
note: in file included from /home/marcel/git/third_party/chipmunkz/src/c
/src/cpSimpleMotor.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_t
ypes.h:27:10: error: ‘math.h’ file not found
#include <math.h>
^~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpRobust.c:1:10: note:
in file included from /home/marcel/git/third_party/chipmunkz/src/c/src/c
pRobust.c:1:
#include “chipmunk/cpRobust.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/cpRobust.h
:1:10: note: in file included from /home/marcel/git/third_party/chipmunk
z/src/c/include/chipmunk/cpRobust.h:1:
#include “chipmunk/cpVect.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/cpVect.h:2
5:10: note: in file included from /home/marcel/git/third_party/chipmunkz
/src/c/include/chipmunk/cpVect.h:25:
#include “chipmunk_types.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpRatchetJoint.c:22:10:
note: in file included from /home/marcel/git/third_party/chipmunkz/src/
c/src/cpRatchetJoint.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpSlideJoint.c:22:10: n
ote: in file included from /home/marcel/git/third_party/chipmunkz/src/c/
src/cpSlideJoint.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpPolyShape.c:22:10: no
te: in file included from /home/marcel/git/third_party/chipmunkz/src/c/s
rc/cpPolyShape.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpShape.c:22:10: note:
in file included from /home/marcel/git/third_party/chipmunkz/src/c/src/c
pShape.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpRotaryLimitJoint.c:22
:10: note: in file included from /home/marcel/git/third_party/chipmunkz/
src/c/src/cpRotaryLimitJoint.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpPivotJoint.c:22:10: n
ote: in file included from /home/marcel/git/third_party/chipmunkz/src/c/
src/cpPivotJoint.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpPinJoint.c:22:10: not
e: in file included from /home/marcel/git/third_party/chipmunkz/src/c/sr
c/cpPinJoint.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/src/cpHastySpace.c:4:10: er
ror: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpGearJoint.c:22:10: no
te: in file included from /home/marcel/git/third_party/chipmunkz/src/c/s
rc/cpGearJoint.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/src/cpMarch.c:4:10: error:
‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpPolyline.c:4:10: erro
r: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpGrooveJoint.c:22:10:
note: in file included from /home/marcel/git/third_party/chipmunkz/src/c
/src/cpGrooveJoint.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpConstraint.c:22:10: n
ote: in file included from /home/marcel/git/third_party/chipmunkz/src/c/
src/cpConstraint.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpDampedSpring.c:22:10:
note: in file included from /home/marcel/git/third_party/chipmunkz/src/
c/src/cpDampedSpring.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpDampedRotarySpring.c:
22:10: note: in file included from /home/marcel/git/third_party/chipmunk
z/src/c/src/cpDampedRotarySpring.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk.h
:25:10: error: ‘stdlib.h’ file not found
#include <stdlib.h>
^~~~~~~~~~~
/home/marcel/git/third_party/chipmunkz/src/c/src/cpHashSet.c:22:10: note
: in file included from /home/marcel/git/third_party/chipmunkz/src/c/src
/cpHashSet.c:22:
#include “chipmunk/chipmunk_private.h”
^
/home/marcel/git/third_party/chipmunkz/src/c/include/chipmunk/chipmunk_p
rivate.h:25:10: note: in file included from /home/marcel/git/third_party
/chipmunkz/src/c/include/chipmunk/chipmunk_private.h:25:
#include “chipmunk/chipmunk.h”
^
error: warning(compilation): failed to delete ‘/home/marcel/git/third_pa
rty/chipmunkz/.zig-cache/tmp/10e2fbe4f2aed9e7-cpArray.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/fa1f9b357729ea99-cpSpaceQuery.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/f8284b15d1e32732-cpArbiter.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/25e2ad0aadcfb955-cpBody.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/ce92204a219d77b6-cpSpaceComponent.o.d’: FileNotFou
nd
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/24f9a6d4bfe9d03d-cpCollision.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/b69ec00f06b3d2dd-cpBBTree.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/17b15d87bfc965e6-cpSpace.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/1751559f07ce976b-cpSpaceDebug.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/4f7b426228820bd4-cpSweep1D.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/5c1dc96ef7d6057f-cpSpaceStep.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/fc46fe43155868aa-cpSpatialIndex.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/d265cdfa6e277711-cpSpaceHash.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/6bb9605c865fe00-chipmunk.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/ec1d9f1d3ee176dc-cpSimpleMotor.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/8787481aaf8102a2-cpRobust.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/6d79b7bea64dc9ec-cpRatchetJoint.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/f56d8827a3966d77-cpSlideJoint.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/e45719b8c9aa979b-cpPolyShape.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/938b048fac22b0ba-cpShape.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/1b69d3f6bc7018da-cpRotaryLimitJoint.o.d’: FileNotF
ound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/ed52faecc0ba4c8e-cpPivotJoint.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/55486047fb9d61fa-cpPinJoint.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/59414a8516e31f9b-cpHastySpace.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/92b7a1a2aace5d75-cpGearJoint.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/e7c1e34c1187ceac-cpMarch.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/16d0f459563a36c-cpPolyline.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/b744c51719301475-cpGrooveJoint.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/1465cc528be54625-cpConstraint.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/fbbd8e35a9edfb0d-cpDampedSpring.o.d’: FileNotFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/ebd7a9436e10fb6e-cpDampedRotarySpring.o.d’: FileNo
tFound
warning(compilation): failed to delete ‘/home/marcel/git/third_party/chi
pmunkz/.zig-cache/tmp/39831d808662266c-cpHashSet.o.d’: FileNotFound

error: the following command failed with 32 compilation errors:
/nix/store/f2119p2rpq7k67klrrmlmrg3z1zjzv3i-zig-0.13.0/bin/zig build-lib
/home/marcel/git/third_party/chipmunkz/.zig-cache/o/d230e9c55f0a4e364a1
e83130284273c/webhack.c -ODebug -target wasm32-emscripten -mcpu baseline
–dep chipmunkz -Mroot=/home/marcel/git/third_party/chipmunkz/examples/
basic.zig -cflags -DCP_USE_DOUBLES=0 -Wno-return-type-c-linkage -fno-san
itize=undefined – /home/marcel/git/third_party/chipmunkz/src/c/src/chip
munk.c /home/marcel/git/third_party/chipmunkz/src/c/src/cpArbiter.c /hom
e/marcel/git/third_party/chipmunkz/src/c/src/cpArray.c /home/marcel/git/
third_party/chipmunkz/src/c/src/cpBBTree.c /home/marcel/git/third_party/
chipmunkz/src/c/src/cpBody.c /home/marcel/git/third_party/chipmunkz/src/
c/src/cpCollision.c /home/marcel/git/third_party/chipmunkz/src/c/src/cpC
onstraint.c /home/marcel/git/third_party/chipmunkz/src/c/src/cpDampedRot
arySpring.c /home/marcel/git/third_party/chipmunkz/src/c/src/cpDampedSpr
ing.c /home/marcel/git/third_party/chipmunkz/src/c/src/cpGearJoint.c /ho
me/marcel/git/third_party/chipmunkz/src/c/src/cpGrooveJoint.c /home/marc
el/git/third_party/chipmunkz/src/c/src/cpHashSet.c /home/marcel/git/thir
d_party/chipmunkz/src/c/src/cpHastySpace.c /home/marcel/git/third_party/
chipmunkz/src/c/src/cpMarch.c /home/marcel/git/third_party/chipmunkz/src
/c/src/cpPinJoint.c /home/marcel/git/third_party/chipmunkz/src/c/src/cpP
ivotJoint.c /home/marcel/git/third_party/chipmunkz/src/c/src/cpPolyline.
c /home/marcel/git/third_party/chipmunkz/src/c/src/cpPolyShape.c /home/m
arcel/git/third_party/chipmunkz/src/c/src/cpRatchetJoint.c /home/marcel/
git/third_party/chipmunkz/src/c/src/cpRobust.c /home/marcel/git/third_pa
rty/chipmunkz/src/c/src/cpRotaryLimitJoint.c /home/marcel/git/third_part
y/chipmunkz/src/c/src/cpShape.c /home/marcel/git/third_party/chipmunkz/s
rc/c/src/cpSimpleMotor.c /home/marcel/git/third_party/chipmunkz/src/c/sr
c/cpSlideJoint.c /home/marcel/git/third_party/chipmunkz/src/c/src/cpSpac
e.c /home/marcel/git/third_party/chipmunkz/src/c/src/cpSpaceComponent.c
/home/marcel/git/third_party/chipmunkz/src/c/src/cpSpaceDebug.c /home/ma
rcel/git/third_party/chipmunkz/src/c/src/cpSpaceHash.c /home/marcel/git/
third_party/chipmunkz/src/c/src/cpSpaceQuery.c /home/marcel/git/third_pa
rty/chipmunkz/src/c/src/cpSpaceStep.c /home/marcel/git/third_party/chipm
unkz/src/c/src/cpSpatialIndex.c /home/marcel/git/third_party/chipmunkz/s
rc/c/src/cpSweep1D.c -I /home/marcel/git/third_party/chipmunkz/src/c/inc
lude -Mchipmunkz=/home/marcel/git/third_party/chipmunkz/src/chipmunkz.zi
g -lc --cache-dir /home/marcel/git/third_party/chipmunkz/.zig-cache --gl
obal-cache-dir /home/marcel/.cache/zig --name basic -static --sysroot /h
ome/marcel/.emscripten_cache --listen=-
Build Summary: 2/6 steps succeeded; 1 failed (disable with --summary non
e)
run-basic transitive failure
└─ run emrun transitive failure
└─ run emcc transitive failure
├─ zig build-lib basic Debug wasm32-emscripten 32 errors
└─ zig build-lib basic Debug wasm32-emscripten (+2 more reused dep
endencies)
error: the following build command failed with exit code 1:
/home/marcel/git/third_party/chipmunkz/.zig-cache/o/747fdf64958debc88475
cd74396bd2f7/build /nix/store/f2119p2rpq7k67klrrmlmrg3z1zjzv3i-zig-0.13.
0/bin/zig /home/marcel/git/third_party/chipmunkz /home/marcel/git/third_
party/chipmunkz/.zig-cache /home/marcel/.cache/zig --seed 0xce7f43f1 -Z8
cd328ee9a9aea3f run-basic -Dtarget=wasm32-emscripten --sysroot /home/mar
cel/.emscripten_cache

[Process exited 1]

Hi

Here are my notes on debug this sort of stuff

#to compile main.zig with the C standard library and your library in …/c_src
zig run main.zig -lc -I …/c-src/

Hope it helps

const module = b.addModule("root", .{
        .root_source_file = b.path("src/chipmunkz.zig"),
        .link_libc = true,
    });

I didn’t know that this option exists. Thank for making me aware of it!
I did try it with the flag set to true but it still doesn’t work.
Someone in the Zig discord said it might be because libc doesn’t get shipped with emscripten and only with wasi so I might need to look into that.

1 Like

Hey, thanks for the tip! You’re right, maybe I should first try to compile it without a build.zig and then try to translate it afterwards.

1 Like

I think you are missing this part:

It manually adds the include path to <sysroot>/cache/sysroot/include.
I think using b.pathJoin makes that a bit simpler, I am using:

const sysroot_include = b.pathJoin(&.{ b.sysroot.?, "cache", "sysroot", "include" });
var dir = std.fs.openDirAbsolute(sysroot_include, std.fs.Dir.OpenDirOptions{ .access_sub_paths = true, .no_follow = true }) catch @panic("No emscripten cache. Generate it!");
dir.close();

exe_lib.addIncludePath(.{ .cwd_relative = sysroot_include });

This is using a --sysroot that is specified via an absolute path, I am not sure whether that is best practice, but this is what the raylib build.zig does currently.

2 Likes

That’s it! I was circling around thousand other things and completely forgot about that part. Thank you so much! I’ve been banging my head against a wall for days now. It’s compiling now! Next thing will be to clean up the whole thing.

2 Likes