RFR JDK-8022407 (round 2) sun/misc/CopyMemory.java fails with SIGSEGV in Unsafe_SetByte+0x35
Lois Foltan
lois.foltan at oracle.com
Fri Aug 30 13:36:14 UTC 2013
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.
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
>>>>
>>>>
>>
More information about the build-dev
mailing list