1919# ./build.sh constellation # Sweep dashboard -> ./seethestars
2020# ./build.sh cache_data # Sweep log cache -> ./cache_data
2121# ./build.sh trailer # 5.0 trailer -> ./resources/trailer/trailer (also exports diagrams)
22- # ./build.sh all # Build all envs native and native float32
2322#
2423# Env is compiled in. Run: ./puffer train|eval|match|sweep [--section.key=value ...]
2524
9998CLANG_WARN=(
10099 -Wall
101100 -Wno-narrowing
101+ -Wno-unreachable-code
102102 -ferror-limit=3
103103 -Werror=incompatible-pointer-types
104104 -Werror=return-type
@@ -370,7 +370,7 @@ elif [ "$MODE" = "web" ]; then
370370 emcc \
371371 -o " build/web/$ENV /game.html" \
372372 src/puffercpu.c $EXTRA_SRC \
373- -O3 -Wall -Wno-narrowing \
373+ -O3 -Wall -Wno-narrowing -Wno-unreachable-code \
374374 " ${LINK_ARCHIVES[@]} " \
375375 -I. -Isrc -I$SRC_DIR -Ivendor " ${INCLUDES[@]} " \
376376 -L. -L./$RAYLIB_NAME /lib \
@@ -466,8 +466,15 @@ ENV_COMPILE_FLAGS=(-DENV_HEADER=\"$ENV_HEADER\")
466466
467467MODE=${MODE:- native}
468468
469- # Allow double→int/float in brace-init (host -Wno-narrowing + nvcc #2361).
470- NVCC_NARROW=(-Xcompiler=-Wno-narrowing --diag-suppress=2361)
469+ # Brace-init narrowing (host -Wno-narrowing + nvcc #2361) and unreachable
470+ # code in env headers (clang -Wunreachable-code, nvcc #111/#128).
471+ NVCC_NARROW=(
472+ -Xcompiler=-Wno-narrowing
473+ -Xcompiler=-Wno-unreachable-code
474+ --diag-suppress=2361
475+ --diag-suppress=111
476+ --diag-suppress=128
477+ )
471478
472479if [ " $MODE " = " native" ]; then
473480 if [ -n " $OUT " ]; then
@@ -486,14 +493,16 @@ if [ "$MODE" = "native" ]; then
486493 OSRS_RENDER_OBJECT=" build/osrs_puffer_render.o"
487494 ENV_COMPILE_FLAGS+=(-DOSRS_PUFFER_RENDER)
488495 $CC $LINK_OPT " ${CLANG_WARN[@]} " " ${SIMD_FLAGS[@]} " -std=c11 \
496+ -Wno-unused-function \
497+ -D_POSIX_C_SOURCE=200809L \
489498 -I. -Isrc -I$SRC_DIR -Ivendor \
490499 " ${INCLUDES[@]} " \
491500 -DPLATFORM_DESKTOP \
492501 -c ocean/osrs/osrs_puffer_render.c \
493502 -o " $OSRS_RENDER_OBJECT "
494503 ;;
495504 esac
496- echo " Compiling native train/eval binary ( $ARCH ) -> $TRAIN_BIN ..."
505+ echo " Compiling $ENV_HEADER -> $TRAIN_BIN ..."
497506 $NVCC $NVCC_OPT -arch=$ARCH -std=c++17 \
498507 -I. -Isrc -I$SRC_DIR -Ivendor \
499508 " ${INCLUDES[@]} " \
@@ -514,13 +523,13 @@ if [ "$MODE" = "native" ]; then
514523 -L$CUDA_HOME /lib64 $NCCL_LFLAG \
515524 " ${EXTRA_LDFLAGS[@]} " \
516525 -lcudart -lnccl -lnvidia-ml -lcublas -lcusolver -lcurand \
517- -lm -lpthread $OMP_LIB " ${STANDALONE_LDFLAGS[@]} " \
526+ -lm -Xlinker=- lpthread $OMP_LIB " ${STANDALONE_LDFLAGS[@]} " \
518527 -o " $TRAIN_BIN "
519528 echo " Built: ./$TRAIN_BIN "
520529
521530elif [ " $MODE " = " profile" ]; then
522531 PROFILE_BIN=" build/profile_${ENV} "
523- echo " Compiling profile binary ( $ARCH ) -> $PROFILE_BIN ..."
532+ echo " Compiling $ENV_HEADER -> $PROFILE_BIN ..."
524533 $NVCC $NVCC_OPT -arch=$ARCH -std=c++17 \
525534 -I. -Isrc -I$SRC_DIR -Ivendor \
526535 " ${INCLUDES[@]} " \
@@ -537,7 +546,7 @@ elif [ "$MODE" = "profile" ]; then
537546 " $RAYLIB_A " \
538547 -L$CUDA_HOME /lib64 \
539548 -lnccl -lnvidia-ml -lcublas -lcusolver -lcurand \
540- -lGL -lm -lpthread $OMP_LIB \
549+ -lGL -lm -Xlinker=- lpthread $OMP_LIB \
541550 -o " $PROFILE_BIN "
542551 echo " Built: ./$PROFILE_BIN "
543552fi
0 commit comments