jit: on OS X, add -Wl,-undefined,dynamic_lookup to driver invocation
authorDavid Malcolm <dmalcolm@redhat.com>
Fri, 14 Aug 2015 01:18:14 +0000 (01:18 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Fri, 14 Aug 2015 01:18:14 +0000 (01:18 +0000)
gcc/jit/ChangeLog:
* jit-playback.c (invoke_driver): On OS X, add
"-Wl,-undefined,dynamic_lookup" to the driver arguments.

From-SVN: r226882

gcc/jit/ChangeLog
gcc/jit/jit-playback.c

index 2cb6dfc215a8be8c3313a7db74c772d61984f694..efa0d8892036bfd767ea31c1ee93141d63b83e7d 100644 (file)
@@ -1,3 +1,8 @@
+2015-08-13  David Malcolm  <dmalcolm@redhat.com>
+
+       * jit-playback.c (invoke_driver): On OS X, add
+       "-Wl,-undefined,dynamic_lookup" to the driver arguments.
+
 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
 
        * docs/topics/compatibility.rst (LIBGCCJIT_ABI_4): New.
index 925fa86474ed0608d1cb04de930588e99dfa36a5..01cfd4baf13ec09acbd0dc7d67852ee77d3212cd 100644 (file)
@@ -2416,6 +2416,15 @@ invoke_driver (const char *ctxt_progname,
      time.  */
   ADD_ARG ("-fno-use-linker-plugin");
 
+#if defined (DARWIN_X86) || defined (DARWIN_PPC)
+  /* OS X's linker defaults to treating undefined symbols as errors.
+     If the context has any imported functions or globals they will be
+     undefined until the .so is dynamically-linked into the process.
+     Ensure that the driver passes in "-undefined dynamic_lookup" to the
+     linker.  */
+  ADD_ARG ("-Wl,-undefined,dynamic_lookup");
+#endif
+
   /* pex argv arrays are NULL-terminated.  */
   argvec.safe_push (NULL);