Date: Sat, 3 Nov 2018 18:35:08 +0200 From: Konstantin Belousov <kostikbel@gmail.com> To: Daniel Braniss <danny@cs.huji.ac.il> Cc: Dimitry Andric <dim@FreeBSD.org>, freebsd-hackers@FreeBSD.org Subject: Re: help with dl module and clang Message-ID: <20181103163508.GS5335@kib.kiev.ua> In-Reply-To: <08A14290-0A6E-4002-892E-D4254EB23076@cs.huji.ac.il> References: <4B8101F4-9A89-4486-8DF3-93DC799EF6D4@cs.huji.ac.il> <E3B4CDF3-2DE9-4785-963C-9158105C263E@FreeBSD.org> <2E58B6A3-B3E4-4266-9B40-5F3D64433460@cs.huji.ac.il> <08A14290-0A6E-4002-892E-D4254EB23076@cs.huji.ac.il>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Nov 03, 2018 at 06:11:19PM +0200, Daniel Braniss wrote: > > > > On 3 Nov 2018, at 17:58, Daniel Braniss <danny@cs.huji.ac.il> wrote: > > > > > > > >> On 3 Nov 2018, at 17:47, Dimitry Andric <dim@FreeBSD.org> wrote: > >> > >> On 3 Nov 2018, at 15:51, Daniel Braniss <danny@cs.huji.ac.il> wrote: > >>> > >>> I have a program that loads some modules via dlopen(), these modules call some routines > >>> which are in the main program, this works when using gcc, but with cc it does not. > >>> > >>> when compiling the main program I use -export-dynamic, and the modules link fine when compiled with > >>> gcc, but when compiling with clang/cc i get dlerror: ...Undefined symbol … > >>> BTW, when linking the main program with cc I get > >>> /usr/bin/ld: warning: cannot find entry symbol xport-dynamic; defaulting to 0000000000402140 > >> > >> Instead of using -export-dynamic (which is a linker flag) as a flag to > >> cc, try using -Wl,-export-dynamic instead. Now, the linker interprets > >> this as the -e flag, which is something totally different. > >> > > > > i had tried that before but i had -WI (upper case i) but re-reading the manual > > it should be-Wl (lower case l as in lima :-))!!!!! > > > > thanks!!!!!! > > > > and now have to try profiling (gprof) which started this mess, > > > > thanks again!! > > > > danny > > > > > >> I think this will also help with the exporting of the symbols of your > >> main program. > >> > >> -Dimitry > >> > > > ok, new problem, it also happens with gcc: > > when compiling the main program with flag -pg (gprof) > dlopen fails with dlerror: Service unavailable This means that your binary is linked statically. dlopen(3) is not supported for static linking, ld-elf.so.1 is required for dynamic loading to work. > > what magic is needed now? > > danny > > > _______________________________________________ > > freebsd-hackers@freebsd.org mailing list > > https://lists.freebsd.org/mailman/listinfo/freebsd-hackers > > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" > > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20181103163508.GS5335>