lkml.org 
[lkml]   [2015]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [RFC PATCH v4 03/29] perf tools: Move linux/{list.h,poison.h} to tools/include
    Em Wed, May 27, 2015 at 05:19:38AM +0000, Wang Nan escreveu:
    > This patch moves list.h from tools/perf/util/include/linux/list.h
    > to tools/include/linux/list.h to enable other libraries use macros in
    > it, like libbpf which will be introduced by further patches. Since
    > list.h depend on poison.h, poison.h is also moved.

    > Both file use relative path, so one '..' is removed for each header
    > to make them suit for new directory.

    I'll apply this, but when doing these moves, one has to worry that these
    build targets continue working:

    [acme@ssdandy linux]$ make help | grep perf
    perf-tar-src-pkg - Build perf-4.1.0-rc2.tar source tarball
    perf-targz-src-pkg - Build perf-4.1.0-rc2.tar.gz source tarball
    perf-tarbz2-src-pkg - Build perf-4.1.0-rc2.tar.bz2 source tarball
    perf-tarxz-src-pkg - Build perf-4.1.0-rc2.tar.xz source tarball
    [acme@ssdandy linux]$

    To explain what they are for, here is how they are used:

    [acme@ssdandy linux]$ ls -la *.gz
    ls: cannot access *.gz: No such file or directory
    [acme@ssdandy linux]$ make perf-targz-src-pkg
    TAR
    [acme@ssdandy linux]$ ls -la *.gz
    -rw-rw-r--. 1 acme acme 1014070 May 27 10:07 perf-4.1.0-rc2.tar.gz
    [acme@ssdandy linux]$ mkdir -p /tmp/on-some-other-machine-we-do/
    [acme@ssdandy linux]$ mv perf-4.1.0-rc2.tar.gz /tmp/on-some-other-machine-we-do/
    [acme@ssdandy linux]$ cd /tmp/on-some-other-machine-we-do/
    [acme@ssdandy on-some-other-machine-we-do]$ tar xf perf-4.1.0-rc2.tar.gz
    [acme@ssdandy on-some-other-machine-we-do]$ ls
    perf-4.1.0-rc2 perf-4.1.0-rc2.tar.gz
    [acme@ssdandy on-some-other-machine-we-do]$ cd perf-4.1.0-rc2/
    [acme@ssdandy perf-4.1.0-rc2]$ ls
    arch HEAD include lib PERF-VERSION-FILE tools
    [acme@ssdandy perf-4.1.0-rc2]$ make -C tools/perf
    make: Entering directory `/tmp/on-some-other-machine-we-do/perf-4.1.0-rc2/tools/perf'
    BUILD: Doing 'make -j8' parallel build

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

    CC util/abspath.o
    CC arch/common.o
    CC ui/setup.o
    CC fs/fs.o
    CC event-parse.o
    PERF_VERSION = 4.1.rc2.g6bbda4
    GEN common-cmds.h
    CC fd/array.o
    CC ui/gtk/browser.o
    In file included from /usr/include/linux/kernel.h:4:0,
    from util/util.h:73,
    from util/cache.h:5,
    from util/abspath.c:1:
    /usr/include/linux/sysinfo.h:8:2: error: unknown type name ‘__kernel_long_t’
    __kernel_long_t uptime; /* Seconds since boot */
    ^
    /usr/include/linux/sysinfo.h:9:2: error: unknown type name ‘__kernel_ulong_t’
    __kernel_ulong_t loads[3]; /* 1, 5, and 15 minute load averages */
    ^
    /usr/include/linux/sysinfo.h:10:2: error: unknown type name ‘__kernel_ulong_t’
    __kernel_ulong_t totalram; /* Total usable main memory size */

    <BIG, BIG SNIP>
    ^
    cc1: all warnings being treated as errors
    make[3]: *** [ui/gtk/hists.o] Error 1
    make[2]: *** [ui/gtk] Error 2
    make[1]: *** [gtk-in.o] Error 2
    LD libtraceevent-in.o
    LD plugin_scsi-in.o
    LINK libtraceevent.a
    LINK plugin_scsi.so
    LD plugin_xen-in.o
    LINK plugin_xen.so
    make: *** [all] Error 2
    make: Leaving directory `/tmp/on-some-other-machine-we-do/perf-4.1.0-rc2/tools/perf'
    [acme@ssdandy perf-4.1.0-rc2]$

    ========================================================================

    This is because:

    [acme@ssdandy perf-4.1.0-rc2]$ ls -la tools/include/linux/kernel.h
    ls: cannot access tools/include/linux/kernel.h: No such file or directory

    You forgot to add this file to tools/perf/MANIFEST, that which effect would
    be equivalent to:

    [acme@ssdandy perf-4.1.0-rc2]$ cp ~acme/git/linux/tools/include/linux/kernel.h tools/include/linux/kernel.h
    [acme@ssdandy perf-4.1.0-rc2]$ make -C tools/perf
    make: Entering directory `/tmp/on-some-other-machine-we-do/perf-4.1.0-rc2/tools/perf'
    BUILD: Doing 'make -j8' parallel build
    CC arch/common.o
    CC util/abspath.o
    CC ui/gtk/browser.o
    CC util/alias.o

    <SNIP>

    LD util/scripting-engines/libperf-in.o
    LD util/libperf-in.o
    LD libperf-in.o
    AR libperf.a
    LINK perf
    LINK libperf-gtk.so
    make: Leaving directory `/tmp/on-some-other-machine-we-do/perf-4.1.0-rc2/tools/perf'
    [acme@ssdandy perf-4.1.0-rc2]$
    [acme@ssdandy perf-4.1.0-rc2]$ tools/perf/perf --version
    perf version 4.1.rc2.g6bbda4
    [acme@ssdandy perf-4.1.0-rc2]$ ls -la tools/perf/perf
    -rwxrwxr-x. 1 acme acme 11495170 May 27 10:12 tools/perf/perf
    [acme@ssdandy perf-4.1.0-rc2]$ strip tools/perf/perf
    [acme@ssdandy perf-4.1.0-rc2]$ ls -la tools/perf/perf
    -rwxrwxr-x. 1 acme acme 2441888 May 27 10:13 tools/perf/perf
    [acme@ssdandy perf-4.1.0-rc2]$

    ========================================================================

    This, BTW, would have been caught if you had run:

    make -C tools/perf build-test

    One of the last tests will do this packaging and building, alerting you that
    something is missing.

    I am doing this for the two patches in this series that moves things to tools,

    Regards,

    - Arnaldo

    > Signed-off-by: Wang Nan <wangnan0@huawei.com>
    > ---
    > tools/{perf/util => }/include/linux/list.h | 6 +++---
    > tools/include/linux/poison.h | 1 +
    > tools/perf/util/include/linux/poison.h | 1 -
    > 3 files changed, 4 insertions(+), 4 deletions(-)
    > rename tools/{perf/util => }/include/linux/list.h (90%)
    > create mode 100644 tools/include/linux/poison.h
    > delete mode 100644 tools/perf/util/include/linux/poison.h
    >
    > diff --git a/tools/perf/util/include/linux/list.h b/tools/include/linux/list.h
    > similarity index 90%
    > rename from tools/perf/util/include/linux/list.h
    > rename to tools/include/linux/list.h
    > index 76ddbc7..76b014c 100644
    > --- a/tools/perf/util/include/linux/list.h
    > +++ b/tools/include/linux/list.h
    > @@ -1,10 +1,10 @@
    > #include <linux/kernel.h>
    > #include <linux/types.h>
    >
    > -#include "../../../../include/linux/list.h"
    > +#include "../../../include/linux/list.h"
    >
    > -#ifndef PERF_LIST_H
    > -#define PERF_LIST_H
    > +#ifndef TOOLS_LIST_H
    > +#define TOOLS_LIST_H
    > /**
    > * list_del_range - deletes range of entries from list.
    > * @begin: first element in the range to delete from the list.
    > diff --git a/tools/include/linux/poison.h b/tools/include/linux/poison.h
    > new file mode 100644
    > index 0000000..0c27bdf
    > --- /dev/null
    > +++ b/tools/include/linux/poison.h
    > @@ -0,0 +1 @@
    > +#include "../../../include/linux/poison.h"
    > diff --git a/tools/perf/util/include/linux/poison.h b/tools/perf/util/include/linux/poison.h
    > deleted file mode 100644
    > index fef6dbc..0000000
    > --- a/tools/perf/util/include/linux/poison.h
    > +++ /dev/null
    > @@ -1 +0,0 @@
    > -#include "../../../../include/linux/poison.h"
    > --
    > 1.8.3.4


    \
     
     \ /
      Last update: 2015-05-27 15:41    [W:6.168 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site