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