From patchwork Fri Aug 5 14:33:51 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Bader X-Patchwork-Id: 108671 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from chlorine.canonical.com (chlorine.canonical.com [91.189.94.204]) by ozlabs.org (Postfix) with ESMTP id 3885CB6F62 for ; Sat, 6 Aug 2011 00:34:09 +1000 (EST) Received: from localhost ([127.0.0.1] helo=chlorine.canonical.com) by chlorine.canonical.com with esmtp (Exim 4.71) (envelope-from ) id 1QpLTK-0004eJ-SD; Fri, 05 Aug 2011 14:33:58 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by chlorine.canonical.com with esmtp (Exim 4.71) (envelope-from ) id 1QpLTJ-0004ds-11 for kernel-team@lists.ubuntu.com; Fri, 05 Aug 2011 14:33:57 +0000 Received: from p5b2e588f.dip.t-dialin.net ([91.46.88.143] helo=[192.168.2.5]) by youngberry.canonical.com with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1QpLTI-00011s-UI for kernel-team@lists.ubuntu.com; Fri, 05 Aug 2011 14:33:57 +0000 Message-ID: <4E3BFF4F.7020308@canonical.com> Date: Fri, 05 Aug 2011 16:33:51 +0200 From: Stefan Bader User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110617 Lightning/1.0b2 Thunderbird/3.1.11 MIME-Version: 1.0 To: Ubuntu Kernel Team Subject: Statically link libbfd reloaded X-Enigmail-Version: 1.1.2 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.13 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kernel-team-bounces@lists.ubuntu.com Errors-To: kernel-team-bounces@lists.ubuntu.com getting that done seems to be a major PITA. I _think_ this would be doing the right thing when running "make LDFLAGS=-static". However, I guess for upstream, a fix should do what the description says. Which is to produce a static binary, which I still fail to achieve. Best case was a failure which tells me something I understand as recompile libc... -Stefan diff --git a/tools/perf/Makefile b/tools/perf/Makefile index 56d62d3..208157a 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile @@ -96,7 +96,11 @@ ifndef PERF_DEBUG endif CFLAGS = -fno-omit-frame-pointer -ggdb3 -Wall -Wextra -std=gnu99 -Werror $(CFLAGS_OPTIMIZE) -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -EXTLIBS = -lpthread -lrt -lelf -lm +ifeq ($(findstring -static,$(LDFLAGS)),-static) + EXTLIBS = -Wl,-Bdynamic -lpthread -lrt -lelf -lm +else + EXTLIBS = -lpthread -lrt -lelf -lm +endif ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 ALL_LDFLAGS = $(LDFLAGS) STRIP ?= strip @@ -569,20 +573,25 @@ else EXTLIBS += -liberty BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE else - FLAGS_BFD=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -lbfd + ifeq ($(findstring -static,$(LDFLAGS)),-static) + LDFLAGS_BFD = -Wl,-Bstatic -lbfd -Wl,-Bdynamic -ldl + else + LDFLAGS_BFD = -lbfd + endif + FLAGS_BFD=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) $(LDFLAGS_BFD) has_bfd := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD)) ifeq ($(has_bfd),y) - EXTLIBS += -lbfd + EXTLIBS += $(LDGLAGS_BFD) else - FLAGS_BFD_IBERTY=$(FLAGS_BFD) -liberty + FLAGS_BFD_IBERTY=$(LDFLAGS_BFD) -liberty has_bfd_iberty := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD_IBERTY)) ifeq ($(has_bfd_iberty),y) - EXTLIBS += -lbfd -liberty + EXTLIBS += $(LDFLAGS_BFD) -liberty else FLAGS_BFD_IBERTY_Z=$(FLAGS_BFD_IBERTY) -lz has_bfd_iberty_z := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD_IBERTY_Z)) ifeq ($(has_bfd_iberty_z),y) - EXTLIBS += -lbfd -liberty -lz + EXTLIBS += $(LDFLAGS_BFD) -liberty -lz else FLAGS_CPLUS_DEMANGLE=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -liberty has_cplus_demangle := $(call try-cc,$(SOURCE_CPLUS_DEMANGLE),$(FLAGS_CPLUS_DEMANGLE)) @@ -638,6 +647,9 @@ prefix_SQ = $(subst ','\'',$(prefix)) SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) +ifeq ($(findstring -static,$(LDFLAGS)),-static) + EXTLIBS += -lbz2 -llzma +endif LIBS = -Wl,--whole-archive $(PERFLIBS) -Wl,--no-whole-archive -Wl,--start-group $(EXTLIBS) -Wl,--end-group ALL_CFLAGS += $(BASIC_CFLAGS)