Gcc4x
From LagoonWiki
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)"
