Opened 6 years ago
Closed 5 years ago
#8269 closed defect (invalid)
cygwin: maxima does not build on cygwin, possibly due to ECL bug.
Reported by: | was | Owned by: | tbd |
---|---|---|---|
Priority: | major | Milestone: | sage-duplicate/invalid/wontfix |
Component: | porting: Cygwin | Keywords: | |
Cc: | jdemeyer | Merged in: | |
Authors: | Reviewers: | Karl-Dieter Crisman, Mike Hansen | |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
Trying to build the maxima-5.20.1.spkg fails on Cygwin. The error is
;;; Loading "/home/wstein/build/sage-4.3.3.alpha0/spkg/build/maxima-5.20.1/src/src/binary-ecl/init-cl.fas" ; - Providing system maxima An error occurred during initialization: C::BUILDER does not accept a file "binary-ecl/init-cl.fas" of kind :FASL.
See this possibly very relevant thread for a discussion about this: http://groups.google.com/group/sage-devel/browse_thread/thread/cecd40138ed552b9
Change History (12)
comment:1 Changed 6 years ago by was
- Summary changed from cygwin: maxima does not build on cygwin due to ECL bug. to cygwin: maxima does not build on cygwin, possibly due to ECL bug.
comment:2 Changed 6 years ago by was
comment:3 Changed 6 years ago by was
comment:4 Changed 6 years ago by was
Juan-Jose had the following suggestion:
It is no wonder Maxima does not build in Cygwin. Someone had introduced, who knows why, different build commands for that platform in maxima.system. The offending function looks as follows (maxima/src/maxima.system) #+ecl (defun build-maxima-lib () (labels ((list-all-objects (module) (if (eql (mk::component-type module) :file) (list (mk::component-full-pathname module :binary)) (apply #'append (mapcar #'list-all-objects (mk::component-components module)))))) (let* ((files (list-all-objects (mk:find-system 'maxima)))) #+msvc (progn (c::build-static-library "binary-ecl/maxima-lib" :lisp-files (print files)) (let ((c::*ld-format* (concatenate 'string c::*ld-format* " /LIBPATH:binary-ecl"))) (c::build-fasl "binary-ecl/maxima" :lisp-files '(maxima-lib)))) #+cygwin (c::build-fasl "binary-ecl/maxima" :lisp-files files) #-(or cygwin msvc) (let ((obj (mapcar #'(lambda (p) ;; Convert dir/foo.fas to dir/foo.o (make-pathname :type "o" :defaults p)) files))) [.... ] It is immediately obvious that the code for cygwin is too short to do anything useful. A possible fix is to remove the line #+cygwin and the following line and change #-(or cygwin msvc) to #-msvc However I can not guarantee that there are no other problems left. Please note that this is not directly related to ECL. Juanjo
I tried this with the following new spkg:
http://wstein.org/home/wstein/ports/cygwin/maxima-5.20.1.p1.spkg
and it now fails as follows:
;;; Note: Invoking external command: ;;; gcc "-I/home/wstein/build/sage-4.3.3.alpha0/local/include/" -I/home/wstein/build/sage-4.3.3.alpha0/local/include -O2 -g -Wall -Dcygwin -O -w -c "/cygdrive/c/WINDOWS/TEMP/ECLINIT5NW89S.c" -o "/cygdrive/c/WINDOWS/TEMP/ECLINIT5NW89S.o" gcc: /cygdrive/c/WINDOWS/TEMP/ECLINIT5NW89S.o: No such file or directory An error occurred during initialization: (SYSTEM "gcc -o \"/home/wstein/build/sage-4.3.3.alpha0/spkg/build/maxima-5.20.1.p1/src/src/binary-ecl/numerical/slatec/dbesj0.fas\" -L\"/home/wstein/build/sage-4.3.3.alpha0/local/lib/\" \"/cygdrive/c/WINDOWS/TEMP/ECLINIT5NW89S.o\" \"/home/wstein/build/sage-4.3.3.alpha0/spkg/build/maxima-5.20.1.p1/src/src/binary-ecl/numerical/slatec/dbesj0.o\" -shared -L/home/wstein/build/sage-4.3.3.alpha0/local/lib -L/home/wstein/build/sage-4.3.3.alpha0/local/lib -lecl -lgmp -lgc -lm ") returned non-zero value 1. ;;; Note: Invoking external command: ;;; gcc -o "/home/wstein/build/sage-4.3.3.alpha0/spkg/build/maxima-5.20.1.p1/src/src/binary-ecl/numerical/slatec/dbesj0.fas" -L"/home/wstein/build/sage-4.3.3.alpha0/local/lib/" "/cygdrive/c/WINDOWS/TEMP/ECLINIT5NW89S.o" "/home/wstein/build/sage-4.3.3.alpha0/spkg/build/maxima-5.20.1.p1/src/src/binary-ecl/numerical/slatec/dbesj0.o" -shared -L/home/wstein/build/sage-4.3.3.alpha0/local/lib -L/home/wstein/build/sage-4.3.3.alpha0/local/lib -lecl -lgmp -lgc -lm make[1]: *** [binary-ecl/maxima] Error 1 make[1]: Leaving directory `/home/wstein/build/sage-4.3.3.alpha0/spkg/build/maxima-5.20.1.p1/src/src' make: *** [all-recursive] Error 1
The failure happens during the "make" step.
comment:5 Changed 6 years ago by was
continuing...
I tried typing the above gcc line in directly and it seems to work fine: sage subshell$ gcc "-I/home/wstein/build/sage-4.3.3.alpha0/local/include/" -I/home/wstein/build/sage-4.3.3.alpha0/local/include -O2 -g -Wall -Dcygwin -O -w -c "/cygdrive/c/WINDOWS/TEMP/ECLINIT5NW89S.c" -o "/cygdrive/c/WINDOWS/TEMP/ECLINIT5NW89S.o" /home/wstein/build/sage-4.3.3.alpha0 sage subshell$ ls -lh /cygdrive/c/WINDOWS/TEMP/ECLINIT5NW89S.o -rw-r--r--+ 1 wstein None 15K 2010-02-20 15:29 /cygdrive/c/WINDOWS/TEMP/ECLINIT5NW89S.o /home/wstein/build/sage-4.3.3.alpha0 Then I typed "make" again, and *amazingly*, Maxima builds. That was a surprise. sage subshell$ binary-ecl/maxima.exe ;;; Loading #P"/home/wstein/build/sage-4.3.3.alpha0/local/lib/ecl/DEFSYSTEM.fas" ;;; Loading #P"/home/wstein/build/sage-4.3.3.alpha0/local/lib/ecl/cmp.fas" ;;; Loading #P"/home/wstein/build/sage-4.3.3.alpha0/local/lib/ecl/sysfun.lsp" Maxima 5.20.1 http://maxima.sourceforge.net using Lisp ECL 10.2.1 Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug reporting information. (%i1) integrate(sin(x^2),x) ; (sqrt(2) %i + sqrt(2)) x (%o1) (sqrt(%pi) ((sqrt(2) %i + sqrt(2)) erf(------------------------) 2 (sqrt(2) %i - sqrt(2)) x + (sqrt(2) %i - sqrt(2)) erf(------------------------)))/8 2 ---------- So any ideas about this? I'm just curious if this happens for other people too.
comment:6 Changed 6 years ago by mhansen
I was able to get Maxima to build in Cygwin with ECL 10.3.1 and the spkg at http://sage.math.washington.edu/home/mhansen/cygwin_port/maxima-5.20.1.p0.spkg . Everything builds correctly except building maxima as a library at the end:
cd src echo "building Maxima as an ecl library" ecl -eval "(require 'asdf)" -eval '(load "maxima-build.lisp")' -eval '(asdf:make-build :maxima :type :fasl)' -eval "(quit)" ECLLIB=`ecl -eval "(princ (SI:GET-LIBRARY-PATHNAME))" -eval "(quit)"` echo echo "installing Maxima library as $ECLLIB/maxima.fas" cp maxima.fasb $ECLLIB/maxima.fas cd ..
All of the building commands run correctly, but there is no "maxima.fasb" file produced.
comment:7 Changed 6 years ago by mhansen
comment:8 Changed 5 years ago by kcrisman
comment:9 Changed 5 years ago by kcrisman
- Milestone changed from sage-4.7.1 to sage-duplicate/invalid/wontfix
- Reviewers set to Karl-Dieter Crisman, Mike Hansen
- Status changed from new to needs_review
Although Maxima continue to not build consistently on Cygwin, neither on XP nor Win7, this bug is now vague and old enough that we should go to the more current tickets mentioned in the previous comment, which have information relevant to more current spkgs. In addition, it appears there was a fix of some kind which is now invalid due to other reasons, so this is really just too confusing now.
To release manager: please close this ticket.
comment:10 Changed 5 years ago by kcrisman
- Status changed from needs_review to positive_review
comment:11 Changed 5 years ago by kcrisman
- Cc jdemeyer added
comment:12 Changed 5 years ago by jdemeyer
- Resolution set to invalid
- Status changed from positive_review to closed
Even after upgrading to the latested released ECL (10.2.1),
we still have: