On 06/16/2009 07:21 PM, Andrew John Hughes wrote:
Is it really necessary to include a chunk of the header file rather
than just doing a #include?  If so, may I suggest that the block is
dependent on _XRENDER_H_ not being defined?
The header may be absent on Solaris 10 U2 which is now a supported platform
for building JDK. This was the primary reason to cut'n'paste the chunk of
code from the xrender header. I think the best solution would be to wrap the
"imported" chunk of code with the proper #ifdef statement for now. Can you
make a patch please?


I did:

http://fuseyism.com/xrender/webrev.02/

Unfortunately, it isn't sufficient.  gcc seems to include awt_p.h
first, so that when the XRender header is included, it again redefines
the structures.
I tried also defining _XRENDER_H_ in awt_p.h, but of course because
this is not the whole of the header, the XRender pipeline code then
fails to compile:

In file included from
../../../src/solaris/native/sun/java2d/x11/X11SurfaceData.h:34,
                 from
../../../src/solaris/native/sun/java2d/x11/X11TextRenderer_md.c:31:
../../../src/solaris/native/sun/java2d/x11/MaskBuffer.h:45: error:
expected specifier-qualifier-list before 'Picture'
../../../src/solaris/native/sun/java2d/x11/MaskBuffer.h:87: error:
expected declaration specifiers or '...' before 'Picture'
In file included from
../../../src/solaris/native/sun/java2d/x11/X11SurfaceData.h:35,
                 from
../../../src/solaris/native/sun/java2d/x11/X11TextRenderer_md.c:31:
../../../src/solaris/native/sun/java2d/x11/XRSurfaceData.h:46: error:
expected specifier-qualifier-list before 'Picture'
../../../src/solaris/native/sun/java2d/x11/XRSurfaceData.h:64: error:
expected '=', ',', ';', 'asm' or '__attribute__' before 'color_black'
../../../src/solaris/native/sun/java2d/x11/XRSurfaceData.h:67: error:
expected ')' before 'mask'
In file included from
../../../src/solaris/native/sun/java2d/x11/X11SurfaceData.h:35,
                 from
../../../src/solaris/native/sun/java2d/x11/X11TextRenderer_md.c:31:
../../../src/solaris/native/sun/java2d/x11/XRSurfaceData.h:73: error:
expected declaration specifiers or '...' before 'XRenderColor'
../../../src/solaris/native/sun/java2d/x11/XRSurfaceData.h:76: error:
expected declaration specifiers or '...' before 'XRenderColor'
In file included from
../../../src/solaris/native/sun/java2d/x11/X11TextRenderer_md.c:31:
../../../src/solaris/native/sun/java2d/x11/X11SurfaceData.h:118:
error: expected specifier-qualifier-list before 'Picture'
make[6]: *** 
[/mnt/builder/icedtea/openjdk-ecj/build/linux-amd64/tmp/sun/sun.awt.X11/xawt/obj64/X11TextRenderer_md.o]
Error 1

As the XRender pipeline will be a feature of JDK7
(http://openjdk.java.net/projects/jdk7/features/), I think support for
UNIX platforms without it, such as Solaris 10 U2, will have to be
dropped for 7.
This is a question to discuss on the build-dev mailing list (CC'ed).
Any tips?

--
best regards,
Anthony



--
best regards,
Anthony

Here's a webrev that fixes it by just using the xrender header:

http://fuseyism.com/xrender/webrev.01/

It does mean the header has to be available at build time, but dlsym
is still used to make it optional at runtime.
Given the XRender project is going to be merged at some point anyway,
this hardly seems like a huge sacrifice.

Ok to commit?



Reply via email to