Compilation problem MSVC with recent 'sort' implementation

Michael Goffioul michael.goffioul at gmail.com
Sun Feb 3 08:16:01 CST 2008


On 2/3/08, Michael Goffioul <michael.goffioul at gmail.com> wrote:
> Unfortunately, this is not enough to make it compilable with
> MSVC. At link stage of liboctave, I get duplicated symbols
> error (see below). This seems logical to me to have duplicated
> symbols as Array-C.cc includes Array.cc and that the assign
> instantiation also instantiates Array<double>. However, as
> Array-d.cc also perform explicit specialization, I guess the
> compiler cannot determine which one it has to export in the
> DLL (I also wonder how gcc resolves this).
>
> I don't know how to handle this.

The attached patch solves the problem.

Michael.


liboctave/ChangeLog

2008-02-03  Michael Goffioul <michael.goffioul at gmail.com>

    * Array.cc (ascending_compare, descending_compare,
    Array<T>::sort): Declare explicit specialization for T=double
    to avoid symbol duplication error at link time.
    * Array-d.cc: ascending_compare and descending_compare
    are not part of Array<T> class.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Array_sort.diff
Url: https://www.cae.wisc.edu/pipermail/octave-maintainers/attachments/20080203/3d71acb4/attachment.ksh 


More information about the Octave-maintainers mailing list