Update buidlroot to version 2016.08.1
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
From 7f28cd1f88145a701e5dbbf50558bb65fce79f61 Mon Sep 17 00:00:00 2001
|
||||
From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
|
||||
Date: Thu, 14 Jul 2016 17:20:51 +0100
|
||||
Subject: [PATCH] Complete support for MIPS n32 ABI
|
||||
|
||||
Pull request: https://github.com/xianyi/OpenBLAS/pull/926
|
||||
|
||||
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
|
||||
---
|
||||
Makefile.system | 27 +++++++++------------------
|
||||
c_check | 9 +++++++--
|
||||
f_check | 7 ++++++-
|
||||
3 files changed, 22 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/Makefile.system b/Makefile.system
|
||||
index 24a7a64..bbcdb82 100644
|
||||
--- a/Makefile.system
|
||||
+++ b/Makefile.system
|
||||
@@ -502,13 +502,16 @@ endif
|
||||
|
||||
ifdef NO_BINARY_MODE
|
||||
|
||||
-ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
|
||||
+ifeq ($(ARCH), $(filter $(ARCH),mips64))
|
||||
ifdef BINARY64
|
||||
CCOMMON_OPT += -mabi=64
|
||||
else
|
||||
-CCOMMON_OPT += -mabi=32
|
||||
+CCOMMON_OPT += -mabi=n32
|
||||
endif
|
||||
BINARY_DEFINED = 1
|
||||
+else ifeq ($(ARCH), $(filter $(ARCH),mips))
|
||||
+CCOMMON_OPT += -mabi=32
|
||||
+BINARY_DEFINED = 1
|
||||
endif
|
||||
|
||||
ifeq ($(CORE), LOONGSON3A)
|
||||
@@ -599,12 +602,14 @@ ifneq ($(NO_LAPACK), 1)
|
||||
EXTRALIB += -lgfortran
|
||||
endif
|
||||
ifdef NO_BINARY_MODE
|
||||
-ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
|
||||
+ifeq ($(ARCH), $(filter $(ARCH),mips64))
|
||||
ifdef BINARY64
|
||||
FCOMMON_OPT += -mabi=64
|
||||
else
|
||||
-FCOMMON_OPT += -mabi=32
|
||||
+FCOMMON_OPT += -mabi=n32
|
||||
endif
|
||||
+else ifeq ($(ARCH), $(filter $(ARCH),mips))
|
||||
+FCOMMON_OPT += -mabi=32
|
||||
endif
|
||||
else
|
||||
ifdef BINARY64
|
||||
@@ -688,20 +693,6 @@ endif
|
||||
endif
|
||||
endif
|
||||
|
||||
-ifeq ($(filter $(ARCH),mips64 mips))
|
||||
-ifndef BINARY64
|
||||
-FCOMMON_OPT += -m32
|
||||
-else
|
||||
-FCOMMON_OPT += -m64
|
||||
-endif
|
||||
-else
|
||||
-ifdef BINARY64
|
||||
-FCOMMON_OPT += -mabi=64
|
||||
-else
|
||||
-FCOMMON_OPT += -mabi=32
|
||||
-endif
|
||||
-endif
|
||||
-
|
||||
ifeq ($(USE_OPENMP), 1)
|
||||
FCOMMON_OPT += -mp
|
||||
endif
|
||||
diff --git a/c_check b/c_check
|
||||
index 50ff360..9f457df 100644
|
||||
--- a/c_check
|
||||
+++ b/c_check
|
||||
@@ -79,8 +79,13 @@ if ($os eq "AIX") {
|
||||
$defined = 1;
|
||||
}
|
||||
|
||||
-if (($architecture eq "mips") || ($architecture eq "mips64")) {
|
||||
- $compiler_name .= " -mabi=32" if ($binary eq "32");
|
||||
+if ($architecture eq "mips") {
|
||||
+ $compiler_name .= " -mabi=32";
|
||||
+ $defined = 1;
|
||||
+}
|
||||
+
|
||||
+if ($architecture eq "mips64") {
|
||||
+ $compiler_name .= " -mabi=n32" if ($binary eq "32");
|
||||
$compiler_name .= " -mabi=64" if ($binary eq "64");
|
||||
$defined = 1;
|
||||
}
|
||||
diff --git a/f_check b/f_check
|
||||
index 4c03ac7..3520e8b 100644
|
||||
--- a/f_check
|
||||
+++ b/f_check
|
||||
@@ -223,7 +223,12 @@ if (!$?) {
|
||||
}
|
||||
#For gfortran MIPS
|
||||
if ($?) {
|
||||
- $link = `$compiler $openmp -mabi=32 -v ftest2.f 2>&1 && rm -f a.out a.exe`;
|
||||
+ $mips_data = `$compiler_bin -E -dM - < /dev/null`;
|
||||
+ if ($mips_data =~ /_MIPS_ISA_MIPS64/) {
|
||||
+ $link = `$compiler $openmp -mabi=n32 -v ftest2.f 2>&1 && rm -f a.out a.exe`;
|
||||
+ } else {
|
||||
+ $link = `$compiler $openmp -mabi=32 -v ftest2.f 2>&1 && rm -f a.out a.exe`;
|
||||
+ }
|
||||
}
|
||||
$binary = "" if ($?);
|
||||
}
|
||||
--
|
||||
2.7.3
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
From 71b9e9b7f080c464777d07bd1a917a1c449d2ef8 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Sun, 7 Aug 2016 23:20:00 +0200
|
||||
Subject: [PATCH] Makefile.arm: remove -march flags
|
||||
|
||||
The provided -march flags, especially for ARMv5 and ARMv6 may not
|
||||
necessarily match the needed ones: for ARMv5, it might be armv5,
|
||||
armv5te, armv5t, etc. If the wrong one is used, the incorrect toolchain
|
||||
sysroot can be used in a multilib toolchain.
|
||||
|
||||
Therefore, let the user building OpenBLAS pass the appropriate -march
|
||||
flag.
|
||||
|
||||
The other flags, such as -mfpu=vfp or -mfloat-abi=hard are kept, as they
|
||||
are actually required for the build to proceed (OpenBLAS uses VFP
|
||||
instructions, and assume an EABIhf ABI).
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
Makefile.arm | 24 ++++++++++++------------
|
||||
1 file changed, 12 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/Makefile.arm b/Makefile.arm
|
||||
index 62bf275..c0d6ab8 100644
|
||||
--- a/Makefile.arm
|
||||
+++ b/Makefile.arm
|
||||
@@ -1,31 +1,31 @@
|
||||
# ifeq logical or
|
||||
ifeq ($(CORE), $(filter $(CORE),CORTEXA9 CORTEXA15))
|
||||
ifeq ($(OSNAME), Android)
|
||||
-CCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -march=armv7-a
|
||||
-FCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -march=armv7-a
|
||||
+CCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard
|
||||
+FCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard
|
||||
else
|
||||
-CCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard -march=armv7-a
|
||||
-FCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard -march=armv7-a
|
||||
+CCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard
|
||||
+FCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(CORE), ARMV7)
|
||||
ifeq ($(OSNAME), Android)
|
||||
-CCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -march=armv7-a -Wl,--no-warn-mismatch
|
||||
-FCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -march=armv7-a -Wl,--no-warn-mismatch
|
||||
+CCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -Wl,--no-warn-mismatch
|
||||
+FCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -Wl,--no-warn-mismatch
|
||||
else
|
||||
-CCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard -march=armv7-a
|
||||
-FCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard -march=armv7-a
|
||||
+CCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard
|
||||
+FCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(CORE), ARMV6)
|
||||
-CCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6
|
||||
-FCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6
|
||||
+CCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard
|
||||
+FCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(CORE), ARMV5)
|
||||
-CCOMMON_OPT += -marm -march=armv5
|
||||
-FCOMMON_OPT += -marm -march=armv5
|
||||
+CCOMMON_OPT += -marm
|
||||
+FCOMMON_OPT += -marm
|
||||
endif
|
||||
--
|
||||
2.7.4
|
||||
|
||||
75
bsp/buildroot/package/openblas/Config.in
Normal file
75
bsp/buildroot/package/openblas/Config.in
Normal file
@@ -0,0 +1,75 @@
|
||||
config BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET
|
||||
string
|
||||
default "P2" if BR2_x86_pentium2
|
||||
default "KATMAI" if BR2_x86_pentium3
|
||||
default "NORTHWOOD" if BR2_x86_pentium4
|
||||
default "PRESCOTT" if BR2_x86_prescott
|
||||
default "BANIAS" if BR2_x86_pentium_m
|
||||
default "CORE2" if BR2_x86_core2
|
||||
default "NEHALEM" if BR2_x86_corei7
|
||||
default "SANDYBRIDGE" if BR2_x86_corei7_avx
|
||||
default "HASWELL" if BR2_x86_core_avx2
|
||||
default "ATOM" if BR2_x86_atom
|
||||
default "ATHLON" if BR2_x86_athlon || BR2_x86_athlon_4
|
||||
default "OPTERON" if BR2_x86_opteron
|
||||
default "OPTERON_SSE3" if BR2_x86_opteron_sse3
|
||||
default "BARCELONA" if BR2_x86_barcelona
|
||||
default "STEAMROLLER" if BR2_x86_steamroller
|
||||
default "VIAC3" if BR2_x86_c3 || BR2_x86_c32
|
||||
default "SSE_GENERIC" if BR2_X86_CPU_HAS_SSE
|
||||
default "POWER4" if BR2_powerpc_power4
|
||||
default "POWER5" if BR2_powerpc_power5
|
||||
default "POWER6" if BR2_powerpc_power6
|
||||
default "POWER7" if BR2_powerpc_power7
|
||||
default "POWER8" if BR2_powerpc_power8
|
||||
default "PPCG4" if BR2_powerpc_7400 || BR2_powerpc_7450
|
||||
default "PPC970" if BR2_powerpc_970
|
||||
default "PPC440" if BR2_powerpc_440
|
||||
default "PPC440FP2" if BR2_powerpc_440fp
|
||||
# P5600 is built with MSA support which is only available in Codescape toolchains
|
||||
default "P5600" if BR2_mips_32r2 && BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS
|
||||
default "SICORTEX" if BR2_mips_64
|
||||
# I6400 is built with MSA support which is only available in Codescape toolchains
|
||||
default "I6400" if BR2_mips_64r6 && BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS
|
||||
default "SPARC" if BR2_sparc
|
||||
# Cortex-A15 always have a VFPv4
|
||||
default "CORTEXA15" if (BR2_cortex_a15 && BR2_ARM_EABIHF)
|
||||
# Cortex-A9 have an optional VFPv3, so we need to make sure it
|
||||
# is available
|
||||
default "CORTEXA9" if (BR2_cortex_a9 && BR2_ARM_EABIHF && \
|
||||
BR2_ARM_CPU_HAS_VFPV3)
|
||||
default "ARMV5" if BR2_ARM_CPU_ARMV5
|
||||
# On ARMv6, OpenBLAS assumes that a VFP is available, and
|
||||
# EABIhf is used
|
||||
default "ARMV6" if (BR2_ARM_CPU_ARMV6 && BR2_ARM_EABIHF && \
|
||||
BR2_ARM_CPU_HAS_VFPV2)
|
||||
# On ARMv7, OpenBLAS assumes that a full VFPv3+ is available
|
||||
# (and not the more limited D16 variant), and that EABIhf is
|
||||
# used.
|
||||
default "ARMV7" if (BR2_ARM_CPU_ARMV7A && BR2_ARM_EABIHF && \
|
||||
BR2_ARM_CPU_HAS_VFPV3)
|
||||
default "ARMV8" if BR2_aarch64 || BR2_aarch64_be
|
||||
help
|
||||
OpenBLAS target CPU. See TargetList.txt in the source tree for
|
||||
the possible target strings. A possible value is set
|
||||
automatically based on your Target Architecture Variant.
|
||||
|
||||
config BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS
|
||||
bool
|
||||
default y if BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET != ""
|
||||
|
||||
config BR2_PACKAGE_OPENBLAS
|
||||
bool "openblas"
|
||||
depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS
|
||||
help
|
||||
An optimized BLAS library based on GotoBLAS2 1.13 BSD version.
|
||||
|
||||
https://www.openblas.net/
|
||||
|
||||
if BR2_PACKAGE_OPENBLAS
|
||||
|
||||
config BR2_PACKAGE_OPENBLAS_TARGET
|
||||
string "OpenBLAS target CPU"
|
||||
default BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET
|
||||
|
||||
endif
|
||||
2
bsp/buildroot/package/openblas/openblas.hash
Normal file
2
bsp/buildroot/package/openblas/openblas.hash
Normal file
@@ -0,0 +1,2 @@
|
||||
# Locally calculated
|
||||
sha256 2ad0270a39dbaf891b439baacf198ea4ab149cd6ed39a5f50c494723f1936be5 openblas-f04af36ad0e85b64f12a7c38095383192cc52345.tar.gz
|
||||
69
bsp/buildroot/package/openblas/openblas.mk
Normal file
69
bsp/buildroot/package/openblas/openblas.mk
Normal file
@@ -0,0 +1,69 @@
|
||||
################################################################################
|
||||
#
|
||||
# openblas
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OPENBLAS_VERSION = f04af36ad0e85b64f12a7c38095383192cc52345
|
||||
OPENBLAS_SITE = $(call github,xianyi,OpenBLAS,$(OPENBLAS_VERSION))
|
||||
OPENBLAS_LICENSE = BSD-3c
|
||||
OPENBLAS_LICENSE_FILES = LICENSE
|
||||
OPENBLAS_INSTALL_STAGING = YES
|
||||
|
||||
# Initialise OpenBLAS make options to $(TARGET_CONFIGURE_OPTS)
|
||||
OPENBLAS_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS)
|
||||
|
||||
# Enable cross-compiling
|
||||
OPENBLAS_MAKE_OPTS += CROSS=1
|
||||
|
||||
# Set OpenBLAS target
|
||||
OPENBLAS_MAKE_OPTS += TARGET=$(BR2_PACKAGE_OPENBLAS_TARGET)
|
||||
|
||||
# When Fortran is not available, only build the C version of BLAS
|
||||
ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),)
|
||||
OPENBLAS_MAKE_OPTS += ONLY_CBLAS=1
|
||||
endif
|
||||
|
||||
# Enable/Disable multi-threading (not for static-only since it uses dlfcn.h)
|
||||
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS):$(BR2_STATIC_LIBS),y:)
|
||||
OPENBLAS_MAKE_OPTS += USE_THREAD=1
|
||||
else
|
||||
OPENBLAS_MAKE_OPTS += USE_THREAD=0
|
||||
endif
|
||||
|
||||
# Static-only/Shared-only toggle
|
||||
ifeq ($(BR2_STATIC_LIBS),y)
|
||||
OPENBLAS_MAKE_OPTS += NO_SHARED=1
|
||||
else ifeq ($(BR2_SHARED_LIBS),y)
|
||||
OPENBLAS_MAKE_OPTS += NO_STATIC=1
|
||||
endif
|
||||
|
||||
# binutils version <= 2.23.2 has a bug
|
||||
# (https://sourceware.org/bugzilla/show_bug.cgi?id=14887) where
|
||||
# whitespaces in ARM register specifications such as [ r1, #12 ] or [
|
||||
# r2 ] cause the assembler to reject the code. Since there are
|
||||
# numerous instances of such cases in the code, we use sed rather than
|
||||
# a patch. We simply replace [ foobar ] by [foobar] to work around the
|
||||
# problem.
|
||||
define OPENBLAS_FIXUP_ARM_ASSEMBLY
|
||||
$(SED) 's%\[\s*%\[%;s%\s*\]%\]%' $(@D)/kernel/arm/*.S
|
||||
endef
|
||||
|
||||
OPENBLAS_POST_PATCH_HOOKS += OPENBLAS_FIXUP_ARM_ASSEMBLY
|
||||
|
||||
define OPENBLAS_BUILD_CMDS
|
||||
$(TARGET_MAKE_ENV) $(MAKE) $(OPENBLAS_MAKE_OPTS) \
|
||||
-C $(@D)
|
||||
endef
|
||||
|
||||
define OPENBLAS_INSTALL_STAGING_CMDS
|
||||
$(TARGET_MAKE_ENV) $(MAKE) $(OPENBLAS_MAKE_OPTS) \
|
||||
-C $(@D) install PREFIX=$(STAGING_DIR)/usr
|
||||
endef
|
||||
|
||||
define OPENBLAS_INSTALL_TARGET_CMDS
|
||||
$(TARGET_MAKE_ENV) $(MAKE) $(OPENBLAS_MAKE_OPTS) \
|
||||
-C $(@D) install PREFIX=$(TARGET_DIR)/usr
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
||||
Reference in New Issue
Block a user