ac_ct_CC
EXEEXT
OBJEXT
+SUN_STUDIO_CC
CPP
GCC
TAS
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Check if it's Sun Studio compiler. We assume that
+# __SUNPRO_C will be defined for Sun Studio compilers
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __SUNPRO_C
+choke me
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ SUN_STUDIO_CC=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ SUN_STUDIO_CC=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
+
unset CFLAGS
#
ac_ct_CC!$ac_ct_CC$ac_delim
EXEEXT!$EXEEXT$ac_delim
OBJEXT!$OBJEXT$ac_delim
+SUN_STUDIO_CC!$SUN_STUDIO_CC$ac_delim
CPP!$CPP$ac_delim
GCC!$GCC$ac_delim
TAS!$TAS$ac_delim
LDFLAGS_SL!$LDFLAGS_SL$ac_delim
LD!$LD$ac_delim
with_gnu_ld!$with_gnu_ld$ac_delim
-ld_R_works!$ld_R_works$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
+ld_R_works!$ld_R_works$ac_delim
RANLIB!$RANLIB$ac_delim
STRIP!$STRIP$ac_delim
STRIP_STATIC_LIB!$STRIP_STATIC_LIB$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 52; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 53; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
choke me
@%:@endif], [ICC=[yes]], [ICC=[no]])
+# Check if it's Sun Studio compiler. We assume that
+# __SUNPRO_C will be defined for Sun Studio compilers
+AC_TRY_COMPILE([], [@%:@ifndef __SUNPRO_C
+choke me
+@%:@endif], [SUN_STUDIO_CC=yes], [SUN_STUDIO_CC=no])
+
+AC_SUBST(SUN_STUDIO_CC)
+
unset CFLAGS
#
CC = @CC@
GCC = @GCC@
+SUN_STUDIO_CC = @SUN_STUDIO_CC@
CFLAGS = @CFLAGS@
# Kind-of compilers
include $(top_srcdir)/src/backend/common.mk
tas.o: tas.s
-ifeq ($(PORTNAME), solaris)
-# preprocess assembler file with cpp, used by x86
+ifeq ($(SUN_STUDIO_CC), yes)
+# preprocess assembler file with cpp
$(CC) $(CFLAGS) -c -P $<
mv $*.i $*_cpp.s
$(CC) $(CFLAGS) -c $*_cpp.s -o $@
-!=======================================================================
-! solaris_sparc.s -- compare and swap for solaris_sparc
-!=======================================================================
+!-------------------------------------------------------------------------
+!
+! sunstudio_sparc.s
+! compare and swap for Sun Studio on Sparc
+!
+! Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
+! Portions Copyright (c) 1994, Regents of the University of California
+!
+! IDENTIFICATION
+! $PostgreSQL$
+!
+!-------------------------------------------------------------------------
! Fortunately the Sun compiler can process cpp conditionals with -P
-/=======================================================================
-/ solaris_i386.s -- compare and swap for solaris_i386
-/=======================================================================
+/-------------------------------------------------------------------------
+/
+/ sunstudio_x86.s
+/ compare and swap for Sun Studio on x86
+/
+/ Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
+/ Portions Copyright (c) 1994, Regents of the University of California
+/
+/ IDENTIFICATION
+/ $PostgreSQL$
+/
+/-------------------------------------------------------------------------
/ Fortunately the Sun compiler can process cpp conditionals with -P
#endif
-#endif /* __GNUC__ */
+#endif /* defined(__GNUC__) || defined(__INTEL_COMPILER) */
#endif
-#if defined(__sun) && (defined(__i386) || defined(__x86_64__) || defined(__sparc__) || defined(__sparc))
+#if defined(__SUNPRO_C) && (defined(__i386) || defined(__x86_64__) || defined(__sparc__) || defined(__sparc))
#define HAS_TEST_AND_SET
#if defined(__i386) || defined(__x86_64__) || defined(__sparcv9) || defined(__sparcv8plus)
# If --enable-profiling is specified, we need -DLINUX_PROFILE
PLATFORM_PROFILE_FLAGS="-DLINUX_PROFILE"
+
+if test "$SUN_STUDIO_CC" = "yes" ; then
+ CC="$CC -Xa" # relaxed ISO C mode
+ CFLAGS="-v" # -v is like gcc -Wall
+ if test "$enable_debug" != yes; then
+ CFLAGS="$CFLAGS -O" # any optimization breaks debug
+ fi
+
+ # Pick the right test-and-set (TAS) code for the Sun compiler.
+ # We would like to use in-line assembler, but the compiler
+ # requires *.il files to be on every compile line, making
+ # the build system too fragile.
+ case $host_cpu in
+ sparc)
+ need_tas=yes
+ tas_file=sunstudio_sparc.s
+ ;;
+ i?86|x86_64)
+ need_tas=yes
+ tas_file=sunstudio_x86.s
+ ;;
+ esac
+fi
-if test "$GCC" != yes ; then
+if test "$SUN_STUDIO_CC" = yes ; then
CC="$CC -Xa" # relaxed ISO C mode
- CFLAGS="-v -DSUNOS4_CC" # -v is like gcc -Wall
+ CFLAGS="-v" # -v is like gcc -Wall
if test "$enable_debug" != yes; then
CFLAGS="$CFLAGS -O" # any optimization breaks debug
fi
# Pick the right test-and-set (TAS) code for the Sun compiler.
# We would like to use in-line assembler, but the compiler
- # requires *.il files to be on every compile line, making
+ # requires *.il files to be on every compile line, making
# the build system too fragile.
- case $host in
- sparc-*-solaris*)
+ case $host_cpu in
+ sparc)
need_tas=yes
- tas_file=solaris_sparc.s
+ tas_file=sunstudio_sparc.s
;;
- i?86-*-solaris*)
+ i?86|x86_64)
need_tas=yes
- tas_file=solaris_x86.s
+ tas_file=sunstudio_x86.s
;;
esac
fi