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

Robert Withers robert.w.withers at gmail.com
Sun Dec 13 14:57:00 UTC 2015


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