Skip to content

makefiles/cflags.inc.mk: add -Wmissing-include-dirs flag #9243

Merged
cladmi merged 6 commits intoRIOT-OS:masterfrom
cladmi:pr/warning/missing_include_dirs
Jun 18, 2018
Merged

makefiles/cflags.inc.mk: add -Wmissing-include-dirs flag #9243
cladmi merged 6 commits intoRIOT-OS:masterfrom
cladmi:pr/warning/missing_include_dirs

Conversation

@cladmi
Copy link
Copy Markdown
Contributor

@cladmi cladmi commented May 30, 2018

Contribution description

Warn if a user-supplied include directory does not exist.

Issues/PRs references

None

@cladmi cladmi added Impact: minor The PR is small in size and might only require a quick look of a knowledgeable reviewer CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Area: build system Area: Build system labels May 30, 2018
@tcschmidt tcschmidt requested a review from smlng May 31, 2018 17:22
@cladmi cladmi added the State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet label Jun 7, 2018
@cladmi
Copy link
Copy Markdown
Contributor Author

cladmi commented Jun 7, 2018

There are many missing directories even BOARD/board/include sometime so would need to be adapted in Makefile.include.

@jnohlgard
Copy link
Copy Markdown
Member

@cladmi Do you think using

INCLUDES += $(wildcard $(RIOTBOARD)/board/include)

would be a viable workaround for missing board dirs?

@cladmi
Copy link
Copy Markdown
Contributor Author

cladmi commented Jun 8, 2018

@gebart I was thinking about exactly the same thing.

@cladmi cladmi force-pushed the pr/warning/missing_include_dirs branch 3 times, most recently from 15487f0 to 36887b8 Compare June 11, 2018 13:39
@cladmi
Copy link
Copy Markdown
Contributor Author

cladmi commented Jun 11, 2018

@gebart I needed to adapt it a bit more as specifying the -I is also required.
I could also do it with an if, inline or just a conditional, if your prefer.

I fixed the broken packages and murdock should now be happy.
I also rebased to enable the warning in the last commit in order to have a working history.

Copy link
Copy Markdown
Member

@jnohlgard jnohlgard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks simple enough. Should be fine if Murdock agrees

