Re: [avr-gcc-list] crosstool-NG
Weddington, Eric schrieb: avr-gcc-list-bounces+eric.weddington=atmel@nongnu.org On Behalf Of Stu Bell Sent: Thursday, March 03, 2011 9:07 PM To: WinAVR is the Windows packaging of the AVR-GCC stuff, along with the avr-libc library. Along with some other stuff, too. ;-) (In addition, WinAVR is about to be deprecated in favor of a toolset integrated into AVR Studio. It is on it's last official release, at least officially.) Officially, it's up to me what to do with WinAVR. Admittedly there hasn't been a lot of incentive what with AS5 coming out with a toolchain. However, based on some discussion on AVR Freaks, I'm reconsidering. WinAVR is a great project, it would be a pity if it would die. IMO the best way for AS to cooperate with avr-gcc is to provide WinAVR seperately and supply an interface to it. If AS supported to chose the installation path of avr-tools, AS users could easily switch to their favourate versions of avr-gcc and try new releases. I can understand that you are absorbed by and focused at the big AS5 project, but letting WinAVR die and deploying avr-gcc /only/ within a mega-project like AS5 is no good idea, IMO. Regards, Johann ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
RE: [avr-gcc-list] crosstool-NG
-Original Message- From: Georg-Johann Lay [mailto:a...@gjlay.de] Sent: Friday, March 04, 2011 9:15 AM To: Weddington, Eric Cc: s...@dabells.com; avr-gcc-list@nongnu.org Subject: Re: [avr-gcc-list] crosstool-NG WinAVR is a great project, it would be a pity if it would die. Thanks. IMO the best way for AS to cooperate with avr-gcc is to provide WinAVR seperately and supply an interface to it. If AS supported to chose the installation path of avr-tools, AS users could easily switch to their favourate versions of avr-gcc and try new releases. I can understand that you are absorbed by and focused at the big AS5 project, but letting WinAVR die and deploying avr-gcc /only/ within a mega-project like AS5 is no good idea, IMO. I have not been working on AS5, and it was not my decision in terms of deployment. ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
Re: [avr-gcc-list] crosstool-NG
Le 04/03/2011 05:23, Weddington, Eric a écrit : (In addition, WinAVR is about to be deprecated in favor of a toolset integrated into AVR Studio. It is on it's last official release, at least officially.) Officially, it's up to me what to do with WinAVR. Admittedly there hasn't been a lot of incentive what with AS5 coming out with a toolchain. However, based on some discussion on AVR Freaks, I'm reconsidering. WinAVR included all patches included in the compiled binaries. AS does not, there is not even a link to where one can get the source code of the avr-gcc toolchain used (I just looked at the HELP menubar in AS5, just found http://www.gnu.org/software/binutils/ and nothing else). There is also no list of the patches used to make the toolchain and no version number, one has to use '--version' on each tool to discover what version was used to make the binaries. One can find also http://distribute.atmel.no/tools/opensource/ posted on AvrFreaks, but there is no clue if these files were used for AS5 and probably that's not the case because AS5 is delivered with avr-gcc 4.5.1 while only version 4.4.3 source is made available on Atmel's site. I'm no software licence expert but I have the feeling that Atmel forgot something regarding the source code of the toolchain of AS5. Or maybe the information is buried somewhere else on Atmel's site ? Making all of our AVR code on Linux, I used to download WinAVR to rebuild a toolchain on Linux, knowing the result would work. Now the only solution is to go for Bingo600's scripts... I wonder how Joe NewAvrProgrammer can build his own correct toolchain in a reasonable amount of time with the information regarding the toolchain being scattered all around. Why Atmel doesn't publish a single web page listing the tools version and giving access to necessary patches (or making Bingo600 script 'official' or at least pointing to it) is a mystery for me. BTW AS is used here only when we want to debug with the AVRONE! since there is no way to use it directly on Linux, otherwise we never use AS because we just don't need it. In our case the avr-gcc tools are parts of a larger code production chain which is based on PHP, and this does not fit in a IDE like VS. For instance PHP will generate .h files that are compiled on the fly with .c files, PHP scripts will also generate .xml files describing the target being compiled since those files are requested by third party programs, we generate also Latex code at compile time so we are sure that parts of the documentation are fully synchronous with the compiled target, etc.: Linux is fine for this. And our Linux IDE is Emacs... ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
RE: [avr-gcc-list] crosstool-NG
-Original Message- From: avr-gcc-list-bounces+eric.weddington=atmel@nongnu.org [mailto:avr-gcc-list-bounces+eric.weddington=atmel@nongnu.org] On Behalf Of Trevor Woerner Sent: Thursday, March 03, 2011 12:09 PM To: avr-gcc-list@nongnu.org Subject: [avr-gcc-list] crosstool-NG Hi, I'm new to this project (avr-gcc) but have been using crosstool-NG for a while to build the various cross development tools I've needed for development work on various platforms. I see that CT-NG already has support for the avr32 tools and thought it would be an interesting project to add avr-gcc support (hopefully the people on the CT-NG side will be interested as well). Sorry for my ignorance, but can you provide a link to crosstool-NG? I think I'm familiar with what you're referring to. I remember talking to the author of the crosstool scripts several years ago. If CT-NG had the necessary support, building a toolchain for the avr on Linux (sorry, I don't have experience building outside of Linux) would simply be a matter of: 1) downloading, building, and installing CT-NG (very small and quick process) 2) moving to a work-area and performing ct-ng avr-unknown-none 3) optionally tweaking the configuration with ct-ng menuconfig 4) then invoking ct-ng build for the build and install You then add the install location + /bin to your $PATH and you're ready to build. Certainly, easy to use build scripts for Linux users is always good. My apologies if this isn't the case, but it appears to me (being new) that the avr-gcc landscape is a bit fractured: 1) avr-gcc source from the GCC project 2) Bingo600's scripts + patches from the avrfreaks forum 3) Omar's script + patches from the avrfreaks forum 4) Arduino IDE download 5) WinAVR toolchain (which I believe uses avr-gcc?) 6) AVR Studio (which also uses the avr-gcc tools?) 7) patches from atmel.no (others?) To be honest I'm not even sure which is the one I should be looking at, they all seem to have their own pros and cons. It's been a bit fractured just within the last few months. Joerg Wunsch, who is the maintainer of the toolchain distro on FreeBSD, and I have always coordinated the patch sets so that WinAVR and the FreeBSD toolchain distro would be identical. Bingo has also cooperated with us in helping to provide the same set for Linux. In the last year, I've been unsure if there was a reason for WinAVR to continue what with the AVR Toolchain on the Atmel website. So I haven't been keeping it up to date recently. I'm beginning to reconsider starting it back up again. The latest versions of the core tools are: binutils: 2.21 gcc: 4.5.2 avr-libc: 1.7.1 The various build instructions from above target different versions of each. 1) The GCC project (obviously) has the latest version of gcc, but doesn't include many bugfixes and updates to support newer chips That is correct. But this is slowly changing. 2) Bingo600's scripts appear to be the best so far (in terms of including bugfixes and supporting latest chips) but is based on gcc-4.3.4 and includes older versions of avr-libc and binutils. I have studied the gcc bugfixes and patches and have determined that of the group of 14 patches 5 have been fully applied to the latest gcc code, 3 partially, and 6 not at all. 3) Omar's scripts build the latest of everything but (apparently) don't have some of the bug fixes and support for the latest chips (i.e. it just uses the gcc-4.5.2 source with small modifications so it and avr-libc build correctly). 4,5,6,7) I have no idea what state these tools are in but glossing the avrfreaks forum suggests the support in WinAVR is quite good I realise, ironically, that I'm proposing yet another fracture. But, theoretially, if I knew from where to get all the latest patches and supported all the latest tools then hopefully some of the other projects might be interested in folding together into this one? Secondly, CT-NG becomes (I think) a good place to accumulate all the various patches. There's no reason why, for example, both Bingo600's and Omar's patches couldn't both be included in the CT-NG system such that you could use CT-NG to build either or both of those toolchains. Thanks for considering joining forces. It's always better than yet another project/fork. If Bingo and Omar are willing, and are able, to work with this CT-NG project, and we can make it dead simple for the casual user to use, then it sounds like a good idea from what I can tell so far. WinAVR has always had the patches available in its revision control system on SourceForge. And it provides anonymous access, of course. Eric Weddington ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
RE: [avr-gcc-list] crosstool-NG
-Original Message- From: avr-gcc-list-bounces+eric.weddington=atmel@nongnu.org [mailto:avr-gcc-list-bounces+eric.weddington=atmel@nongnu.org] On Behalf Of Bernard Fouché Sent: Friday, March 04, 2011 9:52 AM To: avr-gcc-list@nongnu.org Subject: Re: [avr-gcc-list] crosstool-NG WinAVR included all patches included in the compiled binaries. AS does not, there is not even a link to where one can get the source code of the avr-gcc toolchain used (I just looked at the HELP menubar in AS5, just found http://www.gnu.org/software/binutils/ and nothing else). There is also no list of the patches used to make the toolchain and no version number, one has to use '--version' on each tool to discover what version was used to make the binaries. One can find also http://distribute.atmel.no/tools/opensource/ posted on AvrFreaks, but there is no clue if these files were used for AS5 and probably that's not the case because AS5 is delivered with avr-gcc 4.5.1 while only version 4.4.3 source is made available on Atmel's site. I'm no software licence expert but I have the feeling that Atmel forgot something regarding the source code of the toolchain of AS5. Or maybe the information is buried somewhere else on Atmel's site ? I have informed the development team of this issue repeatedly, before any of these releases have come out... Making all of our AVR code on Linux, I used to download WinAVR to rebuild a toolchain on Linux, knowing the result would work. Now the only solution is to go for Bingo600's scripts... I wonder how Joe NewAvrProgrammer can build his own correct toolchain in a reasonable amount of time with the information regarding the toolchain being scattered all around. Why Atmel doesn't publish a single web page listing the tools version and giving access to necessary patches (or making Bingo600 script 'official' or at least pointing to it) is a mystery for me. I have my own opinions as to why this is the case, but I'm probably not at liberty to express them publicly. snip In our case the avr-gcc tools are parts of a larger code production chain which is based on PHP, and this does not fit in a IDE like VS. For instance PHP will generate .h files that are compiled on the fly with .c files, PHP scripts will also generate .xml files describing the target being compiled since those files are requested by third party programs, we generate also Latex code at compile time so we are sure that parts of the documentation are fully synchronous with the compiled target, etc.: Linux is fine for this. And our Linux IDE is Emacs... Sounds like an interesting project! :-) Can you tell me more about how this is being used? Is it web-based AVR application building? Eric ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
Re: [avr-gcc-list] crosstool-NG
On Friday 04 March 2011, Bernard Fouché wrote: Making all of our AVR code on Linux, I used to download WinAVR to rebuild a toolchain on Linux, knowing the result would work. Now the only solution is to go for Bingo600's scripts... That is not entirely true. You can also use my toolchainbuilder included in the Femto OS distribution. I know it is a year old, so makes use of 4.3.4. I think Bingo600 does a better job in keeping it up to date, but mine works for windows, linux and mac os. It is based on WinAVR too. I wonder how Joe NewAvrProgrammer can build his own correct toolchain in a reasonable amount of time with the information regarding the toolchain being scattered all around. Usually this guy does not need the bleeding edge patches, very latest gcc etc, so his task is a little easier. But yes, it can be a nuisance. This is the reason btw why i build my toolchain installer. If you want to try my OS you want to try the OS and not spend your time building a toolchain. Ruud. ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
Re: [avr-gcc-list] crosstool-NG
Weddington, Eric schrieb: -Original Message- From: Omar Choudary I am on if I can help getting the tools together. As I proposed on the avr-freaks forum I would like to see avr-gcc + patches merging into the common gcc branch. Many patches cannot go into mainline GCC because their authors have not assigned a GPL copyright assignment. This means that patches' functionality has to be rewritten by GPL-proof authors. I know, it's kind of annoying and doubling the amount of work, but that's the rule of the game... Omar, I'm now working on just that. Great. Iknow that supporting gcc is much work, my respect for that! But definitely more needs to be done than just that. Yes, definitely. Besides that, I was astonished that fixing bugs resp. backporting them is unwanted by GCC's avr backend maintainers. Would be great if you would shed some light on that so I can understand it. How should we get rid of bugs if not by fixing them? Johann ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
RE: [avr-gcc-list] crosstool-NG
-Original Message- From: Chris Kuethe [mailto:chris.kue...@gmail.com] Sent: Friday, March 04, 2011 10:46 AM To: Weddington, Eric Cc: Trevor Woerner; avr-gcc-list@nongnu.org Subject: Re: [avr-gcc-list] crosstool-NG On Fri, Mar 4, 2011 at 08:58, Weddington, Eric eric.wedding...@atmel.com wrote: It's been a bit fractured just within the last few months. Joerg Wunsch, who is the maintainer of the toolchain distro on FreeBSD, and I have always coordinated the patch sets so that WinAVR and the FreeBSD toolchain distro would be identical. Bingo has also cooperated with us in helping to provide the same set for Linux. And I follow the FreeBSD tools to try keep the OpenBSD tools fairly current too. Thanks, Chris. ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
Re: [avr-gcc-list] crosstool-NG
On Fri, Mar 4, 2011 at 11:58 AM, Weddington, Eric eric.wedding...@atmel.com wrote: Sorry for my ignorance, but can you provide a link to crosstool-NG? I think I'm familiar with what you're referring to. I remember talking to the author of the crosstool scripts several years ago. http://ymorin.is-a-geek.org/projects/crosstool If you look at Bingo or Omar's scripts their primary job is to build you a toolchain. However, in addition to building the toolchain both these (and other) scripts have to include extras such as: 1) code to download, reliably, the base code and patches for the build 2) logging/reporting code for pretty output letting the user know what is going on 3) some sort of mechanism for updating the script to download different versions or base or patch code 4) logic to know which parts have to be build in which order 5) mechanisms for installing your code and/or allowing you to install your code where ever you want etc. The crosstool-NG project contains all that infrastructure code for you already. It provides you with a kconfig style interface (http://ymorin.is-a-geek.org/projects/crosstool#snapshots) which you can use to select various versions of the tools, decide what to build (whether or not to include gdb, for example), and even select what logging level you want to use (full log, errors only, etc). It provides a convenient base from which to perform the builds, all you need to provide are the supported versions and the patches. And the neat thing is: for developers working with other embedded Linux targets, crosstool-NG can build toolchains to support other platforms such as MIPS, PowerPC, ARM, etc. So if you become familiar with using crosstool-NG you then have a base for producing (potentially) all the toolchains with which you might need to work. ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
Re: [avr-gcc-list] crosstool-NG
Weddington, Eric schrieb: -Original Message- From: Georg-Johann Lay [mailto:a...@gjlay.de] Sent: Friday, March 04, 2011 10:37 AM To: Weddington, Eric Cc: Omar Choudary; avr-gcc-list@nongnu.org Subject: Re: [avr-gcc-list] crosstool-NG Besides that, I was astonished that fixing bugs resp. backporting them is unwanted by GCC's avr backend maintainers. Would be great if you would shed some light on that so I can understand it. How should we get rid of bugs if not by fixing them? It's not that they are unwanted. It's how much effort should be involved in backporting to versions that are unlikely to be used by a majority of users. There are tradeoffs involved, that is all. hmmm, I just wondered because the patches in question were ready to commit. Most users are using 4.4.x (via different toolchain distros). But 4.5.x is likely to come out next. I don't know what toolchain versions avr developers actually prefer; maybe I am a bit WinAVR-centered (as far as Win32-hosts are concerned) and the newest version is the still GCC-supported 4.3. But you are right. avr backend is short of developers, and effort should focus on newer versions. As much as we can make 4.5.x work and get bugs fixed there, then I think (but this is just IMHO) that would have the greatest impact on the most users. The issue with 4.5 is that avr backend is lying in many places. Target avr has done this ever, but as gcc evolves we now see the penalties, i.e. inefficient code that I would not like in my projects. I don't know how important this is for other projcets, but it reveals many shortcomings in avr backend which imlpy the need of recrafting many parts of avr BE (constraint costs, address legitimation, no fake instructions, etc.). This is much work and needs extensive testing. Moreover, code growth does not show up in testsuite results. May I ask what parts you are working on? It's just because I don't see it in svn logs yet. Johann ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
RE: [avr-gcc-list] crosstool-NG
-Original Message- From: Omar Choudary [mailto:choudary.o...@gmail.com] Sent: Friday, March 04, 2011 4:53 PM To: Trevor Woerner Cc: Weddington, Eric; avr-gcc-list@nongnu.org Subject: Re: [avr-gcc-list] crosstool-NG I'll try to take a look at the tool once I get some spare time. Also, regarding the eaearlier discussions, I think we need to focus purely on the tools here, the IDE is a matter of personal preference. The tools can be easily integrated with any IDE. For example in windows the as provides the IDE while winavr could provide the tools. In Linux I simply use vim. Agreed. There's a number of things with the underlying tools that need to be fixed, or new features added. ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
Re: [avr-gcc-list] crosstool-NG
On 3/3/2011 12:08 PM, Trevor Woerner wrote: My apologies if this isn't the case, but it appears to me (being new) that the avr-gcc landscape is a bit fractured: 1) avr-gcc source from the GCC project 2) Bingo600's scripts + patches from the avrfreaks forum 3) Omar's script + patches from the avrfreaks forum 4) Arduino IDE download 5) WinAVR toolchain (which I believe uses avr-gcc?) 6) AVR Studio (which also uses the avr-gcc tools?) 7) patches from atmel.no (others?) I recommend that you start with Bingo's scripts for Linux. That always gives you a stable base, usually with the latest release stuff (or at least latest stable). The script will bring in everything else you need. Don't worry about Arduino unless you plan to support Arduino in particular. There's nothing necessarily wrong with it, but they do have some libraries that can make things ... um... confusing. As you might have guessed, WinAVR and AVR Studio are Windows packages, not applicable to Linux. WinAVR is the Windows packaging of the AVR-GCC stuff, along with the avr-libc library. (In addition, WinAVR is about to be deprecated in favor of a toolset integrated into AVR Studio. It is on it's last official release, at least officially.) AVR Studio is an IDE that requires WINE (at a minimum) to work properly on Linux. Reports I have seen are that some are able to get it to work, while others are not. YMMV. Most Linux-ites use Eclipse or other favorite editor/IDE. Best of luck! Stu Bell ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
RE: [avr-gcc-list] crosstool-NG
-Original Message- From: avr-gcc-list-bounces+eric.weddington=atmel@nongnu.org [mailto:avr-gcc-list-bounces+eric.weddington=atmel@nongnu.org] On Behalf Of Stu Bell Sent: Thursday, March 03, 2011 9:07 PM To: avr-gcc-list@nongnu.org Subject: Re: [avr-gcc-list] crosstool-NG Hi Stu, Hope you're doing well. :-) WinAVR is the Windows packaging of the AVR-GCC stuff, along with the avr-libc library. Along with some other stuff, too. ;-) (In addition, WinAVR is about to be deprecated in favor of a toolset integrated into AVR Studio. It is on it's last official release, at least officially.) Officially, it's up to me what to do with WinAVR. Admittedly there hasn't been a lot of incentive what with AS5 coming out with a toolchain. However, based on some discussion on AVR Freaks, I'm reconsidering. ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
Re: [avr-gcc-list] crosstool-NG
I am on if I can help getting the tools together. As I proposed on the avr-freaks forum I would like to see avr-gcc + patches merging into the common gcc branch. Trevor, your idea seems nice, although I would be even more enthusiastic to put all the patches into the mainstream gcc and then just do a normal cross-build for the tools. Omar On Fri, Mar 4, 2011 at 12:23 AM, Weddington, Eric eric.wedding...@atmel.com wrote: -Original Message- From: avr-gcc-list-bounces+eric.weddington=atmel@nongnu.org [mailto:avr-gcc-list-bounces+eric.weddington=atmel@nongnu.org] On Behalf Of Stu Bell Sent: Thursday, March 03, 2011 9:07 PM To: avr-gcc-list@nongnu.org Subject: Re: [avr-gcc-list] crosstool-NG Hi Stu, Hope you're doing well. :-) WinAVR is the Windows packaging of the AVR-GCC stuff, along with the avr-libc library. Along with some other stuff, too. ;-) (In addition, WinAVR is about to be deprecated in favor of a toolset integrated into AVR Studio. It is on it's last official release, at least officially.) Officially, it's up to me what to do with WinAVR. Admittedly there hasn't been a lot of incentive what with AS5 coming out with a toolchain. However, based on some discussion on AVR Freaks, I'm reconsidering. ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
RE: [avr-gcc-list] crosstool-NG
-Original Message- From: Omar Choudary [mailto:choudary.o...@gmail.com] Sent: Thursday, March 03, 2011 9:39 PM To: Weddington, Eric Cc: s...@dabells.com; avr-gcc-list@nongnu.org Subject: Re: [avr-gcc-list] crosstool-NG I am on if I can help getting the tools together. As I proposed on the avr-freaks forum I would like to see avr-gcc + patches merging into the common gcc branch. Omar, I'm now working on just that. But definitely more needs to be done than just that. ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
Re: [avr-gcc-list] crosstool-NG
On Thu, Mar 3, 2011 at 11:38 PM, Omar Choudary choudary.o...@gmail.com wrote: Trevor, your idea seems nice, although I would be even more enthusiastic to put all the patches into the mainstream gcc and then just do a normal cross-build for the tools. Yes, ideally this would be the best solution. However, given the fact the patches exist but are still not yet merged into the gcc project I simply assumed getting these patches accepted by the gcc maintainers is not trivial. If you wanted to work with the latest and greatest Linux ARM kernel you wouldn't expect to find that on kernel.org. The same thing goes for the latest uClinux kernel, the latest MIPS kernel, PowerPC, etc... The kernel you find on kernel.org is the latest and greatest x86(_64) kernel; with respects to all other platforms it lags behind and simply collects known-to-be-working patches from the other platform specific sites well after they exist and have been tested elsewhere. I just naturally assumed the same process was at work with respect to gcc and its support of non-x86(_64) platforms. Is this not a valid assumption? If this is a valid assumption then the best support for avr will always exist somewhere else other than in the gcc project and would ideally be maintained as a patch which tracks the latest stable gcc release. ___ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list