[Trilinos-Users] error with --enable-python

Bill Spotz wfspotz at sandia.gov
Wed Jul 25 10:16:29 MDT 2007


John,

Yes, you need to manually configure with -fPIC as a compilation  
option on some systems when you build the python wrappers.  This  
generates position-independent code, which is necessary for shared  
libraries, which are now required by PyTrilinos.  Sorry for the  
inconvenience.  If we used libtool, this compilation option would be  
inserted automatically.

Some architectures don't require the compilation option.  For  
example, Mac OS X generates position-independent code by default.

On Jul 24, 2007, at 8:03 PM, John Pye wrote:

> Hi Bill,
>
> Found some time to follow up on your suggestions with Trilinos...
>
> Bill Spotz wrote:
>> John,
>>
>> This problem stems from the fact that we cannot test all combinations
>> of enabled and disabled packages, because the numbers get to be too
>> huge. A quick fix would be to delete line 506 from
>>
>> packages/ml/python/src/Makefile
>>
>> in your build directory. A more sturdy solution would be to add
>> --enable-galeri to your configure invocation script. (I suspect you
>> may have to also add --enable-amesos.)
>>
>> In the next release, the python wrappers are removed from the
>> individual packages and are all contained in the PyTrilinos package.
>> This makes these python-related configuration issues easier to  
>> handle.
>> In fact, I have verified that this particular problem does not occur
>> in the release scheduled for August.
>
> I tried your suggestion and I now get another error. In this case the
> error shows up on Fedora 7 on a 64 bit machine:
>
> |/usr/bin/ld:
> /usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/src/ 
> libteuchos.a(Teuchos_ParameterEntry.o):
> relocation R_X86_64_32 against `a local symbol' can not be used when
> making a shared object; recompile with -fPIC
> /usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/src/ 
> libteuchos.a:
> could not read symbols: Bad value
> collect2: ld returned 1 exit status|
>
> There is a bit more context below. As before you can inspect my build
> results at
> http://build.opensuse.org/package/show?package=trilinos&project=home 
> %3Ajdpipe
>
> Cheers
> JP
>
>
> ------8<----
> |
> Trilinos package teuchos subdirectory example built successfully.
>
> make[5]: Leaving directory
> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/example'
> make[4]: Leaving directory
> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/example'
> Making all in python
> make[4]: Entering directory
> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/python'
> Making all in src
> make[5]: Entering directory
> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/python/src'
> if /usr/bin/swig -c++ -python
> -I/usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/src
> -I/usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/src -MMD -MF
> ".deps/Teuchos.Tpi" -o Teuchos_wrap.cpp Teuchos.i; \
> then mv -f ".deps/Teuchos.Tpi" ".deps/Teuchos.Pi"; else rm -f
> ".deps/Teuchos.Tpi"; exit 1; fi
> Creating directory build/temp.linux-x86_64-2.5
> mkdir -p build/temp.linux-x86_64-2.5
> /usr/bin/python ./setup.py build
> running build
> running build_py
> creating build/lib.linux-x86_64-2.5
> creating build/lib.linux-x86_64-2.5/PyTrilinos
> copying ./Teuchos.py -> build/lib.linux-x86_64-2.5/PyTrilinos
> copying ./__init__.py -> build/lib.linux-x86_64-2.5/PyTrilinos
> running build_ext
> building 'PyTrilinos._Teuchos' extension
> g++ -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
> -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
> -D_GNU_SOURCE -fPIC -O2 -g -fPIC -DHAVE_CONFIG_H=1 -I.
> -I/usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/src
> -I/usr/include/python2.5 -c Teuchos_wrap.cpp -o
> build/temp.linux-x86_64-2.5/Teuchos_wrap.o -O2 -g
> Teuchos_PythonParameter.hpp: In function 'bool
> Teuchos::setPythonParameter(Teuchos::ParameterList&, const  
> std::string&,
> PyObject*)':
> Teuchos_PythonParameter.hpp:98: warning: dereferencing type-punned
> pointer will break strict-aliasing rules
> Teuchos_wrap.cpp: In function 'int SWIG_AsPtr_std_string(PyObject*,
> std::string**)':
> Teuchos_wrap.cpp:3066: warning: dereferencing type-punned pointer will
> break strict-aliasing rules
> Teuchos_wrap.cpp: In function 'int SWIG_AsVal_bool(PyObject*, bool*)':
> Teuchos_wrap.cpp:3078: warning: dereferencing type-punned pointer will
> break strict-aliasing rules
> Teuchos_wrap.cpp:3081: warning: dereferencing type-punned pointer will
> break strict-aliasing rules
> g++ -pthread -shared -O2 -g build/temp.linux-x86_64-2.5/Teuchos_wrap.o
> -L/usr/src/redhat/BUILD/trilinos-7.0.8/packages/PyTrilinos/src
> -L/usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/src
> -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 -L/usr/lib64 -L/lib64
> -L/usr/lib/python2.5/config -lteuchos -llapack -lblas -lgfortranbegin
> -lgfortran -lm -lgcc_s -lpython2.5 -o
> build/lib.linux-x86_64-2.5/PyTrilinos/_Teuchos.so
> /usr/bin/ld:
> /usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/src/ 
> libteuchos.a(Teuchos_ParameterEntry.o):
> relocation R_X86_64_32 against `a local symbol' can not be used when
> making a shared object; recompile with -fPIC
> /usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/src/ 
> libteuchos.a:
> could not read symbols: Bad value
> collect2: ld returned 1 exit status
> error: command 'g++' failed with exit status 1
> make[5]: *** [build] Error 1
> make[5]: Leaving directory
> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/python/src'
> make[4]: *** [all-recursive] Error 1
> make[4]: Leaving directory
> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos/python'
> make[3]: *** [all-recursive] Error 1
> make[3]: Leaving directory
> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/teuchos'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/usr/src/redhat/BUILD/trilinos-7.0.8/ 
> packages'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/usr/src/redhat/BUILD/trilinos-7.0.8'
> make: *** [all] Error 2
> error: Bad exit status from /var/tmp/rpm-tmp.3924 (%build)
>
>
> |------8<----
>>
>> On Jul 22, 2007, at 8:28 PM, John Pye wrote:
>>
>>> Hi all
>>>
>>> I get an error when compiling trilinos with the following configure
>>> command:
>>>
>>>
>>> %configure \
>>> F77=%{f77} \
>>> CC="%{?ccache} gcc" \
>>> CXX="%{?ccache} g++" \
>>> --with-gnumake \
>>> --disable-new_package \
>>> --enable-moocho \
>>> --enable-thyra \
>>> --enable-python
>>> make
>>>
>>>
>>> Here is the error:|
>>>
>>>
>>> make[4]: Leaving directory
>>> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/ml/doc'
>>> Making all in python
>>> make[4]: Entering directory
>>> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/ml/python'
>>> Making all in src
>>> make[5]: Entering directory
>>> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/ml/python/src'
>>> Makefile:506: ../../../galeri/Makefile.export.galeri: No such  
>>> file or
>>> directory
>>> make[5]: *** No rule to make target
>>> `../../../galeri/Makefile.export.galeri'. Stop.
>>> make[5]: Leaving directory
>>> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/ml/python/src'
>>> make[4]: *** [all-recursive] Error 1
>>> make[4]: Leaving directory
>>> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/ml/python'
>>> make[3]: *** [all-recursive] Error 1
>>> make[3]: Leaving directory
>>> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages/ml'
>>> make[2]: *** [all-recursive] Error 1
>>> make[2]: Leaving directory
>>> `/usr/src/redhat/BUILD/trilinos-7.0.8/packages'
>>> make[1]: *** [all-recursive] Error 1
>>> make[1]: Leaving directory `/usr/src/redhat/BUILD/trilinos-7.0.8'
>>> make: *** [all] Error 2
>>> error: Bad exit status from /var/tmp/rpm-tmp.93082 (%build)
>>>
>>>
>>> |
>>> |The full build log is available at
>>> http://build.opensuse.org/package/live_build_log? 
>>> arch=i586&repository=Fedora_7&package=trilinos&project=home%3Ajdpipe
>>>
>>> (registration may be required though).
>>> |||
>>>
>>> ||
>>>
>>> |
>>> Cheers
>>> JP

** Bill Spotz                                              **
** Sandia National Laboratories  Voice: (505)845-0170      **
** P.O. Box 5800                 Fax:   (505)284-5451      **
** Albuquerque, NM 87185-0370    Email: wfspotz at sandia.gov **




More information about the Trilinos-Users mailing list