[syslinux] Rock Ridge

Thomas Schmitt scdbackup at gmx.net
Mon Apr 1 10:00:31 PDT 2013


Hi,

> Implicit unaligned access is also an issue.

iso9660.c accesses 32 bit integers at lesewise unaligned even
addresses relative to a cache tile start.
In iso_get_inode() it does:
    inode->next_extent.pstart = (sector_t)de->extent_le << blktosec;
    inode->next_extent.len    = (sector_t)inode->blocks << blktosec;

A byte shifter like mine has the disadvantage of copying data,
but the advantage of adapting itself automatically to any byte-sex
or alignment constraints (if only the compiler does it right).

The temptation to make use of the integer size waste in ISO 9660
should be rejected.


> > [case sensitivity]
> It is probably worth highlighting, though, since it may affect some
> people's scripts.

So what to offer them as migration aid ?
(I don't want to get known as the guy who smartassedly breaks
 other peoples' configurations.)

What is the usual syslinux policy in such a case ?
A compile time option to disable Rock Ridge ?
E.g. in iso9660.c:

+ #ifdef DISABLE_ROCK_RIDGE
+     dprintf("Rock Ridge detection disabled at compile time.\n");
+     sbi->susp_skip = sbi->do_rr = 0;
+ #else
      /* Check for SP and ER in the first directory record of the root directory.
         Set sbi->susp_skip and enable sbi->do_rr as appropriate.
      */
      susp_rr_check_signatures(fs, 1);
+ #endif


------------------------------------------------------------------
Errata:

I wrote:
> > >         iter->next_lba = *((block_t *) u_entry + 4);

... and forgot an important bracket pair:

         iter->next_lba = *((block_t *) (u_entry + 4));

(Just for the records. Don't surrender to temptation.)

------------------------------------------------------------------

If anybody creates a bootable ISO image with Rock Ridge enabled in
isolinux, then i would be interested to learn about it.

------------------------------------------------------------------


Have a nice day :)

Thomas



More information about the Syslinux mailing list