JDK8 build on AIX - status?

Andrew Hughes gnu.andrew at redhat.com
Fri May 10 04:44:03 PDT 2013


----- Original Message -----
> I can build now up to libsctp.so which seems to be new in JDK8 (that's the
> 25th out of 33 shared libraries).

It's new to 7, if it's what I think it is:

make/com/sun/nio/sctp/Makefile

It's guarded by:

ifneq ($(PLATFORM), windows)

which may not be the best conditional if AIX doesn't support it either...

> Hope to finish the build tomorrow. Stay tuned..
> 
> 
> On Tue, May 7, 2013 at 1:54 PM, Volker Simonis
> <volker.simonis at gmail.com>wrote:
> 
> > Yes, that was the failure I was seeing yesterday. It's caused by the wrong
> > '-MMD' option to xlc (which have to be fixed in toolchain.m4 as I wrote
> > before).
> >
> > I've got past this error and fixed several others. I'll post my changes
> > later today with the status of my build...
> >
> >
> >
> > On Tue, May 7, 2013 at 1:06 PM, Steve Poole
> > <spoole at linux.vnet.ibm.com>wrote:
> >
> >> ok - added your patch and now have a build that fails with  below - is
> >> the same as you're seeing?
> >>
> >> echo > /dev/null "Compiling genSocketOptionRegistry.c (for
> >> genSocketOptionRegistry)"
> >> /usr/vac/bin/xlc  -DTHIS_FILE='"genSocketOptionRegistry.c"' -c -MMD -MF
> >> /home/spoole/jenkins/workspace/openjdk.ppcaix.jdk8.aix.ppc_64/build/aix-ppc64-normal-server-slowdebug/jdk/gensrc/genSocketOptionRegistry/genSocketOptionRegistry.d
> >> -o
> >> /home/spoole/jenkins/workspace/openjdk.ppcaix.jdk8.aix.ppc_64/build/aix-ppc64-normal-server-slowdebug/jdk/gensrc/genSocketOptionRegistry/genSocketOptionRegistry.o
> >> /home/spoole/jenkins/workspace/openjdk.ppcaix.jdk8.aix.ppc_64/jdk/src/share/native/sun/nio/ch/genSocketOptionRegistry.c
> >> /usr/vac/bin/xlc: 1501-208 (S) command option D is missing a subargument
> >>
> >>
> >>
> >> On 7 May 2013, at 09:33, Volker Simonis <volker.simonis at gmail.com> wrote:
> >>
> >>
> >>
> >>
> >> On Tue, May 7, 2013 at 9:40 AM, Steve Poole
> >> <spoole at linux.vnet.ibm.com>wrote:
> >>
> >>>
> >>> On 6 May 2013, at 18:16, Volker Simonis <volker.simonis at gmail.com>
> >>> wrote:
> >>>
> >>> > Hi,
> >>> >
> >>> > I've started today to have a look at the new, configure based JDK8
> >>> build on AIX.
> >>> >
> >>> > On AIX 7.1 with XLC 12 and  the same set-up as described in our
> >>> README-ppc.html for JDK7 (plus the additional installation of 'mktemp'
> >>> from
> >>> http://www.lunch.org.uk/aix/rpms/mktemp-1.5-1.aix5.2.ppc.rpm) I could
> >>> successfully configure the build with the following command line:
> >>> >
> >>> > bash /usr/work/d046063/OpenJDK/ppc-aix-port/jdk8/configure
> >>> --with-boot-jdk=/usr/work/openjdk/nb/rs6000_64/last_known_good/output-jdk7u/j2sdk-image
> >>> --with-jvm-variants=server --with-jvm-interpreter=cpp
> >>> --with-debug-level=slowdebug --with-extra-cflags=-q64
> >>> --with-extra-cxxflags=-q64 CFLAGS=-q64 CXXFLAGS=-q64
> >>> --with-cups-include=/opt/freeware/include
> >>> >
> >>> That doesn't work for me  fails with:
> >>>
> >>> checking build system type... config.sub: missing argument
> >>> Try `config.sub --help' for more information.
> >>> configure: error: /bin/sh ./common/autoconf/build-aux/config.sub   failed
> >>>
> >>>
> >> Have you recreated generated-configure.sh?
> >>
> >>
> >>>
> >>> I will try a completely new clone and build...
> >>>
> >>>
> >> Yes, please regenerate generated-configure.sh and retry. For your
> >> convenience I've attached my new generated-configure.sh to this mail.
> >>
> >>
> >>> > The build runs successfully until it reaches the JDK part where it
> >>> stops because of incorrect compiler settings. With the following little
> >>> patch I get further until the compilation of 'genSocketOptionRegistry.c':
> >>> >
> >>> > diff -r e199be36af79 common/autoconf/toolchain.m4
> >>> > --- a/common/autoconf/toolchain.m4      Thu May 02 16:22:31 2013 +0100
> >>> > +++ b/common/autoconf/toolchain.m4      Mon May 06 19:09:16 2013 +0200
> >>> > @@ -569,6 +569,29 @@
> >>> >          POST_STRIP_CMD="$STRIP -x"
> >>> >          POST_MCS_CMD="$MCS -d -a \"JDK $FULL_VERSION\""
> >>> >      fi
> >>> > +    if test "x$OPENJDK_TARGET_OS" = xaix; then
> >>> > +        COMPILER_NAME=xlc
> >>> > +        PICFLAG="-qpic=large"
> >>> > +        LIBRARY_PREFIX=lib
> >>> > +        SHARED_LIBRARY='lib[$]1.so'
> >>> > +        STATIC_LIBRARY='lib[$]1.a'
> >>> > +        SHARED_LIBRARY_FLAGS="-qmkshrobj"
> >>> > +        SHARED_LIBRARY_SUFFIX='.so'
> >>> > +        STATIC_LIBRARY_SUFFIX='.a'
> >>> > +        OBJ_SUFFIX='.o'
> >>> > +        EXE_SUFFIX=''
> >>> > +        SET_SHARED_LIBRARY_NAME=''
> >>> > +        SET_SHARED_LIBRARY_MAPFILE=''
> >>> > +       C_FLAG_REORDER=''
> >>> > +       CXX_FLAG_REORDER=''
> >>> > +        SET_SHARED_LIBRARY_ORIGIN=''
> >>> > +        SET_EXECUTABLE_ORIGIN=""
> >>> > +        CFLAGS_JDK=""
> >>> > +        CXXFLAGS_JDK=""
> >>> > +        CFLAGS_JDKLIB_EXTRA=''
> >>> > +        POST_STRIP_CMD="$STRIP -x"
> >>> > +        POST_MCS_CMD=""
> >>> > +    fi
> >>> >
> >>> > The next task would now be to integrate all the needed compiler flags
> >>> for xlc into 'toolchain.m4'.
> >>> >
> >>> > Did you already start this task and if yes, how far have you reached
> >>> with the build.
> >>>
> >>> Yes - we did do the basics  (including teaching toolschain about xlc )
> >>>
> >>>
> >>> http://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/2013-February/000322.html
> >>>
> >>>
> >> Yes, I know but that's not enough. The error you reported in that mail
> >> ("This will fail by claiming *** No rule to make target
> >> `<snip/>/jdk8/build/aix-ppc64-normal-server-release/jdk/lib/ppc64/server/jsig',
> >> needed by `all'. Stop.") is occurs because the build doesn't know the
> >> shared library endings on AIX (i.e. it looks for 'jsig' instead of
> >> 'jsig.so'). This is fixed by the snippet I posted in my previous mail but
> >> that's just a starting point as well. We have to set all the required xlc
> >> options in toolchain.m4 to get further. The bad thing is that some options
> >> (e.g. -MMD -MF) are set unconditionally in toolchain.m4 and then refined
> >> based on plattform and compiler. So if we do nothing, the xlc build on AIX
> >> uses these options and that's why it currently fails.
> >>
> >>
> >>> The codebase has moved on a little since then so we have a couple more
> >>> changes to come for src/solaris/native/common/jdk_util_md.h and
> >>> src/solaris/native/java/io/io_util_md.c
> >>> b/src/solaris/native/java/io/io_util_md.c
> >>>
> >>> Let me make sure I can reproduce your situation and then lets talk about
> >>> the next changes required..
> >>>
> >>
> >> So I'll start with the compiler settings for xlc in toolchain.m4
> >>
> >>  > If you have any build related changes, could you please share them on
> >>> the list in a timely manner to avoid doubling the work and to possibly
> >>> discuss them before submission.
> >>> >
> >>> > Thank you and best regards,
> >>> > Volker
> >>> >
> >>>
> >>>
> >> <generated-configure.sh>
> >>
> >>
> >>
> >
> 

-- 
Andrew :)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F  8F91 3B96 A578 248B DC07



More information about the ppc-aix-port-dev mailing list