Re: [PATCH 2/3] perf tools: Fix build for hardened environments

From: Jiri Olsa
Date: Thu Nov 23 2017 - 09:38:25 EST


On Thu, Nov 23, 2017 at 11:15:32AM -0300, Arnaldo Carvalho de Melo wrote:

SNIP

>
> I stumbled it on a recently created perf build container for fedora 27:
>
> fedora:27
> Downloading http://192.168.124.1/perf/perf-4.14.0.tar.xz...
> % Total % Received % Xferd Average Speed Time Time Time Current
> Dload Upload Total Spent Left Speed
>
> make: Entering directory '/git/linux/tools/perf'
> BUILD: Doing 'make -j4 parallel build
> HOSTCC /tmp/build/perf/fixdep.o
> HOSTLD /tmp/build/perf/fixdep-in.o
> LINK /tmp/build/perf/fixdep
>
> Auto-detecting system features:
> ... dwarf: [ on ]
> ... dwarf_getlocations: [ on ]
> ... glibc: [ on ]
> ... gtk2: [ on ]
> ... libaudit: [ on ]
> ... libbfd: [ on ]
> ... libelf: [ on ]
> ... libnuma: [ on ]
> ... numa_num_possible_cpus: [ on ]
> ... libperl: [ on ]
> ... libpython: [ on ]
> ... libslang: [ on ]
> ... libcrypto: [ on ]
> ... libunwind: [ on ]
> ... libdw-dwarf-unwind: [ on ]
> ... zlib: [ on ]
> ... lzma: [ on ]
> ... get_cpuid: [ on ]
> ... bpf: [ on ]
>
> Makefile.config:813: No openjdk development package found, please install JDK package
> GEN /tmp/build/perf/common-cmds.h
> PERF_VERSION = 4.14.geae86e
> MKDIR /tmp/build/perf/fd/
> CC /tmp/build/perf/fd/array.o
> CC /tmp/build/perf/exec-cmd.o
> CC /tmp/build/perf/util/parse-events-flex.o
> <SNIP>
> LD /tmp/build/perf/util/libperf-in.o
> LD /tmp/build/perf/libperf-in.o
> AR /tmp/build/perf/libperf.a
> LINK /tmp/build/perf/perf
> LINK /tmp/build/perf/libperf-gtk.so
> /usr/bin/ld: /tmp/build/perf/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: /tmp/build/perf/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: /tmp/build/perf/perf] Error 1
> make[1]: *** [Makefile.perf:210: sub-make] Error 2
> make: *** [Makefile:70: all] Error 2
> make: Leaving directory '/git/linux/tools/perf'

yep, thats the one ;-) I'll try to repost shortly

jirka