[OpenJDK 2D-Dev] RFR(XS): 8213944: Fix AIX build after the removal of Xrandr.h and add a configure check for it

Volker Simonis volker.simonis at gmail.com
Mon Nov 19 17:56:41 UTC 2018


Hi Phil,

I'd like to kindly ask you to suggest how we can proceed with this issue.

As I wrote before, Xrandr is not officially supported on AIX and there
are no official packages available for it. There are some OpenSource
sites for AIX which provide Xrandr, but they are all not compatible
with the default native libraries (e.g. the open source Xrandr package
depends on another open source package of Xrender.so.1 but the system
only provides Xrender.so.0 natively). We can't compile the whole JDK
(i.e. libawt_xawt.so) against some open source package of Xrender.so.1
because that simply won't be available on the majority of systems.

Remember that forcing people to install these open-source packages
even as a build dependency is like expecting Linux users to install
some non-official packages just to be able to build. Especially in
corporate environments that's not easy. Moreover the benefit would be
really minimal, because the Xrandr functionality won't be available at
runtime anyway.

So to cut a long story short, I see two options:

1. Go with my current patch (ugly but efficient)

2. Check-in in an AIX specific version of XRander.h/randr.h under
src/java.desktop/aix (OK for me, but that would actually negate the
initial purpose of "8210863: Remove Xrandr include files")

Do you have a better proposal?

Thank you and best regards,
Volker

On Fri, Nov 16, 2018 at 11:22 AM Volker Simonis
<volker.simonis at gmail.com> wrote:
>
> On Thu, Nov 15, 2018 at 6:01 PM Philip Race <philip.race at oracle.com> wrote:
> >
> > PS I am not sure why xrandr headers would not be available for AIX.
> > They are a standard part of the xdistribution.
> >
>
> I'm not an X11 guru, but as far as I understand, xrandr is an
> extension and as such it doesn't have to be supported by every
> implementation. To the best of my knowledge (I've just started another
> poll among some experts) AIX doesn't support Xrandr and does not have
> the corresponding headers.
>
> > If true, think what you are going to have to do is add a
> > --with-xrandr-include option
> > and provide it that way.
> >
>
> What if there are no standard Xrandr headers on a platform? Do you
> really want to force users to get them from some dubious sources just
> for building the OpenJDK? Sorry, but I don't think that's a good
> solution. Than I'd rather prefer the ugly ifdefs (or I check the
> headers back in again in an AIX-specific directory :)
>
> Thank you and best regards,
> Volker
>
> > -phil.
> >
> > On 11/15/18, 8:55 AM, Philip Race wrote:
> > > Hmm. I don't like the ifdefs.
> > >
> > > Xrandr is a requirement for the build. If its not there at runtime
> > > that's OK.
> > >
> > > -phil.
> > >
> > > On 11/15/18, 8:06 AM, Volker Simonis wrote:
> > >> Hi,
> > >>
> > >> can I please have a review for the following small change:
> > >>
> > >> http://cr.openjdk.java.net/~simonis/webrevs/2018/8213944/
> > >> https://bugs.openjdk.java.net/browse/JDK-8213944
> > >>
> > >> Change JDK-8210863 removed the Xrandr.h/randr.h headers from the
> > >> OpenJDK sources but forgot to add a configure check for the Xrandr
> > >> extension which is now a build dependency.
> > >>
> > >> The change also broke the AIX build. AIX never supported Xrandr, but
> > >> that was only detected at runtime, when the JDK was unable to
> > >> dynamically load libXrand.so. Now, without Xrandr.h/randr.h in the
> > >> source tree any more, we have to conditionally compile some parts of
> > >> src/java.desktop/unix/native/libawt_xawt/awt/awt_GraphicsEnv.c such
> > >> that it doesn't require the definitions and declarations from
> > >> Xrandr.h/randr.h any more.
> > >>
> > >> Thank you and best regards,
> > >> Volker


More information about the build-dev mailing list