This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: ld goes into infinite loop
- From: "H . J . Lu" <hjl at lucon dot org>
- To: "Berk, Murat" <Murat_Berk at bmc dot com>
- Cc: "'binutils at sources dot redhat dot com'" <binutils at sources dot redhat dot com>
- Date: Sat, 24 Nov 2001 09:28:26 -0800
- Subject: Re: ld goes into infinite loop
- References: <CDC5FB5947D3D3119E2D00A0C9B6AF2D04A01461@es06-hou.bmc.com>
On Sat, Nov 24, 2001 at 05:04:51AM -0600, Berk, Murat wrote:
> I partially solved the problem. I made the fully inlined class non-inline.
>
> class OSS_WorkTask : public OSS_Task
> {
> ...
> }
>
> So it makes the following entires not to be exported from the shared
> libraries
> which has classes derived from OSS_WorkTask.
>
> __tf12OSS_WorkTask;
> __ti12OSS_WorkTask;
> __vt_12OSS_WorkTask;
>
> or after c++filt
> OSS_WorkTask type_info function;
> OSS_WorkTask type_info node;
> OSS_WorkTask virtual table;
>
> This prevents linker going into infinte loop when more than 2 shared
> libraries used (which had the above entires) to create a new shared library.
>
> All shared library version scripts are in the form
>
> VERSION {
> VERS_7.1 {
> global:
> __tf12OSS_WorkTask;
> __ti12OSS_WorkTask;
> __vt_12OSS_WorkTask;
> .... a lot of more entries (~2500)
> local:
> *;
> };
> }
>
> I do not know how can I reproduce it into a smaller testcase.
>
>
I believe you did see a linker bug. But if we can't reproduce it, I am
afraid there is very little we can help you.
H.J.