[syslinux] [PATCH 1/1] core: Add a check at ldlinux.sys build time.
Raphael S Carvalho
raphael.scarv at gmail.com
Fri Jul 26 13:36:41 PDT 2013
On Fri, Jul 26, 2013 at 4:58 PM, H. Peter Anvin <hpa at zytor.com> wrote:
> On 07/26/2013 08:10 AM, Matt Fleming wrote:
> > On Wed, 24 Jul, at 08:05:16AM, Raphael S.Carvalho wrote:
> >> Check if ldlinux.sys is larger than 64k at build time.
> >>
> >> Signed-off-by: Raphael S.Carvalho <raphael.scarv at gmail.com>
> >> ---
> >> core/Makefile | 5 +++--
> >> core/ldlinux_limit.pl | 31 +++++++++++++++++++++++++++++++
> >> 2 files changed, 34 insertions(+), 2 deletions(-)
> >> create mode 100644 core/ldlinux_limit.pl
> >
> > Thanks, this looks good, though the patch was whitespace damaged. I also
> > expanded on the commit message to explain *why* 64K is the limit we use.
> >
> > I'll push this out once I've shrunk ldlinux.sys down to size.
> >
>
> The test is wrong: we need it to fit into 64K *including* the boot
> sector and two copies of the ADV. Currently the ADV is 512 bytes, but
> we probably need to make it 4K.
>
> -hpa
>
>
Bootsector is installed into the 0-512 range, whereas 2 copies of ADV into
(65536 - 2 * ADV_SIZE).
Then basically ldlinux.sys must fit between the bootsector and two copies
of ADV whose size may vary.
The range 0-64k is laid out something like this, right?!
[0](bootsector)[512](ldlinux.sys)[65536 - 2 * ADV_SIZE](2 copies of
ADV)[65536]
If so, the size of ldlinux.sys can be at most: 65536 - 2 * ADV_SIZE - 512.
If ADV_SIZE change from 512 to 4k, it will be difficult to install
ldlinux.sys at the 0-64k range of a BTRFS image.
Regards,
Raphael S. Carvalho.
More information about the Syslinux
mailing list