Re: [PATCH] tools lib: Reinstate strlcpy() header guard with __UCLIBC__

From: Arnaldo Carvalho de Melo
Date: Fri Aug 19 2016 - 10:22:29 EST


Em Thu, Aug 18, 2016 at 09:03:08AM -0700, Vineet Gupta escreveu:
> On 08/18/2016 07:07 AM, Arnaldo Carvalho de Melo wrote:
> > Are you aware of any readily available tarball or docker image that has
> > a uclibc based devel env that I could grab? I'd add it to my build setup
> > to make sure I (and my downstreamers) don't break uclibc environments in
> > the future.
>
> A prebuilt toolchain would just suffice.
>
> https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/download/arc-2016.03/arc_gnu_2016.03_prebuilt_uclibc_le_archs_linux_install.tar.gz

So, I did just that, from now on, before pushing things to Ingo, that
prebuilt toolchain will be used in a docker container, please take a
look at the Dockerfile and see if there is something missing from the
cross build make command line:

# -------------------- 8< -------------------------------
# docker.io/acmel/linux-perf-tools-build-fedora:24-x-ARC-uClibc
FROM docker.io/fedora:24
MAINTAINER Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
ENV TOOLCHAIN=arc_gnu_2016.03_prebuilt_uclibc_le_archs_linux_install
RUN SOURCEFILE=${TOOLCHAIN}.tar.gz && \
dnf -y install make flex bison tar gzip && \
dnf -y clean all && \
mkdir -m 777 -p /tmp/build/perf && \
curl -OL https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/download/arc-2016.03/${SOURCEFILE} && \
tar xf ${SOURCEFILE} && \
rm -f ${SOURCEFILE} && \
groupadd -r perfbuilder && \
useradd -r -g perfbuilder perfbuilder
USER perfbuilder
ENTRYPOINT make -C /git/linux/tools/perf O=/tmp/build/perf ARCH=arc CROSS_COMPILE=/${TOOLCHAIN}/bin/arc-linux-
# -------------------- 8< -------------------------------

Do I have to pass some extra flags? Perhaps for sysroot?

With the above I get:

# dm fedora:24-x-ARC-uClibc
1: 29.108592825 fedora:24-x-ARC-uClibc: Ok
#

Which selected these features:

make: Entering directory '/git/linux/tools/perf'
BUILD: Doing 'make -j4' parallel build
sh: line 0: command: -c: invalid option
command: usage: command [-pVv] command [arg ...]

Auto-detecting system features:
... dwarf: [ OFF ]
... dwarf_getlocations: [ OFF ]
... glibc: [ on ]
... gtk2: [ OFF ]
... libaudit: [ OFF ]
... libbfd: [ OFF ]
... libelf: [ OFF ]
... libnuma: [ OFF ]
... numa_num_possible_cpus: [ OFF ]
... libperl: [ OFF ]
... libpython: [ OFF ]
... libslang: [ OFF ]
... libcrypto: [ OFF ]
... libunwind: [ OFF ]
... libdw-dwarf-unwind: [ OFF ]
... zlib: [ OFF ]
... lzma: [ OFF ]
... get_cpuid: [ OFF ]
... bpf: [ on ]

Makefile.config:260: No libelf found, disables 'probe' tool and BPF support in 'perf record', please install libelf-dev, libelf-devel or elfutils-libelf-devel
Makefile.config:360: No sys/sdt.h found, no SDT events are defined, please install systemtap-sdt-devel or systemtap-sdt-dev
Makefile.config:433: Disabling post unwind, no support found.
Makefile.config:479: No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev
Makefile.config:490: No libcrypto.h found, disables jitted code injection, please install libssl-devel or libssl-dev
Makefile.config:505: slang not found, disables TUI support. Please install slang-devel, libslang-dev or libslang2-dev
Makefile.config:519: GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev
Makefile.config:547: Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev
Makefile.config:573: No python interpreter was found: disables Python support - please install python-devel/python-dev
Makefile.config:680: No liblzma found, disables xz kernel module decompression, please install xz-devel/liblzma-dev
Makefile.config:693: No numa.h found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev
Makefile.config:750: Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc

- Arnaldo