This patch is needed to compile the Emulator successfully with
recent versions of GCC and the FLTK library. It addresses the
following main issues:
* Renaming of filename_ext() to fl_filename_ext() etc, in line
with the renaming in FLTK 1.1.x (trivial);
* Removal of spurious braces in struct initialisations, about
which the compiler is more strict than it used to be (trivial);
* Various C++ obscurities about which the compiler is more
strict than it used to be (decidedly non-trivial :-));
* For obscure reasons involving the FLTK changes to configure.in
and subverting automake, it includes a couple of build-related
patches that I've had lying around for a few years. The only
interesting effect of this is that building in a separate
directory (even more separate than BuildUnix) now works.
When compiled with GCC 3.4.x or 4.0.x, this results in a working
poser. In particular, the miscompilation with GCC 3.3.x
described in
http://news.palmos.com/read/messages?id=153083
has gone away. If you are using GCC 3.3.x, you will likely want
to arrange for EmPoint.cpp to be compiled with -fno-strict-aliasing
in order to avoid this problem. Or use a more recent GCC. See the
URL above for details.
Logged In: YES
user_id=4669
The patch has been updated with a workaround for the GCC 3.3.x EmPoint.cpp
problem. It turns around that it (most likely) was indeed a bug in that compiler,
so the updated patch detects this compiler bug and uses a different version of
EmPoint.cpp if the bug is present.
With this updated patch, compiling with GCC 3.3.x should also result in a
working poser, without any -fno-strict-aliasing makefile tricks needed.
Patches for building with recent GCC and FLTK, including EmPoint.cpp workaround