This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: oprofile


Andy --

On Fri, Oct 21, 2011 at 11:31 AM, ANDY KENNEDY <ANDY.KENNEDY@adtran.com> wrote:
> I seem to recall discussion about oprofile being built in crosstool-ng,
> or something like that. ÂWhat is the current state (or was I smokin'
> somethin' that day) of building support for oprofile in/for
> crosstool-ng.

Yann has already mentioned that it's not built by ct-ng itself.  It's
not that hard to build with the resulting toolchain, however; there's
only one additional prerequisite library (popt):

$ ../../xtools/bin/powerpc-e300c3-linux-gnu-ldd --root=.. opannotate
        libpopt.so.0 => /lib/libpopt.so.0 (0xdeadbeef)
        libc.so.6 => /lib/libc.so.6 (0xdeadbeef)
        ld.so.1 => /lib/ld.so.1 (0xdeadbeef)
        libbfd-2.21.so => /usr/lib/libbfd-2.21.so (0xdeadbeef)
        libdl.so.2 => /lib/libdl.so.2 (0xdeadbeef)
        libstdc++.so.6 => /lib/libstdc++.so.6 (0xdeadbeef)
        libm.so.6 => /lib/libm.so.6 (0xdeadbeef)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xdeadbeef)

Having said that, "perf" is the new hotness regarding kernel-level
tracing, and it's rather more involved:

$ ../../xtools/bin/powerpc-e300c3-linux-gnu-ldd --root=.. perf
        libz.so.1 => /lib/libz.so.1 (0xdeadbeef)
        libc.so.6 => /lib/libc.so.6 (0xdeadbeef)
        ld.so.1 => /lib/ld.so.1 (0xdeadbeef)
        libbz2.so => /lib/libbz2.so (0xdeadbeef)
        libpthread.so.0 => /lib/libpthread.so.0 (0xdeadbeef)
        librt.so.1 => /lib/librt.so.1 (0xdeadbeef)
        libelf.so.1 => /lib/libelf.so.1 (0xdeadbeef)
        libm.so.6 => /lib/libm.so.6 (0xdeadbeef)
        libdw.so.1 => /lib/libdw.so.1 (0xdeadbeef)
        libdl.so.2 => /lib/libdl.so.2 (0xdeadbeef)
        libbfd-2.21.so => /usr/lib/libbfd-2.21.so (0xdeadbeef)

(Building it is also more of a pain, as it's embedded in the linux
kernel sources and uses the same config/build system as the kernel
itself.  At the same time, it wants many user-space libs (glibc, libz,
libbz2, libelf) that can only be built after the original kernel is
built and installed (headers, at least).)

Here's my actual sequence for building my root filesystem (with lots
of the extra debugging stuff like profilers -- the final shipped image
will have much less of this, of course...)

$ ls -1 external/per-platform/
00-xtools
05-kernel
06-ethtool
07-popt
08-oprofile
10-bzip2
15-zlib
17-elfutils
18-perf
20-boost
25-openssl
30-busybox
35-dropbear
40-ncurses
45-editline
85-libxml2
90-apache
99-rootfs

I have config snippits for all these, although they rely on my own
build infrastructure a bit.  I'd be happy to help you out if you run
into problems configuring/building them. (I keep on suspecting that
the right answer to a full filesystem like this is to investigate
OpenEmbedded or other distribution-building tools, but since I'm so
far down this path already...)

Hope this is helpful.

Best regards,
Tony Foiani

--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]