[package] broadcom-wl:

- 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
master
Jo-Philipp Wich 2010-07-01 01:06:32 +00:00
parent 0db40a2692
commit f3c2ca64d6
3 changed files with 61 additions and 1 deletions

View File

@ -126,7 +126,9 @@ define Build/Compile
$(PKG_BUILD_DIR)/nas_exe.o \ $(PKG_BUILD_DIR)/nas_exe.o \
$(PKG_BUILD_DIR)/shared/libshared.a $(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 endef
define Build/InstallDev define Build/InstallDev
@ -140,6 +142,11 @@ define Package/wlc/install
$(INSTALL_BIN) $(PKG_BUILD_DIR)/wlc $(1)/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/wlc $(1)/sbin/
endef endef
define Package/wlc/postinst
#!/bin/sh
[ -n "$${IPKG_INSTROOT}" ] || /etc/init.d/wlunbind enable || true
endef
define Package/wl/install define Package/wl/install
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/wl $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/wl $(1)/usr/sbin/

View File

@ -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() { :; }

View File

@ -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