[ODE] Autotools added to UNSTABLE
Tanguy Fautre
tanguy.fautre at spaceapplications.com
Thu Apr 14 11:33:44 MST 2005
Hello,
Rodrigo Hernandez wrote:
> Yes, looks like automake is not handling += assignments right, what is
> your automake version?
> there seem to be no problems on 1.8.2 and higher, so you may want to
> update if your version is below that.
You were right. By default Debian (even the unstable branch) has
automake 1.4, even though the packages for automake 1.6 to 1.9 are
available.
I replaced the package automake by automake-1.9 (1.9.5), and now
everything is working great.
>> Another thing, on Debian it seems that -lGL also requires -lpthread.
>> For the moment I'm just modifying makefile-unix-gcc to get it to work.
>> I dunno if this can be included in the CVS (both Makefile and
>> autotools), or if it will affect other Linux distro in a bad way.
>>
> I'll fix that.
Apparently, the problem only appears when -lGL redirects the linking to
libGL.a.
When redirected to NVIDIA drivers libGL.so, the problem goes away.
However I still suggest including -lpthread if it does not break the
compilation on other distros.
The way the old ODE Makefile provides the linker -l flags, always
redirects to libGL.a; even if NVIDIA drivers are installed.
>> PS: it seems to me that the first arguments given to the linker are
>> completely useless, aren't they?
>> -fomit-frame-pointer -ffast-math -g -O2
>> -I/home/tfautre/development/ode_unstable_cvs/ode/include
>> -fomit-frame-pointer -ffast-math -g -O2
>>
> Not really, what -g does is add debbuging information to the executable,
Actually I was refering to all the arguments (not just -g -O2). I don't
think any of these options affect the linker; just the compiler.
> So all it should take is a call to "strip" to remove the debug info from
> the library, still I'll see if I can
> find the way to remove those from the release build at least.
Yes, it would be better.
Now, here you'll go nuts: from what I understand you cannot use the same
compilation flag -O3 for every part of ODE (for optimization purposes,
or just as bug workarounds).
Here is what the current Makefile of ODE does:
- ODE is compiled with -O2
- *except* the following files that have to be compiled with -O1 (as
they have been autotuned before):
ode/src/fastldlt.c
ode/src/fastlsolve.c
ode/src/fastltsolve.c
ode/src/fastdot.c
- OPCODE cannot be compiled with -O2, but with -O1 (OPC_OptimizedTree.c
and another unidentified module are generating buggy code with -O2, see
the comments in ODE makefile for more details).
Note: I saw that in the latest CVS commit you changed -O2 to -O3. You
can use -O3 to compile parts of ODE that can be compiled with -O2.
However, -O3 is a dangerous optimization flag. So I suggest you verify
it actually provides faster code before enabling it (there are many
cases where -O3 will provide slower code).
Cheers,
Tanguy
More information about the ODE
mailing list