Jose Quaresma via lists.openembedded.org <quaresma.jose=
gmail....@lists.openembedded.org> escreveu no dia segunda, 13/06/2022 à(s)
23:12:

> Hi Richard,
>
> Richard Purdie <richard.pur...@linuxfoundation.org> 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.
>

I was wrong in my last analizes, the only task of gcc-sources that is used
by other recipes is the do_preconfigure.
The stamps produced for that are the same so the problem is really in the
archiver. Maybe can be related with
this task, do_preconfigure, that is called in other places on the archiver
but not on the do_unpack_and_patch.


TASK=do_preconfigure
rm tmp-lmp/stamps/work-shared/gcc-11.2.0-r0.$TASK.sigdata.* ; \
bitbake mc:k3r5:gcc-source-11.2.0 gcc-source-11.2.0 -c $TASK -S none && \
cat locked-sigs.inc && \
bitbake-diffsigs tmp-lmp/stamps/work-shared/gcc-11.2.0-r0.$TASK.sigdata.*


Produces the same stamp in the two machines.


SIGGEN_LOCKEDSIGS_t-aarch64 = "\
   
gcc-source-11.2.0:do_fetch:99156079ba9189e31a0990e3b1232613a449ad217034bfcb0e4abb2b1847ea77
\
   
gcc-source-11.2.0:do_patch:0ab19cac7bffb236412ec3f0bb8270cc077721162c01a0ff783f119459270881
\
   
gcc-source-11.2.0:do_preconfigure:f4d7cbe00a06eb28b417235981f600251f5eff4f3afd791a7d63ef34a0d3484f
\
   
gcc-source-11.2.0:do_unpack:cd754360e80c5b00ab1fc47aad830f5a3dd396b6711d60c4a17e39844bb5a079
\
   "
SIGGEN_LOCKEDSIGS_t-armv7at2hf-vfp = "\
   
gcc-source-11.2.0:do_fetch:99156079ba9189e31a0990e3b1232613a449ad217034bfcb0e4abb2b1847ea77
\
   
gcc-source-11.2.0:do_patch:0ab19cac7bffb236412ec3f0bb8270cc077721162c01a0ff783f119459270881
\
   
gcc-source-11.2.0:do_preconfigure:f4d7cbe00a06eb28b417235981f600251f5eff4f3afd791a7d63ef34a0d3484f
\
   
gcc-source-11.2.0:do_unpack:cd754360e80c5b00ab1fc47aad830f5a3dd396b6711d60c4a17e39844bb5a079
\

Jose


>
> 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
>
> 
>
>

-- 
Best regards,

José Quaresma
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#166881): 
https://lists.openembedded.org/g/openembedded-core/message/166881
Mute This Topic: https://lists.openembedded.org/mt/91650171/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to