All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Jiri Olsa <jolsa@kernel.org>
Cc: 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: Fri, 1 Dec 2017 11:11:37 +0900	[thread overview]
Message-ID: <20171201021137.GA30867@sejong> (raw)
In-Reply-To: <20171108102739.30338-3-jolsa@kernel.org>

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?)

Thanks,
Namhyung


> 
> Fixing this by using the perl/python CFLAGS/LDFLAGS options
> for all the objects.
> 
> Link: http://lkml.kernel.org/n/tip-bib4nb5dei0ubk83534efamz@git.kernel.org
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> ---
>  tools/perf/Makefile.config                      | 2 ++
>  tools/perf/scripts/perl/Perf-Trace-Util/Build   | 2 +-
>  tools/perf/scripts/python/Perf-Trace-Util/Build | 2 +-
>  tools/perf/util/block-range.c                   | 2 +-
>  tools/perf/util/scripting-engines/Build         | 4 ++--
>  5 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
> index f6786fa2419f..5e3734e4c1e4 100644
> --- a/tools/perf/Makefile.config
> +++ b/tools/perf/Makefile.config
> @@ -587,6 +587,7 @@ else
>      NO_LIBPERL := 1
>      msg := $(warning Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev);
>    else
> +    CFLAGS  += $(PERL_EMBED_CCOPTS)
>      LDFLAGS += $(PERL_EMBED_LDFLAGS)
>      EXTLIBS += $(PERL_EMBED_LIBADD)
>      $(call detected,CONFIG_LIBPERL)
> @@ -636,6 +637,7 @@ else
>            $(warning $(and ,))
>            $(error   $(and ,))
>          else
> +          CFLAGS  += $(PYTHON_EMBED_CCOPTS)
>            LDFLAGS += $(PYTHON_EMBED_LDFLAGS)
>            EXTLIBS += $(PYTHON_EMBED_LIBADD)
>            LANG_BINDINGS += $(obj-perf)python/perf.so
> diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Build b/tools/perf/scripts/perl/Perf-Trace-Util/Build
> index 34faecf774ae..ff9a452677fc 100644
> --- a/tools/perf/scripts/perl/Perf-Trace-Util/Build
> +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Build
> @@ -1,5 +1,5 @@
>  libperf-y += Context.o
>  
> -CFLAGS_Context.o += $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes
> +CFLAGS_Context.o += -Wno-redundant-decls -Wno-strict-prototypes
>  CFLAGS_Context.o += -Wno-unused-parameter -Wno-nested-externs -Wno-undef
>  CFLAGS_Context.o += -Wno-switch-default -Wno-shadow
> diff --git a/tools/perf/scripts/python/Perf-Trace-Util/Build b/tools/perf/scripts/python/Perf-Trace-Util/Build
> index aefc15c9444a..cd4da129c017 100644
> --- a/tools/perf/scripts/python/Perf-Trace-Util/Build
> +++ b/tools/perf/scripts/python/Perf-Trace-Util/Build
> @@ -1,3 +1,3 @@
>  libperf-y += Context.o
>  
> -CFLAGS_Context.o += $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs
> +CFLAGS_Context.o += -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs
> diff --git a/tools/perf/util/block-range.c b/tools/perf/util/block-range.c
> index f1451c987eec..ff76d5f1d96f 100644
> --- a/tools/perf/util/block-range.c
> +++ b/tools/perf/util/block-range.c
> @@ -15,7 +15,7 @@ static void block_range__debug(void)
>  	 */
>  #if 1
>  	struct rb_node *rb;
> -	u64 old = 0; /* NULL isn't executable */
> +	u64 old __maybe_unused = 0; /* NULL isn't executable */
>  
>  	for (rb = rb_first(&block_ranges.root); rb; rb = rb_next(rb)) {
>  		struct block_range *entry = rb_entry(rb, struct block_range, node);
> diff --git a/tools/perf/util/scripting-engines/Build b/tools/perf/util/scripting-engines/Build
> index 82d28c67e0f3..38cd25ce1503 100644
> --- a/tools/perf/util/scripting-engines/Build
> +++ b/tools/perf/util/scripting-engines/Build
> @@ -1,6 +1,6 @@
>  libperf-$(CONFIG_LIBPERL)   += trace-event-perl.o
>  libperf-$(CONFIG_LIBPYTHON) += trace-event-python.o
>  
> -CFLAGS_trace-event-perl.o += $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow -Wno-nested-externs -Wno-undef -Wno-switch-default
> +CFLAGS_trace-event-perl.o += -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow -Wno-nested-externs -Wno-undef -Wno-switch-default
>  
> -CFLAGS_trace-event-python.o += $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow
> +CFLAGS_trace-event-python.o += -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow
> -- 
> 2.13.6
> 

  parent reply	other threads:[~2017-12-01  2:11 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 [this message]
2017-12-04  7:34     ` Jiri Olsa
2017-12-04  8:24       ` Jiri Olsa
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=20171201021137.GA30867@sejong \
    --to=namhyung@kernel.org \
    --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 \
    /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.