Date: Sun, 14 Jun 2009 08:14:57 +0900 (JST) From: Maho NAKATA <chat95@mac.com> To: openoffice@freebsd.org Cc: kostikbel@gmail.com Subject: ld.so slight difference Linux and FreeBSD ports/127946 Message-ID: <20090614.081457.193757375.chat95@mac.com> In-Reply-To: <1244902235.49065.33.camel@localhost> References: <20090613.175239.193757216.chat95@mac.com> <20090613.211918.71168302.chat95@mac.com> <1244902235.49065.33.camel@localhost>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello Konstantin, and * We have a longstanding OpenOffice.org porting issue for FreeBSD. Strange crashes. So I'd like to ask you about following issue. http://www.openoffice.org/issues/show_bug.cgi?id=22253 . There are some small difference between ld.so implementation between FreeBSD and Linux. Here is the test program that identify the difference clearly. (it also applies to NetBSD) ------------------------------------------------ "dlsym() search _on_the_main_program_" i.e. the handle is not the dlopen()ed shared library itself, but the main program (which you get back with dlopen(NULL, RTLD_LAZY) ) I've modified your test program a bit: #include <stdio.h> #include <stdlib.h> #include <dlfcn.h> int main(int argc, char **argv) { void *handle, *handlemain; double (*cosine)(double); char *error; handle = dlopen ("libm.so", RTLD_LAZY|RTLD_GLOBAL); if (!handle) { fprintf (stderr, "%s\n", dlerror()); exit(1); } handlemain = dlopen(NULL, RTLD_LAZY); cosine = dlsym(handlemain, "cos"); if ((error = dlerror()) != NULL) { fprintf (stderr, "%s\n", error); exit(1); } printf ("%f\n", (*cosine)(2.0)); dlclose(handle); return 0; } On Linux: bash-2.05b$ ./a.out -0.416147 while on NetBSD: -bash-2.05b$ ./a.out Undefined symbol "cos" ------------------------------------------------ It seems that this is the root cause of some issues. http://www.openoffice.org/issues/show_bug.cgi?id=22253 http://www.openoffice.org/issues/show_bug.cgi?id=98781 maybe also http://www.freebsd.org/cgi/query-pr.cgi?pr=128176 It seems ld.so employs same mechanism between Linux and MacOSX. Could you please help me a bit? Thanks, -- Nakata Maho http://accc.riken.jp/maho/ , http://ja.openoffice.org/ Nakata Maho's PGP public keys: http://accc.riken.jp/maho/maho.pgp.txt
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090614.081457.193757375.chat95>