grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v1] readd build dependency for startup_raw.S


From: Olaf Hering
Subject: Re: [PATCH v1] readd build dependency for startup_raw.S
Date: Fri, 18 Aug 2023 16:33:19 +0200

Thu, 17 Aug 2023 15:21:44 -0500 Glenn Washburn <development@efficientek.com>:

> On Thu, 17 Aug 2023 11:00:44 +0200
> Olaf Hering <olaf@aepfle.de> wrote:
> > It is the result of my attempt to build just the required binaries, without 
> > docs.
> > I came up with this:
> >   git clean -dffx
> >   bash bootstrap
> >   mkdir .b
> >   cd .b
> >   ../configure [options]
> >   make check
> >   make -C grub-core install-platformDATA install-platformPROGRAMS  
> And this avoids the compile error for startup_raw.S?

No, the other way around: this triggers it. Previously I had a simple 'make',
followed by the install targets shown above. This builds all dependencies,
and also the doc target. To get rid of the doc target, I was under the
assumption that install-something already has proper dependencies, but only
a subset is built. gnulib.a was missing, and likely others. I did not dig deep.
 
> > But thinking further about it, and as others have noted, the real fix would
> > be to wade through all targets and express their dependencies properly.  
> 
> What version of automake are you using? I'm on 1.16.3-2 from Debian 11.
> rs_decoder.h is ending up in BUILT_SOURCES, so it should get built
> before anything is compiled. Can you check ,? For me
> rs_decoder.h is included via a few levels of variable expansion, so it
> won't be literally in the definition of BUILT_SOURCES. I'm wondering if
> maybe you're using an older version of automake with a bug.

I have seen it with automake 1.15.1 and 1.16.5. 
"nodist_lzma_decompress_image_SOURCES" should be part of "BUILT_SOURCES",
via "am__append_6232". But another local build, without this change, does
indeed fail. The 'check' target does have "BUILT_SOURCES" as dependency,
not sure why it does not build the target.

With some debug, the content during 'make check' is just:
BUILT_SOURCES grub_fstest_init.c grub_script.tab.c grub_script.tab.h 
grub_script.yy.c grub_script.yy.h libgrub_a_init.c

And the real reason is an incorrect invocation of make:
'make check' works in the toplevel, while 'make -C grub-core install-something'
works in the given directory. So for me the fix (to avoid the docs target) is:
  make check
  make -C grub-core check
  make -C grub-core install-platformDATA install-platformPROGRAMS

Sorry for the noise.


Olaf

Attachment: pgp7mTnJEr3_i.pgp
Description: Digitale Signatur von OpenPGP


reply via email to

[Prev in Thread] Current Thread [Next in Thread]