[SeaBIOS] Re: recent ld built for x86_64 fails to accept 16bit code as input (seabios build)
Maciej W. Rozycki
macro@linux-mips.org
Sun Jul 12 02:38:05 GMT 2020
On Sat, 11 Jul 2020, Kevin O'Connor wrote:
> The main limitation to simple ".incbin" usage is that SeaBIOS needs to
> put a variety of 16bit sections along with 32bit "segmented" sections
> at certain fixed memory locations. So, there is no one simple .incbin
> directive that would replace the final linking step. It's certainly
> possible to come up with an alternative linking mechanism (or to even
> manually assemble the final image), but I suspect the alternatives
> will come with further complexity. Certainly something to look at
> though.
The point is with `.incbin' you can effectively convert any piece of data
back into the relocatable format without having to resort to undocumented
hacks or plain bugs. And you have further control over this data by, say,
putting it into an individual section, or defining symbols to delimit the
beginning and/or the end. Then you can use the resulting object file as
an ordinary input to the linker just as with your current recipe, and use
a linker script to lay out individual inputs however you wish, including
at fixed memory locations.
Maciej
More information about the Binutils
mailing list