ld goes into infinite loop

H . J . Lu hjl@lucon.org
Sat Nov 24 09:29:00 GMT 2001


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.



More information about the Binutils mailing list