[MacPorts] #37115: gcc43 produces on PPC Mac OS X 10.4.11, Tiger, an error with /opt/local/include/X11/Xlib.h
MacPorts
noreply at macports.org
Fri Nov 23 14:47:26 PST 2012
#37115: gcc43 produces on PPC Mac OS X 10.4.11, Tiger, an error with
/opt/local/include/X11/Xlib.h
-----------------------------+--------------------------------
Reporter: Peter_Dyballa@… | Owner: macports-tickets@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.1.2
Keywords: | Port: gcc43
-----------------------------+--------------------------------
The invocation is:
{{{
gcc-mp-4.3 -std=gnu99 -o xaw3d -I/opt/local/include -g -ggdb3 -H -pipe
-fPIC -fno-common -Os -mcpu=7450 -mtune=7450 -maltivec -faltivec
-mabi=altivec -I/opt/local/include/ImageMagick -L/opt/local/lib -v -Wl,-v
-Wl,-bind_at_load -Wl,-t xaw3d.c -lgnutls -lMagickWand -lMagickCore -lX11
-lpthread -mwarn-altivec-long
}}}
according to what the configure script uses. The error is this:
{{{
Apple Inc version cctools-806, GNU assembler version 1.38
Compiler executable checksum: 23c71723296e01b69e431a6dc6818a24
. /opt/local/include/X11/Intrinsic.h
.. /opt/local/include/X11/Xlib.h
... /usr/include/sys/types.h
.... /usr/include/sys/appleapiopts.h
.... /usr/include/sys/cdefs.h
.... /usr/include/machine/types.h
..... /usr/include/ppc/types.h
...... /usr/include/ppc/_types.h
.... /usr/include/sys/_types.h
..... /usr/include/machine/_types.h
.... /usr/include/machine/endian.h
..... /usr/include/ppc/endian.h
...... /usr/include/sys/_endian.h
....... /usr/include/stdint.h
....... /usr/include/libkern/OSByteOrder.h
........ /usr/include/libkern/ppc/OSByteOrder.h
... /opt/local/include/X11/X.h
... /opt/local/include/X11/Xfuncproto.h
... /opt/local/include/X11/Xosdefs.h
... /opt/local/lib/gcc43/gcc/ppc-apple-darwin8/4.3.6/include/stddef.h
In file included from /opt/local/include/X11/Intrinsic.h:53,
from xaw3d.c:78:
/opt/local/include/X11/Xlib.h:419: error: duplicate 'unsigned'
/opt/local/include/X11/Xlib.h:419: error: both 'long' and 'short' in
declaration specifiers
.. /opt/local/include/X11/Xutil.h
... /opt/local/include/X11/keysym.h
.... /opt/local/include/X11/keysymdef.h
.. /opt/local/include/X11/Xresource.h
.. /usr/include/string.h
... /usr/include/_types.h
.. /opt/local/lib/gcc43/gcc/ppc-apple-darwin8/4.3.6/include/stddef.h
.. /opt/local/include/X11/Core.h
.. /opt/local/include/X11/Composite.h
.. /opt/local/include/X11/Constraint.h
.. /opt/local/include/X11/Object.h
.. /opt/local/include/X11/RectObj.h
. /opt/local/include/X11/Xaw3d/Simple.h
.. /opt/local/include/X11/Xaw3d/Xaw3dP.h
... /opt/local/include/X11/IntrinsicP.h
.... /opt/local/include/X11/CoreP.h
.... /opt/local/include/X11/CompositeP.h
.... /opt/local/include/X11/ConstrainP.h
.... /opt/local/include/X11/ObjectP.h
.... /opt/local/include/X11/RectObjP.h
.. /opt/local/include/X11/Xmu/Converters.h
Multiple include guards may be useful for:
/opt/local/include/X11/keysym.h
/opt/local/include/X11/keysymdef.h
Exit 1
}}}
The code in X11/xlib.h is:
{{{
415 /*
416 * Data structure used by color operations
417 */
418 typedef struct {
419 unsigned long pixel;
420 unsigned short red, green, blue;
421 char flags; /* do_red, do_green, do_blue */
422 char pad;
423 } XColor;
}}}
being expanded to:
{{{
typedef struct {
unsigned long __attribute__((altivec(pixel__))) unsigned short;
unsigned short red, green, blue;
char flags;
char pad;
} XColor;
}}}
The reason for this is this built-in rule:
{{{
#define _ARCH_PPC 1
#define _ARCH_PPCGR 1
#define __ALTIVEC__ 1
#define __VEC__ 10206
#define __vector __attribute__((altivec(vector__)))
#define __pixel __attribute__((altivec(pixel__))) unsigned short
#define __bool __attribute__((altivec(bool__))) unsigned
}}}
Isn't it pretty silly to assume that a pixel will always have 16 bit?
These 16 bit would be OK for each colour component and the alpha channel
for transparency…
--
Ticket URL: <https://trac.macports.org/ticket/37115>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list