On 5/29/21 6:09 AM, Martin Jansa wrote:
It's not directly caused by this upgrade, but it revealed interesting
issue in incremental builds.
This is just to document some reproducible cases of "random build issues
which magically disappeared after -c clean".
Building in the same TMPDIR with this gcc upgrade resulted in syslinux
and libvpx failing with couple errors like:
make[4]: Leaving directory
'/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/bios/com32/tools'
make[4]: *** No rule to make target
'/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/recipe-sysroot-native/usr/lib/x86_64-webos-linux/gcc/x86_64-webos-linux/11.1.0/include/stdarg.h',
needed by 'zlib/adler32.o'. Stop.
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory
'/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/bios/com32/lib'
make[3]: ***
[/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/com32/Makefile:7:
lib] Error 2
make[3]: Leaving directory
'/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/bios/com32'
make[2]: ***
[/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/Makefile:347:
install] Error 2
make[2]: Leaving directory
'/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/bios'
make[1]: ***
[/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/Makefile:257:
bios] Error 2
make[1]: Leaving directory
'/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2'
make: *** [Makefile:102: install] Error 2
ERROR: oe_runmake failed
Rebuilding from scratch fixes the issue and the 11.1.0 directory was
referenced in many *.o.d files:
---
6.04-pre2-r1-broken/syslinux-6.04-pre2/bios/com32/libupload/.upload_srec.o.d
2021-05-24 09:56:57.390268171 +0200
+++
6.04-pre2-r1/syslinux-6.04-pre2/bios/com32/libupload/.upload_srec.o.d
2021-05-29 14:12:45.670506782 +0200
@@ -7,7 +7,7 @@
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/com32/include/bitsize32/stddef.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/com32/include/stdio.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/com32/include/stdarg.h
\
-
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/recipe-sysroot-native/usr/lib/x86_64-webos-linux/gcc/x86_64-webos-linux/11.1.0/include/stdarg.h
\
+
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/recipe-sysroot-native/usr/lib/x86_64-webos-linux/gcc/x86_64-webos-linux/11.1.1/include/stdarg.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/com32/include/inttypes.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/com32/include/stdint.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/syslinux/6.04-pre2-r1/syslinux-6.04-pre2/com32/include/bitsize/stdint.h
\
I don't see any easy way how to force them to be regenerated when gcc
was upgraded.
syslinux uses plain Makefiles and do_configure tries to clean with;
oe_runmake firmware="bios" clean
Similarly libvpx doesn't use autotools bbclass, but calls configure/make
manually so also doesn't take advantage of separate B directory and
removing it before re-executing do_configure.
-- 1.8.2-r0-broken/git/vpx_scale/generic/vpx_scale.c.d 2021-05-24
09:29:44.916405487 +0200
+++ 1.8.2-r0/git/vpx_scale/generic/vpx_scale.c.d 2021-05-29
14:12:39.234539166 +0200
@@ -10,7 +10,7 @@
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot/usr/include/bits/long-double-64.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot/usr/include/gnu/stubs.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot/usr/include/gnu/stubs-64.h
\
-
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot-native/usr/lib/x86_64-webos-linux/gcc/x86_64-webos-linux/11.1.0/include/stddef.h
\
+
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot-native/usr/lib/x86_64-webos-linux/gcc/x86_64-webos-linux/11.1.1/include/stddef.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot/usr/include/bits/waitflags.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot/usr/include/bits/waitstatus.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot/usr/include/bits/floatn.h
\
@@ -49,7 +49,7 @@
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot/usr/include/bits/stdlib-float.h
\
vpx/vpx_integer.h \
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot/usr/include/inttypes.h
\
-
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot-native/usr/lib/x86_64-webos-linux/gcc/x86_64-webos-linux/11.1.0/include/stdint.h
\
+
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot-native/usr/lib/x86_64-webos-linux/gcc/x86_64-webos-linux/11.1.1/include/stdint.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot/usr/include/stdint.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot/usr/include/bits/wchar.h
\
/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/libvpx/1.8.2-r0/recipe-sysroot/usr/include/bits/stdint-uintn.h
\
Any ideas how to detect and prevent this kind of issues in some generic
way so that we don't need to explicitly fix the recipes?
Bumping tmp-glibc/abi_version on every minor gcc upgrade also seems a
bit overkill (as gcc upgrades might not be the only source of these kind
of issues anyway).
This is in the packages which try to generate and use dependency
tracking. This kind of automatic dependency tracking relies on compiler
to compute this information but only after compile has happened so it
slows down the build too. autotools has it tooled during configure if
--enable-dependency-tracking is passed then it will check and update
these dependencies in incremental compile, So for one set of recipes
which use autotools we can enable this option, although it has build
time penalty, how much I don't know.
for other build systems also there must be similar tools
Although, I would say that having a knob to trigger world rebuilds is
perhaps a fine approach for such changes, since we will spend time
everytime otherwise.
Regards,
On Wed, May 26, 2021 at 7:10 PM Martin Jansa via lists.openembedded.org
<http://lists.openembedded.org>
<[email protected]
<mailto:[email protected]>> wrote:
On Wed, May 26, 2021 at 5:43 PM Martin Jansa via
lists.openembedded.org <http://lists.openembedded.org>
<[email protected]
<mailto:[email protected]>> wrote
I'm seeing different error with gcc-sanitizers and this new
revision:
work-shared/gcc-11.1.0-r0/gcc-11.1.0/libsanitizer/lsan/lsan_common_linux.cpp:164:25:
error: invalid conversion from 'void (*)(void*)' to 'void*
(*)(void*)' [-fpermissive]
will double-check if it was introduced by this upgrade or
something else in oe-core master update today and also if there
is a fix in even newer gcc already.
Sorry for noise, this line of code comes from our local patch and
the upgrade just started triggering this issue in it.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#152420):
https://lists.openembedded.org/g/openembedded-core/message/152420
Mute This Topic: https://lists.openembedded.org/mt/83053748/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-