[ODE] Autotools added to UNSTABLE

Tanguy Fautre tanguy.fautre at spaceapplications.com
Thu Apr 14 11:33:44 MST 2005


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 
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 
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):

- 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).



More information about the ODE mailing list