- fix compilation against eglibc and glibc (#7521)
- unbind device from b43 ssb bridge on boot (#7529)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22007
3c298f89-4303-0410-b956-
a3cf2f4a3e73
$(PKG_BUILD_DIR)/nas_exe.o \
$(PKG_BUILD_DIR)/shared/libshared.a
- $(TARGET_CC) -o $(PKG_BUILD_DIR)/wl $(PKG_BUILD_DIR)/wl_exe.o
+ $(TARGET_CC) -o $(PKG_BUILD_DIR)/wl \
+ $(PKG_BUILD_DIR)/wl_exe.o \
+ $(PKG_BUILD_DIR)/shared/libshared.a
endef
define Build/InstallDev
$(INSTALL_BIN) $(PKG_BUILD_DIR)/wlc $(1)/sbin/
endef
+define Package/wlc/postinst
+#!/bin/sh
+[ -n "$${IPKG_INSTROOT}" ] || /etc/init.d/wlunbind enable || true
+endef
+
define Package/wl/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/wl $(1)/usr/sbin/
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010 OpenWrt.org
+
+START=09
+
+boot() {
+ local sysfs=/sys/bus/pci/drivers/b43-pci-bridge
+ if [ -d "$sysfs" ]; then
+ local lnk
+ for lnk in $sysfs/*; do
+ [ -h "$lnk" ] || continue
+ case "${lnk##*/}" in
+ *:*:*.*)
+ logger "Unbinding WL PCI device ${lnk##*/} from B43 SSB bridge"
+ echo -n "${lnk##*/}" > "$sysfs/unbind"
+ ;;
+ esac
+ done
+ fi
+}
+
+start() { :; }
+stop() { :; }
--- /dev/null
+--- a/shared/Makefile
++++ b/shared/Makefile
+@@ -19,7 +19,7 @@ LDFLAGS += -L.
+ AR=ar
+ RANLIB=ranlib
+
+-OBJS := shutils.o wl.o wl_linux.o linux_timer.o
++OBJS := shutils.o wl.o wl_linux.o linux_timer.o ctype.o
+ all: libshared.a
+
+ clean:
+--- /dev/null
++++ b/shared/ctype.c
+@@ -0,0 +1,16 @@
++#include <features.h>
++
++#ifndef __UCLIBC__
++extern void **__ctype_b_loc();
++extern void **__ctype_tolower_loc();
++
++void *__ctype_b;
++void *__ctype_tolower;
++
++static void init(void) __attribute__((constructor));
++static void init(void)
++{
++ __ctype_b = *__ctype_b_loc();
++ __ctype_tolower = *__ctype_tolower_loc();
++}
++#endif