From c66d5c20cf78b6ab144e77788eedcaecb17e2e6f Mon Sep 17 00:00:00 2001 From: Bryan Hundven Date: Fri, 26 Feb 2016 03:34:52 -0800 Subject: configure: Check to see if gcc can static link This is a semi-nasty-hack to see if gcc can static link. Obviously on Mac OS X this is not possible, so we set CT_CONFIGURE_has_static_link=y if it can. Signed-off-by: Bryan Hundven diff --git a/configure.ac b/configure.ac index 4f0b428..4fd5776 100644 --- a/configure.ac +++ b/configure.ac @@ -133,6 +133,19 @@ AS_IF([test -z "$CC"], [AC_MSG_ERROR([no suitable compiler found])]) AC_PROG_CPP +#--------------------------------------------------------------------- +# Check to see if gcc can static link +AC_MSG_CHECKING([if gcc can static link]) +echo "int main() {}" | gcc -static -xc - > /dev/null 2>&1 +static_test=$? +AS_IF([test $static_test -eq 0], + [static_link=y + AC_MSG_RESULT([yes])], + [test $static_test -ne 0], + [static_link= + AC_MSG_RESULT([no])]) +ACX_SET_KCONFIG_OPTION([static_link]) + # But we still need a way to specify the PATH to GNU versions (Damn MacOS) AC_ARG_WITH([objcopy], AS_HELP_STRING([--with-objcopy=PATH], -- cgit v0.10.2-6-g49f6 From b3869e933b29286fe362e68fbda3184acf655de8 Mon Sep 17 00:00:00 2001 From: Bryan Hundven Date: Fri, 26 Feb 2016 03:58:09 -0800 Subject: config: Add static link check to static options If we can't static link with gcc, then don't allow static linking. Signed-off-by: Bryan Hundven diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2 index 50a0574..17b41cc 100644 --- a/config/cc/gcc.in.2 +++ b/config/cc/gcc.in.2 @@ -56,6 +56,7 @@ config CC_GCC_STATIC_LIBSTDCXX bool prompt "Link libstdc++ statically into the gcc binary" default y + depends on CONFIGURE_has_static_link select WANTS_STATIC_LINK help Newer gcc versions require some c++ libraries. So statically diff --git a/config/debug/gdb.in.cross b/config/debug/gdb.in.cross index 99c9825..07b85b8 100644 --- a/config/debug/gdb.in.cross +++ b/config/debug/gdb.in.cross @@ -18,6 +18,7 @@ if GDB_CROSS config GDB_CROSS_STATIC bool prompt "Build a static cross gdb" + depends on CONFIGURE_has_static_link select WANTS_STATIC_LINK help A static cross gdb can be usefull if you debug on a machine that is diff --git a/config/debug/gdb.in.gdbserver b/config/debug/gdb.in.gdbserver index 50c3b8b..8d8fce5 100644 --- a/config/debug/gdb.in.gdbserver +++ b/config/debug/gdb.in.gdbserver @@ -17,6 +17,7 @@ config GDB_GDBSERVER_HAS_IPA_LIB config GDB_GDBSERVER_STATIC bool prompt "Build a static gdbserver" + depends on CONFIGURE_has_static_link default y help In case you have trouble with dynamic loading of shared libraries, diff --git a/config/debug/gdb.in.native b/config/debug/gdb.in.native index 1861506..915debd 100644 --- a/config/debug/gdb.in.native +++ b/config/debug/gdb.in.native @@ -15,6 +15,7 @@ if GDB_NATIVE config GDB_NATIVE_STATIC bool prompt "Build a static native gdb" + depends on CONFIGURE_has_static_link help In case you have trouble with dynamic loading of shared libraries, you will find that a static gdb comes in handy. diff --git a/config/toolchain.in b/config/toolchain.in index 361c6bd..ca74ee7 100644 --- a/config/toolchain.in +++ b/config/toolchain.in @@ -52,6 +52,7 @@ config WANTS_STATIC_LINK config STATIC_TOOLCHAIN bool prompt "Build Static Toolchain" + depends on CONFIGURE_has_static_link select WANTS_STATIC_LINK help Build static host binaries. -- cgit v0.10.2-6-g49f6