[En-Nut-Discussion] Some notes on using GCC 4.4.1 (eh_frame)

Ulrich Prinz uprinz2 at netscape.net
Mon Sep 7 15:40:07 CEST 2009


On Mon, 07 Sep 2009 10:00:58 +0200, Harald Kipp <harald.kipp at egnite.de> 
wrote: 
> Ulrich Prinz wrote: 
>  
>> I think it is not so optimal to update the compiler with breaking  
>> compatibility and leaving the developers using it alone. 
>> Even the comments from the wiki with arm-elf-ar -d ... doesn't work. 
>  
> Bad timing. Michael moved to Sourceforge in 2009 and egnite recently 
> moved its outdated mirror yagarto.org to a new machine, taking over the 
> current status of yagarto.de. 
>  
> It is necessary to have previous versions available. For now I'm moving 
> my local backup to 
> http://www.ethernut.de/arc/ 
> Unfortunately the original file dates are gone. 
>  
I normally save my toolchains together with my projects. Unfortunately I 
didn't do that this time. May be caus it's a long time ago when I was 
thinking about using NutO/S or not. But I found a version including GCC 
4.1.1 and that one workes flawlessly. 
>  
>> The systemcalls.c from yagarto.de may be a neat idea, but the function  
>> headers don't match... 
>  
> I must admit, that I didn't fully understand the topic. AFAIK, syscalls 
> had been always part of YAGARTO's newlib distribution. They often 
> appeared in linker errors as soon as standard C calls were referenced, 
> which require system functions (alloc, print etc.) and which were not 
> available in Nut/OS libs. E.g. using calloc or strdup in older Nut/OS 
> versions, which didn't support them. 
>  
> I'll give it a try, 
>  
I can try to reproduce the differences between 4.1.1 and 4.4.1 compiler 
running through NutO/S 4.9.3.0. But this will take a few days. 
 
What I found out at work was, that I accidentially used fileno() instead of 
_fileno() what gave me a lot of lib related errors. ( Missing _strtok()) 
But there where no *_r (reentrant) errors. I didn't made such a mistake on 
my try yesterday, as I compiled a software that ran without problems before 
I reinstalled Windows on my Workstation. ( I am going modern, I installed 
XP :) ) 
So I simply tried the new installed compiler to check if it's working. 
 
I expected openocd 0.2.0 to make trouble and yagarto to run fine. But 
according to Murphy's law openocd started out of the box so yagarto had to 
fail :) 
 
I scan the code for possible links to the wrong libs. But I don't know all 
the functions. So it may last a while. May be that explains, why the 
Ethernet Stack crashes if a button is pressed :) 
 
Best regards 
Ulrich



More information about the En-Nut-Discussion mailing list