[squeak-dev] Compiling the Squeak Stack vm in FreeBSD

Tobias Pape Das.Linux at gmx.de
Tue Apr 7 20:54:06 UTC 2020


Hi all, Hi Edwin,

> On 07.04.2020, at 17:24, Edwin Ancaer <eancaer at gmail.com> wrote:
> 
> Hello all, 

I have the cog-vm running (see attached screenshot).

I'll look at the stackvm and the strange ALSA issue now.

Best regards
	-Tobias

> 
> thanks once more for helping me getting the compilation of the squeak Stack Vm running.
> I will need your help once more. I run into a compilation error: 
> 
> /home/edwin/Smalltalk5/opensmalltalk-vm/spurstack64src/vm/gcc3x-interp.c:2530:5: error: invalid symbol redefinition
>                                 VM_LABEL(pushReceiverVariableBytecode);
> 
>  	bytecodeDispatchDebugHook();
> 
>  VM_LABEL(bytecodeDispatch);
>  switch (currentBytecode) {
>    CASE(0)
>      CASE(256) /*0*/
> /* pushReceiverVariableBytecode */
>      {
> sqInt object;
> 
> VM_LABEL(pushReceiverVariableBytecode);  <------ line with error
> /* begin fetchNextBytecode */
> currentBytecode = (byteAtPointer(++localIP)) + GIV(bytecodeSetSelector);
> 
> I found some indications that this could be due to a difference between gcc (as in the name of the file), and clang, that is the standard compiler of FreeBsd. 
> I went tot the mvm-script and changed the line CC=clang to CC=gcc. 
> Issue solved. 
> 
> OK, then I got the libiconv-errors when linking libtool
>  
> libtool: link: gcc -g -O1 -DNDEBUG -DDEBUGVM=0 -msse2 -Wall -pthread -DLSB_FIRST=1 -m64 -Wl,-z -Wl,now -o squeak disabledPlugins.o version.o -Wl,--export-dynamic  -L/usr/local/lib vm/vm.a ADPCMCodecPlugin/ADPCMCodecPlugin.a AioPlugin/AioPlugin.a AsynchFilePlugin/AsynchFilePlugin.a B2DPlugin/B2DPlugin.a BitBltPlugin/BitBltPlugin.a BMPReadWriterPlugin/BMPReadWriterPlugin.a CroquetPlugin/CroquetPlugin.a HostWindowPlugin/HostWindowPlugin.a ZipPlugin/ZipPlugin.a DropPlugin/DropPlugin.a DSAPrims/DSAPrims.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 -luuid -lutil -lpulse-simple /usr/local/lib/libasound.so -lexecinfo -lm vm/vm.a -pthread -Wl,-rpath -Wl,/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib
> /usr/local/bin/ld: vm/vm.a(sqUnixCharConv.o): in function `convertChars':
> /home/edwin/Smalltalk5/opensmalltalk-vm/platforms/unix/vm/sqUnixCharConv.c:276: undefined reference to `libiconv_close'
> /usr/local/bin/ld: /home/edwin/Smalltalk5/opensmalltalk-vm/platforms/unix/vm/sqUnixCharConv.c:278: undefined reference to `libiconv_open'
> /usr/local/bin/ld: /home/edwin/Smalltalk5/opensmalltalk-vm/platforms/unix/vm/sqUnixCharConv.c:290: undefined reference to `libiconv'
> collect2: error: ld returned 1 exit status
> 
> Here I cheated, as I had no idea how to add the library libiconv to the linker. I went to the Makefile in the directory ..../opensmaltalk-vm/build.linux64x64/squeak.stack.spur/build an added  iconv to the LIBS-statement: 
> 
> LIBS=	-luuid -lutil -lpulse-simple -lasound  -lexecinfo -lm -liconv
> 
> Don't know if that was allowed, but the  libiconv-problem was solved. 
> But now I am at the end of my wits. I stumbled upon: 
> 
> ibtool: compile:  gcc -g -O1 -DNDEBUG -DDEBUGVM=0 -msse2 -Wall -pthread -DLSB_FIRST=1 -m64 -Wno-missing-braces -Wno-unknown-pragmas -Wno-u                                                 nused-value -Wno-unused-label -Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -DHAVE_CONFIG_H -I/home/edwin/Smalltal                                                 k5/opensmalltalk-vm/build.linux64x64/squeak.stack.spur/build -I/home/edwin/Smalltalk5/opensmalltalk-vm/build.linux64x64/squeak.stack.spur/b                                                 uild -I/home/edwin/Smalltalk5/opensmalltalk-vm/platforms/unix/vm -I/home/edwin/Smalltalk5/opensmalltalk-vm/platforms/Cross/vm -I/home/edwin                                                 /Smalltalk5/opensmalltalk-vm/spurstack64src/vm -I/usr/local/include -m64 -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value -Wno-un                                                 used-label -Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -c /home/edwin/Smalltalk5/opensmalltalk-vm/platforms/unix                                                 /vm-sound-ALSA/sqUnixSoundALSA.c  -fPIC -DPIC -o .libs/sqUnixSoundALSA.o                                                                                                                    
> /home/edwin/Smalltalk5/opensmalltalk-vm/platforms/unix/vm-sound-ALSA/sqUnixSoundALSA.c:951:13: error: 'devname' redeclared as different kin                                                 d of symbol                                                                                                                                                                             
>   951 | static char devname[MAX_NAME_LEN];                                                                                                                                                  
>       |             ^~~~~~~                                                                                                                                                                 
> In file included from /home/edwin/Smalltalk5/opensmalltalk-vm/platforms/Cross/vm/sq.h:20,                                                                                                   
>                  from /home/edwin/Smalltalk5/opensmalltalk-vm/platforms/unix/vm-sound-ALSA/sqUnixSoundALSA.c:31:                                                                            
> /usr/include/stdlib.h:277:7: note: previous declaration of 'devname' was here                                                                                                               
>   277 | char *devname(__dev_t, __mode_t);                                                                                                        
> 
> 
> Does anybody have an idea for a quick cheat to get trough the compilation, besides starting to rewrite parts of the code?
> 
> Kind regards,
> 
> Edwin Ancaer
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20200407/ba789540/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Bildschirmfoto 2020-04-07 um 22.50.03.PNG
Type: image/png
Size: 110966 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20200407/ba789540/attachment-0001.png>


More information about the Squeak-dev mailing list