2014-01-17 36 views
1

我有一个应用程序需要在各种古老的Linux平台上运行,所以我把它与GNU libc 2.1.2链接起来。不过目前我正在考虑构建一个UNICODE版本的应用程序。问题是我链接的libc没有像vswprintf这样的基本功能。是否可以使用我的应用程序分发更新版本的libc?

是否有可能让我们说libc 2.4并提供它与我的应用程序(作为一个单独的文件libc.so.6)?它会违反GNU libc许可证吗?

还有其他解决方案吗?也许有一个vswprintf函数可用(我相信编写这个函数效率不高)。到目前为止,我唯一的选择是将所有内容都转换为char *并使用vsprintf。

回答

0

听起来很不好主意。古代的平台应该有古代的系统调用,与古老的原型。阅读here

世界的变化和系统调用的变化。由于不能破坏旧的二进制文件,因此与任何给定系统调用号码关联的语义必须完全向后兼容。

在实践中发生的是两件事情之一:要么一个得到一个新的名称和编号的新 和改进的系统调用,并用于调用老呼叫的libc 程序更改为使用新的 一个,或新的呼叫(带有新号码)获得旧名称,并且旧的 呼叫获得其名称前缀“旧”。

相关问题