From b73b0f7886dba82909bc25cef27f5aada18bb359 Mon Sep 17 00:00:00 2001
From: "konstantin@mysql.com" <>
Date: Wed, 4 Feb 2004 20:51:26 +0300
Subject: [PATCH] Fix for bug #2214: "CC: ERROR File = item.h, Line = 401 The
 identifier strtoll is undefined" (compilation failure on SGI IRIX + MIPSPro
 7.41) Compilation script implemented. Tested in 32 and 64 bit mode

---
 BUILD/compile-irix-mips64-mipspro | 84 +++++++++++++++++++++++++++++++
 configure.in                      |  2 +-
 2 files changed, 85 insertions(+), 1 deletion(-)
 create mode 100755 BUILD/compile-irix-mips64-mipspro

diff --git a/BUILD/compile-irix-mips64-mipspro b/BUILD/compile-irix-mips64-mipspro
new file mode 100755
index 00000000000..d8107ad73c0
--- /dev/null
+++ b/BUILD/compile-irix-mips64-mipspro
@@ -0,0 +1,84 @@
+#!/bin/sh
+
+if [ ! -f "sql/mysqld.cc" ]; then
+  echo "You must run this script from the MySQL top-level directory."
+  exit 1
+fi
+
+cflags="-64 -mips4"
+
+if [ "$#" != 0 ]; then
+  case "$1" in
+    --help)
+      echo "Usage: $0 [options]"
+      echo "Options:" 
+      echo "--help                print this message"
+      echo "-32                   build 32-bit binary"
+      echo "-64                   build 64-bit binary [default]"
+      exit 0
+      ;;
+    -64)
+      echo "Building 64-bit binary"
+      ;;
+    -32)
+      echo "Building 32-bit binary"
+      cflags=""
+      ;;
+    *)
+      echo "$0: invalid option '$1'; use --help to show usage"
+      exit 1
+      ;;
+  esac
+else
+  echo "Building 64-bit binary"
+fi
+
+set -x
+make distclean
+aclocal
+autoheader
+libtoolize --automake --force
+automake --force --add-missing
+autoconf
+
+(cd bdb/dist && sh s_all)
+(cd innobase && aclocal && autoheader && aclocal && automake && autoconf)
+
+# C options:
+# -apo          - auto-parallize for multiprocessors (implies -mp)
+# -mp           - generate multiprocessor code
+# These two common optimization options apparently use 'sproc' model of
+# threading, which is not compatible with PTHREADS: don't add them unless you
+# know what you're doing.
+#
+# -c99          - enable C features standardized in C99, such as long long,
+#                 strtoll, stroull etc.
+#                 This option is vital to compile MySQL.
+# -woff         - turn off some warnings 
+# -64           - generate 64 bit object (implies -mips4)
+# -mips4        - produce code for MIPS R10000, MIPS R12000 and further 64 bit
+#                 processors
+# -OPT:Olimit=0 - no limits exists to size of function for compiler to optimize
+#                 it
+nowarn="-woff 1064,1188,1460,1552,1681,1682,3303"
+cflags="$cflags $nowarn -O3 -c99 -OPT:Olimit=0"
+
+# C++ only options:
+# -LANG:exceptions=OFF            - don't generate exception handling code
+#                                   MySQL doesn't use exceptions.
+# -LANG:std=OFF                   - don't link standard C++ library, such as
+#                                   <iostream>, <complex>, etc. 
+# -LANG:libc_in_namespace_std=OFF - libstdc functions can be  
+#                                   declared in namespace 'std', when included
+#                                   into C++ code. Switch this feature off.
+#                                   This option is vital to compile MySQL
+
+cxxflags="$cflags -LANG:exceptions=OFF -LANG:std=OFF"
+cxxflags="$cxxflags -LANG:libc_in_namespace_std=OFF"
+
+CC=cc CXX=CC CFLAGS="$cflags" CXXFLAGS="$cxxflags" \
+./configure --prefix=/usr/local/mysql --disable-shared \
+            --with-extra-charsets=complex --enable-thread-safe-client \
+            --without-extra-tools --disable-dependency-tracking
+
+make 
diff --git a/configure.in b/configure.in
index fd9f6a4f721..bc9bad931ad 100644
--- a/configure.in
+++ b/configure.in
@@ -1053,7 +1053,7 @@ case $SYSTEM_TYPE in
       echo "Using --with-named-thread=-lpthread"
       with_named_thread="-lpthread"
     fi
-    CXXFLAGS="-D_BOOL"
+    CXXFLAGS="$CXXFLAGS -D_BOOL"
     ;;
     *aix4.3*)
       echo "Adding defines for AIX"
-- 
2.30.9