summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Hutchings <ben@decadent.org.uk>2019-01-25 02:04:50 +0000
committerBen Hutchings <ben@decadent.org.uk>2019-01-25 02:56:25 +0000
commit03aa5f8d27b2134b6540f3f597534fbcd8fc2805 (patch)
tree314ea98ef694fb1b1bef684a19b509adb03aa53f
parent05e5e054023f908982cf2944a2f36b0b9c18d61a (diff)
downloadklibc-maint-03aa5f8d27b2134b6540f3f597534fbcd8fc2805.tar.gz
test-many-klibcs: Build out-of-tree and don't clean every time
Out-of-tree builds are working again. We can build for each tested architecture in a separate directory and then don't need to clean between builds.
-rw-r--r--.gitignore1
-rwxr-xr-xtest-many-klibcs28
2 files changed, 16 insertions, 13 deletions
diff --git a/.gitignore b/.gitignore
index 80e9e1b..776739b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
*~
.#*
*.log
+build
install
logs
test.out
diff --git a/test-many-klibcs b/test-many-klibcs
index 7d7c83f..7b5ba06 100755
--- a/test-many-klibcs
+++ b/test-many-klibcs
@@ -4,11 +4,15 @@ build() {
echo "I: Using $("$gnuarch-gcc" --version | head -1)"
echo "I: Using $("$gnuarch-ld" --version | head -1)"
+ mkdir -p "build/$gnuarch"
echo "I: Generating kernel UAPI headers for ARCH=$kernelarch"
- rm -rf ../linux/usr/include || return
- make -C ../linux "ARCH=$kernelarch" headers_install || return
+ make -C ../linux "ARCH=$kernelarch" \
+ "INSTALL_HDR_PATH=$PWD/build/$gnuarch/linux" headers_install \
+ || return
echo "I: Building with ARCH=$arch CROSS_COMPILE=$gnuarch- $makeflags"
- make -C ../klibc -j"$nproc" all test "ARCH=$arch" "CROSS_COMPILE=$gnuarch-" $makeflags \
+ make -C "build/$gnuarch" -f "$PWD/../klibc/Makefile" -j"$nproc" \
+ "ARCH=$arch" "CROSS_COMPILE=$gnuarch-" "KBUILD_SRC=$PWD/../klibc" \
+ $makeflags all test \
|| return
}
@@ -22,13 +26,14 @@ do_install() {
fi
# Install klibc itself
- make -C ../klibc install "ARCH=$arch" "CROSS_COMPILE=$gnuarch-" \
- $makeflags INSTALLROOT="$PWD/install" \
+ make -C "build/$gnuarch" -f "$PWD/../klibc/Makefile" \
+ "ARCH=$arch" "CROSS_COMPILE=$gnuarch-" "KBUILD_SRC=$PWD/../klibc" \
+ $makeflags INSTALLROOT="$PWD/install" install \
|| return
# Install shared-library tests
mkdir install/tests
- cp ../klibc/usr/klibc/tests/*.shared install/tests/ || return
+ cp "build/$gnuarch/usr/klibc/tests"/*.shared install/tests/ || return
# Some tests need these
mkdir -p install/dev
@@ -51,7 +56,7 @@ do_install() {
clean() {
echo "I: Cleaning"
- make -C ../klibc clean "ARCH=$arch"
+ (cd ../klibc && git clean -d -f -x)
}
run_built() {
@@ -92,7 +97,7 @@ run_test_program() {
case "$flavour" in
static)
- run_built ../klibc/usr/klibc/tests/"$progname" > "$logname" \
+ run_built "build/$gnuarch/usr/klibc/tests/$progname" > "$logname" \
|| err=$?
;;
shared)
@@ -123,7 +128,7 @@ run_test_program() {
run_shell_static() {
local command="$1"
- if run_built ../klibc/usr/dash/static/sh -c "$command"; then
+ if run_built "build/$gnuarch/usr/dash/static/sh" -c "$command"; then
echo "I: shell '$command': pass"
else
echo "E: shell '$command': fail"
@@ -176,7 +181,7 @@ run_tests() {
run_tests_flavour static || err=1
run_shell_static "exit" || err=1
- run_shell_static "../klibc/usr/utils/static/true; exit" || err=1
+ run_shell_static "build/$gnuarch/usr/utils/static/true; exit" || err=1
run_tests_flavour shared || err=1
run_shell_shared "exit" || err=1
@@ -218,9 +223,6 @@ echo "I: Using Linux $(make -C ../linux -s kernelversion)"
nproc="$(nproc || echo 1)"
echo "I: Using concurrency of $nproc"
-rm -rf ../klibc/linux
-ln -s ../linux/usr ../klibc/linux
-
process alpha alpha alpha-linux-gnu alpha
# arm OABI is no longer supported in Debian.
#process arm arm arm-linux-gnu arm