On 04/04/2011 07:48 PM, doragasu wrote: > > I'm trying to compile OpenRaider, and I'm facing a weird problem. > > This run compiles perfectly: > > ___________________ > doragasu@doragasu-C2D:~/Escritorio/OpenRaider-0.1.0/src$ gcc -Wall -Isrc > -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DSDL_INTERFACE > -DUSING_OPENGL -DZLIB_SUPPORT -DUSING_EMITTER -DUSING_OPENAL -DUSING_MTK_TGA > -DUSING_PTHREADS -DUSING_HEL -DVERSION="\"OpenRaider-0.1.0.sdl-20030512\"" > -DBUILD_HOST="\"Linux doragasu-C2D 2.6.32-30-generic x86_64\"" -ffast-math > -funroll-loops -fomit-frame-pointer -fexpensive-optimizations -O2 -o math.o > -c hel/math.cpp > ___________________ > > But if I change the path in the call to the one used in the makefile, it > fails: > > ___________________ > doragasu@doragasu-C2D:~/Escritorio/OpenRaider-0.1.0$ gcc -Wall -Isrc > -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DSDL_INTERFACE > -DUSING_OPENGL -DZLIB_SUPPORT -DUSING_EMITTER -DUSING_OPENAL -DUSING_MTK_TGA > -DUSING_PTHREADS -DUSING_HEL -DVERSION="\"OpenRaider-0.1.0.sdl-20030512\"" > -DBUILD_HOST="\"Linux doragasu-C2D 2.6.32-30-generic x86_64\"" -ffast-math > -funroll-loops -fomit-frame-pointer -fexpensive-optimizations -O2 -o > bin/debug/math.o -c src/hel/math.cpp > In file included from /usr/include/stdlib.h:43, > from src/hel/math.cpp:2: > /usr/include/bits/waitstatus.h:80: error: declaration of âunsigned int > wait::<anonymous struct>::__w_retcodeâ > /usr/include/bits/waitstatus.h:75: error: conflicts with previous > declaration âunsigned int wait::<anonymous struct>::__w_retcodeâ > /usr/include/bits/waitstatus.h:81: error: declaration of âunsigned int > wait::<anonymous struct>::__w_coredumpâ > /usr/include/bits/waitstatus.h:74: error: conflicts with previous > declaration âunsigned int wait::<anonymous struct>::__w_coredumpâ > /usr/include/bits/waitstatus.h:82: error: declaration of âunsigned int > wait::<anonymous struct>::__w_termsigâ > /usr/include/bits/waitstatus.h:73: error: conflicts with previous > declaration âunsigned int wait::<anonymous struct>::__w_termsigâ > /usr/include/bits/waitstatus.h:94: error: declaration of âunsigned int > wait::<anonymous struct>::__w_stopsigâ > /usr/include/bits/waitstatus.h:89: error: conflicts with previous > declaration âunsigned int wait::<anonymous struct>::__w_stopsigâ > /usr/include/bits/waitstatus.h:95: error: declaration of âunsigned int > wait::<anonymous struct>::__w_stopvalâ > /usr/include/bits/waitstatus.h:88: error: conflicts with previous > declaration âunsigned int wait::<anonymous struct>::__w_stopvalâ > ___________________ > > The only change in between runs is the path passed to -c and -o, and the > path from where gcc is called, but paths to src and object files is right in > both cases. > > Why is compilation failing? Maybe a bug? This is possible only if __LITTLE_ENDIAN == __BIG_ENDIAN Or gcc is insane. :-) try compiling with -save-temps -Wp,-dD and have a look at math.ii Andrew.