Makefile.include Outdated
INCLUDES += -I$(RIOTBASE)/core/include -I$(RIOTBASE)/drivers/include -I$(RIOTBASE)/sys/include
INCLUDES += -I$(RIOTCPU)/$(CPU)/include
INCLUDES += -I$(RIOTBOARD)/$(BOARD)/include
INCLUDES += $(patsubst %,-I%,$(wildcard $(RIOTBOARD)/$(BOARD)/include))
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use $(addprefix -I, instead of $(patsubst %,-I%

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Way better indeed.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I updated and already squashed the fix as it easy to verify.

cladmi added 6 commits June 12, 2018 14:08
Some boards do not have a boards/BOARD/include directory and rely on a
board/common one.
In this Makefile, 'CURDIR' is RIOTBASE/pkg/tiny-asn1 directory which does not
exist and not PKGDIRBASE/tiny-asn1.

The correct include directory is set by pkg/tiny-asn1/Makefile.include.
The include/crypto path should include 'sys' to be vavil

But all source files are already using '#include "crypto/HEADER.h"' so it does
not need fixing.
Warn if a user-supplied include directory does not exist.
@cladmi cladmi force-pushed the pr/warning/missing_include_dirs branch from 36887b8 to 08ff1b7 Compare June 12, 2018 12:09
Copy link
Copy Markdown
Member

@jnohlgard jnohlgard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still WIP? it looks like Murdock is happy now.
Changes look good 👍

@cladmi cladmi removed the State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet label Jun 15, 2018
@cladmi
Copy link
Copy Markdown
Contributor Author

cladmi commented Jun 15, 2018

Forgot to remove the WIP, I think I got all of them.

@cladmi cladmi added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Jun 15, 2018
@cladmi cladmi merged commit acef97a into RIOT-OS:master Jun 18, 2018
@cladmi cladmi deleted the pr/warning/missing_include_dirs branch June 18, 2018 11:16
@nmeum
Copy link
Copy Markdown
Member

nmeum commented Jun 18, 2018

This broke git HEAD for me on a debian sid system. When compiling any example for a platform which uses newlib nano e.g. BOARD=bluepill I get the following error:

$ make BOARD=bluepill -C examples/default/ clean all
cc1: error: /etc/alternatives/gcc-arm-none-eabi-include/newlib-nano: No such file or directory [-Werror=missing-include-dirs]

#9216 seems to fix this.

@cladmi
Copy link
Copy Markdown
Contributor Author

cladmi commented Jun 19, 2018

Could you give me the output of

command -v arm-none-eabi-gcc
ls /etc/alternatives/gcc-arm-none-eabi-include/

and

make BOARD=bluepill -C examples/default info-build

Also, if you build with WERROR=0 does it work properly ?

I would like to see if the warning is showing a problem where newlib-nano would not be used even if requested or if I should just temporarily revert the warning.

@nmeum
Copy link
Copy Markdown
Member

nmeum commented Jun 19, 2018

$ command -v arm-none-eabi-gcc
/usr/bin/arm-none-eabi-gcc
$ readlink /etc/alternatives/gcc-arm-none-eabi-include
/usr/include/newlib
$ ls -1 /etc/alternatives/gcc-arm-none-eabi-include/
_ansi.h
_newlib_version.h
_syslist.h
alloca.h
ar.h
argz.h
assert.h
bits
c++
complex.h
cpio.h
ctype.h
dirent.h
envlock.h
envz.h
errno.h
fastmath.h
fcntl.h
fnmatch.h
getopt.h
glob.h
grp.h
iconv.h
ieeefp.h
inttypes.h
langinfo.h
libgen.h
limits.h
locale.h
machine
malloc.h
math.h
nano
newlib.h
paths.h
pthread.h
pwd.h
reent.h
regdef.h
regex.h
rpc
sched.h
search.h
setjmp.h
signal.h
spawn.h
stdatomic.h
stdint.h
stdio.h
stdio_ext.h
stdlib.h
string.h
strings.h
sys
tar.h
termios.h
tgmath.h
threads.h
time.h
unctrl.h
unistd.h
utime.h
utmp.h
wchar.h
wctype.h
wordexp.h
$ make BOARD=bluepill -C examples/default info-build
make: Entering directory '/home/nmeum/RIOT/examples/default'
APPLICATION: default

supported boards:
make[1]: Nothing to be done for 'info-boards-supported'.

BOARD:   bluepill
CPU:     stm32f1
MCU:     stm32f1

RIOTBASE:  /home/nmeum/RIOT
RIOTBOARD: /home/nmeum/RIOT/boards
RIOTCPU:   /home/nmeum/RIOT/cpu
RIOTPKG:   /home/nmeum/RIOT/pkg

DEFAULT_MODULE: auto_init board core core_msg cpu sys
DISABLE_MODULE: 
USEMODULE:      auto_init_saul boards_common_stm32f103c8 cortexm_common cortexm_common_periph fmt isrpipe newlib newlib_nano newlib_syscalls_default periph periph_common periph_gpio periph_pm periph_uart phydat pm_layered ps saul saul_default saul_gpio saul_reg shell shell_commands stm32_common stm32_common_periph tsrb uart_stdio

ELFFILE: /home/nmeum/RIOT/examples/default/bin/bluepill/default.elf
HEXFILE: /home/nmeum/RIOT/examples/default/bin/bluepill/default.hex

FEATURES_REQUIRED (excl. optional features):
         periph_gpio periph_uart
FEATURES_OPTIONAL (strictly "nice to have"):
         periph_pm periph_rtc
FEATURES_PROVIDED (by the board or USEMODULE'd drivers):
         cpp periph_adc periph_cpuid periph_flash_common periph_flashpage periph_flashpage_raw periph_gpio periph_i2c periph_pm periph_pwm periph_spi periph_timer periph_uart
FEATURES_MISSING (incl. optional features):
         -none-
FEATURES_MISSING (only non-optional features):
         -none-

FEATURES_CONFLICT:     
FEATURES_CONFLICT_MSG: 

INCLUDES: 
	-isystem  
	/etc/alternatives/gcc-arm-none-eabi-include/newlib-nano  
	-I/home/nmeum/RIOT/core/include  
	-I/home/nmeum/RIOT/drivers/include  
	-I/home/nmeum/RIOT/sys/include  
	-I/home/nmeum/RIOT/cpu/stm32f1/include  
	-I/home/nmeum/RIOT/boards/bluepill/include  
	-I/home/nmeum/RIOT/boards/common/stm32f103c8/include  
	-I/home/nmeum/RIOT/cpu/stm32_common/include  
	-I/home/nmeum/RIOT/cpu/cortexm_common/include  
	-I/home/nmeum/RIOT/cpu/cortexm_common/include/vendor  
	-I/home/nmeum/RIOT/sys/libc/include

CC:      arm-none-eabi-gcc
CFLAGS: 
	-Wall  
	-Werror  
	-Wextra  
	-Wno-implicit-fallthrough  
	-mno-thumb-interwork  
	-mcpu=cortex-m3  
	-mlittle-endian  
	-mthumb  
	-mfloat-abi=soft  
	-ffunction-sections  
	-fdata-sections  
	-fno-builtin  
	-fshort-enums  
	-ggdb  
	-g3  
	-Os  
	-std=c99  
	-fno-delete-null-pointer-checks  
	-fdiagnostics-color  
	-Wstrict-prototypes  
	-Wold-style-definition  
	-Werror=strict-prototypes  
	-Werror=old-style-definition  
	-fno-common  
	-Wall  
	-Wmissing-include-dirs  
	-include  
	/home/nmeum/RIOT/examples/default/bin/bluepill/riotbuild/riotbuild.h  
	-DIEEE802154_DEFAULT_CHANNEL=26

CXX:     arm-none-eabi-g++
CXXUWFLAGS: 
	-Wstrict-prototypes  
	-Wold-style-definition  
	-std=%
CXXEXFLAGS:

LINK:    arm-none-eabi-gcc
LINKFLAGS: 
	-L/home/nmeum/RIOT/cpu/stm32_common/ldscripts  
	-L/home/nmeum/RIOT/cpu/stm32f1/ldscripts  
	-L/home/nmeum/RIOT/cpu/cortexm_common/ldscripts  
	-Tstm32_common.ld  
	-Wl,--fatal-warnings  
	-mcpu=cortex-m3  
	-mlittle-endian  
	-mthumb  
	-mfloat-abi=soft  
	-ggdb  
	-g3  
	-Os  
	-static  
	-lgcc  
	-nostartfiles  
	-Wl,--gc-sections  
	-Wl,--defsym=_rom_start_addr=0x08000000  
	-Wl,--defsym=_ram_start_addr=0x20000000  
	-Wl,--defsym=_rom_length=64K  
	-Wl,--defsym=_ram_length=20K  
	-specs=nano.specs  
	-lc

OBJCOPY: /usr/bin/arm-none-eabi-objcopy
OFLAGS:  

FLASHER: /home/nmeum/RIOT/dist/tools/openocd/openocd.sh
FFLAGS:  flash

TERMPROG:  /home/nmeum/RIOT/dist/tools/pyterm/pyterm
TERMFLAGS: -p "/dev/ttyUSB0" -b "115200"
PORT:      /dev/ttyUSB0

DEBUGGER:       /home/nmeum/RIOT/dist/tools/openocd/openocd.sh
DEBUGGER_FLAGS: debug

DOWNLOAD_TO_FILE:   /usr/bin/wget -nv -c -O
DOWNLOAD_TO_STDOUT: /usr/bin/curl -s
UNZIP_HERE:         /usr/bin/unzip -q

DEBUGSERVER:       /home/nmeum/RIOT/dist/tools/openocd/openocd.sh
DEBUGSERVER_FLAGS: debug-server

RESET:       /home/nmeum/RIOT/dist/tools/openocd/openocd.sh
RESET_FLAGS: reset

MAKEFILE_LIST: 
	/home/nmeum/RIOT/examples/default/Makefile  
	/home/nmeum/RIOT/Makefile.include  
	/home/nmeum/RIOT/makefiles/docker.inc.mk  
	/home/nmeum/RIOT/makefiles/color.inc.mk  
	/home/nmeum/RIOT/makefiles/info-nproc.inc.mk  
	/home/nmeum/RIOT/makefiles/info.inc.mk  
	/home/nmeum/RIOT/makefiles/scan-build.inc.mk  
	/home/nmeum/RIOT/boards/bluepill/Makefile.features  
	/home/nmeum/RIOT/boards/common/stm32f103c8/Makefile.features  
	/home/nmeum/RIOT/cpu/stm32f1/Makefile.features  
	/home/nmeum/RIOT/cpu/stm32_common/Makefile.features  
	/home/nmeum/RIOT/cpu/cortexm_common/Makefile.features  
	/home/nmeum/RIOT/makefiles/pseudomodules.inc.mk  
	/home/nmeum/RIOT/makefiles/defaultmodules.inc.mk  
	/home/nmeum/RIOT/boards/bluepill/Makefile.include  
	/home/nmeum/RIOT/boards/common/stm32f103c8/Makefile.include  
	/home/nmeum/RIOT/makefiles/tools/serial.inc.mk  
	/home/nmeum/RIOT/makefiles/tools/openocd.inc.mk  
	/home/nmeum/RIOT/makefiles/tools/openocd-adapters/stlink.inc.mk  
	/home/nmeum/RIOT/cpu/stm32f1/Makefile.include  
	/home/nmeum/RIOT/cpu/stm32_common/Makefile.include  
	/home/nmeum/RIOT/cpu/stm32_common/stm32_mem_lengths.mk  
	/home/nmeum/RIOT/makefiles/arch/cortexm.inc.mk  
	/home/nmeum/RIOT/cpu/cortexm_common/Makefile.include  
	/home/nmeum/RIOT/makefiles/toolchain/gnu.inc.mk  
	/home/nmeum/RIOT/makefiles/tools/gdb.inc.mk  
	/home/nmeum/RIOT/Makefile.dep  
	/home/nmeum/RIOT/boards/bluepill/Makefile.dep  
	/home/nmeum/RIOT/boards/common/stm32f103c8/Makefile.dep  
	/home/nmeum/RIOT/sys/Makefile.dep  
	/home/nmeum/RIOT/drivers/Makefile.dep  
	/home/nmeum/RIOT/Makefile.dep  
	/home/nmeum/RIOT/boards/bluepill/Makefile.dep  
	/home/nmeum/RIOT/boards/common/stm32f103c8/Makefile.dep  
	/home/nmeum/RIOT/sys/Makefile.dep  
	/home/nmeum/RIOT/drivers/Makefile.dep  
	/home/nmeum/RIOT/makefiles/cflags.inc.mk  
	/home/nmeum/RIOT/sys/Makefile.include  
	/home/nmeum/RIOT/makefiles/libc/newlib.mk  
	/home/nmeum/RIOT/sys/newlib_syscalls_default/Makefile.include  
	/home/nmeum/RIOT/drivers/Makefile.include  
	/home/nmeum/RIOT/makefiles/vars.inc.mk  
	/home/nmeum/RIOT/makefiles/tools/targets.inc.mk  
	/home/nmeum/RIOT/dist/tools/desvirt/Makefile.desvirt  
	/home/nmeum/RIOT/makefiles/bindist.inc.mk  
	/home/nmeum/RIOT/makefiles/modules.inc.mk  
	/home/nmeum/RIOT/makefiles/mcuboot.mk  
	/home/nmeum/RIOT/makefiles/murdock.inc.mk
make: Leaving directory '/home/nmeum/RIOT/examples/default'

Also, if you build with WERROR=0 does it work properly ?

Yes.

BTW: According to @pyropeter the same issue seems to exist on Arch Linux.

@cgundogan
Copy link
Copy Markdown
Member

just FYI: on my arch system current master builds fine:

$ make BOARD=bluepill -C examples/default/ clean all
make: Entering directory 'RIOT/examples/default'                                                                                                                                                                                                                                               
Building application "default" for "bluepill" with MCU "stm32f1".                                                                                                                                                                                                                                                             
                                                                                                                                                                                                                                                                                                                              
"make" -C RIOT/boards/bluepill                                                                                                                                                                                                                                                                 
"make" -C RIOT/boards/common/stm32f103c8                                                                                                                                                                                                                                                       
"make" -C RIOT/core                                                                                                                                                                                                                                                                            
"make" -C RIOT/cpu/stm32f1                                                                                                                                                                                                                                                                     
"make" -C RIOT/cpu/cortexm_common                                                                                                                                                                                                                                                              
"make" -C RIOT/cpu/cortexm_common/periph                                                                                                                                                                                                                                                       
"make" -C RIOT/cpu/stm32_common                                                                                                                                                                                                                                                                
"make" -C RIOT/cpu/stm32_common/periph                                                                                                                                                                                                                                                         
"make" -C RIOT/cpu/stm32f1/periph                                                                                                                                                                                                                                                              
"make" -C RIOT/drivers                                                                                                                                                                                                                                                                         
"make" -C RIOT/drivers/periph_common                                                                                                                                                                                                                                                           
"make" -C RIOT/drivers/saul                                                                                                                                                                                                                                                                    
"make" -C RIOT/sys                                                                                                                                                                                                                                                                             
"make" -C RIOT/sys/auto_init                                                                                                                                                                                                                                                                   
"make" -C RIOT/sys/auto_init/saul                                                                                                                                                                                                                                                              
"make" -C RIOT/sys/fmt                                                                                                                                                                                                                                                                         
"make" -C RIOT/sys/isrpipe                                                                                                                                                                                                                                                                     
"make" -C RIOT/sys/newlib_syscalls_default                                                                                                                                                                                                                                                     
"make" -C RIOT/sys/phydat                                                                                                                                                                                                                                                                      
"make" -C RIOT/sys/pm_layered                                                                                                                                                                                                                                                                  
"make" -C RIOT/sys/ps                                                                                                                                                                                                                                                                          
"make" -C RIOT/sys/saul_reg                                                                                                                                                                                                                                                                    
"make" -C RIOT/sys/shell                                                                                                                                                                                                                                                                       
"make" -C RIOT/sys/shell/commands                                                                                                                                                                                                                                                              
"make" -C RIOT/sys/tsrb                                                                                                                                                                                                                                                                        
"make" -C RIOT/sys/uart_stdio                                                                                                                                                                                                                                                                  
   text    data     bss     dec     hex filename                                                                                                                                                                                                                                                                              
  14128     504    2768   17400    43f8 RIOT/examples/default/bin/bluepill/default.elf
make: Leaving directory 'RIOT/examples/default'   

@cladmi
Copy link
Copy Markdown
Contributor Author

cladmi commented Jun 19, 2018

Thank you.

As in /etc/alternatives/gcc-arm-none-eabi-include/ you only have a nano and no newlib-nano directory, I imagine that without the -Wmissing-include-dirs warning or with WERROR=0 it is actually silently compiled without using newlib-nano even if requested. (Is there a way to verify this ?)

With this in mind, I would not say that this PR breaks your compilation but it actually shows it is not working as intended and that your GCC version is currently not supported by the RIOT build system and so the fix is to fix newlib-nano handling, with #9216, and not silently ignore it not being used.

With this consideration, I would prefer not revert this PR and fix newlib-nano.

@jnohlgard
Copy link
Copy Markdown
Member

@cladmi I agree, let's move on #9216

@aabadie
Copy link
Copy Markdown
Contributor

aabadie commented Jun 19, 2018

I have the same build issue here. Running ubuntu 18.04 with gcc 7.2 from ARM Embedded (latest release), so saying

your GCC version is currently not supported by the RIOT build system

seems weird to me. I installed my toolchain manually by downloading it and updating my PATH appropriately.

so the fix is to fix newlib-nano handling, with #9216, and not silently ignore it not being used.

Ok for the first part but not for the second part. For some users, the build is broken with not obvious reasons.

@cladmi
Copy link
Copy Markdown
Contributor Author

cladmi commented Jun 19, 2018

If the directory chosen to enable newlib-nano does not exist, newlib nano is not used even if requested in the build system.

The problem is not that there is now a warning/error for this, but that the wrong directory is selected.

@aabadie
Copy link
Copy Markdown
Contributor

aabadie commented Jun 19, 2018

The problem is not that there is now a warning/error for this, but that the wrong directory is selected.

I understand this. But as an end-user, the result is just that the build is failing which is not acceptable

@cladmi
Copy link
Copy Markdown
Contributor Author

cladmi commented Jun 19, 2018

I understand this. But as an end-user, the result is just that the build is failing which is not acceptable

I agree. I am trying as much as I can to fix this, or narrow down the issue and give a proper error message.
However, if you ask the build system to include a module A and it does not, I would prefer that it warns or fails the compilation instead of silently not including it.

Can you try using this patch and tell if you get a warning ?
(the echos should be done after the for loop, I did the mistake at the beginning).

diff --git a/dist/tools/genconfigheader/genconfigheader.sh b/dist/tools/genconfigheader/genconfigheader.sh
index bf17aef..72d2e99 100755
--- a/dist/tools/genconfigheader/genconfigheader.sh
+++ b/dist/tools/genconfigheader/genconfigheader.sh
@@ -71,6 +71,14 @@ for arg in "$@"; do
   esac
 done
 
+# Warn if newlib_nano is requested but not actually used
+echo '#include <newlib.h>'        >> "${TMPFILE}"
+echo '#ifdef MODULE_NEWLIB_NANO'  >> "${TMPFILE}"
+echo '#ifndef _NANO_FORMATTED_IO' >> "${TMPFILE}"
+echo '#error newlib-nano requested but not included by the build system' >> "${TMPFILE}"
+echo '#endif'                     >> "${TMPFILE}"
+echo '#endif'                     >> "${TMPFILE}"
+
 # Only replace old file if the new file differs. This allows make to check the
 # date of the config header for dependency calculations.
 NEWMD5=$(${MD5SUM} ${TMPFILE} | cut -c -32)

It adds a check that newlib nano is correctly used when requested.
My goal is to verify that in your case newlib-nano is not correctly enabled and that it is not just a false error on the include directory.

I put it in the riotbuild.h as I had no idea where to put it otherwise.
You may need to run with WERROR=0 to prevent the include path error.

@aabadie
Copy link
Copy Markdown
Contributor

aabadie commented Jun 19, 2018

Ok, sorry for my previous message, I was a bit frustrated with the broken build. I managed to fix my setup by uninstalling system wide newlib (apt remove newlib...). Now everything works and I checked, newlib is shipped with the ARM embedded toolchain and correctly included (checked with info-build target).

@cladmi
Copy link
Copy Markdown
Contributor Author

cladmi commented Jun 19, 2018

Do you by chance have still the previous info-build output to compare with the new one and fix it accordingly.

@aabadie
Copy link
Copy Markdown
Contributor

aabadie commented Jun 19, 2018

Yes, I have it :)

cladmi added a commit to cladmi/RIOT that referenced this pull request Jun 20, 2018
Because of RIOT-OS#9243 failing to find the proper
newlib-nano include directory triggered an error as the given newlib-nano
include directory was not existing.

This PR does:

 * only add the NEWLIB_NANO_INCLUDE_DIR to INCLUDES if it exists
 * show a warning if the found directory does not exist but still keeps going
   as it was the previous behaviour.
cladmi added a commit to cladmi/RIOT that referenced this pull request Jun 20, 2018
Because of RIOT-OS#9243, failing to find the proper
newlib-nano include directory triggered an error as the given newlib-nano
include directory was not existing.

This PR does:

 * only add the NEWLIB_NANO_INCLUDE_DIR to INCLUDES if it exists
 * show a warning if the directory does not exist but still keeps going
   as it was the previous behavior.
cladmi added a commit to cladmi/RIOT that referenced this pull request Jun 20, 2018
Because of RIOT-OS#9243, failing to find the proper
newlib-nano include directory triggered an error as the given newlib-nano
include directory does not exist.

This PR does:

 * only add the NEWLIB_NANO_INCLUDE_DIR to INCLUDES if it exists
 * show a warning if the directory does not exist but still keeps going
   as it was the previous behavior.
cladmi added a commit to cladmi/RIOT that referenced this pull request Jun 20, 2018
Because of RIOT-OS#9243, failing to find the proper
newlib-nano include directory triggered an error as the given newlib-nano
include directory does not exist.

This PR does:

 * only add the NEWLIB_NANO_INCLUDE_DIR to INCLUDES if it exists
 * show a warning if the directory does not exist but still keeps going
   as it was the previous behavior.
cladmi added a commit to cladmi/RIOT that referenced this pull request Jun 28, 2018
Because of RIOT-OS#9243, failing to find the proper
newlib-nano include directory triggered an error as the given newlib-nano
include directory does not exist.

This PR does:

 * only add the NEWLIB_NANO_INCLUDE_DIR to INCLUDES if it exists
 * show a warning if the directory does not exist but still keeps going
   as it was the previous behavior.
@cladmi cladmi added this to the Release 2018.07 milestone Jul 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: build system Area: Build system CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Impact: minor The PR is small in size and might only require a quick look of a knowledgeable reviewer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants