aboutsummaryrefslogtreecommitdiff
path: root/tools/build/cross-build
diff options
context:
space:
mode:
authorAlex Richardson <arichardson@FreeBSD.org>2020-08-25 13:29:57 +0000
committerAlex Richardson <arichardson@FreeBSD.org>2020-08-25 13:29:57 +0000
commit5bb9250e0af4626bb9524ce4ed77b9efaf30ce46 (patch)
tree2edbf09bb6dcd61b441da105db6a371f2efc6071 /tools/build/cross-build
parent7ec1ec4fdb98d87602c8501dae9b9cbd24b7d22b (diff)
downloadsrc-5bb9250e0af4626bb9524ce4ed77b9efaf30ce46.tar.gz
src-5bb9250e0af4626bb9524ce4ed77b9efaf30ce46.zip
Add necessary Makefile.inc1 infrastructure for building on non-FreeBSD
The most awkward bit in this patch is the bootstrapping of m4: We can't simply use the host version of m4 since that is not compatible with the flags passed by lex (at least on macOS, possibly also on Linux). Therefore we need to bootstrap m4, but lex needs m4 to build and m4 also depends on lex (which needs m4 to generate any files). To work around this cyclic dependency we can build a bootstrap version of m4 (with pre-generated files) then use that to build the real m4. This patch also changes the xz/unxz/dd tools to always use the host version since the version in the source tree cannot easily be bootstrapped on macOS or Linux. Reviewed By: brooks, imp (earlier version) Differential Revision: https://reviews.freebsd.org/D25992
Notes
Notes: svn path=/head/; revision=364760
Diffstat (limited to 'tools/build/cross-build')
-rw-r--r--tools/build/cross-build/fake_chflags/Makefile7
-rw-r--r--tools/build/cross-build/fake_chflags/chflags42
2 files changed, 49 insertions, 0 deletions
diff --git a/tools/build/cross-build/fake_chflags/Makefile b/tools/build/cross-build/fake_chflags/Makefile
new file mode 100644
index 000000000000..c4559be0e778
--- /dev/null
+++ b/tools/build/cross-build/fake_chflags/Makefile
@@ -0,0 +1,7 @@
+# $FreeBSD$
+
+NO_OBJ=
+SCRIPTS= chflags
+BINDIR= /usr/bin
+
+.include <bsd.prog.mk> \ No newline at end of file
diff --git a/tools/build/cross-build/fake_chflags/chflags b/tools/build/cross-build/fake_chflags/chflags
new file mode 100644
index 000000000000..cd9becba5112
--- /dev/null
+++ b/tools/build/cross-build/fake_chflags/chflags
@@ -0,0 +1,42 @@
+#!/bin/sh -e
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+# Copyright 2018-2020 Alex Richardson <arichardson@FreeBSD.org>
+#
+# This software was developed by SRI International and the University of
+# Cambridge Computer Laboratory (Department of Computer Science and
+# Technology) under DARPA contract HR0011-18-C-0016 ("ECATS"), as part of the
+# DARPA SSITH research programme.
+#
+# This software was developed by SRI International and the University of
+# Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
+# ("CTSRD"), as part of the DARPA CRASH research programme.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $FreeBSD$
+#
+# chflags doesn't exist on Linux, just skip the calls for now
+# TODO: we could also create a wrapper that calls `chattr +i` for `chflags schg`, etc
+echo "WARNING: Ignoring chflags $@"
+# TODO: exit 1