Skip to content
Draft

scratch #1162

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
163 commits
Select commit Hold shift + click to select a range
2429853
build(nix): introduce nix build system
daniel-noland Dec 15, 2025
ee81a9d
build(nix): intro addToEnv helper
daniel-noland Dec 15, 2025
3167008
build(nix): introduce stdenv-llvm
daniel-noland Dec 15, 2025
086d3c3
build(nix): add llvm's bintools and lld to stdenv
daniel-noland Dec 15, 2025
522e265
build(nix): disable checks in stdenv
daniel-noland Dec 15, 2025
18dc2c5
build(nix): intro stdenv-llvm-with-flags
daniel-noland Dec 15, 2025
47e5093
build(nix): intro dataplane-dep helper function
daniel-noland Dec 15, 2025
525851e
build(nix): null ethtool and iproute2
daniel-noland Dec 15, 2025
7f263fc
build(nix): null heavy doc tools
daniel-noland Dec 15, 2025
266b2a4
build(nix): null systemd + helpers
daniel-noland Dec 15, 2025
c4ebd6a
build(nix): introduce overlay for libmd
daniel-noland Dec 15, 2025
dadde46
build(nix): introduce overlay for libbsd
daniel-noland Dec 15, 2025
eb0b56c
build(nix): introduce overlay for libnl
daniel-noland Dec 15, 2025
c5be4af
build(nix): introduce overlay for numactl
daniel-noland Dec 15, 2025
ce7b2a9
build(nix): introduce overlay for rdma-core
daniel-noland Dec 15, 2025
488112c
build(nix): introduce npins package management
daniel-noland Dec 15, 2025
ac0c9da
build(nix): pin our version of rdma-core
daniel-noland Dec 15, 2025
60d760b
build(nix): import pinned sources into default.nix
daniel-noland Dec 15, 2025
129ba17
build(nix): import nixpkgs from npins source
daniel-noland Dec 15, 2025
e63103f
build(nix): introduce default overlay
daniel-noland Dec 15, 2025
18be22b
build(nix): pipe pinned sources to dataplane overlay
daniel-noland Dec 15, 2025
15021b8
build(nix): use pinned rdma-core
daniel-noland Dec 15, 2025
3c2507a
build(nix): pin DPDK to version 25.11
daniel-noland Dec 15, 2025
09575cd
build(nix): introduce dpdk package
daniel-noland Dec 15, 2025
28f6f1c
build(nix): replace dpdk build in dataplane overlay
daniel-noland Dec 15, 2025
8439e02
build(nix): expose pkgs in default.nix
daniel-noland Dec 15, 2025
f9f55b3
build(nix): add dataplane overlay to default.nix
daniel-noland Dec 15, 2025
1850879
build(nix): pipe env into overlays
daniel-noland Dec 15, 2025
c8d29b6
build(nix): frame common profile
daniel-noland Dec 15, 2025
733d9a1
build(nix): frame debug profile
daniel-noland Dec 15, 2025
c8cd3bd
build(nix): frame optimize profile
daniel-noland Dec 15, 2025
c14d487
build(nix): frame secure profile
daniel-noland Dec 15, 2025
73c18e3
build(nix): add notes about cf-protection, cfi, and safe-stack
daniel-noland Dec 15, 2025
0fa5f56
build(nix): intro combine-profiles
daniel-noland Dec 15, 2025
fd26b1a
build(nix): define debug environment
daniel-noland Dec 15, 2025
ce71a57
build(nix): define release environment
daniel-noland Dec 15, 2025
3f046c4
build(nix): pipe environments into build
daniel-noland Dec 15, 2025
b795b36
build(nix): introduce fat-lto-objects flag (for the moment)
daniel-noland Dec 15, 2025
941ca3c
style(nix): sort outputs in dpdk build
daniel-noland Dec 19, 2025
a9f5037
refactor(nix): move profiles.nix to nix folder
daniel-noland Dec 19, 2025
7fe5a94
build(nix): introduce x86_64 march flags
daniel-noland Dec 19, 2025
51c93bb
build(nix): introduce aarch64 march flags
daniel-noland Dec 19, 2025
494278a
build(nix): introduce build profiles
daniel-noland Dec 19, 2025
1d8133c
build(nix): introduce cross compile / profile infrastructure
daniel-noland Dec 19, 2025
4eb38d7
build(nix): compile dpdk_wrapper.a with nix
daniel-noland Dec 19, 2025
6de393c
build(nix): make overlay user selectable
daniel-noland Dec 19, 2025
ec93642
build(nix): add address sanitize profile
daniel-noland Dec 19, 2025
7ba060a
build(nix): add leak sanitize profile
daniel-noland Dec 19, 2025
a7e4bfa
build(nix): add cfi sanitize profile
daniel-noland Dec 19, 2025
e80a3b8
build(nix): add safe-stack sanitize profile
daniel-noland Dec 19, 2025
c06df86
build(nix): add instrumentation profiles
daniel-noland Dec 19, 2025
296584b
build(nix): pipe sanitizer and instrumentation into profile
daniel-noland Dec 19, 2025
409bea5
build(nix): add thread sanitize profile
daniel-noland Dec 19, 2025
216e62e
build(nix): forward cflags back to linker in optimize
daniel-noland Dec 19, 2025
eba10ef
fix(nix): missing acc // for one offs
daniel-noland Dec 19, 2025
9d4098c
build(nix): make most sanitizers work
daniel-noland Dec 19, 2025
61e4078
build(nix): add copyright headers
daniel-noland Dec 20, 2025
da03e9f
wip
daniel-noland Dec 20, 2025
a969708
wip
daniel-noland Dec 20, 2025
25058ac
wip
daniel-noland Dec 20, 2025
4353592
wip
daniel-noland Dec 20, 2025
f07f3a0
wip
daniel-noland Dec 21, 2025
a5f2ae2
wip
daniel-noland Dec 21, 2025
a0d64a4
wip
daniel-noland Dec 21, 2025
e4d166a
pkgsBuildHost
daniel-noland Dec 21, 2025
965cb3c
wip
daniel-noland Dec 21, 2025
c2d91c1
pkgsBuildHost
daniel-noland Dec 21, 2025
c5264c7
wip (moderate rework)
daniel-noland Dec 21, 2025
1378eff
wip
daniel-noland Dec 22, 2025
221e671
hack
daniel-noland Dec 22, 2025
576a97b
fix rust build
daniel-noland Dec 22, 2025
8d7fc0c
dataplane now builds, but need to undo lots of hacks
daniel-noland Dec 23, 2025
c852dae
fix cross compile errooooor
daniel-noland Dec 23, 2025
1585a8b
hacky cross compile working
daniel-noland Dec 23, 2025
6bcb117
less hacky (seems to work with mcpu)
daniel-noland Dec 23, 2025
3d5390d
less hacky still
daniel-noland Dec 23, 2025
4b68ec9
mostly building again with the old method
daniel-noland Dec 23, 2025
b8c1e08
mostly workin (including musl)
daniel-noland Dec 24, 2025
b18a683
de-src dpdk
daniel-noland Dec 24, 2025
1d8bf26
build: re-introduce default-members into workspace
daniel-noland Dec 8, 2025
da61c96
build(hardware): remove unused dependency on sysroot
daniel-noland Dec 8, 2025
b1e2b30
build(sysfs): remove unused dependency on sysroot
daniel-noland Dec 8, 2025
12031a3
refactor(dpdk-sysroot-helper): drop unused get_project_root function
daniel-noland Dec 8, 2025
de050ee
refactor(dpdk-sysroot-helper): drop unused get_compile_env functon
daniel-noland Dec 8, 2025
c9c9d12
feat(dpdk-sysroot-helper): intro use_sysroot function
daniel-noland Dec 8, 2025
9821a30
refactor(cli): invoke use_sysroot to de-duplicate code
daniel-noland Dec 8, 2025
5097977
refactor(init): invoke use_sysroot to de-duplicate code
daniel-noland Dec 8, 2025
b5e5835
refactor(dpdk): invoke use_sysroot to de-duplicate code
daniel-noland Dec 8, 2025
053341d
refactor(dataplane): invoke use_sysroot to de-duplicate code
daniel-noland Dec 8, 2025
4b79b49
build(cli): make sysroot optional
daniel-noland Dec 8, 2025
e7f16a6
build(init): make sysroot optional
daniel-noland Dec 8, 2025
1d9a183
build: remove init from default-members list
daniel-noland Dec 8, 2025
8700e2a
build: remove dpdk and friends from default-members list
daniel-noland Dec 8, 2025
1c276f2
build: remove hardware from default-members list
daniel-noland Dec 8, 2025
47087ad
build(dataplane): make sysroot and dpdk optional for dataplane
daniel-noland Dec 8, 2025
1cffe66
build: drop most of config.toml
daniel-noland Dec 8, 2025
73c3cb9
doc(net): remove pointless cfg(doc) trick
daniel-noland Dec 11, 2025
875f019
build: make nix/socket dependency explicit
daniel-noland Dec 11, 2025
5fcdca9
great build build refactor
daniel-noland Dec 10, 2025
6bd3f51
wip
daniel-noland Dec 11, 2025
d25186c
christmas time
daniel-noland Dec 25, 2025
f1f0b5c
going to try oxa's overlay
daniel-noland Dec 25, 2025
dd72889
clang linker issue for cross compile
daniel-noland Dec 25, 2025
bd91287
working cross again
daniel-noland Dec 27, 2025
1f00773
fixup result exclude
daniel-noland Dec 27, 2025
352e096
many things mostly working
daniel-noland Dec 27, 2025
4df9264
more stuff working
daniel-noland Dec 27, 2025
b630fab
wip
daniel-noland Dec 27, 2025
ec068d6
wip
daniel-noland Dec 27, 2025
343dc64
hack
daniel-noland Dec 27, 2025
35aa809
hack2
daniel-noland Dec 27, 2025
7183e68
big hack
daniel-noland Dec 27, 2025
c7a5ff6
Update dev.yml
daniel-noland Dec 27, 2025
7977554
Update dev.yml
daniel-noland Dec 27, 2025
d8e9d88
wip
daniel-noland Dec 27, 2025
344d154
fix
daniel-noland Dec 27, 2025
4c009ec
frustration
daniel-noland Dec 27, 2025
e3393dd
better yet
daniel-noland Dec 27, 2025
2839242
cachix test 0
daniel-noland Dec 28, 2025
108d99c
wth
daniel-noland Dec 28, 2025
c9db541
unclear
daniel-noland Dec 28, 2025
862de7b
confusing
daniel-noland Dec 28, 2025
ed17722
very confusing
daniel-noland Dec 28, 2025
f1eabd0
extra confuse
daniel-noland Dec 28, 2025
caf8cbf
less confusing
daniel-noland Dec 28, 2025
c0292ed
substitute
daniel-noland Dec 28, 2025
47b0cf9
wip
daniel-noland Dec 28, 2025
29afe75
wiip
daniel-noland Dec 28, 2025
4ccec1b
cleanup 0
daniel-noland Dec 28, 2025
e920638
more wip
daniel-noland Dec 28, 2025
a413120
scratch
daniel-noland Dec 28, 2025
51dcd2b
wip again
daniel-noland Dec 28, 2025
001e574
wip
daniel-noland Dec 28, 2025
dc0a00d
wip again
daniel-noland Dec 28, 2025
ce2add3
wip
daniel-noland Dec 28, 2025
d38c72d
wip
daniel-noland Dec 28, 2025
74a3186
wip
daniel-noland Dec 28, 2025
5c9f188
switch sysroot and devroot
daniel-noland Dec 28, 2025
cbb92e6
revert
daniel-noland Dec 28, 2025
85d9557
revert me as well
daniel-noland Dec 28, 2025
2f39d6f
broken again
daniel-noland Dec 28, 2025
73444c0
still not quite clippy working
daniel-noland Dec 28, 2025
6f8bac5
fix nonsense
daniel-noland Dec 28, 2025
755c79e
SYSROOT->DATAPLANE_SYSROOT
daniel-noland Dec 28, 2025
9874237
leak san working?
daniel-noland Dec 28, 2025
4d66248
hacky, but thread sanitizer compiles
daniel-noland Dec 28, 2025
89b8caf
a little cleaner
daniel-noland Dec 29, 2025
e697f90
wip
daniel-noland Dec 29, 2025
68b0602
wip
daniel-noland Dec 29, 2025
d4b44e9
some cleanup but way too much jank
daniel-noland Dec 29, 2025
6901439
less messy but some attrition
daniel-noland Dec 30, 2025
c21898d
fenix cleanup
daniel-noland Dec 30, 2025
4682469
more cleanup
daniel-noland Dec 30, 2025
3af2498
wip
daniel-noland Dec 31, 2025
8447f5a
wip
daniel-noland Dec 31, 2025
38ab338
more fancy
daniel-noland Jan 1, 2026
414671e
tests sorta workin
daniel-noland Jan 1, 2026
44dc024
clippy?
daniel-noland Jan 1, 2026
238eae9
separate build deps mostly working
daniel-noland Jan 2, 2026
0feb81d
container time
daniel-noland Jan 2, 2026
f0d1456
cleanup happening
daniel-noland Jan 2, 2026
d32dbc9
more cleanup
daniel-noland Jan 2, 2026
35de66c
much cleaner
daniel-noland Jan 2, 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
17 changes: 7 additions & 10 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
[env]
COMPILE_ENV = { value = "compile-env", relative = true, force = false }
PATH = { value = "compile-env/bin", relative = true, force = true }
LIBCLANG_PATH = { value = "compile-env/lib", relative = true, force = true }
PKG_CONFIG_PATH = { value = "compile-env/sysroot/x86_64-unknown-linux-gnu/release/lib/pkgconfig", relative = true, force = true }
DATAPLANE_SYSROOT = { value = "sysroot", relative = true, force = false }
C_INCLUDE_PATH = { value = "sysroot/include", relative = true, force = false }
LIBRARY_PATH = { value = "sysroot/lib", relative = true, force = false }
PKG_CONFIG_PATH = { value = "sysroot/lib/pkgconfig", relative = true, force = false }
GW_CRD_PATH = { value = "devroot/src/gateway/config/crd/bases", relative = true, force = false }
LIBCLANG_PATH = { value = "devroot/lib", relative = true, force = false }

