From: Jiri Olsa <jolsa@redhat.com>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
lkml <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>, David Ahern <dsahern@gmail.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
kernel-team@lge.com
Subject: Re: [PATCH 2/3] perf tools: Fix build for hardened environments
Date: Mon, 4 Dec 2017 09:24:37 +0100 [thread overview]
Message-ID: <20171204082437.GC30564@krava> (raw)
In-Reply-To: <20171204073431.GB30564@krava>
On Mon, Dec 04, 2017 at 08:34:31AM +0100, Jiri Olsa wrote:
> On Fri, Dec 01, 2017 at 11:11:37AM +0900, Namhyung Kim wrote:
> > Hi Jiri,
> >
> > On Wed, Nov 08, 2017 at 11:27:38AM +0100, Jiri Olsa wrote:
> > > From: Jiri Olsa <jolsa@redhat.com>
> > >
> > > On Fedora systems the perl and python CFLAGS/LDFLAGS include the
> > > hardened specs from redhat-rpm-config package. We apply them only
> > > for perl/python objects, which makes them not compatible with the
> > > rest of the objects and the build fails with:
> > >
> > > /usr/bin/ld: perf-in.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
> > > /usr/bin/ld: libperf.a(libperf-in.o): relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC
> > > /usr/bin/ld: final link failed: Nonrepresentable section on output
> > > collect2: error: ld returned 1 exit status
> > > make[2]: *** [Makefile.perf:507: perf] Error 1
> > > make[1]: *** [Makefile.perf:210: sub-make] Error 2
> > > make: *** [Makefile:69: all] Error 2
> > >
> > > Mainly it's caused by perl/python objects being compiled with:
> > >
> > > -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
> > >
> > > which prevent the final link impossible, because it will check
> > > for 'proper' objects with following option:
> > >
> > > -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
> >
> > Just for curiousity, could you please show me the contents of the two
> > files? (Are they big?)
>
> # cat /usr/lib/rpm/redhat/redhat-hardened-ld
> *self_spec:
> + %{!static:%{!shared:%{!r:-pie}}}
>
> *link:
> + -z now
>
>
> # cat /usr/lib/rpm/redhat/redhat-hardened-cc1
> *cc1_options:
> + %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}}
looks like we could remove that spec totaly and get things working
we already do that for CC_NO_CLANG
could you guys test patch below? works on my setup
thanks,
jirka
---
tools/perf/Makefile.config | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index c17472cb50f5..d702d21eacf6 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -184,9 +184,7 @@ ifdef PYTHON_CONFIG
PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(PYTHON_EMBED_LDOPTS))
PYTHON_EMBED_LIBADD := $(call grep-libs,$(PYTHON_EMBED_LDOPTS)) -lutil
PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null)
- ifeq ($(CC_NO_CLANG), 1)
- PYTHON_EMBED_CCOPTS := $(filter-out -specs=%,$(PYTHON_EMBED_CCOPTS))
- endif
+ PYTHON_EMBED_CCOPTS := $(filter-out -specs=%,$(PYTHON_EMBED_CCOPTS))
FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS)
endif
@@ -572,7 +570,6 @@ ifndef NO_GTK2
endif
endif
-
ifdef NO_LIBPERL
CFLAGS += -DNO_LIBPERL
else
@@ -580,6 +577,8 @@ else
PERL_EMBED_LDFLAGS = $(call strip-libs,$(PERL_EMBED_LDOPTS))
PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS))
PERL_EMBED_CCOPTS = $(shell perl -MExtUtils::Embed -e ccopts 2>/dev/null)
+ PERL_EMBED_CCOPTS := $(filter-out -specs=%,$(PERL_EMBED_CCOPTS))
+ PERL_EMBED_LDOPTS := $(filter-out -specs=%,$(PERL_EMBED_LDOPTS))
FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS)
ifneq ($(feature-libperl), 1)
--
2.14.3
next prev parent reply other threads:[~2017-12-04 8:24 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-08 10:27 [PATCH 0/3] perf tools: Build fixes Jiri Olsa
2017-11-08 10:27 ` [PATCH 1/3] perf tools: Use shell function for perl cflags retrieval Jiri Olsa
2017-11-08 16:03 ` Arnaldo Carvalho de Melo
2017-11-18 8:26 ` [tip:perf/core] " tip-bot for Jiri Olsa
2017-12-18 17:15 ` [tip:perf/urgent] " tip-bot for Jiri Olsa
2017-11-08 10:27 ` [PATCH 2/3] perf tools: Fix build for hardened environments Jiri Olsa
2017-11-08 16:03 ` Arnaldo Carvalho de Melo
2017-11-09 7:36 ` Jiri Olsa
2017-11-09 12:52 ` Arnaldo Carvalho de Melo
2017-11-10 9:43 ` Jiri Olsa
2017-11-23 14:15 ` Arnaldo Carvalho de Melo
2017-11-23 14:38 ` Jiri Olsa
2017-11-29 19:54 ` Arnaldo Carvalho de Melo
2017-11-29 20:00 ` Arnaldo Carvalho de Melo
2017-11-30 10:08 ` Jiri Olsa
2017-12-01 2:11 ` Namhyung Kim
2017-12-04 7:34 ` Jiri Olsa
2017-12-04 8:24 ` Jiri Olsa [this message]
2017-12-04 15:35 ` Arnaldo Carvalho de Melo
2017-12-05 16:19 ` Jiri Olsa
2017-12-06 16:40 ` [tip:perf/core] perf tools: Fix up build in hardnened environments tip-bot for Jiri Olsa
2017-12-18 17:16 ` [tip:perf/urgent] perf tools: Fix up build in hardened environments tip-bot for Jiri Olsa
2017-11-08 10:27 ` [PATCH 3/3] perf tools: Removing FLAGS_PYTHON_EMBED/FLAGS_PERL_EMBED variables Jiri Olsa
2017-11-08 16:06 ` Arnaldo Carvalho de Melo
2017-11-09 7:27 ` Jiri Olsa
2017-11-09 12:48 ` Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171204082437.GC30564@krava \
--to=jolsa@redhat.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=dsahern@gmail.com \
--cc=jolsa@kernel.org \
--cc=kernel-team@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.