| Message ID | 20250926073618.4162662-1-haixiao.yan.cn@windriver.com |
|---|---|
| State | New |
| Headers | show |
| Series | syslinux: clean old object and dependency files before do_install | expand |
On Fri, 26 Sept 2025 at 09:37, Yan, Haixiao (CN) via lists.openembedded.org <Haixiao.Yan.CN=windriver.com@lists.openembedded.org> wrote: > make[4]: *** No rule to make target > '/build/tmp-glibc/work/corei7-64-wrs-linux/syslinux/6.04-pre2-r1/recipe-sysroot-native/ > usr/lib/x86_64-wrs-linux/gcc/x86_64-wrs-linux/12.4.0/include/stdarg.h', > needed by 'zlib/adler32.o'. Stop. > > Signed-off-by: Haixiao Yan <haixiao.yan.cn@windriver.com> > --- > meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb > index 449a75ebf8ab..ea4bf6e6a88b 100644 > --- a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb > +++ b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb > @@ -107,6 +107,7 @@ do_compile:class-target() { > } > > do_install:class-target() { > + oe_runmake firmware="bios" clean > oe_runmake firmware="bios" install INSTALLROOT="${D}" I'm not sure I understand what happens here. The issue seem to be that Makefile refers to a file that no longer exists in the sysroot. How would performing a 'make clean' address that issue? Alex
On 2025/9/26 15:43, Alexander Kanavin wrote: > CAUTION: This email comes from a non Wind River email account! > Do not click links or open attachments unless you recognize the sender and know the content is safe. > > On Fri, 26 Sept 2025 at 09:37, Yan, Haixiao (CN) via > lists.openembedded.org > <Haixiao.Yan.CN=windriver.com@lists.openembedded.org> wrote: >> make[4]: *** No rule to make target >> '/build/tmp-glibc/work/corei7-64-wrs-linux/syslinux/6.04-pre2-r1/recipe-sysroot-native/ >> usr/lib/x86_64-wrs-linux/gcc/x86_64-wrs-linux/12.4.0/include/stdarg.h', >> needed by 'zlib/adler32.o'. Stop. >> >> Signed-off-by: Haixiao Yan <haixiao.yan.cn@windriver.com> >> --- >> meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb >> index 449a75ebf8ab..ea4bf6e6a88b 100644 >> --- a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb >> +++ b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb >> @@ -107,6 +107,7 @@ do_compile:class-target() { >> } >> >> do_install:class-target() { >> + oe_runmake firmware="bios" clean >> oe_runmake firmware="bios" install INSTALLROOT="${D}" > I'm not sure I understand what happens here. The issue seem to be that > Makefile refers to a file that no longer exists in the sysroot. How > would performing a 'make clean' address that issue? Building syslinux normally works fine, but after upgrading GCC from 12.4.0 to 12.5.0, rebuilding syslinux results in a build failure. Listing the object and dependency files under syslinux/6.04-pre2-r1/syslinux-6.04-pre2/bios/com32/lib/zlib shows: ./ compress.o deflate.o inffast.o inftrees.o uncompr.o ../ .compress.o.d .deflate.o.d .inffast.o.d .inftrees.o.d .uncompr.o.d adler32.o crc32.o infback.o inflate.o trees.o zutil.o .adler32.o.d .crc32.o.d .infback.o.d .inflate.o.d .trees.o.d .zutil.o.d The dependency file .adler32.o.d references an outdated header: /build/tmp-glibc/work/corei7-64-wrs-linux/syslinux/6.04-pre2-r1/recipe-sysroot-native/usr/lib/x86_64-wrs-linux/gcc/x86_64-wrs-linux/12.4.0/include/stdarg.h Since stdarg.h cannot be found, the build fails. Executing `make clean` deletes all existing .o and .d files from the OBJ directories, ensuring that zlib is rebuilt from scratch and preventing stale dependencies from causing build errors. Thanks, Haixiao > Alex
On Fri, 26 Sept 2025 at 10:03, Haixiao Yan <haixiao.yan.cn@windriver.com> wrote: > Executing `make clean` deletes all existing .o and .d files from the OBJ > directories, ensuring that zlib is rebuilt from scratch and preventing > stale dependencies from causing build errors. Thanks for the explanation. The next question I had was why the standard clean mechanism that is usually triggered in do_configure() isn't working, and indeed I am seeing this in the recipe: do_configure() { oe_runmake firmware="bios" clean } ... do_configure:class-target() { # No need to do anything as we're mostly shipping the precompiled binaries : } Should this second function be removed instead, so that the standard one takes over and does the cleaning? Alex
On 9/26/25 1:27 AM, Alexander Kanavin via lists.openembedded.org wrote: > On Fri, 26 Sept 2025 at 10:03, Haixiao Yan <haixiao.yan.cn@windriver.com> wrote: > >> Executing `make clean` deletes all existing .o and .d files from the OBJ >> directories, ensuring that zlib is rebuilt from scratch and preventing >> stale dependencies from causing build errors. > > Thanks for the explanation. The next question I had was why the > standard clean mechanism that is usually triggered in do_configure() > isn't working, and indeed I am seeing this in the recipe: > > do_configure() { > oe_runmake firmware="bios" clean > } > ... > > do_configure:class-target() { > # No need to do anything as we're mostly shipping the > precompiled binaries > : > } > > Should this second function be removed instead, so that the standard > one takes over and does the cleaning? I wonder, if it is cleaning the pre-compiled stuff too, it seems the intent is to use pre-compiled binaries for target. So checking if those are kept intact after clean might be prudent. > > Alex > > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#224063): https://lists.openembedded.org/g/openembedded-core/message/224063 > Mute This Topic: https://lists.openembedded.org/mt/115444935/1997914 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
On 9/26/2025 4:27 PM, Alexander Kanavin wrote: > CAUTION: This email comes from a non Wind River email account! > Do not click links or open attachments unless you recognize the sender and know the content is safe. > > On Fri, 26 Sept 2025 at 10:03, Haixiao Yan <haixiao.yan.cn@windriver.com> wrote: > >> Executing `make clean` deletes all existing .o and .d files from the OBJ >> directories, ensuring that zlib is rebuilt from scratch and preventing >> stale dependencies from causing build errors. > Thanks for the explanation. The next question I had was why the > standard clean mechanism that is usually triggered in do_configure() > isn't working, and indeed I am seeing this in the recipe: > > do_configure() { > oe_runmake firmware="bios" clean > } > ... > > do_configure:class-target() { > # No need to do anything as we're mostly shipping the > precompiled binaries > : > } > > Should this second function be removed instead, so that the standard > one takes over and does the cleaning? Yes, It works by removing the second function, patch v2 sent. Thanks, Haixiao > > Alex
On 9/27/2025 1:05 AM, Khem Raj wrote: > CAUTION: This email comes from a non Wind River email account! > Do not click links or open attachments unless you recognize the sender > and know the content is safe. > > On 9/26/25 1:27 AM, Alexander Kanavin via lists.openembedded.org wrote: >> On Fri, 26 Sept 2025 at 10:03, Haixiao Yan >> <haixiao.yan.cn@windriver.com> wrote: >> >>> Executing `make clean` deletes all existing .o and .d files from the >>> OBJ >>> directories, ensuring that zlib is rebuilt from scratch and preventing >>> stale dependencies from causing build errors. >> >> Thanks for the explanation. The next question I had was why the >> standard clean mechanism that is usually triggered in do_configure() >> isn't working, and indeed I am seeing this in the recipe: >> >> do_configure() { >> oe_runmake firmware="bios" clean >> } >> ... >> >> do_configure:class-target() { >> # No need to do anything as we're mostly shipping the >> precompiled binaries >> : >> } >> >> Should this second function be removed instead, so that the standard >> one takes over and does the cleaning? > > I wonder, if it is cleaning the pre-compiled stuff too, it seems > the intent is to use pre-compiled binaries for target. So checking > if those are kept intact after clean might be prudent. > It will not clean the pre-compiled binaries. bitbake syslinux -cdo_configure find ./bios \( -type f \( -name '*.c32' -o -name 'ldlinux.sys' -o -name 'ldlinux.bss' \) \) -print | LC_ALL=C sort > prebuilt.after cat prebuilt.after ./bios/com32/chain/chain.c32 ./bios/com32/cmenu/complex.c32 ./bios/com32/cmenu/display.c32 ./bios/com32/cmenu/libmenu/libmenu.c32 ./bios/com32/cmenu/simple.c32 ./bios/com32/cmenu/test.c32 ./bios/com32/cmenu/test2.c32 ./bios/com32/elflink/ldlinux/ldlinux.c32 ./bios/com32/gfxboot/gfxboot.c32 ./bios/com32/gpllib/libgpl.c32 ./bios/com32/hdt/hdt.c32 ./bios/com32/lib/libcom32.c32 ./bios/com32/libutil/libutil.c32 ./bios/com32/lua/src/cmenu.c32 ./bios/com32/lua/src/cpu.c32 ./bios/com32/lua/src/dhcp.c32 ./bios/com32/lua/src/dmi.c32 ./bios/com32/lua/src/lfs.c32 ./bios/com32/lua/src/liblua.c32 ./bios/com32/lua/src/lua.c32 ./bios/com32/lua/src/pci.c32 ./bios/com32/lua/src/syslinux.c32 ./bios/com32/lua/src/vesa.c32 ./bios/com32/mboot/mboot.c32 ./bios/com32/menu/menu.c32 ./bios/com32/menu/vesamenu.c32 ./bios/com32/modules/cat.c32 ./bios/com32/modules/cmd.c32 ./bios/com32/modules/config.c32 ./bios/com32/modules/cptime.c32 ./bios/com32/modules/cpuid.c32 ./bios/com32/modules/cpuidtest.c32 ./bios/com32/modules/debug.c32 ./bios/com32/modules/dir.c32 ./bios/com32/modules/disk.c32 ./bios/com32/modules/dmitest.c32 ./bios/com32/modules/elf.c32 ./bios/com32/modules/ethersel.c32 ./bios/com32/modules/gpxecmd.c32 ./bios/com32/modules/hexdump.c32 ./bios/com32/modules/host.c32 ./bios/com32/modules/ifcpu.c32 ./bios/com32/modules/ifcpu64.c32 ./bios/com32/modules/ifmemdsk.c32 ./bios/com32/modules/ifplop.c32 ./bios/com32/modules/kbdmap.c32 ./bios/com32/modules/kontron_wdt.c32 ./bios/com32/modules/linux.c32 ./bios/com32/modules/ls.c32 ./bios/com32/modules/meminfo.c32 ./bios/com32/modules/pcitest.c32 ./bios/com32/modules/pmload.c32 ./bios/com32/modules/poweroff.c32 ./bios/com32/modules/prdhcp.c32 ./bios/com32/modules/pwd.c32 ./bios/com32/modules/pxechn.c32 ./bios/com32/modules/reboot.c32 ./bios/com32/modules/sanboot.c32 ./bios/com32/modules/sdi.c32 ./bios/com32/modules/vesainfo.c32 ./bios/com32/modules/vpdtest.c32 ./bios/com32/modules/whichsys.c32 ./bios/com32/modules/zzjson.c32 ./bios/com32/rosh/rosh.c32 ./bios/com32/samples/advdump.c32 ./bios/com32/samples/entrydump.c32 ./bios/com32/samples/fancyhello.c32 ./bios/com32/samples/hello.c32 ./bios/com32/samples/keytest.c32 ./bios/com32/samples/localboot.c32 ./bios/com32/samples/resolv.c32 ./bios/com32/samples/serialinfo.c32 ./bios/com32/sysdump/sysdump.c32 ./bios/core/ldlinux.bss ./bios/core/ldlinux.sys Thanks, Haixiao >> >> Alex >> >> >> >> -=-=-=-=-=-=-=-=-=-=-=- >> Links: You receive all messages sent to this group. >> View/Reply Online (#224063): >> https://lists.openembedded.org/g/openembedded-core/message/224063 >> Mute This Topic: https://lists.openembedded.org/mt/115444935/1997914 >> Group Owner: openembedded-core+owner@lists.openembedded.org >> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub >> [raj.khem@gmail.com] >> -=-=-=-=-=-=-=-=-=-=-=- >> >
diff --git a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb index 449a75ebf8ab..ea4bf6e6a88b 100644 --- a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb +++ b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb @@ -107,6 +107,7 @@ do_compile:class-target() { } do_install:class-target() { + oe_runmake firmware="bios" clean oe_runmake firmware="bios" install INSTALLROOT="${D}" install -d ${D}${datadir}/syslinux/