diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2014-10-14 22:47:33 -0400 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2014-10-15 21:47:12 -0400 |
commit | 1764d98bf44052060e2fe7cfa940d4ffc19f5961 (patch) | |
tree | e3191536df60d91f70b5a2ade38e4bcb63835866 /hints/irix_6.sh | |
parent | 8bc5de207a4b3d333e9c6535bd21b8f0b1381270 (diff) | |
download | perl-1764d98bf44052060e2fe7cfa940d4ffc19f5961.tar.gz |
Irix: MIPSpro 7.4 compiler has broken memcmp.
(Supposedly 7.4.1m is okay in this regard, and there is also 7.5.)
The commit that 'broke' Perl build on IRIX was 57620943
which of course wasn't to blame, the IRIX compiler was.
(Symptom: miniperl crashing, can be narrowed to just /[[:alpha:]]/)
Furthermore: IRIX build was also earlier broken for a long time by
another problem (in the preprocessor), see for example perl #33849.
(Symptom: compile failing in gv.c RvDEEPCP)
Summary: building Perls on IRIX needs either this very commit,
or undoing the 57620943 (for the memcmp brokenness), and possibly
applying both the c297d531 and 08c5d564 (for the cpp brokenness).
(The latter were applied between 5.10.0 and 5.10.1.)
Diffstat (limited to 'hints/irix_6.sh')
-rw-r--r-- | hints/irix_6.sh | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/hints/irix_6.sh b/hints/irix_6.sh index 3fe1ae9bd3..fc315a5ab1 100644 --- a/hints/irix_6.sh +++ b/hints/irix_6.sh @@ -360,6 +360,26 @@ case "$ccversion" in ;; esac +# There is a devious bug in the MIPSpro 7.4 compiler: +# memcmp() is an inlined intrinsic, and "sometimes" it gets compiled wrong. +# +# In Perl the most obvious hit is regcomp.c:S_regpposixcc(), +# causing bus errors when compiling the POSIX character classes like +# /[[:digit:]], which means that miniperl cannot build perl. +# (That is almost only the one victim: one single test in re/pat fails, also.) +# +# Therefore let's turn the inline intrinsics off and let the normal +# libc versions be used instead. This may cause a performance hit +# but a little slower is better than zero speed. +# +# MIPSpro C 7.4.1m is supposed to have fixed this bug. +# +case "$ccversion" in +"MIPSpro Compilers: Version 7.4") + ccflags="$ccflags -U__INLINE_INTRINSICS" + ;; +esac + EOCCBU # End of cc.cbu callback unit. - Allen |