mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-19 04:56:30 +00:00
feat: 支持动态链接 (#910)
* feat: 支持动态链接 Authored-By: chiichen <chiichen@qq.com> Co-authored-by: longjin <longjin@DragonOS.org> Signed-off-by: longjin <longjin@DragonOS.org> * build: 更新构建容器版本至v1.12并指定DADK安装版本 - 将BUILD_CONTAINER_VERSION从v1.11升级到v1.12 - 修改bootstrap.sh和user/Makefile中DADK的安装方式,明确指定版本v0.4.0 Signed-off-by: longjin <longjin@DragonOS.org> --------- Signed-off-by: longjin <longjin@dragonos.org> Co-authored-by: chiichen <chiichen@qq.com> Co-authored-by: longjin <longjin@dragonos.org> Co-authored-by: Jomo <xuzihao@dragonos.org> Co-authored-by: MemoryShore <1353318529@qq.com>
This commit is contained in:
@ -2,7 +2,7 @@ user_sub_dirs = apps
|
||||
|
||||
DADK_VERSION=$(shell dadk -V | awk 'END {print $$2}')
|
||||
# 最小的DADK版本
|
||||
MIN_DADK_VERSION = 0.3.0
|
||||
MIN_DADK_VERSION = 0.4.0
|
||||
DADK_CACHE_DIR = $(ROOT_PATH)/bin/dadk_cache
|
||||
|
||||
ECHO:
|
||||
@ -20,7 +20,7 @@ ifeq ("$(DADK_VERSION)", "")
|
||||
@echo "\n\tcargo install --git https://git.mirrors.dragonos.org.cn/DragonOS-Community/DADK.git --tag v$(MIN_DADK_VERSION)" --locked
|
||||
@echo "\n"
|
||||
@echo "Auto installing dadk..."
|
||||
cargo install dadk
|
||||
cargo install --git https://git.mirrors.dragonos.org.cn/DragonOS-Community/DADK.git --tag v$(MIN_DADK_VERSION)" --locked
|
||||
else
|
||||
# 如果DADK版本过低,则自动更新
|
||||
@echo "dadk version $(DADK_VERSION) installed"
|
||||
|
@ -10,7 +10,7 @@ else
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH), x86_64)
|
||||
export RUST_TARGET=x86_64-unknown-linux-musl
|
||||
export RUST_TARGET=x86_64-unknown-linux-gnu
|
||||
else ifeq ($(ARCH), riscv64)
|
||||
export RUST_TARGET=riscv64gc-unknown-linux-gnu
|
||||
else
|
||||
|
@ -1,5 +1,5 @@
|
||||
ifeq ($(ARCH), x86_64)
|
||||
CROSS_COMPILE=x86_64-linux-musl-
|
||||
CROSS_COMPILE=x86_64-linux-gnu-
|
||||
else ifeq ($(ARCH), riscv64)
|
||||
CROSS_COMPILE=riscv64-linux-musl-
|
||||
endif
|
||||
@ -8,7 +8,7 @@ CC=$(CROSS_COMPILE)gcc
|
||||
|
||||
.PHONY: all
|
||||
all: main.c
|
||||
$(CC) -static -o test_fstat main.c
|
||||
$(CC) -o test_fstat main.c
|
||||
|
||||
.PHONY: install clean
|
||||
install: all
|
||||
|
@ -1,5 +1,5 @@
|
||||
ifeq ($(ARCH), x86_64)
|
||||
CROSS_COMPILE=x86_64-linux-musl-
|
||||
CROSS_COMPILE=x86_64-linux-gnu-
|
||||
else ifeq ($(ARCH), riscv64)
|
||||
CROSS_COMPILE=riscv64-linux-musl-
|
||||
endif
|
||||
@ -8,7 +8,7 @@ CC=$(CROSS_COMPILE)gcc
|
||||
|
||||
.PHONY: all
|
||||
all: main.c
|
||||
$(CC) -static -o test_newfstatat main.c
|
||||
$(CC) -o test_newfstatat main.c
|
||||
|
||||
.PHONY: install clean
|
||||
install: all
|
||||
|
@ -22,6 +22,10 @@ type = "build-from-source"
|
||||
source = "archive"
|
||||
# 路径或URL
|
||||
source-path = "https://mirrors.dragonos.org.cn/pub/third_party/gnu/coreutils/coreutils-9.4.tar.xz"
|
||||
|
||||
# 把压缩包中的哪个目录作为根目录(可选),仅当 source = "archive" 时生效
|
||||
archive-rootdir = "coreutils-9.4"
|
||||
|
||||
# 构建相关信息
|
||||
[build]
|
||||
# (可选)构建命令
|
||||
|
40
user/dadk/config/glibc_bin_ubuntu2404.toml
Normal file
40
user/dadk/config/glibc_bin_ubuntu2404.toml
Normal file
@ -0,0 +1,40 @@
|
||||
# 用户程序名称
|
||||
name = "glibc_bin_ubuntu2404"
|
||||
# 版本号
|
||||
version = "2.39"
|
||||
# 用户程序描述信息
|
||||
description = "GNU C Library for Ubuntu 24.04"
|
||||
# (可选)默认: false 是否只构建一次,如果为true,DADK会在构建成功后,将构建结果缓存起来,下次构建时,直接使用缓存的构建结果
|
||||
build-once = false
|
||||
# (可选) 默认: false 是否只安装一次,如果为true,DADK会在安装成功后,不再重复安装
|
||||
install-once = false
|
||||
# 目标架构
|
||||
# 可选值:"x86_64", "aarch64", "riscv64", "loongarch64"
|
||||
target-arch = ["x86_64"]
|
||||
# 任务源
|
||||
[task-source]
|
||||
# 构建类型
|
||||
# 可选值:"build-from-source", "install-from-prebuilt"
|
||||
type = "install-from-prebuilt"
|
||||
# 构建来源
|
||||
# "build_from_source" 可选值:"git", "local", "archive"
|
||||
# "install_from_prebuilt" 可选值:"local", "archive"
|
||||
source = "archive"
|
||||
# 路径或URL
|
||||
source-path = "https://mirrors.dragonos.org.cn/pub/third_party/gnu/glibc-bin/glibc-ubuntu2404-x86_64-202505111756-8f3207567bf10f4d09027b2cd84b7807.tar.xz"
|
||||
archive-rootdir = "sysroot/"
|
||||
|
||||
[build]
|
||||
|
||||
# 安装相关信息
|
||||
[install]
|
||||
# (可选)安装到DragonOS的路径
|
||||
in-dragonos-path = "/"
|
||||
# 清除相关信息
|
||||
[clean]
|
||||
# (可选)清除命令
|
||||
clean-command = ""
|
||||
# (可选)依赖项
|
||||
# 注意:如果没有依赖项,忽略此项,不允许只留一个[[depends]]
|
||||
# (可选)环境变量
|
||||
# 注意:如果没有环境变量,忽略此项,不允许只留一个[[envs]]
|
@ -22,10 +22,13 @@ type = "build-from-source"
|
||||
source = "archive"
|
||||
# 路径或URL
|
||||
source-path = "https://mirrors.dragonos.org.cn/pub/third_party/musl/musl-1.2.4.tar.gz"
|
||||
# 把压缩包中的哪个目录作为根目录(可选),仅当 source = "archive" 时生效
|
||||
archive-rootdir = "musl-1.2.4"
|
||||
|
||||
# 构建相关信息
|
||||
[build]
|
||||
# (可选)构建命令
|
||||
build-command = "touch config.mak && DESTDIR=$DADK_CURRENT_BUILD_DIR make install -j $(nproc)"
|
||||
build-command = "touch config.mak && DESTDIR=$DADK_CURRENT_BUILD_DIR make install -j $(nproc) && rm -rf $DADK_CURRENT_BUILD_DIR/lib && rm -rf $DADK_CURRENT_BUILD_DIR/lib64"
|
||||
# 安装相关信息
|
||||
[install]
|
||||
# (可选)安装到DragonOS的路径
|
||||
|
@ -7,4 +7,5 @@ ExecStart=/bin/NovaShell
|
||||
Restart=always
|
||||
ExecStartPre=-/bin/about.elf
|
||||
ExecStartPre=/bin/busybox stty erase 127
|
||||
Environment=PATH=/bin:/usr/bin:/usr/local/bin
|
||||
Environment=PATH=/bin:/usr/bin:/usr/local/bin
|
||||
Environment=LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/local/lib
|
||||
|
Reference in New Issue
Block a user