On Wed, Jan 11, 2017 at 4:45 PM, Burt Silverman <[email protected]> wrote:
> I don't have a great answer, but this is something I would try.
>
Thanks.
> If you have a clean git repository, with no local uncommitted modifications
>
This is a clean git checkout and build. My top-of-tree is VPP's
top-of-tree.
No local files. Clean git repo checkout. My build is currently this
(from an RPM spec file):
%setup -T -c -n %{name}
git clone %{vpp_repo} %{vpp_builddir}
%build
make bootstrap
make build-release
make pkg-rpm
The "make install-dep" has already been performed on this machine.
>
>> I am able to build VPP on an entirely different system though.
>> So it seems like there is some variability in its success rate.
>>
>
Like I said, I'm able to build this repo on a different system.
It's just on this new CentOS VM that things go south.
> Is it possible that there is a missing dependency and the "-j" is
>> effectively causing it to want libvppinfra before it is available?
>>
>
Burt Says:
> but this line
>
> /usr/bin/ld: cannot find -lvppinfra
>
> looks like it's coming from the old style build.
So, this is classically some form of library location using some
combination of -L, -l, rpath, DESTDIR-style options. Another
classic issue might be ld config related. The other option that
I think might be at work here is that it is timing related due to
the use of -j and parallel builds. Timing could be different on
computers with different CPU abilities; specifically the library
might not actually be available at the requested link time.
Dunno.
Yet.
> So follow Dave Barach's procedure and clean up.
This isn't a "clean/unclean" issue unless the repo itself has
files that, when checked out, pollute the build environment.
The missing -lvppinfra *is* the first error indication.
Should that library be built twice? The overall sequence I see is:
During "bootstrap", run config, dump options, build vppinfra,
libtool and install a few things.
The, during build-release, it downloads and builds DPDK,
it runs config again, and, ah... lookie here... says this:
== Build app/pdump
CC main.o
LD dpdk-pdump
INSTALL-APP dpdk-pdump
INSTALL-MAP dpdk-pdump.map
Build complete [x86_64-nhm-linuxapp-gcc]
Installation cannot run with T defined and DESTDIR undefined
make[4]: Leaving directory
`/home/jdl/ngr-rpms/build_root/BUILD/vpp/build-root/build-vpp-native/dpdk/dpdk-16.11'
It then dumps the config options again, rebuilds vppinfra, vnet, APIs, etc.
does the slowest CCLDs on the planet, JARs-up some Java, and it
then relinks libsvm.la and libvnet.la. I think it is one of these that
causes
the missing -lvppinfra problem.
I think this says libvnet finishes:
po/load_balance_map.lo vnet/dpo/lookup_dpo.lo vnet/dpo/classify_dpo.lo
vnet/dpo/mpls_label_dpo.lo libvppinfra.la libsvm.la -lcrypto )
/usr/bin/ld: cannot find -lvppinfra
collect2: error: ld returned 1 exit status
libtool: install: error: relink `libsvm.la' with the above command before
installing it
make[6]: *** [install-libLTLIBRARIES] Error 1
make[6]: *** Waiting for unfinished jobs....
libtool: install: /usr/bin/install -c .libs/libvnet.so.0.0.0T
/home/jdl/ngr-rpms/build_root/BUILD/vpp/build-root/install-vpp-native/vpp/lib64/libvnet.so.0.0.0
libtool: install: (cd
/home/jdl/ngr-rpms/build_root/BUILD/vpp/build-root/install-vpp-native/vpp/lib64
&& { ln -s -f libvnet.so.0.0.0 libvnet.so.0 || { rm -f libvnet.so.0 && ln
-s libvnet.so.0.0.0 libvnet.so.0; }; })
If it helps, the wrap-up context looks like this:
make[6]: Leaving directory
`/home/jdl/ngr-rpms/build_root/BUILD/vpp/build-root/build-vpp-native/vpp'
make[5]: *** [install-am] Error 2
make[5]: Leaving directory
`/home/jdl/ngr-rpms/build_root/BUILD/vpp/build-root/build-vpp-native/vpp'
make[4]: *** [install-recursive] Error 1
make[4]: Leaving directory
`/home/jdl/ngr-rpms/build_root/BUILD/vpp/build-root/build-vpp-native/vpp'
make[3]: *** [install] Error 2
make[3]: Leaving directory
`/home/jdl/ngr-rpms/build_root/BUILD/vpp/build-root/build-vpp-native/vpp'
make[2]: *** [vpp-install] Error 2
make[2]: Leaving directory
`/home/jdl/ngr-rpms/build_root/BUILD/vpp/build-root'
make[1]: *** [build-release] Error 2
make[1]: Leaving directory `/home/jdl/ngr-rpms/build_root/BUILD/vpp'
Thanks,
jdl
_______________________________________________
vpp-dev mailing list
[email protected]
https://lists.fd.io/mailman/listinfo/vpp-dev