diff --git a/hints/linux.sh b/hints/linux.sh index 5202b28b099b..b3cd322dc805 100644 --- a/hints/linux.sh +++ b/hints/linux.sh @@ -111,7 +111,9 @@ case "`${cc:-cc} -V 2>&1`" in # 'Sun' and the 'C': Examples: # cc: Sun C 5.9 Linux_i386 Patch 124871-01 2007/07/31 # cc: Sun Ceres C 5.10 Linux_i386 2008/07/10 - test "$optimize" || optimize='-xO2' + # cc: Studio 12.6 Sun C 5.15 Linux_i386 2017/05/30 + # GH #21535 - apparent optimization bug in workshop cc + test "$optimize" || optimize='-O1' cccdlflags='-KPIC' lddlflags='-G -Bdynamic' # Sun C doesn't support gcc attributes, but, in many cases, doesn't diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh index 15928c7d6d9d..e20d8d27a064 100644 --- a/hints/solaris_2.sh +++ b/hints/solaris_2.sh @@ -365,11 +365,7 @@ EOM d_attribute_unused='undef' d_attribute_warn_unused_result='undef' case "$cc" in - *c99) # c99 rejects bare '-O'. - case "$optimize" in - ''|-O) optimize=-O3 ;; - esac - # Without -Xa c99 doesn't see + *c99) # Without -Xa c99 doesn't see # many OS interfaces. case "$ccflags" in *-Xa*) ;; @@ -377,6 +373,10 @@ EOM esac ;; esac + # GH #21535 - apparent optimization bug in workshop cc + case "$optimize" in + ''|-O) optimize=-O1 ;; + esac ;; esac fi