Theme Preview

编译 OpenVPN 邂逅 ARM GCC bug

由 李晓岚 在 2017年05月07日发表

这几天折腾在 HG8120C 光猫(ONT)上运行 OpenVPN,历经千辛万苦编译成功了,结果运行中 Assert 失败,一路排查下来,最后发现居然是工具链 GCC 的错。这已经不是第一次遇到工具链的 bug了,第一次是 ARM ADS 乱序优化的 bug,第二次是 自己写的链接器,如果这也算的话。 ..more
评论» 标签:GCCARMASMONTOpenVPN

链接器中Thumb BLX指令编码

由 李晓岚 在 2013年05月22日发表

一年前实现了一个简单的ARM程序链接器。在实现Thumb指令调用ARM指令子过程时,使用了Thumb 2中的BLX指令。测试过程中发现某些情况下程序会死掉。进一步跟踪调试发现,只有当BLX指令没有4字节对齐时才会出问题。当时就采取了对未4字节对齐的BLX指令使用跳板(veneer)的策略,绕过了问题。一年多后,再次遇到这个问题,仔细阅读手册后,发现了问题的根源。 ..more
评论» 标签:ARMASMLinker