Date: Sat, 3 Nov 2018 17:58:17 +0200 From: Daniel Braniss <danny@cs.huji.ac.il> To: Dimitry Andric <dim@FreeBSD.org> Cc: freebsd-hackers@FreeBSD.org Subject: Re: help with dl module and clang Message-ID: <2E58B6A3-B3E4-4266-9B40-5F3D64433460@cs.huji.ac.il> In-Reply-To: <E3B4CDF3-2DE9-4785-963C-9158105C263E@FreeBSD.org> References: <4B8101F4-9A89-4486-8DF3-93DC799EF6D4@cs.huji.ac.il> <E3B4CDF3-2DE9-4785-963C-9158105C263E@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> On 3 Nov 2018, at 17:47, Dimitry Andric <dim@FreeBSD.org> wrote: >=20 > On 3 Nov 2018, at 15:51, Daniel Braniss <danny@cs.huji.ac.il> wrote: >>=20 >> 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. >>=20 >> 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 =E2=80=A6 >> BTW, when linking the main program with cc I get >> /usr/bin/ld: warning: cannot find entry symbol xport-dynamic; = defaulting to 0000000000402140 >=20 > 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. >=20 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. >=20 > -Dimitry >=20
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2E58B6A3-B3E4-4266-9B40-5F3D64433460>