Reading peters note below, it looks like it's not going to work without a ton of tinkering.

Yes, sorry about that. As I say, I think I got it working, but I didn't start from those 2.2.14 sources. I had to patch it up to 2.2.17, resolve all the conflicts with the -empeg changes, and then commence on eliminating all the x86 structure size assumptions from its headers (which incidentally made the on-disk format incompatible with x86 2.2 ReiserFS).

For C portability voyeurs, the issue is that ReiserFS assumed that, given struct foo { short x; int y; }, then sizeof(struct foo) is 6. On ARM, whether with GCC or Norcroft, it's 8. You can make it 6 by packing the structure, but then you can't read y with a word load because it isn't aligned. Plus ReiserFS's disc structure packs these things after filenames, the ends of which are byte-aligned but not word-aligned. This is admirably summarised by Drakino's phrase "insanely hard". It took a whole week. Mind you, Hans Reiser wanted $50,000 for the job, which is somewhat more than my weekly salary.

Going to 2.4, in which Reiser et al. had already made similar changes for DEC Alpha compatibility, made life a lot simpler.

Peter