[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
|