Opened 8 years ago
Closed 7 years ago
#14410 closed defect (fixed)
Let ATLAS build shared libraries on Cygwin
Reported by: | jpflori | Owned by: | tbd |
---|---|---|---|
Priority: | major | Milestone: | sage-5.13 |
Component: | porting: Cygwin | Keywords: | atlas spkg cygwin |
Cc: | kcrisman, dimpase, vbraun | Merged in: | sage-5.13.beta5 |
Authors: | Jean-Pierre Flori | Reviewers: | Volker Braun, Jeroen Demeyer |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | #14754, #15270 | Stopgaps: |
Description (last modified by )
Currently ATLAS build static libraries without problems on Cygwin, but the autotools build system crafted by Volker which uses libtool fail to repackage them into shared one. Indeed:
- on usual platforms libtool already rants that it should not pack non-libtool objects (extracted from the static libs) together.
- on Cygwin it just refuses to do so, and I could not find a flag to get the usual behavior (i.e. "rant but do it").
The solution is to replace the libtool invokations by direct invocations to gcc and gfortran (or even ld if you feel adventurous). See http://trac.sagemath.org/sage_trac/ticket/10508#comment:392
Use:
This also allows building ATLAS by default on Cygwin.
Attachments (1)
Change History (27)
comment:1 Changed 8 years ago by
- Dependencies set to #10508
comment:2 Changed 8 years ago by
- Description modified (diff)
comment:3 Changed 8 years ago by
- Dependencies changed from #10508 to #14754
comment:4 Changed 8 years ago by
- Description modified (diff)
- Summary changed from Let ATLAS build shared libraries on Cygwin and install static libraries to Let ATLAS build shared libraries on Cygwin
comment:5 Changed 8 years ago by
- Milestone changed from sage-5.11 to sage-5.12
comment:6 Changed 7 years ago by
- Cc dimpase vbraun added
- Description modified (diff)
- Status changed from new to needs_review
comment:7 Changed 7 years ago by
comment:8 Changed 7 years ago by
- Description modified (diff)
SAGE_ATLAS_LIB should be ok on Cygwin as well now...
comment:9 follow-up: ↓ 10 Changed 7 years ago by
Why are you moving the build dir into src? The whole point of a separate build dir is to keep it separate from the sources.
If you really want to build ATLAS by default on Cygwin then get rid of the "if False". Don't leave crap lying around after you are finished ;-)
comment:10 in reply to: ↑ 9 ; follow-up: ↓ 11 Changed 7 years ago by
Replying to vbraun:
Why are you moving the build dir into src? The whole point of a separate build dir is to keep it separate from the sources.
Hum, don't really know. I wanted to get something consistent with how the ATLAS-lib dir is treated so I made a choice between:
- moving ATLAS-build to the (first level of) src,
- making a copy of ATLAS-lib below src before building the autotools project,
- making something more sensible and more complicated.
If you really want to build ATLAS by default on Cygwin then get rid of the "if False". Don't leave crap lying around after you are finished ;-)
I also hesitated, but I think keeping it in the spkg-install script, either as dead code or as a comment, cannot hurt. You can argue that it is saved into the hg history anyway.
comment:11 in reply to: ↑ 10 Changed 7 years ago by
Replying to jpflori:
I also hesitated, but I think keeping it in the spkg-install script, either as dead code or as a comment, cannot hurt.
It can, e.g. the next person might think that you really wanted to enable that but could not at that time for some unknown reason...
comment:12 Changed 7 years ago by
Spkg updated at the same address.
comment:13 Changed 7 years ago by
- Reviewers set to Volker Braun
- Status changed from needs_review to positive_review
Thanks. But "therefore" means "for that reason; consequently" and not "before that".
On a practical level, I don't think Jeroen is going to merge this before the git switch. Spkg changes might need to be manually converted to git branches...
comment:14 Changed 7 years ago by
- Status changed from positive_review to needs_work
spkg-check
doesn't work:
... Successfully installed atlas-3.10.1.p6 Running the test suite for atlas-3.10.1.p6... ./spkg-check: line 38: cd: ATLAS-build: No such file or directory
comment:15 Changed 7 years ago by
Also, the spkg needs to be rebased to #15270.
comment:16 Changed 7 years ago by
- Dependencies changed from #14754 to #14754, #15270
comment:17 Changed 7 years ago by
- Description modified (diff)
- Status changed from needs_work to needs_review
Rebased on top of #15270 and revamped spkg-check.
comment:18 Changed 7 years ago by
For the record this should only:
- fix a bug in spkg-install which thought that the serial shared libraries were built even when not and so left the sage install without any ATLAS libraries,
- let ATLAS build on Cygwin without any impact on other systems,
- clean spkg-check.
So this is not so intrusive for usual systems and I wouldn't mind that Jeroen includes it in 5.13 if it's not too late (as the two other easy and (hopefully) Cygwin-only spkg fixes at #15365 and #15366).
comment:19 Changed 7 years ago by
- Status changed from needs_review to positive_review
I think the general policy is not to merge new spkgs late in the beta cycle, but I'll let Jeroen decide on that ;-)
comment:20 Changed 7 years ago by
- Status changed from positive_review to needs_work
The Changelog inside SPKG.txt
is wrong:
=== atlas-3.10.1.p6, lapack-3.4.2 (Volker Braun, 11 October 2013) === * Trac #15270: Do not give up if the upstream shared library build fails * Solaris / ZFS fixes === atlas-3.10.1.p6, lapack-3.4.2 (Jean-Pierre Flori, 7 November 2013) === * Trac #14410: Let ATLAS build and install shared libraries on Cygwin. * Bunch of modifications to the autotools project generating shared libraries so that it does not invoke libtool on Cygwin. * Fix a bug in spkg-install.
These two entries should be switched and the version number (atlas-3.10.1.p7) corrected.
comment:21 Changed 7 years ago by
Yup, I'm quite sure I did it, but as I screwed up later on and had to reapply other changes i guess I forgot to correct that again.
comment:22 Changed 7 years ago by
- Status changed from needs_work to needs_review
Should be ok now...
comment:23 Changed 7 years ago by
- Status changed from needs_review to needs_work
make check does not work.
comment:24 Changed 7 years ago by
- Status changed from needs_work to needs_review
Ok, fixed and tested this time.
comment:25 Changed 7 years ago by
Tested (SPKG_CHECK=yes) with success on Solaris as well.
comment:26 Changed 7 years ago by
- Merged in set to sage-5.13.beta5
- Resolution set to fixed
- Reviewers changed from Volker Braun to Volker Braun, Jeroen Demeyer
- Status changed from needs_review to closed
More or less tested on debian/ubuntu and cygwin(32).