如何在Docker中构build便携式GMP和GCC?

我的一个项目是微控制器的C ++ RTOS( http://distortos.org/ )。 这个项目使用Travis-CI进行构buildtesting。 该项目还需要定制GCC工具链(通常是具有完全禁用的C ++exception的工具链)。 工具链是作为Travis-CItesting的一部分而构build的。 由于Travis-CI越来越慢,而他们的构build超时时间一直在50分钟,最近的构build由于超时而开始失败。 所以我最终决定手动构build工具链,将其上传到我的网站,并configurationTravis-CI只需下载它,而不是从源代码构build。

我遵循这里find的文档 – https://docs.travis-ci.com/user/common-build-problems/#Troubleshooting-Locally-in-a-Docker-Image – 并在我自己的电脑上编译工具链里面的Docker 。 然而,工具链无法在Travis-CI服务器上运行的Docker上工作 – https://travis-ci.org/DISTORTEC/distortos/jobs/266553393#L709 。 快速searchnetworking导致我的这个错误报告 – https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71918

所以看起来Docker内build的GMP和/或GCC根本就不是可移植的,这似乎与Docker的主要承诺相矛盾,但现在让我们忽略它吧…

我应该如何解决这个问题? 这可以通过configurationDocker(全局configuration?容器configuration?图像configuration?)以某种方式完成,也许我必须build立一些特定的CFLAGS工具链? 任何其他可能通用的解决scheme,以解决这个问题? 我想避免build立一个完整的虚拟机来做到这一点,但如果这是最好的方法,我就这样做。

Interesting Posts