-
-
Notifications
You must be signed in to change notification settings - Fork 561
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
eclib does not build on Cygwin #13325
Comments
Attachment: 13325.patch.gz Spkg diff, for review only. |
Author: Jean-Pierre Flori |
comment:1
Updated spkg available at: Although I'd prefer package an updated upstream version including such fixes. |
This comment has been minimized.
This comment has been minimized.
comment:2
Hmmm, the 13325.patch file I uploaded is not the one I planned to. |
comment:3
The current spkg does not build yet. |
comment:4
It is certainly preferable for the eclib source (build system) to be changed so we do not need to patch it. I have some other suggested changes to the build system from a debian developer -- it would be very helpful if someone else could look at those too. I am travelling at the moment and will not be able to think about this properly for the next 2+ weeks. |
comment:5
That's because a static version of libpari is used. Using the shared one (by copying libpari.dll to libpari.dll.a) solves the problem. |
Work Issues: wait for official update of the build system; fix pari problem (new spkg?) |
Changed upstream from Not yet reported upstream; Will do shortly. to Workaround found; Bug reported upstream. |
comment:7
Another question to John: |
comment:8
Apparently pari creates a libpari.dll.a file but I guess Sage does not correctly copy it. Have to have a look to pari spkg install script... |
comment:9
The spkg does not work for me; I get
By the way, did I have to install a different PARI spkg, too? |
comment:10
Yes you have to somehow tweak PARI to let d2 build. The quickest hack is to copy libpari.dll to libpari.dll.a. However I'd prefer to copy the proper import file dll.a ggenerated by PARI when it's build. And I'd prefer such a fix to be included in PARI itself rather than in a Sage spkg. |
comment:11
Replying to @jpflori:
there are 2 files named libpari.dll in SAGELOCAL. One in bin/, and another in lib/... And, by the way, how would it help the problem of |
comment:12
I never said they were archive files... I said that when linking the linker finds libpari.a BEFORE libpari.dll. From now on, lets suppose we live in the lib directory and forget about the bin one which is not of interest for our purposes. So a hack consists in making sure that the linker find libpari.dll BEFORE libpari.a. Or we could explicitely tell the linker to use libpari.dll, rather than just passing -lpari, but that needs more work. |
comment:13
The point is that if you link to the dll rather than the archive file, ld won't complain, which is quite understandable because the _roots function from libpari is not needed nor called directly from eclib (and how could it be anyway as theres a function called so in eclib itself). If you link archive files together, ar will try to put everything from pari and from eclib in one file, in particular it will have some trouble putting to functions with the same name in that one file. |
comment:14
I'm very sorry this is calling you trouble, as I hardly use libpari at all (in eclib), literally only for integer factorization. I am planning an upgrade to eclib which will make FLINT a dependency, in which case I might use FLINT for integer factorization instead. But not very soon. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:17
The -no-undefined flag should also be passed to libtool so that a shared library gets built on Cygwin. |
This comment has been minimized.
This comment has been minimized.
Spkg diff, for review only. Not committed in spkg. |
comment:18
Attachment: eclib.patch.gz Updated spkg at the same url adding the -no-undefined flag. |
comment:105
Don't worry, your hg history is not included in the dist tarball anyway, so it does not hurt here at all. In fact you should tag a release after committing your changes: it will more or less create a new special commit telling that the previous one (you can also give an explicit commit number IIRC) corresponds to such release. |
comment:106
Hopefully last remark on the new build system. |
comment:107
Ok, I guess that's just because the Automake magic check build of the test programs (which is before in the Makefile) is treated by make after the one you defined which builds the programs (which is fortunate) and then tests them. |
comment:108
Replying to @jpflori:
I am glad that is your conclusion, as I thought this was harmless and it's not too obvious how to avoid it. As you say, the created Makefile does things which have already been done by my manual targets. Let's leave it. |
This comment has been minimized.
This comment has been minimized.
Changed work issues from Repackage 2012-08-30 version to none |
comment:109
I can confirm the updated eclib version passes all its tests in a 32 bits Ubuntu 12.04 virtual machine (inside a 64 bits Ubuntu 12.04). Updated spkg at |
Spkg diff, for review only. Committed in spkg. |
comment:110
Attachment: eclib-20120830.patch.gz Now with updated SPKG.txt |
This comment has been minimized.
This comment has been minimized.
comment:112
This works on Cygwin on XP! |
comment:113
Please let's get this in. I can't currently test it on Win 7, but maybe if I quick do a thing on Mac later, that would be ok. Definitely needed on Cygwin. |
comment:114
What needs to be done before there's a positive review? More checking on Cygwin (which I cannot help with) or what? Do we need more people to test jpflori's spkg on other architectures? |
comment:115
This works on Mac. John, could you check on some kind of Linux? I think that's enough for positive review. Then the buildbot should do the rest once Jeroen merges this... |
comment:116
It is ok on Windows 7. I don't think "testing" on "exotic" (let's say non linux) architecture is still needed. |
comment:117
Replying to @kcrisman:
Testing the spkg on 5.4.1 on linux (64-bit ubuntu), will report back. |
This comment has been minimized.
This comment has been minimized.
comment:118
Replying to @JohnCremona:
Nor testing on Linux, but that won't hurt :) What I think really matters is for someone to look at attachment: trac_13325.patch and say "ok, this makes sense, let's merge this". I think that even John could put himself as reviewer here as he worked on the "upstream" side of this ticket (and I agree with all the great work he did if he needs some approbation on his side). |
Reviewer: John Cremona |
comment:119
I have looked at trac_13325.patch and I say "ok, this makes sense, let's merge this". I have also applied (built) the new spkg and tested the whole library, with no problems. This was on 64-bit ubuntu linux. Given this, ans all the commnets above, I am taking the liberty of marking this as "positive review" and hope that buildbots will agree. I hope they are capable of both building the new spkgs and applying the patch, since doing just one will definitely not work. |
This comment has been minimized.
This comment has been minimized.
Merged: sage-5.6.beta0 |
There are two problems with the current spkg on Cygwin:
All of this is fixed in the 2012-08-30 upstream release.
Apply:
Depends on #13333
Upstream: Fixed upstream, in a later stable release.
CC: @kcrisman @dimpase @JohnCremona @vbraun
Component: porting: Cygwin
Keywords: eclib spkg cygwin
Author: Jean-Pierre Flori
Reviewer: John Cremona
Merged: sage-5.6.beta0
Issue created by migration from https://trac.sagemath.org/ticket/13325
The text was updated successfully, but these errors were encountered: