diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.global.in | 3 | ||||
-rw-r--r-- | src/backend/port/Makefile | 6 | ||||
-rw-r--r-- | src/backend/port/tas/sunstudio_sparc.s (renamed from src/backend/port/tas/solaris_sparc.s) | 15 | ||||
-rw-r--r-- | src/backend/port/tas/sunstudio_x86.s (renamed from src/backend/port/tas/solaris_x86.s) | 15 | ||||
-rw-r--r-- | src/include/storage/s_lock.h | 6 | ||||
-rw-r--r-- | src/template/linux | 25 | ||||
-rw-r--r-- | src/template/solaris | 16 |
7 files changed, 64 insertions, 22 deletions
diff --git a/src/Makefile.global.in b/src/Makefile.global.in index f5ca618400a..a562cd116dd 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -1,5 +1,5 @@ # -*-makefile-*- -# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.244 2008/10/03 15:35:17 petere Exp $ +# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.245 2008/10/29 16:06:46 petere Exp $ #------------------------------------------------------------------------------ # All PostgreSQL makefiles include this file and use the variables it sets, @@ -213,6 +213,7 @@ endif # not PGXS CC = @CC@ GCC = @GCC@ +SUN_STUDIO_CC = @SUN_STUDIO_CC@ CFLAGS = @CFLAGS@ # Kind-of compilers diff --git a/src/backend/port/Makefile b/src/backend/port/Makefile index 6a71ef3a2b5..47980426564 100644 --- a/src/backend/port/Makefile +++ b/src/backend/port/Makefile @@ -13,7 +13,7 @@ # be converted to Method 2. # # IDENTIFICATION -# $PostgreSQL: pgsql/src/backend/port/Makefile,v 1.26 2008/02/19 15:29:58 petere Exp $ +# $PostgreSQL: pgsql/src/backend/port/Makefile,v 1.27 2008/10/29 16:06:46 petere Exp $ # #------------------------------------------------------------------------- @@ -33,8 +33,8 @@ endif 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 $@ diff --git a/src/backend/port/tas/solaris_sparc.s b/src/backend/port/tas/sunstudio_sparc.s index 183cea18504..56d85f4514f 100644 --- a/src/backend/port/tas/solaris_sparc.s +++ b/src/backend/port/tas/sunstudio_sparc.s @@ -1,6 +1,15 @@ -!======================================================================= -! 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: pgsql/src/backend/port/tas/sunstudio_sparc.s,v 1.1 2008/10/29 16:06:47 petere Exp $ +! +!------------------------------------------------------------------------- ! Fortunately the Sun compiler can process cpp conditionals with -P diff --git a/src/backend/port/tas/solaris_x86.s b/src/backend/port/tas/sunstudio_x86.s index db1dea7c291..1680ccc6358 100644 --- a/src/backend/port/tas/solaris_x86.s +++ b/src/backend/port/tas/sunstudio_x86.s @@ -1,6 +1,15 @@ -/======================================================================= -/ 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: pgsql/src/backend/port/tas/sunstudio_x86.s,v 1.1 2008/10/29 16:06:47 petere Exp $ +/ +/------------------------------------------------------------------------- / Fortunately the Sun compiler can process cpp conditionals with -P diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h index 7d9448fb7e4..e67b0ab3185 100644 --- a/src/include/storage/s_lock.h +++ b/src/include/storage/s_lock.h @@ -66,7 +66,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/storage/s_lock.h,v 1.164 2008/01/01 19:45:59 momjian Exp $ + * $PostgreSQL: pgsql/src/include/storage/s_lock.h,v 1.165 2008/10/29 16:06:47 petere Exp $ * *------------------------------------------------------------------------- */ @@ -578,7 +578,7 @@ typedef unsigned char slock_t; #endif -#endif /* __GNUC__ */ +#endif /* defined(__GNUC__) || defined(__INTEL_COMPILER) */ @@ -782,7 +782,7 @@ typedef unsigned char slock_t; #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) diff --git a/src/template/linux b/src/template/linux index ed800d23f12..19904bc22e1 100644 --- a/src/template/linux +++ b/src/template/linux @@ -1,7 +1,30 @@ -# $PostgreSQL: pgsql/src/template/linux,v 1.30 2007/09/21 02:33:46 tgl Exp $ +# $PostgreSQL: pgsql/src/template/linux,v 1.31 2008/10/29 16:06:47 petere Exp $ # Force _GNU_SOURCE on; plperl is broken with Perl 5.8.0 otherwise CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" # 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 diff --git a/src/template/solaris b/src/template/solaris index 07efcc0bda4..40e3a68c88e 100644 --- a/src/template/solaris +++ b/src/template/solaris @@ -1,22 +1,22 @@ -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 |