[tor-commits] [tor/master] More sophisticated attempt at detecting working linker options

nickm at torproject.org nickm at torproject.org
Mon Jun 18 15:56:34 UTC 2012


commit adbdeafad9a85226ef9d232e85360bea54f78a73
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Jun 15 21:04:07 2012 -0400

    More sophisticated attempt at detecting working linker options
    
    On some platforms, the linker is perfectly happy to produce binaries
    that won't run if you give it the wrong set of flags.  So when not
    cross-compiling, try to link-and-run a little test program, rather
    than just linking it.
    
    Possible fix for 6173.
---
 acinclude.m4    |    9 +++++++--
 changes/bug6173 |    5 +++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/acinclude.m4 b/acinclude.m4
index 4328059..ae14411 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -71,9 +71,14 @@ AC_DEFUN([TOR_CHECK_LDFLAGS], [
     CFLAGS="$CFLAGS -pedantic -Werror"
     LDFLAGS="$LDFLAGS $2 $1"
     LIBS="$LIBS $3"
-    AC_TRY_LINK([], [return 0;],
+    AC_RUN_IFELSE([
+#include <stdio.h>
+int main(int argc, char **argv) { fputs("", stdout); return 0; }],
                    [AS_VAR_SET(VAR,yes)],
-                   [AS_VAR_SET(VAR,no)])
+                   [AS_VAR_SET(VAR,no)],
+		   [AC_TRY_LINK([], [return 0;],
+                                    [AS_VAR_SET(VAR,yes)],
+                                    [AS_VAR_SET(VAR,no)])])
     CFLAGS="$tor_saved_CFLAGS"
     LDFLAGS="$tor_saved_LDFLAGS"
     LIBS="$tor_saved_LIBS"
diff --git a/changes/bug6173 b/changes/bug6173
new file mode 100644
index 0000000..3b467a9
--- /dev/null
+++ b/changes/bug6173
@@ -0,0 +1,5 @@
+  o Major bugfixes:
+    - Make our linker option detection code more robust against linkers
+      where a bad combination of options completes successfully but
+      makes an unrunnable binary. Fixes bug 6173; bugfix on 0.2.3.17-beta.
+





More information about the tor-commits mailing list