Skip to content

Commit 28c3512

Browse files
dcpleungnashif
authored andcommitted
cmake: rename variables related to kernel objects
This renames the variables related to the generation of kernel object hashes, and simply makes them more descriptive. Signed-off-by: Daniel Leung <[email protected]>
1 parent 365be45 commit 28c3512

File tree

1 file changed

+64
-44
lines changed

1 file changed

+64
-44
lines changed

CMakeLists.txt

Lines changed: 64 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -801,11 +801,11 @@ if(CONFIG_USERSPACE)
801801
set(GEN_KOBJ_LIST ${ZEPHYR_BASE}/scripts/gen_kobject_list.py)
802802
set(PROCESS_GPERF ${ZEPHYR_BASE}/scripts/process_gperf.py)
803803

804-
set(OBJ_LIST kobject_hash.gperf)
805-
set(OUTPUT_SRC_PRE kobject_hash_preprocessed.c)
806-
set(OUTPUT_SRC kobject_hash.c)
807-
set(OUTPUT_OBJ kobject_hash.c.obj)
808-
set(OUTPUT_OBJ_RENAMED kobject_hash_renamed.o)
804+
set(KOBJECT_HASH_LIST kobject_hash.gperf)
805+
set(KOBJECT_HASH_OUTPUT_SRC_PRE kobject_hash_preprocessed.c)
806+
set(KOBJECT_HASH_OUTPUT_SRC kobject_hash.c)
807+
set(KOBJECT_HASH_OUTPUT_OBJ kobject_hash.c.obj)
808+
set(KOBJECT_HASH_OUTPUT_OBJ_RENAMED kobject_hash_renamed.o)
809809

810810
# Essentially what we are doing here is extracting some information
811811
# out of the nearly finished elf file, generating the source code
@@ -815,112 +815,132 @@ if(CONFIG_USERSPACE)
815815

816816
# Use the script GEN_KOBJ_LIST to scan the kernel binary's
817817
# (${ZEPHYR_PREBUILT_EXECUTABLE}) DWARF information to produce a table of kernel
818-
# objects (OBJ_LIST) which we will then pass to gperf
818+
# objects (KOBJECT_HASH_LIST) which we will then pass to gperf
819819
add_custom_command(
820-
OUTPUT ${OBJ_LIST}
820+
OUTPUT ${KOBJECT_HASH_LIST}
821821
COMMAND
822822
${PYTHON_EXECUTABLE}
823823
${GEN_KOBJ_LIST}
824824
--kernel $<TARGET_FILE:${ZEPHYR_PREBUILT_EXECUTABLE}>
825-
--gperf-output ${OBJ_LIST}
825+
--gperf-output ${KOBJECT_HASH_LIST}
826826
${gen_kobject_list_include_args}
827827
$<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:--verbose>
828828
DEPENDS
829829
${ZEPHYR_PREBUILT_EXECUTABLE}
830830
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
831831
)
832-
add_custom_target(obj_list DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${OBJ_LIST})
832+
add_custom_target(
833+
kobj_hash_list
834+
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${KOBJECT_HASH_LIST}
835+
)
833836

834-
# Use gperf to generate C code (OUTPUT_SRC_PRE) which implements a
835-
# perfect hashtable based on OBJ_LIST
837+
# Use gperf to generate C code (KOBJECT_HASH_OUTPUT_SRC_PRE) which implements a
838+
# perfect hashtable based on KOBJECT_HASH_LIST
836839
add_custom_command(
837-
OUTPUT ${OUTPUT_SRC_PRE}
840+
OUTPUT ${KOBJECT_HASH_OUTPUT_SRC_PRE}
838841
COMMAND
839842
${GPERF}
840-
--output-file ${OUTPUT_SRC_PRE}
841-
${OBJ_LIST}
842-
DEPENDS obj_list ${OBJ_LIST}
843+
--output-file ${KOBJECT_HASH_OUTPUT_SRC_PRE}
844+
${KOBJECT_HASH_LIST}
845+
DEPENDS kobj_hash_list ${KOBJECT_HASH_LIST}
843846
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
844847
)
845-
add_custom_target(output_src_pre DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_SRC_PRE})
848+
add_custom_target(
849+
kobj_hash_output_src_pre
850+
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${KOBJECT_HASH_OUTPUT_SRC_PRE}
851+
)
846852

847853
# For our purposes the code/data generated by gperf is not optimal.
848854
#
849-
# The script PROCESS_GPERF creates a new c file OUTPUT_SRC based on
850-
# OUTPUT_SRC_PRE to greatly reduce the amount of code/data generated
855+
# The script PROCESS_GPERF creates a new c file KOBJECT_HASH_OUTPUT_SRC based on
856+
# KOBJECT_HASH_OUTPUT_SRC_PRE to greatly reduce the amount of code/data generated
851857
# since we know we are always working with pointer values
852858
add_custom_command(
853-
OUTPUT ${OUTPUT_SRC}
859+
OUTPUT ${KOBJECT_HASH_OUTPUT_SRC}
854860
COMMAND
855861
${PYTHON_EXECUTABLE}
856862
${PROCESS_GPERF}
857-
-i ${OUTPUT_SRC_PRE}
858-
-o ${OUTPUT_SRC}
863+
-i ${KOBJECT_HASH_OUTPUT_SRC_PRE}
864+
-o ${KOBJECT_HASH_OUTPUT_SRC}
859865
-p "struct z_object"
860866
$<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:--verbose>
861-
DEPENDS output_src_pre ${OUTPUT_SRC_PRE}
867+
DEPENDS kobj_hash_output_src_pre ${KOBJECT_HASH_OUTPUT_SRC_PRE}
862868
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
863869
)
864-
add_custom_target(output_src DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_SRC})
870+
add_custom_target(
871+
kobj_hash_output_src
872+
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${KOBJECT_HASH_OUTPUT_SRC}
873+
)
865874

