lkml.org 
[lkml]   [2014]   [Jan]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectWeird plugin paths in perf and perf.so binaries with 3.14 merge window
    From
    Hi All,

    I went to build Linux v3.13-737-g7fe67a1 in Fedora this morning and it
    resulted in RPM complaining that the perf and perf.so binaries had
    strings in them that matched the RPM_BUILD_ROOT string. That fails
    the RPM build.

    Looking over the logs, I see that the traceevent plugins are getting a
    rather weird -DPLUGIN_DIR define passed to them. E.g.:

    gcc -c -g -Wall -I. -I
    /home/jwboyer/kernel/kernel-3.13.fc21/linux-3.14.0-0.rc0.git1.1.fc21.x86_64/tools/lib/traceevent/../../include
    '-DPLUGIN_DIR="/home/jwboyer/rpmbuild/BUILDROOT/kernel-3.14.0-0.rc0.git1.1.fc21.x86_64//usr//usr/lib64/traceevent/plugins"'
    -D_GNU_SOURCE -std=gnu99 -fPIC
    /home/jwboyer/kernel/kernel-3.13.fc21/linux-3.14.0-0.rc0.git1.1.fc21.x86_64/tools/lib/traceevent/parse-filter.c
    -o parse-filter.o

    We're building perf like so:

    make -s -j8 -C tools/perf V=1 WERROR=0 NO_LIBUNWIND=1
    HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 NO_STRLCPY=1 NO_BIONIC=1
    prefix=/usr DESTDIR=/home/jwboyer/rpmbuild/BUILDROOT/kernel-3.14.0-0.rc0.git1.1.fc21.x86_64
    all

    and installing it via:

    make -s -j8 -C tools/perf V=1 WERROR=0 NO_LIBUNWIND=1
    HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 NO_STRLCPY=1 NO_BIONIC=1
    prefix=/usr DESTDIR=/home/jwboyer/rpmbuild/BUILDROOT/kernel-3.14.0-0.rc0.git1.1.fc21.x86_64
    install-bin

    make -s -j8 -C tools/perf V=1 WERROR=0 NO_LIBUNWIND=1
    HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 NO_STRLCPY=1 NO_BIONIC=1
    prefix=/usr DESTDIR=/home/jwboyer/rpmbuild/BUILDROOT/kernel-3.14.0-0.rc0.git1.1.fc21.x86_64
    install-python_ext

    This has worked for all the builds up until this point.

    Somehow the perf and perf.so binaries are getting the string being
    passed via -DPLUGIN_DIR into them, likely through the libtraceevent.a
    link. I'm pretty sure that (1) the string being passed is totally
    broken and should be "/usr/lib64/traceevent/plugins" and (2) that I
    haven't come close to deciphering how to fix this.

    So, could you please look this over and see where the define is
    getting messed up?

    josh


    \
     
     \ /
      Last update: 2014-01-21 21:21    [W:3.777 / U:0.212 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site