[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