COMPMID-3599: Fix bare metal compilation issues
Newer toolchains don't have support for libssp. Make
sure not to compile with -fstack-protector on bare_metal
if the compiler version is greater than 7.0.0
Change-Id: I3f4e9496774e138ae13c4a5ec96902c19534a17f
Signed-off-by: Michalis Spyrou <michalis.spyrou@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4154
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
diff --git a/SConstruct b/SConstruct
index 985f34c..fdb8d5c 100644
--- a/SConstruct
+++ b/SConstruct
@@ -25,12 +25,14 @@
import subprocess
def version_at_least(version, required):
- end = min(len(version), len(required))
- for i in range(0, end, 2):
- if int(version[i]) < int(required[i]):
+ version_list = version.split('.')
+ required_list = required.split('.')
+ end = min(len(version_list), len(required_list))
+ for i in range(0, end):
+ if int(version_list[i]) < int(required_list[i]):
return False
- elif int(version[i]) > int(required[i]):
+ elif int(version_list[i]) > int(required_list[i]):
return True
return True
@@ -283,6 +285,9 @@
if compiler_ver == '4.8.3':
env.Append(CXXFLAGS = ['-Wno-array-bounds'])
+ if not version_at_least(compiler_ver, '7.0.0') and env['os'] == 'bare_metal':
+ env.Append(LINKFLAGS = ['-fstack-protector-strong'])
+
if env['data_type_support']:
if any(i in env['data_type_support'] for i in ['all', 'fp16']):
env.Append(CXXFLAGS = ['-DENABLE_FP16_KERNELS'])