Ady Ady
2018-Nov-29 16:53 UTC
[syslinux] Discard .note.gnu.property section to fix build failure (patch)
> There's 0 need to build MBRs for > EFIAt least gptmbr.bin might come to mind (after all, GPT is part of the UEFI specs). Isohybrid with UEFI options perhaps too?> and I'm looking at why utils/ depends on mbr/isohybrid(.pl) and mkdiskimage come to mind here? I'm not saying for certain these are the reasons for such dependencies, but they might (and perhaps there might be more?). Regards, Ady.
Thomas Schmitt
2018-Nov-29 18:00 UTC
[syslinux] Discard .note.gnu.property section to fix build failure (patch)
Hi, Gene Cumm wrote:> > There's 0 need to build MBRs for EFIAdy wrote:> At least gptmbr.bin might come to mindIt's source code looks like a BIOS MBR program which shall search the "active" partition in GPT rather than in the MBR partition table. See comments about "EBIOS" detection and "CHS" addresses in https://github.com/geneC/syslinux/blob/master/mbr/gptmbr.S "Active" partitn would be the one which has bit 2 set in the Attributes field (byte offset 48 to 55) of its GPT entry: "Legacy BIOS Bootable". So indeed, EFI on hard disk does not need more of an MBR than the magic number at bytes 510, 511 and an MBR partition entry of type 0xEE or 0xEF.> > and I'm looking at why utils/ depends on mbr/> isohybrid(.pl) and mkdiskimage come to mind here?The isohybrid programs each contain six copies of MBR binaries. See variable ISOHDPFX in https://github.com/geneC/syslinux/blob/master/utils/Makefile The same file has mkdiskimage including a hex version of mbr/mbr.bin. Have a nice day :) Thomas
Ady Ady
2018-Nov-30 10:20 UTC
[syslinux] Discard .note.gnu.property section to fix build failure (patch)
> It's source code looks like a BIOS MBR program which shall search > the "active" partition in GPT rather than in the MBR partition table. > See comments about "EBIOS" detection and "CHS" addresses in > https://github.com/geneC/syslinux/blob/master/mbr/gptmbr.S > > "Active" partitn would be the one which has bit 2 set in the Attributes > field (byte offset 48 to 55) of its GPT entry: "Legacy BIOS Bootable".That's the main goal of gptmbr.bin: to be able to boot a GPT scheme in _BIOS_ mode.> So indeed, EFI on hard disk does not need more of an MBR than the magic > number at bytes 510, 511 and an MBR partition entry of type 0xEE or > 0xEF.Well, for booting in UEFI mode, the (0xEE and/or 0xEF and/or any other) "legacy" partition(s) in the so-called "msdos partition table scheme" (aka "protective MBR partition table) in the first sector is/are not really essential but rather a UEFI "feature"; its main objective is to prevent, from a potential BIOS-mode boot (or from some GPT-unaware tool), screwing up the GPT structures. IOW, the "Protective MBR partition table" (and its "constraints") for UEFI is not really a requirement for booting in UEFI mode itself, and it is _not_ an "impartial standard" within the UEFI specs.> > > and I'm looking at why utils/ depends on mbr/ > > > isohybrid(.pl) and mkdiskimage come to mind here? > > The isohybrid programs each contain six copies of MBR binaries. > See variable ISOHDPFX in > https://github.com/geneC/syslinux/blob/master/utils/Makefile > > The same file has mkdiskimage including a hex version of mbr/mbr.bin.As it is set right now, on one hand the "*mbr*.bin" files are repeated 3 times (for bios, efi32, efi64). OTOH, when someone wants to build only one of the platforms (say, efi64), the files are still provided/generated. If these "*mbr*.bin" files were not generated when building the efi* platforms, then: * it would mean less repetitions (less duplication) of files (and, I would guess, a faster build), * but it would also mean that someone _not_ building the bios platform would not have the *mbr*.bin files and then the bios platform would need to be built just for these files, in case they are needed (for whichever purpose). In a certain way, this situation would be similar (but not as bad) to how the Syslinux packages for Debian have been arranged for years now; e.g. the "syslinux-efi" package includes "syslinux.efi", but not "ldlinux.e{32,64}", so you also need to retrieve the whole (big) "syslinux-common" package just for the relevant "ldlinux.*" file (which is/are essential). The same goes for the "isolinux" package and for the "pxelinux" package. This makes no sense whatsoever for Debian users. Let's reduce redundancy and useless files in the official Syslinux archives, but not more than the minimum needed / recommended (which is, most probably, not completely objective). Just to be clear, I am not sure whether the "*mbr*.bin" files are worth building 3 times (or not), and I don't really know whether these files are the (only) reason for the dependencies we are talking about. Regards, Ady.
Maybe Matching Threads
- Discard .note.gnu.property section to fix build failure (patch)
- Discard .note.gnu.property section to fix build failure (patch)
- Discard .note.gnu.property section to fix build failure (patch)
- "isolinux.bin missing or corrupt" when booting USB flash drive in old PC
- Patch: make slightly more verbose versions of isohdp.x.S