Closed rubin55 closed 8 years ago
Ah, and my build flags:
./configure --enable-optimization=yes --enable-het-bzip2 --enable-cckd-bzip2 \
--enable-ipv6 --enable-regina-rexx --disable-interlocked-access-facility-2 \
--prefix=/opt/hercules/h4 --mandir=/opt/hercules/h4/ma
If you are running on a UNIX platform, please try with --enable-optimization='O2 -g'
If it produces a core file, you should be able to see where the failure occurs.
Compiling with these optimization flags makes the bug go away!
Ivan, Fish: You heard the man. Can we make -O2 the default optimisation?
I disagree
The only option I see would be to 1) Create a clear test case (not a hercules based test.. I mean a c or a couple of c programs embedded in an autoconf m4 macro) 2) Test with the compiler whether the test case segfaults 3) If it fails THEN and only THEN switch to -O2
--Ivan
On 2/12/2016 4:15 PM, John P. Hartmann wrote:
Ivan, Fish: You heard the man. Can we make -O2 the default optimisation?
— Reply to this email directly or view it on GitHub https://github.com/hercules-390/hyperion/issues/92#issuecomment-183369458.
Ivan, -O3 does not guarantee a faster program than -O2. On z we have seen cases of a 50% degradation when going from -O2 to -O3.
Hello,
IIRC this is a bug in gcc 4.9 only and this problem does not occur in newer versions of gcc. If compiling with gcc 4.9 use -O2 if using newer versions of gcc then there is no problem as the bug was corrected. I cannot find the mail again but I remember I filed this with gcc developers and they confirmed it was a possible bug in gcc 4.9 which was subsequently resolved in later versions of gcc. If you want proof let me know I will search in my archives for the mail about this issue.
I stand corrected this also still seams to appear in some newer versions of gcc
I agree with Ivan: we should keep -O3 and create a configure.ac test case to detect "bad" versions of gcc and automatically fallback to -O2 only for them.
HOWEVER, the problem is, how do we detect it? Does anyone have a simple reproducible test case that we can stick into configure.ac?
Regardless, I am going to go ahead and close this issue since it's not a Hercules issue but rather a GCC issue.
I don't have one now (or yet). Just spent 8 hours trying to figure out the FORMSSI issue and why my VM/SP5 CMS wouldn't IPL under CMS on hyperion.
So I concur with closing the issue - and I'll reopen it once I have a solution (a broken gcc -O3 testcase OR if I can determine what makes -O3 break hercules - another strict aliasing issue somewhere perhaps ?)
(Right now I'm mostly using clang/llvm since it works MUCH better and seems to generate better code anyways).
(On a side note - can we have a new public forum where we can openly discuss issues without having to stick to any single issue at hand ?)
--Ivan
Le 20/04/2016 05:05, Fish-Git a écrit :
I agree with Ivan: we should keep -O3 and create a configure.ac test case to detect "bad" versions of gcc and automatically fallback to -O2 /only/ for them.
/HOWEVER/, the problem is, how do we detect it? Does anyone have a /simple/ reproducible test case that we can stick into configure.ac?
Regardless, I am going to go ahead and close this issue since it's not a Hercules issue but rather a GCC issue.
— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/hercules-390/hyperion/issues/92#issuecomment-212227349
Agree strongly about clang!
CLANG is very interesting, I agree, but there are a number of incompatibilities between the too and CLANG issues different warnings. Not to mention all the C extensions the GCC has that CLANG does not; my favourite is nested functions.
When attempting to boot a zArch based hercules instance, after IPL, I get the following segementation fault:
My hercules version info is: