devel/ode and devel/ode-devel ports are marked broken on
non-i386 archs (i.e. amd64, ia64), because ode fail to build
on these systems with following errors:
c++ -Iinclude -c -fno-exceptions -fomit-frame-pointer -O -pipe -I/usr/X11R6/include
+-DdNODEBUG -o ode/src/timer.o ode/src/timer.cpp
{standard input}: Assembler messages:
{standard input}:62: Error: `(%esi)' is not a valid 64 bit base/index expression
{standard input}:63: Error: `4(%esi)' is not a valid 64 bit base/index expression
{standard input}:86: Error: `(%esi)' is not a valid 64 bit base/index expression
{standard input}:87: Error: `4(%esi)' is not a valid 64 bit base/index expression
{standard input}:172: Error: `(%esi)' is not a valid 64 bit base/index expression
{standard input}:173: Error: `4(%esi)' is not a valid 64 bit base/index expression
{standard input}:194: Error: `(%esi)' is not a valid 64 bit base/index expression
{standard input}:195: Error: `4(%esi)' is not a valid 64 bit base/index expression
{standard input}:234: Error: `(%esi)' is not a valid 64 bit base/index expression
{standard input}:235: Error: `4(%esi)' is not a valid 64 bit base/index expression
gmake: *** [ode/src/timer.o] Error 1
*** Error code 2
Stop in /usr/ports/devel/ode.
After some investigation, I think I've solved the problem,
and it would be great to unbreak ode at last.
The build on 64 bit platforms fails because some 32 bit
assembly gets included in the ode/src/timer.cpp file.
That, on it's turn, happens because ode's configurator
(simple configure analogue written in C) has too weak
checking for `pentium compatibility' of host system - it
just tries to compile following assembly code: `mov $0,
%eax' as a test. That compiles well on 64 bit platforms,
but because addressing scheme is now 64bit, above-mentioned
errors occur when compiling ode's source itself.
The fix is to add a patch to configurator.c that makes
`pentium compatibility' test more strict. Thus, test will
fail on 64 bit ystems and i386 assembly won't be used (ode
will use more portable routines instead).
This patch is not well tested, as I myself have no 64 bit
machines in the vicinity, but it surely doesn't break ode
on x86 :)
I've mailed it to ode author, it's now also in ODE's CVS.
PR: ports/90077
Submitted by: Dmitry Marakasov <amdmi3@mail.ru>
Approved by: maintainer timeout
ODE is a free, industrial quality library for simulating articulated
rigid body dynamics - for example ground vehicles, legged creatures,
and moving objects in VR environments. It is fast, flexible, robust
and platform independent, with advanced joints, contact with friction,
and built-in collision detection.
WWW: http://www.ode.org/
Add CONFLICTS in devel/ode
PR: 88581
Submitted by: Jose Alonso Cardenas Marquez <acardenas@bsd.org.pe>
Repocopy by: marcus
- changes the header include order so as not to pick up installed includes
before local ones
- suppresses the unneeded use of values.h
- works around an inlining limitation in g++
PR: ports/81610
Submitted by: Jonathan Hanna <jhanna@shaw.ca>
Approved by: David Yeske <dyeske@yahoo.com> (maintainer)
ODE is a free, industrial quality library for simulating
articulated rigid body dynamics - for example ground vehicles,
legged creatures, and moving objects in VR environments. It is
fast, flexible, robust and platform independent, with advanced
joints, contact with friction, and built-in collision
detection.
PR: ports/64288
Submitted by: David Yeske <dyeske@yahoo.com>