[build]
target = "x86_64-unknown-linux-gnu"
rustc = "compile-env/bin/rustc"
rustflags = ["--cfg", "tokio_unstable"]

[target.x86_64-unknown-linux-gnu]
runner = ["scripts/test-runner.sh"]
rustflags = ["--cfg=tokio_unstable"]
8 changes: 8 additions & 0 deletions .cargo/cross/aarch64/gnu.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[env]
CC = { value = "aarch64-unknown-linux-gnu-clang", relative = false, force = true }

[build]
target = "aarch64-unknown-linux-gnu"

[target.aarch64-unknown-linux-gnu]
rustflags = ["--cfg=tokio_unstable", "-Clinker=aarch64-unknown-linux-gnu-clang", "-Clink-arg=-fuse-ld=lld"]
8 changes: 8 additions & 0 deletions .cargo/cross/aarch64/musl.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[env]
CC = { value = "aarch64-unknown-linux-musl-clang", relative = false, force = true }

[build]
target = "aarch64-unknown-linux-musl"

[target.aarch64-unknown-linux-musl]
rustflags = ["--cfg=tokio_unstable", "-Clinker=aarch64-unknown-linux-musl-clang", "-Clink-arg=-fuse-ld=lld"]
8 changes: 8 additions & 0 deletions .cargo/cross/x86_64/gnu.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[env]
CC = { value = "x86_64-unknown-linux-gnu-clang", relative = false, force = true }

[build]
target = "x86_64-unknown-linux-gnu"

[target.x86_64-unknown-linux-gnu]
rustflags = ["--cfg=tokio_unstable", "-Clinker=x86_64-unknown-linux-gnu-clang", "-Clink-arg=-fuse-ld=lld"]
8 changes: 8 additions & 0 deletions .cargo/cross/x86_64/musl.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[env]
CC = { value = "x86_64-unknown-linux-musl-clang", relative = false, force = true }

[build]
target = "x86_64-unknown-linux-musl"

[target.x86_64-unknown-linux-musl]
rustflags = ["--cfg=tokio_unstable", "-Clinker=x86_64-unknown-linux-musl-clang", "-Clink-arg=-fuse-ld=lld"]
1 change: 1 addition & 0 deletions .clangd
5 changes: 5 additions & 0 deletions .config/nix/nix.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
max-jobs = 4
experimental-features = nix-command
substituters = https://dnoland-test-cache.cachix.org/ https://cache.nixos.org https://cache.nixos.org/
trusted-public-keys = dnoland-test-cache.cachix.org-1:AsVLS3c7NGIJbUHW5xOlK69zPEzY5jNF+ax0jd1LKUA= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
always-allow-substitutes = true
46 changes: 0 additions & 46 deletions .envrc

This file was deleted.

12 changes: 12 additions & 0 deletions .envrc.old
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export PROJECT_DIR="$(pwd)"

if [ -h "${PROJECT_DIR}/compile-env" ] || [ -d "${PROJECT_DIR}/compile-env" ]; then
export LIBCLANG_PATH="${PROJECT_DIR}/compile-env/bin"
export COMPILE_ENV="${PROJECT_DIR}/compile-env"
else
>&2 echo "no compile environment found"
exit 0
fi

export NEXTEST_EXPERIMENTAL_LIBTEST_JSON=1
unset RUSTFLAGS
Loading
Loading