On Tue, Dec 3, 2013 at 2:32 AM, Jakub Jelinek <ja...@redhat.com> wrote: > 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.
That's what I am afraid of. Even if we manage to compile everything, there is no guarantee that the code will work. I suggest to simply disable libsanitizer build on the older systems which is what happens de facto now. If there is significant interest in maintaining asan&co on older systems (which I have not seen so far), then those interested will need to help us in upstream repository (llvm) by a) sending us patches using http://llvm.org/docs/Phabricator.html and b) setting up a public buildbot (attached to the LLVM master bot) with the system they care about. If there is no one interested enough to do a) and b) I say we should not spend time on this. And this discussion does not affect the merge since nothing that works today will get broken, right? > > 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