On Wed, 06 Oct 2010 13:56:07 +0200, Maarten Bezemer
<[email protected]> 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
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel