[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-hotspot-runtime-dev
Subject:    Re: RFR JDK-8022407 (round 2) sun/misc/CopyMemory.java fails with SIGSEGV in Unsafe_SetByte+0x35
From:       David Holmes <david.holmes () oracle ! com>
Date:       2013-08-31 11:57:33
Message-ID: 5221DA2D.7070707 () oracle ! com
[Download RAW message or body]

On 30/08/2013 11:36 PM, Lois Foltan wrote:
> On 8/29/2013 10:18 PM, David Holmes wrote:
>> On 29/08/2013 10:01 PM, Lois Foltan wrote:
>>>
>>> On 8/29/2013 7:16 AM, David Holmes wrote:
>>>> Hi Lois,
>>>>
>>>> Is this still needed:
>>>>
>>>>  142     PCH_FLAG/unsafe.o = $(PCH_FLAG/NO_PCH)
>>>>
>>>> given you no longer use -O0 ?
>>> Hi David,
>>> Yes, I believe so but this might be a cautionary change on my part. I
>>> read the comment to imply that Clang does not support a precompiled
>>> header compiled with an optimization level that is different than the
>>> one used to compile the actual C++ file, this is why I chose to add
>>> unsafe.o.
>>
>> I read the comment as only applying to a combination of -O0 with -O3.
>> So now the comment is inaccurate as it claims all files are compiled
>> with -O0.
>>
>> 133     # There are some files which don't like precompiled headers
>> 134     # The following files are build with 'OPT_CFLAGS/NOOPT' (-O0)
>> in the opt build.
>> 135     # But Clang doesn't support a precompiled header which was
>> compiled with -O3
>> 136     # to be used in a compilation unit which uses '-O0'. We could
>> also prepare an
>> 137     # extra '-O0' PCH file for the opt build and use it here, but
>> it's probably
>> 138     # not worth the effort as long as only two files need this
>> special handling.
>>
>> Either the comment or the entry at line 142 need to be changed. (the
>> part about 'two files' is already out of date :( )
>
> Hi David,
> Line #142 is necessary.  If clang++ compiles unsafe.o with -O1 and tries
> to include the precompiled header that is compiled by default with -Os,
> (note that -Os is the current default, not -O3 as the comment
> indicates), the following compile time error is generated:
>
>      error: __OPTIMIZE_SIZE__ predefined macro was enabled in PCH file
> but is currently disabled
>
> So, the the comment is incorrect in many ways.  I have entered
> https://bugs.openjdk.java.net/browse/JDK-8024050, detailing the issues.

Ok. Thanks for that.

David

> Thanks,
> Lois
>
>>
>> David
>> -----
>>
>>> Lois
>>>
>>>> Thanks,
>>>> David
>>>>
>>>> On 29/08/2013 3:56 AM, Lois Foltan wrote:
>>>>>
>>>>> Please review the updated webrev:
>>>>>      open webrev at
>>>>> http://cr.openjdk.java.net/~hseigel/bug_jdk8022407.2/
>>>>>
>>>>> Bug:
>>>>>      bug link at https://bugs.openjdk.java.net/browse/JDK-8022407
>>>>>
>>>>> Summary of fix:
>>>>>
>>>>>      The JDK 8 build on MacOS, when built with the Xcode 4.6.2 clang++
>>>>> compiler, exhibited a compiler
>>>>>      optimization issue when prims/unsafe.cpp was compiled at the
>>>>> default -Os level. As a work around
>>>>>      fix, knock the optimization level down down to -O1.
>>>>>
>>>>> Tests: MacOS: built fastdebug & product images using clang++ (ran
>>>>> JTREG
>>>>> & vm.quick.testlist)
>>>>>            built using llvm-g++ to verifyprims/unsafe.cpp remained
>>>>> compiled at -Os
>>>>>
>>>>> Thank you, Lois
>>>>>
>>>>>
>>>
>
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic