From a91e979c5ae0a43461ce585bfb3ae93fbf284c63 Mon Sep 17 00:00:00 2001 From: Stefan O'Rear Date: Sat, 1 Aug 2020 23:55:35 -0400 Subject: [PATCH] clang: Fix errors on zero kernel devices "const TYPE *ptr" creates a non-const pointer to const data; for the pointer itself to be rodata requires "TYPE *const ptr". Taking the size of the pointer is caught by -Werror by default; suppress that. Signed-off-by: Stefan O'Rear --- llvm.cmake | 1 + tools/hardware/outputs/c_header.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/llvm.cmake b/llvm.cmake index 5964bad5b..0711bf96d 100644 --- a/llvm.cmake +++ b/llvm.cmake @@ -33,6 +33,7 @@ set(CMAKE_CXX_COMPILER "clang++") set(CMAKE_CXX_COMPILER_ID Clang) set(CMAKE_CXX_COMPILER_TARGET ${TRIPLE}) +string(APPEND c_common_flags " -Wno-sizeof-pointer-div") string(APPEND c_common_flags " -Qunused-arguments") string(APPEND c_common_flags " -Wno-constant-logical-operand") if(NOT ("${TRIPLE}" MATCHES "^riscv")) diff --git a/tools/hardware/outputs/c_header.py b/tools/hardware/outputs/c_header.py index 046f02f35..02825b262 100644 --- a/tools/hardware/outputs/c_header.py +++ b/tools/hardware/outputs/c_header.py @@ -93,7 +93,7 @@ static const kernel_frame_t BOOT_RODATA kernel_devices[] = { {% endfor %} }; {% else %} -static const kernel_frame_t BOOT_RODATA *kernel_devices = NULL; +static const kernel_frame_t BOOT_RODATA *const kernel_devices = NULL; {% endif %} /* PHYSICAL MEMORY */