Package: ogre
Version: 1.0.0-4
Severity: serious
Tags: patch

When building 'ogre' in a clean 'unstable' chroot,
I get the following error:

In file included from ../../OgreMain/include/OgrePrerequisites.h:88,
                 from ../../OgreMain/include/OgreAnimation.h:29,
                 from OgreAnimation.cpp:26:
../../OgreMain/include/OgreStdHeaders.h:30:23: error: hash_set: No such file or 
directory
../../OgreMain/include/OgreStdHeaders.h:31:23: error: hash_map: No such file or 
directory
../../OgreMain/include/OgreString.h:64: error: expected initializer before '<' 
token
../../OgreMain/include/OgreString.h:172: error: expected initializer before '<' 
token
../../OgreMain/include/OgreNode.h:64: error: ISO C++ forbids declaration of 
'hash_map' with no type
../../OgreMain/include/OgreNode.h:64: error: typedef name may not be a 
nested-name-specifier
../../OgreMain/include/OgreNode.h:64: error: expected ';' before '<' token
../../OgreMain/include/OgreNode.h:65: error: 'ChildNodeMap' was not declared in 
this scope
../../OgreMain/include/OgreNode.h:65: error: template argument 1 is invalid
../../OgreMain/include/OgreNode.h:71: error: 'ChildNodeMap' does not name a type
make[3]: *** [OgreAnimation.lo] Error 1
make[3]: Leaving directory `/ogre-1.0.0/build-tree/ogre-free/OgreMain/src'

The attached patch fixes this by always defining GCC_3_1 and EXT_HASH 
for gcc version >= 3. It also fixes some 'cast from pointer to int 
loses precision' errors which occur in OgreSerializer.cpp when
compiling on 64 bit platform with gcc4.

Additionally, the patch adds the missing Build-Depends on 'libxerces26-dev'
and 'libcegui-mk2-dev' to debian/control.

Regards
Andreas Jochens

diff -urN ../tmp-orig/ogre-1.0.0/debian/control ./debian/control
--- ../tmp-orig/ogre-1.0.0/debian/control       2005-04-12 15:31:25.707685308 
+0200
+++ ./debian/control    2005-04-12 15:01:28.753252140 +0200
@@ -2,7 +2,7 @@
 Priority: optional
 Section: libs
 Maintainer: Federico Di Gregorio <[EMAIL PROTECTED]>
-Build-Depends: dbs, debhelper (>> 4.0.0), libdevil-dev, libfreetype6-dev, 
libjpeg62-dev, liblcms1-dev, libmng-dev, libpng-dev, libtiff-dev, zlib1g-dev, 
libopenexr-dev, xlibs-dev, doxygen, texi2html, libtool, automake1.9, autoconf, 
pkg-config, libxaw7-dev, libsdl1.2-dev, libzzip-dev
+Build-Depends: dbs, debhelper, libcegui-mk2-dev, libxerces26-dev, 
libdevil-dev, libfreetype6-dev, libjpeg62-dev, liblcms1-dev, libmng-dev, 
libpng-dev, libtiff-dev, zlib1g-dev, libopenexr-dev, xlibs-dev, doxygen, 
texi2html, libtool, automake1.9, autoconf, pkg-config, libxaw7-dev, 
libsdl1.2-dev, libzzip-dev
 Standards-Version: 3.6.1.0
 
 Package: libogre5
diff -urN ../tmp-orig/ogre-1.0.0/debian/patches/gcc4_fix.diff 
./debian/patches/gcc4_fix.diff
--- ../tmp-orig/ogre-1.0.0/debian/patches/gcc4_fix.diff 1970-01-01 
01:00:00.000000000 +0100
+++ ./debian/patches/gcc4_fix.diff      2005-04-12 15:18:38.361736670 +0200
@@ -0,0 +1,41 @@
+diff -urN tmp/OgreMain/include/OgrePlatform.h 
ogre-free/OgreMain/include/OgrePlatform.h
+--- tmp/OgreMain/include/OgrePlatform.h        2005-04-12 13:03:15.670449105 
+0000
++++ ogre-free/OgreMain/include/OgrePlatform.h  2005-04-12 13:09:24.565540326 
+0000
+@@ -51,6 +51,11 @@
+ #   define OGRE_COMPILER OGRE_COMPILER_GNUC
+ #   define OGRE_COMP_VER (((__GNUC__)*100)+__GNUC_MINOR__)
+ 
++#   if __GNUC__ >= 3
++#      define GCC_3_1
++#      define EXT_HASH
++#   endif
++
+ #elif defined( __BORLANDC__ )
+ #   define OGRE_COMPILER OGRE_COMPILER_BORL
+ #   define OGRE_COMP_VER __BCPLUSPLUS__
+diff -urN tmp/OgreMain/src/OgreSerializer.cpp 
ogre-free/OgreMain/src/OgreSerializer.cpp
+--- tmp/OgreMain/src/OgreSerializer.cpp        2005-02-04 17:50:16.000000000 
+0000
++++ ogre-free/OgreMain/src/OgreSerializer.cpp  2005-04-12 12:13:36.726968986 
+0000
+@@ -310,7 +310,7 @@
+     {
+         for(unsigned int index = 0; index < count; index++)
+         {
+-            flipEndian((void *)((int)pData + (index * size)), size);
++            flipEndian((void *)((long)pData + (index * size)), size);
+         }
+     }
+     
+@@ -319,9 +319,9 @@
+         char swapByte;
+         for(unsigned int byteIndex = 0; byteIndex < size/2; byteIndex++)
+         {
+-            swapByte = *(char *)((int)pData + byteIndex);
+-            *(char *)((int)pData + byteIndex) = *(char *)((int)pData + size - 
byteIndex - 1);
+-            *(char *)((int)pData + size - byteIndex - 1) = swapByte;
++            swapByte = *(char *)((long)pData + byteIndex);
++            *(char *)((long)pData + byteIndex) = *(char *)((long)pData + size 
- byteIndex - 1);
++            *(char *)((long)pData + size - byteIndex - 1) = swapByte;
+         }
+     }
+     
+


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to