Dear all,
Still trying to build Sage on Cygwin, I am now stuck with farey_symbol.pyx (in the Sage spkg).
Quite strangely, at linking time I get undefined references in farey.so to convert_to_* functions wich are available in farey_symbol.so (after fixing the undefined references to gmp functions IIRC).
I tried to tweak the order of the so files on the command lines but did not get more lucky.
I also thought it could be a function name mamgling issue, but trying to changing extern C to extern was not helpful either.
Could anyone give it a try? (Here is Cygwin 1.7.15 on Windows 7 64 bits, gcc/g++ 4.5.3)
That would be nice to confirm that it's not my installation which is completely broken.
I guess one could try this without building all spkg's (not sure what the dependencies really are), by running Cython on farey_symbol.pyx and then g++ on the three farey.cpp/farey_symbol.cpp/sl2z.cpp and then linking them with g++.
In fact I somehow solved the problem.
I think there is some black magic dll import/export stuff missing to let ld link the files together on Cygwin.
As a first solution, adding -Wl,--enable-auto-import to extra_compiler_flags in module_list.py seems to be sufficient to fix the problem.
This let the farey stuff compile.
Hopefully this will be the last step before Sage completely compiles, with obviously no guarantee that it actually starts afterward :)
A more proper fix could be to let Cython add _declspec(_dllimport) (approximate spelling...) to the produced header file, not sure about that.
On Thursday, 19 July 2012 07:35:15 UTC+8, Jean-Pierre Flori wrote:
In fact I somehow solved the problem.
I think there is some black magic dll import/export stuff missing to let ld link the files together on Cygwin.
As a first solution, adding -Wl,--enable-auto-import to extra_compiler_flags in module_list.py seems to be sufficient to fix the problem.As far as I recall, we did something like this to a number of packages already last year...This let the farey stuff compile.
Hopefully this will be the last step before Sage completely compiles, with obviously no guarantee that it actually starts afterward :)
A more proper fix could be to let Cython add _declspec(_dllimport) (approximate spelling...) to the produced header file, not sure about that.it could be the case. IMHO Cython is not tested on Cygwin, although I might be wrong there.Last time I checked (cygwin version 1.7.10 ?) Sage's Cythonbuilding dynamic modules, even very simple ones, did not work well due to Cygwinfork problems.Even now if I try easy_install cython on Cygwin, I get an error indicating that it has no idea about Cygwin, basically, complaining about absence of Microsoft's C compiler.
So the sage spkg built successfully, but there are other packaes left.
Gap fails with:
Error creating dummy 'gap.exe' and/or a link from 'gap' to it.
during configuration.
maybe the hack fromis no longer needed?
any BLODA on your machine, by any chance?
On Thursday, July 26, 2012 4:30:20 PM UTC+2, Dima Pasechnik wrote:any BLODA on your machine, by any chance?Nothing on the list there at least.
I also uninstalled some Lenovo stuff but Cygwin and MinGW are still quite slow.
Rebasing between the build and install stuff was enough to properly make Maxima.
Afterwards I had no further issue, except that Sage does not launch properly.
More precisely, the principal software interfaces work ok (singular, python, ipython, maxima, ecl, gap, sh), and can compute 1+1.
But somehow when launching the real sage interface ipython seems unable to locate the dll of the cython compiled module (although they are right in plac ein local/lib/python2.7/site-packages/sage/...).
Strange.
well, that's a typical for Cygwin mixup, when dll's are "libs", but actually for windows they are executables...I recall seeing something like this...The main failure is about importing current_randtest in sage;misc.randtest , but I guess this is because it is the first dll which gets loaded.
Then the prompt is kind of broken, but has apparently ipython working ok (it can compute 1+1).
As in #12104, libntl.dll could not be found.
Is it because it was moved rather than copied to libntl.dll.a in #9050?
--
--
To post to this group, send an email to sage-...@googlegroups.com
To unsubscribe from this group, send an email to sage-devel+...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org
I'm not using Windows, but I share your excitement :)
Charles
Tada!
not bad! So that startup crash where we were stuck last year apparently went away (Cygwin upgrade? Sage updates? Favourabledisposition of planets? :–)
Tada!Wow! And it computes? The 1+1 in Ipython would be an int, after all; is 1/2 = 0 or 1/2?
Also, did your Python build have any problems? I not only often had to rebase, but also there were some "bits" that never built - mostly harmless, but sage-gdb didn't work, which was bad. See earlier on the Cygwin port page :)
On Friday, July 27, 2012 4:15:10 PM UTC+2, kcrisman wrote:Tada!Wow! And it computes? The 1+1 in Ipython would be an int, after all; is 1/2 = 0 or 1/2?I was able to compute the cardinality on an elliptic curve over F_2003 and over F_p where p was next_prime(2^100) which should use PARI.
I kind of afraid of what a make ptestlong could output.
On Friday, 27 July 2012 22:33:55 UTC+8, Jean-Pierre Flori wrote:
On Friday, July 27, 2012 4:15:10 PM UTC+2, kcrisman wrote:Tada!Wow! And it computes? The 1+1 in Ipython would be an int, after all; is 1/2 = 0 or 1/2?I was able to compute the cardinality on an elliptic curve over F_2003 and over F_p where p was next_prime(2^100) which should use PARI.
I kind of afraid of what a make ptestlong could output.the crucial thing to see is whether we will see fork() failures.If not, we are in business. If yes, one might need to rebase all AND the dlls that were built with Sage,and try again...