Temporary header file '/tmp/fDU5MQlDcT/dump1.h' with the following content will be compiled to create GCC translation unit dump: // add defines #define __STDC_VERSION__ 201710L #define _GXX_NULLPTR_T #define CLUTTER_ENABLE_COMPOSITOR_API 1 #define _REGEX_NELTS(n) #define _Atomic #define PACKED // add includes #include "/usr/include/libunwind/__libunwind_config.h" #include "/usr/include/libunwind/libunwind.h" #include "/usr/include/libunwind/mach-o/compact_unwind_encoding.h" #include "/usr/include/libunwind/unwind.h" #include "/usr/include/libunwind/unwind_arm_ehabi.h" #include "/usr/include/libunwind/unwind_itanium.h" // add classes _Unwind_Control_Block* tmp_add_class_0; dwarf_eh_bases* tmp_add_class_1; unw_context_t* tmp_add_class_2; unw_cursor_t* tmp_add_class_3; unw_proc_info_t* tmp_add_class_4; unwind_info_compressed_second_level_page_header* tmp_add_class_5; unwind_info_regular_second_level_entry* tmp_add_class_6; unwind_info_regular_second_level_page_header* tmp_add_class_7; unwind_info_section_header* tmp_add_class_8; unwind_info_section_header_index_entry* tmp_add_class_9; unwind_info_section_header_lsda_index_entry* tmp_add_class_10; The GCC parameters: gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/fDU5MQlDcT/dump1.h" -I/usr/include/libunwind In file included from /tmp/fDU5MQlDcT/dump1.h:16: /usr/include/libunwind/unwind_itanium.h:19:18: error: conflicting declaration ‘typedef uint64_t _Unwind_Exception_Class’ 19 | typedef uint64_t _Unwind_Exception_Class; | ^~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/libunwind/unwind.h:59, from /tmp/fDU5MQlDcT/dump1.h:14: /usr/include/libunwind/unwind_arm_ehabi.h:30:17: note: previous declaration as ‘typedef uint8_t _Unwind_Exception_Class [8]’ 30 | typedef uint8_t _Unwind_Exception_Class[8]; | ^~~~~~~~~~~~~~~~~~~~~~~ /usr/include/libunwind/unwind_arm_ehabi.h:29:27: error: redefinition of ‘struct _Unwind_Control_Block’ 29 | #define _Unwind_Exception _Unwind_Control_Block /* Alias */ | ^~~~~~~~~~~~~~~~~~~~~ /usr/include/libunwind/unwind_itanium.h:21:8: note: in expansion of macro ‘_Unwind_Exception’ 21 | struct _Unwind_Exception { | ^~~~~~~~~~~~~~~~~ /usr/include/libunwind/unwind_arm_ehabi.h:32:8: note: previous definition of ‘struct _Unwind_Control_Block’ 32 | struct _Unwind_Control_Block { | ^~~~~~~~~~~~~~~~~~~~~ /usr/include/libunwind/unwind_itanium.h:43:31: error: conflicting declaration ‘typedef enum _Unwind_Reason_Code (* _Unwind_Personality_Fn)(int, enum _Unwind_Action, uint64_t, _Unwind_Control_Block*, struct _Unwind_Context*)’ 43 | typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)( | ^~~~~~~~~~~~~~~~~~~~~~ /usr/include/libunwind/unwind_arm_ehabi.h:67:31: note: previous declaration as ‘typedef enum _Unwind_Reason_Code (* _Unwind_Personality_Fn)(_Unwind_State, _Unwind_Control_Block*, struct _Unwind_Context*)’ 67 | typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)( | ^~~~~~~~~~~~~~~~~~~~~~