On Mon, Jun 11, 2007 at 08:57:21AM -0500, Matt Hoosier wrote: > On 6/11/07, Paul Elliott <pelliott io com> wrote: > >The sponsor of peless to debian complains that peless > >links to too many libraries that it does not strictly > >speaking need: > > > >g++ -g -O2 -o peless -L/usr/lib peless-peless.o peless-gmore.o > >+peless-search.o -pthread -L/opt/gnome/lib -lgtkmm-2.4 -lgdkmm-2.4 > >-latkmm-1.6 > >+-lgtk-x11-2.0 -lpangomm-1.4 -lcairomm-1.0 -lgdk-x11-2.0 -latk-1.0 > >+-lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lfreetype -lz > >+-lfontconfig -lexpat -lglitz -lpng12 -lXrender -lX11 -lpthread -lXau > >-lXdmcp > >+-lgconfmm-2.6 -lglibmm-2.4 -lgconf-2 -lgobject-2.0 -lsigc-2.0 -lORBit-2 > >-lm > >+-lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 -lboost_filesystem > >-lboost_regex > > > > > >gtkmm2.4 gconfmm-2.6 and boost* I have specified directly. > > > >the others are a result of these > >configure.ac: > >PKG_CHECK_MODULES(DEPS, gtkmm-2.4 >= 2.4.0 gconfmm-2.6 >= 2.6.0) > >and this line from Makefile.am > >peless_LDADD=$(DEPS_LIBS) $(BOOST_FILESYSTEM_LIB) $(BOOST_REGEX_LIB) > >Specificyly $(DEPS_LIBS). > > > >16 of the libraries are said to be not really needed. > > Can you be more specific? As I look through the list of libs specified > on your command line, I can think of at least one spot in Gtk+ or > gtkmm that uses every one of those. What does "not needed" mean? > Well if I build using CXXFLAGS='-Xlinker --as-needed' the resulting executable works. But if I do a objdump -p peless | grep NEEDED both before and after adding the above option, and do a diff -c on the results, this is what I get: *** peless.odd 2007-06-11 11:42:42.000000000 -0500 --- aspeless.odd 2007-06-11 11:43:01.000000000 -0500 *************** *** 1,39 **** NEEDED libgtkmm-2.4.so.1 - NEEDED libgdkmm-2.4.so.1 NEEDED libatkmm-1.6.so.1 - NEEDED libgtk-x11-2.0.so.0 NEEDED libpangomm-1.4.so.1 - NEEDED libcairomm-1.0.so.1 - NEEDED libgdk-x11-2.0.so.0 - NEEDED libatk-1.0.so.0 - NEEDED libgdk_pixbuf-2.0.so.0 - NEEDED libpangocairo-1.0.so.0 - NEEDED libpango-1.0.so.0 - NEEDED libcairo.so.2 - NEEDED libfreetype.so.6 - NEEDED libz.so.1 - NEEDED libfontconfig.so.1 - NEEDED libexpat.so.1 - NEEDED libglitz.so.1 - NEEDED libpng12.so.0 - NEEDED libXrender.so.1 - NEEDED libX11.so.6 NEEDED libpthread.so.0 - NEEDED libXau.so.6 - NEEDED libXdmcp.so.6 NEEDED libgconfmm-2.6.so.1 NEEDED libglibmm-2.4.so.1 - NEEDED libgconf-2.so.4 - NEEDED libgobject-2.0.so.0 NEEDED libsigc-2.0.so.0 - NEEDED libORBit-2.so.0 - NEEDED libgmodule-2.0.so.0 - NEEDED libdl.so.2 - NEEDED libgthread-2.0.so.0 NEEDED libglib-2.0.so.0 NEEDED libboost_filesystem.so.1.33.1 NEEDED libboost_regex.so.1.33.1 NEEDED libstdc++.so.6 - NEEDED libm.so.6 NEEDED libgcc_s.so.1 NEEDED libc.so.6 --- 1,13 ---- People are telling me this means that there are a lot of libraries that peless is linking to, but is not actually using. > > > >It is suggested that peless add --as-needed to LDFLAGS. > > > >Is this a good idea? The PKG_CHECK_MODULES is the recommended > >way to build a program using gtkmm and gconfmm. > > > >Suggestions Welcome. > > -- Paul Elliott 1(512)837-1096 pelliott io com PMB 181, 11900 Metric Blvd Suite J http://www.io.com/~pelliott/pme/ Austin TX 78758-3117
Attachment:
pgpd6A0mrOFsr.pgp
Description: PGP signature