Compiling pyinterval on Debian Wheezy

When installing pyinterval on my Debian Wheezy system via pip install pyinterval I hit this:

/usr/bin/ld: /usr/local/lib/libcrlibm.a(crlibm_private.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC

/usr/local/lib/libcrlibm.a: could not read symbols: Bad value

collect2: error: ld returned 1 exit status

error: command 'gcc' failed with exit status 1

The solution is to install crlibm with the -fPIC flag:

tar zxf crlibm-1.0beta4.tar.gz
cd crlibm-1.0beta4

export CPPFLAGS=-fPIC
./configure
make
sudo make install

sudo pip install pyinterval

Then you should be able to run Rump’s example (see Stefano Taschini’s SciPy 2008 paper on pyinterval):

carlo@x1 ~ $ python
Python 2.7.3 (default, Jan  2 2013, 13:56:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from interval import interval
>>> def f(x,y):
...     return (
...         (333.75 - x**2)* y**6 + x**2 *
...             (11* x**2 * y**2 - 121 * y**4 - 2)
...         + 5.5 * y**8 + x/(2*y))
...
>>> f(interval(77617.0), interval(33096.0))
interval([-3.541774862152234e+21, 3.5417748621522344e+21])
>>>

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s