[En-Nut-Discussion] Can't correctly build NutOS 4.8.9 on Fedora 14 for Ethernut 2.1b

Bernard Fouché bernard.fouche at kuantic.com
Mon Apr 18 15:33:31 CEST 2011

Hi Harald,

Le 16/04/2011 16:04, Harald Kipp a écrit :
> On Ubuntu I simply use
>    sudo apt-get install gcc-avr
>    sudo apt-get install avr-libc
Because of the 'usual' avr-gcc mess (one never clearly knows what 
patches are required to build a working compilation chain and many 
packaged compilation chain were not built with the required patchees), I 
was used to build it from WinAVR included patches... Now Atmel ships Avr 
Studio 5 with avr-gcc binaries and because of the GPL they setup a 
website where one is supposed to be able to get the patches.

> Same problem here when using Nut/OS 4.8.9 with avr-gcc 4.3.4 and
> avr-libc 1.6.7. For some reason something is broken with relative paths.
> Please try absolute paths
>    Repository: /home/bernard/ethernut/nut/conf/repository.nut
>    Source Directory: /home/bernard/ethernut/nut
>    Platform: avr-gcc
>    Build directory: /home/bernard/ethernut/nutbld
>    Appl. Directory: /home/bernard/ethernut/nutapp
>    Programmer: avr-dude
> All other settings should be left empty.
It does not work either: the compilation breaks reporting absolute paths 
instead of relative ones ;-) :

14:39:34: Nut/OS Configurator Version 2.0.9
14:39:34: Linked to wxWidgets 2.8.11
14:39:34: Running on Linux i686
14:39:34: Working in /home/bernard/ethernut/ethernut-4.8.9
14:39:35: Failed to load help file
14:39:43: Loading /home/bernard/ethernut/nut/conf/repository.nut
14:39:43: Loading 
14:39:43: OK
14:40:12: Creating Makefiles for avr-gcc in /home/bernard/ethernut/nutbld
14:40:12: Creating header files in /home/bernard/ethernut/nutbld
14:40:12: OK
14:40:13: ----- Running 'make clean' -----
14:40:13: ----- 'make clean' terminated successfully -----
14:40:13: ----- Running 'make all' -----
/home/bernard/ethernut/nut/arch/avr/os/context_gcc.c:114:20: error: 
cfg/os.h: No such file or directory
/home/bernard/ethernut/nut/arch/avr/os/context_gcc.c:115:24: error: 
cfg/memory.h: No such file or directory

I try running NutConf with absolute path from /home/bernard/ethernut or 

Thanks to strace(1) I see that make(1) enters nutbld/arch . Since 
avr-gcc is launched without any '-I../..whatever_is_needed', it can't 
find the header files. I have added in UserConf.mk:


But then avr-gcc does not know what MCU is concerned, I have to add to 
the previous string:


And then it fails because 'NUT_CPU_FREQ' is unknown, etc.

It seems that defining that I use an Ethernut 2.1b does not bring in all 
the 2.1b stuff and every define which is target related is ignored by 
the build process. When I define:


Then the compilation fails reporting :

15:28:53: ----- Running 'make clean' -----
15:28:53: ----- 'make clean' terminated successfully -----
15:28:53: ----- Running 'make all' -----
/home/bernard/ethernut/nut/arch/avr/dev/ahdlc0.c:74: error: 
'AhdlcAvrWrite_P' undeclared here (not in a function)
/home/bernard/ethernut/nut/arch/avr/dev/ahdlc0.c:75: warning: 
initialization from incompatible pointer type
/home/bernard/ethernut/nut/arch/avr/dev/ahdlc0.c:76: warning: 
initialization from incompatible pointer type
/home/bernard/ethernut/nut/arch/avr/dev/ahdlc0.c:78: warning: excess 
elements in struct initializer
/home/bernard/ethernut/nut/arch/avr/dev/ahdlc0.c:78: warning: (near 
initialization for 'devAhdlc0')
make[1]: *** [avr/dev/ahdlc0.o] Error 1
make: *** [all] Error 2
15:28:53: ----- 'make all' failed with error 2 -----

Modifying UserConf.mk seems a dead end, there is always something missing...

What is problematic with nutconf is the difficulty to get a trace of 
what tool runs in what directory, what file is processed before running 
make(1), etc...

At this time I still don't have a working NutOs!!


More information about the En-Nut-Discussion mailing list