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

Re: How to build compatible packages that use Eigen?



Dima Kogan <dkogan@debian.org> writes:

> Now let's say you have a user. They're writing a program that uses both
> libg2o and Eigen. They're writing their own application, not intended to
> go into Debian. So they build with -msse -mavx and all the other fun
> stuff. THEIR weak copies of "aligned_malloc" and "aligned_free" are
> different and incompatible with the copies in libg2o. And the
> application is then likely to crash because at least something somewhere
> will be allocated with one copy and deallocated with another.

Oy vey.

It might help to make Eigen's symbols local to your shared library; to
that end, I think it would work to feed the linker a version script
reading something along the lines of

{
     local:
         extern "C++" {
             Eigen::*;
         };
     global:
         *;
};

(or add such a local block to an existing version script).

-- 
Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org)
http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?amu@monk.mit.edu


Reply to: