[OpenWrt-Devel] [PATCH] toolchain: Replace YASM with NASM
Rosen Penev
rosenp at gmail.com
Sat Jun 30 14:51:17 EDT 2018
On Sat, Jun 30, 2018 at 7:26 AM Ted Hess <thess at kitschensync.net> wrote:
>
>
> 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>
Acked-by: Rosen Penev <rosenp at gmail.com>
this is also needed for libjpeg-turbo as it does not seem to support
YASM anymore. YASM was generating bad JPEGs a while back.
> ---
> 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
_______________________________________________
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