[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: libcrypto++



* Florian Weimer:

> * Nathanael Nerode:
>
>> I'd be interested in working on tracking down the linking problems, but I 
>> don't want to duplicate your work.  Are your patches-so-far available 
>> somewhere?
>
> I think I've found the linking bug.  Details later.

The link problem is caused by code like this:

template <int I>
struct Foo
{
  virtual ~Foo();
};

template struct Foo<5>;

template <int I>
Foo<I>::~Foo()
{
}

int
main()
{
  return 0;
}

This worked with GCC 3.4, but doesn't with 4.0.  I pretty much doubt
that this code was legal.  The fix is straightforward: Remove the
explicit template instantiation, and make sure that the template
implementation is visible each time the template is instantiated
implicitly.

I'll prepare a patch.



Reply to: