From e41c4607feb8b740f698842da082e5b3ae7fa348 Mon Sep 17 00:00:00 2001
From: Rahix <rahix@rahix.de>
Date: Wed, 24 Jul 2019 22:58:26 +0200
Subject: [PATCH] chore(sdk): Move heap into separate lib

Signed-off-by: Rahix <rahix@rahix.de>
---
 epicardium/meson.build                            |  2 +-
 hw-tests/dual-core/meson.build                    |  4 ++--
 .../CMSIS/Device/Maxim/MAX32665/meson.build       | 15 +++++++++++++--
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/epicardium/meson.build b/epicardium/meson.build
index a6ba27ce7..ce584e64f 100644
--- a/epicardium/meson.build
+++ b/epicardium/meson.build
@@ -74,7 +74,7 @@ elf = executable(
   module_sources,
   dependencies: [libcard10, max32665_startup_core0, maxusb, libff13],
   link_with: [api_dispatcher_lib, freertos],
-  link_whole: [max32665_startup_core0_lib, board_card10_lib],
+  link_whole: [max32665_startup_core0_lib, board_card10_lib, newlib_heap_lib],
   include_directories: [freertos_includes],
   link_args: [
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
diff --git a/hw-tests/dual-core/meson.build b/hw-tests/dual-core/meson.build
index 783b87755..c979cf080 100644
--- a/hw-tests/dual-core/meson.build
+++ b/hw-tests/dual-core/meson.build
@@ -3,7 +3,7 @@ executable(
   name + '.elf',
   'main.c',
   dependencies: [libcard10, max32665_startup_core0],
-  link_whole: [max32665_startup_core0_lib, board_card10_lib],
+  link_whole: [max32665_startup_core0_lib, board_card10_lib, newlib_heap_lib],
   link_args: [
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
   ],
@@ -14,7 +14,7 @@ executable(
   name + '.elf',
   'core1.c',
   dependencies: [periphdriver, board_card10, max32665_startup_core1],
-  link_whole: [max32665_startup_core1_lib, board_card10_lib],
+  link_whole: [max32665_startup_core1_lib, board_card10_lib, newlib_heap_lib],
   link_args: [
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
   ],
diff --git a/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/meson.build b/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/meson.build
index 4fef47d4e..99b214fd9 100644
--- a/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/meson.build
+++ b/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/meson.build
@@ -1,3 +1,16 @@
+#############################################################
+# NewLib Heap
+#############################################################
+
+sources = files(
+  './Source/heap.c',
+)
+
+newlib_heap_lib = static_library(
+  'newlib_heap',
+  sources,
+)
+
 #############################################################
 # For applications using just core0 or not dual-binaries
 #############################################################
@@ -28,7 +41,6 @@ max32665_startup = declare_dependency(
 sources = files(
   './Source/GCC/startup_max32665.S',
   './Source/system_max32665.c',
-  './Source/heap.c',
 )
 
 max32665_startup_core0_lib = static_library(
@@ -51,7 +63,6 @@ max32665_startup_core0 = declare_dependency(
 sources = files(
   './Source/GCC/startup_max32665.S',
   './Source/system_max32665_core1.c',
-  './Source/heap.c',
 )
 
 max32665_startup_core1_lib = static_library(
-- 
GitLab