summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt3
-rwxr-xr-xbuild-aux/embed-sources.h.gen4
2 files changed, 4 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c6c7068..483274d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -46,7 +46,8 @@ function(target_embed_sources arg_compile_target arg_link_target arg_hdrname)
OUTPUT "${embed_src}.o"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMAND mkdir -p -- "$<PATH:GET_PARENT_PATH,${CMAKE_CURRENT_BINARY_DIR}/${embed_src}>" &&
- ${CMAKE_LINKER} -r -b binary -o "${CMAKE_CURRENT_BINARY_DIR}/${embed_src}.o" "${embed_src}"
+ ${CMAKE_LINKER} -r -b binary -o "${CMAKE_CURRENT_BINARY_DIR}/${embed_src}.o" "${embed_src}" &&
+ ${CMAKE_OBJCOPY} --rename-section .data=.rodata,alloc,load,readonly,data,contents "${CMAKE_CURRENT_BINARY_DIR}/${embed_src}.o" "${CMAKE_CURRENT_BINARY_DIR}/${embed_src}.o"
DEPENDS "${embed_src}"
)
list(APPEND embed_objs "${embed_src}.o")
diff --git a/build-aux/embed-sources.h.gen b/build-aux/embed-sources.h.gen
index d473094..0329496 100755
--- a/build-aux/embed-sources.h.gen
+++ b/build-aux/embed-sources.h.gen
@@ -1,10 +1,10 @@
#!/bin/sh
# build-aux/embed-sources.h.gen - Generate C definitions for GNU `ld -r -b binary` files
#
-# Copyright (C) 2024 Luke T. Shumaker <lukeshu@lukeshu.com>
+# Copyright (C) 2024-2025 Luke T. Shumaker <lukeshu@lukeshu.com>
# SPDX-License-Identifier: AGPL-3.0-or-later
nm --format=posix "$@" |
sed -n -E \
- -e 's/(.*_(end|start)) D .*/extern char \1[];/p' \
+ -e 's/(.*_(end|start)) [DR] .*/extern char \1[];/p' \
-e 's/(.*_size) A .*/extern size_t \1;/p'