• Jiri Olsa's avatar
    tools include: Fix strict-aliasing rules breakage · c95f3432
    Jiri Olsa authored
    Vinson reported build breakage with gcc 4.4 due to strict-aliasing.
    
       CC       util/annotate.o
     cc1: warnings being treated as errors
     util/annotate.c: In function ‘disasm__purge’:
     linux-next/tools/include/linux/compiler.h:66: error: dereferencing
     pointer ‘res.41’ does break strict-aliasing rules
    
    The reason is READ_ONCE/WRITE_ONCE code we took from kernel sources.  They
    intentionaly break aliasing rules. While this is ok for kernel because it's
    built with -fno-strict-aliasing, it breaks perf which is build with
    -Wstrict-aliasing=3.
    
    Using extra __may_alias__ type to allow aliasing in this case.
    Reported-and-tested-by: default avatarVinson Lee <vlee@twopensource.com>
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Martin Liska <mliska@suse.cz>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Rabin Vincent <rabin@rab.in>
    Cc: linux-next@vger.kernel.org
    Link: http://lkml.kernel.org/r/20151013085214.GB2705@krava.brq.redhat.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    c95f3432
compiler.h 3.76 KB