Dave,
With the advent of a compiling tree (hooray!), I've updated, rebuilt,
installed, and tried running all the C libraries and API pieces again.
Sadly, things are not working.
Very early in the bring-up of a C executable that is linked to VPP's
libraries
(vlibmemoryclient vlibapi svm vppinfra), it goes into the weeds trying to
load some statically configured CLI initialization functions dynamically:
That error looks like this:
Program received signal SIGSEGV, Segmentation fault.
__vlib_cli_command_registration_cli_show_api_histogram_command ()
at /..../vpp/src/vlibmemory/memory_vlib.c:727
727 VLIB_CLI_COMMAND (cli_show_api_histogram_command, static) = {
Missing separate debuginfos, use: debuginfo-install clixon-3.2-0.x86_64
(gdb) where
#0 __vlib_cli_command_registration_cli_show_api_histogram_command ()
at /..../vpp/src/vlibmemory/memory_vlib.c:727
#1 0x00007ffff7dec1e3 in call_init (env=0x7fffffffe3d0,
argv=0x7fffffffe398,
argc=6, l=<optimized out>) at dl-init.c:82
#2 _dl_init (main_map=main_map@entry=0x760790, argc=6, argv=0x7fffffffe398,
env=0x7fffffffe3d0) at dl-init.c:131
#3 0x00007ffff7df08f6 in dl_open_worker (a=a@entry=0x7fffffffde28)
at dl-open.c:560
#4 0x00007ffff7debff4 in _dl_catch_error (
objname=objname@entry=0x7fffffffde18,
errstring=errstring@entry=0x7fffffffde20,
mallocedp=mallocedp@entry=0x7fffffffde10,
operate=operate@entry=0x7ffff7df0540 <dl_open_worker>,
args=args@entry=0x7fffffffde28) at dl-error.c:177
#5 0x00007ffff7deffeb in _dl_open (
file=0x7ffff7ff3f20 "/....../vpp_backend.so",
mode=-2147483646, caller_dlopen=<optimized out>, nsid=-2, argc=6,
argv=0x7fffffffe398, env=0x7fffffffe3d0) at dl-open.c:650
As we are not using any aspect of the VPP project's actual CLI code,
there is no way we should be loading anything like a CLI command.
I suspect that this init data structure (line 727 of
src/vlibmemory/memory_vlib.c)
is incorrectly present in the API library due to some *other* symbol in
this object
file being referenced and dragging in the CLI init piece accidentally.
Here is line 727:
VLIB_CLI_COMMAND (cli_show_api_histogram_command, static) = {
.path = "show api histogram",
.short_help = "show api histogram",
.function = vl_api_show_histogram_command,
};
I have git bisected the introduction of this bad behavior to this commit:
80f54e20270ed0628ee725e3e3c515731a0188f2
Author: Dave Barach <[email protected]>
Date: Wed Mar 8 19:08:56 2017 -0500
vlib_mains == 0 special cases be gone
Clean up spurious binary API client link dependency on libvlib.so,
which managed to hide behind vlib_mains == 0 checks reached by
VLIB_xxx_FUNCTION macros.
Change-Id: I5df1f8ab07dca1944250e643ccf06e60a8462325
Signed-off-by: Dave Barach <[email protected]>
If no one beats me to it, I'll try to isolate it a bit more tomorrow.
Thanks,
jdl
_______________________________________________
vpp-dev mailing list
[email protected]
https://lists.fd.io/mailman/listinfo/vpp-dev