I'm Cross!
Old-Version Change-Log

"Blue Angels" by Lynn Rothan



This page contains the change-log for old versions of IMCROSSIf you want source code for current or recent versions, please go to the main page.  Older tarballs are routinely eliminated from the IMCROSS site as a space-saving measure, but you can visit the git repository created by Johannes Schindelin (thanks, Johannes!) if you want to retrieve their contents.



Version
Link
Win32 target
Mac OS X  target
Tested
(
Note [1])

Change log
May 21, 2008
IMCROSS-20080521.tar.gz
(No core change)
(No change)
L1, L2, M1, W1, W2
[Focus of this version:  Compliance with Apple License, bug fixes, installability improvements.]

Update:  In preparation for (hopefully!) adding the future ability to use alternate versions of Apple's SDK, I renamed the file "macosx-headers-10.4u.tar.bz2" to "macosx-headers-10.4u-2.2.1.tar.bz2", and forgot to mention it in this change log or to make a provision in the makefile for continuing to use "macosx-headers-10.4u.tar.bz2" if you've already downloaded it.  So you need to rename it or make a link accordingly, or else you'll get a warning message demanding that you download from Apple.  Sorry about that!

The ability of IMCROSS to automatically download Apple's SDK for you has been eliminated, due to the negative response of Apple software licensing to my request for clarification.  Well, I tried my best!  You'll have to download manually from now own.

A bug related to installation ordering and file-overwriting introduced at 20080518 has been fixed.  (The bug might also be expressed on some build-platforms regardless of the changes at 20080518.)  The symptom of this bug is that in linking a GTK+ program for Win32, libpng12 (which doesn't exist) is used in place of libpng13.  A bug (or perhaps "unfortunate characteristic) in pkg-config on some platforms has been worked around now in the GTK+ sample program build.

The cross-toolchain (gcc etc.) targeting Mac OS X is now compiled from source rather than installed from binaries.  This adds to the downloads and install-time for IMCROSS, but it potentially will later allow use of SDKs from alternate versions of Apple Xcode, which may be necessary for solving the Intel Mac OS X 10.5 problems.  Also, it enables the next item below.

It is now possible to perform an IMCROSS installation at locations other than /usr/local and /opt/mac (such as your home directory), allowing you also in those situations to eliminate the use of 'sudo'.

It is now possible to clone a binary IMCROSS installation, and an explanation of the technique has been added.

There is now a "contributed" Qt 4 library, known to work, but presently Windows-only.  It hasn't been integrated yet into the IMCROSS contribution framework, and so does not yet build as-is within IMCROSS.  (Thanks to Sebastian Held!)

Developer system requirements:  About 20MB more downloads for core functionality relative to 20080518.  (More, of course, if you wanted Qt, and if Qt was ready to go!)

Updating:  If you're willing to continue using the default directory setup,
  1. Rename "macosx-headers-10.4u.tar.bz2" to "macosx-headers-10.4u-2.2.1.tar.bz2". 
  2. Delete "setup_macosx_*" and /opt/mac.
  3. Do 'make default clean samples'.  
If you want to re-install in a different set of directories than before,  
  1. Alter your custom build configuration.
  2. Rename "macosx-headers-10.4u.tar.bz2" to "macosx-headers-10.4u-2.2.1.tar.bz2".
  3. sudo rm /Developer /usr/local/bin/i386-mingw32-* /usr/local/bin/*-apple-darwin8-*
  4. make clean_imcross default clean samples create_regression_data
May 18, 2008
IMCROSS-20080518.tar.gz
(No core change)
(No core change)
L2, M2, M3, W2
[Focus of this version:  Bug fixes, convenience features, contributed libraries.]

The potentially-broken Mac OS X application bundles mentioned in the last few snapshots as the reason for discouraging upgrades has now been fixed.  Furthermore, now that the application bundles have been fixed, Allegro is known to work on Mac OS X.

Some interactive aspects of IMCROSS that have been impeding unattended installation have been eliminated:
  • I was unaware that InstallJammer has a "silent" mode in which it can be installed without user interaction.  (Thanks to Eric Smith for suggesting this.)  The drawback is that you don't get a choice of languages when you do this, so English is always used.
  • The GTK+ installation would sometimes pause the installation in order to force the user to okay overwriting files.  This has been fixed.
If IMCROSS installs pthreads-w32 after libxml2 (which is the reverse of the normal build order), there is an inconsistency between the two which causes the build to fail.  (Thanks to Eric Smith for pointing out this problem!)  This has now been corrected by disabling threading in libxml2 for Win32.  The inconsistency involves the datatypes of thread objects, so it may be that this is a bad bug and that libxml2 would misbehave if threading kicked in.

The various log reports related to regression tests were not doing a very good job in capturing the software and hardware configurations of the build-machines and test-machines.  Hopefully, this has now been improved significantlly.  (Input from Steven Holloway has helped a lot.  Thanks, Steven!)

Another "contributed" directory has been added, for the Simple Directmedia Layer (SDL), but the sample programs for it seem to be only partially functional.  Surprisingly, the functional parts are things like graphics and audio, and the non-functional parts are things like printing out a version code, so it might still be useful for somebody.  A contributed directory for the GNOME Structured File library (libgsf) has also been added (thanks to Eric Smith!), but it is limited right now to Windows, with Mac OS X support pending and no sample program to demonstrate compilation.

Developer system requirements:  No difference for default installations.

Updating:  Delete "setup_libxml2*", and then do 'make default clean samples'.
May 13, 2008
IMCROSS-20080513.tar.gz
(Not recommended.)
(New) libold 0.17
(New) libold 0.17 L1, L2, M2, W2 (libold only)
[Focus of this version:  Addressing user feedback.]

(The same comments about potentially-broken Mac OS X application bundles apply as for 20080512.  I have a copy of Mac OS X 10.4 on order and should be able to clear up these questions once I have it.)

This snapshot contains changes driven by user feedback:
  • A greater degree of customization of the IMCROSS installation—for example, more-easily skipping the installation of unwanted large libraries—is now available.  Furthermore, these changes are persistent, and don't require you to remember some funky set of command-line options every time you 'make' IMCROSS.  Another configurable item that may be of interest is the possibility of changing the installation directories for InstallJammer and the Win32 tools to locations not requiring root permissions.  (The location of the Mac OS X installation directory cannot be changed at present.)   This change is untested at this point, except that it's known that a full installation with the default switch settings continues to work.
  • There is now a framework under which users can extend IMCROSS to include additional libraries, and (optionally) contribute these extensions back to the project.  As a demonstration, I have myself created as a "contribution" the installation of Alberto Bertogli's Open Lock Daemon (OLD) library, libold.
Developer system requirements:  Minimal change.

Updating:  Not recommended at this time, but 'make clean samples'.  The new downloads (for libold) are minimal.
May 12, 2008
IMCROSS-20080512.tar.gz
(Not recommended.)
(No change)
(New) Allegro 4.2.2
L1, L2, W1
[Focus of this version:  Major feature addition ... maybe.]

I don't recommend downloading this version, except for the very brave, because the important changes have been for the Mac platform and haven't been tested there, so there's no guarantee either that the new features work, or that the old features continue to work.  In particular, the creation of application bundles may have broken.  If you downloaded before I added this warning, you can revert to yesterday's snapshot with no harm done.

The Allegro cross-platform toolkit has been added on the Mac OS X platform, including its sample program, and the installation package.  (That leaves GTK+ and Fortran as the only significant differences between Windows and Mac OS X, with respect to IMCROSS.)  The bad new is that I hadn't any access today to a Mac OS X machine, so I haven't the foggiest idea if the sample program works or not!  But the installation of Allegro at all was such a masterpiece of tweakery that I'm pleased anyway.

The installation script now advises you as to how to make sure that the man-pages for the cross-tools are accessible.

The names of the Mac OS X installation packages have been changed to things like IMCROSS-wxWidgets.app.tar.gz (as opposed to sample_wxWidgets_macosx_fat.app.tar.gz), as I think "IMCROSS-wxWidgets" looks better as a description for a desktop icon than "sample_wxWidgets_macosx_fat"). 

I've now found that the compile time-regression tests (as opposed to the run-time regression tests) that I introduced yesterday do have some circumstances where they fail in moving to a new machine, namely sample_Fortran.exe, sample_wxWidgets-2.8.exe, and sample_wxWidgets_macosx_fat.  Not that there's anything wrong with the sample programs, since they work normally, just that I didn't expect their checksums to change!  At the moment I'm at a loss as to know why these particular failures are reasonable or likely.

Eliminated a goofy directory ("Samples/wxWidgets-") which IMCROSS insisted on creating during clean installs of wxWidgets.

Developer system requirements:  Increased by about 9MB.

Updating:  'make default clean samples create_regression_data'.  There will be 3 MB of new downloads relative to 20080511.
May 11, 2008
IMCROSS-20080511.tar.gz
(No change)
(No change)
L2, W2, M2
[Focus of this version:  Bug fixes and minor feature additions.]

A number of features for simplifying testing of IMCROSS and reducing the subjectivity of those tests have been added. This work isn't necessarily complete yet, but it is much more useful than the casual testing I was doing previously.  More significantly, perhaps, I hope that it will be enough to allow some of you to perform testing in order to convince yourself that the tools are working (or not!).

The order of installation of the toolchains/libraries has been changed, so that InstallJammer is installed first, rather than in the middle.  I failed to notice before that the interactive prompts for InstallJammer were messing up unattended overnight installation, because the installation would pause while waiting for input.  So now you can get the interactive part out of the way first, and then allow the rest of the installation to go unattended.

Building i386-mingw32-gnat (the ADA compiler, a part of GCC) is now explicitly disabled, because building the ADA cross-compiler would fail, bombing the entire IMCROSS installation.  (Thanks to Olivier Delannoy for pointing this out!)  IMCROSS would not normally try to build ADA, but I believe that if you have a native gnat installed, then it would do so.  Since having ADA installed is relatively rare—I build embedded avionics for a living and I don't have it installed—most people wouldn't experience the problem.  (I certainly didn't.)

I hadn't been aware that g77 (gcc 3.x) has now been replaced by gfortran (gcc 4.x).  I've modified the sample_Fortran program to use whichever is available on the native Linux system.

Bison has been added to the list of pre-requisites.  (Thanks to Johannes Schindelin for pointing this out!)

Developer system requirements:  No changes.

Updating:  If some of the bugs which have now been fixed prevented you from previously installing the toolchains, run 'make'.  If you wish to perform regression tests, run 'make clean samples create_regression_data'.  There are no new downloads relative to 20080510.
May 10, 2008
IMCROSS-20080510.tar.gz binutils 2.18
gcc 3.4.6 (w/ Fortran, Objective-C)
PCRE 7.6
pthreads-w32 2.8.0
zlib 1.2.3
wxWidgets 2.8.7
GTK+ 2.12.9 (and friends)
Allegro 4.2.2
FLTK 1.1.9

libiconv 1.9.1
libxml2 2.6.31
InstallJammer 1.2.5
cctools 20060413
gcc 4.01  (Apple 5247) w/Objective-C
Regular expressions (native)
pthreads (native)
zlib (native)
(New) wxWidgets 2.8.7
GTK+ (pending)
Allegro (pending)
(New) FLTK 1.1.9
libiconv 1.9.1
libxml2 2.6.31
(New) Installation packages (native)
L2, M2, M3 (Changes only) (Note [4]) [Focus of this version:  Major feature additions.]

The FLTK and wxWidgets libraries have been added for Mac OS X.

The issue of deploying applications on Mac OS X has been resolved, and 'make samples' now automatically generates installation packages of a form that should be acceptable to Mac users for the sample programs sample_fltk_macosx_fat and sample_wxWidgets_macosx_fat.  No separate installation program (such as InstallJammer) is needed or desired.

It turns out that I was wrong that Objective-C wasn't supported by the Mac OS X toolchain; it is supported, but the language syntax seems to be slightly different than in Linux and Windows, possibly due to Apple's patches.

The sample programs have been segregated into a file called "Makefile.samples", rather than remaining  interspersed in the big installation scripts Makefile and Makefile.macosx.  They've also been reformatted and cleaned up.  This makes it a lot easier to grasp what's going on with them.

Fixed a bug, wherein a completely clean or new installation would fail because the object files were never cleared from the build directories between the Windows and Mac OS X builds.

Developer system requirements:  Downloads (200MB), plus installed Windows tools (220 MB), plus installed Mac OS X tools (400 MB).  Total=820 MB.  (I wish I had thought to check this earlier!)

Updating:  Run 'make' and then 'make samples'.  There will be 14 MB of new downloads relative to 20080508.
May 8, 2008
IMCROSS-20080508.tar.gz
binutils 2.18
gcc 3.4.6 (w/ Fortran, Objective-C)
PCRE 7.6
pthreads-w32 2.8.0
zlib 1.2.3
wxWidgets 2.8.7
GTK+ 2.12.9 (and friends)
Allegro 4.2.2
FLTK 1.1.9

libiconv 1.9.1
libxml2 2.6.31
InstallJammer 1.2.5
(New) cctools 20060413
(New) gcc 4.01  (Apple 5247)
Regular expressions (native)
pthreads (native)
zlib (native)
wxWidgets (pending)
GTK+ (pending)
Allegro (pending)
FLTK (pending)

(New) libiconv 1.9.1
(New) libxml2 1.9.1
InstallJammer (pending)
L2, M1 (new functionality only) (Note [3])
[Focus of this version:  Major feature addition.]

Initial support for Mac OS X has been added.  The basic status right now is that the toolchain seems to work for building basic programs, but that little library support has been added yet.  Because of limitations in testing (I have only a PowerPC with Mac OS X 10.2.8, and the cross-compilation environment targets 10.4),  my ability to verify operation of the test programs is limited.  Any information anybody wants to supply on this topic would be greatly appreciated!

Updating:  Run 'make' and then 'make samples'.  There will be 65 MB of new downloads relative to 20080506.
May 6, 2008
IMCROSS-20080506.tar.gz
binutils 2.18
gcc 3.4.6 (w/ Fortran, Objective-C)
PCRE 7.6
pthreads-w32 2.8.0 (w/ DLL)
zlib 1.2.3
wxWidgets 2.8.7
GTK+ 2.12.9 (and friends)
Allegro 4.2.2
(New) FLTK 1.1.9

libiconv 1.9.1
libxml2 2.6.31
InstallJammer 1.2.5
n/a
L1, L2, W2, W2 (new functionality only)
[Focus of this version:  Feature addition.]

The FLTK library has been added, along with a sample program for it.  Note that the pthreads-w32 library "pthreadGC2.dll" may need to be distributed with FLTK-based applications, if any FLTK threading functions are used.  (I suppose I should admit that I've never used FLTK before, and supporting it is more of a compulsion than a personal need.  But as near as I can tell, the cross-compiled version of it seems to work.)

The pthreads-w32 library is now compiled both in statically-linkable form and in DLL form, in order to accommodate the needs of FLTK.  Furthermore, if linking using "-lpthread", the default has now changed so that it is the DLL which is used rather than the static library.  The statically-linkable version of pthreads-w32 can still be used, of course, but the steps for doing so are slightly different than before, and the sample programs sample_pthreads*.exe in the IMCROSS Makefile should be consulted to see the change.  As a result, there is now both a "sample_pthreads.exe" sample program and a "sample_pthreads_dynamic.exe" sample program.  The  file "pthreadGC2.dll" needs to be distributed with dynamically-linked pthreads-w32 applications.

Updating:  Delete "setup_pthread*", then run 'make', and finally run 'make clean samples'.  There will be 2 MB of new downloads relative to 20080505.
May 5, 2008
IMCROSS-20080505.tar.gz binutils 2.18
gcc 3.4.6 (w/ Fortran, Objective-C)
PCRE 7.6
pthreads-w32 2.8.0
zlib 1.2.3
wxWidgets 2.8.7
GTK+ 2.12.9 (and friends)
(New) Allegro 4.2.2

libiconv 1.9.1
libxml2 2.6.31
InstallJammer 1.2.5
n/a
L1, L2, W1, W2 (new functionality only)
[Focus of this version:  Feature addition.]

The Allegro library has been added, along with a sample program for it.

Ross Johnson (the maintainer of pthreads-w32) has sent me some simplifications to the pthreads-w32 sample program.  I was making it more complex than it needed to be.  Thanks, Ross!

If you download the new script tarball, you may initially be surprised that the size has leapt from 60K to 450K.  This is as it should be, and results from the fact that the sample program for Allegro is a game which has some included audio.  I would have economized and included a simpler sample program, but the game was too tempting for me.

Updating:  Simply run 'make', and then 'make clean samples'.  There will be 7 MB of new downloads relative to 20080418.
April 18, 2008
IMCROSS-20080418.tar.gz
binutils 2.18
gcc 3.4.6 (w/ Fortran, Objective-C)
PCRE 7.6
pthreads-w32 2.8.0
zlib 1.2.3
wxWidgets 2.8.7
GTK+ 2.12.9 (and friends)
libiconv 1.9.1
libxml2 2.6.31
InstallJammer 1.2.5
n/a
L1, L2, W1
[Focus of this version:  Minor feature additions and cleanups.]

I've now relaxed the rule that only C and C++ compilers are built.  Fortran 77 and Objective-C compilers are also built.  Be aware that I don't check these very much (or at all), since I don't use use those languages.  Nevertheless, sample programs have been added, and those programs compile and work.  (The GNU Java compiler gcj is also installed, along with a sample program, though I can't make it work.  But I'm not sure why anyone would need it for anything, since I'd think the native tools would produce the same Java bytecodes anyhow.)

For 'make samples', most of the builds of the Linux sample programs now fail gracefully if you are missing the native development tools or libraries, rather than aborting the complete build, so you still get all of the Windows sample programs.

The sample_gtk_installer.exe target in the Makefile now includes automated change of the version codes reported by the installer.

Updating:  Do 'rm setup_gcc*', 'make', and 'make samples'.
April 15, 2008
IMCROSS-20080415.tar.gz binutils 2.18
gcc 3.4.6
PCRE 7.6
pthreads-w32 2.8.0
zlib 1.2.3
wxWidgets 2.8.7
GTK+ 2.12.9 (and friends)
libiconv 1.9.1
libxml2 2.6.31
(New) InstallJammer 1.2.5
n/a
L1, L2, W1, W2
[Focus of this version:  Added features and bug fixes.]

Now supports the ability to automatically build Windows setup.exe programs, by leveraging the InstallJammer program.  When 'make samples' is performed, a Windows installer for the sample program sample_gtk_dynamic.exe (called sample_gtk_installer.exe) is automatically built at the same time.

Fixed a bug in which if wxWidgets was installed after GTK+—or more accurately, after libpng, libjpeg, and libtiff—some versions of it would fail to build (including the IMCROSS default one) while the others would use DLLs rather than static functionality for image manipulation.  This occurred only if installing multiple versions of wxWidgets, and did not occur for the default build.

The sample program sample_wxWidgets.exe now builds regardless of which version of wxWidgets is installed as the wx-config "default".  Furthermore, when wxWidgets is built, it automatically installs the sample program source tree appropriate to that release.  Finally, the program has been renamed to sample_wxWidgets-N.N.exe (N.N=2.8 by default), to indicate which version of wxWidgets it was built with.

Updating:  Simply run 'make', and then 'make clean samples'.
April 14, 2008
IMCROSS-20080414.tar.gz binutils 2.18
gcc 3.4.6
PCRE 7.6
pthreads-w32 2.8.0
zlib 1.2.3
wxWidgets 2.8.7
GTK+ 2.12.9 (friends corrected)
(New) libiconv 1.9.1
libxml2 2.6.31
n/a
L1, L2, W1, W2, W3 (Note [2])
[Focus of this version:  Bug fixes]

Added various types of fine-tuning to the installation, such as the ability to skip installing GTK+, wxWidgets, or libxml2, or to explicitly state which packages you want to install. 

There are also improvements to many of the sample-program build instructions, so that they are much closer to what the library creators expected, I think, and more generically useful. 

Fortunately or unfortunately, depending on how you look at it, these corrections to the sample-program build-instructions revealed several library dependencies that hadn't been installed—but whose lack wasn't noticed because they weren't directly needed by the sample programs.  But they're installed now:
  • libiconv (needed for libxml2).
  • libpng, libtiff, and libjpeg (needed for GTK+).
  • freetype, fontconfig, and expat (related to, but not necessarily needed by GTK+).
Also, the pthreads-w32 library is now available as a link under the name "libpthread.a", whereas before it was only available as "libpthreadGC2.a".  This enables it to be used by other libraries (such as libxml2) which expect to find a generic pthreads library in place, as well as making the Windows compiler switches look more like the Linux ones.

The sample program sample_gtk.exe has been renamed sample_gtk_dynamic.exe, to highlight the fact that DLLs are needed to run it.

Although not a change to IMCROSS as such, note that there is now an extensive discussion of how to install multiple wxWidgets versions simultaneously, if you are developing different applications based on different versions of it.

Updating:  I think that this update can be installed merely by deleting "setup_gtk*" and "setup_pthread*" from the IMCROSS directory, and then running 'make'.  The update is quite quick if the downloaded files haven't been deleted.  If you're the nervous type, you can do a complete rebuild with 'make clean_imcross default'. 

You might also want to 'make clean samples' to insure that you can still build the sample programs (or can build them now where you couldn't build them before).
April 11, 2008
IMCROSS-20080411.tar.gz
binutils 2.18
gcc 3.4.6
PCRE 7.6
pthreads-w32 2.8.0
zlib 1.2.3
wxWidgets 2.8.7
(New) GTK+ 2.12.9 (and friends)
libxml2 2.6.31
n/a
L1, W1
[Focus of this version:  New features]

In this version, used source tarballs are no longer automatically slimmed down to conserve space.  Instead, you can explicitly do 'make diet' to do that.

GTK+ added.  GTK+ is based on DLLs; the other libraries expect to be statically linked.

Updating:  Simply do 'make' and then 'make clean samples'.
April 9, 2008
IMCROSS-20080409.tar.gz
binutils 2.18
gcc 3.4.6
PCRE 7.6
pthreads-w32 2.8.0
(New) zlib 1.2.3
wxWidgets 2.8.7
libxml2 2.6.31

n/a
L1, W1
Initial release
April 8, 2008
IMCROSS-20080408.tar.gz
binutils 2.18
gcc 3.4.6
PCRE 7.6
pthreads-w32 2.8.0
wxWidgets 2.8.7
libxml2 2.6.31
n/a
L1, L2, W1
Just playing around ....

Table Notes:

[1] In the "Checked with" column, the following computer-configurations are referenced:
[2] In test configuration W3, all of the sample programs worked except sample_gtk_dynamic, which complained that GDI32.dll wasn't providing a required export.  GDI32.DLL was present in c:\windows\system, so I suppose GTK+ 2.12 simply uses features that were added to GDI32.DLL after Windows 98 first edition and before Windows XP.  If anyone knows a workaround, I'd be glad to hear it.

[3] The sample programs supported at this release run on the Mac OS X 10.2.8 test platform, except sample_zlib_macosx_fat and sample_libxml2_macosx_fat.   It appears there are two problems.  One is simply that the version of zlib installed on the test box isn't new enough to support all of the features needed by the sample program.  The other is that libxml2 is not installed at all.  So I suppose the sample programs would work with 10.4 or later, and possibly with 10.3, but have no way as of yet to try them out.  Or possibly they would work if libxml2 and a newer version of zlib were installed on the 10.2.8 test box.

[4]
Concerning Mac OS X 10.4.11:  All sample programs run.  The program sample_Objective-C_macosx_fat doesn't compile at all, but I don't believe that this is a cross-compiler issue as such, so I'm simply dropping it from the list of sample programs on Mac OS X.  Concerning Mac OS X 10.2.8:  It's best to just give up the idea of 10.2 support.  I've gotten the sample programs which didn't run in note 3 above to work by installing or upgrading several system libraries; obviously that will not be a useful workaround for most Mac users.  The new programs sample_wxWidgets_macosx_fat and sample_fltk_macosx_fat require a newer version of libstdc++, and as far as I can tell there's no way to install such a thing on 10.2.8 even if someone was inclined to do so.  The program sample_Objective-C-2_macosx_fat compiles but does not run on 10.2.8 due to yet another library mismatch issue, this time with libgcc.


©2008 Ronald S. Burkey  (info at sandroid.org)