Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error of compiling C apps in riscv64 AND aarch64 ARCH #37

Closed
chyyuu opened this issue May 3, 2023 · 2 comments
Closed

error of compiling C apps in riscv64 AND aarch64 ARCH #37

chyyuu opened this issue May 3, 2023 · 2 comments
Labels
bug Something isn't working

Comments

@chyyuu
Copy link
Member

chyyuu commented May 3, 2023

$ make A=apps/c/helloworld ARCH=riscv64 run
.......
rust-lld -flavor gnu -nostdlib -static -no-pie --gc-sections -T/home/chyyuu/thecodes/arceos/modules/axhal/linker_riscv64.lds apps/c/helloworld/main.o ulib/c_libax/build_riscv64/libc.a target/riscv64gc-unknown-none-elf/release/liblibax.a -o apps/c/helloworld/helloworld_f
rust-lld: error: ulib/c_libax/build_riscv64/libc.a(stat.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_riscv64/libc.a(time.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_riscv64/libc.a(stdlib.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_riscv64/libc.a(fcntl.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_riscv64/libc.a(string.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_riscv64/libc.a(stdio.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_riscv64/libc.a(mmap.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_riscv64/libc.a(unistd.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_riscv64/libc.a(assert.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/riscv64gc-unknown-none-elf/release/liblibax.a(libax-99558854f9f72cb2.libax.8f06c8432ac99f28-cgu.0.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/riscv64gc-unknown-none-elf/release/liblibax.a(compiler_builtins-8c97496fd8e79463.compiler_builtins.5f3b8f588c381ca5-cgu.0.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/riscv64gc-unknown-none-elf/release/liblibax.a(compiler_builtins-8c97496fd8e79463.compiler_builtins.5f3b8f588c381ca5-cgu.1.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/riscv64gc-unknown-none-elf/release/liblibax.a(compiler_builtins-8c97496fd8e79463.compiler_builtins.5f3b8f588c381ca5-cgu.10.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/riscv64gc-unknown-none-elf/release/liblibax.a(compiler_builtins-8c97496fd8e79463.compiler_builtins.5f3b8f588c381ca5-cgu.11.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/riscv64gc-unknown-none-elf/release/liblibax.a(compiler_builtins-8c97496fd8e79463.compiler_builtins.5f3b8f588c381ca5-cgu.12.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/riscv64gc-unknown-none-elf/release/liblibax.a(compiler_builtins-8c97496fd8e79463.compiler_builtins.5f3b8f588c381ca5-cgu.13.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/riscv64gc-unknown-none-elf/release/liblibax.a(compiler_builtins-8c97496fd8e79463.compiler_builtins.5f3b8f588c381ca5-cgu.14.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/riscv64gc-unknown-none-elf/release/liblibax.a(compiler_builtins-8c97496fd8e79463.compiler_builtins.5f3b8f588c381ca5-cgu.15.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/riscv64gc-unknown-none-elf/release/liblibax.a(compiler_builtins-8c97496fd8e79463.compiler_builtins.5f3b8f588c381ca5-cgu.2.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/riscv64gc-unknown-none-elf/release/liblibax.a(compiler_builtins-8c97496fd8e79463.compiler_builtins.5f3b8f588c381ca5-cgu.3.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
make: *** [ulib/c_libax/build.mk:74: apps/c/helloworld/helloworld_qemu-virt-riscv.elf] Error 1

$ make A=apps/c/helloworld ARCH=aarch64 run
......
rm -f ulib/c_libax/build_aarch64/libc.a
aarch64-linux-musl-ar rc ulib/c_libax/build_aarch64/libc.a ulib/c_libax/build_aarch64/stat.o ulib/c_libax/build_aarch64/time.o ulib/c_libax/build_aarch64/stdlib.o ulib/c_libax/build_aarch64/fcntl.o ulib/c_libax/build_aarch64/string.o ulib/c_libax/build_aarch64/stdio.o o
aarch64-linux-musl-ranlib ulib/c_libax/build_aarch64/libc.a
Linking apps/c/helloworld/helloworld_qemu-virt-aarch64.elf
rust-lld -flavor gnu -nostdlib -static -no-pie --gc-sections -T/home/chyyuu/thecodes/arceos/modules/axhal/linker_aarch64.lds apps/c/helloworld/main.o ulib/c_libax/build_aarch64/libc.a target/aarch64-unknown-none-softfloat/release/liblibax.a -o apps/c/helloworld/hellowof
rust-lld: error: ulib/c_libax/build_aarch64/libc.a(stat.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_aarch64/libc.a(time.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_aarch64/libc.a(stdlib.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_aarch64/libc.a(fcntl.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_aarch64/libc.a(string.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_aarch64/libc.a(stdio.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_aarch64/libc.a(mmap.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_aarch64/libc.a(unistd.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: ulib/c_libax/build_aarch64/libc.a(assert.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/aarch64-unknown-none-softfloat/release/liblibax.a(libax-3c217168e80c2c7b.libax.e636c8b0142bf204-cgu.1.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/aarch64-unknown-none-softfloat/release/liblibax.a(compiler_builtins-164467728415cd01.compiler_builtins.a3c2a0a8e451691c-cgu.0.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/aarch64-unknown-none-softfloat/release/liblibax.a(compiler_builtins-164467728415cd01.compiler_builtins.a3c2a0a8e451691c-cgu.1.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/aarch64-unknown-none-softfloat/release/liblibax.a(compiler_builtins-164467728415cd01.compiler_builtins.a3c2a0a8e451691c-cgu.10.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/aarch64-unknown-none-softfloat/release/liblibax.a(compiler_builtins-164467728415cd01.compiler_builtins.a3c2a0a8e451691c-cgu.11.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/aarch64-unknown-none-softfloat/release/liblibax.a(compiler_builtins-164467728415cd01.compiler_builtins.a3c2a0a8e451691c-cgu.12.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/aarch64-unknown-none-softfloat/release/liblibax.a(compiler_builtins-164467728415cd01.compiler_builtins.a3c2a0a8e451691c-cgu.13.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/aarch64-unknown-none-softfloat/release/liblibax.a(compiler_builtins-164467728415cd01.compiler_builtins.a3c2a0a8e451691c-cgu.14.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/aarch64-unknown-none-softfloat/release/liblibax.a(compiler_builtins-164467728415cd01.compiler_builtins.a3c2a0a8e451691c-cgu.15.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/aarch64-unknown-none-softfloat/release/liblibax.a(compiler_builtins-164467728415cd01.compiler_builtins.a3c2a0a8e451691c-cgu.2.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: target/aarch64-unknown-none-softfloat/release/liblibax.a(compiler_builtins-164467728415cd01.compiler_builtins.a3c2a0a8e451691c-cgu.3.rcgu.o) is incompatible with apps/c/helloworld/main.o
rust-lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
make: *** [ulib/c_libax/build.mk:74: apps/c/helloworld/helloworld_qemu-virt-aarch64.elf] Error 1

BUT x86_64 ARCH can build and run correctly.

@chyyuu chyyuu added the bug Something isn't working label May 3, 2023
@equation314
Copy link
Member

Run make A=apps/c/helloworld clean_c before switching architecture.

@chyyuu
Copy link
Member Author

chyyuu commented May 3, 2023

The right building way:

make A=apps/c/helloworld ARCH=riscv64 clean
make A=apps/c/helloworld ARCH=riscv64 run

OR

make A=apps/c/helloworld ARCH=aarch64 clean
make A=apps/c/helloworld ARCH=aarch64 run

Then everything is OK!

@chyyuu chyyuu closed this as completed May 3, 2023
guoweikang pushed a commit to guoweikang/arceos that referenced this issue Mar 19, 2024
hbuxiaofei pushed a commit to hbuxiaofei/arceos that referenced this issue Apr 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants