VM issues.
Ned Konz
ned at squeakland.org
Mon Mar 7 22:41:57 UTC 2005
On Monday 07 March 2005 8:41 am, Alan Grimes wrote:
> >Yes, but I posted a (trivial) patch for that.
>
> OK, found it,
>
> Now the error (there's always an error) is:
[snip]
>
> vm/vm.a(sqNamedPrims.o)(.data+0x8): undefined reference to
> `ADPCMCodecPlugin_exports'
> vm/vm.a(sqNamedPrims.o)(.data+0xc): undefined reference to
> `AsynchFilePlugin_exports'
Have you re-run bld-i386/config.status or re-run configure (after deleting the whole build directory)
after changing the list of internal or external plugins?
Have you tried building with only the minimum required number of plugins (like the list below),
or with all the plugins external?
For instance, the B3D plugin has a number of external dependencies that can cause problems.
Likewise for the FFI plugin.
Are you running the stock Makefile (i.e. you're using libtool for the compilation, etc.)?
Try this:
* Select *only* these internal plugins (make all available first):
$ cat ../src/plugins.*
# Automatically generated makefile include for external plugins
EXTERNAL_PLUGINS =
# Automatically generated makefile include for internal plugins
INTERNAL_PLUGINS = FilePlugin FloatArrayPlugin LargeIntegers SecurityPlugin SocketPlugin
$ cd bld-i386 # or whatever your build directory is
$ ./config.status
$ make
If that doesn't work, then try this from the build directory:
$ find . -name "*.[oa]" -exec nm -A {} \; | grep _exports
./disabledPlugins.o:00000024 B ObjectiveCPlugin_exports
./disabledPlugins.o:00000000 B vm_display_Quartz_exports
./disabledPlugins.o:0000000c B vm_sound_MacOSX_exports
./disabledPlugins.o:00000018 B vm_sound_Sun_exports
./vm/gnu-interp.o:000022a0 D vm_exports
./vm/sqNamedPrims.o: U FilePlugin_exports
./vm/sqNamedPrims.o: U FloatArrayPlugin_exports
./vm/sqNamedPrims.o: U LargeIntegers_exports
./vm/sqNamedPrims.o: U os_exports
./vm/sqNamedPrims.o: U SecurityPlugin_exports
./vm/sqNamedPrims.o: U SocketPlugin_exports
./vm/sqNamedPrims.o: U vm_exports
./vm/osExports.o:00000000 D os_exports
./vm/vm.a:gnu-interp.o:000022a0 D vm_exports
./vm/vm.a:sqNamedPrims.o: U FilePlugin_exports
./vm/vm.a:sqNamedPrims.o: U FloatArrayPlugin_exports
./vm/vm.a:sqNamedPrims.o: U LargeIntegers_exports
./vm/vm.a:sqNamedPrims.o: U os_exports
./vm/vm.a:sqNamedPrims.o: U SecurityPlugin_exports
./vm/vm.a:sqNamedPrims.o: U SocketPlugin_exports
./vm/vm.a:sqNamedPrims.o: U vm_exports
./vm/vm.a:osExports.o:00000000 D os_exports
./FilePlugin/FilePlugin.o:00000020 D FilePlugin_exports
./FilePlugin/FilePlugin.a:FilePlugin.o:00000020 D FilePlugin_exports
./FloatArrayPlugin/FloatArrayPlugin.o:00000020 D FloatArrayPlugin_exports
./FloatArrayPlugin/FloatArrayPlugin.a:FloatArrayPlugin.o:00000020 D FloatArrayPlugin_exports
./LargeIntegers/LargeIntegers.o:00000020 D LargeIntegers_exports
./LargeIntegers/LargeIntegers.a:LargeIntegers.o:00000020 D LargeIntegers_exports
./SecurityPlugin/SecurityPlugin.o:00000020 D SecurityPlugin_exports
./SecurityPlugin/SecurityPlugin.a:SecurityPlugin.o:00000020 D SecurityPlugin_exports
./SocketPlugin/SocketPlugin.o:00000020 D SocketPlugin_exports
./SocketPlugin/SocketPlugin.a:SocketPlugin.o:00000020 D SocketPlugin_exports
Note that the compilation and linking should look more or less like this:
gcc -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -DHAVE_CONFIG_H -DSQUEAK_BUILTIN_PLUGIN -I/home/ned/Squeak/VM/svn/bld-i386 -I/home/ned/Squeak/VM/svn/platforms/unix/vm -I/home/ned/Squeak/VM/svn/platforms/Cross/vm -I/home/ned/Squeak/VM/svn/platforms/Cross/vm -I/home/ned/Squeak/VM/svn/platforms/unix/vm -I/home/ned/Squeak/VM/svn/src/vm -I/home/ned/Squeak/VM/svn/platforms/Cross/plugins/FilePlugin -I/home/ned/Squeak/VM/svn/platforms/unix/plugins/B3DAcceleratorPlugin -I/home/ned/Squeak/VM/svn/bld-i386 -I/home/ned/Squeak/VM/svn/platforms/unix/vm -I/home/ned/Squeak/VM/svn/platforms/Cross/vm -I/usr/X11R6/include -c -o sqNamedPrims.o /home/ned/Squeak/VM/svn/platforms/Cross/vm/sqNamedPrims.c
ar -rc vm.a gnu-interp.o sqNamedPrims.o sqVirtualMachine.o aio.o debug.o osExports.o sqUnixExternalPrims.o sqUnixMemory.o sqUnixCharConv.o sqUnixMain.o
ranlib vm.a
gcc -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -DHAVE_CONFIG_H -DSQUEAK_BUILTIN_PLUGIN -I/home/ned/Squeak/VM/svn/bld-i386 -I/home/ned/Squeak/VM/svn/platforms/unix/vm -I/home/ned/Squeak/VM/svn/platforms/Cross/vm -I/home/ned/Squeak/VM/svn/platforms/Cross/plugins/FilePlugin -c -o FilePlugin.o /home/ned/Squeak/VM/svn/src/vm/intplugins/FilePlugin/FilePlugin.c
ar -rc FilePlugin.a FilePlugin.o sqFilePluginBasicPrims.o sqUnixFile.o
ranlib FilePlugin.a
[and so on]
gcc -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -o squeak disabledPlugins.o version.o -Wl,--export-dynamic vm/vm.a FilePlugin/FilePlugin.a FloatArrayPlugin/FloatArrayPlugin.a LargeIntegers/LargeIntegers.a SecurityPlugin/SecurityPlugin.a SocketPlugin/SocketPlugin.a -lutil -ldl -lm -lnsl vm/vm.a -Wl,--rpath -Wl,/usr/local/lib
text data bss dec hex filename
201921 12372 98248 312541 4c4dd squeak
--
Ned Konz
http://bike-nomad.com/squeak/
More information about the Squeak-dev
mailing list
|