lkml.org 
[lkml]   [2009]   [Aug]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [tip:perfcounters/urgent] perf: Auto-detect libbfd
    From
    Date

    > +ifneq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int
    > main(void) { Elf * elf = elf_begin(0, ELF_C_READ_MMAP, 0); return
    > (int)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE
    > -D_FILE_OFFSET_BITS=64 -o /dev/null $(ALL_LDFLAGS) > /dev/null 2>&1 &&
    > echo y"), y)

    s/(int)/(long)/

    ---
    Index: linux-2.6/tools/perf/Makefile
    ===================================================================
    --- linux-2.6.orig/tools/perf/Makefile
    +++ linux-2.6/tools/perf/Makefile
    @@ -158,8 +158,10 @@ uname_P := $(shell sh -c 'uname -p 2>/de
    uname_V := $(shell sh -c 'uname -v 2>/dev/null || echo not')

    # If we're on a 64-bit kernel, use -m64
    -ifneq ($(patsubst %64,%,$(uname_M)),$(uname_M))
    - M64 := -m64
    +ifndef NO_64BIT
    + ifneq ($(patsubst %64,%,$(uname_M)),$(uname_M))
    + M64 := -m64
    + endif
    endif

    # CFLAGS and LDFLAGS are for the users to override from the command line.
    @@ -373,18 +375,24 @@ ifeq ($(uname_S),Darwin)
    PTHREAD_LIBS =
    endif

    +ifneq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ_MMAP, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o /dev/null $(ALL_LDFLAGS) > /dev/null 2>&1 && echo y"), y)
    + msg := $(error No libelf.h/libelf found, please install libelf-dev[el]);
    +endif
    +
    ifdef NO_DEMANGLE
    BASIC_CFLAGS += -DNO_DEMANGLE
    else
    - has_bfd := $(shell sh -c "(echo '\#include <stdio.h>'; echo '\#include <bfd.h>'; echo '\#ifndef DMGL_PARAMS'; echo '\#define DMGL_PARAMS (1 << 0)'; echo '\#define DMGL_ANSI (1 << 1)'; echo '\#endif'; echo 'int main(int argc, char **argv) { bfd_demangle(NULL, argv[0], DMGL_PARAMS | DMGL_ANSI); return 0; }') | gcc -x c - -lbfd > /dev/null 2>&1 && echo y")

    - has_bfd_iberty := $(shell sh -c "(echo '\#include <stdio.h>'; echo '\#include <bfd.h>'; echo '\#ifndef DMGL_PARAMS'; echo '\#define DMGL_PARAMS (1 << 0)'; echo '\#define DMGL_ANSI (1 << 1)'; echo '\#endif'; echo 'int main(int argc, char **argv) { bfd_demangle(NULL, argv[0], DMGL_PARAMS | DMGL_ANSI); return 0; }') | gcc -x c - -lbfd -liberty > /dev/null 2>&1 && echo y")
    + has_bfd := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) -lbfd > /dev/null 2>&1 && echo y")
    +
    + has_bfd_iberty := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) -lbfd -liberty > /dev/null 2>&1 && echo y")

    ifeq ($(has_bfd),y)
    EXTLIBS += -lbfd
    else ifeq ($(has_bfd_iberty),y)
    EXTLIBS += -lbfd -liberty
    else
    + msg := $(warning No bfd.h/libbfd found, install binutils-dev[el] to gain symbol demangling)
    BASIC_CFLAGS += -DNO_DEMANGLE
    endif
    endif



    \
     
     \ /
      Last update: 2009-08-05 21:01    [W:4.095 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site