lkml.org 
[lkml]   [2011]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[098/143] perf tools: Support static build
    2.6.32-longterm review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Michael S. Tsirkin <mst@redhat.com>

    commit 751386507701010831d72c522171753d2cd903d2 upstream.

    This makes it possible to build perf statically, by
    performing:

    make LDFLAGS=-static

    Since static libraries are only searched in the order they are
    specified, move library list from LDFLAGS to EXTLIBS, so that
    they are put at the end of linker command line.

    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    LKML-Reference: <20091029152002.GA5406@redhat.com>
    [ v2: resolved conflicts ]
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    [bwh: Backport to 2.6.32]
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    tools/perf/Makefile | 18 ++++++++++--------
    1 file changed, 10 insertions(+), 8 deletions(-)

    --- a/tools/perf/Makefile
    +++ b/tools/perf/Makefile
    @@ -145,6 +145,8 @@ all::
    # Define NO_EXTERNAL_GREP if you don't want "perf grep" to ever call
    # your external grep (e.g., if your system lacks grep, if its grep is
    # broken, or spawning external process is slower than built-in grep perf has).
    +#
    +# Define LDFLAGS=-static to build a static binary.

    PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE
    @$(SHELL_PATH) util/PERF-VERSION-GEN
    @@ -208,7 +210,7 @@ ifndef PERF_DEBUG
    endif

    CFLAGS = $(MBITS) -ggdb3 -Wall -Wextra -std=gnu99 -Werror $(CFLAGS_OPTIMIZE) -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS)
    -LDFLAGS = -lpthread -lrt -lelf -lm
    +EXTLIBS = -lpthread -lrt -lelf -lm
    ALL_CFLAGS = $(CFLAGS)
    ALL_LDFLAGS = $(LDFLAGS)
    STRIP ?= strip
    @@ -433,12 +435,12 @@ ifeq ($(uname_S),Darwin)
    PTHREAD_LIBS =
    endif

    -ifneq ($(shell sh -c "(echo '\#include <gnu/libc-version.h>'; echo 'int main(void) { const char * version = gnu_get_libc_version(); return (long)version; }') | $(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)
    +ifneq ($(shell sh -c "(echo '\#include <gnu/libc-version.h>'; echo 'int main(void) { const char * version = gnu_get_libc_version(); return (long)version; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) > /dev/null 2>&1 && echo y"), y)
    msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]);
    endif

    -ifeq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ, 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)
    - 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)
    +ifeq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) > /dev/null 2>&1 && echo y"), y)
    + 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) $(EXTLIBS) > /dev/null 2>&1 && echo y"), y)
    BASIC_CFLAGS += -DLIBELF_NO_MMAP
    endif
    else
    @@ -448,20 +450,20 @@ endif
    ifdef NO_DEMANGLE
    BASIC_CFLAGS += -DNO_DEMANGLE
    else
    - 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 := $(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) $(EXTLIBS) -lbfd > /dev/null 2>&1 && echo y")

    ifeq ($(has_bfd),y)
    EXTLIBS += -lbfd
    else
    - 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")
    + 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) $(EXTLIBS) -lbfd -liberty > /dev/null 2>&1 && echo y")
    ifeq ($(has_bfd_iberty),y)
    EXTLIBS += -lbfd -liberty
    else
    - has_bfd_iberty_z := $(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 -lz > /dev/null 2>&1 && echo y")
    + has_bfd_iberty_z := $(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) $(EXTLIBS) -lbfd -liberty -lz > /dev/null 2>&1 && echo y")
    ifeq ($(has_bfd_iberty_z),y)
    EXTLIBS += -lbfd -liberty -lz
    else
    - has_cplus_demangle := $(shell sh -c "(echo 'extern char *cplus_demangle(const char *, int);'; echo 'int main(void) { cplus_demangle(0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) -liberty > /dev/null 2>&1 && echo y")
    + has_cplus_demangle := $(shell sh -c "(echo 'extern char *cplus_demangle(const char *, int);'; echo 'int main(void) { cplus_demangle(0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) -liberty > /dev/null 2>&1 && echo y")
    ifeq ($(has_cplus_demangle),y)
    EXTLIBS += -liberty
    BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE



    \
     
     \ /
      Last update: 2011-05-06 02:49    [W:4.094 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site