Re: New GNU Make regression? Why some Makefile.inc's romstage-options get interpreted as Makefile targets?

Mike Banon <[email protected]>
Newsgroups gmane.linux.bios
Message-ID <CAK7947=ybL6CrWKirdxUipv4Kea_iFgeZ0rU=+W-maeMo=Wyzg@mail.gmail.com>
Resolved: it turned out that this issue is indeed new GNU Make
-related and could be fixed by applying [1] commit to the older git
revisions. There's also a [2] commit nearby that also mentions GNU
Make, but I didn't need it yet ;-) Below I am also sharing a list
([3]-[7]) of other changes that I have to do sometimes, might be
useful for anyone else digging out this old stuff

[1]  "Makefile.inc: Adapt $(spc) definition"
(0f6f70c3942c152c512b1aa51b6f6079a05e003b)
https://github.com/coreboot/coreboot/commit/0f6f70c3942c152c512b1aa51b6f6079a05e003b

[2] "Makefile.inc: Use `define` for cbfs-files-processor-defconfig"
(1c08a9a9c4986f2b3c47322f041e289121536dc0)
https://github.com/coreboot/coreboot/commit/1c08a9a9c4986f2b3c47322f041e289121536dc0

[3] GCC 8.1.0 build errors like "'isl_id_free' was not declared in this scope"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86724#c0
(add  #include <isl/id.h> and #include <isl/space.h> to
./util/crossgcc/gcc-8.1.0/gcc/graphite.h)

[4] Binutils 2.30 - ‘string’ in namespace ‘std’ does not name a type
https://sourceware.org/legacy-ml/binutils/2019-06/msg00072.html
(add #include <string>)

[5] IASL 20190703 - multiple definition of `AslCompilerlval'/'LexBuffer'
https://github.com/illumos/illumos-gate/commit/830ec39e9a3d673fcf5865875006ab471d56b85b
("extern YYSTYPE AslCompilerlval;" at
./util/crossgcc/acpica-unix2-20190108/source/compiler/aslcompiler.l ;
"static YY_BUFFER_STATE LexBuffer;" at dtparser.l and prparser.l)

[6] ./coreboot/util/cbfstool/common.c - error: '%s' directive argument
is null [-Werror=format-overflow=]
- is fixed by changing
printf(" %s%c", filetypes[i].name, (i==(number-1))?'\n':',');
to
printf(" %s%c", filetypes[i].name ? filetypes[i].name : "null",
(i==(number-1))?'\n':',');

[7] ./util/crossgcc/xgcc/bin/i386-elf-ld.bfd Error: unable to
disambiguate: -nostartfiles (did you mean --nostartfiles ?)
- fixed by "Makefile.inc: Replace linker flag -nostartfiles with
--nmagic" (at LDFLAGS_common)
https://github.com/coreboot/coreboot/commit/b90aba43c1405d3d2cb7cba05e68906e979dcda3

On Wed, Jul 30, 2025 at 10:00 AM Mike Banon <[email protected]> wrote:
>
> While trying to build the ancient (<=4.11) versions of coreboot for
> research purposes, I get
>
>     CC         romstage/superio/winbond/common/early_init.o
>     LINK       cbfs/fallback/romstage.debug
>     OBJCOPY    cbfs/fallback/romstage.elf
> make: *** No rule to make target '".car.data"', needed by
> 'build/coreboot.pre'.  Stop.
>
> because of the following Makefile.inc line:
>
> $(CONFIG_CBFS_PREFIX)/romstage-options := -S ".car.data"
>
> If I comment out this line, I get "No rule to make target '-P'" because of
>
> $(CONFIG_CBFS_PREFIX)/romstage-options += -P $(CONFIG_XIP_ROM_SIZE)
>
> If I comment out this too, everything goes well until the final
> coreboot.rom assembly stage, where a cbfstool prints "E: Encountered
> illegal degenerate region name in -r list" and deletes my coreboot.rom
>
> However, " $(CONFIG_CBFS_PREFIX)/romstage-options += --xip " is fine
> and doesn't cause any problems...
>
> Please tell, why these errors are happening now and not before? My
> host's GNU make --version is 4.4.1, but I tried everything down to 4.3
> and still can't properly get rid of these errors (unfortunately can't
> use 4.2.1 because it gives a segmentation fault on new Linux)
> --
> Best regards, Mike Banon
> Open Source Community Manager of 3mdeb - https://3mdeb.com/



-- 
Best regards, Mike Banon
Open Source Community Manager of 3mdeb - https://3mdeb.com/
_______________________________________________
coreboot mailing list -- [email protected]
To unsubscribe send an email to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.