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

Reply via email to