The gw6c package fails to compile for me on my ARM testbed.

It fails to find a truckload of uClibc++ symbols (seems like it does
not find any). The uClibc++ linker options seem to be present, however.
I was unable to fix this properly.

The following patch removes the uClibc++ dependency. It compiles properly
with this applied.

However, does somebody have an idea why it is unable to find uClibc++ symbols?


Index: patches/100-no-uclibcxx.patch
===================================================================
--- patches/100-no-uclibcxx.patch       (revision 0)
+++ patches/100-no-uclibcxx.patch       (revision 0)
@@ -0,0 +1,29 @@
+---
+ gw6c/src/gw6c/platform/openwrt/Makefile |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- gw6c-5.0.orig/gw6c/src/gw6c/platform/openwrt/Makefile
++++ gw6c-5.0/gw6c/src/gw6c/platform/openwrt/Makefile
+@@ -14,11 +14,11 @@ include ../../Mk/mk-$(target).mk
+ OBJDIR=../../objs
+ OBJ=$(OBJDIR)/tsp_local.o $(OBJDIR)/tsp_tun.o
+ OBJLINK=$(OBJDIR)/*.o
+-EXTRALIBS=-nodefaultlibs -luClibc++ -lc -lgcc -lpthread -lgw6cconfig 
-lgw6cmessaging
++EXTRALIBS=-lpthread -lgw6cconfig -lgw6cmessaging
+ BIN=../../bin
+ TSPC=gw6c
+ 
+-CFLAGS=-g -Wall -I../../include -I../../platform/$(target)
++CFLAGS=-Wall -I../../include -I../../platform/$(target)
+ 
+ all: $(OBJ) $(wildcard $(OBJLINK)) $(BIN)/$(TSPC)
+ 
+@@ -28,7 +28,7 @@ $(OBJDIR)/tsp_tun.o:tsp_tun.c
+       $(CC) $(CFLAGS) -c tsp_tun.c -o $(OBJDIR)/tsp_tun.o $(DEFINES)
+ 
+ $(BIN)/$(TSPC): $(OBJ) $(wildcard $(OBJLINK))
+-      $(CC) $(CFLAGS) $(LDFLAGS) -o $(BIN)/$(TSPC) $(OBJLINK) $(EXTRALIBS)
++      $(LINKER) $(CFLAGS) $(LDFLAGS) -o $(BIN)/$(TSPC) $(OBJLINK) $(EXTRALIBS)
+ 
+ clean:
+       rm -f $(OBJDIR)/*.o $(BIN)/$(TSPC)
Index: Makefile
===================================================================
--- Makefile    (revision 23416)
+++ Makefile    (working copy)
@@ -15,7 +15,7 @@
 define Package/gw6c
   SECTION:=ipv6
   CATEGORY:=IPv6
-  DEPENDS:=+libpthread +ip +kmod-tun +kmod-ipv6 +uclibcxx +radvd
+  DEPENDS:=+libpthread +ip +kmod-tun +kmod-ipv6 +radvd
   TITLE:=IPv6 tunnel client software
   URL:=http://www.go6.net
 endef
@@ -30,12 +30,17 @@
        $(INSTALL_DIR) $(PKG_BUILD_DIR)
        bzcat $(DL_DIR)/$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | $(TAR) -C 
$(PKG_BUILD_DIR) -xvf -
        $(CP) $(PKG_BUILD_DIR)/gw6c/src/gw6c-config/gw6cconfig/gw6c_c_wrapper.h 
$(PKG_BUILD_DIR)/gw6c/src/gw6c/include
+       $(call Build/Patch)
 endef
 
+EXTRA_CFLAGS:=\
+       -include $(TOOLCHAIN_DIR)/include/stdlib.h \
+       -include $(TOOLCHAIN_DIR)/include/string.h
+
 GW6C_OPTS:= \
-       C_COMPILER="$(TARGET_CC) -c -DNO_STDLIBCXX" \
-       COMPILER="$(TARGET_CROSS)g++ -c -DNO_STDLIBCXX" \
-       CPP_FLAGS="$(TARGET_CFLAGS) -fno-builtin -nostdinc++ -I. -Wall -DNDEBUG 
-I$(STAGING_DIR)/usr/include/uClibc++ $(TARGET_CPPFLAGS)" \
+       C_COMPILER="$(TARGET_CC) -c" \
+       COMPILER="$(TARGET_CROSS)g++ -c" \
+       CPP_FLAGS="$(TARGET_CFLAGS) -I. -Wall -DNDEBUG $(TARGET_CPPFLAGS) 
$(EXTRA_CFLAGS)" \
        RANLIB="$(TARGET_CROSS)ranlib" \
        ARCHIVER="$(TARGET_CROSS)ar" \
        C_LINKER="$(TARGET_CC)" \
@@ -50,11 +55,14 @@
                $(GW6C_OPTS)
        $(MAKE) -C $(PKG_BUILD_DIR)/gw6c/src/gw6c \
                CC="$(TARGET_CC)" \
-               CFLAGS="$(TARGET_CFLAGS) -fno-builtin -Wall 
-I$(PKG_BUILD_DIR)/gw6c/src/gw6c/include \
-                       -I$(PKG_BUILD_DIR)/gw6c/src/gw6c/platform/openwrt 
-I$(PKG_BUILD_DIR)/gw6c/src/gw6c" \
+               LINKER="$(TARGET_CROSS)g++" \
+               CFLAGS="$(TARGET_CFLAGS) -Wall $(EXTRA_CFLAGS) \
+                       -I$(PKG_BUILD_DIR)/gw6c/src/gw6c/include \
+                       -I$(PKG_BUILD_DIR)/gw6c/src/gw6c/platform/openwrt \
+                       -I$(PKG_BUILD_DIR)/gw6c/src/gw6c" \
                LDFLAGS="-L$(PKG_BUILD_DIR)/gw6c/src/gw6c/gw6cconfig \
                        -L$(PKG_BUILD_DIR)/gw6c/src/gw6c/gw6cmessaging \
-                       $(TARGET_LDFLAGS) -nodefaultlibs -luClibc++ 
$(LIBGCC_S)" \
+                       $(TARGET_LDFLAGS)" \
                target="openwrt" \
                installdir="$(PKG_INSTALL_DIR)"
 endef

-- 
Greetings Michael.

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to