scanner: Put the -l library names after the .o
authorAlbert Astals Cid <aacid@kde.org>
Tue, 29 Nov 2011 18:45:55 +0000 (18:45 +0000)
committerColin Walters <walters@verbum.org>
Tue, 29 Nov 2011 18:57:29 +0000 (13:57 -0500)
That is how gcc expects them.

From the gcc man page:
-llibrary
   Search the library named library when linking.

   It makes a difference where in the command you write this option; the linker
searches and processes libraries and object files in the order they are
specified.  Thus, foo.o -lz bar.o searches library z after file foo.o but
before bar.o.  If bar.o refers to functions in z, those functions may not be
loaded.

https://bugzilla.gnome.org/show_bug.cgi?id=664616

giscanner/dumper.py

index 7c2eba8bb8769f0b8f1d12d9214d48c64a99008d..baa51a9f6d677648925bc5d5720b39a501db7de4 100644 (file)
@@ -238,17 +238,17 @@ class DumpCompiler(object):
         # likely to be uninstalled yet and we want the uninstalled RPATHs have
         # priority (or we might run with installed library that is older)
 
-        if not self._options.external_library:
-            self._add_link_internal_args(args, libtool)
-        else:
-            self._add_link_external_args(args)
-
         for source in sources:
             if not os.path.exists(source):
                 raise CompilerError(
                     "Could not find object file: %s" % (source, ))
         args.extend(list(sources))
 
+        if not self._options.external_library:
+            self._add_link_internal_args(args, libtool)
+        else:
+            self._add_link_external_args(args)
+
         if not self._options.quiet:
             print "g-ir-scanner: link: %s" % (
                 subprocess.list2cmdline(args), )