[OpenSmalltalk/opensmalltalk-vm] 219a1d: Compile all linux64x64 with clang

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[OpenSmalltalk/opensmalltalk-vm] 219a1d: Compile all linux64x64 with clang

Nicolas Cellier-2
 
  Branch: refs/heads/compile_linux64x64_with_clang
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: 219a1dc34c3b51265ec3df2809f99da425112bbd
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/219a1dc34c3b51265ec3df2809f99da425112bbd
  Author: Nicolas Cellier <[hidden email]>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M build.linux64x64/newspeak.stack.spur/build.assert/mvm
    M build.linux64x64/newspeak.stack.spur/build.debug/mvm
    M build.linux64x64/newspeak.stack.spur/build/mvm
    M build.linux64x64/nsnac.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build.assert/mvm
    M build.linux64x64/nsnac.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build.debug/mvm
    M build.linux64x64/nsnac.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.assert/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.debug/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build/mvm
    M build.linux64x64/pharo.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build.assert/mvm
    M build.linux64x64/pharo.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build.debug/mvm
    M build.linux64x64/pharo.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build.assert/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build.debug/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build/mvm
    M build.linux64x64/squeak.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build.assert/mvm
    M build.linux64x64/squeak.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build.debug/mvm
    M build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build/mvm
    M build.linux64x64/squeak.stack.spur/build.assert/mvm
    M build.linux64x64/squeak.stack.spur/build.debug/mvm
    M build.linux64x64/squeak.stack.spur/build/mvm

  Log Message:
  -----------
  Compile all linux64x64 with clang

reason: gcc currently has incompatible stack management with recent cog changes in SP/FP handling


  Commit: 28466a92999e5834fe8bf525226f66aac1ee7e55
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/28466a92999e5834fe8bf525226f66aac1ee7e55
  Author: Nicolas Cellier <[hidden email]>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M build.linux64x64/newspeak.stack.spur/build/mvm
    M build.linux64x64/nsnac.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build/mvm
    M build.linux64x64/pharo.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build/mvm
    M build.linux64x64/squeak.cog.spur/build.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build/mvm

  Log Message:
  -----------
  Remove obsolete gcc 3.4 specific options

YAGNI
Now that we removed most UB (all ?), this might not even be necessary, but we ain't gonna check such legacy stuff.


  Commit: f8a20f758afe5824c2aac0884ca3950b45dec006
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/f8a20f758afe5824c2aac0884ca3950b45dec006
  Author: Nicolas Cellier <[hidden email]>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M build.linux64x64/newspeak.stack.spur/build.assert/mvm
    M build.linux64x64/newspeak.stack.spur/build.debug/mvm
    M build.linux64x64/nsnac.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build.assert/mvm
    M build.linux64x64/nsnac.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/nsnac.cog.spur/build.debug/mvm
    M build.linux64x64/pharo.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build.assert/mvm
    M build.linux64x64/pharo.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur/build.debug/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build.assert/mvm
    M build.linux64x64/squeak.cog.spur.immutability/build.debug/mvm
    M build.linux64x64/squeak.cog.spur/build.assert.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build.assert/mvm
    M build.linux64x64/squeak.cog.spur/build.debug.itimerheartbeat/mvm
    M build.linux64x64/squeak.cog.spur/build.debug/mvm
    M build.linux64x64/squeak.stack.spur/build.assert/mvm
    M build.linux64x64/squeak.stack.spur/build.debug/mvm
    M build.linux64x64/squeak.stack.spur/build/mvm

  Log Message:
  -----------
  Remove remaining -fwrapv compiler option in linux64x64

Reason: the -fwrapv flag let the compiler assume that integer overflow will wrap (modulo 2^nbits) rather than will never happen (because UB)
This flag was once necessary when we did depend on UB, but should be un-necessary now
If ever it's still the case, it's better to eliminate UB rather than try to hide/ignore it.
We shall NOT depend on UB.

Note if we suspect UB problems:
With clang we can use -fsanitize=undefined
This will instrumente code to detect UB situations, and create runtime warnings whenever UB is encountered


  Commit: 8fd8a5090e8653ed957bf2e5c217f3e269f4b7d2
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/8fd8a5090e8653ed957bf2e5c217f3e269f4b7d2
  Author: Nicolas Cellier <[hidden email]>
  Date:   2019-10-28 (Mon, 28 Oct 2019)

  Changed paths:
    M build.linux64x64/pharo.cog.spur.minheadless/build.assert.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.debug.itimerheartbeat/mvm
    M build.linux64x64/pharo.cog.spur.minheadless/build.itimerheartbeat/mvm

  Log Message:
  -----------
  Fix 3 minheadless flavours trying to compile for i386 target

This ain't the right place, we are in linux64x64 here (x86_64 architecture).
Are these scripts obsolete?
Don't we build minheadless with cmake?


Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/219a1dc34c3b%5E...8fd8a5090e86