summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorsasha@mysql.sashanet.com <>2001-04-02 19:01:15 -0600
committersasha@mysql.sashanet.com <>2001-04-02 19:01:15 -0600
commitf754012ad08a6cf9988e6cd2c647670c4c65573d (patch)
treecc9f61f71666e0b4b3f190526b4d8f1641274e5d /configure.in
parent620010abfca24b5304e906d3515a8be9e16d5851 (diff)
downloadmariadb-git-f754012ad08a6cf9988e6cd2c647670c4c65573d.tar.gz
got --with-other-libc to work, finally
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in45
1 files changed, 40 insertions, 5 deletions
diff --git a/configure.in b/configure.in
index c665962b22c..42e492e9d64 100644
--- a/configure.in
+++ b/configure.in
@@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_INIT(sql/mysqld.cc)
AC_CANONICAL_SYSTEM
# The Docs Makefile.am parses this line!
-AM_INIT_AUTOMAKE(mysql, 3.23.36)
+AM_INIT_AUTOMAKE(mysql, 3.23.37)
AM_CONFIG_HEADER(config.h)
PROTOCOL_VERSION=10
@@ -390,6 +390,38 @@ then
AC_MSG_ERROR([MySQL requiers a ANSI C compiler (and a C++ compiler). Try gcc. See the Installation chapter in the Reference Manual.])
fi
+NOINST_LDFLAGS=
+
+AC_ARG_WITH(other-libc,
+ [ --with-other-libc=/path/to/other/libc/dir Link against libc and other standard libraries installed in the specified non-standard location overriding default. Originally added to be able to link against glibc 2.2 without making the user upgrade the standard libc installation ],
+ [
+ other_libc_include="$withval/include"
+ other_libc_lib="$withval/lib"
+ with_other_libc="yes"
+ enable_shared="no"
+ all_is_static="yes"
+ CFLAGS="$CFLAGS -I$other_libc_include"
+ CXXFLAGS="$CXXFLAGS -fpermissive -I$other_libc_include"
+#There seems to be a feature in gcc that treats system and libc headers
+#leniently when they violatate ANSI C++ standard, but it is strict otherwise
+#since gcc cannot now recognize that our headers are libc, we work around
+#by telling it to be permissive
+ LDFLAGS="$LDFLAGS -static -L$other_libc_lib "
+ with_mysqld_ldflags="-all-static"
+ with_client_ldflags="-all-static"
+ NOINST_LDFLAGS="-all-static"
+#when linking against custom libc installed separately, we want to force all
+#binary builds to be static, including the build done by configure itself
+#to test for system features
+ ],
+ [
+ other_libc_include=
+ other_libc_lib=
+ with_other_libc="no"
+ ]
+)
+AC_SUBST(NOINST_LDFLAGS)
+
AC_ARG_WITH(server-suffix,
[ --with-server-suffix Append value to the version string.],
# I heard that 'cut' isn't portable. Isn't there a better way?
@@ -1162,7 +1194,7 @@ fi
AC_SUBST(COMPILATION_COMMENT)
AC_MSG_CHECKING("need of special linking flags")
-if test "$IS_LINUX" = "true"
+if test "$IS_LINUX" = "true" -a "$all_is_static" != "yes"
then
LDFLAGS="$LDFLAGS -rdynamic"
AC_MSG_RESULT("-rdynamic")
@@ -1317,7 +1349,10 @@ ac_save_CXXFLAGS="$CXXFLAGS"
AC_CACHE_CHECK([style of gethost* routines], mysql_cv_gethost_style,
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
-if test "$ac_cv_prog_gxx" = "yes"
+#do not treat warnings as errors if we are linking agaist other libc
+#this is to work around gcc not being permissive on non-system includes
+#with respect to ANSI C++
+if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
then
CXXFLAGS="$CXXFLAGS -Werror"
fi
@@ -1349,7 +1384,7 @@ ac_save_CXXFLAGS="$CXXFLAGS"
AC_CACHE_CHECK([style of gethostname_r routines], mysql_cv_gethostname_style,
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
-if test "$ac_cv_prog_gxx" = "yes"
+if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
then
CXXFLAGS="$CXXFLAGS -Werror"
fi
@@ -1380,7 +1415,7 @@ ac_save_CXXFLAGS="$CXXFLAGS"
AC_CACHE_CHECK([3 argument to gethostname_r routines], mysql_cv_gethostname_arg,
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
-if test "$ac_cv_prog_gxx" = "yes"
+if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
then
CXXFLAGS="$CXXFLAGS -Werror"
fi