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.

Change-Id: I5fdedb11219df68e0146b8e0cee9010c2eb4067e
Reviewed-on: http://gerrit.openafs.org/6671
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 3a621a8518
commit 80592c53cb
2 changed files with 15 additions and 1 deletions

View File

@ -199,7 +199,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

@ -652,6 +652,20 @@ esac
MT_CFLAGS="${MT_CFLAGS} -DAFS_PTHREAD_ENV"
#
# 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
#