View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002405 | GNUnet | build process | public | 2012-06-07 00:09 | 2012-11-05 18:34 |
Reporter | neverpanic | Assigned To | Christian Grothoff | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | Apple Mac OS X, MacPorts | OS | OS X | OS Version | 10.7.4 |
Product Version | 0.9.3 | ||||
Target Version | 0.9.4 | Fixed in Version | 0.9.4 | ||
Summary | 0002405: Linking against libintl fails, because Makefile.am doesn't list $(LTLIBINTL) in libraryname_la_LIBADD | ||||
Description | Linking of several components of gnunet fails on OS X, because symbols from libintl cannot be found, as those require "-lintl" to be found on OS X. AM_GNU_GETTEXT in configure.ac already checks whether this is needed and adds the necessary flags in non-libtool form to $LIBINTL and in libtool form to $LTLIBINTL (see http://www.gnu.org/software/gettext/manual/html_node/AM_005fGNU_005fGETTEXT.html). The error messages caused look like this: libtool: link: /usr/bin/clang -dynamiclib -o .libs/libgnunetutil.8.dylib .libs/bandwidth.o .libs/bio.o .libs/client.o .libs/common_allocation.o .libs/common_endian.o .libs/common_logging.o .libs/configuration.o .libs/connection.o .libs/container_bloomfilter.o .libs/container_heap.o .libs/container_meta_data.o .libs/container_multihashmap.o .libs/container_slist.o .libs/crypto_aes.o .libs/crypto_crc.o .libs/crypto_hash.o .libs/crypto_hkdf.o .libs/crypto_kdf.o .libs/crypto_ksk.o .libs/crypto_random.o .libs/crypto_rsa.o .libs/disk.o .libs/getopt.o .libs/getopt_helpers.o .libs/helper.o .libs/load.o .libs/network.o .libs/os_installation.o .libs/os_network.o .libs/os_priority.o .libs/peer.o .libs/plugin.o .libs/program.o .libs/pseudonym.o .libs/resolver_api.o .libs/scheduler.o .libs/server.o .libs/server_mst.o .libs/server_nc.o .libs/server_tc.o .libs/service.o .libs/signal.o .libs/strings.o .libs/time.o .libs/speedup.o -L/opt/local/lib /opt/local/lib/libgcrypt.dylib /opt/local/lib/libgpg-error.dylib /opt/local/lib/libiconv.dylib /opt/local/lib/libltdl.dylib -lz /opt/local/lib/libunistring.dylib -lm -install_name /usr/local/lib/libgnunetutil.8.dylib -compatibility_version 9 -current_version 9.0 -Wl,-single_module Undefined symbols for architecture x86_64: "_libintl_dgettext", referenced from: _GNUNET_BIO_read in bio.o _GNUNET_BIO_read_string in bio.o _GNUNET_BIO_read_meta_data in bio.o _GNUNET_BIO_write in bio.o _do_connect in client.o _GNUNET_CLIENT_notify_transmit_ready_cancel in client.o _GNUNET_CLIENT_receive in client.o ... "_libintl_gettext", referenced from: _GNUNET_GETOPT_format_help_ in getopt_helpers.o "_libintl_setlocale", referenced from: _GNUNET_PROGRAM_run2 in program.o "_libintl_bindtextdomain", referenced from: _GNUNET_PROGRAM_run2 in program.o "_libintl_textdomain", referenced from: _GNUNET_PROGRAM_run2 in program.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[3]: *** [libgnunetutil.la] Error 1 The attached patch fixes all occurrences of this problem that failed for me. | ||||
Steps To Reproduce | 1. install libextractor (currently 0.6.2) and libunistring ( currently 0.9.3) from MacPorts 2. ./configure CC=/usr/bin/clang CPPFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib" (/opt/local is the MacPorts prefix) 3. make | ||||
Tags | No tags attached. | ||||
Attached Files | missing-ltlibintl.patch (11,372 bytes)
--- ./src/ats/Makefile.am.orig 2012-06-06 23:31:27.000000000 +0200 +++ ./src/ats/Makefile.am 2012-06-06 23:31:38.000000000 +0200 @@ -28,7 +28,8 @@ ats_api_performance.c libgnunetats_la_LIBADD = \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunetats_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) \ --- ./src/block/Makefile.am.orig 2012-06-06 23:16:29.000000000 +0200 +++ ./src/block/Makefile.am 2012-06-06 23:19:29.000000000 +0200 @@ -20,7 +20,8 @@ libgnunet_plugin_block_template_la_SOURCES = \ plugin_block_template.c libgnunet_plugin_block_template_la_LIBADD = \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunet_plugin_block_template_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) @@ -28,7 +29,8 @@ plugin_block_test.c libgnunet_plugin_block_test_la_LIBADD = \ $(top_builddir)/src/block/libgnunetblock.la \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunet_plugin_block_test_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) libgnunet_plugin_block_test_la_DEPENDENCIES = \ @@ -38,7 +40,7 @@ libgnunetblock_la_SOURCES = \ block.c libgnunetblock_la_LIBADD = \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la libgnunetblock_la_DEPENDENCIES = \ $(top_builddir)/src/util/libgnunetutil.la libgnunetblock_la_LDFLAGS = \ --- ./src/datacache/Makefile.am.orig 2012-06-06 23:23:26.000000000 +0200 +++ ./src/datacache/Makefile.am 2012-06-06 23:24:46.000000000 +0200 @@ -51,7 +51,8 @@ plugin_datacache_sqlite.c libgnunet_plugin_datacache_sqlite_la_LIBADD = \ $(top_builddir)/src/statistics/libgnunetstatistics.la \ - $(top_builddir)/src/util/libgnunetutil.la $(XLIBS) -lsqlite3 + $(top_builddir)/src/util/libgnunetutil.la $(XLIBS) -lsqlite3 \ + $(LTLIBINTL) libgnunet_plugin_datacache_sqlite_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) @@ -82,7 +83,8 @@ libgnunet_plugin_datacache_template_la_SOURCES = \ plugin_datacache_template.c libgnunet_plugin_datacache_template_la_LIBADD = \ - $(top_builddir)/src/util/libgnunetutil.la $(XLIBS) + $(top_builddir)/src/util/libgnunetutil.la $(XLIBS) \ + $(LTLIBINTL) libgnunet_plugin_datacache_template_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) --- ./src/datastore/Makefile.am.orig 2012-06-06 23:26:43.000000000 +0200 +++ ./src/datastore/Makefile.am 2012-06-06 23:28:10.000000000 +0200 @@ -92,7 +92,8 @@ plugin_datastore_sqlite.c libgnunet_plugin_datastore_sqlite_la_LIBADD = \ $(top_builddir)/src/statistics/libgnunetstatistics.la \ - $(top_builddir)/src/util/libgnunetutil.la $(XLIBS) -lsqlite3 + $(top_builddir)/src/util/libgnunetutil.la $(XLIBS) -lsqlite3 \ + $(LTLIBINTL) libgnunet_plugin_datastore_sqlite_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) @@ -123,7 +124,8 @@ libgnunet_plugin_datastore_template_la_SOURCES = \ plugin_datastore_template.c libgnunet_plugin_datastore_template_la_LIBADD = \ - $(top_builddir)/src/util/libgnunetutil.la $(XLIBS) + $(top_builddir)/src/util/libgnunetutil.la $(XLIBS) \ + $(LTLIBINTL) libgnunet_plugin_datastore_template_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) @@ -233,4 +235,4 @@ perf_plugin_datastore_data_postgres.conf \ test_plugin_datastore_data_mysql.conf \ test_plugin_datastore_data_postgres.conf \ - test_plugin_datastore_data_sqlite.conf \ No newline at end of file + test_plugin_datastore_data_sqlite.conf --- ./src/dht/Makefile.am.orig 2012-06-06 23:55:53.000000000 +0200 +++ ./src/dht/Makefile.am 2012-06-06 23:58:42.000000000 +0200 @@ -26,7 +26,8 @@ dht_api.c dht.h libgnunetdht_la_LIBADD = \ $(top_builddir)/src/util/libgnunetutil.la \ - $(XLIB) + $(XLIB) \ + $(LTLIBINTL) libgnunetdht_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) $(WINFLAGS) \ -version-info 1:0:1 @@ -40,7 +41,8 @@ libgnunet_plugin_block_dht_la_LIBADD = \ $(top_builddir)/src/hello/libgnunethello.la \ $(top_builddir)/src/block/libgnunetblock.la \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunet_plugin_block_dht_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) libgnunet_plugin_block_dht_la_DEPENDENCIES = \ --- ./src/fragmentation/Makefile.am.orig 2012-06-06 23:32:36.000000000 +0200 +++ ./src/fragmentation/Makefile.am 2012-06-06 23:32:46.000000000 +0200 @@ -15,7 +15,8 @@ defragmentation.c libgnunetfragmentation_la_LIBADD = -lm \ $(top_builddir)/src/statistics/libgnunetstatistics.la \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunetfragmentation_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) \ -version-info 1:0:1 @@ -33,4 +34,4 @@ $(top_builddir)/src/fragmentation/libgnunetfragmentation.la \ $(top_builddir)/src/util/libgnunetutil.la -EXTRA_DIST = test_fragmentation_data.conf \ No newline at end of file +EXTRA_DIST = test_fragmentation_data.conf --- ./src/fs/Makefile.am.orig 2012-06-07 00:00:12.000000000 +0200 +++ ./src/fs/Makefile.am 2012-06-07 00:00:23.000000000 +0200 @@ -177,7 +177,8 @@ plugin_block_fs.c libgnunet_plugin_block_fs_la_LIBADD = \ $(top_builddir)/src/block/libgnunetblock.la \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunet_plugin_block_fs_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) libgnunet_plugin_block_fs_la_DEPENDENCIES = \ --- ./src/hello/Makefile.am.orig 2012-06-06 23:01:01.000000000 +0200 +++ ./src/hello/Makefile.am 2012-06-06 23:01:09.000000000 +0200 @@ -14,7 +14,8 @@ libgnunethello_la_SOURCES = \ hello.c address.c libgnunethello_la_LIBADD = \ - $(top_builddir)/src/util/libgnunetutil.la $(XLIB) + $(top_builddir)/src/util/libgnunetutil.la $(XLIB) \ + $(LTLIBINTL) libgnunethello_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) \ -version-info 0:0:0 --- ./src/lockmanager/Makefile.am.orig 2012-06-07 00:03:15.000000000 +0200 +++ ./src/lockmanager/Makefile.am 2012-06-07 00:03:26.000000000 +0200 @@ -32,7 +32,8 @@ lockmanager_api.c lockmanager.h libgnunetlockmanager_la_LIBADD = \ $(top_builddir)/src/util/libgnunetutil.la \ - $(XLIB) + $(XLIB) \ + $(LTLIBINTL) libgnunetlockmanager_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) $(WINFLAGS) \ -version-info 0:0:0 @@ -65,4 +66,4 @@ test_lockmanager_api_servercrash.c test_lockmanager_api_servercrash_LDADD = \ $(top_builddir)/src/util/libgnunetutil.la \ - libgnunetlockmanager.la \ No newline at end of file + libgnunetlockmanager.la --- ./src/mesh/Makefile.am.orig 2012-06-07 00:01:57.000000000 +0200 +++ ./src/mesh/Makefile.am 2012-06-07 00:02:10.000000000 +0200 @@ -38,7 +38,8 @@ mesh_api.c mesh.h mesh_protocol.h libgnunetmesh_la_LIBADD = \ $(top_builddir)/src/util/libgnunetutil.la \ - $(XLIB) + $(XLIB) \ + $(LTLIBINTL) libgnunetmesh_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) $(WINFLAGS) \ -version-info 1:0:0 --- ./src/namestore/Makefile.am.orig 2012-06-06 23:29:57.000000000 +0200 +++ ./src/namestore/Makefile.am 2012-06-06 23:30:15.000000000 +0200 @@ -99,7 +99,8 @@ libgnunet_plugin_namestore_sqlite_la_LIBADD = \ $(top_builddir)/src/namestore/libgnunetnamestore.la \ $(top_builddir)/src/statistics/libgnunetstatistics.la \ - $(top_builddir)/src/util/libgnunetutil.la $(XLIBS) -lsqlite3 + $(top_builddir)/src/util/libgnunetutil.la $(XLIBS) -lsqlite3 \ + $(LTLIBINTL) libgnunet_plugin_namestore_sqlite_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) libgnunet_plugin_namestore_sqlite_la_DEPENDENCIES = \ --- ./src/peerinfo/Makefile.am.orig 2012-06-06 23:21:18.000000000 +0200 +++ ./src/peerinfo/Makefile.am 2012-06-06 23:21:27.000000000 +0200 @@ -22,7 +22,8 @@ libgnunetpeerinfo_la_LIBADD = \ $(top_builddir)/src/hello/libgnunethello.la \ $(top_builddir)/src/util/libgnunetutil.la \ - $(XLIB) + $(XLIB) \ + $(LTLIBINTL) libgnunetpeerinfo_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) $(WINFLAGS) \ -version-info 0:0:0 --- ./src/testbed/Makefile.am.orig 2012-06-06 23:50:27.000000000 +0200 +++ ./src/testbed/Makefile.am 2012-06-06 23:50:39.000000000 +0200 @@ -32,7 +32,8 @@ $(top_builddir)/src/transport/libgnunettransport.la \ $(top_builddir)/src/hello/libgnunethello.la \ -lm \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunettestbed_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) \ -version-info 0:0:0 --- ./src/testing/Makefile.am.orig 2012-06-06 23:38:14.000000000 +0200 +++ ./src/testing/Makefile.am 2012-06-06 23:38:37.000000000 +0200 @@ -48,7 +48,8 @@ $(top_builddir)/src/transport/libgnunettransport.la \ $(top_builddir)/src/hello/libgnunethello.la \ -lm \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunettesting_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) \ -version-info 0:1:0 @@ -57,7 +58,8 @@ libgnunettesting_new_la_SOURCES = \ testing_new.c libgnunettesting_new_la_LIBADD = \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunettesting_new_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) \ -version-info 0:1:0 --- ./src/transport/Makefile.am.orig 2012-06-06 23:33:58.000000000 +0200 +++ ./src/transport/Makefile.am 2012-06-06 23:36:53.000000000 +0200 @@ -165,14 +165,16 @@ $(top_builddir)/src/statistics/libgnunetstatistics.la \ $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \ $(top_builddir)/src/nat/libgnunetnat.la \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunet_plugin_transport_tcp_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) libgnunet_plugin_transport_template_la_SOURCES = \ plugin_transport_template.c libgnunet_plugin_transport_template_la_LIBADD = \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunet_plugin_transport_template_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) @@ -196,7 +198,8 @@ $(top_builddir)/src/statistics/libgnunetstatistics.la \ $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \ $(top_builddir)/src/nat/libgnunetnat.la \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunet_plugin_transport_udp_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) @@ -206,7 +209,8 @@ $(top_builddir)/src/hello/libgnunethello.la \ $(top_builddir)/src/statistics/libgnunetstatistics.la \ $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \ - $(top_builddir)/src/util/libgnunetutil.la + $(top_builddir)/src/util/libgnunetutil.la \ + $(LTLIBINTL) libgnunet_plugin_transport_unix_la_LDFLAGS = \ $(GN_PLUGIN_LDFLAGS) --- ./src/tun/Makefile.am.orig 2012-06-06 23:13:10.000000000 +0200 +++ ./src/tun/Makefile.am 2012-06-06 23:13:19.000000000 +0200 @@ -14,7 +14,8 @@ libgnunettun_la_SOURCES = \ tun.c libgnunettun_la_LIBADD = \ - $(top_builddir)/src/util/libgnunetutil.la $(XLIB) + $(top_builddir)/src/util/libgnunetutil.la $(XLIB) \ + $(LTLIBINTL) libgnunettun_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) \ -version-info 0:0:0 --- ./src/util/Makefile.am.orig 2012-06-06 23:01:38.000000000 +0200 +++ ./src/util/Makefile.am 2012-06-06 23:01:45.000000000 +0200 @@ -107,6 +107,7 @@ $(GCLIBADD) $(WINLIB) \ $(LIBGCRYPT_LIBS) \ $(LTLIBICONV) \ + $(LTLIBINTL) \ -lltdl -lz -lunistring $(XLIB) libgnunetutil_la_LDFLAGS = \ | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2012-06-07 00:09 | neverpanic | New Issue | |
2012-06-07 00:09 | neverpanic | File Added: missing-ltlibintl.patch | |
2012-06-07 09:17 | Christian Grothoff | Status | new => assigned |
2012-06-07 09:17 | Christian Grothoff | Target Version | => 0.9.4 |
2012-06-07 09:32 | Christian Grothoff | Note Added: 0006005 | |
2012-06-07 09:32 | Christian Grothoff | Status | assigned => resolved |
2012-06-07 09:32 | Christian Grothoff | Fixed in Version | => 0.9.4 |
2012-06-07 09:32 | Christian Grothoff | Resolution | open => fixed |
2012-06-07 09:32 | Christian Grothoff | Assigned To | => Christian Grothoff |
2012-11-05 18:34 | Christian Grothoff | Status | resolved => closed |