Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com To: scipy-dev AT scipy DOT net (Jochen =?iso-8859-1?q?K=FCpper?=) Cc: Cygwin Subject: Re: [SciPy-dev] SciPy on Cygwin References: <86d74cr9q2 DOT fsf AT bock DOT chem DOT unc DOT edu> User-Agent: XEmacs/Gnus X-Attribution: Jochen X-Face: -%Z4EZ6iY'4m:wiK:!v Message-ID: <86g097pgqt.fsf@bock.chem.unc.edu> From: "Jochen =?iso-8859-1?q?K=FCpper?=" Organization: me AT home Date: 28 Sep 2001 10:48:13 -0400 Lines: 134 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit A little further, but now I am having linking problems. See end of message for current problem: Since I apparently couldn't subscribe to scipy-dev yet send me a cc, please. >>>>> Jochen Küpper wrote on 27 Sep 2001 10:26:13 -0400: [SciPy on Cygwin...] Jochen> ,----[flapackmodule.c: 447] Jochen> | PyObject *cb_cselect_in_cgees__user__routines_capi = Py_None; Jochen> `---- Jochen> I am not sure what to do about that? >>>>> Jason Tishler wrote on Thu, 27 Sep 2001 16:48:48 -0400: Jason> The usually solution to the above kind of errors is the Jason> following: Jason> http://www.python.org/doc/FAQ.html#3.24 Jason> Unfortunately, the above line does *not* seem to jib with this solution. Right. And compiling with g++ reveals a ton of other errors. >>>>> Travis Oliphant wrote on Thu, 27 Sep 2001 11:19:26 -0600 (MDT): Travis> Well it looks like some more ifdefs are needed. Travis> I think there is some DL_EXPORT macro that needs to be used somewhere for Travis> it to work on CYGWIN. Because this is an f2py generated file, I'm not Travis> sure what to do. Does f2py support Cygwin? I actually tried to put DL_EXPORT macros at different position, but since I pretty clueless about both Cygwin and python C-extensions I don't have too much of an understanding where it has to go:( >>>>> Pearu Peterson wrote on Thu, 27 Sep 2001 20:10:57 +0200 (EET): Pearu> I have never tried cygwin but it is basically gcc (right?) and therefore Pearu> I did not see any reasons why f2py generated code would fail on Pearu> cygwin. However, it seems that I need to let f2py to put lines like 477 Pearu> above to init () block. But if there is a way to use macros please Pearu> let me know - the fix will be certainly simpler for me. Pearu> Meanwhile I suggest manually moving the initializations with Py_None to Pearu> the function flapackmodule(). (I am not sure when I am able to fix f2py Pearu> as it will not be trivial). >>>>> Pearu Peterson wrote on Thu, 27 Sep 2001 20:16:32 +0200 (EET): Pearu> I meant to the function initflapack(). Well, that could be a solution for me since it isn't too much work, a appropriate putch could probable even be applied by setup.py? Running into the next problem is the definition of PyFortran_Type in fortranmodule.h, I changed in the following way: - no global initialization: PyTypeObject PyFortran_Type; - created this function in fortranmodule.c, added declaration to fortranmodule.h and call it from initflapack: void fortranobject_init(void) { PyFortran_Type = (PyTypeObject){ PyObject_HEAD_INIT(&PyType_Type) 0, /*ob_size*/ "fortran", /*tp_name*/ sizeof(PyFortranObject), /*tp_basicsize*/ 0, /*tp_itemsize*/ /* methods */ (destructor)fortran_dealloc, /*tp_dealloc*/ 0, /*tp_print*/ (getattrfunc)fortran_getattr, /*tp_getattr*/ (setattrfunc)fortran_setattr, /*tp_setattr*/ 0, /*tp_compare*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ (ternaryfunc)fortran_call, /*tp_call*/ }; } Does this look like a reasonable idea? Well, it compiles, but I get undefined references on linking. > gcc -shared -Wl,--enable-auto-image-base build/temp.cygwin-1.3.3-i686-2.1/flapackmodule.o build/temp.cygwin-1.3.3-i686-2.1/fortranobject.o -L/usr/local/lib -L/usr/lib/python2.1/config -L/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-5 -L/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-5 -Lbuild/temp.cygwin-1.3.3-i686-2.1 -Lbuild/temp.cygwin-1.3.3-i686-2.1 -llapack -lcblas -lf77blas -latlas -lpython2.1 -lamos -ltoms -lfitpack -lminpack -lquadpack -lodepack -llinpack_lite -lmach -lg2c -lgcc -lc_misc -lcephes -o build/lib.cygwin-1.3.3-i686-2.1/scipy/linalg/flapack.dll build/temp.cygwin-1.3.3-i686-2.1/flapackmodule.o: In function `initflapack': /home/software/scipy/linalg/flapackmodule.c:7855: undefined reference to `_imp__PyFortranObject_NewAsAttr' build/temp.cygwin-1.3.3-i686-2.1/fortranobject.o: In function `PyFortranObject_New': /home/software/scipy/linalg/fortranobject.c:138: undefined reference to `_imp__PyFortran_Type' /home/software/scipy/linalg/fortranobject.c:146: undefined reference to `_imp__PyFortranObject_NewAsAttr' build/temp.cygwin-1.3.3-i686-2.1/fortranobject.o: In function `PyFortranObject_NewAsAttr': /home/software/scipy/linalg/fortranobject.c:168: undefined reference to `_imp__PyFortran_Type' collect2: ld returned 1 exit status error: command 'gcc' failed with exit status 1 As I said above I tried playing with DL_EXPORTS, to no avail. Thank you for your help, hope you guys have some more ideas...:)) Greetings, Jochen -- Einigkeit und Recht und Freiheit http://www.Jochen-Kuepper.de Liberté, Égalité, Fraternité GnuPG key: 44BCCD8E Sex, drugs and rock-n-roll -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/