[ODE] gcc 3.3 compile problem

Chris Jefferson caj at cs.york.ac.uk
Wed Jun 4 09:40:02 2003


John DeWeese wrote:

 > Compiling ODE with gcc 3.3 generates an error in some inline assembly 
chunk. I can't decipher it. Anyone have a similar experience?
 >
 > -bash$ gcc -v
 > ...
 > gcc version 3.3 (Debian)
 >
 > -bash$ make
 > gcc -c -Wall -fno-rtti -fno-exceptions -Wall -fomit-frame-pointer 
-ffast-math -Iinclude  -DdNODEBUG -O2 -o ode/src/timer.o ode/src/timer.cpp
 > ode/src/timer.cpp:109:17: missing terminating " character
 > ode/src/timer.cpp: In function `void getClockCount(long unsigned int*)':
 > ode/src/timer.cpp:110: error: parse error before `movl'
 > ode/src/timer.cpp:112:28: missing terminating " character
 > ode/src/timer.cpp:119:17: missing terminating " character
 > ode/src/timer.cpp: In function `void serialize()':
 > ode/src/timer.cpp:120: error: parse error before `$0'
 > ode/src/timer.cpp:121:14: missing terminating " character
 > make: *** [ode/src/timer.o] Error 1
 >
 > _______________________________________________
 > ODE mailing list
 > ODE@q12.org
 > http://q12.org/mailman/listinfo/ode


without looking at the code I suspect it could be due to the fact that 
gcc 3.3 no longer allows multi-line string literals. So you can write 
things like

inline asm {
"some asm
some more asm
yet more asm"
}

you have to write:

inline asm {
"some asm"
"some more asm"
"yet more asm"
}

(can't remember exact notation off the top of my head, but you get the idea)

Chris