<AWT Dev> 6839999: Cumulative fix for 6762511 and 6838003

Kelly O'Hair Kelly.Ohair at Sun.COM
Wed Jun 17 16:34:00 UTC 2009



Anthony Petrov wrote:
> So, build-dev,
> 
> Any opinions? Can we make sure the header is always present on Sol10u2?

I'm very much ok with this change. I hate copying system include stuff.

We could add a specific sanity check, but my preference would to not,
Too many sanity checks as it is... :^(

At some point I would rather change many of the sanity checks to just
simpler verifications that packages have been installed on a system.
Seems like an easier way to go.

We could change the OS version check to look for Solaris 10u2, but
I'm not exactly sure how to do that right off the top of my head.
No 'uname' option to tell ne it's Solaris 10 Update 2. :^(
I gues we would have to grok it out of /etc/release. :^(

> Perhaps we could add it to the requirements list for building OpenJDK?

That's fine with me. The README-builds.html file just needs to be adjusted.

-kto

> 
> -- 
> best regards,
> Anthony
> 
> 
> On 06/16/2009 07:25 PM, Anthony Petrov wrote:
>> 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?
>>>
>>>
>>>



More information about the build-dev mailing list