Skip to content

Instantly share code, notes, and snippets.

@foxoman
Forked from planetis-m/mybuildcmds.rst
Created March 12, 2025 08:58
Show Gist options
  • Save foxoman/3efa1c32049907a23c3fc519aebbd008 to your computer and use it in GitHub Desktop.
Save foxoman/3efa1c32049907a23c3fc519aebbd008 to your computer and use it in GitHub Desktop.
My build commands

Debug

nim c --cc:clang --mm:orc --panics:on --threads:on --tlsEmulation:off -l:"-fuse-ld=mold" %f

Release

nim c --cc:clang --mm:orc --panics:on --threads:on --tlsEmulation:off -l:"-fuse-ld=mold" -d:release %f

Performance

nim c --cc:clang --mm:orc --panics:on --threads:on --tlsEmulation:off -t:"-march=native -ffast-math" -l:"-flto" -d:danger %f

ASan

nim c --cc:clang --mm:arc --panics:on --threads:on --tlsEmulation:off -t:"-fsanitize=address,undefined -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" -l:"-fsanitize=address,undefined -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" -d:nosignalhandler -d:release -d:usemalloc -g %f

LibFuzzer

nim c --cc:clang --mm:orc --panics:on -t:"-fsanitize=fuzzer,address,undefined -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" -l:"-fsanitize=fuzzer,address,undefined -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" -d:nosignalhandler --nomain:on -d:release -d:usemalloc -g %f

TSan

nim c --cc:clang --mm:arc --panics:on --threads:on --tlsEmulation:off -t:"-fsanitize=thread -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" -l:"-fsanitize=thread -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" -d:nosignalhandler -d:release -d:usemalloc -g %f

Disassembler

objdump --no-show-raw-insn -drwlS -M intel %n

Nimpretty

nimpretty --indent:2 --maxLineLen:100 %f

Perf

perf record -e cycles:pp --call-graph dwarf %f
perf annotate -M intel

Rebuild toolchain

git pull
./koch boot -d:release --mm:markandsweep --panics:on --exceptions:goto
./koch toolsNoExternal tools -d:release --mm:markandsweep --panics:on --exceptions:goto
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment