Opened 16 years ago

Closed 15 years ago

#18812 closed defect (fixed)

xorg-server-devel: build fails in glx

Reported by: dbevans (David B. Evans) Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 1.8.0
Keywords: Cc: steven@…
Port: xorg-server-devel

Description

On OS X 10.4.11 ppc

Making all in glx
/bin/sh ../libtool --tag=CC   --mode=compile /usr/bin/gcc-4.0 -DHAVE_CONFIG_H -I. -I../include -I../hw/xfree86/os-support -I../hw/xfree86/os-support/bus -I../hw/xfree86/common -I../hw/xfree86/dri -I../hw/xfree86/dri2 -I../mi  -I/opt/local/include -I/usr/include -I/opt/macports/trunk/dports/x11/xorg-server-devel/files/include -DHAVE_DIX_CONFIG_H -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include/pixman-1   -I/opt/local/include   -I../include -I../include -I../Xext  -I../damageext -I../xfixes -I../Xi -I../mi -I../miext/shadow  -I../miext/damage -I../render -I../randr -I../fb -I/opt/local/include -I/opt/local/include -DXFree86Server  -O2 -DROOTLESS_WORKAROUND -DNO_ALLOCA -MT indirect_reqsize.lo -MD -MP -MF .deps/indirect_reqsize.Tpo -c -o indirect_reqsize.lo indirect_reqsize.c
 /usr/bin/gcc-4.0 -DHAVE_CONFIG_H -I. -I../include -I../hw/xfree86/os-support -I../hw/xfree86/os-support/bus -I../hw/xfree86/common -I../hw/xfree86/dri -I../hw/xfree86/dri2 -I../mi -I/opt/local/include -I/usr/include -I/opt/macports/trunk/dports/x11/xorg-server-devel/files/include -DHAVE_DIX_CONFIG_H -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include/pixman-1 -I/opt/local/include -I../include -I../include -I../Xext -I../damageext -I../xfixes -I../Xi -I../mi -I../miext/shadow -I../miext/damage -I../render -I../randr -I../fb -I/opt/local/include -I/opt/local/include -DXFree86Server -O2 -DROOTLESS_WORKAROUND -DNO_ALLOCA -MT indirect_reqsize.lo -MD -MP -MF .deps/indirect_reqsize.Tpo -c indirect_reqsize.c  -fno-common -DPIC -o .libs/indirect_reqsize.o
indirect_reqsize.c:808: error: conflicting types for '__glXFogivReqSize'
indirect_reqsize.h:46: error: previous declaration of '__glXFogivReqSize' was here
indirect_reqsize.c:809: error: conflicting types for '__glXLightivReqSize'
indirect_reqsize.h:48: error: previous declaration of '__glXLightivReqSize' was here
indirect_reqsize.c:810: error: conflicting types for '__glXLightModelivReqSize'
indirect_reqsize.h:50: error: previous declaration of '__glXLightModelivReqSize' was here
indirect_reqsize.c:811: error: conflicting types for '__glXMaterialivReqSize'
indirect_reqsize.h:52: error: previous declaration of '__glXMaterialivReqSize' was here
indirect_reqsize.c:812: error: conflicting types for '__glXTexParameterivReqSize'
indirect_reqsize.h:55: error: previous declaration of '__glXTexParameterivReqSize' was here
indirect_reqsize.c:813: error: conflicting types for '__glXTexEnvivReqSize'
indirect_reqsize.h:59: error: previous declaration of '__glXTexEnvivReqSize' was here
indirect_reqsize.c:814: error: conflicting types for '__glXTexGenivReqSize'
indirect_reqsize.h:62: error: previous declaration of '__glXTexGenivReqSize' was here
indirect_reqsize.c:815: error: conflicting types for '__glXPixelMapuivReqSize'
indirect_reqsize.h:68: error: previous declaration of '__glXPixelMapuivReqSize' was here
indirect_reqsize.c:816: error: conflicting types for '__glXColorTableParameterivReqSize'
indirect_reqsize.h:77: error: previous declaration of '__glXColorTableParameterivReqSize' was here
indirect_reqsize.c:817: error: conflicting types for '__glXConvolutionParameterivReqSize'
indirect_reqsize.h:82: error: previous declaration of '__glXConvolutionParameterivReqSize' was here
indirect_reqsize.c:818: error: conflicting types for '__glXCompressedTexSubImage1DARBReqSize'
indirect_reqsize.h:89: error: previous declaration of '__glXCompressedTexSubImage1DARBReqSize' was here
indirect_reqsize.c:819: error: conflicting types for '__glXCompressedTexSubImage2DARBReqSize'
indirect_reqsize.h:90: error: previous declaration of '__glXCompressedTexSubImage2DARBReqSize' was here
indirect_reqsize.c:820: error: conflicting types for '__glXLoadProgramNVReqSize'
indirect_reqsize.h:95: error: previous declaration of '__glXLoadProgramNVReqSize' was here
indirect_reqsize.c:821: error: conflicting types for '__glXRequestResidentProgramsNVReqSize'
indirect_reqsize.h:98: error: previous declaration of '__glXRequestResidentProgramsNVReqSize' was here
indirect_reqsize.c:822: error: conflicting types for '__glXVertexAttribs1fvNVReqSize'
indirect_reqsize.h:100: error: previous declaration of '__glXVertexAttribs1fvNVReqSize' was here
indirect_reqsize.c:823: error: conflicting types for '__glXVertexAttribs1svNVReqSize'
indirect_reqsize.h:101: error: previous declaration of '__glXVertexAttribs1svNVReqSize' was here
indirect_reqsize.c:824: error: conflicting types for '__glXVertexAttribs2fvNVReqSize'
indirect_reqsize.h:103: error: previous declaration of '__glXVertexAttribs2fvNVReqSize' was here
indirect_reqsize.c:825: error: conflicting types for '__glXVertexAttribs2svNVReqSize'
indirect_reqsize.h:104: error: previous declaration of '__glXVertexAttribs2svNVReqSize' was here
indirect_reqsize.c:826: error: conflicting types for '__glXVertexAttribs4fvNVReqSize'
indirect_reqsize.h:109: error: previous declaration of '__glXVertexAttribs4fvNVReqSize' was here
indirect_reqsize.c:827: error: conflicting types for '__glXVertexAttribs4svNVReqSize'
indirect_reqsize.h:110: error: previous declaration of '__glXVertexAttribs4svNVReqSize' was here
indirect_reqsize.c:828: error: conflicting types for '__glXVertexAttribs4ubvNVReqSize'
indirect_reqsize.h:111: error: previous declaration of '__glXVertexAttribs4ubvNVReqSize' was here
indirect_reqsize.c:829: error: conflicting types for '__glXPointParameterivNVReqSize'
indirect_reqsize.h:112: error: previous declaration of '__glXPointParameterivNVReqSize' was here
indirect_reqsize.c:830: error: conflicting types for '__glXProgramNamedParameter4dvNVReqSize'
indirect_reqsize.h:113: error: previous declaration of '__glXProgramNamedParameter4dvNVReqSize' was here
indirect_reqsize.c:831: error: conflicting types for '__glXDeleteFramebuffersEXTReqSize'
indirect_reqsize.h:115: error: previous declaration of '__glXDeleteFramebuffersEXTReqSize' was here
indirect_reqsize.c:832: error: conflicting types for '__glXDeleteRenderbuffersEXTReqSize'
indirect_reqsize.h:116: error: previous declaration of '__glXDeleteRenderbuffersEXTReqSize' was here
make[1]: *** [indirect_reqsize.lo] Error 1
make: *** [all-recursive] Error 1

Change History (13)

comment:1 Changed 16 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Ok, so like 808 in the c file:

ALIAS(Fogiv, Fogfv)

line 46 in the h file:

extern PURE HIDDEN int __glXFogivReqSize(const GLbyte *pc, Bool swap);

We have this for PURE and HIDDEN

#  if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__)
#    define HIDDEN  __attribute__((visibility("hidden")))
#  else
#    define HIDDEN
#  endif

#  if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
#    define PURE __attribute__((pure))
#  else
#    define PURE
#  endif

And for alias...

#ifdef HAVE_ALIAS
#  define ALIAS2(from,to) \
    GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap ) \
        __attribute__ ((alias( # to )));
#  define ALIAS(from,to) ALIAS2( from, __glX ## to ## ReqSize )
#else
#  define ALIAS(from,to) \
    GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap ) \
    { return __glX ## to ## ReqSize( pc, swap ); }
#endif

Can you tell me if you have HAVE_ALIAS defined in your include/dix-config.h file (in the worksrcpath)

This might just be a Tiger issue, too...

comment:2 Changed 16 years ago by dbevans (David B. Evans)

No mentioned of HAVE_ALIAS in include/dix-config.h at all.

comment:3 Changed 16 years ago by dbevans (David B. Evans)

I notice that xorg-server uses its own copy of mesa for gl while this version does not and therefore builds against the MacPorts mesa port (if its available -- needs to be a dependency on mesa if this is correct -- if there is no mesa its a configure error). Other than that it seems to be thinking that GLint and int are not the same but I haven't been able to find the definition of GLint to see.

comment:4 Changed 16 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Not exactly. Neither "build against mesa". In 1.4.x, some glx files were symlinked from the mesa sources into xorg-server. With 1.5.x and later, the files are now part of xorg-server itself rather than doign the symlinking.

comment:5 Changed 16 years ago by dbevans (David B. Evans)

Well, it still seems to want a pkgconfig file from mesa at least since it errors out on configure as follows with mesa deactivated:

Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_Volumes_wdc-320_opt_macports_trunk_dports_x11_xorg-server-devel/work/xorg-server-1.5.3-apple4" && ./configure --prefix=/opt/local --with-apple-applications-dir=/Applications/MacPorts --with-fontdir=/opt/local/share/fonts --with-apple-application-id=org.macports.X11 " returned error 1
Command output: checking for struct sockaddr_in.sin_len... yes
checking for socklen_t... yes
checking if Xtrans should support os-specific local connections... no
checking for authdes_seccreate... no
checking for authdes_create... no
checking if Secure RPC authentication ("SUN-DES-1") should be supported... no
checking for /opt/local/share/sgml/X11/defs.ent... no
checking for linuxdoc... no
checking for ps2pdf... /opt/local/bin/ps2pdf
checking Whether to build documentation... no
checking Whether to build pdf documentation... yes
checking whether to build Xquartz... yes
checking for DBUS... yes
checking for HAL... no
checking for glibc...... no
checking for clock_gettime... no
checking for clock_gettime in -lrt... no
checking for a useful monotonic clock ...... no
checking for XLIB... yes
checking for GL... configure: error: Package requirements (glproto >= 1.4.9 gl >= 7.1.0) were not met:

No package 'gl' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables GL_CFLAGS
and GL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

comment:6 Changed 16 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Urg... that check is there for the xfree86 ddx... we don't actually need it... grr... oh well, it's easier to just add the dependency

comment:7 Changed 16 years ago by dbevans (David B. Evans)

Just to confirm what is going on, I ran the offending command with -E to get the preprocessed output from which the lines of interest are

extern __attribute__((pure)) int __glXFogivReqSize(const GLbyte *pc, Bool swap);
GLint __glXFogivReqSize( const GLbyte * pc, Bool swap ) { return __glXFogfvReqSize( pc, swap ); }

and from /System/Library/Frameworks/OpenGL.framework/Headers/gl.h

typedef long GLint;

comment:8 Changed 16 years ago by dbevans (David B. Evans)

On the other hand looking in /usr/X11R6/include/GL/gl.h

typedef int             GLint;          /* 4-byte signed */

so it looks like this would build against the system GL/gl.h but not that provided by mesa (case above)

comment:9 Changed 16 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Interesting... and ugly... ok, well that's a start...

comment:10 Changed 16 years ago by dbevans (David B. Evans)

Indeed. To be complete this is on 10.4.11 ppc, XCode 2.5.

comment:11 Changed 16 years ago by steven@…

Cc: steven@… added

Cc Me!

comment:12 Changed 16 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

comment:13 Changed 15 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: fixed
Status: newclosed

r51943 should fix this. Please reopen if that's not the case.

Note: See TracTickets for help on using tickets.