From: Glenn Washburn Date: Thu, 13 Jan 2022 03:40:21 +0000 (-0600) Subject: Makefile: Only look for @MARKER@ at the start of a line when generating libgrub_a_ini... X-Git-Tag: grub-2.12-rc1~494 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a0548c140ca52323899a52cdd22279446a663d67;p=thirdparty%2Fgrub.git Makefile: Only look for @MARKER@ at the start of a line when generating libgrub_a_init.lst 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 Reviewed-by: Daniel Kiper --- diff --git a/Makefile.am b/Makefile.am index bf9c1ba64..0946bf75f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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