File tree Expand file tree Collapse file tree 2 files changed +32
-10
lines changed
aarch64/qemu-gicv3/test/systemtest
riscv64/qemu-plic/test/systemtest Expand file tree Collapse file tree 2 files changed +32
-10
lines changed Original file line number Diff line number Diff line change @@ -36,21 +36,32 @@ build_hvisor_tool() {
3636 echo " === Building hvisor components ==="
3737 cd " ${HVISOR_TOOL_DIR} "
3838
39+ local CFLAGS_EXTRA=" "
40+
3941 case " ${ARCH} " in
4042 riscv64)
41- export CC=" riscv64-linux-gnu-gcc --sysroot=/usr/riscv64-linux-gnu -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
43+ # 设置编译器
44+ export CC=" riscv64-linux-gnu-gcc --sysroot=/usr/riscv64-linux-gnu"
45+ # 准备需要强制注入的 CFLAGS
46+ # --sysroot: 指定系统根,用于链接库
47+ # -I/usr/riscv64-linux-gnu/include: 指定 C 标准库头文件路径
48+ # -I/usr/lib/gcc-cross/riscv64-linux-gnu/11/include-fixed: 指定 GCC 修正头文件路径,解决 limits.h 问题
49+ # -U_FORTIFY_SOURCE ...: 解决 glibc 版本安全检查问题
50+ CFLAGS_EXTRA=" --sysroot=/usr/riscv64-linux-gnu -I/usr/riscv64-linux-gnu/include -I/usr/lib/gcc-cross/riscv64-linux-gnu/11/include-fixed -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
4251 ;;
4352 aarch64)
44- export CC=" aarch64-linux-gnu-gcc --sysroot=/usr/aarch64-linux-gnu -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
53+ export CC=" aarch64-linux-gnu-gcc --sysroot=/usr/aarch64-linux-gnu"
54+ CFLAGS_EXTRA=" --sysroot=/usr/aarch64-linux-gnu -I/usr/aarch64-linux-gnu/include -I/usr/lib/gcc-cross/aarch64-linux-gnu/11/include-fixed -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
4555 ;;
4656 esac
4757
48- # Cross-compilation parameters
58+ # 在 make 命令中,将我们构造的 CFLAGS_EXTRA 添加进去
59+ # 我们使用 CFLAGS+="${CFLAGS_EXTRA}" 的语法,确保所有标志都被正确传递
4960 make -e all \
50- ARCH=arm64 \
61+ ARCH=riscv \
5162 LOG=LOG_INFO \
52- KDIR=" ${LINUX_KERNEL_DIR} "
53- CFLAGS+=" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 " \
63+ KDIR=" ${LINUX_KERNEL_DIR} " \
64+ " CFLAGS+=${CFLAGS_EXTRA} " \
5465 MAKE=' make -e'
5566}
5667
Original file line number Diff line number Diff line change @@ -36,21 +36,32 @@ build_hvisor_tool() {
3636 echo " === Building hvisor components ==="
3737 cd " ${HVISOR_TOOL_DIR} "
3838
39+ local CFLAGS_EXTRA=" "
40+
3941 case " ${ARCH} " in
4042 riscv64)
41- export CC=" riscv64-linux-gnu-gcc --sysroot=/usr/riscv64-linux-gnu -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
43+ # 设置编译器
44+ export CC=" riscv64-linux-gnu-gcc --sysroot=/usr/riscv64-linux-gnu"
45+ # 准备需要强制注入的 CFLAGS
46+ # --sysroot: 指定系统根,用于链接库
47+ # -I/usr/riscv64-linux-gnu/include: 指定 C 标准库头文件路径
48+ # -I/usr/lib/gcc-cross/riscv64-linux-gnu/11/include-fixed: 指定 GCC 修正头文件路径,解决 limits.h 问题
49+ # -U_FORTIFY_SOURCE ...: 解决 glibc 版本安全检查问题
50+ CFLAGS_EXTRA=" --sysroot=/usr/riscv64-linux-gnu -I/usr/riscv64-linux-gnu/include -I/usr/lib/gcc-cross/riscv64-linux-gnu/11/include-fixed -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
4251 ;;
4352 aarch64)
44- export CC=" aarch64-linux-gnu-gcc --sysroot=/usr/aarch64-linux-gnu -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
53+ export CC=" aarch64-linux-gnu-gcc --sysroot=/usr/aarch64-linux-gnu"
54+ CFLAGS_EXTRA=" --sysroot=/usr/aarch64-linux-gnu -I/usr/aarch64-linux-gnu/include -I/usr/lib/gcc-cross/aarch64-linux-gnu/11/include-fixed -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0"
4555 ;;
4656 esac
4757
48- # Cross-compilation parameters
58+ # 在 make 命令中,将我们构造的 CFLAGS_EXTRA 添加进去
59+ # 我们使用 CFLAGS+="${CFLAGS_EXTRA}" 的语法,确保所有标志都被正确传递
4960 make -e all \
5061 ARCH=riscv \
5162 LOG=LOG_INFO \
5263 KDIR=" ${LINUX_KERNEL_DIR} " \
53- CFLAGS+=" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 " \
64+ " CFLAGS+=${CFLAGS_EXTRA} " \
5465 MAKE=' make -e'
5566}
5667
You can’t perform that action at this time.
0 commit comments