[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