guanjinquan 2224c93ea9
完善libc,构建了OS-specific工具链,编译了基于gcc-11.3.0的DragonOS userland compiler,移植了mpfr,gmp,mpc库 (#134)
* 修改include路径

* 添加了创建libsysapi.a和/bin/sysroot/usr/include/+lib/的代码

* 修补.gitignore

* 删除多余项

* 优化脚本可读性

* 新增crt0 crti crtn

* 编译binutils所需的东西

* fflush()和fprintf()的简单实现

* 应用程序启动前,调用初始化libc的函数

* 自动创建sysroot

* 添加了stderr的初始化

* 修改了stderr的初始化

* 内核添加对stdio的简略处理

* 格式化代码

* 修正打开stdio文件描述符的问题

* bugfix: 修复fprintf忘记释放buf的问题

* 修复shell错误地把入口设置为main而不是_start的问题

* 新增__cxa_atexit  (gcc要求libc提供这个)

* 增加putchar puts

* 更新写入磁盘镜像的脚本,默认无参数时,使用legacy方式安装

* 更新编译脚本

* stdio增加eof的定义

* 新增extern cplusplus

* mpfr gmp mpc 构建脚本

* 更新libsysapi.a为libc.a

* 加上ferror fopen fclose

* 更新移植的软件的构建脚本

* 更改build_gcc_toolchain.sh中的-save参数名为-save-cache

Co-authored-by: longjin <longjin@RinGoTek.cn>
2023-01-06 21:29:23 +08:00

733 B
Raw Blame History

binutils-2.38

说明

这里是移植到用户态的binutils-2.38用于DragonOS的用户态编译器。在编译这里之前请先在项目根目录下运行make -j $(nproc), 以确保编译binutils所依赖的依赖库已经编译好。

先修改build.sh中的路径配置好需要的信息再使用以下命令即可开始编译

bash build.sh

请注意如果您要修改binutils的代码请先使用以下命令构建编辑binutils代码配置的环境

docker build --no-cache -t dragonos-binutils-build .

然后再在binutils目录下执行以下命令进入容器

docker run --rm -it -v $PWD:/workdir -w /workdir dragonos-binutils-build