Errors trying to build engine from SVN on GNU/Linux

vanfanel

New member
Hi,

I'm trying to build the OpenBOR engine on my GNU/Linux system (Ubuntu). However, I get the following errors:

Code:
manuel@vader:~/Downloads/openbor/engine$ make BUILD_LINUX=1 GCC_TARGET=64
Compiling LINUX Port: openbor.c...
In file included from source/globals.h:24:0,
                 from source/gamelib/screen.h:12,
                 from openbor.h:24,
                 from openbor.c:14:
source/safealloc.h:50:0: error: "strdup" redefined [-Werror]
 #define strdup(str) safeStrdup(str, __func__, __FILE__, __LINE__)
 ^
In file included from /usr/include/string.h:634:0,
                 from /usr/include/SDL2/SDL_stdinc.h:60,
                 from /usr/include/SDL2/SDL_main.h:25,
                 from /usr/include/SDL2/SDL.h:67,
                 from sdl/video.h:15,
                 from openbor.h:22,
                 from openbor.c:14:
/usr/include/x86_64-linux-gnu/bits/string2.h:1291:0: note: this is the location of the previous definition
 #   define strdup(s) __strdup (s)
 ^
In file included from openborscript.h:12:0,
                 from openbor.h:40,
                 from openbor.c:14:
source/scriptlib/Interpreter.h:66:16: error: inline function ‘Interpreter_EvalInstruction’ declared but never defined [-Werror]
 inline HRESULT Interpreter_EvalInstruction(Interpreter *pinterpreter);
                ^
source/scriptlib/Interpreter.h:65:16: error: inline function ‘Interpreter_Call’ declared but never defined [-Werror]
 inline HRESULT Interpreter_Call(Interpreter *pinterpreter);
                ^
In file included from source/scriptlib/SymbolTable.h:11:0,
                 from source/scriptlib/StackedSymbolTable.h:12,
                 from source/scriptlib/Interpreter.h:12,
                 from openborscript.h:12,
                 from openbor.h:40,
                 from openbor.c:14:
source/scriptlib/ScriptVariant.h:87:13: error: inline function ‘ScriptVariant_Boolean_Not’ declared but never defined [-Werror]
 inline void ScriptVariant_Boolean_Not(ScriptVariant *svar );
             ^
source/scriptlib/ScriptVariant.h:86:13: error: inline function ‘ScriptVariant_Neg’ declared but never defined [-Werror]
 inline void ScriptVariant_Neg( ScriptVariant *svar);
             ^
source/scriptlib/ScriptVariant.h:85:13: error: inline function ‘ScriptVariant_Pos’ declared but never defined [-Werror]
 inline void ScriptVariant_Pos( ScriptVariant *svar);
             ^
source/scriptlib/ScriptVariant.h:84:23: error: inline function ‘ScriptVariant_Dec_Op2’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Dec_Op2(ScriptVariant *svar );
                       ^
source/scriptlib/ScriptVariant.h:83:13: error: inline function ‘ScriptVariant_Dec_Op’ declared but never defined [-Werror]
 inline void ScriptVariant_Dec_Op(ScriptVariant *svar );
             ^
source/scriptlib/ScriptVariant.h:82:23: error: inline function ‘ScriptVariant_Inc_Op2’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Inc_Op2(ScriptVariant *svar );
                       ^
source/scriptlib/ScriptVariant.h:81:13: error: inline function ‘ScriptVariant_Inc_Op’ declared but never defined [-Werror]
 inline void ScriptVariant_Inc_Op(ScriptVariant *svar );
             ^
