Hi Klaus, you checked
And then check the file bld/libtool which is a shell script generated by config which is supposed to generate the shared objects.
Runs nicely, results are (also for vm-display-null): /bin/sh /home/kWitzel/platforms/unix/config/mkinstalldirs /usr/local/lib/squeak/3.9-4 /bin/sh /home/kWitzel/platforms/libtool --mode=install /usr/bin/install -c vm-display-X11.la /usr/local/lib/squeak/3.9-4/vm-display-X11.la /usr/bin/install -c vm-display-X11/.libs/vm-display-X11.lai /usr/local/lib/squeak/3.9-4/vm-display-X11.la /usr/bin/install -c vm-display-X11/.libs/vm-display-X11.a /usr/local/lib/squeak/3.9-4/vm-display-X11.a ranlib /usr/local/lib/squeak/3.9-4/vm-display-X11.a chmod 644 /usr/local/lib/squeak/3.9-4/vm-display-X11.a
Libraries have been installed in: /usr/local/lib/squeak/3.9-4
Hope, that helps.
:-(
Well, it helps me. :-) Looks like your libtool is configured to build static libraries. Which is perfectly ok. The VM should run with static libraries as well.
Here are the relevant lines in my libtool:
# Whether or not to build shared libraries. build_libtool_libs=yes
# Whether or not to build static libraries. build_old_libs=no
# Whether or not to add -lc for building shared libraries. build_libtool_need_lc=yes
# Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=no
They should differ from your libtool if configure figured out that it is better to build static libraries. But if you know better, feel free to override it by configure --enabled-shared
Greetings Wolfgang -- Weniger, aber besser.
Hi Wolfgang,
on Tue, 16 May 2006 00:53:32 +0200, you helbig@Lehre.BA-Stuttgart.DE wrote:
Hi Klaus, you checked
...
Libraries have been installed in: /usr/local/lib/squeak/3.9-4
Hope, that helps.
:-(
Well, it helps me. :-) Looks like your libtool is configured to build static libraries. Which is perfectly ok. The VM should run with static libraries as well.
Here are the relevant lines in my libtool:
# Whether or not to build shared libraries. build_libtool_libs=yes
# Whether or not to build static libraries. build_old_libs=no
# Whether or not to add -lc for building shared libraries. build_libtool_need_lc=yes
# Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=no
Will try to manually set these.
They should differ from your libtool if configure figured out that it is better to build static libraries. But if you know better, feel free to override it by configure --enabled-shared
/bin/sh /home/kWitzel/platforms/libtool --mode=link gcc -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -avoid-version -module -rpath /usr/local/lib/squeak/3.9-4 -o vm-display-X11.la sqUnixX11.lo sqUnixMozilla.lo -lGL -lXext -lSM -lICE -L/usr/X11R6/lib -lm -lX11
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> libtool: link: warning: undefined >>>>>>>>>>>>>>>>>>>>>>>>>>>>> symbols not allowed in i686-pc-cygwin >>>>>>>>>>>>>>>>>>>>>>>>>>>>> shared libraries
rm -fr .libs/vm-display-X11.la .libs/vm-display-X11.* .libs/vm-display-X11.* ar cru .libs/vm-display-X11.a sqUnixX11.o sqUnixMozilla.o ranlib .libs/vm-display-X11.a creating vm-display-X11.la (cd .libs && rm -f vm-display-X11.la && ln -s ../vm-display-X11.la vm-display-X11.la) : vm-display-X11.la /bin/sh /home/kWitzel/platforms/libtool --mode=link gcc -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -Wall -Wno-unknown-pragmas -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -I/home/kWitzel/platforms -I/home/kWitzel/platforms/unix/vm -I/home/kWitzel/platforms/Cross/vm -I/home/kWitzel/platforms/unix/src/vm -I/usr/X11R6/include -avoid-version -module -rpath /usr/local/lib/squeak/3.9-4 -o vm-display-null.la sqUnixDisplayNull.lo
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> libtool: link: warning: undefined >>>>>>>>>>>>>>>>>>>>>>>>>>>>> symbols not allowed in i686-pc-cygwin >>>>>>>>>>>>>>>>>>>>>>>>>>>>> shared libraries
rm -fr .libs/vm-display-null.la .libs/vm-display-null.* .libs/vm-display-null.* ar cru .libs/vm-display-null.a sqUnixDisplayNull.o ranlib .libs/vm-display-null.a creating vm-display-null.la (cd .libs && rm -f vm-display-null.la && ln -s ../vm-display-null.la vm-display-null.la) : vm-display-null.la
:-(
/Klaus
Greetings Wolfgang -- Weniger, aber besser.
Last night Squeak woke up running on the cygwin platform,
$ ./squeak.exe ../Squeak3.9b-7032.image 2>squeak.exe.log displayModule 0x497170 null soundModule 0x4970f0 null
(of course it currently has no io, so, who knows? :-)
Linked the vm-display-null and vm-sound-null modules together with vm.a, by tweaking sqUnixMain.c and its makefile. Other vm-display-* and vm-sound-* modules are not so easy to harness, for example vm-display-X11 (see messages below).
Next step is the -dlopen flag, for passing *** Warning: libtool could not satisfy all declared inter-library *** dependencies of module vm-display-X11. Therefore, libtool will create *** a static module, that should work as long as the dlopening *** application is linked with the -dlopen flag.
/Klaus
--------------------
/bin/sh /home/kWitzel/platforms/libtool --mode=link gcc -g -O2 -fomit-frame-poin ter -DLSB_FIRST=1 -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -avoid-version -no -undefined -module -rpath /usr/local/lib/squeak/3.9-4 -o vm-display-X11.la sqUni xX11.lo sqUnixMozilla.lo -lGL -lXext -lSM -lICE -L/usr/X11R6/lib -lm -lX11 mkdir .libs rm -fr .libs/vm-display-X11.la .libs/vm-display-X11.* .libs/vm-display-X11.*
*** Warning: This library needs some functionality provided by -lGL. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have.
*** Warning: This library needs some functionality provided by -lXext. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have.
*** Warning: This library needs some functionality provided by -lSM. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have.
*** Warning: This library needs some functionality provided by -lICE. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have.
*** Warning: This library needs some functionality provided by -lX11. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have.
*** Warning: libtool could not satisfy all declared inter-library *** dependencies of module vm-display-X11. Therefore, libtool will create *** a static module, that should work as long as the dlopening *** application is linked with the -dlopen flag. ar cru .libs/vm-display-X11.a sqUnixX11.lo sqUnixMozilla.lo ranlib .libs/vm-display-X11.a creating vm-display-X11.la (cd .libs && rm -f vm-display-X11.la && ln -s ../vm-display-X11.la vm-display-X1 1.la) : vm-display-X11.la
List,
the 3.9-4 VM now runs on the cygwin platform just long enough for taking a first screen shot (attached).
The vm-display-X11 module is linked together with vm.a, same with vm-sound-null, and a handsome sqUnixNoMozilla.a ;-)
No other module or plugin is currently working. The VM terminates itself after some mouse+display activity - it does not crash, just stops - perhaps it gets bored because no externalized primitive does anything.
The dlopen and linking facilities of cygwin have about the level functionally which was common at ASM/360 times, it is allowed to do everything manually. It will not be easy to reference plugins with dlopen.
Now I must learn more on how to create makefiles from config files, is there an entry level doc and / or tutorial that someone here would recommend?
/Klaus
P.S. Thank you very much Bert and Wolfgang for your encouraging questions and suggestions, without you we still would be confused by gcc -shared and by libtool -dlopen self.
vm-dev@lists.squeakfoundation.org