1this derivation will be built:2 /nix/store/ppppx27jy7glnc392jysxpa1az47886i-treefmt-check.drv3building '/nix/store/ppppx27jy7glnc392jysxpa1az47886i-treefmt-check.drv' on 'ssh-ng://customer@mac02'4building '/nix/store/ppppx27jy7glnc392jysxpa1az47886i-treefmt-check.drv'5treefmt-check> treefmt v2.5.0traversed 56 files6treefmt-check> emitted 40 files for processing7treefmt-check> formatted 40 files (1 changed) in 58ms8treefmt-check> M shells.nix9treefmt-check> diff --git a/shells.nix b/shells.nix10treefmt-check> index 927bea8..d976ca8 10064411treefmt-check> --- a/shells.nix12treefmt-check> +++ b/shells.nix13treefmt-check> @@ -57,89 +57,111 @@14treefmt-check> toolchains =15treefmt-check> let16treefmt-check> # C/C++ via a stdenv's $CC/$CXX.17treefmt-check> - mkC = s: "${s.mkDerivation {18treefmt-check> - name = "fixture";19treefmt-check> - dontUnpack = true;20treefmt-check> - buildPhase = "$CC ${./tests/sample.c} -o hello";21treefmt-check> - installPhase = "install -Dm755 hello $out/bin/hello";22treefmt-check> - }}/bin/hello";23treefmt-check> - mkCxx = "${stdenv.mkDerivation {24treefmt-check> - name = "fixture-cxx";25treefmt-check> - dontUnpack = true;26treefmt-check> - buildPhase = "$CXX ${./tests/sample.cpp} -o hello";27treefmt-check> - installPhase = "install -Dm755 hello $out/bin/hello";28treefmt-check> - }}/bin/hello";29treefmt-check> - mkRust = "${stdenv.mkDerivation {30treefmt-check> - name = "fixture-rust";31treefmt-check> - dontUnpack = true;32treefmt-check> - nativeBuildInputs = [ rustc ];33treefmt-check> - buildPhase = "rustc -O ${./tests/sample.rs} -o hello";34treefmt-check> - installPhase = "install -Dm755 hello $out/bin/hello";35treefmt-check> - }}/bin/hello";36treefmt-check> + mkC =37treefmt-check> + s:38treefmt-check> + "${39treefmt-check> + s.mkDerivation {40treefmt-check> + name = "fixture";41treefmt-check> + dontUnpack = true;42treefmt-check> + buildPhase = "$CC ${./tests/sample.c} -o hello";43treefmt-check> + installPhase = "install -Dm755 hello $out/bin/hello";44treefmt-check> + }45treefmt-check> + }/bin/hello";46treefmt-check> + mkCxx = "${47treefmt-check> + stdenv.mkDerivation {48treefmt-check> + name = "fixture-cxx";49treefmt-check> + dontUnpack = true;50treefmt-check> + buildPhase = "$CXX ${./tests/sample.cpp} -o hello";51treefmt-check> + installPhase = "install -Dm755 hello $out/bin/hello";52treefmt-check> + }53treefmt-check> + }/bin/hello";54treefmt-check> + mkRust = "${55treefmt-check> + stdenv.mkDerivation {56treefmt-check> + name = "fixture-rust";57treefmt-check> + dontUnpack = true;58treefmt-check> + nativeBuildInputs = [ rustc ];59treefmt-check> + buildPhase = "rustc -O ${./tests/sample.rs} -o hello";60treefmt-check> + installPhase = "install -Dm755 hello $out/bin/hello";61treefmt-check> + }62treefmt-check> + }/bin/hello";63treefmt-check> # cgo forces external linking, so the output is dynamic.64treefmt-check> - mkGo = "${stdenv.mkDerivation {65treefmt-check> - name = "fixture-go";66treefmt-check> - dontUnpack = true;67treefmt-check> - nativeBuildInputs = [ go ];68treefmt-check> - buildPhase = ''69treefmt-check> - export HOME=$TMPDIR GOCACHE=$TMPDIR/gc GO111MODULE=off CGO_ENABLED=170treefmt-check> - cp ${./tests/sample.go} main.go71treefmt-check> - go build -o hello main.go72treefmt-check> - '';73treefmt-check> - installPhase = "install -Dm755 hello $out/bin/hello";74treefmt-check> - }}/bin/hello";75treefmt-check> + mkGo = "${76treefmt-check> + stdenv.mkDerivation {77treefmt-check> + name = "fixture-go";78treefmt-check> + dontUnpack = true;79treefmt-check> + nativeBuildInputs = [ go ];80treefmt-check> + buildPhase = ''81treefmt-check> + export HOME=$TMPDIR GOCACHE=$TMPDIR/gc GO111MODULE=off CGO_ENABLED=182treefmt-check> + cp ${./tests/sample.go} main.go83treefmt-check> + go build -o hello main.go84treefmt-check> + '';85treefmt-check> + installPhase = "install -Dm755 hello $out/bin/hello";86treefmt-check> + }87treefmt-check> + }/bin/hello";88treefmt-check> # Shared objects: no PT_INTERP, but DT_SONAME, exported dynsym and (C++89treefmt-check> # via the version script) GNU symbol versions.90treefmt-check> - mkRustSo = "${stdenv.mkDerivation {91treefmt-check> - name = "fixture-rust-cdylib";92treefmt-check> - dontUnpack = true;93treefmt-check> - nativeBuildInputs = [ rustc ];94treefmt-check> - buildPhase = "rustc -O --crate-type=cdylib ${./tests/sample_cdylib.rs} -o libfixture.so";95treefmt-check> - installPhase = "install -Dm755 libfixture.so $out/lib/libfixture.so";96treefmt-check> - }}/lib/libfixture.so";97treefmt-check> - mkCxxSo = "${stdenv.mkDerivation {98treefmt-check> - name = "fixture-cxx-so";99treefmt-check> - dontUnpack = true;100treefmt-check> - buildPhase = "$CXX -shared -fPIC ${./tests/sample_lib.cpp} -Wl,--version-script=${./tests/sample.map} -Wl,-soname,libfixturecxx.so.1 -o libfixturecxx.so.1";101treefmt-check> - installPhase = "install -Dm755 libfixturecxx.so.1 $out/lib/libfixturecxx.so.1";102treefmt-check> - }}/lib/libfixturecxx.so.1";103treefmt-check> - mkGoSo = "${stdenv.mkDerivation {104treefmt-check> - name = "fixture-go-cshared";105treefmt-check> - dontUnpack = true;106treefmt-check> - nativeBuildInputs = [ go ];107treefmt-check> - buildPhase = ''108treefmt-check> - export HOME=$TMPDIR GOCACHE=$TMPDIR/gc GO111MODULE=off CGO_ENABLED=1109treefmt-check> - cp ${./tests/sample_cshared.go} main.go110treefmt-check> - go build -buildmode=c-shared -o libfixture.so main.go111treefmt-check> - '';112treefmt-check> - installPhase = "install -Dm755 libfixture.so $out/lib/libfixture.so";113treefmt-check> - }}/lib/libfixture.so";114treefmt-check> + mkRustSo = "${115treefmt-check> + stdenv.mkDerivation {116treefmt-check> + name = "fixture-rust-cdylib";117treefmt-check> + dontUnpack = true;118treefmt-check> + nativeBuildInputs = [ rustc ];119treefmt-check> + buildPhase = "rustc -O --crate-type=cdylib ${./tests/sample_cdylib.rs} -o libfixture.so";120treefmt-check> + installPhase = "install -Dm755 libfixture.so $out/lib/libfixture.so";121treefmt-check> + }122treefmt-check> + }/lib/libfixture.so";123treefmt-check> + mkCxxSo = "${124treefmt-check> + stdenv.mkDerivation {125treefmt-check> + name = "fixture-cxx-so";126treefmt-check> + dontUnpack = true;127treefmt-check> + buildPhase = "$CXX -shared -fPIC ${./tests/sample_lib.cpp} -Wl,--version-script=${./tests/sample.map} -Wl,-soname,libfixturecxx.so.1 -o libfixturecxx.so.1";128treefmt-check> + installPhase = "install -Dm755 libfixturecxx.so.1 $out/lib/libfixturecxx.so.1";129treefmt-check> + }130treefmt-check> + }/lib/libfixturecxx.so.1";131treefmt-check> + mkGoSo = "${132treefmt-check> + stdenv.mkDerivation {133treefmt-check> + name = "fixture-go-cshared";134treefmt-check> + dontUnpack = true;135treefmt-check> + nativeBuildInputs = [ go ];136treefmt-check> + buildPhase = ''137treefmt-check> + export HOME=$TMPDIR GOCACHE=$TMPDIR/gc GO111MODULE=off CGO_ENABLED=1138treefmt-check> + cp ${./tests/sample_cshared.go} main.go139treefmt-check> + go build -buildmode=c-shared -o libfixture.so main.go140treefmt-check> + '';141treefmt-check> + installPhase = "install -Dm755 libfixture.so $out/lib/libfixture.so";142treefmt-check> + }143treefmt-check> + }/lib/libfixture.so";144treefmt-check> # Transformation states no compiler flag alone produces:145treefmt-check> # sstrip drops the section header table entirely, so patchelf must work146treefmt-check> # from program headers alone; pack-relative-relocs emits DT_RELR;147treefmt-check> # -fcf-protection adds .note.gnu.property and a PT_GNU_PROPERTY segment.148treefmt-check> - mkStripped = "${stdenv.mkDerivation {149treefmt-check> - name = "fixture-stripped";150treefmt-check> - dontUnpack = true;151treefmt-check> - nativeBuildInputs = [ elfkickers ];152treefmt-check> - buildPhase = ''153treefmt-check> - $CC ${./tests/sample.c} -o hello154treefmt-check> - sstrip hello155treefmt-check> - '';156treefmt-check> - installPhase = "install -Dm755 hello $out/bin/hello";157treefmt-check> - }}/bin/hello";158treefmt-check> - mkRelr = "${stdenv.mkDerivation {159treefmt-check> - name = "fixture-relr";160treefmt-check> - dontUnpack = true;161treefmt-check> - buildPhase = "$CC -O2 -fPIE -pie -Wl,-z,pack-relative-relocs ${./tests/sample_relr.c} -o hello";162treefmt-check> - installPhase = "install -Dm755 hello $out/bin/hello";163treefmt-check> - }}/bin/hello";164treefmt-check> - mkGnuProperty = "${stdenv.mkDerivation {165treefmt-check> - name = "fixture-gnu-property";166treefmt-check> - dontUnpack = true;167treefmt-check> - buildPhase = "$CC -fcf-protection=full ${./tests/sample.c} -o hello";168treefmt-check> - installPhase = "install -Dm755 hello $out/bin/hello";169treefmt-check> - }}/bin/hello";170treefmt-check> + mkStripped = "${171treefmt-check> + stdenv.mkDerivation {172treefmt-check> + name = "fixture-stripped";173treefmt-check> + dontUnpack = true;174treefmt-check> + nativeBuildInputs = [ elfkickers ];175treefmt-check> + buildPhase = ''176treefmt-check> + $CC ${./tests/sample.c} -o hello177treefmt-check> + sstrip hello178treefmt-check> + '';179treefmt-check> + installPhase = "install -Dm755 hello $out/bin/hello";180treefmt-check> + }181treefmt-check> + }/bin/hello";182treefmt-check> + mkRelr = "${183treefmt-check> + stdenv.mkDerivation {184treefmt-check> + name = "fixture-relr";185treefmt-check> + dontUnpack = true;186treefmt-check> + buildPhase = "$CC -O2 -fPIE -pie -Wl,-z,pack-relative-relocs ${./tests/sample_relr.c} -o hello";187treefmt-check> + installPhase = "install -Dm755 hello $out/bin/hello";188treefmt-check> + }189treefmt-check> + }/bin/hello";190treefmt-check> + mkGnuProperty = "${191treefmt-check> + stdenv.mkDerivation {192treefmt-check> + name = "fixture-gnu-property";193treefmt-check> + dontUnpack = true;194treefmt-check> + buildPhase = "$CC -fcf-protection=full ${./tests/sample.c} -o hello";195treefmt-check> + installPhase = "install -Dm755 hello $out/bin/hello";196treefmt-check> + }197treefmt-check> + }/bin/hello";198treefmt-check> in199treefmt-check> mkShell {200treefmt-check> packages = [201error: build of '/nix/store/ppppx27jy7glnc392jysxpa1az47886i-treefmt-check.drv' on 'ssh-ng://customer@mac02' failed: Cannot build '/nix/store/ppppx27jy7glnc392jysxpa1az47886i-treefmt-check.drv'.202 Reason: builder failed with exit code 1.203 Output paths:204 /nix/store/4ilfmw3zx3c9841ps387fh1iwp73yi4p-treefmt-check205 Last 25 log lines:206 > + $CC ${./tests/sample.c} -o hello207 > + sstrip hello208 > + '';209 > + installPhase = "install -Dm755 hello $out/bin/hello";210 > + }211 > + }/bin/hello";212 > + mkRelr = "${213 > + stdenv.mkDerivation {214 > + name = "fixture-relr";215 > + dontUnpack = true;216 > + buildPhase = "$CC -O2 -fPIE -pie -Wl,-z,pack-relative-relocs ${./tests/sample_relr.c} -o hello";217 > + installPhase = "install -Dm755 hello $out/bin/hello";218 > + }219 > + }/bin/hello";220 > + mkGnuProperty = "${221 > + stdenv.mkDerivation {222 > + name = "fixture-gnu-property";223 > + dontUnpack = true;224 > + buildPhase = "$CC -fcf-protection=full ${./tests/sample.c} -o hello";225 > + installPhase = "install -Dm755 hello $out/bin/hello";226 > + }227 > + }/bin/hello";228 > in229 > mkShell {230 > packages = [231 For full logs, run:232 nix log /nix/store/ppppx27jy7glnc392jysxpa1az47886i-treefmt-check.drv233error: Cannot build '/nix/store/ppppx27jy7glnc392jysxpa1az47886i-treefmt-check.drv'.234 Reason: builder failed with exit code 1.235 Output paths:236 /nix/store/4ilfmw3zx3c9841ps387fh1iwp73yi4p-treefmt-check