summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDan McGregor <dan.mcgregor@usask.ca>2016-11-18 00:57:28 (GMT)
committerDan McGregor <dan.mcgregor@usask.ca>2017-03-02 04:22:02 (GMT)
commitf2f782dd1cf2b4ccb6f28f6113e7fedb23f078d6 (patch)
tree85023b728080f60132841b11892d3597e25a1566 /scripts
parent25c55cd5d7159b925ef2282f945cbb4e7a8db968 (diff)
Bring in FreeBSD support
Check for FreeBSD specific issues, it is mostly the same as Darwin. Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build/internals.sh3
-rw-r--r--scripts/build/kernel/linux.sh32
-rw-r--r--scripts/build/libc/glibc.sh10
3 files changed, 30 insertions, 15 deletions
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..25687ce 100644
--- a/scripts/build/libc/glibc.sh
+++ b/scripts/build/libc/glibc.sh
@@ -346,13 +346,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}" )