如何在没有图像的情况下编译Pharo VM?

时间:2014-03-16 06:09:27

标签: virtual-machine smalltalk pharo

我已经克隆了VM并为我的平台安装了所有依赖项。现在我有点困惑,因为有几个guides建议应该启动Pharo图像来生成从俚语翻译的C源。

"Unix"
PharoVMBuilder buildUnix32.
"OSX"
PharoVMBuilder buildMacOSX32.
"Windows"
PharoVMBuilder buildWin32.

但是,当您无法在平台中启动VM时,如何生成VM?这听起来像鸡和蛋的问题。

如果您无法在该平台上启动图像,这意味着无法构建VM?

2 个答案:

答案 0 :(得分:4)

如果您按照Esteban的建议从CI服务器下载预生成的源,则不需要从任何存储库克隆的pharo-vm源。只需在新文件夹中解压缩并从那里构建。

假设您在c:\ phs中有新来源,请打开directories.cmake并重命名硬编码路径,如下所示:

set(topDir "c:/phs/")
set(buildDir "c:/phs/build")
set(thirdpartyDir "${buildDir}/thirdparty")
set(platformsDir "c:/phs/platforms")
set(srcDir "c:/phs/src")
set(srcPluginsDir "${srcDir}/plugins")
set(srcVMDir "${srcDir}/vm")
set(platformName "win32")
set(targetPlatform ${platformsDir}/${platformName})
set(crossDir "${platformsDir}/Cross")
set(platformVMDir "${targetPlatform}/vm")
set(outputDir "c:/phs/results")

由于无法启动VM,我认为您至少需要更改用于在CI服务器中生成源的编译标志。它们位于c:\ phs \ build \ CMakeLists.txt中,特别是以下标志:

  • -march = ...(您的处理器架构,搜索安全标志)
  • 删除抑制调试选项的-g0
  • 删除-O2(优化)
  • 删除-DNDEBUG
  • 将-DDEBUGVM = 0修改为-DDEBUGVM = 1

最后启动构建脚本

cd /c/phs/build
bash build.sh

答案 1 :(得分:1)

您需要在外部预生成源或从其他位置获取预生成的源。

假设您要编译一种unix,可以从这里下载预生成的源:

https://ci.inria.fr/pharo/view/3.0-VM/job/PharoSVM/Architecture=32,Slave=vm-builder-linux/lastSuccessfulBuild/artifact/sources.tar.gz(对于堆栈vm)

https://ci.inria.fr/pharo/view/3.0-VM/job/PharoVM/Architecture=32,Slave=vm-builder-linux/lastSuccessfulBuild/artifact/sources.tar.gz(对于cog vm)