[squeak-dev] Compiling the Squeak Stack vm in FreeBSD
Edwin Ancaer
eancaer at gmail.com
Tue Apr 7 15:24:05 UTC 2020
Hello all,
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/cfcb11e8/attachment.html>
More information about the Squeak-dev
mailing list
|