You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2020/08/30 18:10:39 UTC

[GitHub] [incubator-nuttx] patacongo commented on pull request #1450: tools/incdir: Assume GCC compatibility for unknown compilers

patacongo commented on pull request #1450:
URL: https://github.com/apache/incubator-nuttx/pull/1450#issuecomment-683452008


   PR #1450 broke the Cygwin build and it is still broken in the current master.  Consider this:
   
       $ tools/configure.sh -c nucleo-l476rg:nsh
       $ make -j V=1
   
   Results in:
   
       arm-none-eabi-ld --entry=__start -nostartfiles -nodefaultlibs -g -T "D:\Spuda\Documents\projects\nuttx\master\nuttx_fork\boards\arm\stm32l4\nucleo-l476rg\scripts\l476rg.ld"  -L"D:\Spuda\Documents\projects\nuttx\master\nuttx_fork\staging" -L"D:\Spuda\Documents\projects\nuttx\master\nuttx_fork\arch\arm\src\board" -L "c:/ ./ (x86)/ ./ ./ embedded/ 2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m/nofp/" -L "c:/ ./ (x86)/ ./ ./ embedded/ 2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/" \
               -o "D:\Spuda\Documents\projects\nuttx\master\nuttx_fork\nuttx.exe"   \
               --start-group -lsched -ldrivers -lboards -lc -lmm -larch -lxx -lapps -lfs -lbinfmt -lboard -lgcc -lm --end-group
       C:\Program Files (x86)\GNU Tools ARM Embedded\9 2019-q4-major\bin\arm-none-eabi-ld.exe: cannot find -lgcc
       C:\Program Files (x86)\GNU Tools ARM Embedded\9 2019-q4-major\bin\arm-none-eabi-ld.exe: cannot find -lm
       make[1]: *** [Makefile:172: nuttx.exe] Error 1
   
   Trying again with a different configuration, no -j and no V=1 gives me the same error:
   
       $ make distclean
       $ tools/configure.sh -c stm32f4discovery:nsh
       ...
       LD: nuttx
       C:\Program Files (x86)\GNU Tools ARM Embedded\9 2019-q4-major\bin\arm-none-eabi-ld.exe: cannot find -lgcc
       C:\Program Files (x86)\GNU Tools ARM Embedded\9 2019-q4-major\bin\arm-none-eabi-ld.exe: cannot find -lm
       make[1]: *** [Makefile:172: nuttx.exe] Error 1
   
   The problem is due to this commit:
   
       commit 4910d43ab0fc360dbddb1f8a31db2a3ee383b46d
       Author: Xiang Xiao <xi...@xiaomi.com>
       Date:   Wed Jul 15 20:51:26 2020 +0800
       
           build: Move the toolchain library setting to the common place
       
           so all boards support C++ automatically
   
   Commit 4910d43ab0fc360dbddb1f8a31db2a3ee383b46d adds logic like the following to all Toolchain.defs files:
   
       +
       +# Add the builtin library
       +
       +EXTRA_LIBS += -lgcc
       +EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcc.a}}"
       +
       +ifneq ($(CONFIG_LIBM),y)
       +  EXTRA_LIBS += -lm
       +  EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a}}"
       +endif
       +
       +ifeq ($(CONFIG_CXX_LIBSUPCXX),y)
       +  EXTRA_LIBS += -lsupc++
       +  EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a}}"
       +endif
   
   But look what happens under Cygwin:
   
       $ arm-none-eabi-gcc --print-file-name=libgcc.a
       c:/program files (x86)/gnu tools arm embedded/9 2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/libgcc.a
   
       $ dir `arm-none-eabi-gcc --print-file-name=libgcc.a`
       dir: cannot access 'c:/program': No such file or directory
       dir: cannot access 'files': No such file or directory
       dir: cannot access '(x86)/gnu': No such file or directory
       dir: cannot access 'arm': No such file or directory
       dir: cannot access 'embedded/9': No such file or directory
       dir: cannot access '2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/libgcc.a'$'\r': No such file or directory
       ...
   
   Broken!


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org