OSX: undefined reference to `c_cpuid': make {virtualbox,qemu}
Created by: adarqui
Reproduction: bootstrap.sh; make qemu (or make virtualbox)
Expected behavior: Don't error.
Actual behavior: I receive the following error:
redox$ make virtualbox
x86_64-elf-ld --gc-sections -z max-page-size=0x1000 -T kernel/linkers/x86_64.ld -o build/kernel build/libkernel.a
build/libkernel.a(raw_cpuid-9cf6b6e4636721a8.0.o): In function `raw_cpuid::CpuId::new::h7dfb0a7093d5537d':
raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId3new17h7dfb0a7093d5537dE+0x35): undefined reference to `c_cpuid'
raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId3new17h7dfb0a7093d5537dE+0x35): relocation truncated to fit: R_X86_64_PLT32 against undefined symbol `c_cpuid'
build/libkernel.a(raw_cpuid-9cf6b6e4636721a8.0.o): In function `raw_cpuid::CpuId::get_vendor_info::hd4ca29f2f98219c9':
raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId15get_vendor_info17hd4ca29f2f98219c9E+0x39): undefined reference to `c_cpuid'
raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId15get_vendor_info17hd4ca29f2f98219c9E+0x39): relocation truncated to fit: R_X86_64_PLT32 against undefined symbol `c_cpuid'
build/libkernel.a(raw_cpuid-9cf6b6e4636721a8.0.o): In function `raw_cpuid::CpuId::get_feature_info::h7b77103b518d3f0e':
raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId16get_feature_info17h7b77103b518d3f0eE+0x3e): undefined reference to `c_cpuid'
raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId16get_feature_info17h7b77103b518d3f0eE+0x3e): relocation truncated to fit: R_X86_64_PLT32 against undefined symbol `c_cpuid'
build/libkernel.a(raw_cpuid-9cf6b6e4636721a8.0.o): In function `raw_cpuid::CpuId::get_extended_feature_info::hf22f499da193f407':
raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId25get_extended_feature_info17hf22f499da193f407E+0x3e): undefined reference to `c_cpuid'
raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId25get_extended_feature_info17hf22f499da193f407E+0x3e): relocation truncated to fit: R_X86_64_PLT32 against undefined symbol `c_cpuid'
build/libkernel.a(raw_cpuid-9cf6b6e4636721a8.0.o): In function `raw_cpuid::CpuId::get_processor_frequency_info::hdbe7789140580e13':
raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId28get_processor_frequency_info17hdbe7789140580e13E+0x3e): undefined reference to `c_cpuid'
raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId28get_processor_frequency_info17hdbe7789140580e13E+0x3e): relocation truncated to fit: R_X86_64_PLT32 against undefined symbol `c_cpuid'
build/libkernel.a(raw_cpuid-9cf6b6e4636721a8.0.o):raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId26get_extended_function_info17h808fd7c958fb4fc5E+0x4a): more undefined references to `c_cpuid' follow
build/libkernel.a(raw_cpuid-9cf6b6e4636721a8.0.o): In function `raw_cpuid::CpuId::get_extended_function_info::h808fd7c958fb4fc5':
raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId26get_extended_function_info17h808fd7c958fb4fc5E+0x4a): relocation truncated to fit: R_X86_64_PLT32 against undefined symbol `c_cpuid'
raw_cpuid.cgu-0.rs:(.text._ZN9raw_cpuid5CpuId26get_extended_function_info17h808fd7c958fb4fc5E+0x192): relocation truncated to fit: R_X86_64_PLT32 against undefined symbol `c_cpuid'
make: *** [build/kernel] Error 1
Build information:
redox$ rustc -V
rustc 1.19.0-nightly (4bf5c99af 2017-06-10)
current git master as of: f5677cc76fbd7b9d96dc22b78fc9a25b2cac2e07
redox$ uname -a
Darwin redox 16.6.0 Darwin Kernel Version 16.6.0: Fri Apr 14 16:21:16 PDT 2017; root:xnu-3789.60.24~6/RELEASE_X86_64 x86_64
More
redox$ grep -r c_cpuid .
Binary file ./build/libkernel.a matches
Binary file ./kernel/target/x86_64-unknown-none/release/build/raw-cpuid-810e159428d76215/out/libcpuid.a matches
Binary file ./kernel/target/x86_64-unknown-none/release/build/raw-cpuid-810e159428d76215/out/src/cpuid.o matches
Binary file ./kernel/target/x86_64-unknown-none/release/deps/libraw_cpuid-9cf6b6e4636721a8.rlib matches
Any idea? Thanks!