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

Reply via email to