* only a RFC to discuss what might prevent --enable-poison-system-directories=true in gcc-cross to work or to test this on AB to see if there are other places where these issues sneaked in without being detected
* it was removed in: https://git.openembedded.org/openembedded-core/commit/?id=a67e9ebfd5b8002fd4a7d8d27ff0d997817f76e1 but looks like the "follow-up patches": d039d6fbfc gcc-cross: make use of the system include directories fatal 1fcaa5f452 gcc: add an option for --enable-poison-system-directories to be fatal don't work anymore? I was checking if e.g. -Wno-error is used in webkitgtk to disable them, but it's not there, so something else went wrong, because in webkit-gtk log.do_compile I've just noticed: # grep unsafe poky/build/tmp/work/core2-64-poky-linux/webkitgtk/2.36.4-r0/temp/log.do_compile.3901410 | sort | uniq -c 6 cc1: warning: include location "/usr/include/gstreamer-1.0" is unsafe for cross-compilation [-Wpoison-system-directories] 1267 cc1plus: warning: include location "/usr/include/gstreamer-1.0" is unsafe for cross-compilation [-Wpoison-system-directories] * and with this it confirms the same in webkitgtk: ERROR: webkitgtk-2.36.4-r0 do_compile: QA Issue: This /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/webkitgtk/2.36.4-r0/temp/log.do_compile log indicates 'unsafe for cross-compilation' or '-Wpoison-system-directories' errors, it looked at host include and/or library paths [compile-unsafe] and this was the only error (when building webkitgtk from scratch) Signed-off-by: Martin Jansa <martin.ja...@gmail.com> --- meta/classes/insane.bbclass | 38 ++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index c8b434bb54..9ce5ae0f6f 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -35,8 +35,8 @@ ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \ version-going-backwards expanded-d invalid-chars \ license-checksum dev-elf file-rdeps configure-unsafe \ configure-gettext perllocalpod shebang-size \ - already-stripped installed-vs-shipped ldflags compile-host-path \ - install-host-path pn-overrides unknown-configure-option \ + already-stripped installed-vs-shipped ldflags compile-unsafe \ + install-unsafe pn-overrides unknown-configure-option \ useless-rpaths rpaths staticdev empty-dirs \ " # Add usrmerge QA check based on distro feature @@ -1231,6 +1231,31 @@ python do_qa_patch() { bb.error("Missing Upstream-Status in patch\n%s\nPlease add according to %s ." % (fullpath, guidelines)) } +def check_poisoned_system_directories(file): + import subprocess + + statement = "grep -q -F -e 'is unsafe for cross-compilation' %s" % file + if subprocess.call(statement, shell=True) == 0: + return """This %s log indicates 'unsafe for cross-compilation' or '-Wpoison-system-directories' errors, it looked at host include and/or library paths""" % file + +python do_qa_compile() { + log = os.path.join(d.getVar('T'),"log.do_compile") + skip = (d.getVar('INSANE_SKIP') or "").split() + if 'compile-unsafe' not in skip and os.path.exists(log): + error_msg = check_poisoned_system_directories(log) + if error_msg: + oe.qa.handle_error("compile-unsafe", error_msg, d) +} + +python do_qa_install() { + log = os.path.join(d.getVar('T'),"log.do_install") + skip = (d.getVar('INSANE_SKIP') or "").split() + if 'install-unsafe' not in skip and os.path.exists(log): + error_msg = check_poisoned_system_directories(log) + if error_msg: + oe.qa.handle_error("install-unsafe", error_msg, d) +} + python do_qa_configure() { import subprocess @@ -1253,9 +1278,8 @@ python do_qa_configure() { statement = "grep -q -F -e 'is unsafe for cross-compilation' %s" % \ os.path.join(root,"config.log") if "config.log" in files: - if subprocess.call(statement, shell=True) == 0: - error_msg = """This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities. -Rerun configure task after fixing this.""" + error_msg = check_poisoned_system_directories(os.path.join(root,"config.log")) + if error_msg: oe.qa.handle_error("configure-unsafe", error_msg, d) if "configure.ac" in files: @@ -1356,6 +1380,10 @@ do_patch[postfuncs] += "do_qa_patch " #addtask qa_configure after do_configure before do_compile do_configure[postfuncs] += "do_qa_configure " +# Check poison-system-directories in log.do_compile and log.do_install +do_compile[postfuncs] += "do_qa_compile" +do_compile[postfuncs] += "do_qa_install" + # Check does S exist. do_unpack[postfuncs] += "do_qa_unpack"
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#168969): https://lists.openembedded.org/g/openembedded-core/message/168969 Mute This Topic: https://lists.openembedded.org/mt/92851436/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-