[Vm-dev] Re: Plugin not available externally so I try to build internally

David T. Lewis lewis at mail.msen.com
Sun Dec 13 15:15:28 UTC 2015


Hi Robert,

Just to confirm: These plugins can all be compiled either external or
internal, and the primitives do show up when I do "nm -gC". No external
headers are required. I'm using a different build environment, so I
cannot directly answer your questions, but I expect that the issue is
something related to your build setup.

You might want to double check the plugins.ext, plugins.int, and
plugins.exc files your build directory. Otherwise I can't think what
to suggest.

Dave

On Sun, Dec 13, 2015 at 09:57:00AM -0500, Robert Withers wrote:
> 
> I found some more info and I am nearing the end of investigation without 
> solution.
> 
> The 3 plugins under inquiry are DESPlugin, MD5Plugin, and SHA256Plugin. 
> These 3 are newly internal from being external all this time the past 9 
> years. I don't think I necessarily need header files as the EXPORT 
> statements are in the generated .c files.
> 
> Here are a few details of these three plugins:
> 1) there are no .o files
> 2) there is a .excluded file in each plugin directory in the build 
> directory.
> 3) each .a file is 8 bytes = !<arch>\z
> 4) only log in mvm output is the following:
> 
> ar -rc DESPlugin.a
> ranlib DESPlugin.a
> 
> So there is no compile statement being run...
> 
> hmmmm...I am looking for Makefile.in fragments for the successful 
> internal plugins, but I am not finding them. There must be a small 
> additional piece, outside squeak, that makes them internal, but it is 
> escaping me. I was up all night - I installed Ubuntu at least 7 times 
> and Suse twice. I finally went 32-bit os and it works, kinda sorta.
> 
> Alright then, Robert
> 
> On 12/13/2015 09:34 AM, Robert Withers wrote:
> >Oh dear, they are exported symbols from th e .a file, but DESPlugin 
> >has no symbols using nm -gC.  I am not sure the next step. I am open 
> >ears.
> >
> >Thanks,
> >Robert
> >
> >On 12/13/2015 09:22 AM, Robert Withers wrote:
> >>I do believe I need to write some header files in 
> >>platforms/Cross/plugins for these 3 plugins. I'll give that 3 tries 
> >>for 12 points.
> >>
> >>
> >>On 12/13/2015 08:39 AM, Robert Withers wrote:
> >>>I built the vm with crypto plugins external but the running image/vm 
> >>>cannot find or load them. They are not being used.  Therefore, I am 
> >>>trying to build them internally[1]. After generating them for 
> >>>internal, I ran around changing the examplePlugins.int/.ext, in 
> >>>spursrc and src. Under the build.linux32x86/squeak.cog.spur I 
> >>>changed the real plugins.int/.ext as well. The crypto plugins make 
> >>>it on the internal side, but I get an error when I try to link 
> >>>squeak[2]. The complaint is:
> >>>
> >>>undefined reference to `DESPlugin_exports'
> >>>
> >>>I don't recall how the internal plugin exports work. Might anyone 
> >>>refresh my memory and explain how this all works?
> >>>
> >>>Thank you for all,
> >>>Robert
> >>>
> >>>
> >>>[1]
> >>>
> >>>VMMaker
> >>>    generate: CoInterpreter
> >>>    and: StackToRegisterMappingCogit
> >>>    with: #(ObjectMemory Spur32BitCoMemoryManager)
> >>>    to: (FileDirectory default pathFromURI: VMMaker sourceTree, 
> >>>'/spursrc')
> >>>    platformDir: (FileDirectory default pathFromURI: VMMaker 
> >>>sourceTree, '/platforms')
> >>>    including:#(    DESPlugin DSAPlugin MD5Plugin SHA256Plugin 
> >>>AsynchFilePlugin FloatArrayPlugin RePlugin
> >>>                BalloonEnginePlugin FloatMathPlugin SecurityPlugin 
> >>>BMPReadWriterPlugin
> >>>                IA32ABIPlugin SocketPlugin BitBltSimulation 
> >>>JPEGReadWriter2Plugin SurfacePlugin
> >>>                JPEGReaderPlugin UUIDPlugin DropPlugin 
> >>>LargeIntegersPlugin UnixOSProcessPlugin
> >>>                FileCopyPlugin Matrix2x3Plugin Win32OSProcessPlugin 
> >>>FilePlugin MiscPrimitivePlugin)
> >>>
> >>>
> >>>[2]
> >>>
> >>>gcc -m32 -g -O2 -DNDEBUG -DDEBUGVM=0 -msse2 -D_GNU_SOURCE 
> >>>-D_FILE_OFFSET_BITS=64 -DCOGMTVM=0 -DLSB_FIRST=1 -Wl,-z -Wl,now -o 
> >>>squeak disabledPlugins.o version.o -Wl,--export-dynamic vm/vm.a 
> >>>ADPCMCodecPlugin/ADPCMCodecPlugin.a AioPlugin/AioPlugin.a 
> >>>AsynchFilePlugin/AsynchFilePlugin.a B2DPlugin/B2DPlugin.a 
> >>>BitBltPlugin/BitBltPlugin.a 
> >>>BMPReadWriterPlugin/BMPReadWriterPlugin.a 
> >>>CroquetPlugin/CroquetPlugin.a ZipPlugin/ZipPlugin.a 
> >>>DropPlugin/DropPlugin.a DESPlugin/DESPlugin.a DSAPrims/DSAPrims.a 
> >>>MD5Plugin/MD5Plugin.a SHA256Plugin/SHA256Plugin.a 
> >>>FFTPlugin/FFTPlugin.a FileCopyPlugin/FileCopyPlugin.a 
> >>>FilePlugin/FilePlugin.a FloatArrayPlugin/FloatArrayPlugin.a 
> >>>FloatMathPlugin/FloatMathPlugin.a IA32ABI/IA32ABI.a 
> >>>JoystickTabletPlugin/JoystickTabletPlugin.a 
> >>>JPEGReaderPlugin/JPEGReaderPlugin.a 
> >>>JPEGReadWriter2Plugin/JPEGReadWriter2Plugin.a Klatt/Klatt.a 
> >>>LargeIntegers/LargeIntegers.a Matrix2x3Plugin/Matrix2x3Plugin.a 
> >>>MIDIPlugin/MIDIPlugin.a MiscPrimitivePlugin/MiscPrimitivePlugin.a 
> >>>Mpeg3Plugin/Mpeg3Plugin.a RePlugin/RePlugin.a 
> >>>SecurityPlugin/SecurityPlugin.a SerialPlugin/SerialPlugin.a 
> >>>SocketPlugin/SocketPlugin.a SoundCodecPrims/SoundCodecPrims.a 
> >>>SoundGenerationPlugin/SoundGenerationPlugin.a 
> >>>SoundPlugin/SoundPlugin.a StarSqueakPlugin/StarSqueakPlugin.a 
> >>>SurfacePlugin/SurfacePlugin.a 
> >>>VMProfileLinuxSupportPlugin/VMProfileLinuxSupportPlugin.a -lutil 
> >>>-ldl -lpthread -lm -lnsl -lpthread -luuid vm/vm.a
> >>>vm/vm.a(sqNamedPrims.o):(.data+0x2c): undefined reference to 
> >>>`DESPlugin_exports'
> >>>vm/vm.a(sqNamedPrims.o):(.data+0x34): undefined reference to 
> >>>`MD5Plugin_exports'
> >>>vm/vm.a(sqNamedPrims.o):(.data+0x38): undefined reference to 
> >>>`SHA256Plugin_exports'
> >>>collect2: error: ld returned 1 exit status
> >>>Makefile:180: recipe for target 'squeak' failed
> >>>make: *** [squeak] Error 1
> >>>
> >>
> >


More information about the Vm-dev mailing list