summaryrefslogtreecommitdiff
path: root/scripts/build
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2017-03-07 16:50:43 (GMT)
committerGitHub <noreply@github.com>2017-03-07 16:50:43 (GMT)
commitea7f559ef4f4643c705c03ef438d6b257368e02c (patch)
treef5059ec8b1d2f7829fc764d1d2bd69156e09734a /scripts/build
parent272c010874b47ea50b653137e0d6e83a6543c318 (diff)
parenta511f73276351e41c59def3573f76b37a289d292 (diff)
Merge pull request #627 from dankm/freebsd
FreeBSD build support
Diffstat (limited to 'scripts/build')
-rw-r--r--scripts/build/companion_libs/100-gmp.sh3
-rw-r--r--scripts/build/internals.sh3
-rw-r--r--scripts/build/kernel/linux.sh32
-rw-r--r--scripts/build/libc/glibc.sh14
4 files changed, 37 insertions, 15 deletions
diff --git a/scripts/build/companion_libs/100-gmp.sh b/scripts/build/companion_libs/100-gmp.sh
index c81874a..e6a4875 100644
--- a/scripts/build/companion_libs/100-gmp.sh
+++ b/scripts/build/companion_libs/100-gmp.sh
@@ -88,7 +88,10 @@ do_gmp_backend() {
extra_config+=("--enable-mpbsd")
fi
+ # FIXME: GMP's configure script doesn't respect the host parameter
+ # when not cross-compiling, ie when build == host.
CT_DoExecLog CFG \
+ CC="${host}-gcc" \
CFLAGS="${cflags} -fexceptions" \
LDFLAGS="${ldflags}" \
${CONFIG_SHELL} \
diff --git a/scripts/build/internals.sh b/scripts/build/internals.sh
index 18ada66..95fb72b 100644
--- a/scripts/build/internals.sh
+++ b/scripts/build/internals.sh
@@ -17,6 +17,9 @@ do_finish() {
*darwin*)
strip_args=""
;;
+ *freebsd*)
+ strip_args="--strip-all"
+ ;;
*)
strip_args="--strip-all -v"
;;
diff --git a/scripts/build/kernel/linux.sh b/scripts/build/kernel/linux.sh
index 9cfc433..cd4a456 100644
--- a/scripts/build/kernel/linux.sh
+++ b/scripts/build/kernel/linux.sh
@@ -103,24 +103,28 @@ do_kernel_headers() {
esac
CT_DoLog EXTRA "Installing kernel headers"
- CT_DoExecLog ALL \
- make -C "${kernel_path}" \
- CROSS_COMPILE="${CT_TARGET}-" \
- O="${CT_BUILD_DIR}/build-kernel-headers" \
- ARCH=${kernel_arch} \
- INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr" \
- ${V_OPT} \
+ CT_DoExecLog ALL \
+ make -C "${kernel_path}" \
+ BASH="$(which bash)" \
+ HOSTCC="${CT_BUILD}-gcc" \
+ CROSS_COMPILE="${CT_TARGET}-" \
+ O="${CT_BUILD_DIR}/build-kernel-headers" \
+ ARCH=${kernel_arch} \
+ INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr" \
+ ${V_OPT} \
headers_install
if [ "${CT_KERNEL_LINUX_INSTALL_CHECK}" = "y" ]; then
CT_DoLog EXTRA "Checking installed headers"
- CT_DoExecLog ALL \
- make -C "${kernel_path}" \
- CROSS_COMPILE="${CT_TARGET}-" \
- O="${CT_BUILD_DIR}/build-kernel-headers" \
- ARCH=${kernel_arch} \
- INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr" \
- ${V_OPT} \
+ CT_DoExecLog ALL \
+ make -C "${kernel_path}" \
+ BASH="$(which bash)" \
+ HOSTCC="${CT_BUILD}-gcc" \
+ CROSS_COMPILE="${CT_TARGET}-" \
+ O="${CT_BUILD_DIR}/build-kernel-headers" \
+ ARCH=${kernel_arch} \
+ INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr" \
+ ${V_OPT} \
headers_check
fi
diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh
index c12a553..5207457 100644
--- a/scripts/build/libc/glibc.sh
+++ b/scripts/build/libc/glibc.sh
@@ -247,6 +247,10 @@ do_libc_backend_once() {
[ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
touch config.cache
+
+ # Hide host C++ binary from configure
+ echo "ac_cv_prog_ac_ct_CXX=${CT_TARGET}-g++" >>config.cache
+
if [ "${CT_LIBC_GLIBC_FORCE_UNWIND}" = "y" ]; then
echo "libc_cv_forced_unwind=yes" >>config.cache
echo "libc_cv_c_cleanup=yes" >>config.cache
@@ -346,13 +350,21 @@ do_libc_backend_once() {
build_ldflags="${CT_LDFLAGS_FOR_BUILD}"
case "$CT_BUILD" in
- *mingw*|*cygwin*|*msys*|*darwin*)
+ *mingw*|*cygwin*|*msys*|*darwin*|*freebsd*)
# When installing headers on Cygwin, Darwin, MSYS2 and MinGW-w64 sunrpc needs
# gettext for building cross-rpcgen.
build_cppflags="${build_cppflags} -I${CT_BUILDTOOLS_PREFIX_DIR}/include/"
build_ldflags="${build_ldflags} -lintl -liconv"
+ case "$CT_BUILD" in
+ *cygwin*|*freebsd*)
+ # Additionally, stat in FreeBSD, Cygwin, and possibly others
+ # is always 64bit, so replace struct stat64 with stat.
+ build_cppflags="${build_cppflags} -Dstat64=stat"
+ ;;
+ esac
;;
esac
+
extra_make_args+=( "BUILD_CFLAGS=${build_cflags}" )
extra_make_args+=( "BUILD_CPPFLAGS=${build_cppflags}" )
extra_make_args+=( "BUILD_LDFLAGS=${build_ldflags}" )