]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Makefile: Only look for @MARKER@ at the start of a line when generating libgrub_a_ini...
authorGlenn Washburn <development@efficientek.com>
Thu, 13 Jan 2022 03:40:21 +0000 (21:40 -0600)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 8 Feb 2022 15:06:49 +0000 (16:06 +0100)
Under certain conditions libgrub.pp gets generated with a such that it
contains a bunch of CPP defines, at least one of which contains "@MARKER@".
This line should not be used when generating libgrub_a_init.lst, otherwise
we get compiler errors like:

  libgrub_a_init.c:22:18: error: stray ‘#’ in program
     22 | extern void grub_#define_init (void);
        |                  ^
  libgrub_a_init.c:22:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘define_init’
     22 | extern void grub_#define_init (void);
        |                   ^~~~~~~~~~~
  libgrub_a_init.c:23:18: error: stray ‘#’ in program
     23 | extern void grub_#define_fini (void);
        |                  ^
  libgrub_a_init.c:23:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘define_fini’
     23 | extern void grub_#define_fini (void);
        |                   ^~~~~~~~~~~
  ...

When generating libgrub_a_init.lst only lines starting with "@MARKER@"
are desired.

Signed-off-by: Glenn Washburn <development@efficientek.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
Makefile.am

index bf9c1ba64c9575484bbd647cad722020b0e2d556..0946bf75ff54a65da43b7081cc799695b38ec91a 100644 (file)
@@ -43,7 +43,7 @@ libgrub.pp: config-util.h grub_script.tab.h grub_script.yy.h $(libgrubmods_a_SOU
 CLEANFILES += libgrub.pp
 
 libgrub_a_init.lst: libgrub.pp
-       cat $< | grep '@MARKER@' | sed 's/@MARKER@\(.*\)@/\1/g' | sort -u > $@ || (rm -f $@; exit 1)
+       cat $< | grep '^@MARKER@' | sed 's/@MARKER@\(.*\)@/\1/g' | sort -u > $@ || (rm -f $@; exit 1)
 CLEANFILES += libgrub_a_init.lst
 
 libgrub_a_init.c: libgrub_a_init.lst $(top_srcdir)/geninit.sh
@@ -57,7 +57,7 @@ grub_fstest.pp: $(grub_fstest_SOURCES)
 CLEANFILES += grub_fstest.pp
 
 grub_fstest_init.lst: libgrub.pp grub_fstest.pp
-       cat $^ | grep '@MARKER@' | sed 's/@MARKER@\(.*\)@/\1/g' | sort -u > $@ || (rm -f $@; exit 1)
+       cat $^ | grep '^@MARKER@' | sed 's/@MARKER@\(.*\)@/\1/g' | sort -u > $@ || (rm -f $@; exit 1)
 CLEANFILES += grub_fstest_init.lst
 
 grub_fstest_init.c: grub_fstest_init.lst $(top_srcdir)/geninit.sh