Skip to content

Instantly share code, notes, and snippets.

@neheb
Created December 8, 2018 22:58
Show Gist options
  • Save neheb/5f4ddcfa370952808dca4842f5bd3dc5 to your computer and use it in GitHub Desktop.
Save neheb/5f4ddcfa370952808dca4842f5bd3dc5 to your computer and use it in GitHub Desktop.
--- a/net/aircrack-ng/Makefile
+++ b/net/aircrack-ng/Makefile
@@ -33,6 +33,7 @@ PKG_CONFIG_DEPENDS:= \
CONFIG_AIRCRACK_NG_HWLOC \
CONFIG_AIRCRACK_NG_SQLITE3
+include $(INCLUDE_DIR)/uclibc++.mk
include $(INCLUDE_DIR)/package.mk
define Package/aircrack-ng
@@ -91,7 +92,6 @@ ifeq ($(CONFIG_AIRCRACK_NG_OPTIMIZE_SPEED),y)
endif
TARGET_LDFLAGS+= \
- -static-libstdc++ \
-Wl,--gc-sections
define Package/aircrack-ng/install
@jbenden
Copy link

jbenden commented Dec 9, 2018

I couldn't reproduce a problem. I am using the latest master on both openwrt and packages, for mips_24kc_musl. I applied the changes above to the package too, using 1.5 aircrack-ng and not 1.4, as is in packages currently.

@jbenden
Copy link

jbenden commented Dec 9, 2018

Nix that. I screwed up my .config

@jbenden
Copy link

jbenden commented Dec 9, 2018

Does g++-uc always, correctly, re-escape parameters passed onto g++? It seems like it's eating arguments.

@jbenden
Copy link

jbenden commented Dec 9, 2018

No, it doesn't; in looking at: ./staging_dir/toolchain-mips_24kc_gcc-7.3.0_musl/bin/g++-uc

@jbenden
Copy link

jbenden commented Dec 10, 2018

--- a/bin/Makefile	2018-12-10 13:14:47.824789823 -0700
+++ b/bin/Makefile	2018-12-10 13:16:25.602465991 -0700
@@ -24,7 +24,7 @@
 	echo 'WRAPPER_INCLIB="Y"' >> $@
 	echo 'while [ -n "$$1" ]' >> $@
 	echo 'do' >> $@
-	echo '	WRAPPER_OPTIONS="$$WRAPPER_OPTIONS $$1"' >> $@
+	echo '	WRAPPER_OPTIONS="$$WRAPPER_OPTIONS '"'"'$$1'"'"'"' >> $@
 	echo '	if [ "$$1" = "-c" -o "$$1" = "-E" -o "$$1" = "-S" -o "$$1" = "-MF" ]' >> $@
 	echo '	then' >> $@
 	echo '		WRAPPER_INCLIB="N"' >> $@
@@ -45,5 +45,5 @@
 ifeq ($(DODEBUG),y)
 	echo 'echo $(CXX) $(GEN_CFLAGS) $(GEN_CXXFLAGS) $(EH_CXXFLAGS) $$WRAPPER_INCLUDEDIR $$WRAPPER_OPTIONS' >> $@
 endif
-	echo 'exec $(CXX) $(GEN_CFLAGS) $(GEN_CXXFLAGS) $(EH_CXXFLAGS) $$WRAPPER_INCLUDEDIR $$WRAPPER_OPTIONS' >> $@
+	echo 'eval $(CXX) $(GEN_CFLAGS) $(GEN_CXXFLAGS) $(EH_CXXFLAGS) "$$WRAPPER_INCLUDEDIR" "$$WRAPPER_OPTIONS"' >> $@
 	chmod 755 $@

@neheb The above patch (maybe not a great one, though) does solve the parameter needing escaped issue with compilation.

@jbenden
Copy link

jbenden commented Dec 10, 2018

That patch goes into package/libs/uclibc++/patches/060-Bugfix-escape-arguments.patch.

@jbenden
Copy link

jbenden commented Dec 10, 2018

The final patch, once the fix for the uClibc++ wrapper is applied, is:

--- /home/jbenden/Source/us.benden/Aircrack_Project/openwrt-packages/net/aircrack-ng/Makefile	2018-12-10 14:16:18.377453653 -0700
+++ feeds/packages/net/aircrack-ng/Makefile	2018-12-10 14:15:02.548224743 -0700
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=aircrack-ng
-PKG_VERSION:=1.5.2
+PKG_VERSION:=1.5
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/aircrack-ng/aircrack-ng/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=7e03f9828495a3a1a781ad79e41805971bf7347c092df852820232bca866a19b
+PKG_HASH:=dd90d1261dab794695dd1923ae7967a51dd06eb572028923e8cc9f1c7ef755cc
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
@@ -33,6 +33,7 @@
 	CONFIG_AIRCRACK_NG_HWLOC \
 	CONFIG_AIRCRACK_NG_SQLITE3
 
+include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
 
 define Package/aircrack-ng
@@ -42,7 +43,7 @@
   DEPENDS += +AIRCRACK_NG_OPENSSL:libopenssl
   DEPENDS += +AIRCRACK_NG_GCRYPT:libgcrypt
   DEPENDS += +AIRCRACK_NG_SQLITE3:libsqlite3
-  DEPENDS += +libnl-core +libnl-genl +zlib
+  DEPENDS += +uclibcxx +libnl-core +libnl-genl +zlib
   TITLE:=WLAN tools (without airmon-ng) for breaking 802.11 WEP/WPA keys
   URL:=https://www.aircrack-ng.org/
   SUBMENU:=wireless
@@ -91,7 +92,6 @@
 endif
 
 TARGET_LDFLAGS+= \
-	-static-libstdc++ \
 	-Wl,--gc-sections
 
 define Package/aircrack-ng/install

@neheb
Copy link
Author

neheb commented Dec 11, 2018

No need for that depends. uclibc++.mk handles it.

@neheb
Copy link
Author

neheb commented Dec 16, 2018

Actually the depends needs to be switched to $(CXX_DEPENDS). OpenWrt allows to select between libstdcpp and uclibc++ globally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment