Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
174bdd5
switch to a script based declarative model for linker tests; new COFF
NikitaSmith057 Aug 27, 2026
b4c5278
blake3: update to 1.8.7 version and use asm implementations
mmozeiko Sep 3, 2026
9c4c630
radlink: release the ~1GB image buffer early so reclaim overlaps the run
honkstar1 Jun 17, 2026
cdb3bec
radlink: /OPT:GCTYPES -- garbage-collect unreferenced CodeView types …
honkstar1 Jun 19, 2026
4109234
radlink: frontier worklist for type-GC transitive closure (perf)
honkstar1 Jun 19, 2026
c246499
radlink: skip the GC mark atomic on the already-reachable fast path
honkstar1 Jun 19, 2026
e4b3ed3
radlink: header-unit IFC debug-record resolution
honkstar1 Jul 13, 2026
636cf43
linker: parallelize apply_ifc nonblob_complete set merge + ifc parse
honkstar1 Jul 18, 2026
492e285
linker: parallelize the serial setup loops in lnk_make_code_view_input
honkstar1 Jun 21, 2026
6d653d1
radlink perf: decommit idle tctx scratch pages before PDB build
honkstar1 Jun 21, 2026
2150622
linker: free leaf bucket_arr probe tables before the merge-types comm…
honkstar1 Jun 22, 2026
86ee226
radlink: env-gated RADLINK_PHASE_LOG raw per-phase micros file (diagn…
honkstar1 Jun 22, 2026
e1cc21c
linker: /RAD_SHARED_THREAD_POOL -- cross-process shared thread pool (…
honkstar1 Jun 25, 2026
04871b2
radlink: sort image relocs by apply_off for monotone-forward patch wr…
honkstar1 Jun 25, 2026
fed13c8
radlink: non-temporal stores for write-once image fill
honkstar1 Jun 25, 2026
8e6a931
radlink: false-sharing pads on per-worker [worker_count] arrays
honkstar1 Jun 25, 2026
327407b
radlink: symbol trie inline-hash fast-reject
honkstar1 Jun 25, 2026
31b59e3
radlink: reap merge-types bucket arena on a background thread
honkstar1 Jul 1, 2026
9bc6eb5
radlink: patch debug-section relocs on private copies (keep CoW input…
honkstar1 Jul 1, 2026
f832c09
radlink: /PDBSTRIPPED strips proc itype in the destination buffer, no…
honkstar1 Jul 1, 2026
a21bd75
linker: size leaf dedup tables from a deterministic unique-count esti…
honkstar1 Jul 2, 2026
636412a
linker: shard GSI/PSI symbol inserts by bucket range
honkstar1 Jul 2, 2026
8d54f4e
codeview: replace per-TI linked-list type-index offsets with static d…
honkstar1 Jul 2, 2026
ff830b7
linker: parallelize image align-byte fill (first-touch) across the pool
honkstar1 Jul 2, 2026
2ffe6b3
arena: 2MB commit quantum for the link's high-churn arenas
honkstar1 Jul 2, 2026
7a754f6
linker: sample the unique-leaf estimator at every 8th leaf position
honkstar1 Jul 2, 2026
40170b4
linker: size-weighted obj distribution for the PDB barrier passes
honkstar1 Jul 2, 2026
ff81610
linker: schedule-independent symrec order for same-name global symbols
honkstar1 Jul 2, 2026
16811db
linker: /OPT:REF walk: memoize reloc-symbol resolution, drop per-relo…
honkstar1 Jul 2, 2026
6ac907f
linker: /OPT:REF: parallelize unreachable-section removal
honkstar1 Jul 2, 2026
43318eb
linker: packed-discriminator pre-filter for archive symbol-dir bsearch
honkstar1 Jul 2, 2026
a30ee13
linker: balance GSI deduper inserts and parallelize bucket compaction
honkstar1 Jul 2, 2026
d6a5899
linker: release scratch free-list blocks off the main thread
honkstar1 Jul 3, 2026
a53bbf9
linker: warn visibly on unknown /RAD_* command-line switches
honkstar1 Jul 2, 2026
2515a8f
linker: opt-in one-line [radlink summary] (v=3) for production triage
honkstar1 Jul 3, 2026
65b25cb
linker: batch-prefetch mapped debug input, fanned out over the pool -…
honkstar1 Jul 3, 2026
c26064f
linker: map input file views read-only -- commit charge per dirtied p…
honkstar1 Jul 6, 2026
2f0435a
linker: /OPT:ICF -- folded functions keep bindable debug info (Lines …
honkstar1 Jul 9, 2026
5aae2d5
linker: memoize ICF FILECHKSMS lookups
honkstar1 Jul 19, 2026
d5bba7c
build: PGO training also links with /OPT:REF /OPT:ICF
honkstar1 Jul 20, 2026
43bdaf0
linker: implement by-name-no-prefix and undecorate import members
honkstar1 Jul 20, 2026
c885a84
thread_pool: fair-share floor for barrier-pass cohorts
honkstar1 Jul 20, 2026
766b1dd
linker: fuse leaf TI-fixup into unbucket -- materialize unique leaves…
honkstar1 Jul 21, 2026
d674147
linker: escalate folded-debug-info to the full tree on function-scope…
honkstar1 Jul 21, 2026
c7884ee
linker: accept /OPT:ICFSTATIC as an alias for /OPT:ICF
honkstar1 Jul 13, 2026
43e3cbb
linker: cap fault-bound debug-input stages at /RAD_DEBUG_WORKERS work…
honkstar1 Aug 11, 2026
47b494f
linker: open background-written output files on the writer thread -- …
honkstar1 Aug 11, 2026
92569e6
linker: cap the input-view unmap pass at the debug worker cap -- Unma…
honkstar1 Aug 11, 2026
dd1adf1
msf: direct stream-number -> node table -- msf_find_stream_node walke…
honkstar1 Aug 11, 2026
1b1a463
linker: fix O(T^2) dummy type-server obj allocation -- the loop pushe…
honkstar1 Aug 11, 2026
33d79ab
linker: parallelize giant .debug$T parsing inside the object -- a Sha…
honkstar1 Aug 11, 2026
1160b1a
linker: PDB commit diet, first two steps -- (1) the background file w…
honkstar1 Aug 11, 2026
83ca569
linker: stream GSI/PSI symbol payloads through a reused window + enqu…
honkstar1 Aug 12, 2026
953f052
linker: GSI/PSI buckets hold CV_Symbol values in per-bucket arrays in…
honkstar1 Aug 12, 2026
af4aea4
linker: release patched debug-section copies before the GSI/PSI build…
honkstar1 Aug 12, 2026
f6b181a
linker: ring P1.1 -- canonicalize .debug$S subsection access + dorman…
honkstar1 Aug 12, 2026
d5c2cd4
linker: ring P1.2 -- provenance resolver + debug-build parity walks -…
honkstar1 Aug 12, 2026
e313cc1
linker: ring P2a -- .debug$S TI fixups journal at merge, replay at mo…
honkstar1 Aug 12, 2026
c47373f
linker: ring P2b -- global-symbol + proc-ref extraction fused into th…
honkstar1 Aug 12, 2026
bd04642
linker: ring P3.1+P3.2 -- unconditional string-table decoupling + ded…
honkstar1 Aug 13, 2026
e5cfc1e
linker: ring P3.3 -- .debug$S streams through a reused per-worker win…
honkstar1 Aug 13, 2026
58d859d
linker: ring P3.4 -- one window fill per obj -- module sizing no long…
honkstar1 Aug 13, 2026
f4d5da2
linker: ring P4 -- .debug$T/$P views become read-only; discards journ…
honkstar1 Aug 13, 2026
76a3711
linker: ring P5 -- input views release at their last reader, not proc…
honkstar1 Aug 13, 2026
e5a612b
linker: forward-declare LNK_Inputer at file scope -- struct declared …
honkstar1 Aug 13, 2026
891d703
linker: coalesce background PDB writes -- the progressive writer issu…
honkstar1 Aug 13, 2026
6f723f2
linker: skip debug-input prefetch for lone links
honkstar1 Aug 13, 2026
41f555d
radlink: avoid duplicate GSI candidate columns
honkstar1 Aug 13, 2026
aec88c5
radlink: scatter GSI sort entries directly
honkstar1 Aug 13, 2026
5f9402d
radlink: compact GSI grouping scratch
honkstar1 Aug 13, 2026
3b55e2f
radlink: narrow GSI candidate offsets
honkstar1 Aug 13, 2026
dd95ceb
radlink: use native widths for GSI metadata
honkstar1 Aug 13, 2026
659f6f4
linker: right-size per-worker OPT:REF resolve cache
honkstar1 Aug 14, 2026
9a0228a
linker: compact OPT:ICF refinement records
honkstar1 Aug 14, 2026
62fdf9a
linker: compact associative section graph
honkstar1 Aug 14, 2026
943479c
linker: deduplicate GSI records during module write
honkstar1 Aug 14, 2026
b8142b9
linker: overlap PDB page decommit with writes
honkstar1 Aug 14, 2026
e5027df
linker: accelerate type-leaf hash probes
honkstar1 Aug 14, 2026
9577c82
linker: skip identity radix passes
honkstar1 Aug 14, 2026
42f88b9
linker: remove division from assigned-type probes
honkstar1 Aug 14, 2026
d1041dc
linker: raise debug-input worker cap to 20
honkstar1 Aug 14, 2026
07b1753
linker: remove division from GSI dedup probes
honkstar1 Aug 14, 2026
1a4ca6a
linker: mask fixed-size GSI bucket probes
honkstar1 Aug 14, 2026
debab82
linker: specialize fixed PDB bucket probes
honkstar1 Aug 14, 2026
830a7b6
linker: improve type-fixup locality without extra memory
honkstar1 Aug 14, 2026
a5c10e1
linker: reuse ICF key storage for output colors
honkstar1 Aug 14, 2026
6e102ef
linker: reuse dead ICF hash bytes for group indices
honkstar1 Aug 14, 2026
f6b4386
linker: compact cached ICF relocation targets
honkstar1 Aug 14, 2026
ac6bd5a
linker: pack OPT:REF resolve cache values
honkstar1 Aug 14, 2026
a66d188
linker: fuse PDB global and proc-ref extraction
honkstar1 Aug 14, 2026
6eb94a4
linker: count PDB symbol inputs during module sizing
honkstar1 Aug 14, 2026
0592190
linker: copy aligned PDB module symbols directly
honkstar1 Aug 14, 2026
c104782
linker: rescan symbols when resolving libraries
honkstar1 Aug 14, 2026
88b2c45
linker: test library search symbol-state rescan
honkstar1 Aug 17, 2026
afe68da
linker: adapt PR options to typed command-line API
honkstar1 Aug 19, 2026
92cb76d
linker: restore the active radix buffer after skipped passes
honkstar1 Aug 19, 2026
4353099
thread_pool: fail fast on stranded grants without blocking diagnostics
honkstar1 Sep 3, 2026
9f9a097
linker: report library state when entry inference fails
honkstar1 Aug 20, 2026
c7f33b3
linker: fix invalid-library result indexing
honkstar1 Aug 20, 2026
3458778
linker: restore missing DLL-import dependency diagnostics
honkstar1 Sep 2, 2026
f555a9d
coff: emit BigObj for oversized generated import objects
honkstar1 Sep 2, 2026
2aa63c0
lnk: index function override aliases during directive parsing
honkstar1 Sep 2, 2026
a721072
torture: match sort callback signature for Clang
honkstar1 Sep 2, 2026
c71da32
Park shared-pool governor once pass demand is covered
honkstar1 Sep 3, 2026
1076b06
linker: correct PDB phase summary timers and test their bounds
honkstar1 Sep 3, 2026
bcbf903
build: assemble BLAKE3 with LLVM for Clang builds
honkstar1 Sep 3, 2026
6fa35bc
linker: cover upstream dotted exports and real forwarders
honkstar1 Sep 3, 2026
22a3d6a
radlink: add portable segmented compressed OBJ reader
honkstar1 Aug 16, 2026
1216958
radlink: consume indexed debug data from compressed OBJs
honkstar1 Aug 16, 2026
1703d05
tools: add portable compressed OBJ writer
honkstar1 Aug 16, 2026
1889f8a
tests: add compressed OBJ conversion and benchmark tools
honkstar1 Aug 16, 2026
19448c2
radlink: productionize compressed OBJ runtime policy
honkstar1 Aug 17, 2026
31a7063
docs: specify the portable compressed OBJ format
honkstar1 Aug 17, 2026
c8c334c
radlink: use portable atomics for cobj census
honkstar1 Aug 17, 2026
4f00644
build: package matching radlink PDB
honkstar1 Aug 17, 2026
34ef665
build: make the Oodle path compatible with Clang
honkstar1 Aug 19, 2026
2907df1
radlink: prevent compressed cache write-group starvation
honkstar1 Aug 20, 2026
337a8d0
radlink: size small compressed caches by segment capacity
honkstar1 Aug 20, 2026
6650522
lnk: avoid re-sorting unchanged compressed object regions
honkstar1 Sep 2, 2026
3084b79
tests: verify compressed debug relocation and raw artifact parity
honkstar1 Sep 3, 2026
3b1cb0b
radlink: skip ICF source reads when summaries rule out locals
honkstar1 Sep 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ jobs:
- name: build
shell: bash
run: |
[[ "${{ matrix.compiler }}" == "clang-22" ]] && export AR=llvm-ar-22
CC="${{ matrix.compiler }}" ./build.sh "${{ matrix.target }}" "${{ matrix.mode }}"

build-windows-2022:
Expand Down Expand Up @@ -103,6 +104,7 @@ jobs:
- name: Run
shell: bash
run: |
[[ "${{ matrix.compiler }}" == "clang-22" ]] && export AR=llvm-ar-22
CC="${{ matrix.compiler }}" ./run_tests.sh clang "${{ matrix.mode }}" -- \* $TORTURE_FLAGS
- name: Upload Artifacts
if: failure()
Expand Down
48 changes: 45 additions & 3 deletions build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ cd /D "%~dp0"
:: - `ubsan`: enable undefined-behavior sanitizer
:: - `telemetry`: enable RAD telemetry profiling support
:: - `spall`: enable spall profiling support
:: - `oodle`: enable Oodle-compressed OBJ support in radlink (requires OODLE_SDK_DIR)

:: --- Unpack Arguments -------------------------------------------------------
for %%a in (%*) do set "%%~a=1"
Expand All @@ -53,13 +54,15 @@ if "%pgo%"=="1" (
where llvm-profdata /q || echo llvm-profdata is not in the PATH || exit /b 1
if "%clang%"=="1" (
if "%pgo_run%" == "1" (
call llvm-profdata merge %LLVM_PROFILE_FILE% -output=%~dp0build\build.profdata || exit /b 1
call llvm-profdata merge %~dp0build\pgo_raw\*.profraw -output=%~dp0build\build.profdata || exit /b 1
set auto_compile_flags=%auto_compile_flags% -fprofile-use=%~dp0build\build.profdata
set pgo_run=0
) else (
echo [pgo enabled]
set auto_compile_flags=%auto_compile_flags% -fprofile-generate -mllvm -vp-counters-per-site=5
set LLVM_PROFILE_FILE=%~dp0build\build.profraw
if not exist %~dp0build\pgo_raw mkdir %~dp0build\pgo_raw
del /q %~dp0build\pgo_raw\*.profraw 2>nul
set LLVM_PROFILE_FILE=%~dp0build\pgo_raw\build.%%p.profraw
set pgo_run=1
)
) else (
Expand Down Expand Up @@ -98,6 +101,10 @@ if "%msvc%"=="1" set rc=call rc
if "%clang%"=="1" set rc=call llvm-rc
if "%msvc%"=="1" set link_dll=/link /DLL
if "%clang%"=="1" set link_dll=-Xlinker -DLL
if "%msvc%"=="1" set asm=call ml64 -nologo -c -Zi -Fo
if "%clang%"=="1" set asm=call llvm-ml -m64 /c /Fo
if "%msvc%"=="1" set mklib=call lib -nologo
if "%clang%"=="1" set mklib=call llvm-lib

:: --- Choose Compile/Link Lines ----------------------------------------------
if "%msvc%"=="1" set compile_debug=%cl_debug%
Expand Down Expand Up @@ -138,12 +145,43 @@ if "%no_meta%"=="" if exist metagen.exe (
)
popd

:: --- Assemble BLAKE3 --------------------------------------------------------
if not exist build\blake3.lib if "%VSCMD_ARG_TGT_ARCH%" equ "x64" (
echo [assembling blake3]
pushd build
%asm% blake3_sse2_x86-64_windows_msvc.obj ..\src\third_party\blake3\blake3_sse2_x86-64_windows_msvc.asm || exit /b 1
%asm% blake3_sse41_x86-64_windows_msvc.obj ..\src\third_party\blake3\blake3_sse41_x86-64_windows_msvc.asm || exit /b 1
%asm% blake3_avx2_x86-64_windows_msvc.obj ..\src\third_party\blake3\blake3_avx2_x86-64_windows_msvc.asm || exit /b 1
%asm% blake3_avx512_x86-64_windows_msvc.obj ..\src\third_party\blake3\blake3_avx512_x86-64_windows_msvc.asm || exit /b 1
%mklib% -out:blake3.lib blake3_*_msvc.obj || exit /b 1
popd
)

:: --- Build Everything (@build_targets) --------------------------------------
pushd build
if "%raddbg%"=="1" set didbuild=1 && %compile% ..\src\raddbg\raddbg_main.c %compile_link% %link_icon% %out%raddbg.exe || exit /b 1
if "%raddbg_non_graphical%"=="1" set didbuild=1 && %compile% -DWM_STUB=1 -DR_BACKEND=R_BACKEND_STUB ..\src\raddbg\raddbg_main.c %compile_link% %link_icon% %out%raddbg_non_graphical.exe || exit /b 1
if "%com_shim%"=="1" set didbuild=1 && %compile% ..\src\com_shim\com_shim_main.c %compile_link% %out%com_shim.exe || exit /b 1
if "%radlink%"=="1" set didbuild=1 && %compile% ..\src\linker\lnk.c %compile_link% %linker% /NOIMPLIB %linker% /NATVIS:"%~dp0\src\linker\linker.natvis" %out%radlink.exe || exit /b 1
set radlink_oodle_flags=
set radlink_oodle_lib=
set rad_obj_compress_oodle_flags=
set rad_obj_compress_oodle_lib=
if "%oodle%"=="1" if "%OODLE_SDK_DIR%"=="" (
echo OODLE_SDK_DIR must name an Oodle SDK when building radlink with oodle
exit /b 1
)
if "%oodle%"=="1" if "%msvc%"=="1" set radlink_oodle_flags=/I"%OODLE_SDK_DIR%\include" -DLNK_OODLE=1
if "%oodle%"=="1" if "%clang%"=="1" set radlink_oodle_flags=-I"%OODLE_SDK_DIR%\include" -DLNK_OODLE=1
if "%oodle%"=="1" set radlink_oodle_lib="%OODLE_SDK_DIR%\lib\Win64\oo2core_win64.lib"
if "%rad_obj_compress%"=="1" if "%OODLE_SDK_DIR%"=="" (
echo OODLE_SDK_DIR must name an Oodle SDK when building rad_obj_compress
exit /b 1
)
if "%rad_obj_compress%"=="1" if "%msvc%"=="1" set rad_obj_compress_oodle_flags=/I"%OODLE_SDK_DIR%\include"
if "%rad_obj_compress%"=="1" if "%clang%"=="1" set rad_obj_compress_oodle_flags=-I"%OODLE_SDK_DIR%\include"
if "%rad_obj_compress%"=="1" set rad_obj_compress_oodle_lib="%OODLE_SDK_DIR%\lib\Win64\oo2core_win64.lib"
if "%radlink%"=="1" set didbuild=1 && %compile% %radlink_oodle_flags% ..\src\linker\lnk.c %radlink_oodle_lib% %compile_link% %linker% /NOIMPLIB %linker% /NATVIS:"%~dp0\src\linker\linker.natvis" %out%radlink.exe || exit /b 1
if "%rad_obj_compress%"=="1" set didbuild=1 && %compile% %rad_obj_compress_oodle_flags% ..\src\linker\rad_obj_compress.c %rad_obj_compress_oodle_lib% %compile_link% %out%rad_obj_compress.exe || exit /b 1
if "%radbin%"=="1" set didbuild=1 && %compile% ..\src\radbin\radbin_main.c %compile_link% %out%radbin.exe || exit /b 1
if "%raddump%"=="1" set didbuild=1 && %compile% ..\src\raddump\raddump_main.c %compile_link% %out%raddump.exe || exit /b 1
if "%ryan_scratch%"=="1" set didbuild=1 && %compile% ..\src\scratch\ryan_scratch.c %compile_link% %out%ryan_scratch.exe || exit /b 1
Expand Down Expand Up @@ -184,6 +222,10 @@ if "%pgo_run%"=="1" (
if "%radlink%"=="1" (
pushd local\lyra_pgo
call %~dp0build\radlink @lyra.rsp || exit /b 1
rem lyra.rsp trains with /OPT:NOREF /OPT:NOICF; run a second link with REF+ICF on
rem (later switches win) so the profile also covers the /OPT:REF walk and the ICF
rem refinement -- otherwise PGO marks them cold and the build regresses on real links
call %~dp0build\radlink @lyra.rsp /OPT:REF /OPT:ICF || exit /b 1
popd
)
goto restart
Expand Down
17 changes: 14 additions & 3 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ fi
cc_icon="-DLNX_WM_ICON=1"

# --- Choose Compile/Link Lines -----------------------------------------------
if [[ "${gcc:-0}" == "1" ]]; then compiler="${CC:-gcc} $cc_cflags_gcc"; echo "[gcc compile]";
elif [[ "${clang:-1}" == "1" ]]; then compiler="${CC:-clang} $cc_cflags_clang"; echo "[clang compile]";
if [[ "${gcc:-0}" == "1" ]]; then compiler="${CC:-gcc} $cc_cflags_gcc"; ar="${AR:-ar}"; echo "[gcc compile]";
elif [[ "${clang:-1}" == "1" ]]; then compiler="${CC:-clang} $cc_cflags_clang"; ar="${AR:-llvm-ar}"; echo "[clang compile]";
fi
if [[ "${release:-0}" == "1" ]]; then echo "[release mode]"; compile="$compiler $cc_release";
elif [[ "${debug:-1}" == "1" ]]; then echo "[debug mode]"; compile="$compiler $cc_debug";
Expand All @@ -62,12 +62,23 @@ then
cd ..
fi

# --- Assemble BLAKE3 ---------------------------------------------------------
if [[ ! -f "build/blake3.a" ]]
then
echo "[assembling blake3]"
$compiler -c -g -o build/blake3_sse2_x86-64_unix.o src/third_party/blake3/blake3_sse2_x86-64_unix.S
$compiler -c -g -o build/blake3_sse41_x86-64_unix.o src/third_party/blake3/blake3_sse41_x86-64_unix.S
$compiler -c -g -o build/blake3_avx2_x86-64_unix.o src/third_party/blake3/blake3_avx2_x86-64_unix.S
$compiler -c -g -o build/blake3_avx512_x86-64_unix.o src/third_party/blake3/blake3_avx512_x86-64_unix.S
$ar rs build/blake3.a build/blake3_*_unix.o
fi

# --- Build Everything (@build_targets) ---------------------------------------
cd build
if [[ "${raddbg:-0}" == "1" ]]; then didbuild=1 && $compile ../src/raddbg/raddbg_main.c $cc_icon $cc_link $cc_os_gfx $cc_render $cc_font_provider -o raddbg; fi
if [[ "${raddbg_non_graphical:-0}" == "1" ]]; then didbuild=1 && $compile ../src/raddbg/raddbg_main.c -DWM_STUB=1 -DR_BACKEND=R_BACKEND_STUB $cc_link $cc_os_gfx $cc_render $cc_font_provider -o raddbg_non_graphical; fi
if [[ "${radbin:-0}" == "1" ]]; then didbuild=1 && $compile ../src/radbin/radbin_main.c $cc_link -o radbin; fi
if [[ "${radlink:-0}" == "1" ]]; then didbuild=1 && $compile ../src/linker/lnk.c $cc_link -o radlink; fi
if [[ "${radlink:-0}" == "1" ]]; then didbuild=1 && $compile ../src/linker/lnk.c $cc_link -o radlink blake3.a; fi
if [[ "${torture:-0}" == "1" ]]; then didbuild=1 && $compile ../src/torture/torture_main.c $cc_link $cc_os_gfx $cc_render $cc_font_provider -o torture; fi
cd ..

Expand Down
Loading
Loading