Bug report: Symbol not found: ___gmpf_add

Yves-Laurent KOM SAMO yves-laurent.komsamo at eng.ox.ac.uk
Thu Jan 16 17:28:35 UTC 2014


Please note this is now fixed. The problem was to do with the fact that 
GMP was built as 64bits and python was running as a 32bits application.

Regards,
Y-L

On 16/01/2014 15:55, Yves-Laurent KOM SAMO wrote:
> Dear Sir/Madam,
>
> I would like to report the following bug I encounter in a Python C 
> extension I am writing.
>
> * Platform: Mac OS 10.9.1, Processor  2.9 GHz Intel Core i7
> * GMP version: gmp-4.3.2 packaged in GCC (checkout using /svn checkout 
> svn://gcc.gnu.org/svn/gcc/trunk/)
> * Source code: downloaded in a /gcc-source/ directory, and built in a 
> /gcc-build neighbor/ directory as per the install instructions. The 
> process ran smoothly and the build was successful.
> * My C file (kernelgp.c) is in folder /kernelgp/. kernelgp, 
> /gcc-build/ and /gcc-source/ are in the same parent directory.
> * C include instruction: /#include "../gcc-build/gmp/gmp.h"/
> * GCC build command (using Python distutils):
>
> /gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch 
> x86_64 -g -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes 
> -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 
> -c kernelgp.c -o build/temp.macosx-10.6-intel-2.7/kernelgp.o -lgmp/
>
> and then
>
> /gcc-4.2 -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -g 
> build/temp.macosx-10.6-intel-2.7/kernelgp.o -o 
> build/lib.macosx-10.6-intel-2.7/kernelgp.so -lgmp/
>
> (I've pasted the output of the compiler below in green).
>
> * Problem: GCC does link the libgmp to my extension and when I import 
> kernelgp in Python, it complains that it cannot find '___gmpf_add'. 
> Full message below in blue.
> />>> import kernelgp//
> //Traceback (most recent call last)://
> //  File "<stdin>", line 1, in <module>//
> //ImportError: 
> dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/kernelgp.so, 
> 2): Symbol not found: ___gmpf_add//
> //  Referenced from: 
> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/kernelgp.so//
> //  Expected in: flat namespace//
> // in 
> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/kernelgp.so/
>
> Could you please help me with this?
>
> Regards,
> Yves-Laurent
>
> Full GCC output.
> /Yves-Laurents-MacBook-Pro:kernelgp yves-laurent$ sudo python setup.py 
> install
> running install
> running build
> running build_ext
> building 'kernelgp' extension
> creating build/temp.macosx-10.6-intel-2.7
> gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch 
> x86_64 -g -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes 
> -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 
> -c kernelgp.c -o build/temp.macosx-10.6-intel-2.7/kernelgp.o -lgmp
> In file included from kernelgp.c:3:
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:183: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:184: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:185: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:186: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:187: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:187: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:188: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:189: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:190: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:191: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:192: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:193: warning: function declaration 
> isn't a prototype
> In file included from kernelgp.c:5:
> ../CLAPACK-3.2.1/INCLUDE/clapack.h:7213: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/clapack.h:7220: warning: function declaration 
> isn't a prototype
> kernelgp.c: In function 'kernelgp_covariance_cholesky':
> kernelgp.c:409: warning: passing argument 3 of 'dpotrf_' from 
> incompatible pointer type
> kernelgp.c:445: warning: passing argument 3 of 'dpotri_' from 
> incompatible pointer type
> i686-apple-darwin11-gcc-4.2.1: -lgmp: linker input file unused because 
> linking not done
> In file included from kernelgp.c:3:
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:183: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:184: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:185: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:186: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:187: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:187: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:188: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:189: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:190: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:191: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:192: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/f2c.h:193: warning: function declaration 
> isn't a prototype
> In file included from kernelgp.c:5:
> ../CLAPACK-3.2.1/INCLUDE/clapack.h:7213: warning: function declaration 
> isn't a prototype
> ../CLAPACK-3.2.1/INCLUDE/clapack.h:7220: warning: function declaration 
> isn't a prototype
> kernelgp.c: In function 'kernelgp_covariance_cholesky':
> kernelgp.c:409: warning: passing argument 3 of 'dpotrf_' from 
> incompatible pointer type
> kernelgp.c:445: warning: passing argument 3 of 'dpotri_' from 
> incompatible pointer type
> i686-apple-darwin11-gcc-4.2.1: -lgmp: linker input file unused because 
> linking not done
> creating build/lib.macosx-10.6-intel-2.7
> gcc-4.2 -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -g 
> build/temp.macosx-10.6-intel-2.7/kernelgp.o -o 
> build/lib.macosx-10.6-intel-2.7/kernelgp.so -lgmp
> ld: warning: ignoring file /usr/local/lib/libgmp.dylib, missing 
> required architecture x86_64 in file /usr/local/lib/libgmp.dylib (1 
> slices)
> running install_lib
> copying build/lib.macosx-10.6-intel-2.7/kernelgp.so -> 
> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
> running install_egg_info
> Writing 
> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/kernelgp-1.0-py2.7.egg-info/
>
>
>



More information about the gmp-bugs mailing list