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

--- Comment #11 from Jan Beich <jbe...@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.
_______________________________________________
freebsd-python@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-python
To unsubscribe, send any mail to "freebsd-python-unsubscr...@freebsd.org"

Reply via email to