Branch: refs/heads/Cog Home: https://github.com/OpenSmalltalk/opensmalltalk-vm Commit: 5094685a21c0c283228b5246855084e4e91c3e8f https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/5094685a21c0c283228... Author: Nicolas Cellier nicolas.cellier.aka.nice@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.
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@github.com wrote:
Branch: refs/heads/Cog Home: https://github.com/OpenSmalltalk/opensmalltalk-vm Commit: 5094685a21c0c283228b5246855084e4e91c3e8f
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/5094685a21c0c283228... Author: Nicolas Cellier nicolas.cellier.aka.nice@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.
vm-dev@lists.squeakfoundation.org