Another useful check would be if the function Py_BuildValue is defined in one of the *.h files (modsupport.h specifically) in the /sw/include/python2.6 directory? You should find all the function definitions (with the '_' prefix removed, e.g. PyArg_ParseTupleAndKeywords) within this directory. Therefore why the gcc linking doesn't work to produce the *.so module file is a bit of a mystery.
Another useful thing to test is the following: $ python2.6-config --cflags Then maybe try: $ gcc -o maths_fns/relax_fit.so -bundle -bundle_loader `python2.6-config --cflags` /sw/bin/python2.6 -dynamic maths_fns/c_chi2.os maths_fns/exponential.os maths_fns/relax_fit.os and see if that builds. Cheers, Edward 2009/8/17 Edward d'Auvergne <[email protected]>: > Hi, > > I don't think this is an issue, as the include directories should only > contain *.h C header files. Can you find any *.h python files which > are not in /sw/include/python2.6? The second include directory is > just for the numpy *.h files. > > Cheers, > > Edward > > > 2009/8/17 Jack Howarth <[email protected]>: >> Edward, >> I'll try these tonight as I don't have my laptop with me >> today. I do notice that if I compare the linkage of the two >> pythons.... >> >> [prrg4:~] howarth% otool -L /sw/bin/python2.5 >> /sw/bin/python2.5: >> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current >> version 111.1.3) >> /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current >> version 1.0.0) >> [prrg4:~] howarth% otool -L /sw/bin/python2.6 >> /sw/bin/python2.6: >> /sw/lib/python2.6/config/libpython2.6.dylib (compatibility version >> 2.6.0, current version 2.6.0) >> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current >> version 111.1.4) >> /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current >> version 1.0.0) >> >> It would appear that... >> >> gcc -o maths_fns/relax_fit.so -bundle -bundle_loader /sw/bin/python2.6 >> -dynamic maths_fns/c_chi2.os maths_fns/exponential.os maths_fns/relax_fit.os >> >> ...isn't picking up /sw/lib/python2.6/config/libpython2.6.dylib for linkage. >> Jack >> >> >> On Mon, Aug 17, 2009 at 06:34:33PM +0200, Edward d'Auvergne wrote: >>> Hi, >>> >>> Does one of the following commands compile the module (with the >>> test-suite passing as well)? >>> >>> $ gcc -o maths_fns/relax_fit.so /sw/bin/python2.6 maths_fns/c_chi2.os >>> maths_fns/exponential.os maths_fns/relax_fit.os >>> $ gcc -o maths_fns/relax_fit.so /sw/bin/python2.6 -dynamic >>> maths_fns/c_chi2.os maths_fns/exponential.os maths_fns/relax_fit.os >>> $ gcc -o maths_fns/relax_fit.so -bundle_loader /sw/bin/python2.6 >>> -dynamic maths_fns/c_chi2.os maths_fns/exponential.os >>> maths_fns/relax_fit.os >>> $ gcc -o maths_fns/relax_fit.so -bundle /sw/bin/python2.6 -dynamic >>> maths_fns/c_chi2.os maths_fns/exponential.os maths_fns/relax_fit.os >>> $ gcc -o maths_fns/relax_fit.so -module -bundle -bundle_loader >>> /sw/bin/python2.6 maths_fns/c_chi2.os maths_fns/exponential.os >>> maths_fns/relax_fit.os >>> $ gcc -o maths_fns/relax_fit.so -module -bundle -bundle_loader >>> /sw/bin/python2.6 -dynamic maths_fns/c_chi2.os >>> maths_fns/exponential.os maths_fns/relax_fit.os >>> >>> Cheers, >>> >>> Edward >>> >>> >>> 2009/8/17 Edward d'Auvergne <[email protected]>: >>> > Hi, >>> > >>> > The way we can solve this issue is to first type the gcc linking >>> > command by hand, rather than using scons. Then once all is >>> > functional, I can fix the Scons script. Here is what Douglas Kojetin >>> > did to make this work >>> > (https://mail.gna.org/public/relax-devel/2006-11/msg00092.html), and >>> > then I tailored the scons script to match. If you cut an past this >>> > gcc command, can you compile the modules and run the system test >>> > without failures? Also, once this is all functional, I would like to >>> > get your changes (well, modified to be compatible with all other >>> > operating systems) into the repository so that it is easier for you >>> > next time. >>> > >>> > Cheers, >>> > >>> > Edward >>> > >>> > >>> > >>> > 2009/8/17 Jack Howarth <[email protected]>: >>> >> Edward, >>> >> I'll have to look into that as I'm not very familar with scons. >>> >> Currently for 1.3.3, it is sufficient to use... >>> >> >>> >> --- relax-1.3.0.orig/relax 2007-02-19 00:36:06.000000000 -0500 >>> >> +++ relax-1.3.0/relax 2008-08-11 02:13:30.000000000 -0400 >>> >> @@ -1,4 +1,4 @@ >>> >> -#! /usr/bin/env python >>> >> +#! /usr/bin/env python2.X >>> >> >>> >> ############################################################################### >>> >> # >>> >> # >>> >> --- relax-1.3.0/scons/install.py.sav 2008-08-10 15:31:01.000000000 >>> >> -0400 >>> >> +++ relax-1.3.0/scons/install.py 2008-08-10 16:01:22.000000000 >>> >> -0400 >>> >> @@ -112,8 +112,8 @@ >>> >> ############### >>> >> >>> >> # Run relax to create the *.pyc files. >>> >> - print "\nRunning relax to create the byte-compiled *.pyc files." >>> >> - system(env['SYMLINK'] + " --test") >>> >> + # print "\nRunning relax to create the byte-compiled *.pyc files." >>> >> + # system(env['SYMLINK'] + " --test") >>> >> >>> >> # Final print out. >>> >> print "\n\n\n" >>> >> --- relax-1.3.0.orig/sconstruct 2007-02-19 00:36:06.000000000 -0500 >>> >> +++ relax-1.3.0/sconstruct 2008-08-11 02:02:56.000000000 -0400 >>> >> @@ -94,7 +94,7 @@ >>> >> SYS = SYSTEM >>> >> >>> >> # Mac OS X installation path. >>> >> - INSTALL_PATH = sys.prefix + sep + 'local' >>> >> + INSTALL_PATH = 'FINK_INSTALL_DIR' + sep + 'lib' >>> >> >>> >> >>> >> # All other operating systems. >>> >> @@ -111,16 +111,15 @@ >>> >> ############### >>> >> >>> >> # Relax installation directory. >>> >> -RELAX_PATH = INSTALL_PATH + sep + 'relax' >>> >> +RELAX_PATH = INSTALL_PATH + sep + 'relax-py2X' >>> >> >>> >> # Installation path for binaries. >>> >> -BIN_PATH = INSTALL_PATH + sep + 'bin' >>> >> +BIN_PATH = 'FINK_INSTALL_DIR' + sep + 'bin' >>> >> >>> >> # Symbolic link installation path. >>> >> SYMLINK = BIN_PATH + sep + 'relax' >>> >> >>> >> >>> >> - >>> >> # The distribution files. >>> >> ######################### >>> >> >>> >> @@ -486,7 +485,7 @@ >>> >> >>> >> # Catch Mac OS X and send the correct command line options to >>> >> the linker (these may become redundant as SCons improves). >>> >> if env['PLATFORM'] == 'darwin': >>> >> - env.Append(LINKFLAGS = ['-bundle', '-bundle_loader', >>> >> sys.prefix + path.sep + 'bin' + path.sep + 'python', '-dynamic']) >>> >> + env.Append(LINKFLAGS = ['-bundle', '-bundle_loader', >>> >> sys.prefix + path.sep + 'bin' + path.sep + 'python2.X', '-dynamic']) >>> >> env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS') >>> >> env['SHLIBSUFFIX'] = '.so' >>> >> >>> >> >>> >> to build against the fink python24 and python25 packages. >>> >> Jack >>> >> >>> >> On Mon, Aug 17, 2009 at 03:55:06PM +0200, Edward d'Auvergne wrote: >>> >>> Hi, >>> >>> >>> >>> It could be, that Python 2.6 dynamically linked libraries are now >>> >>> compiled differently to earlier Python versions. I'll have to look >>> >>> that up as well. Would you know the linker options now required? >>> >>> >>> >>> Cheers, >>> >>> >>> >>> Edward >>> >>> >>> >>> >>> >>> 2009/8/17 Jack Howarth <[email protected]>: >>> >>> > Edward, >>> >>> > I think I see the problem. The link line is missing a linkage on >>> >>> > either >>> >>> > /sw/lib/python2.6/config/libpython2.6.a or >>> >>> > /sw/lib/python2.6/config/libpython2.6,dylib. >>> >>> > What do you have for the linkage of maths_fns/relax_fit.so on linux? >>> >>> > Does >>> >>> > that build explicitly link in the python library? >>> >>> > Jack >>> >>> > >>> >>> > >>> >>> > On Mon, Aug 17, 2009 at 11:50:10AM +0200, Edward d'Auvergne wrote: >>> >>> >> Hi, >>> >>> >> >>> >>> >> Thank you for building these packages (or at least attempting for now >>> >>> >> ;). I'm still looking into the problem, but it's looking like the >>> >>> >> Python header files are missing or are from an old version. Do you >>> >>> >> know if this could be the issue, that the Python development packages >>> >>> >> are out of date or are missing? >>> >>> >> >>> >>> >> Cheers, >>> >>> >> >>> >>> >> Edward >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> >> On Sun, Aug 16, 2009 at 4:08 AM, Jack >>> >>> >> Howarth<[email protected]> wrote: >>> >>> >> > Edward, >>> >>> >> > I am trying to build updated relax-py packaging >>> >>> >> > for fink using the 1.3.4 release on x86_64 fink >>> >>> >> > with python2.6. Although your web page indicates >>> >>> >> > that the binaries available are built against >>> >>> >> > python 2.5 and 2.6, I am seeing build failures >>> >>> >> > when I try here with scons 1.2.0... >>> >>> >> > >>> >>> >> > /sw/bin/python2.6 /sw/bin/scons >>> >>> >> > scons: Reading SConscript files ... >>> >>> >> > scons: done reading SConscript files. >>> >>> >> > scons: Building targets ... >>> >>> >> > >>> >>> >> > >>> >>> >> > >>> >>> >> > >>> >>> >> > ########################### >>> >>> >> > # Compiling the C modules # >>> >>> >> > ########################### >>> >>> >> > >>> >>> >> > >>> >>> >> > Building the relaxation curve fitting module >>> >>> >> > 'maths_fns/relax_fit.so' >>> >>> >> > >>> >>> >> > gcc -o maths_fns/c_chi2.os -c -I/sw/include/python2.6 >>> >>> >> > -I/sw/lib/python2.6/site-packages/numpy/core/include -fPIC >>> >>> >> > maths_fns/c_chi2.c >>> >>> >> > gcc -o maths_fns/exponential.os -c -I/sw/include/python2.6 >>> >>> >> > -I/sw/lib/python2.6/site-packages/numpy/core/include -fPIC >>> >>> >> > maths_fns/exponential.c >>> >>> >> > gcc -o maths_fns/relax_fit.os -c -I/sw/include/python2.6 >>> >>> >> > -I/sw/lib/python2.6/site-packages/numpy/core/include -fPIC >>> >>> >> > maths_fns/relax_fit.c >>> >>> >> > gcc -o maths_fns/relax_fit.so -bundle -bundle_loader >>> >>> >> > /sw/bin/python2.6 -dynamic maths_fns/c_chi2.os >>> >>> >> > maths_fns/exponential.os maths_fns/relax_fit.os >>> >>> >> > Undefined symbols: >>> >>> >> > "_PyArg_ParseTupleAndKeywords", referenced from: >>> >>> >> > _setup in relax_fit.os >>> >>> >> > "_PyErr_Print", referenced from: >>> >>> >> > _initrelax_fit in relax_fit.os >>> >>> >> > "_Py_InitModule4_64", referenced from: >>> >>> >> > _initrelax_fit in relax_fit.os >>> >>> >> > "_PyArg_ParseTuple", referenced from: >>> >>> >> > _func in relax_fit.os >>> >>> >> > _dfunc in relax_fit.os >>> >>> >> > "_PyExc_RuntimeError", referenced from: >>> >>> >> > __import_array in exponential.os >>> >>> >> > __import_array in exponential.os >>> >>> >> > __import_array in exponential.os >>> >>> >> > __import_array in relax_fit.os >>> >>> >> > __import_array in relax_fit.os >>> >>> >> > __import_array in relax_fit.os >>> >>> >> > "_PyList_New", referenced from: >>> >>> >> > _back_calc_I in relax_fit.os >>> >>> >> > "__Py_NoneStruct", referenced from: >>> >>> >> > _setup in relax_fit.os >>> >>> >> > _setup in relax_fit.os >>> >>> >> > _setup in relax_fit.os >>> >>> >> > "_PyExc_ImportError", referenced from: >>> >>> >> > _initrelax_fit in relax_fit.os >>> >>> >> > "_PyCObject_AsVoidPtr", referenced from: >>> >>> >> > __import_array in exponential.os >>> >>> >> > __import_array in relax_fit.os >>> >>> >> > "_PyCObject_Type", referenced from: >>> >>> >> > __import_array in exponential.os >>> >>> >> > __import_array in relax_fit.os >>> >>> >> > "_PyImport_ImportModule", referenced from: >>> >>> >> > __import_array in exponential.os >>> >>> >> > __import_array in relax_fit.os >>> >>> >> > "_PyErr_SetString", referenced from: >>> >>> >> > _initrelax_fit in relax_fit.os >>> >>> >> > "_PyErr_Format", referenced from: >>> >>> >> > __import_array in exponential.os >>> >>> >> > __import_array in exponential.os >>> >>> >> > __import_array in exponential.os >>> >>> >> > __import_array in relax_fit.os >>> >>> >> > __import_array in relax_fit.os >>> >>> >> > __import_array in relax_fit.os >>> >>> >> > "_PyList_SetItem", referenced from: >>> >>> >> > _back_calc_I in relax_fit.os >>> >>> >> > "_PyObject_GetAttrString", referenced from: >>> >>> >> > __import_array in exponential.os >>> >>> >> > __import_array in relax_fit.os >>> >>> >> > "_Py_BuildValue", referenced from: >>> >>> >> > _func in relax_fit.os >>> >>> >> > _d2func in relax_fit.os >>> >>> >> > _back_calc_I in relax_fit.os >>> >>> >> > ld: symbol(s) not found >>> >>> >> > >>> >>> >> > Is the 1.3.4 release really python2.6 compatible or do I need >>> >>> >> > additional >>> >>> >> > patches? Thanks in advance for any information. >>> >>> >> > Jack >>> >>> >> > ps I am updating the minfx-py package to the newer 1.0.2 release of >>> >>> >> > course for the python 2.6 compatibility changes. >>> >>> >> > >>> >>> >> > _______________________________________________ >>> >>> >> > relax (http://nmr-relax.com) >>> >>> >> > >>> >>> >> > This is the relax-users mailing list >>> >>> >> > [email protected] >>> >>> >> > >>> >>> >> > To unsubscribe from this list, get a password >>> >>> >> > reminder, or change your subscription options, >>> >>> >> > visit the list information page at >>> >>> >> > https://mail.gna.org/listinfo/relax-users >>> >>> >> > >>> >>> > >>> >> >>> > >> > _______________________________________________ relax (http://nmr-relax.com) This is the relax-users mailing list [email protected] To unsubscribe from this list, get a password reminder, or change your subscription options, visit the list information page at https://mail.gna.org/listinfo/relax-users

