Ticket #4080 (closed defect: fixed)

Opened 5 years ago

Last modified 5 years ago

[with patch, positive review] Symbol clash between global M4RI and PolyBoRi's M4RI

Reported by: malb Owned by: malb
Priority: blocker Milestone: sage-3.1.2
Component: misc Keywords: sigsegv
Cc: PolyBoRi Work issues:
Report Upstream: Reviewers:
Authors: Merged in:
Dependencies: Stopgaps:

Description

PolyBoRi? uses its own M4RI instance which is older than the version of M4RI which is going to be in Sage 3.1.2. Since M4RI is written in C there are no namespaces and thus the symbols clash, even though both versions are binary incompatible. A workaround for now -- until PolyBoRi? is updated -- is to delay the import of sage.rings.pbring after the import of sage.matrix.matrix_mod2_dense. Since PolyBoRi? is statically linked for now anyway, this shouldn't mess up things. However this is a dirty workaround

Attachments

pbimport.patch Download (2.5 KB) - added by malb 5 years ago.

Change History

Changed 5 years ago by malb

comment:1 Changed 5 years ago by malb

btw. this patch can remain applied and does not need to be reverted once the issue at hand is fixed. This is, because it is a good idea to late import more stuff anyway.

comment:2 Changed 5 years ago by mabshoff

  • Summary changed from [with patch, needs review] Symbol clash between global M4RI and PolyBoRi's M4RI to [with patch, positive review] Symbol clash between global M4RI and PolyBoRi's M4RI

The patch is good, it fixes the issue on OSX and does pass doctests on Linux. Positive review.

Cheers,

Michael

comment:3 Changed 5 years ago by mabshoff

  • Status changed from new to closed
  • Resolution set to fixed

Merged in Sage 3.1.2.rc1

Note: See TracTickets for help on using tickets.