diff options
author | midipix <writeonce@midipix.org> | 2021-06-13 07:28:30 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2021-06-13 07:31:30 +0000 |
commit | 64c67fc8cf9c499befc9d6e8bf76eec4e83329fc (patch) | |
tree | d4b2329838fc3b86dbc386bfcb57975b8ad25df4 | |
parent | f3088e9b8bf65d6621604409e2b676a9dda33e51 (diff) | |
download | perk-64c67fc8cf9c499befc9d6e8bf76eec4e83329fc.tar.bz2 perk-64c67fc8cf9c499befc9d6e8bf76eec4e83329fc.tar.xz |
build system: configure, ccenv: enhanced --sysroot logic.
-rwxr-xr-x | configure | 9 | ||||
-rw-r--r-- | sofort/ccenv/ccenv.sh | 6 |
2 files changed, 14 insertions, 1 deletions
@@ -813,8 +813,15 @@ config_ccenv() output_section_break ccenv_set_native_variables + # implicit --sysroot for use with pkgconf and friends + if [ -z "$mb_sysroot" ]; then + mb_sysroot="$ccenv_host_sysroot" + fi + # require --sysroot when cross-compiling - if [ "$mb_cchost" != "$mb_native_cchost" ] && [ -z "$mb_sysroot" ]; then + if [ "$mb_cchost" != "$mb_native_cchost" ] \ + && [ "$ccenv_host_cc" != "$ccenv_native_cc" ] \ + && [ -z "$mb_sysroot" ]; then mb_pretty=$(printf "%-${#mb_package}s" '') error_msg ' !!' diff --git a/sofort/ccenv/ccenv.sh b/sofort/ccenv/ccenv.sh index 464b309..a13aa07 100644 --- a/sofort/ccenv/ccenv.sh +++ b/sofort/ccenv/ccenv.sh @@ -28,8 +28,10 @@ # variables available to cfgdefs.sh and cfgfini.sh: # ccenv_host_cflags: expanded cflags, valid for the host compiler # ccenv_host_ldflags: expanded ldflags, valid for the host compiler +# ccenv_host_sysroot: host sysroot, as reported by the host compiler # ccenv_native_cflags: expanded cflags, valid for the native compiler # ccenv_native_ldflags: expanded ldflags, valid for the native compiler +# ccenv_native_sysroot: native sysroot, as reported by the native compiler ccenv_usage() { @@ -1507,8 +1509,12 @@ ccenv_output_defs() ccenv_cflags="${ccenv_cflags#*: }" ccenv_ldflags="${ccenv_ldflags#*: }" + ccenv_sysroot=$(eval $ccenv_cc $(printf '%s' "$ccenv_cflags") \ + -print-sysroot 2>/dev/null || true) + eval 'ccenv_'${ccenv_cfgtype}'_cflags'=\'$ccenv_cflags\' eval 'ccenv_'${ccenv_cfgtype}'_ldflags'=\'$ccenv_ldflags\' + eval 'ccenv_'${ccenv_cfgtype}'_sysroot'=\'$ccenv_sysroot\' eval 'ccenv_'${ccenv_cfgtype}'_cc'=\'$ccenv_cc\' eval 'ccenv_'${ccenv_cfgtype}'_cc_environment'=\'$ccenv_cc_environment\' |