RP: JWM 579

01micko reported that JWM in Squeezed Arm Puppy on the RP has a problem with the tray -- applets slow to update. He compiled the latest, version 579, and that fixed the problem.

The problem though, is probably not the version. I compiled version 574 in the Gentoo build for the RP. I have found that some apps compiled in Gentoo misbehave in sap6.

I have compiled JWM 579 in sap6, and uploaded the PET (79KB):
http://distro.ibiblio.org/quirky/arm/pet_packages-armv6/jwm2-579-sap6.pet


Posted on 23 Jul 2012, 22:01


Comments:

Posted on 24 Jul 2012, 2:36 by WB7ODYFred
Structure Alignment in ARMv6
__attribute__ ((aligned(4)))

I was reading about misalignment of data structures when porting from Fedora Core 13 to RedSleeve ARM Linux. Sharing with you and others who are porting C software from x86 to ARM.

http://lecs.cs.ucla.edu/wiki/index.php/XScale_alignment

https://bugzilla.redhat.com/show_bug.cgi?id=680090
Description of problem:
/usr/sbin/filefrag is throwing alignment errors on the ARM platform.

[COMMENT 6]Gordan Bobic 2011-02-24 10:51:24 EST

Yup, that fixes it. char buf[] wasn't aligned.

I couldn't help but notice that char buf[] type constructs are used all over the place. All char[] arrays that are getting structs cast into them are going to have the same problem.

So the solution (short of somehow avoiding casting structs around) would be to make sure all char[] buffers are declared with __attribute__ ((aligned(4))).

More information on the general nature of the problem is here (it refers to XScale but applies to all ARMs except those based on Cortex A8/A9):
http://lecs.cs.ucla.edu/wiki/index.php/XScale_alignment

Not to mention that force-aligning everything to 4 bytes isn't any more portable, either. On a 64-bit architecture you'd still get a misalignment. It may not be obvious there is a problem (e.g. x86 and ARM Cortex A8 and later have transparent misalignment fixup in hardware), but that doesn't mean there isn't a problem.

To leverage SIMD, you'd typically need it aligned to 16-bytes, but that's a different story.

Eric Sandeen 2011-02-24 14:06:00 EST

Yeah, I've had to fix up some arm alignment stuff in the past ... sprinkling __aligned__ attributes around is pretty ugly. :( I'm not sure what a nice way to fix this might be...

ps. delete this comment if out of place or is too long. fred



Posted on 24 Jul 2012, 9:33 by BarryK
Re misalign
I still grumble to myself that we are being forced to compile for armv6.

Anyway, I don't have to. After releasing Squeezed Arm Puppy beta1 for the RP, I will move back to the Mele A1000 and soon-to-arrive ODROID-X. I will then compile for Cortex-A8-with-neon-and-hf.

Thanks for the info.



Posted on 24 Jul 2012, 13:46 by 01micko
Not JWM
Hi Barry,

It's not JWM BArry, it's the network_tray binary. I just installed your JWM, no different, I installed mine, no different, recompiled network_tray and the bin i s 1 k larger but works. :)