866875
# We need precise control of where generated text/data ends up in the final
867876
# kernel image. Disable function/data sections and use objcopy to move
868877
# generated data into special section names
869-
add_library(output_lib STATIC
870-
${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_SRC}
878+
add_library(
879+
kobj_hash_output_lib
880+
STATIC ${CMAKE_CURRENT_BINARY_DIR}/${KOBJECT_HASH_OUTPUT_SRC}
871881
)
872882

873-
set_source_files_properties(${OUTPUT_SRC} PROPERTIES COMPILE_FLAGS
883+
set_source_files_properties(${KOBJECT_HASH_OUTPUT_SRC}
884+
PROPERTIES COMPILE_FLAGS
874885
"${NO_COVERAGE_FLAGS} -fno-function-sections -fno-data-sections")
875886

876-
set_source_files_properties(${OUTPUT_SRC}
887+
set_source_files_properties(${KOBJECT_HASH_OUTPUT_SRC}
877888
PROPERTIES COMPILE_DEFINITIONS "${compile_definitions_interface}")
878889

879890
# Turn off -ffunction-sections, etc.
880-
# NB: Using a library instead of target_compile_options(output_lib
891+
# NB: Using a library instead of target_compile_options(kobj_hash_output_lib
881892
# [...]) because a library's options have precedence
882-
add_library(output_lib_interface INTERFACE)
893+
add_library(kobj_hash_output_lib_interface INTERFACE)
883894

884-
target_link_libraries(output_lib output_lib_interface)
895+
target_link_libraries(kobj_hash_output_lib kobj_hash_output_lib_interface)
885896

886897
foreach(incl ${include_dir_in_interface})
887-
target_include_directories(output_lib_interface INTERFACE ${incl})
898+
target_include_directories(kobj_hash_output_lib_interface INTERFACE ${incl})
888899
endforeach()
889900

890901
foreach(incl ${sys_include_dir_in_interface})
891-
target_include_directories(output_lib_interface SYSTEM INTERFACE ${incl})
902+
target_include_directories(kobj_hash_output_lib_interface SYSTEM INTERFACE ${incl})
892903
endforeach()
893904

894-
set(OUTPUT_OBJ_PATH ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/output_lib.dir/${OUTPUT_OBJ})
905+
set(
906+
KOBJECT_HASH_OUTPUT_OBJ_PATH
907+
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/kobj_hash_output_lib.dir/${KOBJECT_HASH_OUTPUT_OBJ}
908+
)
895909

896910
add_custom_command(
897-
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_OBJ_RENAMED}
911+
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${KOBJECT_HASH_OUTPUT_OBJ_RENAMED}
898912
COMMAND $<TARGET_PROPERTY:bintools,elfconvert_command>
899913
$<TARGET_PROPERTY:bintools,elfconvert_flag>
900914
$<TARGET_PROPERTY:bintools,elfconvert_flag_section_rename>.data=.kobject_data.data
901915
$<TARGET_PROPERTY:bintools,elfconvert_flag_section_rename>.text=.kobject_data.text
902916
$<TARGET_PROPERTY:bintools,elfconvert_flag_section_rename>.rodata=.kobject_data.rodata
903-
$<TARGET_PROPERTY:bintools,elfconvert_flag_infile>${OUTPUT_OBJ_PATH}
904-
$<TARGET_PROPERTY:bintools,elfconvert_flag_outfile>${OUTPUT_OBJ_RENAMED}
917+
$<TARGET_PROPERTY:bintools,elfconvert_flag_infile>${KOBJECT_HASH_OUTPUT_OBJ_PATH}
918+
$<TARGET_PROPERTY:bintools,elfconvert_flag_outfile>${KOBJECT_HASH_OUTPUT_OBJ_RENAMED}
905919
$<TARGET_PROPERTY:bintools,elfconvert_flag_final>
906-
DEPENDS output_lib
920+
DEPENDS kobj_hash_output_lib
907921
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
908922
COMMAND_EXPAND_LISTS
909923
)
910-
add_custom_target(output_obj_renamed DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_OBJ_RENAMED})
924+
add_custom_target(
925+
kobj_hash_output_obj_renamed
926+
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${KOBJECT_HASH_OUTPUT_OBJ_RENAMED}
927+
)
911928

912-
add_library(output_obj_renamed_lib STATIC IMPORTED GLOBAL)
929+
add_library(kobj_hash_output_obj_renamed_lib STATIC IMPORTED GLOBAL)
913930
set_property(
914-
TARGET output_obj_renamed_lib
931+
TARGET kobj_hash_output_obj_renamed_lib
915932
PROPERTY
916-
IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_OBJ_RENAMED}
933+
IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${KOBJECT_HASH_OUTPUT_OBJ_RENAMED}
917934
)
918935
add_dependencies(
919-
output_obj_renamed_lib
920-
output_obj_renamed
936+
kobj_hash_output_obj_renamed_lib
937+
kobj_hash_output_obj_renamed
921938
)
922939

923-
set_property(GLOBAL APPEND PROPERTY GENERATED_KERNEL_OBJECT_FILES output_obj_renamed_lib)
940+
set_property(
941+
GLOBAL APPEND PROPERTY
942+
GENERATED_KERNEL_OBJECT_FILES kobj_hash_output_obj_renamed_lib
943+
)
924944
endif()
925945

926946
# Read global variables into local variables

0 commit comments

Comments
 (0)