Allow boards to specify CXFLAGS, and use that to disable machine outlining for Sonata.
diff --git a/sdk/boards/sonata-prerelease.json b/sdk/boards/sonata-prerelease.json
index 57dac9e..41a3812 100644
--- a/sdk/boards/sonata-prerelease.json
+++ b/sdk/boards/sonata-prerelease.json
@@ -93,6 +93,7 @@
"ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM=1",
"ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM=1"
],
+ "cxflags": "-enable-machine-outliner=never",
"driver_includes" : [
"../include/platform/sunburst",
"../include/platform/ibex",
diff --git a/sdk/xmake.lua b/sdk/xmake.lua
index ae74917..78ded87 100644
--- a/sdk/xmake.lua
+++ b/sdk/xmake.lua
@@ -350,6 +350,13 @@
end)
end
+ -- Add cxflags to all dependencies.
+ local add_cxflags = function (cxflags)
+ visit_all_dependencies(function (target)
+ target:add('cxflags', cxflags, {force = true})
+ end)
+ end
+
local software_revoker = false
if board.revoker then
local temporal_defines = { "TEMPORAL_SAFETY" }
@@ -394,6 +401,11 @@
add_defines(board.defines)
end
+ -- If this board defines any cxflags, add them to all targets
+ if board.cxflags then
+ add_cxflags(board.cxflags)
+ end
+
add_defines("CPU_TIMER_HZ=" .. math.floor(board.timer_hz))
add_defines("TICK_RATE_HZ=" .. math.floor(board.tickrate_hz))