Fix SConstruct for asan build
Sometimes it's easier to debug gem5 built with ASan enabled. This CL fixes some build error when using --with-asan. Bug: None Test: ./scripts/build_gem5 --with-asan --with-ubsan build/ARM/gem5.debug Change-Id: Iaaaaebc3f25749e11f97bf454ddd0153b3de56e7 Reviewed-on: https://gem5-review.googlesource.com/12511 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com> Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
This commit is contained in:
16
SConstruct
16
SConstruct
@@ -484,11 +484,11 @@ if main['GCC']:
|
|||||||
compareVersions(main['GCC_VERSION'], '4.9') >= 0:
|
compareVersions(main['GCC_VERSION'], '4.9') >= 0:
|
||||||
main.Append(CCFLAGS=['-fsanitize=address,undefined',
|
main.Append(CCFLAGS=['-fsanitize=address,undefined',
|
||||||
'-fno-omit-frame-pointer'],
|
'-fno-omit-frame-pointer'],
|
||||||
LINKFLAGS='-fsanitize=address,undefined')
|
LINKFLAGS='-fsanitize=address,undefined')
|
||||||
else:
|
else:
|
||||||
main.Append(CCFLAGS=['-fsanitize=address',
|
main.Append(CCFLAGS=['-fsanitize=address',
|
||||||
'-fno-omit-frame-pointer'],
|
'-fno-omit-frame-pointer'],
|
||||||
LINKFLAGS='-fsanitize=address')
|
LINKFLAGS='-fsanitize=address')
|
||||||
# Only gcc >= 4.9 supports UBSan, so check both the version
|
# Only gcc >= 4.9 supports UBSan, so check both the version
|
||||||
# and the command-line option before adding the compiler and
|
# and the command-line option before adding the compiler and
|
||||||
# linker flags.
|
# linker flags.
|
||||||
@@ -541,16 +541,16 @@ elif main['CLANG']:
|
|||||||
# versions here.
|
# versions here.
|
||||||
if GetOption('with_ubsan'):
|
if GetOption('with_ubsan'):
|
||||||
if GetOption('with_asan'):
|
if GetOption('with_asan'):
|
||||||
env.Append(CCFLAGS=['-fsanitize=address,undefined',
|
main.Append(CCFLAGS=['-fsanitize=address,undefined',
|
||||||
'-fno-omit-frame-pointer'],
|
'-fno-omit-frame-pointer'],
|
||||||
LINKFLAGS='-fsanitize=address,undefined')
|
LINKFLAGS='-fsanitize=address,undefined')
|
||||||
else:
|
else:
|
||||||
env.Append(CCFLAGS='-fsanitize=undefined',
|
main.Append(CCFLAGS='-fsanitize=undefined',
|
||||||
LINKFLAGS='-fsanitize=undefined')
|
LINKFLAGS='-fsanitize=undefined')
|
||||||
|
|
||||||
elif GetOption('with_asan'):
|
elif GetOption('with_asan'):
|
||||||
env.Append(CCFLAGS=['-fsanitize=address',
|
main.Append(CCFLAGS=['-fsanitize=address',
|
||||||
'-fno-omit-frame-pointer'],
|
'-fno-omit-frame-pointer'],
|
||||||
LINKFLAGS='-fsanitize=address')
|
LINKFLAGS='-fsanitize=address')
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -461,7 +461,7 @@ namespace ArmISA
|
|||||||
return INTREG_SP0;
|
return INTREG_SP0;
|
||||||
default:
|
default:
|
||||||
panic("Invalid exception level");
|
panic("Invalid exception level");
|
||||||
break;
|
return 0; // Never happens.
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return flattenIntRegModeIndex(reg);
|
return flattenIntRegModeIndex(reg);
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ class RegId {
|
|||||||
static constexpr size_t Scale = TheISA::NumVecElemPerVecReg;
|
static constexpr size_t Scale = TheISA::NumVecElemPerVecReg;
|
||||||
friend struct std::hash<RegId>;
|
friend struct std::hash<RegId>;
|
||||||
public:
|
public:
|
||||||
RegId() {};
|
RegId() : regClass(IntRegClass), regIdx(0), elemIdx(-1) {}
|
||||||
RegId(RegClass reg_class, RegIndex reg_idx)
|
RegId(RegClass reg_class, RegIndex reg_idx)
|
||||||
: regClass(reg_class), regIdx(reg_idx), elemIdx(-1)
|
: regClass(reg_class), regIdx(reg_idx), elemIdx(-1)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user