-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Unable to build multiple libraries correctly #1205
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
Comments
Are you sure that you're doing a clean build each time? Try omitting |
Actually, the problem is most likely that your multilib list is comma separated and should be semicolon separated. So, try |
Oh, thanks. It was caused by the wrong symbol I wrote. |
Oh, there is another question, if I want to compile the gcc toolchain that supports /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none- elf/lib/libnosys.a(fstat.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld:/ home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libnosys.a( isatty.o): can't link soft-float modules with single-float modules |
When compiling your code for Note that when you do |
I set |
When I set |
I don't understand. Where are you setting this?
That's because, for some reason, when you're targeting But it's difficult to know what's going on when you are not providing adequate info to reproduce your issues. |
I built the toolchain as follows:
Then I created a simple
And then I compiled it as follows with all
So I don't really know why you seem to be having problems but there is no issue with the toolchain that I can see. |
I think the problem lies in the set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/Ld/Link.ld)
add_link_options(-nostartfiles
-Xlinker --gc-sections
-Wl, --print-memory-usage
-Wl,-Map,${PROJECT_NAME}.map
--specs=nano.specs
--specs=nosys.specs) https://github.com/dreamcmi/CH32V307-CMake When I follow your command line ( darren@darren-virtual-machine:~/CH32V307-CMake$ rm -rf build
darren@darren-virtual-machine:~/CH32V307-CMake$ cmake -G Ninja -B build
-- Now is UNIX-like OS!
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/darren/riscv-gnu-toolchain/build/bin/riscv-none-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/darren/riscv-gnu-toolchain/build/bin/riscv-none-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/darren/riscv-gnu-toolchain/build/bin/riscv-none-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/darren/CH32V307-CMake/build
darren@darren-virtual-machine:~/CH32V307-CMake$ cmake --build build
[2/33] Building C object CMakeFiles/ch32v307-ninja.elf.dir/APP/ch32v30x_it.c.obj
/home/darren/CH32V307-CMake/APP/ch32v30x_it.c:12:1: warning: argument to 'interrupt' attribute is not '"user"', '"supervisor"', or '"machine"' [-Wattributes]
12 | void NMI_Handler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
| ^~~~
/home/darren/CH32V307-CMake/APP/ch32v30x_it.c:13:1: warning: argument to 'interrupt' attribute is not '"user"', '"supervisor"', or '"machine"' [-Wattributes]
13 | void HardFault_Handler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
| ^~~~
[33/33] Linking C executable ch32v307-ninja.elf
FAILED: ch32v307-ninja.elf
: && /home/darren/riscv-gnu-toolchain/build/bin/riscv-none-elf-gcc -nostartfiles -Xlinker --gc-sections -Wl,--print-memory-usage -Wl,-Map,ch32v307-ninja.map --specs=nano.specs --specs=nosys.specs -T /home/darren/CH32V307-CMake/Ld/Link.ld CMakeFiles/ch32v307-ninja.elf.dir/APP/ch32v30x_it.c.obj CMakeFiles/ch32v307-ninja.elf.dir/APP/main.c.obj CMakeFiles/ch32v307-ninja.elf.dir/APP/system_ch32v30x.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Core/core_riscv.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Debug/debug.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_adc.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_bkp.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_can.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_crc.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_dac.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_dbgmcu.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_dma.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_dvp.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_eth.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_exti.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_flash.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_fsmc.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_gpio.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_i2c.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_iwdg.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_misc.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_opa.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_pwr.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_rcc.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_rng.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_rtc.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_sdio.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_spi.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_tim.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_usart.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Peripheral/src/ch32v30x_wwdg.c.obj CMakeFiles/ch32v307-ninja.elf.dir/Startup/startup_ch32v30x_D8C.S.obj -o ch32v307-ninja.elf && cd /home/darren/CH32V307-CMake/build && /home/darren/riscv-gnu-toolchain/build/bin/riscv-none-elf-objcopy -Oihex /home/darren/CH32V307-CMake/build/ch32v307-ninja.elf /home/darren/CH32V307-CMake/build/ch32v307-ninja.hex && /home/darren/riscv-gnu-toolchain/build/bin/riscv-none-elf-objcopy -Obinary /home/darren/CH32V307-CMake/build/ch32v307-ninja.elf /home/darren/CH32V307-CMake/build/ch32v307-ninja.bin && /home/darren/riscv-gnu-toolchain/build/bin/riscv-none-elf-objdump --all-headers --demangle --disassemble /home/darren/CH32V307-CMake/build/ch32v307-ninja.elf > /home/darren/CH32V307-CMake/build/ch32v307-ninja.lst && /home/darren/riscv-gnu-toolchain/build/bin/riscv-none-elf-size --format=berkeley /home/darren/CH32V307-CMake/build/ch32v307-ninja.elf
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-closer.o): in function `_close_r':
closer.c:(.text._close_r+0x14): warning: _close is not implemented and will always fail
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-fstatr.o): in function `_fstat_r':
fstatr.c:(.text._fstat_r+0x16): warning: _fstat is not implemented and will always fail
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-isattyr.o): in function `_isatty_r':
isattyr.c:(.text._isatty_r+0x14): warning: _isatty is not implemented and will always fail
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-lseekr.o): in function `_lseek_r':
lseekr.c:(.text._lseek_r+0x18): warning: _lseek is not implemented and will always fail
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-readr.o): in function `_read_r':
readr.c:(.text._read_r+0x18): warning: _read is not implemented and will always fail
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-printf.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-printf.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-puts.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-puts.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-wbuf.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-wbuf.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-wsetup.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-wsetup.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-fflush.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-fflush.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-findfp.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-findfp.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-fwalk.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-fwalk.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-impure.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-impure.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-makebuf.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-makebuf.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-memset.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-memset.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-nano-freer.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-nano-freer.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-nano-mallocr.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-nano-mallocr.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-nano-vfprintf.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-nano-vfprintf.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-sbrkr.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-sbrkr.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-stdio.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-stdio.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-writer.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-writer.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-closer.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-closer.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-fstatr.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-fstatr.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-fvwrite.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-fvwrite.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-isattyr.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-isattyr.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-lseekr.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-lseekr.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-memchr.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-memchr.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-memcpy-asm.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-memcpy-asm.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-memmove.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-memmove.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-mlock.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-mlock.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-nano-reallocr.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-nano-reallocr.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-nano-vfprintf_i.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-nano-vfprintf_i.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-readr.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-readr.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-reent.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-reent.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-nano-msizer.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libc_nano.a(lib_a-nano-msizer.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libnosys.a(close.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libnosys.a(close.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libnosys.a(fstat.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libnosys.a(fstat.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libnosys.a(isatty.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libnosys.a(isatty.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libnosys.a(lseek.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libnosys.a(lseek.o)
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libnosys.a(read.o): can't link soft-float modules with single-float modules
/home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/bin/ld: failed to merge target specific data of file /home/darren/riscv-gnu-toolchain/build/lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/libnosys.a(read.o)
Memory region Used Size Region Size %age Used
FLASH: 8324 B 288 KB 2.82%
RAM: 32 KB 32 KB 100.00%
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed. |
Yes, but it is implicitly/automatically linking newlib. There's no other C library in the bare metal toolchain (unless you build the Picolib version of the toolchain if the patches for doing so have all been integrated - I'm not sure).
Same with my simple example. Obviously everything is statically linked for a bare metal target.
Your issue is with your build process and not with the toolchain. I.e. it's a CMake/Ninja issue and not a toolchain issue. You should probably seek support for these tools in another more appropriate forum. |
Oh, you reminded me that I did not set march and mabi for ld, which caused this error. After I set it, it worked normally, thank you very much. |
My requirement is to build some newlib libraries that I need, they correspond to different arch and abi, but when I use
--with-multilib-generator
to build, he does not seem to build the required lib correctly, Instead, it exited normally.The abnormal behavior is as follows
When I remove
--with-multilib-generator
, it builds the lib fine, but only a few defaults, not what I need.The text was updated successfully, but these errors were encountered: