This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Patch [avr]: makes avr-6 incompatible with other avr architectures


 

> -----Original Message-----
> From: Tristan Gingold [mailto:gingold@adacore.com] 
> Sent: Friday, December 05, 2008 6:28 AM
> To: Weddington, Eric
> Cc: binutils@sourceware.org; Denis Chertykov; Anatoliy Sokolov
> Subject: Re: Patch [avr]: makes avr-6 incompatible with other 
> avr architectures
> 
> 
> >> (I also though about a universal avr architecture but I am
> >> not sure it
> >> is worth)
> >
> > (I'm not sure how you would construct such a thing. But at this  
> > point, it's probably not worth the effort.)
> 
> A function that few enough parameters so that they are passed in  
> registers should work on avr6.  gcc has
> to detect such cases.

I think, in theory, that we should not allow two modules compiled with different *device* specifications to be linked together. This would be finer grained than these avr "architecture" groups. Because even if two devices are in the same "architecture", they may have different I/O port mappings (via the device header files in e.g., avr-libc) which would make them incompatibile. All object modules should be compiled for the same device to be linked. Just because object modules compiled for different devices can be linked together, doesn't make it a good idea. But in order to do this, we have to re-introduce the device setting back into the object file. IIRC, it used to be put in the object module, but for some reason (bug or on purpose) it's not there now.

Eric


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]