Hi all,

I just subscribed to this list because I could use some help compiling ion3 on my new laptop, an apple macbook (intel) running osx. I ran into a strange problem.

I installed apple's xserver and software development kit, and lua from the fink project. The whole setup seems to be working fine; I have for example compiled and ran firefox1.5 without any problems. That one of course was in the fink database, as opposed to ion, which simplifies things considerably. Still, I need my window manager (I'm sure on this list people will understand ;) so I tried to compile from source, and failed. Using the ion-3ds-20061015 development snapshot, here is what I did:
  • export CPATH="/sw/include"
  • export LIBRARY_PATH="/sw/lib"
  • export EXTRA_LIBS="-lintl"
  • cd build/ac
  • autoconf
  • ./configure --prefix=$HOME/local --disable-shared
  • cd ../..
  • make
Disable-shared and the extra linker flag are I think required on a mac, at least that's what I keep reading everywhere and indeed if I don't I get undefined symbols. Configure creates a system-ac.mk containing PRELOAD_MODULES=1, which seems to be required as well. I don't really know what the consequences of this preloading are on both compilation and the final executable, but I think it's related to the error I get.

The above procedure failes at the very last moment, while linking the final ion3 executable. There seem to be two problems, a warning about multiple definitions of symbol _warn (doesn't seem important), and an error caused by the undefined symbol '_ioncore_static_modules'. This one I really don't understand, mosty because it doesn't seem related to compiling on a mac.

A quick search showed that ioncore/modules.c declares an external WStaticModuleInfo array, ioncore_static_modules. That is, it does when CF_PRELOAD_MODULES is defined, which it is. The strange thing is, modules.c seems to be the *only* file that uses this variable, iow I can't find an external definition of it. This surely explains the linking error, but I can't really believe this to be a bug. Anything I'm overlooking?

I already tried the crude solution - removing 'external' in modules.c. This solves the linking problems, ion compiles cleanly now, but when I try to execute the resulting ion3 executable I get an error log full of unknow modules (de, mod_query, mod_tiling, etc) and stack traces. I'm not sure if this means that my hack doesn't work (probably :) or if I somehow need to 'preload' these modules, maybe during compilation? I can't seem to find anything about this preload_modules option on the website.

I really hope someone can tell me what's going on - if I can't run ion on this new machine of mine then I have just made the most terrible mistake buying it ;). Thanks in advance,

Gertjan van Zwieten

Reply via email to