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