[Opensim-dev] BulletSim on 64-bit Linux

Robert A. Knop Jr. rknop at pobox.com
Wed Aug 10 02:12:50 UTC 2011


I was able to get this to "just work".

I downloaded bullet-2.78-r2387.tgz.  Inside there, I did

  ./configure
  make
  make install

(A slight lie; I am actually anal.  I did

  ./configure --prefix=/usr/local/bullet-2.78

When make install was done I dropped symbolic links in /usr/local/lib to
stuff in /usr/local/bullet-2.78/lib.  It amounts to the same thing in
the end.  (I do this sort of thing so that I can keep track of where all
the crap in /usr/local/lib came from.))

Then, inside opensim-libs/trunk/unmanaged/BulletSim I ran "make".

That created for me a libBulletSim.so that is 64-bit:

  schumann:[BulletSim]$ file libBulletSim.so 
  libBulletSim.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

I copied that to opensim/bin (replacing the libBulletSim.so that is
already there, and is a 32-bit version).  I configured "physics =
BulletSim" in OpenSim.ini.  Everything ran and was happy.

(Well, mostly.  The avatar had trouble walking around on the ground.  On
top of a big prim, it could walk around, but couldn't walk over the
edge; it treated the edge it should have walked off as if it were a
wall.  If I switch back to OpenDynamicsEngine, things work as expected.)

I *would* note that my libBulletSim.so is dynamically linked to the
bullet libraries I have installed in /usr/local/lib.  So, this way of
creating a libBulletSim.so won't make a shared library that could be
distributed with OpenSim.  But, it did seem to work without having to do
anything particularly special.  Presumably, one could create .a
libraries for bullet that libBulletSim.so would pull into itself.  At
some point, I will see if I can make that work with a minimum of pain.
It's probably as simple as editing BULLETLIBS to replace the "-lBullet*"
with just "Bullet*.a" and -lLinearMath with LinearMath.a.  (I can't
remember if there is any Make or g++ magic to tell it to prefer static
rather than shared libraries when both are available other than just
specifing the static library as a linker object.  I'm sure there is
something.)

I'm on a 64-bit Linux machine, so it just naturally built everything
64-bit.  I suppose that one could tell it instead to build 32-bit
things, but it would probably be much easier to just make those on a
32-bit Linux machine somewhere.....

-Rob

-- 
--Rob Knop
  E-mail:    rknop at pobox.com
  Home Page: http://www.pobox.com/~rknop/
  Blog:      http://scientopia.org/blogs/galacticinteractions/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: Digital signature
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20110809/0c03f8f6/attachment-0001.pgp>


More information about the Opensim-dev mailing list