On Wed, Jul 17, 2024 at 08:21:31PM -0400, Denys Dmytriyenko wrote: > FWIW, I'm testing master-next now with your patch applied and I'm also seeing > the same buildpaths QA error in .../include-fixed/pthread.h > > ERROR: gcc-cross-canadian-aarch64-14.1.0-r0 do_package_qa: QA Issue: File > /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib/aarch64-poky-linux/gcc/aarch64-poky-linux/14.1.0/include-fixed/pthread.h > in package gcc-cross-canadian-aarch64 contains reference to TMPDIR > [buildpaths] > ERROR: gcc-cross-canadian-aarch64-14.1.0-r0 do_package_qa: Fatal QA errors > were found, failing task. > ERROR: Logfile of failure stored in: > /OE/poky-master/build/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-aarch64/14.1.0/temp/log.do_package_qa.820539 > ERROR: Task > (/OE/poky-master/meta/recipes-devtools/gcc/gcc-cross-canadian_14.1.bb:do_package_qa) > failed with exit code '1' > > The header file contains this: > > /* DO NOT EDIT THIS FILE. > > It has been auto-edited by fixincludes from: > > > "/OE/poky-master/build/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-aarch64/14.1.0/recipe-sysroot/usr/include/pthread.h" > > This had to be done to correct non-standard usages in the > original, manufacturer supplied header file. */ > > Both gcc-target and gcc-cross end up removing this header file: > https://git.openembedded.org/openembedded-core/commit/?id=e0af4b2c8f8e29ac6f8eccef401c7c004355359d > https://git.openembedded.org/openembedded-core/commit/?id=f0fcaa88b7b2977c2cb35b060747442ee9ff3dcd > > I'm not sure if we should do the same for gcc-cross-canadian as well - I'm > trying it locally now...
Well, similarly pruning include-fixed with find+rm makes all the builds succeed. But I haven't tried using the resulting gcc-canadian-cross yet. Also, just a nitpick - I noticed the 2 new functions are used from do_compile(), while being added to gcc-configure-common.inc, not gcc-common.inc > On Wed, Jul 17, 2024 at 02:56:06AM -0700, Oleksandr Hnatiuk via > lists.openembedded.org wrote: > > Apply fixes from gcc-cross (84a78f46d594 and 0ead8cbdfb96) to > > gcc-cross-canadian. > > This will improve (but not fix) reproducibility of gcc-cross-canadian. > > Also move this code to functions to avoid code duplication. > > > > Signed-off-by: Oleksandr Hnatiuk <[email protected]> > > --- > > .../gcc/gcc-configure-common.inc | 19 +++++++++++++++++++ > > .../gcc/gcc-cross-canadian.inc | 3 +++ > > meta/recipes-devtools/gcc/gcc-cross.inc | 15 ++------------- > > meta/recipes-devtools/gcc/gcc-target.inc | 16 ++-------------- > > 4 files changed, 26 insertions(+), 27 deletions(-) > > > > diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc > > b/meta/recipes-devtools/gcc/gcc-configure-common.inc > > index d77b2ec3d1de..c936d1a9bd7b 100644 > > --- a/meta/recipes-devtools/gcc/gcc-configure-common.inc > > +++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc > > @@ -120,3 +120,22 @@ do_configure () { > > oe_runconf > > } > > > > +remove_sysroot_paths_from_configargs () { > > + # Prevent sysroot path from being used in configargs.h header, as it > > will > > + # be rewritten when used by other sysroots preventing support for gcc > > + # plugins. Additionally the path is embeddeded into the output binary, > > this > > + # prevents building a reproducible binary. > > + oe_runmake configure-gcc > > + sed -i 's@${STAGING_DIR_TARGET}@/host@g' ${B}/gcc/configargs.h > > + sed -i 's@${STAGING_DIR_HOST}@/host@g' ${B}/gcc/configargs.h > > +} > > + > > +remove_sysroot_paths_from_checksum_options () { > > + # Prevent sysroot/workdir paths from being used in checksum-options. > > + # checksum-options is used to generate a checksum which is embedded into > > + # the output binary. > > + oe_runmake TARGET-gcc=checksum-options all-gcc > > + sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options > > + sed -i 's@${1}@/host@g' ${B}/gcc/checksum-options > > +} > > + > > diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc > > b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc > > index 7c4233c21157..9528b71272dd 100644 > > --- a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc > > +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc > > @@ -64,6 +64,9 @@ do_configure () { > > } > > > > do_compile () { > > + remove_sysroot_paths_from_configargs > > + remove_sysroot_paths_from_checksum_options '${STAGING_DIR_HOST}' > > + > > oe_runmake all-host configure-target-libgcc > > (cd ${B}/${TARGET_SYS}/libgcc; oe_runmake enable-execute-stack.c > > unwind.h md-unwind-support.h sfp-machine.h gthr-default.h) > > } > > diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc > > b/meta/recipes-devtools/gcc/gcc-cross.inc > > index 5b0ca15d4762..f8a7730cf322 100644 > > --- a/meta/recipes-devtools/gcc/gcc-cross.inc > > +++ b/meta/recipes-devtools/gcc/gcc-cross.inc > > @@ -62,19 +62,8 @@ do_compile () { > > export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}" > > export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}" > > > > - # Prevent native/host sysroot path from being used in configargs.h > > header, > > - # as it will be rewritten when used by other sysroots preventing support > > - # for gcc plugins > > - oe_runmake configure-gcc > > - sed -i 's@${STAGING_DIR_TARGET}@/host@g' ${B}/gcc/configargs.h > > - sed -i 's@${STAGING_DIR_HOST}@/host@g' ${B}/gcc/configargs.h > > - > > - # Prevent sysroot/workdir paths from being used in checksum-options. > > - # checksum-options is used to generate a checksum which is embedded into > > - # the output binary. > > - oe_runmake TARGET-gcc=checksum-options all-gcc > > - sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options > > - sed -i 's@${STAGING_DIR_HOST}@/host@g' ${B}/gcc/checksum-options > > + remove_sysroot_paths_from_configargs > > + remove_sysroot_paths_from_checksum_options '${STAGING_DIR_HOST}' > > > > oe_runmake all-host configure-target-libgcc > > (cd ${B}/${TARGET_SYS}/libgcc; oe_runmake enable-execute-stack.c > > unwind.h md-unwind-support.h sfp-machine.h gthr-default.h) > > diff --git a/meta/recipes-devtools/gcc/gcc-target.inc > > b/meta/recipes-devtools/gcc/gcc-target.inc > > index e9187fc444b9..bd7506fe3a55 100644 > > --- a/meta/recipes-devtools/gcc/gcc-target.inc > > +++ b/meta/recipes-devtools/gcc/gcc-target.inc > > @@ -132,20 +132,8 @@ FILES:${PN}-doc = "\ > > " > > > > do_compile () { > > - # Prevent full target sysroot path from being used in configargs.h > > header, > > - # as it will be rewritten when used by other sysroots preventing support > > - # for gcc plugins. Additionally the path is embeddeded into the output > > - # binary, this prevents building a reproducible binary. > > - oe_runmake configure-gcc > > - sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/configargs.h > > - sed -i 's@${STAGING_DIR_HOST}@/@g' ${B}/gcc/configargs.h > > - > > - # Prevent sysroot/workdir paths from being used in checksum-options. > > - # checksum-options is used to generate a checksum which is embedded into > > - # the output binary. > > - oe_runmake TARGET-gcc=checksum-options all-gcc > > - sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options > > - sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/checksum-options > > + remove_sysroot_paths_from_configargs > > + remove_sysroot_paths_from_checksum_options '${STAGING_DIR_TARGET}' > > > > oe_runmake all-host > > } > > -- > > 2.35.6
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#202182): https://lists.openembedded.org/g/openembedded-core/message/202182 Mute This Topic: https://lists.openembedded.org/mt/107268307/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
