Message ID | 1356933246-20336-1-git-send-email-jengelh@inai.de |
---|---|
State | Superseded |
Headers | show |
On Monday 31 December 2012 00:54:06 Jan Engelhardt wrote: > Like this? We cannot really get rid of mentioning .libs without involving > libltdl, and there I really do not want to go. why ? are the modules run directly out of the build tree, or you just need to install them ? `libtool --mode=install` can install an .la file ... > + ${AM_VERBOSE_NULL} ln -fs .libs/$@ $@; i'm not sure why a lot of these rules have trailing semi-colons. they're pointless. > + ${AM_VERBOSE_CCLD} ../libtool ${AM_LIBTOOL_SILENT} --tag=CC --mode=link > ${CCLD} ${AM_LDFLAGS} -module ${LDFLAGS} -o $@ $< -L../libxtables > -lxtables ${$*_LIBADD} -rpath ${xtlibdir}; should be ../libxtables/libxtables.la rather than -L/-l for libxtables > libxt_NOTRACK.so: libxt_CT.so > ln -fs $< $@ > libxt_state.so: libxt_conntrack.so > ln -fs $< $@ these two rules could use your new $AM_VERBOSE_NULL otherwise, this is an improvement imo over the existing code -mike
On Wednesday 2013-01-02 05:03, Mike Frysinger wrote: >On Monday 31 December 2012 00:54:06 Jan Engelhardt wrote: >> Like this? We cannot really get rid of mentioning .libs without involving >> libltdl, and there I really do not want to go. > >why ? are the modules run directly out of the build tree, Yes, one can run them out of the build tree; by using ./configure --with-xtlibdir=$PWD/extensions >> + ${AM_VERBOSE_NULL} ln -fs .libs/$@ $@; > >i'm not sure why a lot of these rules have trailing semi-colons. they're >pointless. Hm must be a habit of doing other programming languages. >> + ${AM_VERBOSE_CCLD} ../libtool ${AM_LIBTOOL_SILENT} --tag=CC --mode=link >> ${CCLD} ${AM_LDFLAGS} -module ${LDFLAGS} -o $@ $< -L../libxtables >> -lxtables ${$*_LIBADD} -rpath ${xtlibdir}; > >should be ../libxtables/libxtables.la rather than -L/-l for libxtables > >> libxt_NOTRACK.so: libxt_CT.so >> ln -fs $< $@ >> libxt_state.so: libxt_conntrack.so >> ln -fs $< $@ > >these two rules could use your new $AM_VERBOSE_NULL > >otherwise, this is an improvement imo over the existing code >-mike > -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/extensions/GNUmakefile.in b/extensions/GNUmakefile.in index e71e3ff..6020ff6 100644 --- a/extensions/GNUmakefile.in +++ b/extensions/GNUmakefile.in @@ -33,6 +33,7 @@ AM_VERBOSE_CXX = @echo " CXX " $@; AM_VERBOSE_CXXLD = @echo " CXXLD " $@; AM_VERBOSE_AR = @echo " AR " $@; AM_VERBOSE_GEN = @echo " GEN " $@; +AM_VERBOSE_NULL = @ endif # @@ -75,7 +76,7 @@ install: ${targets_install} if test -n "${targets_install}"; then install -pm0755 $^ "${DESTDIR}${xtlibdir}/"; fi; clean: - rm -f *.o *.oo *.so *.a {matches,targets}.man initext.c initext4.c initext6.c; + rm -f *.la *.o *.lo *.so *.a {matches,targets}.man initext.c initext4.c initext6.c; rm -f .*.d .*.dd; distclean: clean @@ -89,11 +90,14 @@ init%.o: init%.c # # Shared libraries # -lib%.so: lib%.oo - ${AM_VERBOSE_CCLD} ${CCLD} ${AM_LDFLAGS} -shared ${LDFLAGS} -o $@ $< -L../libxtables/.libs -lxtables ${$*_LIBADD}; +lib%.so: lib%.la + ${AM_VERBOSE_NULL} ln -fs .libs/$@ $@; -lib%.oo: ${srcdir}/lib%.c - ${AM_VERBOSE_CC} ${CC} ${AM_CPPFLAGS} ${AM_DEPFLAGS} ${AM_CFLAGS} -D_INIT=lib$*_init -DPIC -fPIC ${CFLAGS} -o $@ -c $<; +lib%.la: lib%.lo + ${AM_VERBOSE_CCLD} ../libtool ${AM_LIBTOOL_SILENT} --tag=CC --mode=link ${CCLD} ${AM_LDFLAGS} -module ${LDFLAGS} -o $@ $< -L../libxtables -lxtables ${$*_LIBADD} -rpath ${xtlibdir}; + +lib%.lo: ${srcdir}/lib%.c + ${AM_VERBOSE_CC} ../libtool ${AM_LIBTOOL_SILENT} --tag=CC --mode=compile ${CC} ${AM_CPPFLAGS} ${AM_DEPFLAGS} ${AM_CFLAGS} -D_INIT=lib$*_init ${CFLAGS} -o $@ -c $<; libxt_NOTRACK.so: libxt_CT.so ln -fs $< $@ @@ -101,7 +105,7 @@ libxt_state.so: libxt_conntrack.so ln -fs $< $@ # Need the LIBADDs in iptables/Makefile.am too for libxtables_la_LIBADD -ip6t_NETMAP_LIBADD = -lip6tc +ip6t_NETMAP_LIBADD = ../libiptc/libip6tc.la xt_RATEEST_LIBADD = -lm xt_statistic_LIBADD = -lm
Link stage of libip6t_NETMAP failed since recently. CCLD libip6t_NETMAP.so /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: cannot find -lip6tc libip6t_NETMAP.c uses the "ipv6_prefix_length" function from libip6tc.so; "-lip6tc" is used in the Makefile, but, the directory to it is not specified. Why does the link succeed for some people? Because /usr/lib(64)/libip6tc.so satisfies -lip6tc, but not all environments, especially those without iptables development files, have that file, hence this link error can happen. By suggestion of Mike Frysinger, this patch uses libtool to produce and link the plugins. Signed-off-by: Jan Engelhardt <jengelh@inai.de> --- Like this? We cannot really get rid of mentioning .libs without involving libltdl, and there I really do not want to go. If you ask me, we should just move ipv6_prefix_length into libxtables. extensions/GNUmakefile.in | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)