Gcc4x

From LagoonWiki

Jump to: navigation, search

4.1 -> 4.2

 gcc4.2 breaks the build badly, libraries included need to be updated, needs to be done carefully to insure it doesn't break anything.

Temporary solution: Fix makefiles to explicitly use g++-4.1.

 Ok, this doesn't work too well, either it's my machine or Berserker runs extremely slow. Either way, it's a bad solution, I hate duct taping stuff.


Good solution: Requires testing, new libraries may break stuff. Download new libtomcrypt (I used 0.99, newer versions break filenames with TNL):

 http://libtomcrypt.bytemine.net/libtomcrypt.com_80/download.html

Replace the old libtomcrypt in externalPackages with the new one Add this to the new makefile:

 Line 144:
  default:library copyTolib
 EOF (make sure there's a tab, not spaces):
  copyTolib:
         cp libtomcrypt.a $(NOMADS_HOME)/lib/linux

Create a patch file (externalPackages/openal/al/include/AL/alc.patch:

--- /usr/include/AL/alc.h.orig  2007-02-03 16:26:49.000000000 +0100
+++ /usr/include/AL/alc.h   2007-02-03 16:26:59.000000000 +0100
@@ -187,7 +187,7 @@
 
 ALC_API void            ALC_APIENTRY alcDestroyContext( ALCcontext *context );
 
-ALC_API ALCcontext *    ALC_APIENTRY alcGetCurrentContext( ALCvoid );
+ALC_API ALCcontext *    ALC_APIENTRY alcGetCurrentContext( ALCvoid *buffer );
 
 ALC_API ALCdevice*      ALC_APIENTRY alcGetContextsDevice( ALCcontext *context );
 
@@ -248,7 +248,7 @@
 typedef void           (ALC_APIENTRY *LPALCPROCESSCONTEXT)( ALCcontext *context );
 typedef void           (ALC_APIENTRY *LPALCSUSPENDCONTEXT)( ALCcontext *context );
 typedef void           (ALC_APIENTRY *LPALCDESTROYCONTEXT)( ALCcontext *context );
-typedef ALCcontext *   (ALC_APIENTRY *LPALCGETCURRENTCONTEXT)( ALCvoid );
+typedef ALCcontext *   (ALC_APIENTRY *LPALCGETCURRENTCONTEXT)( ALCvoid *buffer );
 typedef ALCdevice *    (ALC_APIENTRY *LPALCGETCONTEXTSDEVICE)( ALCcontext *context );
 typedef ALCdevice *    (ALC_APIENTRY *LPALCOPENDEVICE)( const ALCchar *devicename );
 typedef ALCboolean     (ALC_APIENTRY *LPALCCLOSEDEVICE)( ALCdevice *device );

Apply the patch:

$ patch alc.h alc.patch

Ripped off new il.h, ilu.h, ilut.h from /usr/local/include/IL (Ubuntu DevIL install I imagine), place into /code/inc/il/


3.x -> 4.x

ivy/code/inc/mathlib/matrix.h

 Line 475: "float matrix33::det()" to "float det()"
 Line 482: "void matrix33::invert()" to "void invert()"

ivy/code/inc/util/nringbuffer.h

 Line 55: "nRingBuffer<TYPE>::nRingBuffer<TYPE>(int _num)" to "nRingBuffer<TYPE>::nRingBuffer(int _num)"
 Line 69: "nRingBuffer<TYPE>::nRingBuffer<TYPE>() :" to "nRingBuffer<TYPE>::nRingBuffer() :"

ivy/code/inc/misc/nquickwatch.h

 Line 44: "virtual void nPhysics::DoMath( vector3& t, vector3& dt, const vector3& ddt, quaternion& q, quaternion& dq, vector3 ddq, vector3 addq, const float& m, const float& i, const float& f, const float& rf, float dtime );" to "virtual void DoMath( vector3& t, vector3& dt, const vector3& ddt, quaternion& q, quaternion& dq, vector3 ddq, vector3 addq, const float& m, const float& i, const float& f, const float& rf, float dtime );"

ivy/code/inc/lagoon/nmovetoserver.h

 Line 33: "const int timeSteps = int(maxLookAheadTime / lookAheadFidelity);" to "const int timeSteps = 16;"

ivy/code/inc/terrain/nflatterrainnode.h

 Line 181: "void nFlatTerrainNode::AddTriangle(flatquadsquare *qs," to "void AddTriangle(flatquadsquare *qs,"
 Line 250: "ushort nFlatTerrainNode::AllocQuadSquare(flatquadcornerdata *pcd)" to "ushort AllocQuadSquare(flatquadcornerdata *pcd)"
 Line 267: "void nFlatTerrainNode::FreeQuadSquare(flatquadsquare *qs)" to "void FreeQuadSquare(flatquadsquare *qs)"

ivy/code/inc/terrain/flat_quadtree.h

 Line 261: "flatquadsquare* flatquadsquare::GetNeighbor(int dir, flatquadcornerdata& cd);" to "flatquadsquare* GetNeighbor(int dir, flatquadcornerdata& cd);"
 Line 289: "void flatquadsquare::SetupCornerData(flatquadcornerdata *q, flatquadcornerdata& cd, int child_index) {" to "void SetupCornerData(flatquadcornerdata *q, flatquadcornerdata& cd, int child_index) {"
 Line 424: "bool flatquadsquare::VertexTest(float detail_threshold, int tx, int tz, float h, float error, vector3& viewer) {" to "bool VertexTest(float detail_threshold, int tx, int tz, float h, float error, vector3& viewer) {"
 Line 441: "bool flatquadsquare::BoxTest(float detail_threshold, float error, vector3& viewer) {" to "bool BoxTest(float detail_threshold, float error, vector3& viewer) {"
 Line 464: "void flatquadsquare::EnableEdgeVertex(nFlatTerrainNode *tn, int index, bool increment_count, flatquadcornerdata& cd);" to "void EnableEdgeVertex(nFlatTerrainNode *tn, int index, bool increment_count, flatquadcornerdata& cd);"
 Line 472: "flatquadsquare *flatquadsquare::EnableDescendant(nFlatTerrainNode *tn, int count, int path[], flatquadcornerdata& cd) {" to "flatquadsquare *EnableDescendant(nFlatTerrainNode *tn, int count, int path[], flatquadcornerdata& cd) {"
 Line 495: "void flatquadsquare::EnableChild(nFlatTerrainNode *tn, int index, flatquadcornerdata& cd) {" to "void EnableChild(nFlatTerrainNode *tn, int index, flatquadcornerdata& cd) {"
 Line 513: "void flatquadsquare::NotifyChildDisable(nFlatTerrainNode *tn, flatquadcornerdata& cd, int index) {" to "void NotifyChildDisable(nFlatTerrainNode *tn, flatquadcornerdata& cd, int index) {"
 Line 543: "void flatquadsquare::NotifyChildDisableAux(nFlatTerrainNode *tn, flatquadcornerdata& cd, int index) {" to "void NotifyChildDisableAux(nFlatTerrainNode *tn, flatquadcornerdata& cd, int index) {"

ivy/code/inc/terrain/quadtree.h

 Line 278: "quadsquare* quadsquare::GetNeighbor(int dir, quadcornerdata& cd) {" to "quadsquare* GetNeighbor(int dir, quadcornerdata& cd) {"
 Line 328: "void quadsquare::SetupCornerData(quadcornerdata *q, quadcornerdata& cd, int child_index) {" to "void SetupCornerData(quadcornerdata *q, quadcornerdata& cd, int child_index) {"
 Line 494: "bool quadsquare::VertexTest(float detail_threshold, int tx, int tz, float h, float error, vector3& viewer) {" to "bool VertexTest(float detail_threshold, int tx, int tz, float h, float error, vector3& viewer) {"
 Line 511: "bool quadsquare::BoxTest(float detail_threshold, float error, vector3& viewer) {" to "bool BoxTest(float detail_threshold, float error, vector3& viewer) {"
 Line 533: "void quadsquare::EnableEdgeVertex(nTerrainNode *tn, int index, bool increment_count, quadcornerdata& cd) {" to "void EnableEdgeVertex(nTerrainNode *tn, int index, bool increment_count, quadcornerdata& cd) {"
 Line 605: "quadsquare *quadsquare::EnableDescendant(nTerrainNode *tn, int count, int path[], quadcornerdata& cd) {" to "quadsquare *EnableDescendant(nTerrainNode *tn, int count, int path[], quadcornerdata& cd) {"
 Line 628: "void quadsquare::EnableChild(nTerrainNode *tn, int index, quadcornerdata& cd) {" to "void EnableChild(nTerrainNode *tn, int index, quadcornerdata& cd) {"
 Line 646: "void quadsquare::NotifyChildDisable(nTerrainNode *tn, quadcornerdata& cd, int index) {" to "void NotifyChildDisable(nTerrainNode *tn, quadcornerdata& cd, int index) {"

ivy/code/inc/terrain/nterrainnode.h

 Line 173: "void nTerrainNode::AddTriangle(quadsquare *, VertInfo *v0, VertInfo *v1, VertInfo *v2)" to "void AddTriangle(quadsquare *, VertInfo *v0, VertInfo *v1, VertInfo *v2)"
 Line 226: "ushort nTerrainNode::AllocQuadSquare(quadcornerdata *pcd)" to "ushort AllocQuadSquare(quadcornerdata *pcd)"
 Line 243: "void nTerrainNode::FreeQuadSquare(quadsquare *qs)" to "void FreeQuadSquare(quadsquare *qs)"
Personal tools