使用 Goa 移植 curl 命令行工具和库

主要观点:作者用十多年时间为 Genode 提供了 curl 库的端口,因使用 Sculpt OS 及计划在年底原生运行 Goa,决定也移植 curl 命令行工具,本文分享移植过程以指导其他项目。
关键信息

  • 移植过程包括导入 curl 源代码、首次成功构建、优化配置、捕获本地更改为补丁、导出二进制存档、启用 zlib 和 ssh、构建共享库、调整 API 存档等步骤。
  • 遇到诸多问题,如配置错误、找不到文件、共享库构建问题等,通过修改文件、添加参数等方式逐步解决。
  • 最终成功构建并导出 curl 相关的二进制存档、共享库及相关文件,可在 VFS 中使用 curl 命令行工具,且在测试项目中也能正常运行。
    重要细节
  • 导入 curl 源代码时修改 DIR(curl)及补丁文件,goa import 后出现错误并进行相应修改。
  • 首次构建时遇到 C 预处理器错误,添加 posix 和 libc API 后又出现找不到 OpenSSL 头文件的问题,通过修改 depot 中的 openssl 存档解决。
  • 优化配置时添加 ca 证书路径和 bundle 参数,注意到 zlib 和 SSH 可选依赖,后续进行了相应处理。
  • 构建共享库时遇到问题,通过修改 configure 脚本和添加相关 api 存档解决。
  • 调整 API 存档时添加 FindCURL.cmake 和 libcurl.pc 文件,并利用 import 魔法使文件可用。
阅读 6
0 条评论