[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] efb8df: always include <stdio.h> **BEFORE** defining fseek...

Nicolas Cellier noreply at github.com
Thu Apr 22 20:20:01 UTC 2021

  Branch: refs/heads/fix_include_order
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: efb8df9a094dc7d4a072ca11de6a0a8f549d06f8
  Author: Nicolas Cellier <nicolas.cellier at sirehna.com>
  Date:   2021-04-22 (Thu, 22 Apr 2021)

  Changed paths:
    M platforms/win32/vm/sqPlatformSpecific.h

  Log Message:
  always include <stdio.h> **BEFORE** defining fseeko/ftello

This other way around creates a compilation error.
This way, we can include sqConfig.h and <stdio.h> in whatever order we wish.

  Commit: df03d843cd045c07a8e4b94b86e571ed47fe5fd7
  Author: Nicolas Cellier <nicolas.cellier at sirehna.com>
  Date:   2021-04-22 (Thu, 22 Apr 2021)

  Changed paths:
    M platforms/Cross/vm/sqAssert.h

  Log Message:
  Discard the EXPORT from sqAssert.h for declaring VM functions

If we don't need to define the EXPORT in sqVirtaulMachine.h, then we don't need it either in sqAssert.h
Otherwise, it's a recipe for creating conflicting declarations and make some compilation fail
(for example building a plugin whishing to sqAssert as SQUEAK_BUILTIN_PLUGIN)
Only keep IMPORT for the case of SQUEAK_EXTERNAL_PLUGIN.

  Commit: 681219a6d830e5be94e5e2035d0f78504d8b33e6
  Author: Nicolas Cellier <nicolas.cellier at sirehna.com>
  Date:   2021-04-22 (Thu, 22 Apr 2021)

  Changed paths:
    M platforms/Cross/plugins/B3DAcceleratorPlugin/sqOpenGLRenderer.c
    M platforms/Cross/plugins/IA32ABI/xabicc.c
    M platforms/Cross/plugins/SoundCodecPrims/sqSoundCodecPluginBasicPrims.c
    M platforms/Cross/plugins/Squeak3D/b3dInit.c
    M platforms/Cross/plugins/Squeak3D/b3dMain.c
    M platforms/Cross/plugins/SurfacePlugin/SurfacePlugin.c
    M platforms/Cross/vm/sqHeapMap.c
    M platforms/Cross/vm/sqVirtualMachine.c
    M platforms/unix/config/getversion.c
    M platforms/unix/plugins/FileAttributesPlugin/faSupport.c
    M platforms/unix/vm/aio.c
    M platforms/unix/vm/sqUnixVMProfile.c

  Log Message:
  Make sure that config.h is included first

This is mandatory for linux builds.
config.h is included first by sqConfig.h
sqConfig.h was included in top positions previously.
But due to compilation order problems on windows, it has been moved further.

We can remove those `#include "config.h"` if `#include "sqConfig.h"` is moved toward top again
That is once the windows problem is resolved

Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/efb8df9a094d%5E...681219a6d830

More information about the Vm-dev mailing list