Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#11547 closed defect (fixed)

Copy needed dll to so files on Cygwin

Reported by: kcrisman Owned by: tbd
Priority: major Milestone: sage-4.7.2
Component: porting: Cygwin Keywords: cygwin FLINT NTL cliquer DLL shared library
Cc: dimpase, mhansen, leif Merged in: sage-4.7.2.alpha1
Authors: Mike Hansen, Karl-Dieter Crisman Reviewers: Dmitrii Pasechnik
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: #11246 Stopgaps:

Status badges

Description (last modified by kcrisman)

As was put on the wiki for Cygwin,

The following files need to be copied:
  "libcliquer.dll -> libcliquer.so", 
  "libflint.dll -> libflint.so",
  "libntl.dll.a -> libntl.dll"

See the comments for why the third one is dealt with at #11635.


Two spkg upgrades:

Attachments (3)

trac_11547-flint.diff (2.3 KB) - added by kcrisman 10 years ago.
For review purposes only
trac_11547-ntl.diff (1.5 KB) - added by kcrisman 10 years ago.
For review purposes only
trac_11547-cliquer.diff (1.2 KB) - added by kcrisman 10 years ago.
For review purposes only

Download all attachments as: .zip

Change History (21)

comment:1 Changed 10 years ago by kcrisman

  • Authors set to Mike Hansen

I'm going to put Mike as an "author" of this because the wiki revision history says he's the one who came up with this.

comment:2 Changed 10 years ago by kcrisman

  • Authors changed from Mike Hansen to Mike Hansen, Karl-Dieter Crisman
  • Description modified (diff)

comment:3 Changed 10 years ago by kcrisman

  • Dependencies set to #11246

Interestingly, both FLINT and cliquer spkgs currently make reference to needing to make dll's because they're on Windows... it looks like having both won't be a problem, but I wonder out loud whether in the long run we need only the so file.

Anyway, I'm making the spkgs so that they have both.


This will depend on #11246 in the sense that the flint spkg will be based upon it, though obviously there is nothing needed other than to directly upgrade.

comment:4 Changed 10 years ago by kcrisman

  • Cc dimpase mhansen added

I'm attaching a diff for the flint one (I may also need to do a second upgrade to flint for ntl, since on Cygwin we move certain ntl files out of the way and this would create another one). I used $CP -p instead of just cp because the rest of the script does that, but I'm confused as to what systems don't use cp for their copy - maybe some HP or IBM ones?

Changed 10 years ago by kcrisman

For review purposes only

comment:5 Changed 10 years ago by kcrisman

  • Description modified (diff)
  • Milestone set to sage-4.7.2

Changed 10 years ago by kcrisman

For review purposes only

comment:6 follow-up: Changed 10 years ago by kcrisman

  • Description modified (diff)
  • Status changed from new to needs_review

For now, it looks in the spkg-install for flint that it was only the libntl.a file that needed to be moved, not the libntl.dll.a file, so hopefully the libntl.dll file also won't need to be moved. This could be revisited if that didn't work, of course.


Otherwise ready for review, though I'm not assuming it will be immediately positive. That would be nice, though :)

comment:7 in reply to: ↑ 6 ; follow-up: Changed 10 years ago by dimpase

  • Status changed from needs_review to needs_info

Replying to kcrisman:

For now, it looks in the spkg-install for flint that it was only the libntl.a file that needed to be moved, not the libntl.dll.a file, so hopefully the libntl.dll file also won't need to be moved. This could be revisited if that didn't work, of course.


Otherwise ready for review, though I'm not assuming it will be immediately positive. That would be nice, though :)

Could you post the diff for cliquer, too? Also, in the future please refrain from unnecessarily reformatting files you are changing in spkgs (it's probably some over-eager editor you are using does it).

comment:8 in reply to: ↑ 7 Changed 10 years ago by kcrisman

Otherwise ready for review, though I'm not assuming it will be immediately positive. That would be nice, though :)

Could you post the diff for cliquer, too?

Sure, I just didn't think to do it because it was much less invasive.

Also, in the future please refrain from unnecessarily reformatting files you are changing in spkgs (it's probably some over-eager editor you are using does it).

I don't think so. The lines were breaking in my editor, and it seems to be standard practice for the more conscientious Sage developers to fix them to have a more uniform line-width for easy viewing in a terminal session. The SPKG.txt for NTL was particularly bad.

Changed 10 years ago by kcrisman

For review purposes only

comment:9 follow-up: Changed 10 years ago by kcrisman

  • Status changed from needs_info to needs_review

Okay, I posted the cliquer one as well. It is really straightforward.

comment:10 in reply to: ↑ 9 Changed 10 years ago by dimpase

  • Status changed from needs_review to positive_review

Replying to kcrisman:

Okay, I posted the cliquer one as well. It is really straightforward.

OK, this is Cygwin–only (no changes on other platforms; did a sanity check --- tested spkgs on macosx). Positive review.

comment:11 Changed 10 years ago by leif

  • Cc leif added
  • Keywords cygwin FLINT NTL cliquer DLL shared library added

comment:12 follow-up: Changed 10 years ago by kcrisman

The current flint spkg is now no longer based on #11246, because of some cleaning up done there. Hopefully someone there will make a p8, however. Otherwise I would suggest splitting that one off into a different ticket, just so the others are merged.

comment:13 in reply to: ↑ 12 Changed 10 years ago by leif

  • Description modified (diff)

Replying to kcrisman:

The current flint spkg is now no longer based on #11246, because of some cleaning up done there. Hopefully someone there will make a p8, however. Otherwise I would suggest splitting that one off into a different ticket, just so the others are merged.

I've made a new FLINT p8 spkg based on the latest p7 from #11246.

New FLINT spkg: http://spkg-upload.googlecode.com/files/flint-1.5.0.p8.spkg

md5sum: bcd152d2f0e1d503ffd1e7e637c388ef flint-1.5.0.p8.spkg

Except for the removal of the .svn directories from upstream, I haven't made any further changes (not even replaced the other occurrences of $CP by cp):

leif@quadriga:~/Sage/spkgs/flint-1.5.0.p8$ hg diff --git -r flint-1.5.0.p7 -r flint-1.5.0.p8
  • .hgtags

    diff --git a/.hgtags b/.hgtags
    a b  
    11df4a596f2ae97186054f73ca31b94ac0a06bd2b6 flint-1.2.5.p2
    225252db23001a3fa2ed4ee2ad2069673b9a82faf0 flint-1.3.0
     303fb4e599477f450c711ccc121574c03888bdf3c flint-1.5.0.p7
  • SPKG.txt

    diff --git a/SPKG.txt b/SPKG.txt
    a b  
    2828
    2929== Special Update/Build Instructions ==
    3030
    31 We patch the makefile slightly to add 64 bit OSX build support and also change
    32 LIBS such that the NTL interface is linked into the flint library.
    33 This is not an officially supported option because flint is pure C
    34 and the NTL interface requires C++.
     31 * We patch the makefile slightly to add 64 bit OSX build support and also change
     32   LIBS such that the NTL interface is linked into the flint library.
     33   This is not an officially supported option because flint is pure C
     34   and the NTL interface requires C++.
     35 * Remove the '.svn' directories from upstream ('src/') if present.
    3536
    3637== Changelog ==
    3738
     39=== flint-1.5.0.p8 (Karl-Dieter Crisman, 12th July 2011) ===
     40  * Enable both libflint.dll and .so on Cygwin (see Trac 11547).
     41  * Use 'cp' rather than '$CP' (affects only Cygwin).
     42  * Remove '.svn' directories from upstream.
     43
    3844=== flint-1.5.0.p7 (Jeroen Demeyer, 6 July 2011) ===
    3945 * Trac #11246: remove check for gcc version since we require gcc >= 4.0.1
    4046   for Sage anyway.
  • spkg-install

    diff --git a/spkg-install b/spkg-install
    a b  
    9898    if [ $UNAME = "CYGWIN" ]; then
    9999       # let's move libntl.a back
    100100       mv $SAGE_LOCAL/lib/xxx_libntl.a $SAGE_LOCAL/lib/libntl.a
    101        # also name flint library correctly for MS Windows (an so won't work).
    102        mv libflint.so libflint.dll
     101       # make both kinds of dynamic libraries available for Windows
     102       cp -p libflint.so libflint.dll
    103103    fi
    104104    echo "Deleting old FLINT"
    105105    rm -f $SAGE_LOCAL/lib/libflint*

Ignore the strange diff w.r.t. the tags; the new one is tagged flint-1.5.0.p8, while Jeroen's latest is tagged flint-1.5.0.p7:

changeset:   84:2ed02e07f2ec
tag:         tip
user:        Karl-Dieter Crisman <kcrisman@gmail.com>
date:        Tue Jul 12 18:00:59 2011 +0200
summary:     Added tag flint-1.5.0.p8 for changeset 0c03457839bc

changeset:   83:0c03457839bc
tag:         flint-1.5.0.p8
user:        Karl-Dieter Crisman <kcrisman@gmail.com>
date:        Tue Jul 12 18:00:29 2011 +0200
summary:     #11547 *Copy*  FLINT '.so' to '.dll' on Cygwin such that both are available.

changeset:   82:ab8260189439
user:        Jeroen Demeyer <jdemeyer@cage.ugent.be>
date:        Wed Jul 06 13:03:09 2011 +0000
summary:     Added tag flint-1.5.0.p7 for changeset 03fb4e599477

changeset:   81:03fb4e599477
tag:         flint-1.5.0.p7
user:        Jeroen Demeyer <jdemeyer@cage.ugent.be>
date:        Wed Jul 06 13:03:09 2011 +0000
summary:     Trac #11246: flint-1.5.0.p7 (Jeroen Demeyer, 6 July 2011)

...

comment:14 Changed 10 years ago by leif

P.S.: Further clean-up will be made on another ticket, providing a FLINT 1.5.2.pN spkg, most probably #9858.

comment:15 follow-up: Changed 10 years ago by jdemeyer

  • Reviewers set to Dmitrii Pasechnik
  • Status changed from positive_review to needs_work
  • Work issues set to Rebase NTL spkg (#5731)

The NTL spkg should be rebased to ntl-5.5.2 from #5731.

comment:16 in reply to: ↑ 15 Changed 10 years ago by kcrisman

  • Description modified (diff)
  • Status changed from needs_work to positive_review
  • Work issues Rebase NTL spkg (#5731) deleted

Replying to jdemeyer:

The NTL spkg should be rebased to ntl-5.5.2 from #5731.

Thanks for alerting us to that, Jeroen.

Since that is a pretty big upgrade to NTL at that ticket, I'd prefer to split that off to another ticket - I think it would require retesting that the NTL package compiles on Cygwin and that the change still is necessary, for instance, though it almost certainly is.

That is now #11635. If the other two could get merged asap, that would be wonderful. I can't do anything about it until at least Monday, probably later (due to needing access to Windows machines!), which is why I am splitting it off.

comment:17 Changed 10 years ago by jdemeyer

  • Merged in set to sage-4.7.2.alpha1
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:18 Changed 10 years ago by kcrisman

Ironically, this now doesn't actually work on one of my Cygwins, because of an extra line that crept into one of the patches.

--- src/mpn_extras.h	2009-09-23 18:03:27.000000000 +0800
+++ patches/mpn_extras.h	2011-04-25 22:36:33.000000000 +0800
@@ -22,7 +22,6 @@
 #ifndef MPN_EXTRAS_H
 #define MPN_EXTRAS_H
 
-#include "flint.h"
 #include "ZmodF_poly.h"
 
 #include "longlong_wrapper.h"

Note the newline at the end; removing this solves the problem. I guess this didn't cause trouble on other systems, since these patches are applied universally.

But this fix was still needed, so I've opened #11727 for this.

Note: See TracTickets for help on using tickets.