diff --git a/pkgs/os-specific/bsd/openbsd/default.nix b/pkgs/os-specific/bsd/openbsd/default.nix index aa12d73079b6..c49f1b3e807a 100644 --- a/pkgs/os-specific/bsd/openbsd/default.nix +++ b/pkgs/os-specific/bsd/openbsd/default.nix @@ -20,7 +20,7 @@ makeScopeWithSplicing' { directory = ./pkgs; } // { - version = "7.5"; + version = "7.9"; stdenvLibcMinimal = stdenvNoLibc.override (old: { cc = old.cc.override { diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/libcMinimal/package.nix b/pkgs/os-specific/bsd/openbsd/pkgs/libcMinimal/package.nix index 52c2d56c00d3..c4cfab61fec7 100644 --- a/pkgs/os-specific/bsd/openbsd/pkgs/libcMinimal/package.nix +++ b/pkgs/os-specific/bsd/openbsd/pkgs/libcMinimal/package.nix @@ -60,6 +60,7 @@ mkDerivation { env.NIX_CFLAGS_COMPILE = toString [ "-B${csu}/lib" "-Wno-error" + "-fno-builtin" ]; # Suppress lld >= 16 undefined version errors @@ -73,6 +74,11 @@ mkDerivation { "LIBC_TAGS=no" ]; + # -fret-clean requires OpenBSD-specific patches to the compiler. + postPatch = '' + find . -type f -exec sed -i 's/-fret-clean//g' {} \; + ''; + postInstall = '' pushd ${include} find include -type d -exec mkdir -p "$dev/{}" ';' diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/rtld/package.nix b/pkgs/os-specific/bsd/openbsd/pkgs/rtld/package.nix index 58fd1fd8ebd4..8e6a1478f1f9 100644 --- a/pkgs/os-specific/bsd/openbsd/pkgs/rtld/package.nix +++ b/pkgs/os-specific/bsd/openbsd/pkgs/rtld/package.nix @@ -17,6 +17,13 @@ mkDerivation { NIX_CFLAGS_COMPILE = "-Wno-error"; + makeFlags = [ "STACK_PROTECTOR=1" ]; + + # -fret-clean requires OpenBSD-specific patches to the compiler. + postPatch = '' + find . -type f -exec sed -i 's/-fret-clean//g' {} \; + ''; + # DESTDIR is overridden in bsdSetupHook, just fixup afterwards postInstall = '' mv $out/bin $out/libexec diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/source.nix b/pkgs/os-specific/bsd/openbsd/pkgs/source.nix index a92dfbd2b221..e770df9ce9fd 100644 --- a/pkgs/os-specific/bsd/openbsd/pkgs/source.nix +++ b/pkgs/os-specific/bsd/openbsd/pkgs/source.nix @@ -7,6 +7,6 @@ fetchcvs { cvsRoot = "anoncvs@anoncvs.fr.openbsd.org/cvs"; module = "src"; - tag = "OPENBSD_${lib.replaceStrings [ "." ] [ "_" ] version}-RELEASE"; - sha256 = "sha256-hzdATew6h/FQV72SWtg3YvUXdPoGjm2SoUS7m3c3fSU="; + tag = "OPENBSD_${lib.replaceStrings [ "." ] [ "_" ] version}_BASE"; + sha256 = "sha256-n6pkgjCvqAGpZzLZnsO8FT7HMtBH3i7SLfhFBqQ9jmE="; }