diff options
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rwxr-xr-x | build-aux/embed-sources.h.gen | 4 |
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' |