Tuesday, January 22, 2013

Gentoo on RPi -- errors compiling Mesa update

In the version of Gentoo installed from here, the installed version of mesa is 8.0.4.
This has now been superseded by mesa-9.0.1 

However, when I tried to emerge mesa, the install stopped (after about three hours on my little RPi even though I had the CPU overclocked to 850 MHz) after three hours with this error:



In file included from /usr/include/xorg/xf86Crtc.h:26:0,                 from xorg_tracker.h:42,                 from xorg_exa.h:4,                 from xorg_composite.h:4,                 from xorg_composite.c:1:/usr/include/xorg/edid.h:619:6: warning: declaration does not declare anythingIn file included from /usr/include/xorg/exa.h:39:0,                 from xorg_tracker.h:43,                 from xorg_exa.h:4,                 from xorg_composite.h:4,                 from xorg_composite.c:1:/usr/include/xorg/fb.h:95:2: error: #error "GLYPHPADBYTES must be 4"
I had simultaneously updated mesa in Gentoo on my (x86) Desktop without any problem whatsoever.
So, perhaps the armv6j architecture of the RPi was the source of the problem.

I posted my problem to the Gentoo forum and got the fix I wanted. 


As is seen from the thread, the fix involved opening /usr/include/xorg/servermd.h in a text editor (I used leafpad as root) and change

#ifdef __arm32__ 
#define IMAGE_BYTE_ORDER        LSBFirst 
 

#define BITMAP_BIT_ORDER        LSBFirst 

#define GLYPHPADBYTES           4 
#endif                          /* __arm32__ */ 
to 


 #define IMAGE_BYTE_ORDER        LSBFirst 

#define BITMAP_BIT_ORDER        LSBFirst 

#define GLYPHPADBYTES           4 
In other words, just take out the #ifdef and #endif lines.
Now, the compile went perfectly.

As I indicated in the thread, I don't fully understand why this very small change made all the difference.
It really does seem like a bug in the armv6j incarnation of Gentoo.

All thanks to limn for coming up with this.



No comments:

Post a Comment