Merge Toby Thain's Solaris fixes.
This commit is contained in:
commit
db020fb30f
@ -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
|
||||
|
@ -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"
|
||||
|
13
BUILD/compile-solaris-amd64-debug
Normal file → Executable file
13
BUILD/compile-solaris-amd64-debug
Normal file → Executable file
@ -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"
|
||||
|
@ -1,53 +1,29 @@
|
||||
#! /bin/sh
|
||||
#!/bin/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
|
||||
|
||||
|
||||
gmake -k clean || true
|
||||
/bin/rm -f */.deps/*.P config.cache
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
. "$path/SETUP.sh"
|
||||
|
||||
# For "optimal" code for this computer add -fast to EXTRA
|
||||
# To compile 64 bit, add -m64 to EXTRA_64_BIT
|
||||
extra_flags="-m64 -mt -D_FORTEC_ -xbuiltin=%all -xlibmil -xlibmopt -fns=no -xprefetch=auto -xprefetch_level=3"
|
||||
extra_configs="$max_configs --with-libevent"
|
||||
|
||||
EXTRA_64_BIT="-m64"
|
||||
EXTRA="-fast"
|
||||
warnings=""
|
||||
c_warnings=""
|
||||
cxx_warnings=""
|
||||
base_cxxflags="-noex"
|
||||
|
||||
#
|
||||
# The following should not need to be touched
|
||||
#
|
||||
|
||||
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
|
||||
LDFLAGS="-lmtmalloc"
|
||||
|
||||
# Not including:
|
||||
# --with-ndbcluster
|
||||
# --with-berkeley-db
|
||||
|
||||
gmake -j4
|
||||
test $? = 0 && make test
|
||||
. "$path/FINISH.sh"
|
||||
|
65
BUILD/compile-solaris-amd64-forte-debug
Normal file → Executable file
65
BUILD/compile-solaris-amd64-forte-debug
Normal file → Executable file
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user