On Thu, Jan 12, 2017 at 3:10 PM, Jon Loeliger <j...@netgate.com> wrote:

>
> jdl@localhost $ find . -name libvppinfra\*
> ./build-root/build-tool-native/tools/.libs/libvppinfra.so.0.0.0
> ./build-root/build-tool-native/tools/.libs/libvppinfra.so.0
> ./build-root/build-tool-native/tools/.libs/libvppinfra.so
> ./build-root/build-tool-native/tools/.libs/libvppinfra.a
> ./build-root/build-tool-native/tools/.libs/libvppinfra.lai
> ./build-root/build-tool-native/tools/.libs/libvppinfra.la
> ./build-root/build-tool-native/tools/libvppinfra.la
> ./build-root/tools/lib64/libvppinfra.so.0.0.0
> ./build-root/tools/lib64/libvppinfra.so.0
> ./build-root/tools/lib64/libvppinfra.so
> ./build-root/tools/lib64/libvppinfra.la
> ./build-root/tools/lib64/libvppinfra.a
> ./build-root/build-vpp-native/vpp/.libs/libvppinfra.so.0.0.0
> ./build-root/build-vpp-native/vpp/.libs/libvppinfra.so.0
> ./build-root/build-vpp-native/vpp/.libs/libvppinfra.so
> ./build-root/build-vpp-native/vpp/.libs/libvppinfra.a
> ./build-root/build-vpp-native/vpp/.libs/libvppinfra.lai
> ./build-root/build-vpp-native/vpp/.libs/libvppinfra.la
> ./build-root/build-vpp-native/vpp/libvppinfra.la
>
> And looking at that last link line with libtool:
>
> libtool: install: (cd /home/jdl/workspace/vpp/build-root/build-vpp-native/vpp;
> /bin/sh /home/jdl/workspace/vpp/build-root/build-vpp-native/vpp/libtool
>  --silent --tag CC --mode=relink gcc -Wall -g -O2 -DFORTIFY_SOURCE=2
> -march=corei7 -mtune=corei7-avx -fstack-protector -fPIC -Werror -g -O2
> -DFORTIFY_SOURCE=2 -march=corei7 -mtune=corei7-avx -fstack-protector -fPIC
> -Werror -L/home/jdl/workspace/vpp/build-root/install-vpp-native/dpdk/lib
> -Wl,-rpath -Wl,/home/jdl/workspace/vpp/build-root/install-vpp-native/dpdk/lib
> -o libsvm.la -rpath /home/jdl/workspace/vpp/build-
> root/install-vpp-native/vpp/lib64 svm/svm.lo svm/ssvm.lo libvppinfra.la
> -lrt -lpthread )
>
> Separate out the library crude for readability:
>
> -L/home/jdl/workspace/vpp/build-root/install-vpp-native/dpdk/lib
> -Wl,-rpath
> -Wl,/home/jdl/workspace/vpp/build-root/install-vpp-native/dpdk/lib
>  -o libsvm.la
>  -rpath /home/jdl/workspace/vpp/build-root/install-vpp-native/vpp/lib64
>  svm/svm.lo
>  svm/ssvm.lo
>  libvppinfra.la
>  -lrt
>  -lpthread
>
> Where is that -lvppinfra supposed to come from?
>
> Thanks,
> jdl
>
>
So, a side-by-side comparison of a working and this-non-working
build shows that the working build does an install of vppinfra, both
libraries and include files, that is missing from the non-working build.

These:

 /usr/bin/mkdir -p '/home/jdl/workspace/ngr-rpms/build_root/BUILD/vpp/build-
root/rpm/vpp-1.0.0/build-root/install-vpp-native/vpp/include/vppinfra'
libtool: install: /usr/bin/install -c .libs/libvppinfra.so.0.0.0
/home/jdl/workspace/ngr-rpms/build_root/BUILD/vpp/build-
root/rpm/vpp-1.0.0/build-root/install-vpp-native/vpp/lib64/
libvppinfra.so.0.0.0

 /usr/bin/install -c -m 644  /home/jdl/workspace/ngr-rpms/
build_root/BUILD/vpp/build-root/rpm/vpp-1.0.0/build-data/
../src/vppinfra/asm_mips.h
 [ snip ]
1.0.0/build-data/../src/vppinfra/random_buffer.h
'/home/jdl/workspace/ngr-rpms/build_root/BUILD/vpp/build-
root/rpm/vpp-1.0.0/build-root/install-vpp-native/vpp/include/vppinfra'

Not just vppinfra, other things (like vpctl) as well.

Somehow skipped an install dependency?  So, a Makefile difference
or make thing?  Missing .PHONY or explicit dependency needed?
I appear to be running

    jdl@localhost $ make -v
    GNU Make 3.82
    Built for x86_64-redhat-linux-gnu

on both (good build, bad build) systems.

Which led to an interesting experiment.  I turned the -j ability
completely off on my build that has been working.  Now serialized,
it too fails in the same way.

I think it is exposing a missing dependency between an install
step, which needs to be completed, before this ssvm relink effort.

Or maybe *within* the install step, it has to be sequenced properly.

jdl
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to