This is the main command to control oprofile. It was introduced in
version 0.9.8 from 2012-08-27 and in version 1.0.0 the previous
control tool, opcontrol, was removed.
In commit 9863553fe8, removing avr32
support, code that added operf for !avr32 was removed rather than
keeping the code but making it non-conditional.
Signed-off-by: Trent Piepho <tpiepho@kymetacorp.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
operf_utils.h defines rmb() for a limited number of architectures, so
add this list to BR2_PACKAGE_OPROFILE_ARCH_SUPPORTS to disable any new
or unsupported architectures.
Doing so, this disable oprofile for m68k which lack of memory barrier
operations.
Remove nios2 dependency since it's not supported by oprofile even if
binutils could be built for nios2.
Fixes:
http://autobuild.buildroot.net/results/1cc761d8a5715d0a2c6eaacfde7e44b225da1b36
Signed-off-by: Romain Naour <romain.naour@gmail.com>
[Thomas: remove BR2_sh64, use BR2_sh instead of BR2_sh4.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
binutils got disabled as a target package for aarch64 back in Buildroot
2012.11 (commit 660d16f4).
The default version 2.21.1 at the time didn't really support aarch64, as
shown by the autobuilder error reference in that commit.
binutils has now had support for aarch64 since 2.23, but was never
re-enabled for aarch64.
All of the binutils versions currently supported by Buildroot (oldest
being 2.24) support aarch64, so we can now enable it without any
restrictions.
This same patch also touches the dropwatch, lightning and oprofile
packages which all select binutils and had the 'depends on !aarch64' to
keep Kconfig consistent. They are now re-enabled for aarch64 as well.
They are changed in this same patch so that Kconfig is kept consistent
and doesn't end up having them disabled in a commit which only has the
binutils change applied.
lightning has other explicit arch dependencies so it is not actually yet
available in aarch64, but at least the dependency on !aarch64 because of
binutils is not needed anymore.
Everything has been build tested with Buildroot and external toolchains.
binutils and dropwatch work fine in a qemu target. oprofile doesn't seem
to be supported in the qemu aarch64 processor but builds fine and seems
to have some level of aarch64 support in the source, so there doesn't
seem to be a reason to keep it disabled in Kconfig.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Commit c45979c732 marked OProfile as not
available on the Xtensa architecture, due to the lack of memory
barrier operations. This commit does the same for the Microblaze
architecture, for the same reason, which allows to fix the following
autobuilder failure:
http://autobuild.buildroot.org/results/9a872ddc906e9d552d30762e849a1b537b4e5095/
It is worth mentioning that most likely Xtensa and Microblaze are
architectures implementing a strongly-ordered memory model, in which
case we could define the memory barriers as no-ops. But until someone
who actually cares about OProfile on Xtensa and Microblaze shows up,
it's probably better to disable the package on those architectures.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The build error has not yet been found by the autobuilders:
operf.cpp: In function ‘int __delete_old_previous_sample_data(const char*, const stat*, int, FTW*)’:
operf.cpp:862:10: error: ‘FTW_STOP’ was not declared in this scope
return FTW_STOP;
^
operf.cpp:864:10: error: ‘FTW_CONTINUE’ was not declared in this scope
return FTW_CONTINUE;
^
operf.cpp: In function ‘void convert_sample_data()’:
operf.cpp:899:41: error: ‘FTW_ACTIONRETVAL’ was not declared in this scope
int flags = FTW_DEPTH | FTW_ACTIONRETVAL;
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
When building with BR2_STATIC_LIBS=y, no shared library gets built, so
the installation of libopagent.so* fails. This commit gets rid of this
installation step when BR2_STATIC_LIBS=y.
Fixes:
http://autobuild.buildroot.net/results/2a6604622392a3f127fb61505e2751a88a90af7b/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
There is no need to repeat OPROFILE_BINARIES += many times to add more
values to the variable. Just define it once with all the values, as we
do everywhere else in Buildroot.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
OPROFILE_AUTORECONF = YES was added in commit
99fc6299db ("oprofile 0.9.8: fix
compilation on powerpc") together with a patch touching
configure.ac. However, since then, OProfile was bumped to 0.9.9 and
then 1.0.0, and through those bumps, all patches touching configure.ac
and .m4 files have been removed since they have been merged
upstream. AUTORECONF = YES is therefore no longer necessary, and an
OProfile build was successfully tested with autoreconfiguring the
package.
We can also remove the OPROFILE_CREATE_FILES post-patch hook, which
was only needed to create files required by the autoreconf process.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit adds a patch to OProfile that ensures <time.h> is included
whenever nanosleep() is used, which fixes a build failure on uClibc
toolchains with no thread support.
Fixes:
http://autobuild.buildroot.org/results/d28/d28447c1241ce3dd237710e388d799139d7d613d/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Since SourceForge sometimes serves us faulty tarballs, we can tons of
autobuild failures:
http://autobuild.buildroot.org/results/9fb/9fba5bf086a4e7a29e5f7156ec43847db7aacfc4/http://autobuild.buildroot.org/results/6c8/6c837b244c45ac3b3a887734a371cd6d226cf216/
...
Fix that by adding hash files for all SourceForge-hosted packages (thos
etht did not already have it).
We normally prefer to use hashes published by upstream, but hunting them
all one by one is a tedious task, so those hashes were all locally
computed with a script that searched for SF-hosted packages, downloades
the associated tarball, computed the hash, and stored it in the
corresponding .hash file.
Also, SF publishes sha1 hashes, while I used the stronger sha256, since
sha1 is now considered to be relatively weak.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Peter Korsgaard <jacmet@uclibc.org>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Cc: Richard Braun <rbraun@sceen.net>
Cc: Nathaniel Roach <nroach44@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Remove opcontrol and oprofiled from the install list, they are no longer
present in the package.
Remove all patches, they have been integrated upstream.
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
binutils starting at least from 2.23 when build for target require
uClibc configured with UCLIBC_HAS_WCHAR otherwise:
libtool: link: [...] -o as-new [...]
read.o: In function `read_symbol_name':
read.c:(.text+0x3634): undefined reference to `mbstowcs'
collect2: error: ld returned 1 exit status
because "mbstowcs" is not available in the C library.
Even though we're not yet using 2.23.2 as the default version, we will
probably do it in the near future, so this commit doesn't bother with
making the wchar dependency version-specific, and applies it to the
binutils package as a whole.
Fixes bug #6218
[Thomas:
- more details in the commit log.
- add comment about the wchar dependency
- propagate the dependency to dropwatch (and fix a mistake in the
architecture dependencies of the comment)
- propagate the dependency to oprofile.]
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Anton Kolesov <akolesov@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Remove --localstatedir=/var from all autotools packages where it is no longer
needed.
Also remove --localstatedir=/var/lib/dhcp from package dhcp. localstatedir is
used by dhcp to set the default directory for the leases files. This can also
be done by setting --with-*-lease-file=/var/lib/dhcp/*, which is done in
dhcp.mk.
A custom --localstatedir is left in:
* proftpd.mk
* mysql.mk
This is safe to do:
One of the good thing with autoconf is that if you pass:
--localstatedir=/var ... --localstatedir=/var/something
Then /var/something will be used. So, we can set --localstatedir=/var
by default in the infrastructure, and still have certain packages doing
weird things override it. [Thanks to Thomas Petazzoni]
Signed-off-by: Jörg Krause <jkrause@posteo.de>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS,
make the same change for FOO_CONF_OPT.
Sed command used:
find * -type f | xargs sed -i 's#_CONF_OPT\>#&S#g'
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Relese notes for 0.9.9 release are avaialble here:
http://oprofile.sourceforge.net/release-notes/oprofile-0.9.9
This release adds support for ARC architecture.
Also introduces new "ocount" program for collection of raw event counts.
With release of 0.9.9 we may drop back-ported patches:
oprofile-002-no-query-modules.patch - liblegacy was removed since 2.4 kernels
are no longer supported
fcb818623b/
oprofile-003-oprofile-ppc32-build-fix.patch
fa889ea74b/
oprofile-004-fix-ppc64-specific-libpfm-usage.patch
79a183ed0d/
oprofile-005-fix-up-configure-to-handle-architectures-that-do-not.patch
ca6d916a6f/
But in 0.9.9 was introduced build breakage which was fixed later so adding
another back-ported patch
oprofile-002-Fix-compile-error-on-ppc-uClibc-platform-AT_BASE_PLA.patch
08241f1b2c/
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
Cc: Peter Korsgaard <jacmet@sunsite.dk>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Cc: Simon Dawson <spdawson@gmail.com>
Cc: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
There is no perf_events support in the kernel for avr32. The oprofile
package makefile hard codes the list of binaries to install. Unfortunately,
this hard-coded list contains pe_profiling/operf, which is only built when
perf_events support is available.
Fixes autobuild failures such as the following.
http://autobuild.buildroot.net/results/492/492659bc252395a62e62e6005ed0e86e582dcada/
Signed-off-by: Simon Dawson <spdawson@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Fixes:
http://autobuild.buildroot.net/results/73d736dd3c8a70358ef4b19a63dda46178cf8bf1/
Note that the propagation of the thread dependency to the oprofile
package is a little bit non standard, because oprofile selects libpfm4
only on the PowerPC architecture. So we ensure the thread dependency
is only enforced on PowerPC, and a separate comment is displayed when
thread support is not available, but the PowerPC architecture is used.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
When a package A depends on config option B and toolchain option C, then
the comment that is given when C is not fulfilled should also depend on B.
For example:
config BR2_PACKAGE_A
depends on BR2_B
depends on BR2_LARGEFILE
depends on BR2_WCHAR
comment "A needs a toolchain w/ largefile, wchar"
depends on !BR2_LARGEFILE || !BR2_WCHAR
This comment should actually be:
comment "A needs a toolchain w/ largefile, wchar"
depends on BR2_B
depends on !BR2_LARGEFILE || !BR2_WCHAR
or if possible (typically when B is a package config option declared in that
same Config.in file):
if BR2_B
comment "A needs a toolchain w/ largefile, wchar"
depends on !BR2_LARGEFILE || !BR2_WCHAR
[other config options depending on B]
endif
Otherwise, the comment would be visible even though the other dependencies
are not met.
This patch adds such missing dependencies, and changes existing such
dependencies from
depends on BR2_BASE_DEP && !BR2_TOOLCHAIN_USES_GLIBC
to
depends on BR2_BASE_DEP
depends on !BR2_TOOLCHAIN_USES_GLIBC
so that (positive) base dependencies are separate from the (negative)
toolchain dependencies. This strategy makes it easier to write such comments
(because one can simply copy the base dependency from the actual package
config option), but also avoids complex and long boolean expressions.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
(untested)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This patch lines up the comments in Config.in files that clarify which
toolchain options the package depends on.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The oprofile build was broken on powerpc since version 0.9.8.
This was detected in several autobuilds, like
http://autobuild.buildroot.net/results/6f6c02d18495907d50fcdfc6003ac20d493c55fe/
Thomas Petazzoni had some fixes pending in his own tree, and this patch is
partially based on this work (credits to him). Here is an overview:
- I took over (and fixed) the oprofile.mk changes, except for the powerpc-
specific part. For powerpc, there is a new dependency to libpfm4.
- I reimported those Yocto patches that were specific to the ppc build
issues, but left out the other ones. Those can be added in separate
commits.
[Peter: simplify libpfm4 check]
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The patches to oprofile 0.9.7 seem still relevant for 0.9.8, but for some
reason they were not upstepped.
[Peter: drop version number from patch filenames]
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The default <foo>_SITE value that pkg-generic sets when the .mk file
doesn't declare it is using BR2_SOURCEFORGE_MIRROR and therefore isn't
consistent with the usage of downloads.sourceforge.net we have
generalized for all drivers.
Since the downloads.sourceforge.net URLs are inherently specific to
each package, we can no longer provide a default in pkg-generic.mk,
and therefore each package *must* declare its own <foo>_SITE value.
This patch fixes the only two packages that were lacking a <foo>_SITE
value.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Based on patch by Benoit Mauduit. Now that we can build binutils for
the target with external toolchains, oprofile is also available.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* Bump to version 0.9.7
* Style fixes
* Build fix for x86: i386 is expected, not some other random i?86 as arch
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Thanks to the pkgparentdir and pkgname functions, we can rewrite the
AUTOTARGETS macro in a way that avoids the need for each package to
repeat its name and the directory in which it is present.
[Peter: pkgdir->pkgparentdir]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Convert the oprofile target to select the new libbfd staging/target
option to avoid a huge target binutils for a simple task.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
oprofile depends on binutils_target, but binutils_target fails to
build with external toolchains because the binutils version has not
been choosen. As the fix is not trivial, let's just disable oprofile
in external toolchain builds for the moment.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To reflect the new output directory hierachy rename the Makefile variable
TOOL_BUILD_DIR to TOOLCHAIN_DIR.
Signed-off-by: Michael Roth <mroth@nessie.de>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>