首页 > 解决方案 > 来自 MIPS 平台上的 uClibc 的 sem_wait() 返回未实现

问题描述

碰巧我们被迫在 MIPS 平台上使用 2007 年发布的 Linux 2.6.21,不,改变内核是不可能的,或者说这个问题真的很昂贵。

为此,我正在使用带有 ./maintainer/addToolVersion.sh --linux --obsolete 2.6.21 的 crosstool-ng 构建自己的工具链,以添加旧的 kenel 支持和为 NPTL 线程配置的 uClibc-0.9.33.2。所以我遇到了信号量的问题,特别是 sem_wait() 和 sem_timedwait() - 当使用任何参数调用时,它们返回 -1 并将 errno 设置为未实现。

我试图用设置不同 Errno 的简单函数替换 sem_wait()、__new_sem_wait() 和 __old_sem_wait() 的所有实例,但 x86 汇编代码除外,但它不起作用并且仍然返回 Not Implemented。

所以我的问题是:有没有人见过这样的问题,或者你知道 uClibc 如何选择用于 MIPS 平台的函数?

标签: cmipssemaphoreuclibccrosstool-ng

解决方案


推荐阅读