Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Nov 2018 18:11:19 +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:  <08A14290-0A6E-4002-892E-D4254EB23076@cs.huji.ac.il>
In-Reply-To: <2E58B6A3-B3E4-4266-9B40-5F3D64433460@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>

next in thread | previous in thread | raw e-mail | index | archive | help


> On 3 Nov 2018, at 17:58, Daniel Braniss <danny@cs.huji.ac.il> wrote:
>=20
>=20
>=20
>> 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
>=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 :-))!!!!!
>=20
> thanks!!!!!!
>=20
> and now have to try profiling (gprof) which started this mess,
>=20
> thanks again!!
>=20
> danny
>=20
>=20
>> I think this will also help with the exporting of the symbols of your
>> main program.
>>=20
>> -Dimitry
>>=20
>=20
ok, new problem, it also happens with gcc:

when compiling the main program with flag -pg (gprof)
dlopen fails with dlerror: Service unavailable

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"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?08A14290-0A6E-4002-892E-D4254EB23076>