Hi Richard,

Richard Purdie <[email protected]> escreveu no dia sexta,
10/06/2022 à(s) 11:59:

> On Fri, 2022-06-10 at 11:43 +0100, Richard Purdie via
> lists.openembedded.org wrote:
> > On Thu, 2022-06-09 at 17:39 +0100, Jose Quaresma wrote:
> > > The archiver doesn't support using multiconfig sharing the same TMPDIR.
> > > When in the multiconfig and using the same TMPDIR: the two machines
> can make
> > > the same copy at the same time to the same destination, which will not
> work.
> > >
> > > This issiue can be replicated with meta-ti layer:
> > > > # use a multiconfig machine
> > > > MACHINE = "am64xx-evm"
> > > > # archive sources for target recipes in conf/local.conf
> > > > INHERIT += "archiver"
> > > > COPYLEFT_RECIPE_TYPES = "target"
> > > > ARCHIVER_MODE[src] = "original"
> > > > ARCHIVER_MODE[diff] = "1"
> > > > # and run bitbake with:
> > > > bitbake mc:k3r5:gcc-source-11.2.0 gcc-source-11.2.0 -c
> do_unpack_and_patch -f
> > >
> >
> > I went digging. If I enable this as above (using master) and run
> >
> > $ bitbake mc:k3r5:gcc-source-12.1.0 gcc-source-12.1.0 -c
> do_unpack_and_patch -S none
> >
> > then:
> >
> > $ bitbake-diffsigs
> tmp/stamps/work-shared/gcc-12.1.0-r0.do_unpack_and_patch.sigdata.*
> > NOTE: Starting bitbake server...
> > Task dependencies changed from:
> > ['ABIEXTENSION', 'ARCHIVER_MODE[diff-exclude]', 'ARCHIVER_MODE[diff]',
> 'ARCHIVER_MODE[src]', 'ARCHIVER_OUTDIR', 'ARCHIVER_TOPDIR',
> 'ARCHIVER_WORKDIR', 'B', 'BASEURI', 'EXTENDPE', 'GNU_MIRROR', 'HOST_ARCH',
> 'HOST_OS', 'HOST_SYS', 'HOST_VENDOR', 'INSANE_SKIP', 'LIBCEXTENSION',
> 'PATCHTOOL', 'PE', 'PF', 'PN', 'PR', 'PV', 'RECIPE_SYSROOT_NATIVE', 'S',
> 'SDE_DIR', 'SDE_FILE', 'SOURCEDIR', 'SRC_URI', 'SRC_URI[sha256sum]',
> 'STAGING_DIR_NATIVE', 'T', 'TARGET_ARCH', 'TARGET_OS', 'TARGET_SYS',
> 'TARGET_VENDOR', 'TUNE_ARCH', 'UNPACK_DIR', 'base_do_unpack',
> 'base_do_unpack[cleandirs]', 'create_diff_gz',
> 'create_source_date_epoch_stamp', 'do_patch', 'do_qa_patch',
> 'do_qa_unpack', 'do_unpack', 'do_unpack[cleandirs]', 'is_work_shared',
> 'patch_do_patch', 'src_patches', 'unpack_check_src_uri']
> > to:
> > ['ABIEXTENSION', 'ABIEXTENSION_32', 'ABIEXTENSION_64',
> 'ARCHIVER_MODE[diff-exclude]', 'ARCHIVER_MODE[diff]', 'ARCHIVER_MODE[src]',
> 'ARCHIVER_OUTDIR', 'ARCHIVER_TOPDIR', 'ARCHIVER_WORKDIR',
> 'ARMPKGSFX_ENDIAN_64', 'B', 'BASEURI', 'EXTENDPE', 'GNU_MIRROR',
> 'HOST_ARCH', 'HOST_OS', 'HOST_SYS', 'HOST_VENDOR', 'INSANE_SKIP',
> 'LIBCEXTENSION', 'PATCHTOOL', 'PE', 'PF', 'PN', 'PR', 'PV',
> 'RECIPE_SYSROOT_NATIVE', 'S', 'SDE_DIR', 'SDE_FILE', 'SOURCEDIR',
> 'SRC_URI', 'SRC_URI[sha256sum]', 'STAGING_DIR_NATIVE', 'T', 'TARGET_ARCH',
> 'TARGET_OS', 'TARGET_SYS', 'TARGET_VENDOR', 'TUNE_ARCH', 'TUNE_ARCH_32',
> 'TUNE_ARCH_64', 'UNPACK_DIR', 'base_do_unpack',
> 'base_do_unpack[cleandirs]', 'create_diff_gz',
> 'create_source_date_epoch_stamp', 'do_patch', 'do_qa_patch',
> 'do_qa_unpack', 'do_unpack', 'do_unpack[cleandirs]', 'is_work_shared',
> 'patch_do_patch', 'src_patches', 'unpack_check_src_uri']
> > basehash changed from
> 005580a7a5a1ab1ff554d0a9e47c2ad4ba932f3fe185d8d349b06c83e5e58b6c to
> d7b2e696005a578d5958ef4e73f1fc83e22612a3ae4294fb0540b0fadcb6c50f
> > List of dependencies for variable ABIEXTENSION changed from 'set()' to
> '{'ABIEXTENSION_64', 'ABIEXTENSION_32'}'
> > List of dependencies for variable TUNE_ARCH changed from 'set()' to
> '{'TUNE_ARCH_32', 'TUNE_ARCH_64'}'
> > Dependency on variable ABIEXTENSION_32 was added
> > Dependency on variable ABIEXTENSION_64 was added
> > Dependency on variable ARMPKGSFX_ENDIAN_64 was added
> > Dependency on variable TUNE_ARCH_32 was added
> > Dependency on variable TUNE_ARCH_64 was added
> > Variable ABIEXTENSION value changed:
> > @@ -1 +1,2 @@
> > -eabi
> > +${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${ABIEXTENSION_64}',
> '${ABIEXTENSION_32}', d)}
> > +TUNE_FEATURES{aarch64} = Set
> > Variable TUNE_ARCH value changed:
> > @@ -1,2 +1,2 @@
> > -${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'armeb', 'arm', d)}
> > -TUNE_FEATURES{bigendian} = Unset
> > +${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TUNE_ARCH_64}',
> '${TUNE_ARCH_32}', d)}
> > +TUNE_FEATURES{aarch64} = Set
> >
> > this tells us the real issue. The task is changing due to toolchain
> > issues. These stamps should be the same and aren't and this is the real
> > issue that needs fixing.
>

Many thanks for this tip that helps me a lot.
I will use this procedure to see what are the changes in some other issues
in the rm_work class that I found as well related with multiconfig.
But first is the gcc-sources shared recipe.


>
> To further follow up, there are two issues:
>
> a) the task uses ${B} which for gcc includes HOST_SYS and TARGET_SYS.
> We can just set that in the gcc-source recipe to B =
> "${WORKDIR}/build".
>
> b) the archiver uses:
> ARCHIVER_OUTDIR = ${ARCHIVER_TOPDIR}/${TARGET_SYS}/${PF}/
> which includes TARGET_SYS and between the two different MACHINE values,
> this changes  from 'arm-poky-linux-gnueabi' to 'aarch64-poky-linux'.
> This leads to the task running twice, once for each multiconfig.
>
> The first is easily solved as I mentioned. The question in the second
> case is whether the task should run twice and where the output should
> go since it is common to both builds. I do wonder if the archiver
> shouldn't set:
>
> ARCHIVER_OUTPUT:pn-gcc-source = "${ARCHIVER_TOPDIR}/allarch/${PF}"
>
> Cheers,
>
> Richard
>
>
>
I am debugging this issue today with your a) and b) suggestions applied but
is not enough.

However I realized that this problem does not depend on archiver class and
it is always reproducible
in oe-core when multiconfig is enabled using the same temp dir, what leads
me to conclude is that the
shared gcc-source depends on the machine configuration. So in multiconfig
it will run twice, once for each machine.

Replicated in oe-core with the default configuration using the layer
meta-ti:

| rm tmp/stamps/work-shared/gcc-12.1.0-r0.do_build.*sigdata.*
| bitbake mc:k3r5:gcc-source-12.1.0 gcc-source-11.2.0 -S none
| bitbake-diffsigs tmp/stamps/work-shared/gcc-12.1.0-r0.do_build.*sigdata.*

Task dependencies changed from:
['ABIEXTENSION', 'AR', 'AS', 'ASNEEDED', 'BUILD_AR', 'BUILD_AS',
'BUILD_AS_ARCH', 'BUILD_CC', 'BUILD_CCLD', 'BUILD_CC_ARCH', 'BUILD_CFLAGS',
'BUILD_CPP', 'BUILD_CPPFLAGS', 'BUILD_CXX', 'BUILD_CXXF
LAGS', 'BUILD_FC', 'BUILD_LD', 'BUILD_LDFLAGS', 'BUILD_LD_ARCH',
'BUILD_NM', 'BUILD_OPTIMIZATION', 'BUILD_PREFIX', 'BUILD_RANLIB',
'BUILD_STRIP', 'CC', 'CCLD', 'CC_FOR_BUILD', 'CFLAGS', 'CFLAGS_FO
R_BUILD', 'CONFIG_SITE', 'CPP', 'CPPFLAGS', 'CPPFLAGS_FOR_BUILD',
'CPP_FOR_BUILD', 'CXX', 'CXXFLAGS', 'CXXFLAGS_FOR_BUILD', 'CXX_FOR_BUILD',
'DEBUG_BUILD', 'DEBUG_FLAGS', 'DEBUG_OPTIMIZATION', 'DE
BUG_PREFIX_MAP', 'EXTENDPE', 'FC', 'FULL_OPTIMIZATION', 'GCCPIE',
'GETTEXTDATADIRS', 'HOST_AS_ARCH', 'HOST_CC_ARCH', 'HOST_LD_ARCH',
'HOST_PREFIX', 'LC_ALL', 'LD', 'LDFLAGS', 'LDFLAGS_FOR_BUILD',
'LD_FOR_BUILD', 'LIBCEXTENSION', 'LINKER_HASH_STYLE', 'MAKE', 'NM',
'OBJCOPY', 'OBJDUMP', 'OPTLEVEL', 'PE', 'PERL_HASH_SEED', 'PKG_CONFIG_DIR',
'PKG_CONFIG_DISABLE_UNINSTALLED', 'PKG_CONFIG_LIBDIR
', 'PKG_CONFIG_PATH', 'PKG_CONFIG_SYSROOT_DIR',
'PKG_CONFIG_SYSTEM_INCLUDE_PATH', 'PKG_CONFIG_SYSTEM_LIBRARY_PATH', 'PN',
'PR', 'PSEUDO_DISABLED', 'PV', 'PYTHONHASHSEED', 'RANLIB', 'READELF', 'REC
IPE_SYSROOT_NATIVE', 'SECURITY_CFLAGS', 'SECURITY_LDFLAGS',
'SECURITY_PIE_CFLAGS', 'SECURITY_STACK_PROTECTOR', 'SECURITY_STRINGFORMAT',
'SELECTED_OPTIMIZATION', 'SOURCE_DATE_EPOCH_FALLBACK', 'STAG
ING_BASE_LIBDIR_NATIVE', 'STAGING_DATADIR', 'STAGING_DIR_NATIVE',
'STAGING_INCDIR_NATIVE', 'STAGING_LIBDIR_NATIVE', 'STRINGS', 'STRIP',
'TARGET_ARCH', 'TARGET_AS_ARCH', 'TARGET_CC_ARCH', 'TARGET_C
FLAGS', 'TARGET_CPPFLAGS', 'TARGET_CXXFLAGS', 'TARGET_LDFLAGS',
'TARGET_LD_ARCH', 'TARGET_LINK_HASH_STYLE', 'TARGET_OS', 'TARGET_PREFIX',
'TARGET_SYS', 'TARGET_VENDOR', 'TOOLCHAIN_OPTIONS', 'TUNE_
ARCH', 'TUNE_ASARGS', 'TUNE_CCARGS', 'TUNE_LDARGS', 'TZ', 'base_bindir',
'base_libdir', 'base_libdir_native', 'base_prefix', 'base_sbindir',
'baselib', 'bindir', 'datadir', 'do_build[noexec]', 'do
cdir', 'exec_prefix', 'includedir', 'includedir_native', 'infodir',
'lcl_maybe_fortify', 'libdir', 'libdir_native', 'libexecdir',
'localstatedir', 'lt_cv_sys_lib_dlsearch_path_spec', 'mandir', 'no
narch_base_libdir', 'nonarch_libdir', 'oldincludedir', 'prefix',
'prefix_native', 'root_prefix', 'sbindir', 'servicedir', 'sharedstatedir',
'sysconfdir', 'systemd_system_unitdir', 'systemd_unitdir
', 'systemd_user_unitdir']
to:
['ABIEXTENSION', 'ABIEXTENSION_32', 'ABIEXTENSION_64', 'AR',
'ARMPKGSFX_ENDIAN_64', 'AS', 'ASNEEDED', 'BUILD_AR', 'BUILD_AS',
'BUILD_AS_ARCH', 'BUILD_CC', 'BUILD_CCLD', 'BUILD_CC_ARCH', 'BUILD_CFL
AGS', 'BUILD_CPP', 'BUILD_CPPFLAGS', 'BUILD_CXX', 'BUILD_CXXFLAGS',
'BUILD_FC', 'BUILD_LD', 'BUILD_LDFLAGS', 'BUILD_LD_ARCH', 'BUILD_NM',
'BUILD_OPTIMIZATION', 'BUILD_PREFIX', 'BUILD_RANLIB', 'BUI
LD_STRIP', 'CC', 'CCLD', 'CC_FOR_BUILD', 'CFLAGS', 'CFLAGS_FOR_BUILD',
'CONFIG_SITE', 'CPP', 'CPPFLAGS', 'CPPFLAGS_FOR_BUILD', 'CPP_FOR_BUILD',
'CXX', 'CXXFLAGS', 'CXXFLAGS_FOR_BUILD', 'CXX_FOR_BU
ILD', 'DEBUG_BUILD', 'DEBUG_FLAGS', 'DEBUG_OPTIMIZATION',
'DEBUG_PREFIX_MAP', 'EXTENDPE', 'FC', 'FULL_OPTIMIZATION', 'GCCPIE',
'GETTEXTDATADIRS', 'HOST_AS_ARCH', 'HOST_CC_ARCH', 'HOST_LD_ARCH', 'H
OST_PREFIX', 'LC_ALL', 'LD', 'LDFLAGS', 'LDFLAGS_FOR_BUILD',
'LD_FOR_BUILD', 'LIBCEXTENSION', 'LINKER_HASH_STYLE', 'MAKE', 'NM',
'OBJCOPY', 'OBJDUMP', 'OPTLEVEL', 'PE', 'PERL_HASH_SEED', 'PKG_CONF
IG_DIR', 'PKG_CONFIG_DISABLE_UNINSTALLED', 'PKG_CONFIG_LIBDIR',
'PKG_CONFIG_PATH', 'PKG_CONFIG_SYSROOT_DIR',
'PKG_CONFIG_SYSTEM_INCLUDE_PATH', 'PKG_CONFIG_SYSTEM_LIBRARY_PATH', 'PN',
'PR', 'PSEUDO
_DISABLED', 'PV', 'PYTHONHASHSEED', 'RANLIB', 'READELF',
'RECIPE_SYSROOT_NATIVE', 'SECURITY_CFLAGS', 'SECURITY_LDFLAGS',
'SECURITY_PIE_CFLAGS', 'SECURITY_STACK_PROTECTOR', 'SECURITY_STRINGFORMAT',
'SELECTED_OPTIMIZATION', 'SOURCE_DATE_EPOCH_FALLBACK',
'STAGING_BASE_LIBDIR_NATIVE', 'STAGING_DATADIR', 'STAGING_DIR_NATIVE',
'STAGING_INCDIR_NATIVE', 'STAGING_LIBDIR_NATIVE', 'STRINGS', 'STRIP',
'TARGET_ARCH', 'TARGET_AS_ARCH', 'TARGET_CC_ARCH', 'TARGET_CFLAGS',
'TARGET_CPPFLAGS', 'TARGET_CXXFLAGS', 'TARGET_LDFLAGS', 'TARGET_LD_ARCH',
'TARGET_LINK_HASH_STYLE', 'TARGET_OS', 'TARGET_PREFIX
', 'TARGET_SYS', 'TARGET_VENDOR', 'TOOLCHAIN_OPTIONS', 'TUNE_ARCH',
'TUNE_ARCH_32', 'TUNE_ARCH_64', 'TUNE_ASARGS', 'TUNE_CCARGS',
'TUNE_LDARGS', 'TZ', 'base_bindir', 'base_libdir', 'base_libdir_na
tive', 'base_prefix', 'base_sbindir', 'baselib', 'bindir', 'datadir',
'do_build[noexec]', 'docdir', 'exec_prefix', 'includedir',
'includedir_native', 'infodir', 'lcl_maybe_fortify', 'libdir', 'lib
dir_native', 'libexecdir', 'localstatedir',
'lt_cv_sys_lib_dlsearch_path_spec', 'mandir', 'nonarch_base_libdir',
'nonarch_libdir', 'oldincludedir', 'prefix', 'prefix_native',
'root_prefix', 'sbind
ir', 'servicedir', 'sharedstatedir', 'sysconfdir',
'systemd_system_unitdir', 'systemd_unitdir', 'systemd_user_unitdir']
basehash changed from
8ebbebb9e1848d2d90d237100288175cedafc5fe9a5da92cdba1ffcb2556a7fc to
50842f3a6f7b6c1f7fe3e1bccc306e26ddb72ab8d771779007ce85be4db29fea
List of dependencies for variable ABIEXTENSION changed from 'set()' to
'{'ABIEXTENSION_64',
'ABIEXTENSION_32'}'
List of dependencies for variable TUNE_ARCH changed from 'set()' to
'{'TUNE_ARCH_32',
'TUNE_ARCH_64'}'
Dependency on variable ABIEXTENSION_32 was added
Dependency on variable ABIEXTENSION_64 was added
Dependency on variable ARMPKGSFX_ENDIAN_64 was added
Dependency on variable TUNE_ARCH_32 was added
Dependency on variable TUNE_ARCH_64 was added
Variable ABIEXTENSION value changed:
@@ -1 +1,2 @@
-eabi
+${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${ABIEXTENSION_64}',
'${ABIEXTENSION_32}', d)}
+TUNE_FEATURES{aarch64} = Set
Variable TUNE_ARCH value changed:
@@ -1,2 +1,2 @@
-${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'armeb', 'arm', d)}
-TUNE_FEATURES{bigendian} = Unset
+${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TUNE_ARCH_64}',
'${TUNE_ARCH_32}', d)}
+TUNE_FEATURES{aarch64} = Set
Variable TUNE_CCARGS value changed from ' -march=armv7-a -mthumb -mfpu=vfp
-mfloat-abi=hard' to ''

Jose

-- 
Best regards,

José Quaresma
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#166871): 
https://lists.openembedded.org/g/openembedded-core/message/166871
Mute This Topic: https://lists.openembedded.org/mt/91650171/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to