经过前段时间的学习,终于理解了cygwin的大部分运行机制,只是很遗憾对其signal关键技术的细节未能完全掌握,以致于依赖于signal机制的程序未能正确运行。还是采用老办法,先转移阵地,哪天再杀回来,嘿嘿。
先发布一个阶段性的版本,以示咱至少往前挪了一小步。这个版本包括以下内容:
Cygwin checkout 2008-09-28
Bash 4.0
Core-utils 7.6
Grep 2.5.4
Sed 4.2
Diffutils 2.8.1
由于signal机制的缺失,bash的下述测试脚本未能与正确结果完全一致:
array coproc cprint dirstack errors execscript extglob glob-test
heredoc herestr ifs-posix intl iquote jobs more-exp nquote2 nquote3
nquote4 posixpat precedence printf read redir rhs-exp rsh set-e
shopt trap type
有兴趣的可以到个人资源中下一个权当玩具:
http://lights_joy.download.csdn.net/
回顾整个过程,基本实现了当初的一个主要目标:让cygwin.dll与vs2008的crt和平共处!但是为了达到此目的,不得不做了一些牺牲:
1、对cygwin的所有导出函数进行了重命名的处理,比如open就变成了cyg_open,再由于批量替换的操作,导致了很多的提示字符串特别怪异。
2、需要先运行vs2008的crt代码,然后再运行cygwin的crt,于是一个很简单的main函数就变成了:
int
real_main (int argc, char **argv, char** envp);
int
main (int argc, char **argv)
{
return cygwin_crt0(real_main);
}
int
real_main (int argc, char **argv, char** envp)
{
………
原来的main函数。
}
3、虽然可以混合使用cygwin.dll和vs的库,但是当需要使用fork的时候,很多东西就只能限制在使用cygwin.dll提供的函数。比如内存分配,文件操作等,在不使用fork的时候想用哪个都可以,但是如果要使用fork机制,则只能使用cygwin.dll。
一个比较理想的状态应该是既允许只使用cygwin,也允许混合使用cygwin和vs的库。通过一个简单的宏进行控制。
顺便发点感慨,虽然原来对libc的内容分类的判断基本准确,但是真正做完移植,才发现原来对libc的认识还是肤浅了一点!真的是不做不知道,一做吓一跳!
分享到:
相关推荐
在Python的世界里,turtle库是一个极其重要的模块,尤其对于初学者来说,它提供了一个简单易用的图形绘制工具。"turtle-0.0.2.tar.gz"是这个库的一个特定版本,打包为一个压缩文件,适用于在PyCharm这样的集成开发...
Vmamba selective_scan 在Windows下环境安装包,直接pip install 即可:pip install selective-scan-0.0.2-cp310-cp310-win_amd64.whl; 此版本不包含 selective_scan_cuda_core; 安装博客参考:...
标题 "robotframework-excellibrary-0.0.2.zip" 提供的是一个名为 ExcelLibrary 的 Robot Framework 模块的特定版本(0.0.2)。Robot Framework 是一个通用的自动化测试框架,它允许用户使用关键词驱动的方法进行...
资源来自pypi官网。 资源全名:hta-0.0.2-py3-none-any.whl
pip install selective_scan-0.0.2-cp310-cp310-linux_x86_64.whl 即可安装上; 此版本包含selective_scan_cuda_oflex和selective_scan_cuda_core; 安装博客见 ...
Vmamba selective_scan 在Windows下环境安装包,直接pip install 即可:pip install selective-scan-0.0.2-cp310-cp310-win_amd64.whl; 此版本包含 selective_scan_cuda_core; 安装博客参考:...
VMamba Linux 下 selective_scan 安装包,pip install selective_scan-0.0.2-cp310-cp310-linux_x86_64.whl 即可安装上,跳过最后复杂的编译过程。(CUDA12.1 不含core) 安装博客见 ...
"Python库 | py-test-utility-0.0.2.tar.gz" 是一个针对Python开发的测试工具库,版本为0.0.2,被封装在`.tar.gz`压缩格式的文件中。`.tar.gz`是一种常见的文件打包和压缩格式,它结合了tar(用于归档多个文件)和...
prometheus监控rocketmq用到的rocketmq-exporter jar包,官方github.com/apache/rocketmq-exporter,mvn打包
《Python库pyque-0.0.2:...总结来说,pyque-0.0.2是Python开发中的一个队列管理工具,适用于处理并发任务、消息传递、缓存策略等多种应用场景。理解并熟练使用这个库,能够提升开发者在后端开发中的效率和代码质量。
Apache Ant是一个Java库和命令行工具,它的设计目标是驱动构建过程。Ant使用XML来描述构建过程和依赖关系,使得构建过程可以自动化,并且跨平台。这个"ant-googlecode-0.0.2.jar"文件很可能是一个定制的或扩展了Ant...
"Python库 | colorful_print-0.0.2-py3-none-any.whl"是一个Python库的发行包,用于为终端输出提供彩色打印功能。在Python编程中,有时我们需要在控制台输出信息时增加颜色,使得日志或者调试信息更加直观易读。...
python库。 资源全名:Dictionary_deserializer-0.0.2-py3-none-any.whl
Python库是开发者在编程时经常会使用到的重要工具,它们提供了丰富的功能,可以帮助我们更高效地完成各种任务。本文将深入探讨“tsorb-0.0.2”这个Python库,了解其基本概念、用途和使用方法。 “tsorb-0.0.2.tar....
Python库是开发者在编程时经常会使用到的重要工具,它们提供了丰富的功能,可以帮助程序员高效地完成各种任务。在Python生态系统中,有许多预构建的库,涵盖了数据处理、网络通信、科学计算、图形用户界面等多个领域...
python库。 资源全名:dataintegrator-0.0.2-py3-none-any.whl
pip install selective_scan-0.0.2-cp310-cp310-linux_x86_64.whl 即可安装上; 此版本包含selective_scan_cuda_oflex和selective_scan_cuda_core; 安装博客见 ...
标题中的"PyPI 官网下载 | cotk-0.0.2.tar.gz"表明这是一个在Python Package Index(PyPI)官方源上发布的软件包,名为`cotk`,版本为`0.0.2`,并且以`.tar.gz`格式提供。这种格式通常用于在Python中分发源代码包,...
资源分类:Python库 所属语言:Python 资源全名:paspas-0.0.2-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:datatoolkit-0.0.2-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059