FreeBSD: use own stdenv, do not run libtiff tests, use PIC for zlib
This commit is contained in:
parent
2d00f27230
commit
f351aaaf85
@ -5,7 +5,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetch "libcxxabi" "1swvnhrf9g67579c5picg0l869f8l2bwi4xqpbcb4n296gyp9c28";
|
||||
|
||||
buildInputs = [ cmake ] ++ stdenv.lib.optional (!stdenv.isDarwin) libunwind;
|
||||
buildInputs = [ cmake ] ++ stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;
|
||||
|
||||
postUnpack = ''
|
||||
unpackFile ${libcxx.src}
|
||||
|
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
doCheck = true;
|
||||
doCheck = !stdenv.isFreeBSD;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Library and utilities for working with the TIFF image file format";
|
||||
|
@ -31,7 +31,7 @@ stdenv.mkDerivation (rec {
|
||||
|
||||
# As zlib takes part in the stdenv building, we don't want references
|
||||
# to the bootstrap-tools libgcc (as uses to happen on arm/mips)
|
||||
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.isDarwin) "-static-libgcc";
|
||||
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.isDarwin) "-static-libgcc " + stdenv.lib.optionalString (stdenv.isFreeBSD) "-fPIC";
|
||||
|
||||
crossAttrs = {
|
||||
dontStrip = static;
|
||||
|
@ -33,6 +33,8 @@ rec {
|
||||
pkgs = stdenvNativePkgs;
|
||||
};
|
||||
|
||||
stdenvFreeBSD = (import ./freebsd { inherit system allPackages platform config; }).stdenvFreeBSD;
|
||||
|
||||
# Linux standard environment.
|
||||
stdenvLinux = (import ./linux { inherit system allPackages platform config lib; }).stdenvLinux;
|
||||
|
||||
@ -58,5 +60,6 @@ rec {
|
||||
if system == "x86_64-solaris" then stdenvNix else
|
||||
if system == "i686-cygwin" then stdenvNative else
|
||||
if system == "x86_64-cygwin" then stdenvNative else
|
||||
if system == "x86_64-freebsd" then stdenvFreeBSD else
|
||||
stdenvNative;
|
||||
}
|
||||
|
131
pkgs/stdenv/freebsd/default.nix
Normal file
131
pkgs/stdenv/freebsd/default.nix
Normal file
@ -0,0 +1,131 @@
|
||||
{ system ? builtins.currentSystem
|
||||
, allPackages ? import ../../top-level/all-packages.nix
|
||||
, platform ? null
|
||||
, config ? {}
|
||||
}:
|
||||
|
||||
rec {
|
||||
allPackages = import ../../top-level/all-packages.nix;
|
||||
|
||||
bootstrapTools = derivation {
|
||||
inherit system;
|
||||
|
||||
name = "trivial-bootstrap-tools";
|
||||
builder = "/bin/sh";
|
||||
args = [ ./trivial-bootstrap.sh ];
|
||||
|
||||
mkdir = "/bin/mkdir";
|
||||
ln = "/bin/ln";
|
||||
};
|
||||
|
||||
stage0 = rec {
|
||||
fetchurl = import ../../build-support/fetchurl {
|
||||
inherit stdenv;
|
||||
curl = bootstrapTools;
|
||||
};
|
||||
|
||||
stdenv = import ../generic {
|
||||
inherit system config;
|
||||
name = "stdenv-freebsd-boot-0";
|
||||
shell = "/usr/local/bin/bash";
|
||||
initialPath = [ bootstrapTools ];
|
||||
fetchurlBoot = fetchurl;
|
||||
cc = null;
|
||||
};
|
||||
};
|
||||
|
||||
buildTools = { #import ../../os-specific/freebsd/command-line-tools
|
||||
inherit (stage0) stdenv fetchurl;
|
||||
xar = bootstrapTools;
|
||||
gzip = bootstrapTools;
|
||||
cpio = bootstrapTools;
|
||||
};
|
||||
|
||||
preHook = ''
|
||||
export NIX_IGNORE_LD_THROUGH_GCC=1
|
||||
export NIX_DONT_SET_RPATH=1
|
||||
export NIX_NO_SELF_RPATH=1
|
||||
dontFixLibtool=1
|
||||
stripAllFlags=" " # the Darwin "strip" command doesn't know "-s"
|
||||
xargsFlags=" "
|
||||
'';
|
||||
|
||||
stage1 = rec {
|
||||
nativePrefix = "/usr";
|
||||
|
||||
stdenv = import ../generic {
|
||||
name = "stdenv-freebsd-boot-1";
|
||||
|
||||
inherit system config;
|
||||
inherit (stage0.stdenv) shell fetchurlBoot;
|
||||
|
||||
initialPath = stage0.stdenv.initialPath ++ [ nativePrefix ];
|
||||
|
||||
preHook = preHook + "\n" + ''
|
||||
export NIX_LDFLAGS_AFTER+=" -L/usr/lib"
|
||||
export NIX_ENFORCE_PURITY=
|
||||
export NIX_CFLAGS_COMPILE+=" -isystem ${nativePrefix}/include/c++/v1"
|
||||
export NIX_CFLAGS_LINK+=" -Wl,-rpath,${nativePrefix}/lib"
|
||||
'';
|
||||
|
||||
cc = import ../../build-support/cc-wrapper {
|
||||
nativeTools = true;
|
||||
nativePrefix = nativePrefix;
|
||||
nativeLibc = true;
|
||||
stdenv = stage0.stdenv;
|
||||
shell = "/usr/local/bin/bash";
|
||||
cc = {
|
||||
name = "clang-9.9.9";
|
||||
cc = "/usr";
|
||||
outPath = nativePrefix;
|
||||
};
|
||||
isClang = true;
|
||||
};
|
||||
};
|
||||
pkgs = allPackages {
|
||||
inherit system platform;
|
||||
bootStdenv = stdenv;
|
||||
};
|
||||
};
|
||||
|
||||
stage2 = rec {
|
||||
stdenv = import ../generic {
|
||||
name = "stdenv-freebsd-boot-2";
|
||||
|
||||
inherit system config;
|
||||
inherit (stage1.stdenv) shell fetchurlBoot preHook cc;
|
||||
|
||||
initialPath = [ "/usr/local/bin" ] ++ stage1.stdenv.initialPath;
|
||||
};
|
||||
pkgs = allPackages {
|
||||
inherit system platform;
|
||||
bootStdenv = stdenv;
|
||||
};
|
||||
};
|
||||
|
||||
stage3 = with stage2; import ../generic {
|
||||
name = "stdenv-freebsd-boot-3";
|
||||
|
||||
inherit system config;
|
||||
inherit (stdenv) fetchurlBoot;
|
||||
|
||||
initialPath = [ bootstrapTools ];
|
||||
|
||||
preHook = preHook + "\n" + ''
|
||||
export NIX_ENFORCE_PURITY=1
|
||||
'';
|
||||
|
||||
cc = import ../../build-support/cc-wrapper {
|
||||
inherit stdenv;
|
||||
nativeTools = true;
|
||||
nativePrefix = "/usr/local/bin";
|
||||
nativeLibc = true;
|
||||
cc = stage2.stdenv.cc; #pkgs.llvmPackages.clang-unwrapped;
|
||||
isClang = true;
|
||||
};
|
||||
|
||||
shell = "/usr/local/bin/bash";
|
||||
};
|
||||
|
||||
stdenvFreeBSD = stage3;
|
||||
}
|
183
pkgs/stdenv/freebsd/trivial-bootstrap.sh
Normal file
183
pkgs/stdenv/freebsd/trivial-bootstrap.sh
Normal file
@ -0,0 +1,183 @@
|
||||
|
||||
# Building bootstrap tools
|
||||
echo Building the trivial bootstrap environment...
|
||||
|
||||
# needed FreeBSD packages:
|
||||
# findutils gcpio gawk gnugrep coreutils bash gsed gtar gmake xar binutils gpatch lbzip2
|
||||
|
||||
$mkdir -p $out/bin
|
||||
|
||||
$ln -s $ln $out/bin/ln
|
||||
|
||||
PATH=$out/bin/
|
||||
|
||||
cd $out/bin
|
||||
|
||||
ln -s $mkdir
|
||||
|
||||
ln -s /usr/local/bin/bash
|
||||
ln -s /bin/sh
|
||||
|
||||
ln -s /usr/local/bin/gmake make
|
||||
|
||||
ln -s /usr/local/bin/lbzip2
|
||||
|
||||
ln -s /usr/bin/bzip2
|
||||
ln -s /usr/bin/bunzip2
|
||||
ln -s /usr/bin/bzcat
|
||||
ln -s /usr/bin/bzip2recover
|
||||
|
||||
ln -s /usr/bin/xz
|
||||
ln -s /usr/bin/unxz
|
||||
ln -s /usr/bin/xzcat
|
||||
ln -s /usr/bin/lzma
|
||||
ln -s /usr/bin/unlzma
|
||||
ln -s /usr/bin/lzcat
|
||||
|
||||
ln -s /usr/local/bin/gcp cp
|
||||
ln -s /usr/local/bin/gdd dd
|
||||
ln -s /usr/local/bin/gmv mv
|
||||
ln -s /usr/local/bin/grm rm
|
||||
ln -s /usr/local/bin/gls ls
|
||||
ln -s /bin/ps ps
|
||||
ln -s /usr/local/bin/gcat cat
|
||||
ln -s /usr/local/bin/gecho echo
|
||||
ln -s /usr/local/bin/gexpr expr
|
||||
ln -s /usr/local/bin/gtest test
|
||||
ln -s /usr/local/bin/gdate date
|
||||
ln -s /usr/local/bin/gchmod chmod
|
||||
ln -s /usr/local/bin/grmdir rmdir
|
||||
ln -s /usr/local/bin/gsleep sleep
|
||||
ln -s /bin/hostname hostname
|
||||
|
||||
ln -s /usr/local/bin/gid id
|
||||
ln -s /usr/local/bin/god od
|
||||
ln -s /usr/local/bin/gtr tr
|
||||
ln -s /usr/local/bin/gwc wc
|
||||
ln -s /usr/local/bin/gcut cut
|
||||
ln -s /usr/bin/cmp cmp
|
||||
ln -s /usr/local/bin/gsed sed
|
||||
ln -s /usr/local/bin/gtar tar
|
||||
ln -s /usr/local/bin/xar xar
|
||||
ln -s /usr/local/bin/gawk awk
|
||||
ln -s /usr/local/bin/genv env
|
||||
ln -s /usr/local/bin/gtee tee
|
||||
ln -s /usr/local/bin/gcomm comm
|
||||
ln -s /usr/local/bin/gcpio cpio
|
||||
ln -s /usr/local/bin/curl curl
|
||||
ln -s /usr/local/bin/gfind find
|
||||
ln -s /usr/local/bin/grep grep #other grep is in /usr/bin
|
||||
ln -s /usr/bin/gzip
|
||||
ln -s /usr/bin/gunzip
|
||||
ln -s /usr/bin/zcat
|
||||
ln -s /usr/local/bin/ghead head
|
||||
ln -s /usr/bin/tail tail
|
||||
ln -s /usr/local/bin/guniq uniq
|
||||
ln -s /usr/bin/less less
|
||||
ln -s /usr/local/bin/gtrue true
|
||||
ln -s /usr/bin/diff diff
|
||||
ln -s /usr/local/bin/egrep egrep
|
||||
ln -s /usr/local/bin/fgrep fgrep
|
||||
ln -s /usr/local/bin/gpatch patch
|
||||
ln -s /usr/local/bin/guname uname
|
||||
ln -s /usr/local/bin/gtouch touch
|
||||
ln -s /usr/local/bin/gsplit split
|
||||
ln -s /usr/local/bin/gxargs xargs
|
||||
ln -s /usr/bin/which which
|
||||
ln -s /usr/local/bin/ginstall install
|
||||
ln -s /usr/local/bin/gbasename basename
|
||||
ln -s /usr/local/bin/gdirname dirname
|
||||
ln -s /usr/local/bin/greadlink readlink
|
||||
|
||||
ln -fs /usr/local/bin/gln ln
|
||||
ln -s /usr/local/bin/gyes yes
|
||||
ln -s /usr/local/bin/gwhoami whoami
|
||||
ln -s /usr/local/bin/gvdir vdir
|
||||
ln -s /usr/local/bin/gusers users
|
||||
ln -s /usr/local/bin/guptime uptime
|
||||
ln -s /usr/local/bin/gunlink unlink
|
||||
ln -s /usr/local/bin/gtty tty
|
||||
ln -s /usr/local/bin/gunexpand unexpand
|
||||
ln -s /usr/local/bin/gtsort tsort
|
||||
ln -s /usr/local/bin/gtruncate truncate
|
||||
ln -s /usr/local/bin/gtimeout timeout
|
||||
ln -s /usr/local/bin/gtac tac
|
||||
ln -s /usr/local/bin/gsync sync
|
||||
ln -s /usr/local/bin/gsum sum
|
||||
ln -s /usr/local/bin/gstty stty
|
||||
ln -s /usr/local/bin/gstdbuf stdbuf
|
||||
ln -s /usr/local/bin/gsort sort
|
||||
ln -s /usr/local/bin/gruncon runcon
|
||||
ln -s /usr/local/bin/gseq seq
|
||||
ln -s /usr/local/bin/gsha1sum sha1sum
|
||||
ln -s /usr/local/bin/gsha224sum sha224sum
|
||||
ln -s /usr/local/bin/gsha256sum sha256sum
|
||||
ln -s /usr/local/bin/gsha384sum sha384sum
|
||||
ln -s /usr/local/bin/gsha512sum sha512sum
|
||||
ln -s /usr/local/bin/gshred shred
|
||||
ln -s /usr/local/bin/gshuf shuf
|
||||
ln -s /usr/local/bin/grealpath realpath
|
||||
ln -s "/usr/local/bin/g[" "["
|
||||
ln -s /usr/local/bin/gbase64 base64
|
||||
ln -s /usr/local/bin/gchcon chcon
|
||||
ln -s /usr/local/bin/gchgrp chgrp
|
||||
ln -s /usr/local/bin/gchown chown
|
||||
ln -s /usr/local/bin/gchroot chroot
|
||||
ln -s /usr/local/bin/gcksum cksum
|
||||
ln -s /usr/local/bin/gcsplit csplit
|
||||
ln -s /usr/local/bin/gdf df
|
||||
ln -s /usr/local/bin/gdircolors dircolors
|
||||
ln -s /usr/local/bin/gdu du
|
||||
ln -s /usr/local/bin/gexpand expand
|
||||
ln -s /usr/local/bin/gfactor factor
|
||||
ln -s /usr/local/bin/gfalse false
|
||||
ln -s /usr/local/bin/gfmt fmt
|
||||
ln -s /usr/local/bin/gfold fold
|
||||
ln -s /usr/local/bin/ggroups groups
|
||||
ln -s /usr/local/bin/ghostid hostid
|
||||
ln -s /usr/local/bin/gjoin join
|
||||
ln -s /usr/local/bin/gkill kill
|
||||
ln -s /usr/local/bin/glink link
|
||||
ln -s /usr/local/bin/glogname logname
|
||||
ln -s /usr/local/bin/gmd5sum md5sum
|
||||
ln -s /usr/local/bin/gmkdir mkdir
|
||||
ln -s /usr/local/bin/gmkfifo mkfifo
|
||||
ln -s /usr/local/bin/gmknod mknod
|
||||
ln -s /usr/local/bin/gmktemp mktemp
|
||||
ln -s /usr/local/bin/gnice nice
|
||||
ln -s /usr/local/bin/gnl nl
|
||||
ln -s /usr/local/bin/gnohup nohup
|
||||
ln -s /usr/local/bin/gnproc nproc
|
||||
ln -s /usr/local/bin/gnumfmt numfmt
|
||||
ln -s /usr/local/bin/gnustat nustat
|
||||
ln -s /usr/local/bin/gpaste paste
|
||||
ln -s /usr/local/bin/gpathchk pathchk
|
||||
ln -s /usr/local/bin/gpinky pinky
|
||||
ln -s /usr/local/bin/gpr pr
|
||||
ln -s /usr/local/bin/gprintenv printenv
|
||||
ln -s /usr/local/bin/gprintf printf
|
||||
ln -s /usr/local/bin/gptx ptx
|
||||
ln -s /usr/local/bin/gpwd pwd
|
||||
|
||||
# binutils
|
||||
# pkg info -l binutils | grep usr/local/bin
|
||||
ln -s /usr/local/bin/addr2line
|
||||
ln -s /usr/local/bin/ar
|
||||
ln -s /usr/local/bin/as
|
||||
ln -s /usr/local/bin/c++filt
|
||||
ln -s /usr/local/bin/dwp
|
||||
ln -s /usr/local/bin/elfedit
|
||||
ln -s /usr/local/bin/gprof
|
||||
ln -s /usr/local/bin/ld
|
||||
ln -s /usr/local/bin/ld.bfd
|
||||
ln -s /usr/local/bin/ld.gold
|
||||
ln -s /usr/local/bin/nm
|
||||
ln -s /usr/local/bin/objcopy
|
||||
ln -s /usr/local/bin/objdump
|
||||
ln -s /usr/local/bin/ranlib
|
||||
ln -s /usr/local/bin/readelf
|
||||
ln -s /usr/local/bin/size
|
||||
ln -s /usr/local/bin/strings
|
||||
ln -s /usr/local/bin/strip
|
||||
|
||||
#pkg info -l llvm37 | grep usr/local/bin
|
@ -27,8 +27,6 @@ rec {
|
||||
|
||||
alias patch=gpatch # pcre relied on this for patching binary files
|
||||
|
||||
alias cc=clang37
|
||||
|
||||
# we need GNU cp for --reflink, need to alias all of coreutils
|
||||
alias basename=gbasename
|
||||
alias cat=gcat
|
||||
|
Loading…
Reference in New Issue
Block a user