libgccjit 是一个实现 GCC JIT 编译的嵌入式库,它可以动态链接到字节码解释器和其它程序中,在运行时生成本机代码。
目前 GCC 开发者实验性地将 libgccjit 移植到了 Windows,并提交了 patch。
开发者已经在 Emacs 的本地编译分支环境下测试通过,相信它可以很好地运行在 Windows。不过他也表示,过程中 libtool 与 Automake 存在一些差异,比如因为无法通过 libgccjit 创建 dll,并将其放在正确的目录中,所以不得不将 lib/libgccjit.so 复制到 bin/libgccjit.dll 中。同时经过他的测试,在 Windows 中也不必使用 --enable-host-shared。
GCC 代码库使用的是具有“传染性”的 GPLv3 许可,因此就算 libgccjit 移植到 Windows,那预估也不会有多少基于 Windows 的程序使用,因为有必须将新程序也开源的要求。不过这一移植经验至少能够让一些跨平台的开源程序看到 Windows 上能够这样支持 GCC JIT 的可能性。
从邮件列表来看,目前该 patch 还处于审核阶段,能否合并进入 GCC 11 还需要观测,具体情况可以查看:https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546384.html