[Bug 227939] devel/boost-python-libs vs ctypes.util.find_library

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Sep 11 10:34:15 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227939

--- Comment #11 from Jan Beich <jbeich at FreeBSD.org> ---
(In reply to Wiktor Niesiobedzki from comment #9)
> another strategy available on Linux - invoking gcc in trace mode and extracting library path from there.

Why Python cannot use dlinfo()?

$ cat a.c
#define _GNU_SOURCE
#include <dlfcn.h>
#include <link.h>
#include <stdio.h>

int main()
{
  void *boost, *python;
  struct link_map *map;

  /* libboost_python assumes libpython is preloaded by Python interpreter */
  if (!(python = dlopen("libpython3.6m.so", RTLD_LAZY | RTLD_GLOBAL))) {
    printf("dlopen(python) failed\n");
    return 1;
  }

  if (!(boost = dlopen("libboost_python36.so", RTLD_LAZY))) {
    printf("dlopen(boost) failed\n");
    return 1;
  }
  dlinfo(boost, RTLD_DI_LINKMAP, &map);
  dlclose(boost);
  dlclose(python);

  printf("%s\n", map->l_name);

  return 0;
}

$ cc -ldl a.c
$ ./a.out
/usr/local/lib/libboost_python36.so

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.


More information about the freebsd-python mailing list