[OpenWrt-Devel] [PATCH] toolchain: Replace YASM with NASM

Ted Hess thess at kitschensync.net
Sat Jun 30 10:25:57 EDT 2018


Rather than doing this directly without warning - I am making this request
for review...

Packages libx264 and ffmpeg are built with ASM options on x86 platforms.
The current libx264 version no longer builds with YASM and requires NASM.
ffmpeg 3.x can be built with either YASM or NASM however, furture 4.x versions
will require NASM.

This change will replace the YASM assembler in the toolchain with NASM. Both
packages have been test with this change. I don't know of any other packages
which explicitly use an external assembler so I feel comfortable with
replacing the assembler instead of adding another.

After this patch is merged, the PR for these packages on Github
    https://github.com/openwrt/packages/pull/6383
needs to be merged.

/ted

Signed-off-by: Ted Hess <thess at kitschensync.net>
---
 toolchain/Config.in               |  6 +++---
 toolchain/Makefile                |  2 +-
 toolchain/{yasm => nasm}/Makefile | 25 +++++++++----------------
 3 files changed, 13 insertions(+), 20 deletions(-)
 rename toolchain/{yasm => nasm}/Makefile (65%)

diff --git a/toolchain/Config.in b/toolchain/Config.in
index 96acf1e5c4..47e1c787df 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -224,13 +224,13 @@ comment "Compiler"
 
 source "toolchain/gcc/Config.in"
 
-config YASM
+config NASM
 	bool
 	depends on ( i386 || x86_64 )
-	prompt "Build yasm" if TOOLCHAINOPTS
+	prompt "Build nasm" if TOOLCHAINOPTS
 	default y
 	help
-	  Enable if you want to build yasm
+	  Enable if you want to build nasm
 
 comment "C Library"
 	depends on TOOLCHAINOPTS
diff --git a/toolchain/Makefile b/toolchain/Makefile
index 409955c23a..9432990f4f 100644
--- a/toolchain/Makefile
+++ b/toolchain/Makefile
@@ -29,7 +29,7 @@
 curdir:=toolchain
 
 # subdirectories to descend into
-$(curdir)/builddirs := $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_EXTERNAL_TOOLCHAIN),wrapper,kernel-headers binutils gcc/initial gcc/final $(LIBC) fortify-headers) $(if $(CONFIG_YASM),yasm)
+$(curdir)/builddirs := $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_EXTERNAL_TOOLCHAIN),wrapper,kernel-headers binutils gcc/initial gcc/final $(LIBC) fortify-headers) $(if $(CONFIG_NASM),nasm)
 ifdef CONFIG_USE_UCLIBC
   $(curdir)/builddirs += $(LIBC)/utils
 endif
diff --git a/toolchain/yasm/Makefile b/toolchain/nasm/Makefile
similarity index 65%
rename from toolchain/yasm/Makefile
rename to toolchain/nasm/Makefile
index e5cdac6fe9..a39c71f65f 100644
--- a/toolchain/yasm/Makefile
+++ b/toolchain/nasm/Makefile
@@ -1,34 +1,26 @@
 #
-# Copyright (C) 2016 Daniel Golle <daniel at makrotopia.org>
-#
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
 include $(TOPDIR)/rules.mk
 
-PKG_NAME:=yasm
-PKG_VERSION:=1.3.0
+PKG_NAME:=nasm
+PKG_VERSION:=2.13.03
 
-PKG_SOURCE_URL:=http://www.tortall.net/projects/yasm/releases/
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://www.nasm.us/pub/nasm/releasebuilds/$(PKG_VERSION)/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 
-PKG_HASH:=3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f
+PKG_HASH:=812ecfb0dcbc5bd409aaa8f61c7de94c5b8752a7b00c632883d15b2ed6452573
 
 HOST_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/toolchain-build.mk
 
-YASM_CONFIGURE:= \
-	./configure \
-		--prefix=$(TOOLCHAIN_DIR) \
-		--build=$(GNU_HOST_NAME) \
-		--host=$(GNU_HOST_NAME) \
+HOST_CONFIGURE_ARGS+= \
 		--target=$(REAL_GNU_TARGET_NAME) \
 		--with-sysroot=$(TOOLCHAIN_DIR) \
-		--disable-multilib \
+		--enable-lto \
 		--disable-werror \
-		--disable-nls \
-		--disable-sim \
 		--disable-gdb \
 		$(SOFT_FLOAT_CONFIG_OPTION) \
 
@@ -40,8 +32,9 @@ endef
 
 define Host/Configure
 	(cd $(HOST_BUILD_DIR); \
-		$(YASM_CONFIGURE) \
+		./autogen.sh \
 	);
+	$(call Host/Configure/Default)
 endef
 
 define Host/Compile
-- 
2.17.1


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



More information about the openwrt-devel mailing list