Thread (2 messages) 2 messages, 2 authors, 2021-05-29

Re: [OE-core] [PATCH v2] gcc: Update to latest on release/gcc-11 branch

From: Martin Jansa <hidden>
Date: 2021-05-29 13:09:15

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

Regards,

On Wed, May 26, 2021 at 7:10 PM Martin Jansa via lists.openembedded.org
[off-list ref] wrote:
On Wed, May 26, 2021 at 5:43 PM Martin Jansa via lists.openembedded.org
[off-list ref] wrote
quoted
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.


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help