diff options
author | Alexey Neyman <stilor@att.net> | 2017-01-09 01:01:52 -0600 |
---|---|---|
committer | Alexey Neyman <stilor@att.net> | 2017-01-10 10:39:37 -0800 |
commit | c69e593a9272ad186b6669bc5b12886890cea7fe (patch) | |
tree | faf6c28589d312ef9be24fb448433cfcc5c05aa7 | |
parent | 37a5a09e6505b28deb7cb4aaa5643950e4f892e9 (diff) | |
download | crosstool-ng-c69e593a9272ad186b6669bc5b12886890cea7fe.tar.gz crosstool-ng-c69e593a9272ad186b6669bc5b12886890cea7fe.tar.bz2 crosstool-ng-c69e593a9272ad186b6669bc5b12886890cea7fe.zip |
Pick up <linux/ioctl.h> and friends from TARGET.
Otherwise, cross-compiling fails on non-Linux build machines.
Signed-off-by: Alexey Neyman <stilor@att.net>
-rw-r--r-- | scripts/build/debug/500-strace.sh | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/scripts/build/debug/500-strace.sh b/scripts/build/debug/500-strace.sh index 69408de1..29618791 100644 --- a/scripts/build/debug/500-strace.sh +++ b/scripts/build/debug/500-strace.sh @@ -14,17 +14,29 @@ do_debug_strace_extract() { do_debug_strace_build() { CT_DoStep INFO "Installing strace" - mkdir -p "${CT_BUILD_DIR}/build-strace" - CT_Pushd "${CT_BUILD_DIR}/build-strace" + + # Strace needs _IOC definitions, and it tries to pick them up from <linux/ioctl.h>. + # While cross-compiling on a non-Linux host, we don't have this header. Replacing + # <linux/ioctl.h> with <sys/ioctl.h>, as suggested by many internet "solutions", + # is wrong: for example, MacOS defines _IOC macros differently, and we need the + # definitions for the target! + # Hence, create a "window" into target includes. + CT_DoExecLog ALL mkdir -p "${CT_BUILD_DIR}/build-strace-headers" + for d in linux asm asm-generic; do + CT_DoExecLog ALL ln -sf "${CT_HEADERS_DIR}/${d}" "${CT_BUILD_DIR}/build-strace-headers/${d}" + done + + CT_mkdir_pushd "${CT_BUILD_DIR}/build-strace" CT_DoLog EXTRA "Configuring strace" - CT_DoExecLog CFG \ - CC="${CT_TARGET}-gcc" \ - CPP="${CT_TARGET}-cpp" \ - LD="${CT_TARGET}-ld" \ - "${CT_SRC_DIR}/strace-${CT_STRACE_VERSION}/configure" \ - --build=${CT_BUILD} \ - --host=${CT_TARGET} \ + CT_DoExecLog CFG \ + CFLAGS_FOR_BUILD="-I ${CT_BUILD_DIR}/build-strace-headers" \ + CC="${CT_TARGET}-gcc" \ + CPP="${CT_TARGET}-cpp" \ + LD="${CT_TARGET}-ld" \ + "${CT_SRC_DIR}/strace-${CT_STRACE_VERSION}/configure" \ + --build=${CT_BUILD} \ + --host=${CT_TARGET} \ --prefix=/usr CT_DoLog EXTRA "Building strace" |