Branch: refs/heads/Cog Home: https://github.com/OpenSmalltalk/opensmalltalk-vm Commit: 5094685a21c0c283228b5246855084e4e91c3e8f https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/5094685a21c0c283228b5246855084e4e91c3e8f Author: Nicolas Cellier <[hidden email]> 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 <[hidden email]> wrote:
_,,,^..^,,,_ best, Eliot |
Free forum by Nabble | Edit this page |