Hi Neil,
On AIX, CPPFLAGS is used for invocations of the C++ compiler (the 'PP' standing for 'Plus-Plus').
On Linux, CPPFLAGS is for the C Pre-Processor, and so is used for invocations of both the C and C++ compilers. (Linux has CXXFLAGS for C++-specific options).
So, on Linux, adding to CPPFLAGS_COMMON should cater for both scenarios, I believe, whilst on AIX, one needs to add to both CPPFLAGS_COMMON and CFLAGS_COMMON.
Are you sure this is right? I could not find any documentation for that, e.g. on the xlC manuals. Reason I ask is I always thought both CXXFLAGS and CPPFLAGS originally came from the GNU automake toolchain, and that what you describe as "the Linux way" is just the correct way to use those variables - but that many people use CPPFLAGS as "C++-Flags" because that is the first thing which comes to mind. I may be wrong. I think it's mostly all convention anyway, the only tools I think do something with those variables are autoconf/automake. When working on the AIX port of the SAP JVM, we tried to keep the GNU meaning of CPPFLAGS intact: CPPFLAGS for -D../-I.., CXXFLAGS/CFLAGS for languange specific settings. However, this has the tendency to detoriate, so you probably will find both meanings in the makefiles. Kind Regards, Thomas Stuefe SAP Germany
I'm still grappling with Steve's instructions on building this stuff (whilst he suns himself in the glorious British summer weather [1] for a bit), so if you're able to quickly verify (or refute) what I'm saying above, feel free to push a suitable change up to the project.
Regards, Neil
On Mon, 2012-07-16 at 10:15 +0200, Volker Simonis wrote:
Hi Steve,
this change breaks the Linux build, because USE_PTHREADS is defined in /usr/work/openjdk/nb/fdbg/linuxx86_64/jdk7u/jdk/make/common/Defs-linux.gmk, but it is not really exported in the CFLAGS/CPPFLAGS as this is done for AIX.
So there are two possibilities here: we could either reintroduce the "superflous" __linux__ or we could export USE_PTHREADS in the CFLAGS/CPPFLAGS in the same way as this is done for AIX. Although we wanted to do as few changes as possible in shared code, I'd vote for the second option, because this is really a feature we want to use (PTHREADS) and it should be defined once in the makefile for the corresponding platform. Going that way would simplify further ports like for example HPUX.
What do you think? Do you want me to do the change or do you have a Linux build yourself?
Regards, Volker
On Thu, Jul 12, 2012 at 2:50 PM, <spoole@linux.vnet.ibm.com> wrote:
Changeset: 5c3a27b86fd1 Author: spoole <spoole@linux.vnet.ibm.com> Date: 2012-07-12 13:50 +0100 URL: http://hg.openjdk.java.net/ppc-aix-port/jdk7u/jdk/rev/5c3a27b86fd1
Updated using pthreads in java_md_solinux.c to just rely on USE_PTHREADS. Removed the superflous __linux__ as USE_PTHREADS is already explictly turned on for linux builds
! src/solaris/bin/java_md_solinux.c
-- Unless stated above: IBM email: neil_richards at uk.ibm.com IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU