On Wed, 06 Oct 2010 13:56:07 +0200, Maarten Bezemer <m.m.beze...@utwente.nl> wrote: > For the 'Marvell Orion' target the iptables package does not compile. > See forum topic: https://forum.openwrt.org/viewtopic.php?pid=117520 > Maybe for other targets as well? > > In short: the problem is that /usr/lib/libc is used while linking > instead of the cross-compiled version. > > I provided a patch for this problem, but I am unsure whether it is a > correct fix or just an ugly hack. I did not check whether this patch is > disturbing any of the other targets. > But, with a clean checkout (with the default configuration, Broadcom > BCM947xx/953xx) it builds fine. > > So could someone take a look at it and eventually provide feedback for > improvements or tell that it is good as it is and it can be submitted? > > Thanks, > Maarten
Index: package/iptables/Makefile =================================================================== --- package/iptables/Makefile (revision 23239) +++ package/iptables/Makefile (working copy) @@ -254,7 +254,10 @@ -I$(LINUX_DIR)/arch/$(LINUX_KARCH)/include \ $(TARGET_CPPFLAGS) +IPTABLES_LIBDIR=$(TOOLCHAIN_DIR)/lib/ + CONFIGURE_ARGS += \ + --libdir=$(IPTABLES_LIBDIR)\ --enable-shared \ --enable-devel \ --enable-ipv6 \ @@ -293,12 +296,12 @@ The toolchain itself should find its libc by itself. So no need to point to it. $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/ $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxtables.{a,so*} $(1)/usr/lib/ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip*tc.{a,so*} $(1)/usr/lib/ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libipq.a $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)$(IPTABLES_LIBDIR)/libxtables.{a,so*} $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)$(IPTABLES_LIBDIR)/libip*tc.{a,so*} $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)$(IPTABLES_LIBDIR)libipq.a $(1)/usr/lib/ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig - $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/xtables.pc $(1)/usr/lib/pkgconfig/ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libiptc.pc $(1)/usr/lib/pkgconfig/ + $(CP) $(PKG_INSTALL_DIR)$(IPTABLES_LIBDIR)/pkgconfig/xtables.pc $(1)/usr/lib/pkgconfig/ + $(CP) $(PKG_INSTALL_DIR)$(IPTABLES_LIBDIR)/pkgconfig/libiptc.pc $(1)/usr/lib/pkgconfig/ endef Plain wrong. The files are installed under $(PKG_INSTALL_DIR)/* and that's where the files should be picked up after cross compilation. I cannot imagine $(PKG_INSTALL_DIR)$(IPTABLES_LIBDIR) expanding to something useful. It is the concatination of two absolute paths. define Package/iptables/install @@ -335,20 +338,20 @@ define Package/libiptc/install $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libip*tc.so* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)$(IPTABLES_LIBDIR)/libip*tc.so* $(1)/usr/lib/ endef define Package/libxtables/install $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libxtables.so* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)$(IPTABLES_LIBDIR)/libxtables.so* $(1)/usr/lib/ endef define BuildPlugin define Package/$(1)/install $(INSTALL_DIR) $$(1)/usr/lib/iptables for m in $(patsubst xt_%,ipt_%,$(2)) $(patsubst ipt_%,xt_%,$(2)); do \ - if [ -f $(PKG_INSTALL_DIR)/usr/lib/iptables/lib$$$$$$$${m}.so ]; then \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/iptables/lib$$$$$$$${m}.so $$(1)/usr/lib/iptables/ ; \ + if [ -f $(PKG_INSTALL_DIR)$(IPTABLES_LIBDIR)/iptables/lib$$$$$$$${m}.so ]; then \ + $(CP) $(PKG_INSTALL_DIR)$(IPTABLES_LIBDIR)/iptables/lib$$$$$$$${m}.so $$(1)/usr/lib/iptables/ ; \ fi; \ done $(3) Same comment as above. I guess something is wrong with your build environment. Clean it up and please try again. -- Bas _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel