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

Edwin Ancaer eancaer at gmail.com
Wed Apr 8 10:35:28 UTC 2020


Tobias,

I recompiled the stack vm with clang60, on FreeBSD12 but I get the same
problem with the definition of the VM_LABEL:. see printout below.
I ca compile this with gcc however.

But then it seems the changes for iconv are not in the stack vm yet. Is
that correct?

As for ALSA  or polse or sndio, I think you should just take what works.

Please note that I have not the intention of being pushy, I realise you
spend some of your free time doing this, so that I can enjoy Squeak on
FreeBSD.
Just ignore if it gets too much.

Clang60 is version 6.0.1 here:
$ clang60 -v
clang version 6.0.1 (tags/RELEASE_601/final)
Target: x86_64-portbld-freebsd12.0
Thread model: posix
InstalledDir: /usr/local/llvm60/bin

clang60 -g -O1 -DNDEBUG -DDEBUGVM=0 -msse2 -Wall -pthread -DLSB_FIRST=1
-m64 -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value
-Wno-unused-label -Wno-unused-function -Wno-unused-variable
 -DHAVE_CONFIG_H  -DSQUEAK_BUILTIN_PLUGIN
 -I/home/edwin/Smalltalk5/opensmalltalk-vm/build.linux64x64/squeak.stack.spur/build
-I/home/edwin/Smalltalk5/opensmalltalk-vm/build.linux64x64/squeak.stack.spur/build
-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/home/edwin/Smalltalk5/opensmalltalk-vm/platforms/Cross/vm
-I/home/edwin/Smalltalk5/opensmalltalk-vm/platforms/unix/vm
-I/home/edwin/Smalltalk5/opensmalltalk-vm/spurstack64src/vm
-I/home/edwin/Smalltalk5/opensmalltalk-vm/platforms/Cross/plugins/FilePlugin
 -I/home/edwin/Smalltalk5/opensmalltalk-vm/platforms/unix/plugins/B3DAcceleratorPlugin
-m64 -Wno-missing-braces -Wno-unknown-pragmas -Wno-unused-value
-Wno-unused-label -Wno-unused-function -Wno-unused-variable   -c -o
gcc3x-interp.o
/home/edwin/Smalltalk5/opensmalltalk-vm/spurstack64src/vm/gcc3x-interp.c
/home/edwin/Smalltalk5/opensmalltalk-vm/spurstack64src/vm/gcc3x-interp.c:38695:64:
warning: format specifies type 'char *' but the argument has type 'sqInt'
(aka 'long') [-Wformat]
        printf("\nClass %s does not have the required class index\n",
className);
                        ~~
 ^~~~~~~~~
                        %ld
/home/edwin/Smalltalk5/opensmalltalk-vm/spurstack64src/vm/gcc3x-interp.c:49593:108:
warning: passing 'usqInt *' (aka 'unsigned long *') to parameter of type
'sqInt *' (aka 'long *') converts between pointers to integer types with
different sign [-Wpointer-sign]
        segAddress =
sqAllocateMemorySegmentOfSizeAboveAllocatedSizeInto(ammount,
firstGapOfSizeAtLeast(ammount), (&allocatedSize));
...
...
...
                              ^
/home/edwin/Smalltalk5/opensmalltalk-vm/spurstack64src/vm/gcc3x-interp.c:2530:5:
error: invalid symbol redefinition
                                VM_LABEL(pushReceiverVariableBytecode);
                                ^
/home/edwin/Smalltalk5/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:110:49:
note: expanded from macro 'VM_LABEL'
#       define VM_LABEL(foo) asm("\n.globl L" #foo "\nL" #foo ":")
                                                      ^
<inline asm>:3:1: note: instantiated into assembly here
LpushReceiverVariableBytecode:
^
/home/edwin/Smalltalk5/opensmalltalk-vm/spurstack64src/vm/gcc3x-interp.c:2544:5:
error: invalid symbol redefinition
                                VM_LABEL(pushReceiverVariableBytecode1);
                                ^
/home/edwin/Smalltalk5/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:110:49:
note: expanded from macro 'VM_LABEL'
#       define VM_LABEL(foo) asm("\n.globl L" #foo "\nL" #foo ":")
                                                      ^
<inline asm>:3:1: note: instantiated into assembly here



Op wo 8 apr. 2020 om 10:55 schreef Tobias Pape <Das.Linux at gmx.de>:

> Hi Subbu
> > On 08.04.2020, at 10:19, K K Subbu <kksubbu.ml at gmail.com> wrote:
> >
> > On 08/04/20 3:13 AM, Tobias Pape wrote:
> >> I have looked at the stackvm issue.
> >> On FreeBSD 11/clang 6, this does not occur. What clang version do you
> have?
> >> Also, I don't think we need to bother with alsa too much.
> >> OSS should work, the rest_is_  work:)
> >
> > Tobias,
> >
> > Please make pulse the default audio server. It has wrappers (padsp) to
> handle legacy apps using for ALSA/OSS.
> >
> > David Stes confirmed earlier that pulse audio works fine on his Solaris
> port and provided the patches. Squeak VM does not work out of the box on my
> Ubuntu 16.04 (64b). I have to patch squeak.sh to use -vm-audio-pulse to get
> sound to work.
>
> This is a distinct thing.
> My comments are about compilation problems of Alsa on FreeBSD.
> I see that pulse is available in FreeBSD ports, but with a lot of
> dependencies, and
> I do not think that at the moment it is a good idea to mingle with that.
>
> For OpenBSD we have sndio, and if that also works for FreeBSD, at the
> moment I would go for that.
>
> Apart from that, sure, Pulse seems a good option…
>
> Best regards
>         -Tobias
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20200408/f3cb2f4b/attachment.html>


More information about the Squeak-dev mailing list