sys-block/silo fails to emerge with linux-headers-2.6.19.2-r1 because it doesn't install ufs header files which silo uses to support solaris booting. Snip: sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -c fs/ufs.c -o fs/ufs.o sparc-unknown-linux-gnu-gcc -Os -Wall -I. -I../include -fomit-frame-pointer -fno-strict-aliasing -DSMALL_RELOC=0x280000 -DLARGE_RELOC=0x380000 -c mul.S -o mul.o fs/ufs.c:36:26: error: linux/ufs_fs.h: No such file or directory fs/ufs.c: In function ‘ufs_read_super’: fs/ufs.c:101: error: ‘UFS_SBLOCK’ undeclared (first use in this function) fs/ufs.c:101: error: (Each undeclared identifier is reported only once fs/ufs.c:101: error: for each function it appears in.) fs/ufs.c:103: error: dereferencing pointer to incomplete type fs/ufs.c:103: error: ‘UFS_MAGIC’ undeclared (first use in this function) fs/ufs.c:105: error: dereferencing pointer to incomplete type fs/ufs.c:109: error: dereferencing pointer to incomplete type fs/ufs.c:109: error: ‘UFS_BSIZE’ undeclared (first use in this function) fs/ufs.c:111: error: dereferencing pointer to incomplete type fs/ufs.c:111: error: ‘UFS_FSIZE’ undeclared (first use in this function) fs/ufs.c:113: error: dereferencing pointer to incomplete type fs/ufs.c: At top level: fs/ufs.c:117: warning: ‘struct ufs_inode’ declared inside parameter list fs/ufs.c:117: warning: its scope is only this definition or declaration, which is probably not what you want fs/ufs.c: In function ‘ufs_read_inode’: fs/ufs.c:123: error: dereferencing pointer to incomplete type fs/ufs.c:123: error: dereferencing pointer to incomplete type fs/ufs.c:128: error: dereferencing pointer to incomplete type fs/ufs.c:128: error: dereferencing pointer to incomplete type fs/ufs.c:128: error: dereferencing pointer to incomplete type fs/ufs.c:128: error: dereferencing pointer to incomplete type fs/ufs.c:128: error: dereferencing pointer to incomplete type fs/ufs.c:128: error: dereferencing pointer to incomplete type fs/ufs.c:128: error: dereferencing pointer to incomplete type fs/ufs.c:128: error: dereferencing pointer to incomplete type fs/ufs.c:128: error: dereferencing pointer to incomplete type fs/ufs.c:134: error: dereferencing pointer to incomplete type fs/ufs.c:134: error: dereferencing pointer to incomplete type fs/ufs.c:135: error: dereferencing pointer to incomplete type fs/ufs.c:135: error: dereferencing pointer to incomplete type fs/ufs.c: In function ‘block_bmap’: fs/ufs.c:143: error: dereferencing pointer to incomplete type fs/ufs.c:147: error: dereferencing pointer to incomplete type fs/ufs.c:149: error: dereferencing pointer to incomplete type fs/ufs.c:151: error: dereferencing pointer to incomplete type fs/ufs.c: At top level: fs/ufs.c:157: warning: ‘struct ufs_inode’ declared inside parameter list fs/ufs.c: In function ‘ufs_bmap’: fs/ufs.c:161: error: dereferencing pointer to incomplete type fs/ufs.c:162: error: dereferencing pointer to incomplete type fs/ufs.c:163: error: dereferencing pointer to incomplete type fs/ufs.c:163: error: dereferencing pointer to incomplete type fs/ufs.c:164: error: dereferencing pointer to incomplete type fs/ufs.c:164: error: dereferencing pointer to incomplete type fs/ufs.c:164: error: dereferencing pointer to incomplete type fs/ufs.c:167: error: ‘UFS_NDADDR’ undeclared (first use in this function) fs/ufs.c:172: error: dereferencing pointer to incomplete type fs/ufs.c:175: error: dereferencing pointer to incomplete type fs/ufs.c:182: error: dereferencing pointer to incomplete type fs/ufs.c:189: error: dereferencing pointer to incomplete type fs/ufs.c: At top level: fs/ufs.c:198: warning: ‘struct ufs_direct’ declared inside parameter list fs/ufs.c: In function ‘ufs_match’: fs/ufs.c:200: error: ‘UFS_MAXNAMLEN’ undeclared (first use in this function) fs/ufs.c:201: error: dereferencing pointer to incomplete type fs/ufs.c:201: error: dereferencing pointer to incomplete type fs/ufs.c:201: error: dereferencing pointer to incomplete type fs/ufs.c:203: error: dereferencing pointer to incomplete type fs/ufs.c:204: error: dereferencing pointer to incomplete type fs/ufs.c: At top level: fs/ufs.c:208: warning: ‘struct ufs_inode’ declared inside parameter list fs/ufs.c: In function ‘ufs_lookup’: fs/ufs.c:215: error: dereferencing pointer to incomplete type fs/ufs.c:216: warning: passing argument 3 of ‘ufs_bmap’ from incompatible pointer type fs/ufs.c:218: error: dereferencing pointer to incomplete type fs/ufs.c:223: error: dereferencing pointer to incomplete type fs/ufs.c:223: error: dereferencing pointer to incomplete type fs/ufs.c:224: error: dereferencing pointer to incomplete type fs/ufs.c:224: error: dereferencing pointer to incomplete type fs/ufs.c:225: error: dereferencing pointer to incomplete type fs/ufs.c:225: warning: passing argument 3 of ‘ufs_match’ from incompatible pointer type fs/ufs.c:226: error: dereferencing pointer to incomplete type fs/ufs.c:229: error: dereferencing pointer to incomplete type fs/ufs.c: At top level: fs/ufs.c:240: warning: ‘struct ufs_inode’ declared inside parameter list fs/ufs.c: In function ‘ufs_follow_link’: fs/ufs.c:247: error: dereferencing pointer to incomplete type fs/ufs.c:255: error: dereferencing pointer to incomplete type fs/ufs.c:257: warning: passing argument 3 of ‘ufs_bmap’ from incompatible pointer type fs/ufs.c:266: error: dereferencing pointer to incomplete type fs/ufs.c: In function ‘dir_namei’: fs/ufs.c:280: error: storage size of ‘ub’ isn’t known fs/ufs.c:280: warning: unused variable ‘ub’ fs/ufs.c: In function ‘open_namei’: fs/ufs.c:309: error: storage size of ‘ub’ isn’t known fs/ufs.c:309: warning: unused variable ‘ub’ fs/ufs.c: In function ‘ufs_block_iterate’: fs/ufs.c:338: error: storage size of ‘ub’ isn’t known fs/ufs.c:345: error: dereferencing pointer to incomplete type fs/ufs.c:345: error: dereferencing pointer to incomplete type fs/ufs.c:338: warning: unused variable ‘ub’ fs/ufs.c: In function ‘open_ufs’: fs/ufs.c:418: error: ‘UFS_ROOTINO’ undeclared (first use in this function) fs/ufs.c: In function ‘ino_size_ufs’: fs/ufs.c:426: error: storage size of ‘ui’ isn’t known fs/ufs.c:426: warning: unused variable ‘ui’ fs/ufs.c:434: warning: control reaches end of non-void function make[1]: *** [fs/ufs.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `/var/tmp/portage/silo-1.4.13/work/silo-1.4.13/second' make: *** [all] Error 1
Created attachment 107278 [details, diff] linux-export-ufs-fs-header.patch
Works like a charm with 2.6.20 headers, please apply.
as noted on irc, this is merely a workaround until silo is fixed so you want me to apply the workaround and leave the bug open until you fix silo ?
Never mind, a compatible header is shipped in silo itself, however it's never used, i've patched the ebuild to do so. Is ufs_fs.h supposed to be gone from standard headers? So as to report (or not) this upstream.
there's two parts to the patch ... first, exporting ufs_fs.h to userspace which i personally think is OK ... the second part, exporting the old large struct is not ok and requires updates to the silo code i can handle forwarding the ufs_fs.h bit to lkml