Thread (2 messages) 2 messages, 2 authors, 2017-12-07

Re: [PATCH 18/36] perf s390: Always build with -fPIC

From: Hendrik Brueckner <hidden>
Date: 2017-12-07 08:10:01
Also in: linux-s390, lkml
Subsystem: performance events subsystem, the rest · Maintainers: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo, Namhyung Kim, Linus Torvalds

Hi Arnaldo,

On Wed, Dec 06, 2017 at 11:40:57AM -0300, Arnaldo Carvalho de Melo wrote:
quoted hunk ↗ jump to hunk
From: Hendrik Brueckner <redacted>

On s390, object files must be compiled with position-indepedent code in
order to be incrementally linked or linked to shared libraries.
Therefore, add -fPIC to the CFLAGS for s390 to ensure each object file
is built properly.

Reported-by: Jonathan Hermann <redacted>
Signed-off-by: Hendrik Brueckner <redacted>
Cc: Heiko Carstens <redacted>
Cc: Martin Schwidefsky <redacted>
Cc: Thomas Richter <redacted>
Cc: linux s390 list <redacted>
LPU-Reference: 1512031765-9382-1-git-send-email-brueckner@linux.vnet.ibm.com
Link: https://lkml.kernel.org/n/tip-a8wga8hrl0d0r84cal96fmgv@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <redacted>
---
 tools/perf/Makefile.config | 1 +
 1 file changed, 1 insertion(+)
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 2c437baf8364..bf86c09ca889 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -41,6 +41,7 @@ ifeq ($(SRCARCH),x86)
     LIBUNWIND_LIBS = -lunwind-x86 -llzma -lunwind
   endif
   NO_PERF_REGS := 0
+  CFLAGS += -fPIC
 endif
I was just rebasing my syscall table work on top of your perf/core tree.
It looks like that there is a significant difference compared to linux
master tree.

With f704ef44602fbf403e6722c7ed13f62d17e8cb20 ("s390/perf: add support for
perf_regs and libdw"), Heiko introduced a change in the Makefile.config:

	--- a/tools/perf/Makefile.config
	+++ b/tools/perf/Makefile.config
	@@ -53,6 +53,10 @@ ifeq ($(SRCARCH),arm64)
	   LIBUNWIND_LIBS = -lunwind -lunwind-aarch64
	    endif
	     
	+ifeq ($(ARCH),s390)
	+  NO_PERF_REGS := 0
	+endif
	+
	ifeq ($(NO_PERF_REGS),0)

The CFLAGS actually should applied to the s390 block and not in the x86
block.  Somehow this got messed up with git cherryp-pick / am.  So actually,
this should go into the section above:
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index ed65e82..0833d9f 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -55,6 +55,7 @@ endif
 
 ifeq ($(ARCH),s390)
   NO_PERF_REGS := 0
+  CFLAGS += -fPIC
 endif
 
 ifeq ($(NO_PERF_REGS),0)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help