diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2010-07-01 01:06:32 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2010-07-01 01:06:32 +0000 |
commit | 28e4d39009b5f4b82415e437aef7ea24683fefe4 (patch) | |
tree | 0cc441c0ee5d851cf353a04adc1b9832acd96efa | |
parent | d6d8014cfd0fc8ce789d03f882bdce0745fa52e7 (diff) | |
download | mtk-20170518-28e4d39009b5f4b82415e437aef7ea24683fefe4.zip mtk-20170518-28e4d39009b5f4b82415e437aef7ea24683fefe4.tar.gz mtk-20170518-28e4d39009b5f4b82415e437aef7ea24683fefe4.tar.bz2 |
broadcom-wl: - fix compilation against eglibc and glibc (#7521) - unbind device from b43 ssb bridge on boot (#7529)
SVN-Revision: 22007
-rw-r--r-- | package/broadcom-wl/Makefile | 9 | ||||
-rwxr-xr-x | package/broadcom-wl/files/etc/init.d/wlunbind | 23 | ||||
-rw-r--r-- | package/broadcom-wl/patches/002-ctype.patch | 30 |
3 files changed, 61 insertions, 1 deletions
diff --git a/package/broadcom-wl/Makefile b/package/broadcom-wl/Makefile index 2d4aacf..ebf9b38 100644 --- a/package/broadcom-wl/Makefile +++ b/package/broadcom-wl/Makefile @@ -126,7 +126,9 @@ define Build/Compile $(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 @@ -140,6 +142,11 @@ define Package/wlc/install $(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/ diff --git a/package/broadcom-wl/files/etc/init.d/wlunbind b/package/broadcom-wl/files/etc/init.d/wlunbind new file mode 100755 index 0000000..80a8f0e --- /dev/null +++ b/package/broadcom-wl/files/etc/init.d/wlunbind @@ -0,0 +1,23 @@ +#!/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() { :; } diff --git a/package/broadcom-wl/patches/002-ctype.patch b/package/broadcom-wl/patches/002-ctype.patch new file mode 100644 index 0000000..16d13df --- /dev/null +++ b/package/broadcom-wl/patches/002-ctype.patch @@ -0,0 +1,30 @@ +--- 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 |