RFR (M): Enable HotSpot build with Clang

David Holmes david.holmes at oracle.com
Fri May 31 00:41:16 PDT 2013


I think this is mainly targetted at Volker but ...

On 31/05/2013 4:32 AM, Christian Thalinger wrote:
>> Here is what I have after merging in your new changes:
>>
>> http://cr.openjdk.java.net/~twisti/8015252/webrev/
>>
>> I see two problems:
>>
>> 1)  It's not possible to turn off precompiled headers because of this:
>>
>> + ifeq ($(USE_CLANG), true)
>> +   # clang has precompiled headers support by default, but the user can switch
>> +   # it off by using 'USE_PRECOMPILED_HEADER=0' on the compile command line.
>> +   ifdef LP64
>> +     USE_PRECOMPILED_HEADER=1
>> +   else
>
> Let me rephrase that:  at least not with an environment variable.

In this block:

! ifeq ($(USE_CLANG), true)
!   # clang has precompiled headers support by default, but the user can 
switch
!   # it off by using 'USE_PRECOMPILED_HEADER=0' on the compile command 
line.
!   ifdef LP64
!     USE_PRECOMPILED_HEADER=1
!   else
!     # We don't support precompiled headers on 32-bit builds because 
there some files are
!     # compiled with -fPIC while others are compiled without (see 
'NONPIC_OBJ_FILES' rules.make)
!     # Clang produces an error if the PCH file was comiled with other 
options than the actual compilation unit.
!     USE_PRECOMPILED_HEADER=0
!   endif

I think the LP64 case should be guarded by "ifeq 
($(USE_PRECOMPILED_HEADERS),)".

The comment "on the compile command line" should be "on the make command 
line" I think.

Typo: comiled

David
-----

> -- Chris
>
>>
>> 2)  If I compile with clang on Mac and run the compiler regression tests a lot of them fail but they work with a debug VM.  So it seems that one of the files is broken with optimization on (-Os or -O3; -O0 is okay).
>>
>> Do you have any problems on Linux?
>>
>> -- Chris
>>
>>>
>>>>
>>>> David
>>>> -----
>>>>
>>>>> Please notice that I won't be in the office until the 3rd of June.
>>>>> Should you have any further change requests please feel free to edit the
>>>>> patch yourself if you like.
>>>>>
>>>>> Regards,
>>>>> Volker
>>>>>
>>>>>   -- Chris
>>>>>
>>>>>>       -- Chris
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> But you can say the exact same thing about the Solaris
>>>>>>>           gcc support.
>>>>>>>
>>>>>>>           Btw. I just trying to resurrect this.
>>>>>>>
>>>>>>>           -- Chris
>>>>>>>
>>>>>>>>
>>>>>>>> David
>>>>>>>> -----
>>>>>>>>
>>>>>>>>> Once it's in we could start with the JDK forest and
>>>>>>>           the configure part
>>>>>>>>> in the base repository. That would require two extra
>>>>>>>           change sets anyway.
>>>>>>>>> The HotSpot build currently isn't very
>>>>>>>           configure-agnostic anyway and
>>>>>>>>> once the other parts have been completed, configure
>>>>>>>           could just pass
>>>>>>>>> USE_CLANG=true (plus perhaps some extra variables in
>>>>>>>           the case we have
>>>>>>>>> more than one clang version on the system) to the
>>>>>>>           HotSpot build and
>>>>>>>>> everything should work.
>>>>>>>>> As a last step we would have to test on Mac as well.
>>>>>>>           I currently don't
>>>>>>>>> have one at hand, but sponsors are always welcome:)
>>>>>>>>>
>>>>>>>>> Volker
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>   David H.
>>>>>>>>>
>>>>>>>>>       -- Chris
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>           David
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>
>>
>


More information about the hotspot-runtime-dev mailing list