On Thu, Jan 12, 2017 at 5:09 PM, Burt Silverman <bur...@gmail.com> wrote:
> Hi Jon, > > I have a conjecture. It is based on some experiences with previous > projects I have worked on. I need to test this out before stating anything > definite, but I will give you a heads up on what I will try experimentally, > in case you wish to try it yourself. Consider the .am files in directory > vpp/src, and look for any libraries that have a term ending in LIBADD. My > experiment will be to comment out the ...LIBADD terms. If all goes well, > the libraries that I am not adding via LIBADD are already added to the > final binaries using LDADD. Otherwise I will see a build failure on ANY > machine I try to build on. > > If we get lucky, this is a problem I have wrestled with for 8 years. > Unfortunately, in 8 years, I have not come up with a concise statement that > points to when there is a failure. But I can say that it has exhibited an > "almost random" effect in terms of build failures. Without a clear, concise > statement and understanding, I am sticking my neck out. The worst case is > "back to the drawing board." > > Once I have a chance to try this, I will only be able to say whether or > not I am breaking the build. If I don't break the build, then your machine > will be the place where we know if I have accomplished anything useful. > > Later, > > Burt > Hi Burt, In a word, "Ick." :-) OK, so I know that the rule that fails is this one from .../vpp/build-root/build-vpp-native/vpp/Makefile: install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo "---------- Woah -----------"; \ echo "List is $(lib_LTLIBRARIES)"; \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $\ (INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTAL\ L) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } My theory was there was an internal ordering problem within the $(lib_LTLIBRARIES), but vppinfra is not in that list: make[4]: Entering directory `/home/jdl/workspace/vpp/build-root/build-vpp-native/vpp' ---------- Woah ----------- List is libsvm.la libsvmdb.la libvlib.la libvlibapi.la libvlibmemory.la libvlibmemoryclient.la libvlibsocket.la libvatplugin.la /usr/bin/mkdir -p '/home/jdl/workspace/vpp/build-root/install-vpp-native/vpp/lib64' /bin/sh ./libtool --mode=install /usr/bin/install -c libsvm.la libsvmdb.la libvlib.la libvlibapi.la libvlibmemory.la libvlibmemoryclient.la libvlibsocket.la libvatplugin.la '/home/jdl/workspace/vpp/build-root/install-vpp-native/vpp/lib64' libtool: install: warning: relinking `libsvm.la' 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 ) /usr/bin/ld: cannot find -lvppinfra What defines an entry in the $(lib_LTLIBRARIES) set? What rule should have installed vppinfra prior to this one? Is there a different set of libraries that should be completely installed prior to these LTLIBRARIES? More digging, jdl
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev