Package: crystalspace
Version: 0.99-20060125-1
Severity: serious
Justification: no longer builds from source

crystalspace fails to build on alpha:
[...]
    g++ -c -o ./out/linuxaxp/optimize/apps/tools/lighter2/scene.o -I. 
-I./include -I./include -Wall -Wno-unknown-pragmas -pipe -I/usr/local/include 
-fno-exceptions -fvisibility-inlines-hidden -fvisibility=hidden 
-Wno-non-virtual-dtor -O3 -fomit-frame-pointer -ffast-math  
apps/tools/lighter2/scene.cpp

In file included from ./include/csutil.h:42,
                 from ./include/crystalspace.h:33,
                 from apps/tools/lighter2/scene.cpp:19:
./include/csutil/csendian.h:160:4: error: #error Do not know how to convert to 
IEEE floats

and lots of more errors like this (there seems to be a bug in the
build system in that it doesn't stop when encountering a compilation
failure).

The problem is:

/**
 * Convert IEEE 32-bit floats from or to native machine floats.
 */
struct csIEEEfloat
{
#ifdef CS_IEEE_DOUBLE_FORMAT
  /// Convert native to IEEE
  static CS_FORCEINLINE uint32 FromNative (float f)
  { return *(uint32*)&f; }
  /// Convert IEEE to native
  static CS_FORCEINLINE float ToNative (uint32 f)
  { return *(float*)&f; }
#else
  #error Do not know how to convert to IEEE floats
#endif
};

Alpha does have IEEE format floats, so CS_IEEE_DOUBLE_FORMAT should
probably be defined.

While we're at it, FromNative and ToNative violate C++'s aliasing
rules and will yield incorrect results in certain settings. You should
use memcpy or a union.

        Falk



-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: alpha
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16-rc4-dirty
Locale: LANG=C, [EMAIL PROTECTED] (charmap=ISO-8859-15)


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

Reply via email to