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

Reply via email to