#9167: Resolve ecl.dll conflict on Cygwin
-------------------------------------+-------------------------------------
Reporter: was | Owner: tbd
Type: defect | Status: closed
Priority: major | Milestone: sage-5.7
Component: porting: Cygwin | Resolution: fixed
Keywords: cygwin spkg ecl | Merged in: sage-5.7.beta1
Authors: Jean-Pierre Flori | Reviewers: Karl-Dieter Crisman,
Report Upstream: Reported | Jeroen Demeyer
upstream. No feedback yet. | Work issues:
Branch: | Commit:
Dependencies: #13324, #13860 | Stopgaps:
-------------------------------------+-------------------------------------
Description changed by jdemeyer:
Old description:
> Though the C-library interface to ECL builds on Cygwin, it does not work
> at all. All tests fail:
>
> {{{
> sage: import sage.libs.ecl
> ---------------------------------------------------------------------------
> ImportError Traceback (most recent call
> last)
>
> /home/wstein/sage-4.4.3/<ipython console> in <module>()
>
> ImportError: No such process
> sage:
> }}}
>
> The reason of this is a name clash: there are two different libraries
> called `ecl.dll`.
> One in `SAGE_LOCAL/lib/` and one in `SAGE_LOCAL/lib/python/site-
> packages/sage/libs/`.
> It is the second one whose importing fails because it should be linked to
> the first one, but `cygcheck` shows that this dependency is resolved to
> itself!
> This is of course dysfunctional, whence the import failure.
>
> The easiest solution would be to rename `sage/libs/ecl.pyx` to something
> else, thus avoiding a name clash.
> The solution proposed here is different and more indirect:
> Patch ECL build system so that it follows the name convention proposed by
> Cygwin.
> The shared library itself is now in `SAGE_LOCAL/bin/cygecl.dll`.
> In addition, an import file is created in `SAGE_LOCAL/lib/libecl.dll.a`.
>
> An updated spkg, based on the one in #13324, is available at
> [http://boxen.math.washington.edu/home/jpflori/ecl-12.12.1.p1.spkg]
New description:
Though the C-library interface to ECL builds on Cygwin, it does not work
at all. All tests fail:
{{{
sage: import sage.libs.ecl
---------------------------------------------------------------------------
ImportError Traceback (most recent call
last)
/home/wstein/sage-4.4.3/<ipython console> in <module>()
ImportError: No such process
sage:
}}}
The reason of this is a name clash: there are two different libraries
called `ecl.dll`.
One in `SAGE_LOCAL/lib/` and one in `SAGE_LOCAL/lib/python/site-
packages/sage/libs/`.
It is the second one whose importing fails because it should be linked to
the first one, but `cygcheck` shows that this dependency is resolved to
itself!
This is of course dysfunctional, whence the import failure.
The easiest solution would be to rename `sage/libs/ecl.pyx` to something
else, thus avoiding a name clash.
The solution proposed here is different and more indirect:
Patch ECL build system so that it follows the name convention proposed by
Cygwin.
The shared library itself is now in `SAGE_LOCAL/bin/cygecl.dll`.
In addition, an import file is created in `SAGE_LOCAL/lib/libecl.dll.a`.
An updated spkg, based on the one in #13324, is available at
[http://boxen.math.washington.edu/home/jpflori/ecl-12.12.1.p1.spkg]
'''Reported upstream''': https://gitlab.com/embeddable-common-
lisp/ecl/issues/235
--
--
Ticket URL: <http://trac.sagemath.org/ticket/9167#comment:129>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.