Update Buildroot to 2021.02 (#1274)

This commit is contained in:
Stefan Agner
2021-03-16 11:45:43 +01:00
committed by GitHub
parent 0a2fdf47b3
commit 37d2f13e49
252 changed files with 1421 additions and 300 deletions

View File

@@ -0,0 +1,47 @@
From 4d3829fa52240c2b7e48770ab19584db33ba7863 Mon Sep 17 00:00:00 2001
From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Date: Fri, 5 Mar 2021 11:17:59 +0100
Subject: [PATCH] Makefile: fix support for passing FFLAGS on the make
command line
When openblas is built while passing FFLAGS on the make command line, the
compilation of lapack objects will not contain the flags specified in
Makefile but _only_ those passed in FFLAGS.
This can lead to build failure, e.g. because -fPIC is not passed to the
compilation of most lapack objects, but is given to the link command:
.../buildroot/output/host/bin/x86_64-linux-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -O2 -DMAX_STACK_ALLOC=2048 -Wall -m64 -DF_INTERFACE_GFORT -fPIC -DNO_WARMUP -DMAX_CPU_NUMBER=4 -DMAX_PARALLEL_NUMBER=1 -DVERSION=\"0.3.9\" -DASMNAME= -DASMFNAME=_ -DNAME=_ -DCNAME= -DCHAR_NAME=\"_\" -DCHAR_CNAME=\"\" -DNO_AFFINITY -I.. -shared -o ../libopenblas_nehalem-r0.3.9.so \
-Wl,--whole-archive ../libopenblas_nehalem-r0.3.9.a -Wl,--no-whole-archive \
-Wl,-soname,libopenblas.so.0 -lm -lgfortran -lm -lgfortran
.../buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-musl/9.3.0/../../../../x86_64-buildroot-linux-musl/bin/ld: ../libopenblas_nehalem-r0.3.9.a(sbdsvdx.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
In the initial support for this principle, added in commit
d0e731e8b825e7a554f245aa8f1118dcec9e2728, the flags specified in the
makefile were appended to the flags specified on the command-line.
Fix this situation by using 'override' for 'FFLAGS' in
lapack-netlib/make.inc. The flags passed on the command-line are already
part of the LAPACK_FFLAGS variable, so no '+=' is needed here.
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index fc5fe3f5..8ae1ff47 100644
--- a/Makefile
+++ b/Makefile
@@ -248,7 +248,7 @@ prof_lapack : lapack_prebuild
lapack_prebuild :
ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN)))
-@echo "FC = $(FC)" > $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "FFLAGS = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
+ -@echo "override FFLAGS = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
-@echo "POPTS = $(LAPACK_FPFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
-@echo "FFLAGS_NOOPT = -O0 $(LAPACK_NOOPT)" >> $(NETLIB_LAPACK_DIR)/make.inc
-@echo "PNOOPT = $(LAPACK_FPFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
--
2.26.2

View File

@@ -0,0 +1,31 @@
From ced08de1ad74811bc23d74121751537bfd8e9556 Mon Sep 17 00:00:00 2001
From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Date: Fri, 5 Mar 2021 11:15:52 +0100
Subject: [PATCH] Makefile: also consider -O, -Og and -Os when stripping flags
gcc also supports -O, -Og and -Os as optimization flags.
They may be given on the make command-line by users.
For the calculation of LAPACK_NOOPT, all such flags should be considered.
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index a22e16ba..fc5fe3f5 100644
--- a/Makefile
+++ b/Makefile
@@ -32,7 +32,7 @@ export NOFORTRAN
export NO_LAPACK
endif
-LAPACK_NOOPT := $(filter-out -O0 -O1 -O2 -O3 -Ofast,$(LAPACK_FFLAGS))
+LAPACK_NOOPT := $(filter-out -O0 -O1 -O2 -O3 -Ofast -O -Og -Os,$(LAPACK_FFLAGS))
SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench cpp_thread_test
--
2.26.2

View File

@@ -0,0 +1,40 @@
From 6d1c1350977d74fb2239f765bd92a5763cd3bb73 Mon Sep 17 00:00:00 2001
From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Date: Fri, 5 Mar 2021 14:09:23 +0100
Subject: [PATCH] Makefile.system: don't specify optimization level
[buildroot-specific]
Buildroot will pass an optimization level, but it is ignored because the
openblas makefiles _append_ to the flags passed on the command-line.
The CFLAGS/FFLAGS would e.g. contain '-Os -O2' in which -O2 survives.
Remove the optimization level specified in openblas itself.
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
---
Makefile.system | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile.system b/Makefile.system
index 1e30d05a..04b0be16 100644
--- a/Makefile.system
+++ b/Makefile.system
@@ -1216,11 +1216,11 @@ FCOMMON_OPT += -g
endif
ifndef COMMON_OPT
-COMMON_OPT = -O2
+COMMON_OPT =
endif
ifndef FCOMMON_OPT
-FCOMMON_OPT = -O2 -frecursive
+FCOMMON_OPT = -frecursive
endif
override CFLAGS += $(COMMON_OPT) $(CCOMMON_OPT) -I$(TOPDIR)
--
2.26.2