This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit d956699f75dc6d3c68158c6fefd268c09b027d14 Author: fangxinyong <[email protected]> AuthorDate: Sun Oct 26 17:30:12 2025 +0800 libm/newlib: Add duplicate filename filtering for source lists Implement filename-based filtering to exclude duplicate files from source lists, ensuring ARCH-specific files (ARCH_CSRCS) take precedence over files in common or other dirs Signed-off-by: fangxinyong <[email protected]> --- libs/libm/newlib/CMakeLists.txt | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/libs/libm/newlib/CMakeLists.txt b/libs/libm/newlib/CMakeLists.txt index 42dc472ba25..c05c578c6fa 100644 --- a/libs/libm/newlib/CMakeLists.txt +++ b/libs/libm/newlib/CMakeLists.txt @@ -97,7 +97,7 @@ if(CONFIG_LIBM_NEWLIB) file(GLOB_RECURSE ARCH_CSRCS ${NEWLIB_DIR}/newlib/libm/fenv/*.c) endif() - set(CSRCS ${COMMON_CSRCS} ${COMPLEX_CSRCS} ${ARCH_CSRCS}) + set(CSRCS ${COMMON_CSRCS} ${COMPLEX_CSRCS}) # aggressive optimisation can replace occurrences of sinl() and cosl() with # sincosl(), but sincosl() is missing in newlib which causes error. So let's @@ -123,6 +123,23 @@ if(CONFIG_LIBM_NEWLIB) list(APPEND CSRCS ${MATH_CSRCS}) endif() + set(ARCH_FILENAMES "") + foreach(arch_file ${ARCH_CSRCS}) + get_filename_component(arch_filename ${arch_file} NAME) + list(APPEND ARCH_FILENAMES ${arch_filename}) + endforeach() + + set(FILTERED_CSRCS "") + foreach(file ${CSRCS}) + get_filename_component(filename ${file} NAME) + list(FIND ARCH_FILENAMES ${filename} index) + if(index EQUAL -1) + list(APPEND FILTERED_CSRCS ${file}) + endif() + endforeach() + + set(CSRCS ${FILTERED_CSRCS} ${ARCH_CSRCS}) + # ############################################################################ # Include Directory # ############################################################################
