Menu

#15 fails to build with ld --as-needed

open
nobody
None
5
2011-06-30
2011-06-30
No

the use of automake and pkg-config is wrong leading to a build failure with the linker flag --as-needed
the pango libraries are added in LDFLAGS but they should be in LDADD
this requires proper use of pkg-config via PKG_CHECK_MODULES in configure.in

attached a patch which fixes this issue.

Discussion

  • Julian Taylor

    Julian Taylor - 2011-06-30
     
  • Julian Taylor

    Julian Taylor - 2011-07-29

    Another related issue. libpaps.so is underlinked leading to problems when linking other programs to it with as needed.
    See:
    http://wiki.mandriva.com/en/Underlinking_issues_in_packaging

    ldd -r /usr/lib/libpaps.so
    undefined symbol: g_free (/usr/lib/libpaps.so)
    undefined symbol: g_str_equal (/usr/lib/libpaps.so)
    undefined symbol: g_str_hash (/usr/lib/libpaps.so)
    undefined symbol: pango_ft2_font_get_face (/usr/lib/libpaps.so)
    undefined symbol: pango_layout_get_line_count (/usr/lib/libpaps.so)
    undefined symbol: g_string_new (/usr/lib/libpaps.so)
    undefined symbol: FT_Load_Glyph (/usr/lib/libpaps.so)
    undefined symbol: g_hash_table_lookup (/usr/lib/libpaps.so)
    undefined symbol: pango_layout_get_line (/usr/lib/libpaps.so)
    undefined symbol: FT_Done_Glyph (/usr/lib/libpaps.so)
    undefined symbol: g_string_free (/usr/lib/libpaps.so)
    undefined symbol: g_hash_table_new_full (/usr/lib/libpaps.so)
    undefined symbol: FT_Outline_Decompose (/usr/lib/libpaps.so)
    undefined symbol: FT_Get_Glyph (/usr/lib/libpaps.so)
    undefined symbol: g_string_truncate (/usr/lib/libpaps.so)
    undefined symbol: g_hash_table_insert (/usr/lib/libpaps.so)
    undefined symbol: g_string_append_printf (/usr/lib/libpaps.so)
    undefined symbol: g_string_append (/usr/lib/libpaps.so)
    undefined symbol: g_malloc0 (/usr/lib/libpaps.so)
    undefined symbol: g_strdup (/usr/lib/libpaps.so)
    undefined symbol: pango_ft2_get_context (/usr/lib/libpaps.so)
    undefined symbol: pango_layout_line_get_extents (/usr/lib/libpaps.so)

    this patch should fix it:
    Index: paps-0.6.8/src/Makefile.am
    ===================================================================
    --- paps-0.6.8.orig/src/Makefile.am 2011-07-29 23:45:42.000000000 +0200
    +++ paps-0.6.8/src/Makefile.am 2011-07-29 23:45:42.000000000 +0200
    @@ -1,6 +1,7 @@
    man_MANS = paps.1
    lib_LTLIBRARIES = libpaps.la
    libpaps_la_SOURCES = libpaps.c
    +libpaps_la_LIBADD = -lfreetype -lglib-2.0 $(PANGO_LIBS)
    libpapsinc_HEADERS = libpaps.h
    libpapsincdir = $(includedir)

     

Log in to post a comment.