summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xBUILD/SETUP.sh8
-rwxr-xr-xBUILD/compile-solaris-amd6477
-rwxr-xr-x[-rw-r--r--]BUILD/compile-solaris-amd64-debug13
-rwxr-xr-xBUILD/compile-solaris-amd64-forte70
-rwxr-xr-x[-rw-r--r--]BUILD/compile-solaris-amd64-forte-debug65
-rw-r--r--storage/innobase/include/univ.i6
-rw-r--r--storage/pbxt/src/Makefile.am2
-rw-r--r--storage/pbxt/src/lock_xt.h4
-rw-r--r--storage/pbxt/src/pbms.h18
9 files changed, 102 insertions, 161 deletions
diff --git a/BUILD/SETUP.sh b/BUILD/SETUP.sh
index 12f80c40e9f..fa6b2de90c3 100755
--- a/BUILD/SETUP.sh
+++ b/BUILD/SETUP.sh
@@ -80,7 +80,13 @@ path=`dirname $0`
. "$path/check-cpu"
export AM_MAKEFLAGS
-AM_MAKEFLAGS="-j 6"
+# Default to a parallel build, but only if AM_MAKEFLAGS is not set.
+# (So buildbots can easily disable this behaviour if required.)
+if test -z "$AM_MAKEFLAGS"
+then
+ AM_MAKEFLAGS="-j 6"
+fi
+
# SSL library to use.--with-ssl will select our bundled yaSSL
# implementation of SSL. To use openSSl you will nee too point out
diff --git a/BUILD/compile-solaris-amd64 b/BUILD/compile-solaris-amd64
index f128fb12973..1373fc398fe 100755
--- a/BUILD/compile-solaris-amd64
+++ b/BUILD/compile-solaris-amd64
@@ -1,55 +1,32 @@
-#!/usr/bin/bash
+#!/bin/sh
-function _find_mysql_root () (
- while [ "x$PWD" != "x/" ]; do
- # Check if some directories are present
- if [ -d BUILD -a -d sql -a -d mysys ]; then
- echo "$PWD"
- return 0
- fi
- cd ..
- done
- return 1
-)
+# Build setup for Solaris 10
+
+# Make the Sun Freeware packages use the bundled Perl, instead of their own:
+# ln -s `which perl` /usr/local/bin
+# Your $PATH needs to include (in this order):
+# /usr/local/bin:/usr/sfw/bin:/usr/ccs/bin
+# (For Sun Freeware, bundled GNU utilities, Solaris ar, etc.)
+#
+# Required packages from http://sunfreeware.com/indexintel10.html :
+# (The GNU m4 bundled with Solaris is too old.)
+# automake-1.10.2-sol10-x86-local.gz
+# autoconf-2.63-sol10-x86-local.gz
+# m4-1.4.12-sol10-x86-local.gz
+# libsigsegv-2.6-sol10-x86-local.gz
+# libtool-1.5.24-sol10-x86-local.gz
+# ( how to install these packages:
+ # wget ftp://ftp.sunfreeware.com/pub/freeware/intel/10/automake-1.10.2-sol10-x86-local.gz
+ # gunzip automake-1.10.2-sol10-x86-local.gz
+ # pkgadd -d automake-1.10.2-sol10-x86-local
+# )
-make -k clean || true
-/bin/rm -f */.deps/*.P config.cache
-
path=`dirname $0`
-. "$path/autorun.sh"
-
-warning_flags="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused"
-compiler_flags="-g -O3 -fno-omit-frame-pointer"
+. "$path/SETUP.sh"
+extra_flags="$amd64_cflags -D__sun -m64 -mtune=athlon64"
+extra_configs="$amd64_configs $max_configs --with-libevent"
-export CC CXX CFLAGS CXXFLAGS LDFLAGS LIBS
-CC="gcc"
-CXX="gcc"
-CFLAGS="$warning_flags $compiler_flags"
-CXXFLAGS=""
-LDFLAGS="-O3 -g -static-libgcc"
-LIBS=-lmtmalloc
-root=$(_find_mysql_root)
+LDFLAGS="-lmtmalloc -static-libgcc"
+export LDFLAGS
-$root/configure \
- --prefix=/usr/local/mysql \
- --localstatedir=/usr/local/mysql/data \
- --libexecdir=/usr/local/mysql/bin \
- --with-extra-charsets=complex \
- --enable-thread-safe-client \
- --enable-local-infile \
- --with-zlib-dir=bundled \
- --with-big-tables \
- --with-readline \
- --with-archive-storage-engine \
- --with-named-curses=-lcurses \
- --with-big-tables \
- --with-innodb \
- --with-berkeley-db \
- --with-example-storage-engine \
- --with-blackhole-storage-engine \
- --with-ndbcluster \
- --with-federated-storage-engine \
- --with-csv-storage-engine \
- --with-ssl \
- --with-embedded-server \
- --disable-shared
+. "$path/FINISH.sh"
diff --git a/BUILD/compile-solaris-amd64-debug b/BUILD/compile-solaris-amd64-debug
index ad1c298907f..3bc095ae385 100644..100755
--- a/BUILD/compile-solaris-amd64-debug
+++ b/BUILD/compile-solaris-amd64-debug
@@ -1,10 +1,11 @@
-#! /bin/sh
+#!/bin/sh
+
path=`dirname $0`
. "$path/SETUP.sh"
-amd64_cflags="-m64 -mtune=athlon64"
-extra_flags="$amd64_cflags $debug_cflags $max_cflags"
-c_warnings="$c_warnings $debug_extra_warnings"
-cxx_warnings="$cxx_warnings $debug_extra_warnings"
-extra_configs="$amd64_configs $debug_configs $max_configs --enable-thread-safe-client"
+extra_flags="$amd64_cflags -D__sun -m64 -mtune=athlon64 $debug_cflags"
+extra_configs="$amd64_configs $debug_configs $max_configs --with-libevent"
+
+LDFLAGS="-lmtmalloc -static-libgcc"
+export LDFLAGS
. "$path/FINISH.sh"
diff --git a/BUILD/compile-solaris-amd64-forte b/BUILD/compile-solaris-amd64-forte
index 03a566a0d12..c89b3129a1b 100755
--- a/BUILD/compile-solaris-amd64-forte
+++ b/BUILD/compile-solaris-amd64-forte
@@ -1,53 +1,29 @@
-#! /bin/sh
+#!/bin/sh
-gmake -k clean || true
-/bin/rm -f */.deps/*.P config.cache
-
-path=`dirname $0`
-. "$path/autorun.sh"
+# See file compile-solaris-amd64 for basic pre-requisites.
+
+# This build uses the Sun Studio compilers (cc, CC), available from:
+# http://developers.sun.com/sunstudio/downloads/index.jsp
+# Note that you may want to apply current patches, as the downloaded version
+# is typically out of date. Download the PKG version if you intend to patch!
+
+# After installing, add /opt/SUNWspro/bin to your $PATH
-# For "optimal" code for this computer add -fast to EXTRA
-# To compile 64 bit, add -m64 to EXTRA_64_BIT
-EXTRA_64_BIT="-m64"
-EXTRA="-fast"
+path=`dirname $0`
+. "$path/SETUP.sh"
+
+extra_flags="-m64 -mt -D_FORTEC_ -xbuiltin=%all -xlibmil -xlibmopt -fns=no -xprefetch=auto -xprefetch_level=3"
+extra_configs="$max_configs --with-libevent"
-#
-# The following should not need to be touched
-#
+warnings=""
+c_warnings=""
+cxx_warnings=""
+base_cxxflags="-noex"
-export CC CXX CFLAGS CXXFLAGS LIBS
-STD="-g -mt -D_FORTEC_ $EXTRA $EXTRA_64_BIT"
-ASFLAGS="$EXTRA_64_BIT"
-CC=cc-5.0
-CFLAGS="-Xa -xstrconst $STD"
+CC=cc
+CFLAGS="-xstrconst"
CXX=CC
-CXXFLAGS="-noex $STD"
-LIBS=-lmtmalloc
-./configure \
- --prefix=/usr/local/mysql \
- --localstatedir=/usr/local/mysql/data \
- --libexecdir=/usr/local/mysql/bin \
- --with-extra-charsets=complex \
- --enable-thread-safe-client \
- --enable-local-infile \
- --with-zlib-dir=bundled \
- --with-big-tables \
- --with-readline \
- --with-archive-storage-engine \
- --with-named-curses=-lcurses \
- --with-big-tables \
- --with-innodb \
- --with-example-storage-engine \
- --with-blackhole-storage-engine \
- --with-federated-storage-engine \
- --with-csv-storage-engine \
- --with-ssl \
- --enable-assembler
-
-# Not including:
-# --with-ndbcluster
-# --with-berkeley-db
-
-gmake -j4
-test $? = 0 && make test
+LDFLAGS="-lmtmalloc"
+
+. "$path/FINISH.sh"
diff --git a/BUILD/compile-solaris-amd64-forte-debug b/BUILD/compile-solaris-amd64-forte-debug
index 4b0726bb3ce..7ccf0f3a9a3 100644..100755
--- a/BUILD/compile-solaris-amd64-forte-debug
+++ b/BUILD/compile-solaris-amd64-forte-debug
@@ -1,54 +1,27 @@
-#! /bin/sh
+#!/bin/sh
-gmake -k clean || true
-/bin/rm -f */.deps/*.P config.cache
-
path=`dirname $0`
-. "$path/autorun.sh"
+. "$path/SETUP.sh"
-# To compile 64 bit, add -m64 to EXTRA_64_BIT
-EXTRA_64_BIT="-m64"
+# Take only #define options - the others are gcc specific.
+# (real fix is for SETUP.sh not to put gcc specific options in $debug_cflags)
+DEFS=""
+for F in $debug_cflags ; do
+ expr "$F" : "^-D" && DEFS="$DEFS $F"
+done
+debug_cflags="-O0 -g $DEFS"
-# For "optimal" code for this computer add -fast to EXTRA. Note that
-# this causes problem with debugging the program since -fast implies
-# -xO5.
-EXTRA=""
+extra_flags="-m64 -mt -D_FORTEC_ -xlibmopt -fns=no $debug_cflags"
+extra_configs="$max_configs --with-libevent $debug_configs"
-#
-# The following should not need to be touched
-#
+warnings=""
+c_warnings=""
+cxx_warnings=""
+base_cxxflags="-noex"
-export CC CXX CFLAGS CXXFLAGS
-STD="-g -mt -D_FORTEC_ $EXTRA $EXTRA_64_BIT $debug_cflags"
-ASFLAGS="$EXTRA_64_BIT"
-CC=cc-5.0
-CFLAGS="-Xa -xstrconst $STD"
+CC=cc
+CFLAGS="-xstrconst"
CXX=CC
-CXXFLAGS="-noex $STD"
-./configure \
- --prefix=/usr/local/mysql \
- --localstatedir=/usr/local/mysql/data \
- --libexecdir=/usr/local/mysql/bin \
- --with-extra-charsets=complex \
- --enable-thread-safe-client \
- --enable-local-infile \
- --with-zlib-dir=bundled \
- --with-big-tables \
- --with-readline \
- --with-archive-storage-engine \
- --with-named-curses=-lcurses \
- --with-big-tables \
- --with-innodb \
- --with-example-storage-engine \
- --with-blackhole-storage-engine \
- --with-federated-storage-engine \
- --with-csv-storage-engine \
- --with-ssl \
- --with-debug \
- --enable-assembler
+LDFLAGS="-lmtmalloc"
-# Not including:
-# --with-ndbcluster
-# --with-berkeley-db
-
-gmake -j4
+. "$path/FINISH.sh"
diff --git a/storage/innobase/include/univ.i b/storage/innobase/include/univ.i
index 8ab62e655ff..b79eed4fbb7 100644
--- a/storage/innobase/include/univ.i
+++ b/storage/innobase/include/univ.i
@@ -55,10 +55,10 @@ of the 32-bit x86 assembler in mutex operations. */
# define UNIV_CAN_USE_X86_ASSEMBLER
# endif
-/* We only try to do explicit inlining of functions with gcc and
-Microsoft Visual C++ */
+/* Enable explicit inlining of functions only for compilers known to
+support it. */
-# if !defined(__GNUC__)
+# if !defined(__GNUC__) && !defined(__SUNPRO_C)
# undef UNIV_MUST_NOT_INLINE /* Remove compiler warning */
# define UNIV_MUST_NOT_INLINE
# endif
diff --git a/storage/pbxt/src/Makefile.am b/storage/pbxt/src/Makefile.am
index 2d7cdc8d2e8..2272fe81464 100644
--- a/storage/pbxt/src/Makefile.am
+++ b/storage/pbxt/src/Makefile.am
@@ -46,7 +46,7 @@ libpbxt_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN -std=c99
EXTRA_LIBRARIES = libpbxt.a
noinst_LIBRARIES = libpbxt.a
libpbxt_a_SOURCES = $(libpbxt_la_SOURCES)
-libpbxt_a_CXXFLAGS = $(AM_CXXFLAGS) -Wno-long-long
+libpbxt_a_CXXFLAGS = $(AM_CXXFLAGS)
libpbxt_a_CFLAGS = $(AM_CFLAGS) -std=c99
EXTRA_DIST = CMakeLists.txt
diff --git a/storage/pbxt/src/lock_xt.h b/storage/pbxt/src/lock_xt.h
index 1019421871d..214b00a849e 100644
--- a/storage/pbxt/src/lock_xt.h
+++ b/storage/pbxt/src/lock_xt.h
@@ -208,9 +208,9 @@ inline void xt_atomic_dec2(volatile xtWord2 *mptr)
#elif defined(__GNUC__)
__sync_fetch_and_sub(mptr, 1);
#elif defined(XT_SPL_SOLARIS_LIB)
- val1 = atomic_dec_16_nv(mptr);
+ atomic_dec_16_nv(mptr);
#else
- val1 = --(*mptr);
+ --(*mptr);
#endif
}
diff --git a/storage/pbxt/src/pbms.h b/storage/pbxt/src/pbms.h
index 1c1f4e71c04..bf29c63651e 100644
--- a/storage/pbxt/src/pbms.h
+++ b/storage/pbxt/src/pbms.h
@@ -782,21 +782,28 @@ private:
void deleteTempFiles()
{
- struct dirent entry;
+ struct dirent *entry;
struct dirent *result;
DIR *odir;
int err;
+ size_t sz;
char temp_file[100];
+#ifdef XT_SOLARIS
+ sz = sizeof(struct dirent) + pathconf("/tmp/", _PC_NAME_MAX); // Solaris, see readdir(3C)
+#else
+ sz = sizeof(struct dirent);
+#endif
+ entry = (struct dirent*)malloc(sz);
if (!(odir = opendir("/tmp/")))
return;
- err = readdir_r(odir, &entry, &result);
+ err = readdir_r(odir, entry, &result);
while (!err && result) {
const char **prefix = temp_prefix;
while (*prefix) {
- if (startsWith(entry.d_name, *prefix)) {
- int pid = atoi(entry.d_name + strlen(*prefix));
+ if (startsWith(entry->d_name, *prefix)) {
+ int pid = atoi(entry->d_name + strlen(*prefix));
/* If the process does not exist: */
if (kill(pid, 0) == -1 && errno == ESRCH) {
@@ -807,9 +814,10 @@ private:
prefix++;
}
- err = readdir_r(odir, &entry, &result);
+ err = readdir_r(odir, entry, &result);
}
closedir(odir);
+ free(entry);
}
};
#endif // PBMS_API