diff options
author | midipix <writeonce@midipix.org> | 2021-06-13 07:28:30 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2021-06-13 07:31:31 +0000 |
commit | 48f78a7826b57b1854658b35b6c89fec78248db1 (patch) | |
tree | 48c571c380d68be3edb0ee1bcba1a78369ea8edb | |
parent | fd9ebdb4acc322c54b05d87cdbfad016ff8a312f (diff) | |
download | ptycon-48f78a7826b57b1854658b35b6c89fec78248db1.tar.bz2 ptycon-48f78a7826b57b1854658b35b6c89fec78248db1.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\' |