[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