Update buidlroot to version 2016.08.1

This commit is contained in:
2016-11-16 22:07:29 +01:00
parent 807ab03547
commit a1061efbc2
3636 changed files with 59539 additions and 25783 deletions

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -0,0 +1,2 @@
# Locally calculated
sha256 2ad0270a39dbaf891b439baacf198ea4ab149cd6ed39a5f50c494723f1936be5 openblas-f04af36ad0e85b64f12a7c38095383192cc52345.tar.gz

View 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))