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))