Disable kernel opt by default on Solaris 10 and 11

With newer Solaris Studio (sometime in the 12.* series), cc started
adding SSE instructions to optimized x86 code, which is invalid for
kernel code and can generate panics. There appears to be no way to
turn this off currently (-xvector=%none is non-functional), so default
to not optimizing kernel code.

Reviewed-on: http://gerrit.openafs.org/6671
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 80592c53cbb0bce782eb39a5e64860786654be9f)

Change-Id: If1539dd88d4d28771a7eafcdaff30a75cb230917
Reviewed-on: http://gerrit.openafs.org/6683
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
This commit is contained in:
Andrew Deason 2012-02-06 13:23:41 -06:00 committed by Derrick Brashear
parent 72d2ef7fa2
commit 0329984e29
2 changed files with 15 additions and 1 deletions

View File

@ -200,7 +200,7 @@ AC_ARG_ENABLE([optimize-kernel],
[disable compilation of the kernel module with optimization (defaults
based on platform)])],
,
[enable_optimize_kernel="yes"])
[enable_optimize_kernel=""])
AC_ARG_ENABLE([debug-lwp],
[AS_HELP_STRING([--enable-debug-lwp],
[enable compilation of the LWP code with debugging information

View File

@ -725,6 +725,20 @@ case $AFS_SYSNAME in
;;
esac
#
# Defaults for --enable-optimize-kernel
#
if test "x$enable_optimize_kernel" = "x" ; then
AS_CASE([$AFS_SYSNAME],
[sunx86_510|sunx86_511],
dnl Somewhere around Solaris Studio 12.*, the compiler started adding SSE
dnl instructions to optimized code, without any ability to turn it off.
dnl So just default to not optimizing kernel code for the relevant
dnl platforms, until we get a better autoconf test for this.
[enable_optimize_kernel=no],
[enable_optimize_kernel=yes])
fi
#
# Special build targets
#