From 6c3ba502a11f87bc67555d26154cfd39d0af1bac Mon Sep 17 00:00:00 2001 From: "Field G. Van Zee" Date: Tue, 21 Nov 2017 13:50:53 -0600 Subject: [PATCH] Added 'x86_64' sub-config directory. Details: - Added missing x86_64 configuration directory, which was intended to be part of b7ca580. - Added -Wfatal-errors compiler warning flag to all configurations so that compilation stops after the first error. - Changed the vectorization flags for intel64 configuration to be compatible with 'penryn', the oldest sub-config included in that family. - Changed the vectorization flags for penryn to target the 'core2' microarchitecture and ssse3. --- config/amd64/make_defs.mk | 2 +- config/bulldozer/make_defs.mk | 2 +- config/cortexa15/make_defs.mk | 2 +- config/cortexa57/make_defs.mk | 2 +- config/cortexa9/make_defs.mk | 2 +- config/excavator/make_defs.mk | 2 +- config/intel64/make_defs.mk | 8 +-- config/knc/make_defs.mk | 2 +- config/knl/make_defs.mk | 2 +- config/old/armv7a/make_defs.mk | 2 +- config/old/emscripten/make_defs.mk | 2 +- config/old/loongson3a/make_defs.mk | 2 +- config/old/newarch/make_defs.mk | 2 +- config/old/pnacl/make_defs.mk | 2 +- config/penryn/make_defs.mk | 10 ++-- config/piledriver/make_defs.mk | 2 +- config/power7/make_defs.mk | 2 +- config/sandybridge/make_defs.mk | 2 +- config/steamroller/make_defs.mk | 2 +- config/template/make_defs.mk | 2 +- config/x86_64/bli_family_x86_64.h | 41 ++++++++++++++ config/x86_64/make_defs.mk | 86 ++++++++++++++++++++++++++++++ config/zen/make_defs.mk | 2 +- 23 files changed, 155 insertions(+), 28 deletions(-) create mode 100644 config/x86_64/bli_family_x86_64.h create mode 100644 config/x86_64/make_defs.mk diff --git a/config/amd64/make_defs.mk b/config/amd64/make_defs.mk index 42edf1be3..2e82513f5 100644 --- a/config/amd64/make_defs.mk +++ b/config/amd64/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/bulldozer/make_defs.mk b/config/bulldozer/make_defs.mk index a2988adf6..a309b9577 100644 --- a/config/bulldozer/make_defs.mk +++ b/config/bulldozer/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/cortexa15/make_defs.mk b/config/cortexa15/make_defs.mk index 48cfb0503..239b7d93a 100644 --- a/config/cortexa15/make_defs.mk +++ b/config/cortexa15/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 -mfloat-abi=hard -mfpu=neon CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/cortexa57/make_defs.mk b/config/cortexa57/make_defs.mk index 1cabc2196..1809991b0 100644 --- a/config/cortexa57/make_defs.mk +++ b/config/cortexa57/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_GNU_SOURCE CMISCFLAGS := -std=c99 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/cortexa9/make_defs.mk b/config/cortexa9/make_defs.mk index 58069a5b5..ddd70c349 100644 --- a/config/cortexa9/make_defs.mk +++ b/config/cortexa9/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 -mfloat-abi=hard -mfpu=neon CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/excavator/make_defs.mk b/config/excavator/make_defs.mk index e84048e8a..6cb1ca580 100644 --- a/config/excavator/make_defs.mk +++ b/config/excavator/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/intel64/make_defs.mk b/config/intel64/make_defs.mk index aeef9d640..22369bb6c 100644 --- a/config/intel64/make_defs.mk +++ b/config/intel64/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 -m64 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g @@ -67,13 +67,13 @@ endif CKOPTFLAGS := $(COPTFLAGS) ifeq ($(CC_VENDOR),gcc) -CVECFLAGS := -msse4.2 -mfpmath=sse -march=corei7 +CVECFLAGS := -mssse3 -mfpmath=sse -march=core2 else ifeq ($(CC_VENDOR),icc) -CVECFLAGS := -xSSE4.2 +CVECFLAGS := -xSSSE3 else ifeq ($(CC_VENDOR),clang) -CVECFLAGS := -msse4.2 -mfpmath=sse -march=corei7 +CVECFLAGS := -mssse3 -mfpmath=sse -march=core2 else $(error gcc, icc, or clang is required for this configuration.) endif diff --git a/config/knc/make_defs.mk b/config/knc/make_defs.mk index f1edb84f4..99d329c58 100644 --- a/config/knc/make_defs.mk +++ b/config/knc/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -mmic -fasm-blocks -std=c99 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/knl/make_defs.mk b/config/knl/make_defs.mk index 7374c5cbd..7b5006e3e 100644 --- a/config/knl/make_defs.mk +++ b/config/knl/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 -m64 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/old/armv7a/make_defs.mk b/config/old/armv7a/make_defs.mk index c9a0c48c7..fd0d8980f 100644 --- a/config/old/armv7a/make_defs.mk +++ b/config/old/armv7a/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 -mfloat-abi=hard CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/old/emscripten/make_defs.mk b/config/old/emscripten/make_defs.mk index af0d73564..2fe526ecb 100644 --- a/config/old/emscripten/make_defs.mk +++ b/config/old/emscripten/make_defs.mk @@ -51,7 +51,7 @@ CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 CPICFLAGS := -fPIC CDBGFLAGS := #-g4 -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors COPTFLAGS := -O2 CKOPTFLAGS := -O3 CVECFLAGS := diff --git a/config/old/loongson3a/make_defs.mk b/config/old/loongson3a/make_defs.mk index abfb263df..195d0ce36 100644 --- a/config/old/loongson3a/make_defs.mk +++ b/config/old/loongson3a/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L -mabi=64 CMISCFLAGS := -std=c99 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/old/newarch/make_defs.mk b/config/old/newarch/make_defs.mk index 2f93162c7..64d53c49e 100644 --- a/config/old/newarch/make_defs.mk +++ b/config/old/newarch/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/old/pnacl/make_defs.mk b/config/old/pnacl/make_defs.mk index 69bdb3b38..b060ba9cb 100644 --- a/config/old/pnacl/make_defs.mk +++ b/config/old/pnacl/make_defs.mk @@ -51,7 +51,7 @@ CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=gnu11 -I$(NACL_SDK_ROOT)/include CPICFLAGS := CDBGFLAGS := -g -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors COPTFLAGS := -O3 CKOPTFLAGS := $(COPTFLAGS) -ffast-math CVECFLAGS := diff --git a/config/penryn/make_defs.mk b/config/penryn/make_defs.mk index e67d29d83..1c9abfbcd 100644 --- a/config/penryn/make_defs.mk +++ b/config/penryn/make_defs.mk @@ -50,9 +50,9 @@ endif # Enable IEEE Standard 1003.1-2004 (POSIX.1d). # NOTE: This is needed to enable posix_memalign(). CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L -CMISCFLAGS := -std=c99 +CMISCFLAGS := -std=c99 -m64 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g @@ -67,13 +67,13 @@ endif CKOPTFLAGS := $(COPTFLAGS) ifeq ($(CC_VENDOR),gcc) -CVECFLAGS := -msse3 -march=corei7 -mfpmath=sse +CVECFLAGS := -mssse3 -mfpmath=sse -march=core2 else ifeq ($(CC_VENDOR),icc) -CVECFLAGS := -xSSE4.2 +CVECFLAGS := -xSSSE3 else ifeq ($(CC_VENDOR),clang) -CVECFLAGS := -msse3 -mfpmath=sse -march=corei7 +CVECFLAGS := -mssse3 -mfpmath=sse -march=core2 else $(error gcc, icc, or clang is required for this configuration.) endif diff --git a/config/piledriver/make_defs.mk b/config/piledriver/make_defs.mk index e1bb365a3..f2d59ec19 100644 --- a/config/piledriver/make_defs.mk +++ b/config/piledriver/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/power7/make_defs.mk b/config/power7/make_defs.mk index c16eacaff..0c12642f9 100644 --- a/config/power7/make_defs.mk +++ b/config/power7/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 -m64 -mcpu=power7 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/sandybridge/make_defs.mk b/config/sandybridge/make_defs.mk index f49c9d4ee..f14cb0f60 100644 --- a/config/sandybridge/make_defs.mk +++ b/config/sandybridge/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 -m64 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/steamroller/make_defs.mk b/config/steamroller/make_defs.mk index 0a57287f0..187d97cda 100644 --- a/config/steamroller/make_defs.mk +++ b/config/steamroller/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/template/make_defs.mk b/config/template/make_defs.mk index caeed775e..7b1521608 100644 --- a/config/template/make_defs.mk +++ b/config/template/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g diff --git a/config/x86_64/bli_family_x86_64.h b/config/x86_64/bli_family_x86_64.h new file mode 100644 index 000000000..0cc9e94b7 --- /dev/null +++ b/config/x86_64/bli_family_x86_64.h @@ -0,0 +1,41 @@ +/* + + BLIS + An object-based framework for developing high-performance BLAS-like + libraries. + + Copyright (C) 2014, The University of Texas at Austin + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of The University of Texas at Austin nor the names + of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + +//#ifndef BLIS_FAMILY_H +//#define BLIS_FAMILY_H + + + +//#endif + diff --git a/config/x86_64/make_defs.mk b/config/x86_64/make_defs.mk new file mode 100644 index 000000000..c79aa05d6 --- /dev/null +++ b/config/x86_64/make_defs.mk @@ -0,0 +1,86 @@ +# +# +# BLIS +# An object-based framework for developing high-performance BLAS-like +# libraries. +# +# Copyright (C) 2014, The University of Texas at Austin +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# - Neither the name of The University of Texas at Austin nor the names +# of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# + + +# Declare the name of the current configuration and add it to the +# running list of configurations included by common.mk. +THIS_CONFIG := x86_64 +#CONFIGS_INCL += $(THIS_CONFIG) + +# +# --- Determine the C compiler and related flags --- +# + +ifeq ($(CC),) +CC := gcc +CC_VENDOR := gcc +endif + +# Enable IEEE Standard 1003.1-2004 (POSIX.1d). +# NOTE: This is needed to enable posix_memalign(). +CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L +CMISCFLAGS := -std=c99 -m64 +CPICFLAGS := -fPIC +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors + +ifneq ($(DEBUG_TYPE),off) +CDBGFLAGS := -g +endif + +ifeq ($(DEBUG_TYPE),noopt) +COPTFLAGS := -O0 +else +COPTFLAGS := -O3 +endif + +CKOPTFLAGS := $(COPTFLAGS) + +ifeq ($(CC_VENDOR),gcc) +CVECFLAGS := -mssse3 -mfpmath=sse -march=core2 +else +ifeq ($(CC_VENDOR),icc) +CVECFLAGS := -xSSE3 +else +ifeq ($(CC_VENDOR),clang) +CVECFLAGS := -mssse3 -mfpmath=sse -march=core2 +else +$(error gcc, icc, or clang is required for this configuration.) +endif +endif +endif + +# Store all of the variables here to new variables containing the +# configuration name. +$(eval $(call store-make-defs,$(THIS_CONFIG))) + diff --git a/config/zen/make_defs.mk b/config/zen/make_defs.mk index 91c78446d..08b37348f 100644 --- a/config/zen/make_defs.mk +++ b/config/zen/make_defs.mk @@ -52,7 +52,7 @@ endif CPPROCFLAGS := -D_POSIX_C_SOURCE=200112L CMISCFLAGS := -std=c99 CPICFLAGS := -fPIC -CWARNFLAGS := -Wall -Wno-unused-function +CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors ifneq ($(DEBUG_TYPE),off) CDBGFLAGS := -g