Solution for /bin/ld.exe: cannot find : Invalid argument collect2.exe: error: ld returned 1 exit status
I decided to try build my NetBurner’s CMake template in NNDK 2.9.x that ships with GCC 8.1.0.
I repeated the steps in the README and suddenly got a strange linker error:
C:/nburn/gcc-m68k/bin/m68k-elf-g++.exe
--sysroot=C:/nburn/gcc-m68k/bin/../m68k-unknown-elf/sysroot -mcpu=54415
-gdwarf-2 -falign-functions=4 -ffunction-sections -fmessage-length=0
-fdata-sections -fno-rtti -DMOD5441X -DMCF5441X -DNBMINGW
-IC:/nburn/gcc-m68k/m68k-unknown-elf/include -IC:/nburn/include
-IC:/nburn/MOD5441X/include
-IC:/nburn/gcc-m68k/m68k-unknown-elf/include/c++/8.1.0 -O3 -DNDEBUG
-mcpu=54415 -Wl,-n -TC:/nburn/MOD5441X/lib/MOD5441X.ld
-Wl,-RC:/nburn/MOD5441X/lib/sys.ld
"CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/main.cpp.obj"
"CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/htmldata.cpp.obj"
-o Release/cmake-netburner-hello-world_0.0.5.elf
-Wl,-Map=G:/cmake-netburner-hello-world/build_m68k_gcc8/Release/cmake-netburner-hello-world_0.0.5.map
-Wl,--start-group, C:/nburn/lib/MOD5441X.a C:/nburn/lib/NetBurner.a
C:/nburn/lib/FatFile.a C:/nburn/lib/StdFFile.a -lstdc++ -Wl,--end-group
-Wl,--gc-sections
c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/bin/ld.exe: cannot find : Invalid argument
collect2.exe: error: ld returned 1 exit status
make.exe[3]: *** [CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/build.make:117: Release/cmake-netburner-hello-world_0.0.5.elf] Error 1
make.exe[3]: Leaving directory 'G:/cmake-netburner-hello-world/build_m68k_gcc8'
make.exe[2]: *** [CMakeFiles/Makefile2:126: CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/all] Error 2
make.exe[2]: Leaving directory 'G:/cmake-netburner-hello-world/build_m68k_gcc8'
make.exe[1]: *** [CMakeFiles/Makefile2:106: CMakeFiles/app.dir/rule] Error 2
make.exe[1]: Leaving directory 'G:/cmake-netburner-hello-world/build_m68k_gcc8'
make.exe: *** [Makefile:137: app] Error 2
It says that it can not find nothing:
c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/bin/ld.exe: cannot find : Invalid argument
collect2.exe: error: ld returned 1 exit status
I really don’t understand from that message what is the cause of the error. Is there something expanded to empty string?
Googling didn’t help me because in the majority of cases on StackOverflow were asked simple cases.
-Bstatic
and similar flags don’t used for my case.
In the project a custom *.cmake file for NetBurner toolchain is used to configure a build.
It calls the helper function where a linking is defined in the same manner as it done in the original makefiles from NetBurner.
For GCC 5.2.0 it worked, but for GCC 8.1.0 it doesn’t. Why? How to repair my cmake scripts?
Solution
Let’s try to add linker options -t --verbose
in that line after the first -Wl,
symbols and look at the huge output:
Click to expand
$ cmake --build . --target app -- VERBOSE=1
"C:/Program Files/CMake/bin/cmake.exe" -SG:/cmake-netburner-hello-world -BG:/cmake-netburner-hello-world/build_m68k_gcc8 --check-build-system CMakeFiles/Makefile.cmake 0
C:/nburn/gcc-m68k/bin/make.exe -f CMakeFiles/Makefile2 app
make.exe[1]: Entering directory 'G:/cmake-netburner-hello-world/build_m68k_gcc8'
"C:/Program Files/CMake/bin/cmake.exe" -SG:/cmake-netburner-hello-world -BG:/cmake-netburner-hello-world/build_m68k_gcc8 --check-build-system CMakeFiles/Makefile.cmake 0
"C:/Program Files/CMake/bin/cmake.exe" -E cmake_progress_start G:/cmake-netburner-hello-world/build_m68k_gcc8/CMakeFiles 3
C:/nburn/gcc-m68k/bin/make.exe -f CMakeFiles/Makefile2 CMakeFiles/app.dir/all
make.exe[2]: Entering directory 'G:/cmake-netburner-hello-world/build_m68k_gcc8'
C:/nburn/gcc-m68k/bin/make.exe -f CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/build.make CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/depend
make.exe[3]: Entering directory 'G:/cmake-netburner-hello-world/build_m68k_gcc8'
"C:/Program Files/CMake/bin/cmake.exe" -E cmake_depends "Unix Makefiles" G:/cmake-netburner-hello-world G:/cmake-netburner-hello-world G:/cmake-netburner-hello-world/build_m68k_gcc8 G:/cmake-netburner-hello-world/build_m68k_gcc8 G:/cmake-netburner-hello-world/build_m68k_gcc8/CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/DependInfo.cmake --color=
make.exe[3]: Leaving directory 'G:/cmake-netburner-hello-world/build_m68k_gcc8'
C:/nburn/gcc-m68k/bin/make.exe -f CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/build.make CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/build
make.exe[3]: Entering directory 'G:/cmake-netburner-hello-world/build_m68k_gcc8'
[ 33%] Linking CXX executable Release/cmake-netburner-hello-world_0.0.5.elf
C:/nburn/gcc-m68k/bin/m68k-elf-g++.exe --sysroot=C:/nburn/gcc-m68k/bin/../m68k-unknown-elf/sysroot
-mcpu=54415 -gdwarf-2 -falign-functions=4 -ffunction-sections -fmessage-length=0
-fdata-sections -fno-rtti -DMOD5441X -DMCF5441X -DNBMINGW
-IC:/nburn/gcc-m68k/m68k-unknown-elf/include -I"C:\nburn/include"
-I"C:\nburn/MOD5441X/include"
-I"C:\nburn/gcc-m68k/m68k-unknown-elf/include/c++/8.1.0" -O3 -DNDEBUG
-mcpu=54415 -Wl,-t --verbose -Wl,-n -Wl,-TC:/nburn/MOD5441X/lib/MOD5441X.ld
-Wl,-RC:/nburn/MOD5441X/lib/sys.ld
-Wl,-Map=G:/cmake-netburner-hello-world/build_m68k_gcc8/Release/cmake-netburner-hello-world_0.0.5.map
./CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/main.cpp.obj
./CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/htmldata.cpp.obj
-o Release/cmake-netburner-hello-world_0.0.5.elf -Wl,--gc-sections
-Wl,--start-group, C:/nburn/lib/MOD5441X.a C:/nburn/lib/NetBurner.a
C:/nburn/lib/FatFile.a C:/nburn/lib/StdFFile.a -lstdc++ -Wl,--end-group
Using built-in specs.
COLLECT_GCC=C:\nburn\gcc-m68k\bin\m68k-elf-g++.exe
COLLECT_LTO_WRAPPER=c:/nburn/gcc-m68k/bin/../libexec/gcc/m68k-unknown-elf/8.1.0/lto-wrapper.exe
Target: m68k-unknown-elf
Configured with: /home/ubuntu/build/.build/HOST-mingw32/m68k-unknown-elf/src/gcc/configure
--build=x86_64-build_pc-linux-gnu --host=i686-host_pc-mingw32
--target=m68k-unknown-elf
--prefix=/home/ubuntu/x-tools/HOST-mingw32/m68k-unknown-elf
--with-local-prefix=/home/ubuntu/x-tools/HOST-mingw32/m68k-unknown-elf/m68k-unknown-elf
--with-headers=/home/ubuntu/x-tools/HOST-mingw32/m68k-unknown-elf/m68k-unknown-elf/include
--with-newlib --enable-threads=no --disable-shared
--with-pkgversion='crosstool-NG crosstool-ng-1.23.0-328-g590eddf'
--enable-__cxa_atexit --disable-libgomp --disable-libmudflap --disable-libmpx
--disable-libssp --disable-libquadmath --disable-libquadmath-support
--with-gmp=/home/ubuntu/build/.build/HOST-mingw32/m68k-unknown-elf/buildtools/complibs-host
--with-mpfr=/home/ubuntu/build/.build/HOST-mingw32/m68k-unknown-elf/buildtools/complibs-host
--with-mpc=/home/ubuntu/build/.build/HOST-mingw32/m68k-unknown-elf/buildtools/complibs-host
--with-isl=/home/ubuntu/build/.build/HOST-mingw32/m68k-unknown-elf/buildtools/complibs-host
--disable-lto --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++ -lm'
--enable-target-optspace --disable-nls --enable-multiarch
--with-multilib-list=rmprofile --enable-languages=c,c++
Thread model: single
gcc version 8.1.0 (crosstool-NG crosstool-ng-1.23.0-328-g590eddf)
COMPILER_PATH=c:/nburn/gcc-m68k/bin/../libexec/gcc/m68k-unknown-elf/8.1.0/;c:/nburn/gcc-m68k/bin/../libexec/gcc/;c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/bin/
LIBRARY_PATH=c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/m54455/;c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455/;c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/;c:/nburn/gcc-m68k/bin/../lib/gcc/;c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/
COLLECT_GCC_OPTIONS='-mcpu=54415' '-gdwarf-2' '-falign-functions=4'
'-ffunction-sections' '-fmessage-length=0' '-fdata-sections' '-fno-rtti' '-D'
'MOD5441X' '-D' 'MCF5441X' '-D' 'NBMINGW' '-I'
'C:/nburn/gcc-m68k/m68k-unknown-elf/include' '-I' 'C:\nburn/include' '-I'
'C:\nburn/MOD5441X/include' '-I'
'C:\nburn/gcc-m68k/m68k-unknown-elf/include/c++/8.1.0' '-O3' '-D' 'NDEBUG'
'-mcpu=54415' '-v' '-o' 'Release/cmake-netburner-hello-world_0.0.5.elf'
c:/nburn/gcc-m68k/bin/../libexec/gcc/m68k-unknown-elf/8.1.0/collect2.exe
--sysroot=C:/nburn/gcc-m68k/bin/../m68k-unknown-elf/sysroot
-o Release/cmake-netburner-hello-world_0.0.5.elf
c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/m54455/crtbegin.o
-Lc:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/m54455
-Lc:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455
-Lc:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0
-Lc:/nburn/gcc-m68k/bin/../lib/gcc
-Lc:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib
-t -n -TC:/nburn/MOD5441X/lib/MOD5441X.ld -RC:/nburn/MOD5441X/lib/sys.ld
-Map=G:/cmake-netburner-hello-world/build_m68k_gcc8/Release/cmake-netburner-hello-world_0.0.5.map
./CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/main.cpp.obj
./CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/htmldata.cpp.obj
--gc-sections --start-group "" C:/nburn/lib/MOD5441X.a C:/nburn/lib/NetBurner.a
C:/nburn/lib/FatFile.a C:/nburn/lib/StdFFile.a -lstdc++ --end-group -lstdc++
-lm -lgcc -lc -lgcc
c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/m54455/crtend.o
c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/bin/ld.exe: mode m68kelf
nb-crt0.o (c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/m54455\nb-crt0.o)
c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/m54455/crtbegin.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libc.a)lib_a-atexit.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libc.a)lib_a-__atexit.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libc.a)lib_a-__call_atexit.o
./CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/main.cpp.obj
./CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/htmldata.cpp.obj
(C:/nburn/lib/NetBurner.a)ucosmcfa.o
(C:/nburn/lib/NetBurner.a)main.o
(C:/nburn/lib/NetBurner.a)ucos.o
(C:/nburn/lib/NetBurner.a)cppmain.o
(C:/nburn/lib/NetBurner.a)ucosmain.o
(C:/nburn/lib/NetBurner.a)fileio.o
(C:/nburn/lib/NetBurner.a)ip.o
(C:/nburn/lib/NetBurner.a)buffers.o
(C:/nburn/lib/NetBurner.a)arp.o
(C:/nburn/lib/NetBurner.a)udp.o
(C:/nburn/lib/NetBurner.a)tcp.o
(C:/nburn/lib/NetBurner.a)http.o
(C:/nburn/lib/NetBurner.a)httpinternal.o
(C:/nburn/lib/NetBurner.a)httpstricmp.o
(C:/nburn/lib/NetBurner.a)htmldecomp.o
(C:/nburn/lib/NetBurner.a)iosys.o
(C:/nburn/lib/NetBurner.a)new_ops.o
(C:/nburn/lib/NetBurner.a)autoip.o
(C:/nburn/lib/NetBurner.a)dhcpc.o
(C:/nburn/lib/NetBurner.a)netinterface.o
(C:/nburn/lib/NetBurner.a)taskmon.o
(C:/nburn/lib/NetBurner.a)smarttrap.o
(C:/nburn/lib/NetBurner.a)autoupdate.o
(C:/nburn/lib/NetBurner.a)device.o
(C:/nburn/lib/NetBurner.a)base64.o
(C:/nburn/lib/NetBurner.a)nbiprintf.o
(C:/nburn/lib/NetBurner.a)nbprintf.o
(C:/nburn/lib/NetBurner.a)nbsiprintf.o
(C:/nburn/lib/NetBurner.a)nbsprintf.o
(C:/nburn/lib/NetBurner.a)weakumain.o
(C:/nburn/lib/NetBurner.a)cusermain.o
(C:/nburn/lib/NetBurner.a)websocket_handler.o
(C:/nburn/lib/NetBurner.a)ipv6_addr.o
(C:/nburn/lib/NetBurner.a)ipv6_tcp.o
(C:/nburn/lib/NetBurner.a)ipv6_ip.o
(C:/nburn/lib/NetBurner.a)ipv6_udp.o
(C:/nburn/lib/NetBurner.a)ipv6_printhelp.o
(C:/nburn/lib/NetBurner.a)ipv6_extensions.o
(C:/nburn/lib/NetBurner.a)ipv6_multicast.o
(C:/nburn/lib/NetBurner.a)ipv6_show.o
(C:/nburn/lib/NetBurner.a)ipv6_dhcp.o
(C:/nburn/lib/NetBurner.a)ucosmcfc.o
(C:/nburn/lib/NetBurner.a)system.o
(C:/nburn/lib/NetBurner.a)utils.o
(C:/nburn/lib/NetBurner.a)extraio.o
(C:/nburn/lib/NetBurner.a)multicast.o
(C:/nburn/lib/NetBurner.a)random.o
(C:/nburn/lib/NetBurner.a)netrx.o
(C:/nburn/lib/NetBurner.a)nbfloatprint.o
(C:/nburn/lib/NetBurner.a)md5c.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)si_class_type_info.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)del_ops.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)eh_exception.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)eh_catch.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)eh_terminate.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)eh_throw.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)eh_personality.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)tinfo.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)del_op.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)class_type_info.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)eh_alloc.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)ios_init.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)globals_io.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)istream-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)ios-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)cxx11-ios_failure.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)string-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)ext11-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)fstream-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)cxx11-stdexcept.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)functexcept.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)ostream-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)ios.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)wlocale-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)locale-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)streambuf-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)snprintf_lite.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)system_error.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)ctype.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)eh_aux_runtime.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)eh_unex_handler.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)eh_term_handler.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)new_opv.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)vmi_class_type_info.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)eh_globals.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)bad_typeid.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)eh_call.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)del_opv.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)guard.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)pure.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)new_handler.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)dyncast.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)bad_cast.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)new_opvnt.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)bad_array_new.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)vterminate.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)bad_alloc.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)stdexcept.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)time_members.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)c++locale.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)messages_members_cow.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)monetary_members_cow.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)codecvt.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)locale_init.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)streambuf.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)numeric_members_cow.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)collate_members_cow.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)basic_file.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)ios_locale.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)locale_facets.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)codecvt_members.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)ios_failure.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)locale.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)istream.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)cxx11-locale-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)lt1-codecvt.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)cow-string-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)iostream-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)cow-stdexcept.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)ctype_members.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)random.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)cow-shim_facets.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)cxx11-shim_facets.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)cow-locale_init.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)cow-wstring-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)ctype_configure_char.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)cxx11-wlocale-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)compatibility.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)guard_error.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)cp-demangle.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)new_opnt.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)eh_type.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)misc-inst.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)monetary_members.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)collate_members.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)messages_members.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)numeric_members.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)sso_string.o
(c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455\libstdc++.a)wstring-inst.o
c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/bin/ld.exe: cannot find : Invalid argument
collect2.exe: error: ld returned 1 exit status
make.exe[3]: *** [CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/build.make:117: Release/cmake-netburner-hello-world_0.0.5.elf] Error 1
make.exe[3]: Leaving directory 'G:/cmake-netburner-hello-world/build_m68k_gcc8'
make.exe[2]: *** [CMakeFiles/Makefile2:126: CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/all] Error 2
make.exe[2]: Leaving directory 'G:/cmake-netburner-hello-world/build_m68k_gcc8'
make.exe[1]: *** [CMakeFiles/Makefile2:106: CMakeFiles/app.dir/rule] Error 2
make.exe[1]: Leaving directory 'G:/cmake-netburner-hello-world/build_m68k_gcc8'
make.exe: *** [Makefile:137: app] Error 2
Now we are interested in where collect2
is called and which arguments are passing in.
c:/nburn/gcc-m68k/bin/../libexec/gcc/m68k-unknown-elf/8.1.0/collect2.exe
--sysroot=C:/nburn/gcc-m68k/bin/../m68k-unknown-elf/sysroot
-o Release/cmake-netburner-hello-world_0.0.5.elf
c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/m54455/crtbegin.o
-Lc:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/m54455
-Lc:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib/m54455
-Lc:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0
-Lc:/nburn/gcc-m68k/bin/../lib/gcc
-Lc:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/../../../../m68k-unknown-elf/lib
-t -n -TC:/nburn/MOD5441X/lib/MOD5441X.ld -RC:/nburn/MOD5441X/lib/sys.ld
-Map=G:/cmake-netburner-hello-world/build_m68k_gcc8/Release/cmake-netburner-hello-world_0.0.5.map
./CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/main.cpp.obj
./CMakeFiles/cmake-netburner-hello-world_0.0.5.dir/htmldata.cpp.obj
--gc-sections --start-group "" C:/nburn/lib/MOD5441X.a C:/nburn/lib/NetBurner.a
C:/nburn/lib/FatFile.a C:/nburn/lib/StdFFile.a -lstdc++ --end-group
-lstdc++ -lm -lgcc -lc -lgcc
c:/nburn/gcc-m68k/bin/../lib/gcc/m68k-unknown-elf/8.1.0/m54455/crtend.o
Look. Wtf! Where did these quotation marks come from?
... --start-group "" ...
From extra comma after --start-group
!
... -Wl,--start-group,${NBLIBS} ...
We just found the cause of the error! It was completely not obvious. Fix is simple:
... -Wl,--start-group ${NBLIBS} ...
Now it is successfully linking with both mentioned versions of GCC.
Conclusions
If you have such error then most probably it is due to stupid typo(s) in linker arguments.
Try the following:
- Enable tracing and verbose output when executing a linker
- Thoroughly study the received output
Maybe it will help to someone.