Build error with javac Main not being found when building java.transaction module on Mac OS X

Martijn Verburg martijnverburg at gmail.com
Mon Feb 9 11:46:16 UTC 2015


@Erik and everyone else,

<whacks head on desk>, my sincere apologies and thank you for your
patience!  Indeed the modules.xml file was out of date. My script which
executes 'hg update' each morning had been silently failing for some time.
This is a good lesson for the build guide though, I'll add a note to remind
people that once they clone the top level repository that they should also
hg update as well as ./get_source.sh.

I now have separate build errors (of course!), these ones seem a little
more genuine, around the compilation / linking of desktop code with Mac
native libs.  There are too many to list, but here's an example of one below

=======

Creating libjsound.dylib from 17 file(s)
In file included from /usr/include/dispatch/dispatch.h:51:0,
                 from
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFStream.h:15,
                 from
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFPropertyList.h:13,
                 from
/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:55,
                 from
/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6,
                 from
/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12,
                 from
/Users/karianna/Documents/workspace/AdoptOpenJDK_projects/jdk9/jdk/src/java.desktop/macosx/native/libosxapp/AWT_debug.h:29,
                 from
/Users/karianna/Documents/workspace/AdoptOpenJDK_projects/jdk9/jdk/src/java.desktop/macosx/native/libosxapp/AWT_debug.m:26:
/usr/include/dispatch/object.h:143:15: error: expected identifier or '('
before '^' token
 typedef void (^dispatch_block_t)(void);
               ^
/usr/include/dispatch/object.h:362:3: error: unknown type name
'dispatch_block_t'
   dispatch_block_t notification_block);
   ^

Is this perhaps me using an unsupported compiler?  My C/C++ toolchain is:

...
* Toolchain:      clang (clang/LLVM)
* C Compiler:     Version Apple LLVM version 6.0 (clang-600.0.56) (based on
LLVM 3.5svn) Target: x86_64-apple-darwin14.1.0 Thread model: posix (at
/usr/bin/clang)
* C++ Compiler:   Version Apple LLVM version 6.0 (clang-600.0.56) (based on
LLVM 3.5svn) Target: x86_64-apple-darwin14.1.0 Thread model: posix (at
/usr/bin/clang++)
...



Cheers,
Martijn

On 9 February 2015 at 10:35, Erik Joelsson <erik.joelsson at oracle.com> wrote:

>  Then please check that your top level repo is properly up to date. It
> should contain:
>
>   <module>
>     <name>java.transaction</name>
>     <depend>java.base</depend>
>     <depend re-exports="true">java.rmi</depend>
>     <export>
>       <name>javax.transaction</name>
>     </export>
>   </module>
>
> /Erik
>
>
> On 2015-02-09 11:32, Martijn Verburg wrote:
>
> Hi Erik,
>
>  You're correct, the module-deps.gmk file does not have java.transaction
> in there.
>
>  modules.xml does contain it as an export for java.corba (which depends
> on java.base), i.e.
>
>    <module>
>     <name>java.corba</name>
>     <depend>java.base</depend>
>     <depend re-exports="true">java.desktop</depend>
>     <depend>java.logging</depend>
>     <depend>java.naming</depend>
>     <depend re-exports="true">java.rmi</depend>
>      ...
>     <export>
>        <name>javax.transaction</name>
>     </export>
>      ...
>
>  I'm also going to try Magnus's suggestion.
>
>  Cheers,
> Martijn
>
> On 9 February 2015 at 09:32, Erik Joelsson <erik.joelsson at oracle.com>
> wrote:
>
>> So you have the source files for java.transaction in your jdk repo. Does
>> your modules.xml list that module? At the start of the build, we generate
>> build/<outputdir>/make-support/module-deps.gmk from modules.xml from which
>> we construct the correct make dependencies between module targets. I'm
>> guessing java.transaction is not showing up in your module-deps.gmk.
>>
>> If java.transaction doesn't show up in modules-deps.gmk, we are missing
>> that java.transaction-java depends on java.base-java, so make will start
>> running java.transaction-java earlier than it should.
>>
>> /Erik
>>
>>
>> On 2015-02-06 16:45, Martijn Verburg wrote:
>>
>>> Hi Erik/Alan,
>>>
>>> Not sure if this information is useful at all but the following tmp file
>>> was left behind:
>>>
>>>
>>> /Users/karianna/Documents/workspace/AdoptOpenJDK_projects/jdk9/build/macosx-
>>> x86_64-normal-server-release/jdk/modules/java.transaction/_
>>> the.java.transaction_batch.tmp
>>>
>>> It contains:
>>>
>>>
>>> /Users/karianna/Documents/workspace/AdoptOpenJDK_projects/jdk9/jdk/src/java.transaction/share/classes/javax/transaction/InvalidTransactionException.java
>>>
>>> /Users/karianna/Documents/workspace/AdoptOpenJDK_projects/jdk9/jdk/src/java.transaction/share/classes/javax/transaction/TransactionRequiredException.java
>>>
>>> /Users/karianna/Documents/workspace/AdoptOpenJDK_projects/jdk9/jdk/src/java.transaction/share/classes/javax/transaction/TransactionRolledbackException.java
>>>
>>>
>>> Cheers,
>>> Martijn
>>>
>>> On 6 February 2015 at 15:42, Martijn Verburg <martijnverburg at gmail.com>
>>> wrote:
>>>
>>> Hi Alan,
>>>>
>>>> Thanks for the quick response!  I've executed:
>>>>
>>>> rm -rf build
>>>> bash configure
>>>> make clean images
>>>>
>>>> ==========
>>>>
>>>> Unfortunately the same error comes up:
>>>>
>>>> ....
>>>> Cleaned all build artifacts.
>>>> Building OpenJDK for target 'clean images' in configuration
>>>> 'macosx-x86_64-normal-server-release'
>>>> ....
>>>> Compiling 5 files for BUILD_GENMODULESLIST
>>>> Compiling 8 files for BUILD_TOOLS_LANGTOOLS
>>>> Compiling 3 files for java.transaction
>>>> Error: Could not find or load main class com.sun.tools.javac.Main
>>>> make[3]: ***
>>>>
>>>> [/Users/karianna/Documents/workspace/AdoptOpenJDK_projects/jdk9/build/macosx-x86_64-normal-server-release/jdk/modules/java.transaction/_the.java.transaction_batch]
>>>> Error 1
>>>> make[2]: *** [java.transaction-java] Error 2
>>>> make[2]: *** Waiting for unfinished jobs....
>>>> ....
>>>>
>>>>
>>>> Cheers,
>>>> Martijn
>>>>
>>>> On 6 February 2015 at 11:43, Alan Bateman <Alan.Bateman at oracle.com>
>>>> wrote:
>>>>
>>>> On 06/02/2015 11:32, Martijn Verburg wrote:
>>>>>
>>>>> Hi all,
>>>>>>
>>>>>> Apologies if this has already been reported before!
>>>>>>
>>>>>> Build from HEAD (jdk9) today I get the following error running make
>>>>>> clean
>>>>>> images:
>>>>>>
>>>>>> make clean images
>>>>>> Cleaning hotspot build artifacts ... done
>>>>>> Cleaning jdk build artifacts ... done
>>>>>> Cleaning bootcycle-build build artifacts ... done
>>>>>> Cleaning test build artifacts ... done
>>>>>> Cleaning buildtools build artifacts ... done
>>>>>> Cleaning support build artifacts ... done
>>>>>> Cleaning images build artifacts ... done
>>>>>> Cleaning make-support build artifacts ... done
>>>>>> Cleaned all build artifacts.
>>>>>> Building OpenJDK for target 'clean images' in configuration
>>>>>> 'macosx-x86_64-normal-server-release'
>>>>>>
>>>>>> Compiling 5 files for BUILD_GENMODULESLIST
>>>>>> Compiling 8 files for BUILD_TOOLS_LANGTOOLS
>>>>>> Compiling 3 files for java.transaction
>>>>>> Error: Could not find or load main class com.sun.tools.javac.Main
>>>>>> make[3]: ***
>>>>>> [/Users/karianna/Documents/workspace/AdoptOpenJDK_
>>>>>> projects/jdk9/build/macosx-x86_64-normal-server-release/
>>>>>> jdk/modules/java.transaction/_the.java.transaction_batch]
>>>>>> Error 1
>>>>>> make[2]: *** [java.transaction-java] Error 2
>>>>>> make[2]: *** Waiting for unfinished jobs....
>>>>>>
>>>>>>   I wonder if this is residual files left behind from a previous
>>>>>> build.
>>>>>>
>>>>> We did some refactoring a few weeks ago to create the java.transaction
>>>>> module and that required moving code between the corba and jdk repo.
>>>>>
>>>>> Can you blow away your build directory and configure && make again?
>>>>>
>>>>> -Alan
>>>>>
>>>>>
>>>>
>>
>
>


More information about the jdk9-dev mailing list