Move libffi and gmodule to Requires.private in .pc files
authorKalev Lember <kalevlember@gmail.com>
Fri, 13 Apr 2012 15:30:30 +0000 (18:30 +0300)
committerKalev Lember <kalevlember@gmail.com>
Fri, 13 Apr 2012 18:02:41 +0000 (21:02 +0300)
The intention of the change is to clean up unnecessary linking with
libffi and gmodule in g-i consumers as they typically don't use any
libffi/gmodule symbols.

Listing libffi and gmodule in pkg-config Requires meant that every
consumer that wanted to link with -lgirepository also got -lffi and
-lgmodule-2.0, which caused ld to emit unnecessary DT_NEEDED entries.

Moving the deps to Requires.private removes the internal dependencies
from 'pkg-config --libs', but keeps them in --libs --static output. The
change won't affect --cflags and the include directories necessary for
<ffi.h> will still be listed.

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

gobject-introspection-1.0.pc.in
gobject-introspection-no-export-1.0.pc.in

index f08278642c3784341333812abdf1562c297cf950..9613fec1ac3025929f9b769ffe527f1b26dc5988 100644 (file)
@@ -14,8 +14,10 @@ girdir=${datadir}/gir-1.0
 typelibdir=${libdir}/girepository-1.0
 
 Cflags: -I${includedir}/gobject-introspection-1.0 @FFI_PC_CFLAGS@
-Requires: glib-2.0 gobject-2.0 gmodule-2.0 @FFI_PC_PACKAGES@
-Libs: -L${libdir} -lgirepository-1.0 @FFI_PC_LIBS@
+Requires: glib-2.0 gobject-2.0
+Requires.private: gmodule-2.0 @FFI_PC_PACKAGES@
+Libs: -L${libdir} -lgirepository-1.0
+Libs.private: @FFI_PC_LIBS@
 
 Name: gobject-introspection
 Description: GObject Introspection
index c798890eb44d4eece18e4b3e4069287cdf78a7c2..a6d6cc6dbac12cfe3d19dfe7f23a650a9cdc7522 100644 (file)
@@ -13,8 +13,10 @@ girdir=${datadir}/gir-1.0
 typelibdir=${libdir}/girepository-1.0
 
 Cflags: -I${includedir}/gobject-introspection-1.0 @FFI_PC_CFLAGS@
-Requires: glib-2.0 gobject-2.0 gmodule-no-export-2.0 @FFI_PC_PACKAGES@
-Libs: -L${libdir} -lgirepository-1.0 @FFI_PC_LIBS@
+Requires: glib-2.0 gobject-2.0
+Requires.private: gmodule-no-export-2.0 @FFI_PC_PACKAGES@
+Libs: -L${libdir} -lgirepository-1.0
+Libs.private: @FFI_PC_LIBS@
 
 Name: gobject-introspection
 Description: GObject Introspection