All:

Back in April I upgraded to Tiger, and I should have known better. 

I cannot get any f90/5 programs to link with f2py (except that I have not tried the g95/gfortran compilers).

This problem started when I "upgraded" to Tiger from 10.3.9.

I thought I would ask over to here to see if anyone has any ideas.  

I get the same linking problem using the XLF, Absoft 9.2, and even the NAG compiler.
I can get g77 programs to compile and link correctly.

Here is the linking problem...it occurs at the end of the f2py process (see full output below).

/usr/bin/ld: /usr/lib/crt1.o has external relocation entries in non- 
writable section (__TEXT,__text) for symbols:
__mh_execute_header

This external relocation problem exists for all of the above named compilers.  I am using gcc 3.3.
My online research and my simple brain has figured out this is something to do with the gcc libs, 
and the fact that something changed with 10.4.  The NAG README hints that something is weird with 
Tiger and that they are temporarily supporting a "-unshared" flag - which I think allows me to link statically 
somehow to a dynamic library.  I can successfully link using that flag, but the fortran module is dead when I import it
into python (it imports, but nothing happens when I try to access it).

This occurs with Python 2.3.5 and 2.4.1.  I cannot find anything anywhere on how to deal with this.

I have tried tricky other things, like compiling with f90 and linking with g77 or gcc, but I get
other types of errors.

Any thoughts would be appreciated, as this is irritating the hell out of me (for the third time this year).

Lou

======= Full output ====


f2py --fcompiler=ibm -c -m hello hello.f
numpy_info:
   FOUND:
     define_macros = [('NUMERIC_VERSION', '"\\"24.0b2\\""')]
     include_dirs = ['/System/Library/Frameworks/Python.framework/ 
Versions/2.3/include/python2.3']

running build
running config_fc
running build_src
building extension "hello" sources
f2py:> /tmp/tmpEAl_LK/src/hellomodule.c
creating /tmp/tmpEAl_LK
creating /tmp/tmpEAl_LK/src
Reading fortran codes...
         Reading file 'hello.f'
Post-processing...
         Block: hello
                         Block: foo
Post-processing (stage 2)...
Building modules...
         Building module "hello"...
                 Constructing wrapper function "foo"...
                   foo(a)
         Wrote C/API module "hello" to file "/tmp/tmpEAl_LK/src/ 
hellomodule.c"
   adding '/tmp/tmpEAl_LK/src/fortranobject.c' to sources.
   adding '/tmp/tmpEAl_LK/src' to include_dirs.
copying /System/Library/Frameworks/Python.framework/Versions/2.3/lib/ 
python2.3/site-packages/f2py2e/src/fortranobject.c -> /tmp/tmpEAl_LK/src
copying /System/Library/Frameworks/Python.framework/Versions/2.3/lib/ 
python2.3/site-packages/f2py2e/src/fortranobject.h -> /tmp/tmpEAl_LK/src
running build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
customize IbmFCompiler
customize IbmFCompiler using build_ext
building 'hello' extension
compiling C sources
gcc options: '-fno-strict-aliasing -Wno-long-double -no-cpp-precomp - 
mno-fused-madd -fno-common -dynamic -DNDEBUG -g -O3 -Wall -Wstrict- 
prototypes'
creating /tmp/tmpEAl_LK/tmp
creating /tmp/tmpEAl_LK/tmp/tmpEAl_LK
creating /tmp/tmpEAl_LK/tmp/tmpEAl_LK/src
compile options: '-I/System/Library/Frameworks/Python.framework/ 
Versions/2.3/include/python2.3 -I/tmp/tmpEAl_LK/src -I/System/Library/ 
Frameworks/Python.framework/Versions/2.3/include/python2.3 -c'
gcc: /tmp/tmpEAl_LK/src/fortranobject.c
/tmp/tmpEAl_LK/src/fortranobject.c: In function `fortran_doc':
/tmp/tmpEAl_LK/src/fortranobject.c:123: warning: int format, long  
unsigned int arg (arg 3)
gcc: /tmp/tmpEAl_LK/src/hellomodule.c
compiling Fortran sources
xlf(f77) options: '-qextname -O5'
xlf90(f90) options: '-qextname -O5'
xlf90(fix) options: '-qfixed -qextname -O5'
compile options: '-I/System/Library/Frameworks/Python.framework/ 
Versions/2.3/include/python2.3 -I/tmp/tmpEAl_LK/src -I/System/Library/ 
Frameworks/Python.framework/Versions/2.3/include/python2.3 -c'
xlf:f77: hello.f
** foo   === End of Compilation 1 ===
1501-510  Compilation successful for file hello.f.
xlf95 -Wl,-bundle,-flat_namespace,-undefined,suppress /tmp/tmpEAl_LK/ 
tmp/tmpEAl_LK/src/hellomodule.o /tmp/tmpEAl_LK/tmp/tmpEAl_LK/src/ 
fortranobject.o /tmp/tmpEAl_LK/hello.o -o ./hello.so
/usr/bin/ld: /usr/lib/gcrt1.o has external relocation entries in non- 
writable section (__TEXT,__text) for symbols:
__mh_execute_header
/usr/bin/ld: /usr/lib/gcrt1.o has external relocation entries in non- 
writable section (__TEXT,__text) for symbols:
__mh_execute_header
error: Command "xlf95 -Wl,-bundle,-flat_namespace,- 
undefined,suppress /tmp/tmpEAl_LK/tmp/tmpEAl_LK/src/hellomodule.o / 
tmp/tmpEAl_LK/tmp/tmpEAl_LK/src/fortranobject.o /tmp/tmpEAl_LK/ 
hello.o -o ./hello.so" failed with exit status 1
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to