source/scriptlib/ScriptVariant.h:80:23: error: inline function ‘ScriptVariant_Mod’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Mod( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:79:23: error: inline function ‘ScriptVariant_Div’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Div( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:78:23: error: inline function ‘ScriptVariant_Mul’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Mul( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:77:23: error: inline function ‘ScriptVariant_Shr’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Shr( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:76:23: error: inline function ‘ScriptVariant_Shl’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Shl( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:75:23: error: inline function ‘ScriptVariant_Sub’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Sub( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:74:23: error: inline function ‘ScriptVariant_Add’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Add( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:73:23: error: inline function ‘ScriptVariant_Le’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Le( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:72:23: error: inline function ‘ScriptVariant_Ge’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Ge( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:71:23: error: inline function ‘ScriptVariant_Gt’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Gt( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:70:23: error: inline function ‘ScriptVariant_Lt’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Lt( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:69:23: error: inline function ‘ScriptVariant_Ne’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Ne( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:68:23: error: inline function ‘ScriptVariant_Eq’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Eq( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:67:23: error: inline function ‘ScriptVariant_Bit_And’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Bit_And( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:66:23: error: inline function ‘ScriptVariant_Xor’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Xor( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:65:23: error: inline function ‘ScriptVariant_Bit_Or’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Bit_Or( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:64:23: error: inline function ‘ScriptVariant_And’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_And( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:63:23: error: inline function ‘ScriptVariant_Or’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Or( ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:62:23: error: inline function ‘ScriptVariant_ModAssign’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_ModAssign(ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:61:23: error: inline function ‘ScriptVariant_SubAssign’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_SubAssign(ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:60:23: error: inline function ‘ScriptVariant_AddAssign’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_AddAssign(ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:59:23: error: inline function ‘ScriptVariant_DivAssign’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_DivAssign(ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:58:23: error: inline function ‘ScriptVariant_MulAssign’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_MulAssign(ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:57:23: error: inline function ‘ScriptVariant_Assign’ declared but never defined [-Werror]
 inline ScriptVariant *ScriptVariant_Assign(ScriptVariant *svar, ScriptVariant *rightChild );
                       ^
source/scriptlib/ScriptVariant.h:53:13: error: inline function ‘ScriptVariant_ToString’ declared but never defined [-Werror]
 inline void ScriptVariant_ToString(ScriptVariant *svar, LPSTR buffer );
             ^
source/scriptlib/ScriptVariant.h:52:13: error: inline function ‘ScriptVariant_IsTrue’ declared but never defined [-Werror]
 inline BOOL ScriptVariant_IsTrue(ScriptVariant *svar);
             ^
source/scriptlib/ScriptVariant.h:51:16: error: inline function ‘ScriptVariant_DecimalValue’ declared but never defined [-Werror]
 inline HRESULT ScriptVariant_DecimalValue(ScriptVariant *var, DOUBLE *pVal);
                ^
source/scriptlib/ScriptVariant.h:50:16: error: inline function ‘ScriptVariant_IntegerValue’ declared but never defined [-Werror]
 inline HRESULT ScriptVariant_IntegerValue(ScriptVariant *var, LONG *pVal);
                ^
source/scriptlib/ScriptVariant.h:48:13: error: inline function ‘ScriptVariant_ChangeType’ declared but never defined [-Werror]
 inline void ScriptVariant_ChangeType(ScriptVariant *var, VARTYPE cvt);
             ^
source/scriptlib/ScriptVariant.h:47:13: error: inline function ‘ScriptVariant_Copy’ declared but never defined [-Werror]
 inline void ScriptVariant_Copy(ScriptVariant *svar, ScriptVariant *rightChild ); // faster in some situations
             ^
source/scriptlib/ScriptVariant.h:46:13: error: inline function ‘ScriptVariant_Init’ declared but never defined [-Werror]
 inline void ScriptVariant_Init(ScriptVariant *var);
             ^
source/scriptlib/ScriptVariant.h:44:13: error: inline function ‘ScriptVariant_Clear’ declared but never defined [-Werror]
 inline void ScriptVariant_Clear(ScriptVariant *var);
             ^
source/scriptlib/ScriptVariant.h:41:14: error: inline function ‘StrCache_Get’ declared but never defined [-Werror]
 inline CHAR *StrCache_Get(int index);
              ^
source/scriptlib/ScriptVariant.h:40:12: error: inline function ‘StrCache_Pop’ declared but never defined [-Werror]
 inline int StrCache_Pop();
            ^
source/scriptlib/ScriptVariant.h:39:13: error: inline function ‘StrCache_Collect’ declared but never defined [-Werror]
 inline void StrCache_Collect(int index);
             ^
source/scriptlib/ScriptVariant.h:36:13: error: inline function ‘StrCache_Clear’ declared but never defined [-Werror]
 inline void StrCache_Clear();
             ^
In file included from openbor.h:25:0,
                 from openbor.c:14:
source/gamelib/transform.h:32:13: error: inline function ‘init_gfx_global_draw_stuff’ declared but never defined [-Werror]
 inline void init_gfx_global_draw_stuff(s_screen *, gfx_entry *, s_drawmethod *);
             ^
source/gamelib/transform.h:31:13: error: inline function ‘sprite_get_pixel’ declared but never defined [-Werror]
 inline char sprite_get_pixel(s_sprite *sprite, int x, int y);
             ^
source/gamelib/transform.h:30:13: error: inline function ‘write_pixel’ declared but never defined [-Werror]
 inline void write_pixel();
             ^
source/gamelib/transform.h:29:13: error: inline function ‘dest_dec’ declared but never defined [-Werror]
 inline void dest_dec();
             ^
source/gamelib/transform.h:28:13: error: inline function ‘dest_inc’ declared but never defined [-Werror]
 inline void dest_inc();
             ^
source/gamelib/transform.h:27:13: error: inline function ‘dest_line_dec’ declared but never defined [-Werror]
 inline void dest_line_dec();
             ^
source/gamelib/transform.h:26:13: error: inline function ‘dest_line_inc’ declared but never defined [-Werror]
 inline void dest_line_inc();
             ^
source/gamelib/transform.h:25:13: error: inline function ‘src_dec’ declared but never defined [-Werror]
 inline void src_dec();
             ^
source/gamelib/transform.h:24:13: error: inline function ‘src_inc’ declared but never defined [-Werror]
 inline void src_inc();
             ^
source/gamelib/transform.h:23:13: error: inline function ‘src_line_dec’ declared but never defined [-Werror]
 inline void src_line_dec();
             ^
source/gamelib/transform.h:22:13: error: inline function ‘src_line_inc’ declared but never defined [-Werror]
 inline void src_line_inc();
             ^
source/gamelib/transform.h:21:13: error: inline function ‘dest_seek’ declared but never defined [-Werror]
 inline void dest_seek(int x, int y);
             ^
source/gamelib/transform.h:20:13: error: inline function ‘src_seek’ declared but never defined [-Werror]
 inline void src_seek(int x, int y);
             ^
source/gamelib/transform.h:19:13: error: inline function ‘copy_pixel_block’ declared but never defined [-Werror]
 inline void copy_pixel_block(int bytes);
             ^
source/gamelib/transform.h:18:13: error: inline function ‘draw_pixel_gfx’ declared but never defined [-Werror]
 inline void draw_pixel_gfx(s_screen *dest, gfx_entry *src, int dx, int dy, int sx, int sy);
             ^
source/gamelib/transform.h:17:13: error: inline function ‘draw_pixel_sprite’ declared but never defined [-Werror]
 inline void draw_pixel_sprite(s_screen *dest, gfx_entry *src, int dx, int dy, int sx, int sy);
             ^
source/gamelib/transform.h:16:13: error: inline function ‘draw_pixel_bitmap’ declared but never defined [-Werror]
 inline void draw_pixel_bitmap(s_screen *dest, gfx_entry *src, int dx, int dy, int sx, int sy);
             ^
source/gamelib/transform.h:15:13: error: inline function ‘draw_pixel_screen’ declared but never defined [-Werror]
 inline void draw_pixel_screen(s_screen *dest, gfx_entry *src, int dx, int dy, int sx, int sy);
             ^
openbor.c: In function ‘common_dot’:
openbor.c:17634:39: error: iteration 10u invokes undefined behavior [-Werror=aggressive-loop-optimizations]
         iDot_time   =   self->dot_time[iIndex];                                                 //Get expire time.
                                       ^
openbor.c:17632:5: note: containing loop
     for(iIndex = 0; iIndex <= MAX_DOTS; iIndex++)                                               //Loop through all DOT in
     ^
cc1: all warnings being treated as errors
Makefile:783: recipe for target 'openbor.o' failed
make: *** [openbor.o] Error 1

I have SDL2 and helper libraries and dev packages installed.

Such a huge number of errors suggests that I am doing something wrong, but what?
 
Ok, I am replying to myself and leaving it here for future reference and for other people.

The problem is that recend GCC (5.x) refaults to -stc=gnu11, which changes the way mainline functions are declared and defined. More info here:

https://gcc.gnu.org/gcc-5/porting_to.html

So the solution to build OpenBOR from SVN sources with recent gcc is simply adding -std=gnu99 to the Makefile.
Also, removing -Werror will help if some inofensive warnings are reporting in the process so they are not threated as errors.
 
Back
Top Bottom