From: Lucas De Marchi Date: Tue, 10 Jan 2012 16:06:24 +0000 (-0200) Subject: build-sys: workaround libtool issue with argv[0] X-Git-Tag: v4~58 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0b22179acd4b42f5fb902b74b98c4db487758ccb;p=thirdparty%2Fkmod.git build-sys: workaround libtool issue with argv[0] Symlinking tools to kmod doesn't work because argv[0] is not the name of the symlink, but rather 'kmod' (since libtool's wrapper script calls the tools/.libs/kmod directly) Now we create another binary kmod-nolib that is statically linked to libkmod so we can call the binary directly and do not worry about LD_LIBRARY_PATH. --- diff --git a/Makefile.am b/Makefile.am index 99902cb1..6c1e1181 100644 --- a/Makefile.am +++ b/Makefile.am @@ -66,6 +66,9 @@ libkmod_libkmod_la_SOURCES =\ libkmod/libkmod-file.c \ libkmod/libkmod-elf.c +noinst_LTLIBRARIES += libkmod/libkmod-private.la +libkmod_libkmod_private_la_SOURCES = $(libkmod_libkmod_la_SOURCES) + EXTRA_DIST += libkmod/libkmod.sym EXTRA_DIST += libkmod/COPYING libkmod/README @@ -109,7 +112,14 @@ tools_kmod_CFLAGS = $(AM_CFLAGS) tools_kmod_LDADD = libkmod/libkmod-util.la \ libkmod/libkmod.la -${noinst_SCRIPTS}: tools/kmod +noinst_PROGRAMS = tools/kmod-nolib +tools_kmod_nolib_SOURCES = $(tools_kmod_SOURCES) +tools_kmod_nolib_CPPFLAGS = $(tools_kmod_CPPFLAGS) +tools_kmod_nolib_CFLAGS = $(tools_kmod_CFLAGS) +tools_kmod_nolib_LDADD = libkmod/libkmod-util.la \ + libkmod/libkmod-private.la + +${noinst_SCRIPTS}: tools/kmod-nolib $(AM_V_GEN) ($(RM) $@; \ $(LN_S) $(notdir $<) $@) endif @@ -123,19 +133,19 @@ check_PROGRAMS = test/test-init test/test-loaded \ TESTS = test/test-init test/test-loaded -test_test_init_LDADD = libkmod/libkmod.la -test_test_loaded_LDADD = libkmod/libkmod.la - -test_test_rmmod_LDADD = libkmod/libkmod.la -test_test_rmmod2_LDADD = libkmod/libkmod.la -test_test_insmod_LDADD = libkmod/libkmod.la -test_test_lookup_LDADD = libkmod/libkmod.la -test_test_path_from_name_LDADD = libkmod/libkmod.la -test_test_get_dependencies_LDADD = libkmod/libkmod.la -test_test_mod_double_ref_LDADD = libkmod/libkmod.la -test_test_blacklist_LDADD = libkmod/libkmod.la -test_test_elf_LDADD = libkmod/libkmod.la -test_test_probe_LDADD = libkmod/libkmod.la -test_test_invalidate_config_LDADD = libkmod/libkmod.la +test_test_init_LDADD = libkmod/libkmod-private.la +test_test_loaded_LDADD = libkmod/libkmod-private.la + +test_test_rmmod_LDADD = libkmod/libkmod-private.la +test_test_rmmod2_LDADD = libkmod/libkmod-private.la +test_test_insmod_LDADD = libkmod/libkmod-private.la +test_test_lookup_LDADD = libkmod/libkmod-private.la +test_test_path_from_name_LDADD = libkmod/libkmod-private.la +test_test_get_dependencies_LDADD = libkmod/libkmod-private.la +test_test_mod_double_ref_LDADD = libkmod/libkmod-private.la +test_test_blacklist_LDADD = libkmod/libkmod-private.la +test_test_elf_LDADD = libkmod/libkmod-private.la +test_test_probe_LDADD = libkmod/libkmod-private.la +test_test_invalidate_config_LDADD = libkmod/libkmod-private.la DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc diff --git a/tools/.gitignore b/tools/.gitignore index 8978adb4..041d7b22 100644 --- a/tools/.gitignore +++ b/tools/.gitignore @@ -6,3 +6,4 @@ modprobe modinfo depmod kmod +kmod-nolib