This is a note to let you know that I've just added the patch titled

    perf tools: Support static build

to the 2.6.32-longterm tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/longterm/longterm-queue-2.6.32.git;a=summary

The filename of the patch is:
     perf-tools-support-static-build.patch
and it can be found in the queue-2.6.32 subdirectory.

If you, or anyone else, feels it should not be added to the 2.6.32 longterm 
tree,
please let <[email protected]> know about it.


>From be95f43e9f79a4630db7720c34dc01ca8ce36bd4 Mon Sep 17 00:00:00 2001
From: Michael S. Tsirkin <[email protected]>
Date: Thu, 29 Oct 2009 17:20:02 +0200
Subject: perf tools: Support static build

From: Michael S. Tsirkin <[email protected]>

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 <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: Arnaldo Carvalho de Melo <[email protected]>
LKML-Reference: <[email protected]>
[ v2: resolved conflicts ]
Signed-off-by: Ingo Molnar <[email protected]>
[bwh: Backport to 2.6.32]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 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


Patches currently in longterm-queue-2.6.32 which might be from [email protected] 
are

/home/gregkh/linux/longterm/longterm-queue-2.6.32/queue-2.6.32/perf-tools-add-v-2-option-to-help-debug-config-issue.patch
/home/gregkh/linux/longterm/longterm-queue-2.6.32/queue-2.6.32/perf-use-default-compiler-mode-by-default.patch
/home/gregkh/linux/longterm/longterm-queue-2.6.32/queue-2.6.32/perf-tools-suggest-static-libraries-as-well.patch
/home/gregkh/linux/longterm/longterm-queue-2.6.32/queue-2.6.32/udp-fix-bogus-ufo-packet-generation.patch
/home/gregkh/linux/longterm/longterm-queue-2.6.32/queue-2.6.32/perf-tools-support-static-build.patch
/home/gregkh/linux/longterm/longterm-queue-2.6.32/queue-2.6.32/virtio_net-fix-oom-handling-on-tx.patch

_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to