Skip to content

Commit 5ffdf5b

Browse files
pengxianghao21xiaoxiang781216
authored andcommitted
cmake(bugfix):fix libcxxabi layout build error
/home/data/vela/github/nuttx/libs/libxx/libcxxabi/libcxxabi/src/cxa_exception.h:47:10: error: 'unexpected_handler' in namespace 'std' does not name a type 47 | std::unexpected_handler unexpectedHandler; | ^~~~~~~~~~~~~~~~~~ /home/data/vela/github/nuttx/libs/libxx/libcxxabi/libcxxabi/src/cxa_exception.h:85:10: error: 'unexpected_handler' in namespace 'std' does not name a type 85 | std::unexpected_handler unexpectedHandler; | ^~~~~~~~~~~~~~~~~~ /home/data/vela/github/nuttx/libs/libxx/libcxxabi/libcxxabi/src/cxa_exception.h:121:65: error: static assertion failed: propagationCount has wrong negative offset 121 | sizeof(_Unwind_Exception) + sizeof(void*) == | ^ /home/data/vela/github/nuttx/libs/libxx/libcxxabi/libcxxabi/src/cxa_exception.h:121:65: note: the comparison reduces to '(124 == 128)' /home/data/vela/github/nuttx/libs/libxx/libcxxabi/libcxxabi/src/cxa_exception.h:125:65: error: static assertion failed: propagationCount has wrong negative offset 125 | sizeof(_Unwind_Exception) + sizeof(void*) == | /home/data/vela/github/nuttx/libs/libxx/libcxxabi/libcxxabi/src/cxa_default_handlers.cpp:20:10: fatal error: include/atomic_support.h: No such file or directory 20 | #include "include/atomic_support.h" // from libc++ | ^~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
1 parent 9026ba6 commit 5ffdf5b

2 files changed

Lines changed: 13 additions & 2 deletions

File tree

libs/libxx/libcxx/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ if(CONFIG_LIBCXX)
8484
add_compile_definitions(__GLIBCXX__)
8585
endif()
8686

87+
if(CONFIG_LIBCXXABI)
88+
add_compile_definitions(LIBCXX_BUILDING_LIBCXXABI)
89+
endif()
90+
8791
set(CMAKE_CXX_STANDARD 20)
8892
set(CMAKE_CXX_STANDARD_REQUIRED ON)
8993
set(CMAKE_CXX_EXTENSIONS ON)

libs/libxx/libcxxabi/CMakeLists.txt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,14 @@ if(CONFIG_LIBCXXABI)
7575
cxa_thread_atexit.cpp
7676
cxa_vector.cpp
7777
cxa_virtual.cpp)
78+
add_compile_definitions(_LIBCPP_BUILDING_LIBRARY)
79+
if(CONFIG_LIBSUPCXX_TOOLCHAIN)
80+
add_compile_definitions(__GLIBCXX__)
81+
endif()
7882

83+
if(CONFIG_LIBSUPCXX)
84+
add_compile_definitions(__GLIBCXX__)
85+
endif()
7986
# C++ STL files
8087
list(APPEND SRCS stdlib_exception.cpp stdlib_new_delete.cpp
8188
stdlib_stdexcept.cpp stdlib_typeinfo.cpp)
@@ -120,6 +127,6 @@ if(CONFIG_LIBCXXABI)
120127

121128
target_sources(libcxxabi PRIVATE ${TARGET_SRCS})
122129
target_include_directories(
123-
libcxxabi BEFORE PRIVATE ${CMAKE_CURRENT_LIST_DIR}/libcxxabi/include
124-
${CMAKE_CURRENT_LIST_DIR}/libcxx/src)
130+
libcxxabi BEFORE PRIVATE ${NUTTX_DIR}/libs/libxx/libcxx/libcxx/src
131+
${CMAKE_CURRENT_LIST_DIR}/libcxxabi/include)
125132
endif()

0 commit comments

Comments
 (0)