Skip to content
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

Let ATLAS build shared libraries on Cygwin #14410

Closed
jpflori opened this issue Apr 4, 2013 · 31 comments
Closed

Let ATLAS build shared libraries on Cygwin #14410

jpflori opened this issue Apr 4, 2013 · 31 comments

Comments

@jpflori
Copy link

jpflori commented Apr 4, 2013

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 #10508 comment:392

Use:

This also allows building ATLAS by default on Cygwin.

Depends on #14754
Depends on #15270

CC: @kcrisman @dimpase @vbraun

Component: porting: Cygwin

Keywords: atlas spkg cygwin

Author: Jean-Pierre Flori

Reviewer: Volker Braun, Jeroen Demeyer

Merged: sage-5.13.beta5

Issue created by migration from https://trac.sagemath.org/ticket/14410

@jpflori jpflori added this to the sage-5.11 milestone Apr 4, 2013
@jpflori
Copy link
Author

jpflori commented Apr 4, 2013

Dependencies: #10508

@jpflori

This comment has been minimized.

@jdemeyer
Copy link

Changed dependencies from #10508 to #14754

@jpflori

This comment has been minimized.

@jpflori jpflori changed the title Let ATLAS build shared libraries on Cygwin and install static libraries Let ATLAS build shared libraries on Cygwin Jun 18, 2013
@jdemeyer jdemeyer modified the milestones: sage-5.11, sage-5.12 Aug 13, 2013
@jpflori

This comment has been minimized.

@jpflori
Copy link
Author

jpflori commented Nov 7, 2013

Author: Jean-Pierre Flori

@jpflori
Copy link
Author

jpflori commented Nov 7, 2013

comment:7

More or less tested on debian/ubuntu and cygwin(32).

@jpflori
Copy link
Author

jpflori commented Nov 7, 2013

Spkg diff, for review only.

@jpflori

This comment has been minimized.

@jpflori
Copy link
Author

jpflori commented Nov 7, 2013

comment:8

Attachment: atlas-3.10.1.p6.diff.gz

SAGE_ATLAS_LIB should be ok on Cygwin as well now...

@vbraun
Copy link
Member

vbraun commented Nov 18, 2013

comment:9

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 ;-)

@jpflori
Copy link
Author

jpflori commented Nov 18, 2013

comment:10

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.

@vbraun
Copy link
Member

vbraun commented Nov 20, 2013

comment:11

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...

@jpflori
Copy link
Author

jpflori commented Nov 20, 2013

comment:12

Spkg updated at the same address.

@vbraun
Copy link
Member

vbraun commented Nov 21, 2013

Reviewer: Volker Braun

@vbraun
Copy link
Member

vbraun commented Nov 21, 2013

comment:13

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...

@jdemeyer
Copy link

comment:14

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

@jdemeyer
Copy link

comment:15

Also, the spkg needs to be rebased to #15270.

@jdemeyer
Copy link

Changed dependencies from #14754 to #14754, #15270

@jpflori
Copy link
Author

jpflori commented Nov 25, 2013

comment:17

Rebased on top of #15270 and revamped spkg-check.

@jpflori

This comment has been minimized.

@jpflori
Copy link
Author

jpflori commented Nov 25, 2013

comment:18

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 Let MPIR build without C++ support on Cygwin #15365 and cyggcc_s.dll causes Python random segfaults #15366).

@vbraun
Copy link
Member

vbraun commented Nov 25, 2013

comment:19

I think the general policy is not to merge new spkgs late in the beta cycle, but I'll let Jeroen decide on that ;-)

@jdemeyer
Copy link

comment:20

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.

@jpflori
Copy link
Author

jpflori commented Nov 26, 2013

comment:21

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.

@jpflori
Copy link
Author

jpflori commented Nov 26, 2013

comment:22

Should be ok now...

@jpflori
Copy link
Author

jpflori commented Nov 26, 2013

comment:23

make check does not work.

@jpflori
Copy link
Author

jpflori commented Nov 26, 2013

comment:24

Ok, fixed and tested this time.

@jpflori
Copy link
Author

jpflori commented Nov 28, 2013

comment:25

Tested (SPKG_CHECK=yes) with success on Solaris as well.

@jdemeyer
Copy link

jdemeyer commented Dec 5, 2013

Merged: sage-5.13.beta5

@jdemeyer
Copy link

jdemeyer commented Dec 5, 2013

Changed reviewer from Volker Braun to Volker Braun, Jeroen Demeyer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants