From b5fbe9d8732cff0d31970e669e4a8bf5d7a0e341 Mon Sep 17 00:00:00 2001 From: Peter Marheine Date: Mon, 6 May 2024 13:41:40 +1000 Subject: [PATCH] dos/meson: add a hint for setting sys_root I found that cross-compiling with GCC 12.2.0 targeting DJGPP from Linux on x86_64 that meson used my system include directory (/usr/include/x86_64-linux-gnu/) and pulled in include files that are incompatible with DJGPP. Setting sys_root prevents meson from assuming they're compatible between the build and host systems, fixing those compile-time errors. TEST=meson setup --cross-file meson_cross/i586_djgpp_dos.txt; ninja libflashrom.h no longer causes "features.h: No such file or directory" errors via /usr/include/x86_64-linux-gnu/sys/types.h Change-Id: Ib9cf70f6f94782c5303fb232aaf4a46192907f66 Signed-off-by: Peter Marheine Reviewed-on: https://review.coreboot.org/c/flashrom/+/82212 Tested-by: build bot (Jenkins) Reviewed-by: Anastasia Klimchuk --- meson_cross/i586_djgpp_dos.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/meson_cross/i586_djgpp_dos.txt b/meson_cross/i586_djgpp_dos.txt index 66d5ed0da..3d97aab7a 100644 --- a/meson_cross/i586_djgpp_dos.txt +++ b/meson_cross/i586_djgpp_dos.txt @@ -5,6 +5,11 @@ # Make sure pkg-config can find your self compiles libpci # or add the path of your libpci.pc as 'pkg_config_libdir' # under [properies] below. +# +# If cross-compiling, you may need to set sys_root in the [properties] +# section because meson otherwise assumes the same sysroot as the +# system on which you're building and will get the wrong include files +# (from /usr/include/x86_64 for example) among other possible issues. [binaries] c = 'i586-pc-msdosdjgpp-gcc' @@ -27,3 +32,4 @@ tests = 'disabled' ich_descriptors_tool = 'disabled' [properties] +sys_root = '/usr/local/djgpp'