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 <d...@barachs.net> 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 <d...@barachs.net> If no one beats me to it, I'll try to isolate it a bit more tomorrow. Thanks, jdl
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev