commit: 66f46063dd050dce3335db6b9200dcaf64826ff2 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> AuthorDate: Tue Apr 2 11:18:25 2019 +0000 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> CommitDate: Sun May 5 08:15:45 2019 +0000 URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=66f46063
scripts/bootstrap-prefix: add initial FreeBSD support This is mostly non-functional, since FreeBSD/Prefix profiles are missing. Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> scripts/bootstrap-prefix.sh | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/scripts/bootstrap-prefix.sh b/scripts/bootstrap-prefix.sh index 4149f661f1..3c4f7dbde7 100755 --- a/scripts/bootstrap-prefix.sh +++ b/scripts/bootstrap-prefix.sh @@ -181,6 +181,9 @@ configure_toolchain() { *-darwin*) # handled below ;; + *-freebsd*) + # comes with clang, handled below + ;; *) # The host may not have a functioning c++ toolchain, so use a # stage1 compiler that can build with C only. @@ -318,6 +321,11 @@ configure_toolchain() { sys-devel/llvm sys-devel/clang" ;; + *-freebsd*) + CC=clang + CXX=clang++ + # TODO: target clang toolchain someday? + ;; *-solaris*) local ccvers="$( (unset CHOST; gcc --version 2>/dev/null) )" case "${ccvers}" in @@ -2290,7 +2298,7 @@ EOF esac # TODO: should we better use cc here? or check both? - if ! type -P gcc > /dev/null ; then + if ! type -P gcc > /dev/null && ! type -P clang > /dev/null ; then case "${CHOST}" in *-darwin*) cat << EOF @@ -2420,6 +2428,7 @@ EOF case "${CHOST}" in *-cygwin*) ncpu=$(cmd /D /Q /C 'echo %NUMBER_OF_PROCESSORS%' | tr -d "\\r") ;; *-darwin*) ncpu=$(/usr/sbin/sysctl -n hw.ncpu) ;; + *-freebsd*) ncpu=$(/sbin/sysctl -n hw.ncpu) ;; *-solaris*) ncpu=$(/usr/sbin/psrinfo | wc -l) ;; *-linux-gnu*) ncpu=$(cat /proc/cpuinfo | grep processor | wc -l) ;; *-aix*) ncpu=$(/usr/sbin/bindprocessor -q | cut -d: -f2 | wc -w) ;; @@ -2925,6 +2934,13 @@ if [[ -z ${CHOST} ]]; then CYGWIN*) CHOST="`uname -m`-pc-cygwin" ;; + FreeBSD) + case `uname -m` in + amd64) + CHOST="x86_64-pc-freebsd`uname -r | sed 's|-.*$||'`" + ;; + esac + ;; *) eerror "Nothing known about platform `uname -s`." eerror "Please set CHOST appropriately for your system"