On Mon, Dec 02, 2013 at 05:59:53PM +0100, Konstantin Serebryany wrote: > >> with #if LINUX_VERSION_CODE >= 132640 > Good idea, let me try that.
Had a quick look at this on RHEL 5. Following patch let me compile at least the first source file, but then I run into tons of issues in sanitizer_platform_limits_posix.cc. I think the main problem is that you are mixing standard glibc headers and linux kernel headers in the same source file, that is a big no no. Lots of the kernel headers declare the same things as glibc headers. I'd strongly recommend splitting the files, so that you include absolute minimum of glibc headers when you include linux/* and/or asm/* headers and no kernel headers if you include tons of glibc headers. And as the errors show up, there are also .cfi* directives that are used unconditionally (you've set you've removed it from sanitizer_common or where it was used (IMHO a pitty, much better would be conditionalizing them on either compiler preprocessor macros or whatever clang provides as alternative for that when not building with gcc)), but they are used in tsan (in HACKY_CALL macro). Plus in *.S file (either that could be again guarded by the same preprocessor macro, or configure or something else). Note that RHEL5 here has already gas that supports .cfi_* directives (just not .cfi_personality/.cfi_lsda I think), but if you go to even older system it will not be there. E.g. glibc assembler files solve that by defining various CFI_STARTPROC etc. macros that either expand to .cfi_startproc etc. if assembler supports the directives, or nothing otherwise. --- sanitizer_platform_limits_linux.cc.jj 2013-12-02 15:27:58.000000000 -0500 +++ sanitizer_platform_limits_linux.cc 2013-12-02 17:06:19.000000000 -0500 @@ -51,8 +51,12 @@ #endif #if !SANITIZER_ANDROID +#include <linux/version.h> +// <linux/perf_event.h> has been added in 2.6.32 +#if LINUX_VERSION_CODE >= 132640 #include <linux/perf_event.h> #endif +#endif namespace __sanitizer { unsigned struct_statfs64_sz = sizeof(struct statfs64); @@ -75,15 +79,18 @@ CHECK_SIZE_AND_OFFSET(io_event, res); CHECK_SIZE_AND_OFFSET(io_event, res2); #if !SANITIZER_ANDROID +#if LINUX_VERSION_CODE >= 132640 COMPILER_CHECK(sizeof(struct __sanitizer_perf_event_attr) <= sizeof(struct perf_event_attr)); CHECK_SIZE_AND_OFFSET(perf_event_attr, type); CHECK_SIZE_AND_OFFSET(perf_event_attr, size); #endif +#endif COMPILER_CHECK(iocb_cmd_pread == IOCB_CMD_PREAD); COMPILER_CHECK(iocb_cmd_pwrite == IOCB_CMD_PWRITE); -#if !SANITIZER_ANDROID +#if !SANITIZER_ANDROID && LINUX_VERSION_CODE >= 132627 +// IOCB_CMD_PREADV/PWRITEV has been added in 2.6.19 COMPILER_CHECK(iocb_cmd_preadv == IOCB_CMD_PREADV); COMPILER_CHECK(iocb_cmd_pwritev == IOCB_CMD_PWRITEV); #endif --- sanitizer_platform_limits_posix.cc.jj 2013-12-02 15:27:58.000000000 -0500 +++ sanitizer_platform_limits_posix.cc 2013-12-02 17:11:00.000000000 -0500 @@ -82,12 +82,16 @@ #include <sys/timex.h> #include <sys/user.h> #include <sys/ustat.h> +#include <linux/version.h> #include <linux/cyclades.h> #include <linux/if_eql.h> #include <linux/if_plip.h> #include <linux/lp.h> #include <linux/mroute.h> +// <linux/mroute6.h> has been added in 2.6.26 +#if LINUX_VERSION_CODE >= 132634 #include <linux/mroute6.h> +#endif #include <linux/scc.h> #include <linux/serial.h> #include <sys/msg.h> So the current errors are (from make -j64 -k to show more than one file): In file included from /usr/include/sys/ustat.h:30:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:84: /usr/include/bits/ustat.h:25:8: error: redefinition of ‘struct ustat’ struct ustat ^ In file included from /usr/include/linux/if_ether.h:24:0, from /usr/include/netinet/if_ether.h:26, from /usr/include/netinet/ether.h:26, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:47: /usr/include/linux/types.h:156:8: error: previous definition of ‘struct ustat’ struct ustat { ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:26:16: error: redeclaration of ‘IPPROTO_IP’ IPPROTO_IP = 0, /* Dummy protocol for TCP */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:33:5: note: previous declaration ‘<anonymous enum> IPPROTO_IP’ IPPROTO_IP = 0, /* Dummy protocol for TCP. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:27:18: error: redeclaration of ‘IPPROTO_ICMP’ IPPROTO_ICMP = 1, /* Internet Control Message Protocol */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:37:5: note: previous declaration ‘<anonymous enum> IPPROTO_ICMP’ IPPROTO_ICMP = 1, /* Internet Control Message Protocol. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:28:18: error: redeclaration of ‘IPPROTO_IGMP’ IPPROTO_IGMP = 2, /* Internet Group Management Protocol */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:39:5: note: previous declaration ‘<anonymous enum> IPPROTO_IGMP’ IPPROTO_IGMP = 2, /* Internet Group Management Protocol. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:29:18: error: redeclaration of ‘IPPROTO_IPIP’ IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94) */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:41:5: note: previous declaration ‘<anonymous enum> IPPROTO_IPIP’ IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94). */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:30:17: error: redeclaration of ‘IPPROTO_TCP’ IPPROTO_TCP = 6, /* Transmission Control Protocol */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:43:5: note: previous declaration ‘<anonymous enum> IPPROTO_TCP’ IPPROTO_TCP = 6, /* Transmission Control Protocol. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:31:17: error: redeclaration of ‘IPPROTO_EGP’ IPPROTO_EGP = 8, /* Exterior Gateway Protocol */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:45:5: note: previous declaration ‘<anonymous enum> IPPROTO_EGP’ IPPROTO_EGP = 8, /* Exterior Gateway Protocol. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:32:17: error: redeclaration of ‘IPPROTO_PUP’ IPPROTO_PUP = 12, /* PUP protocol */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:47:5: note: previous declaration ‘<anonymous enum> IPPROTO_PUP’ IPPROTO_PUP = 12, /* PUP protocol. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:33:17: error: redeclaration of ‘IPPROTO_UDP’ IPPROTO_UDP = 17, /* User Datagram Protocol */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:49:5: note: previous declaration ‘<anonymous enum> IPPROTO_UDP’ IPPROTO_UDP = 17, /* User Datagram Protocol. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:34:17: error: redeclaration of ‘IPPROTO_IDP’ IPPROTO_IDP = 22, /* XNS IDP protocol */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:51:5: note: previous declaration ‘<anonymous enum> IPPROTO_IDP’ IPPROTO_IDP = 22, /* XNS IDP protocol. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:36:18: error: redeclaration of ‘IPPROTO_RSVP’ IPPROTO_RSVP = 46, /* RSVP protocol */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:61:5: note: previous declaration ‘<anonymous enum> IPPROTO_RSVP’ IPPROTO_RSVP = 46, /* Reservation Protocol. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:37:17: error: redeclaration of ‘IPPROTO_GRE’ IPPROTO_GRE = 47, /* Cisco GRE tunnels (rfc 1701,1702) */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:63:5: note: previous declaration ‘<anonymous enum> IPPROTO_GRE’ IPPROTO_GRE = 47, /* General Routing Encapsulation. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:39:19: error: redeclaration of ‘IPPROTO_IPV6’ IPPROTO_IPV6 = 41, /* IPv6-in-IPv4 tunnelling */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:55:5: note: previous declaration ‘<anonymous enum> IPPROTO_IPV6’ IPPROTO_IPV6 = 41, /* IPv6 header. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:41:17: error: redeclaration of ‘IPPROTO_ESP’ IPPROTO_ESP = 50, /* Encapsulation Security Payload protocol */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:65:5: note: previous declaration ‘<anonymous enum> IPPROTO_ESP’ IPPROTO_ESP = 50, /* encapsulating security payload. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:42:16: error: redeclaration of ‘IPPROTO_AH’ IPPROTO_AH = 51, /* Authentication Header protocol */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:67:5: note: previous declaration ‘<anonymous enum> IPPROTO_AH’ IPPROTO_AH = 51, /* authentication header. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:43:20: error: redeclaration of ‘IPPROTO_PIM’ IPPROTO_PIM = 103, /* Protocol Independent Multicast */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:79:5: note: previous declaration ‘<anonymous enum> IPPROTO_PIM’ IPPROTO_PIM = 103, /* Protocol Independent Multicast. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:45:20: error: redeclaration of ‘IPPROTO_COMP’ IPPROTO_COMP = 108, /* Compression Header protocol */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:81:5: note: previous declaration ‘<anonymous enum> IPPROTO_COMP’ IPPROTO_COMP = 108, /* Compression Header Protocol. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:46:20: error: redeclaration of ‘IPPROTO_SCTP’ IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:83:5: note: previous declaration ‘<anonymous enum> IPPROTO_SCTP’ IPPROTO_SCTP = 132, /* Stream Control Transmission Protocol. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:48:18: error: redeclaration of ‘IPPROTO_RAW’ IPPROTO_RAW = 255, /* Raw IP packets */ ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:85:5: note: previous declaration ‘<anonymous enum> IPPROTO_RAW’ IPPROTO_RAW = 255, /* Raw IP packets. */ ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:49:3: error: redeclaration of ‘IPPROTO_MAX’ IPPROTO_MAX ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:87:5: note: previous declaration ‘<anonymous enum> IPPROTO_MAX’ IPPROTO_MAX ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:54:8: error: redefinition of ‘struct in_addr’ struct in_addr { ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:137:8: error: previous definition of ‘struct in_addr’ struct in_addr ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:113:8: error: redefinition of ‘struct ip_mreq’ struct ip_mreq ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:244:8: error: previous definition of ‘struct ip_mreq’ struct ip_mreq ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:119:8: error: redefinition of ‘struct ip_mreqn’ struct ip_mreqn ^ In file included from /usr/include/netinet/in.h:345:0, from /usr/include/arpa/inet.h:23, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/bits/in.h:89:8: error: previous definition of ‘struct ip_mreqn’ struct ip_mreqn ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:126:8: error: redefinition of ‘struct ip_mreq_source’ struct ip_mreq_source { ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:253:8: error: previous definition of ‘struct ip_mreq_source’ struct ip_mreq_source ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:132:8: error: redefinition of ‘struct ip_msfilter’ struct ip_msfilter { ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:300:8: error: previous definition of ‘struct ip_msfilter’ struct ip_msfilter ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:144:8: error: redefinition of ‘struct group_req’ struct group_req ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:277:8: error: previous definition of ‘struct group_req’ struct group_req ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:150:8: error: redefinition of ‘struct group_source_req’ struct group_source_req ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:286:8: error: previous definition of ‘struct group_source_req’ struct group_source_req ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsani from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/bits/in.h:97:8: error: previous definition of ‘struct in_pktinfo’ struct in_pktinfo ^ In file included from /usr/include/linux/mroute.h:5:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:90: /usr/include/linux/in.h:179:8: error: redefinition of ‘struct sockaddr_in’ struct sockaddr_in { ^ In file included from /usr/include/arpa/inet.h:23:0, from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:20: /usr/include/netinet/in.h:219:8: error: previous definition of ‘struct sockaddr_in’ struct sockaddr_in ^ make[1]: *** [sanitizer_platform_limits_posix.lo] Error 1 ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc make[1]: *** [tsan_rtl_thread.lo] Error 1 ../../../../libsanitizer/tsan/tsan_rtl.h: Assembler messages: ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc make[1]: *** [tsan_rtl_mutex.lo] Error 1 ... ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc make[1]: *** [tsan_interface_atomic.lo] Error 1 ../../../../libsanitizer/tsan/tsan_rtl.cc: Assembler messages: ../../../../libsanitizer/tsan/tsan_rtl.cc:400: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.cc:400: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.cc:400: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.cc:400: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc ... ../../../../libsanitizer/tsan/tsan_rtl.h:763: Error: CFI instruction used without previous .cfi_startproc make[1]: *** [tsan_rtl.lo] Error 1 Jakub