Skip to content

Commit

Permalink
treewide: Enable VFP/NEON optimizations for aarch64
Browse files Browse the repository at this point in the history
For speexdsp, support for NEON on aarch64 was added in 1.2.0[1].

[1]: xiph/speexdsp#8

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
  • Loading branch information
jefferyto committed May 12, 2020
1 parent 59b91fc commit dec17eb
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 9 deletions.
5 changes: 3 additions & 2 deletions libs/libpng/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=libpng
PKG_VERSION:=1.6.37
PKG_RELEASE:=3
PKG_RELEASE:=4

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@SF/libpng
Expand Down Expand Up @@ -40,7 +40,8 @@ TARGET_CFLAGS += $(FPIC)
CONFIGURE_ARGS += \
--enable-shared \
--enable-static \
$(if $(findstring neon,$(CONFIG_CPU_TYPE)),--enable-hardware-optimizations=yes --enable-arm-neon=yes)
$(if $(findstring neon,$(CONFIG_CPU_TYPE))$(findstring aarch64,$(CONFIG_ARCH)), \
--enable-hardware-optimizations=yes --enable-arm-neon=yes)

define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/bin
Expand Down
4 changes: 2 additions & 2 deletions libs/opus/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=opus
PKG_VERSION:=1.3.1
PKG_RELEASE:=2
PKG_RELEASE:=3

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://archive.mozilla.org/pub/opus
Expand Down Expand Up @@ -47,7 +47,7 @@ ifeq ($(CONFIG_SOFT_FLOAT),y)
--enable-fixed-point
endif

ifneq ($(findstring neon,$(CONFIG_CPU_TYPE)),)
ifneq ($(findstring neon,$(CONFIG_CPU_TYPE))$(findstring aarch64,$(CONFIG_ARCH)),)
CONFIGURE_ARGS+= \
--enable-fixed-point
endif
Expand Down
3 changes: 1 addition & 2 deletions libs/speexdsp/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=speexdsp
PKG_VERSION:=1.2.0
PKG_RELEASE:=1
PKG_RELEASE:=2

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://downloads.us.xiph.org/releases/speex/
Expand Down Expand Up @@ -60,7 +60,6 @@ CONFIGURE_ARGS += \
--enable-shared \
--enable-static \
--disable-examples \
$(if $(CONFIG_aarch64),--disable-neon) \
$(if $(CONFIG_SOFT_FLOAT),--enable-fixed-point --disable-float-api)

$(eval $(call BuildPackage,libspeexdsp))
11 changes: 9 additions & 2 deletions multimedia/ffmpeg/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=ffmpeg
PKG_VERSION:=4.2.2
PKG_RELEASE:=2
PKG_RELEASE:=3

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://ffmpeg.org/releases/
Expand Down Expand Up @@ -411,7 +411,7 @@ FFMPEG_CONFIGURE+= \
--disable-fast-unaligned \
--disable-runtime-cpudetect

else ifneq ($(findstring arm,$(CONFIG_ARCH)),)
else ifneq ($(findstring arm,$(CONFIG_ARCH))$(findstring aarch64,$(CONFIG_ARCH)),)
FFMPEG_CONFIGURE+= \
--disable-runtime-cpudetect
# XXX: GitHub issue 3320 ppc cpu with fpu but no altivec (WNDR4700)
Expand All @@ -438,6 +438,13 @@ ifneq ($(findstring arm,$(CONFIG_ARCH)),)
endif
endif

ifneq ($(findstring aarch64,$(CONFIG_ARCH)),)
FFMPEG_CONFIGURE+= \
--enable-lto \
--enable-neon \
--enable-vfp
endif

ifeq ($(ARCH),x86_64)
FFMPEG_CONFIGURE+= --enable-lto
endif
Expand Down
5 changes: 4 additions & 1 deletion sound/mpg123/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=mpg123
PKG_VERSION:=1.25.13
PKG_RELEASE:=2
PKG_RELEASE:=3

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/mpg123
Expand Down Expand Up @@ -70,6 +70,9 @@ ifeq ($(CONFIG_SOFT_FLOAT),y)
else ifneq ($(findstring neon,$(CONFIG_CPU_TYPE)),)
CONFIGURE_ARGS+= \
--with-cpu=arm_fpu
else ifneq ($(findstring aarch64,$(CONFIG_ARCH)),)
CONFIGURE_ARGS+= \
--with-cpu=aarch64
else
CONFIGURE_ARGS+= \
--with-cpu=generic_fpu
Expand Down

0 comments on commit dec17eb

Please sign in to comment.