squashfs, gentoo, squashfs-tools, and gcc

To start, this is part of my environment.

$ gcc-config -l
[1] i686-pc-linux-gnu-4.1.2
[2] i686-pc-linux-gnu-4.3.4 *

I was running into issues trying to unsquashfs one of my ISOs.

When I built it using gcc-4.1.2 (my default on my development workstation), I get this:

$ unsquash -ls my.squash
Parallel unsquashfs: Using 2 processors
FATAL ERROR aborting: failed to read fragment table

After some messing around on multiple systems, I found two things:

  1. That enabling SQUASHFS_TRACE renders it useless as the same error manifests itself on "working" versions after enabled.
  2. That gcc-4.1.2 creates some buggy code, as gcc-4.3.4 creates a command that works.

After build with gcc-4.3.4:

$ unsquashfs -ls my.squash
Parallel unsquashfs: Using 2 processors
1 inodes (4930 blocks) to write

squashfs-root
squashfs-root/my.iso

So. If you're having a similar issue, then try rebuilding the source with a different compiler.

Comments

forgot to add

I recompiled squashfs tools several times on the offending box and it was using gcc-4.1.2. Only after I compiled it on another box using gcc-4.3.4 and got a working copy did I begin to suspect a compiler problem.

It might not be a problem specific to gcc-4.1.2, and it quite possible is my environment.

Yet, I had three machines to test this on, and two were borked, and one worked. The one that worked was built with gcc-4.3.4

Recent comments