Age | Commit message (Collapse) | Author |
|
The patch was sponsored by sysmocom
Signed-off-by: Henning Heinold <henning@itconsulting-heinold.de>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
If you build perf in tree /xxx/treea, then cleansstate perf and build it
in /xxx/treeb having deleted treea, the build will fail, unable to find libc.
The problem is that the --sysroot option passed in through CC is missing.
This works fine if the default sysroot is ok, if it isn't, things will fail.
In 1.7 we'll start poisoning the default sysroot in gcc to catch this kind of
issue however that doesn't fix the problem with perf.
The problem is that various Makefiles set CC = $(CROSS_COMPILE)gcc. The
easist fix for now is to sed out the problematic Makefile lines. Its worth
noting the tools/lib/traceevent Makefile has a much more funky way of setting
CC which works for us and may be the way we need to fix the other Makefiles
upstream.
This fixes build failures we're occasionally seen on the autobuilders.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Recent versions of perf may install files into /usr/libexec/perf-core and in
/usr/lib/traceevent. To avoid packaging QA errors, we add these two
directories to the FILES variables.
We also add: INHIBIT_PACKAGE_DEBUG_SPLIT="1" to avoid the following issue
(due to a trailing / being removed):
ERROR: debugedit failed with exit code 256
...
debugedit: canonicalization unexpectedly shrank by one character
And finally, we must ensure that the traceevent libraries are installed to
the proper multilib library path. If building some multlibs, the incorrect
library path will be selected by perf, since it triggers via: ifeq
($(ARCH),x86_64) (or similiar mechanism per arch).
In a 32 bit build, with a 64 bit multilib, the arch won't match and the
detection of a 64 bit build (and library) are not exected. To ensure that
libraries are installed to the correct location, we can make the substitution
in the config/Makefile. For non multilib builds, this has no impact.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Instead of using oe.path.relative, use the Python Standard Library function
os.path.relpath.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
Turns out the sed command has not been working as intended since
kernel 3.1 due to the trailing space. Adding the WERROR=0 environment
variable is the correct way to disable warnings as errors.
Signed-off-by: Konrad Scherer <Konrad.Scherer@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
As the same reason to powerpc64, mips64 also need the flag.
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
PPC64 uses long long for u64 in the kernel, but powerpc's asm/types.h
prevents 64-bit userland from seeing this definition, instead defaulting
to u64 == long in userspace.
Perf want LL64, flag __SANE_USERSPACE_TYPES__ to get int-ll64.h.
Fix the below issue:
| tests/attr.c:71:4: error: format '%llu' expects argument of type 'long
long unsigned int', but argument 6 has type '__u64' [-Werror=format=]
| tests/attr.c:80:7: error: format '%llu' expects argument of type 'long
long unsigned int', but argument 4 has type '__u64' [-Werror=format=]
| attr->type, attr->config, fd) < 0) {
| ^
Signed-off-by: Ting Liu <b28495@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
The LDFLAGS is required or some old kernels fails due missing
symbols and this is preferred than requiring patches to every old
supported kernel.
Fixes [YOCTO: #5221]
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
The kernel build system does the right thing here and we should stop
overriding it. This code has been added based on a change from
'meta-metro' layer, revision 9d698004137c1a888d40d6a4808d94afa22387e7,
without any information about what problem it fixes so I am reverting
it.
Using the CFLAGS and LDFLAGS makes it impossible for kernel build
system to append to it, thus making the build fail in various ways as:
| CC /.../perf/1.0-r8/perf-1.0/perf.o
| In file included from builtin.h:4:0,
| from perf.c:9:
| util/util.h:74:24: fatal error: lk/debugfs.h: No such file or directory
| #include <lk/debugfs.h>
| ^
| compilation terminated.
The unset is done in do_compile and do_install otherwise it /rebuild/
perf as it detects the compiler options has change.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
In perf.bb:
S = "${STAGING_KERNEL_DIR}"
So the source should be ready after the do_unpack, and we need this:
do_unpack[depends] += "virtual/kernel:do_populate_sysroot"
Otherwise, maybe no source after do_unpack.
[YOCTO #5168]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Without this we see relocation errors on mips with 3.10. This should be
safe to be included in general.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
The do_populate_lic task has a race with the recipe since it relies on the
kernel being populated in the sysroot. This patch adds in the explicit missing
dependency.
[YOCTO #3534]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Due to the use of ${@...} the code will try and expand this when
performing the initial parsing. If the sysroot doesn't exist with
an existing kernel, this will fail at parsing time.
Sinec we're already in python, just remove the ${@....} wrapping
and then we execute at do_package time which is what we want.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Have perf grab and use the kernel version it's built from for PKGV,
rather than the default perf recipe version, so the final packages get
the kernel version instead of the default 1.0, which represents a
backwards value from the previous recipe.
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
There's nothing kernel-version-specific about the perf_3.4 recipe, so
it's actually misnamed and misleading now that it also gets used with
the 3.8 kernel.
Since the recipe isn't tied to a specific PV, and simply uses
whatever's in STAGING_KERNEL_DIR, there's no reason to add anything
else either to the bare PN, so just use that as the recipe name.
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|