[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 509468: Salvage the stack builds

Eliot Miranda eliot.miranda at gmail.com
Tue Dec 29 05:20:39 UTC 2020


Hi Nicolas,

    the fix really belongs in specific platform makefiles because the
labelling is exactly intended for profiling the stack VMs.  Bugs in the
clang compiler when using -Os (small size) cause it to duplicate the labels
and consequently for the assembler stage to fail.

On Sun, Dec 27, 2020 at 3:25 AM Nicolas Cellier <noreply at github.com> wrote:

>
>   Branch: refs/heads/Cog
>   Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
>   Commit: 5094685a21c0c283228b5246855084e4e91c3e8f
>
> https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/5094685a21c0c283228b5246855084e4e91c3e8f
>   Author: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
>   Date:   2020-12-27 (Sun, 27 Dec 2020)
>
>   Changed paths:
>     M platforms/Mac OS/vm/sqPlatformSpecific.h
>     M platforms/iOS/vm/OSX/sqPlatformSpecific.h
>     M platforms/iOS/vm/iPhone/sqPlatformSpecific.h
>     M platforms/minheadless/unix/sqPlatformSpecific-Unix.h
>     M platforms/minheadless/windows/sqPlatformSpecific-Win32.h
>     M platforms/unix/vm/sqPlatformSpecific.h
>     M platforms/win32/vm/sqPlatformSpecific.h
>
>   Log Message:
>   -----------
>   Salvage the stack builds
>
> For some reasons (?) the VM_LABEL macro is now barking like this:
>
> >../../spurstack64src/vm/gcc3x-interp.c:9419:5: error: invalid symbol
> redefinition
> >                                VM_LABEL(extPushPseudoVariable);
> >                                ^
> >In file included from ../../spurstack64src/vm/gcc3x-interp.c:29:
> >In file included from ../../platforms/iOS/vm/Common/sqGnu.h:46:
> >In file included from ../../platforms/Cross/vm/sq.h:252:
> >../../platforms/iOS/vm/OSX/sqPlatformSpecific.h:174:52: note: expanded
> from macro 'VM_LABEL'
> >#         define VM_LABEL(foo) asm("\n.globl _L" #foo "\n_L" #foo ":")
> >                                                         ^
> ><inline asm>:3:1: note: instantiated into assembly here
> >_LextPushPseudoVariable:
> >^
>
> Since this does not happen in cog builds, avoid brainstorming and just use
> the same workaround.
>
>
>

-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20201228/80f58ceb/attachment-0001.html>


More information about the Vm-dev mailing list