[Buildroot] [PATCHv4] boot/grub2: Fix GRUB i386-pc build with Ubuntu gcc
Peter Korsgaard
peter at korsgaard.com
Sun Jun 21 21:23:48 UTC 2020
>>>>> "Yann" == Yann E MORIN <yann.morin.1998 at free.fr> writes:
> From: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> Backport a patch from upstream to fix the build on certain versions of
> gsc, notably:
> Ubuntu 19.10 with gcc (Ubuntu 8.3.0-26ubuntu1~19.10) 8.3.0
> Ubuntu 19.10 with gcc (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008
> The upstream patch is simply a change in the gentpl.py script, which is
> used to generate parts of the automake machinery, so if we just backport
> the upstream patch, we need to call the script to regenerate those files.
> However, the modified script is a python script, so we would need to add
> a dependency on host-python (2 or 3), which is not so nice.
> Furthermore, calling the script is not enough: it needs a specific set
> of optionss for each file it is to generate. That set of options is not
> static; it is constructed in the convoluted autogen.sh. Calling
> autogen.sh is usally not so good an idea in the Buildroot context, and
> indeed this fails becasue it calls to autoreconf, but without our
> carefuly crafted options and environment variables.
> There was a little light in the tunnel, in that autogen.sh can be told
> not to run autoreconf, by setting the environemnt variable
> FROM_BOOTSTRAP to an non-=empty string, but this is fraught with various
> other side-effects, as in that cause, autogen.sh expects to be valled by
> an upper sciopt, bootstrap, which is not provided in the tarball
> distribution...
> So, between all those issues, autogen, bootstrap, and a host-python (2
> or 3) dependency, we choose another route: path the script *and* the one
> generated file affected by the change. Since that patched file is a .am
> file, we also patch the corresponding .in file
> However, we're faced with another issue: the other generated file is
> now older than the script, so the automake machinery will now want to
> re-run autoconf et al during the build step, which is still not a good
> idea for us. So we touch the other generated file so it is mopre recent
> than the script.
> This is still not sufficient, because the patched file also has a
> dependency on the generated file, so we need to touch as well.
> Fixes:
> - https://bugs.buildroot.org/show_bug.cgi?id=12946
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> [yann.morin.1998 at free.fr:
> - keep the hunk about patching gentpl.py
> - make it a git-formatted patch
> - add the touch
> - drastically expand the commit log
> ]
> Signed-off-by: Yann E. MORIN <yann.morin.1998 at free.fr>
> ---
> Changes v3 -> v4:
> - changes by Yann as identified in commit log and bundled patch
Committed to 2020.02.x and 2020.05.x, thanks.
--
Bye, Peter Korsgaard
More information about the buildroot
mailing list