Hello, Thank you for making the toolchain available for the Mac at http://www.mikrocontroller.net/en/arm-gcc . I am assuming that this version is a PowerPC (PPC) toolchain, right? If so, would it be possible to get the Intel Mac version or give me instructions on how to make the Intel Mac version? I use WinARM on my PC and in some cases need to use the toolchain on my Mac. Also, what is the difference between the "Mac version" of WinARM versus the toolchain distributed by Making Things? ( http://prdownloads.sourceforge.net/makingthings/GnuArmTools.dmg ) Thanks! Darrik
Darrik Spaude wrote: > Hello, > > Thank you for making the toolchain available for the Mac at > http://www.mikrocontroller.net/en/arm-gcc . I am assuming that this > version is a PowerPC (PPC) toolchain, right? Yes. It should also run on Intel, but probably not as fast as a native toolchain. > If so, would it be possible > to get the Intel Mac version or give me instructions on how to make the > Intel Mac version? You can try my build script: http://andreas-s.net/tmp/build.sh > Also, what is the difference between the "Mac version" of WinARM versus > the toolchain distributed by Making Things? ( > http://prdownloads.sourceforge.net/makingthings/GnuArmTools.dmg ) I don't know that toolchain; if it contains GCC > 4.0, there shouldn't be a big difference. Andreas
> Yes. It should also run on Intel, but probably not as fast as a native > toolchain. Compared to my Windows machine, my Intel Macs compile more slowly so I figure that it is running Rosetta to translate from PPC to Intel. > You can try my build script: > http://andreas-s.net/tmp/build.sh I'll give it a try. I'm on dial-up so it will take a while to get the sources. I'll report back to this thread with my status. >> Also, what is the difference between the "Mac version" of WinARM versus >> the toolchain distributed by Making Things? ( >> http://prdownloads.sourceforge.net/makingthings/GnuArmTools.dmg ) > > I don't know that toolchain; if it contains GCC > 4.0, there shouldn't > be a big difference. Their toolchain had all of the same versions, but I wasn't sure if Newlib was compiled with -DREENTRANT_SYSCALLS_PROVIDED. Darrik
>> You can try my build script: >> http://andreas-s.net/tmp/build.sh > > I'll give it a try. I'm on dial-up so it will take a while to get the > sources. I'll report back to this thread with my status. The following doesn't appear to exist (can't get gcc-4.1.0.tar.bz2 and binutils-2.16.1.tar.bz2): http://ftp.uni-erlangen.de/pub/mirrors/GNU/ I'm currently getting newlib-1.14.0.tar.gz. Darrik
>>> You can try my build script: >>> http://andreas-s.net/tmp/build.sh >> >> I'll give it a try. I'm on dial-up so it will take a while to get the >> sources. I'll report back to this thread with my status. It also doesn't find the following: http://ftp.uni-erlangen.de/pub/mirrors/GNU/gdb/gdb-6.4.tar.bz2 http://guest.engelschall.com/~martin/lpc21xx/isp/lpc21isp_source.zip So a total of 4 of the source files cannot be found. Darrik
You can get them from another GNU mirror. And you don't need exactly the versions specified in the file, just take the most recent ones.
Andreas Schwarz wrote: > You can get them from another GNU mirror. And you don't need exactly the > versions specified in the file, just take the most recent ones. Thanks. That's what I will do. The only thing I can't seem to find is http://guest.engelschall.com/~martin/lpc21xx/isp/lpc21isp_source.zip I don't need that, but to be consistent with the current version here I should try to get that. Thanks again, Andreas. Darrik
Darrik Spaude wrote: > The only thing I can't seem to find is > http://guest.engelschall.com/~martin/lpc21xx/isp/lpc21isp_source.zip AFAIK the "engelschall"-site does not longer provide lpc21sip binaries or sources. The source-code can be found in the files-area of the lpc21isp yahoo-group: http://tech.groups.yahoo.com/group/lpc21isp/ (yahoo-account needed for access) Martin Thomas
Andreas, I'm getting various errors on compiling using build.sh. First, I should show you what my directory looks like (I had to create the packages and src directories): drwxr-xr-x 7 ~~user~~ admin 238 Apr 14 12:34 . drwxr-xr-x 25 ~~user~~ admin 850 Apr 14 13:35 .. drwxr-xr-x 6 ~~user~~ admin 204 Apr 14 14:01 build -rw-r--r-- 1 ~~user~~ admin 3315 Apr 14 14:01 build.sh drwxr-xr-x 7 ~~user~~ admin 238 Apr 14 09:43 packages drwxr-xr-x 7 ~~user~~ admin 238 Apr 14 13:13 src --------- Now to the errors. The first one is this when trying to build binutils: creating cache ./config.cache checking host system type... i686-apple-darwin8.9.1 checking target system type... arm-unknown-elf checking build system type... i686-apple-darwin8.9.1 checking for a BSD compatible install... /usr/bin/install -c checking whether ln works... yes checking whether ln -s works... yes checking for gcc... ccache gcc checking whether the C compiler (ccache gcc ) works... no configure: error: installation or configuration problem: C compiler cannot create executables. make: *** No targets specified and no makefile found. Stop. make: *** No rule to make target `install'. Stop. So I then changed the script to explicitly change to the appropriate directories and use ./configure. This seems to work for binutils, but not for the GCC, NEWLIB, and GDB. Binutils finally ends with: make[2]: Nothing to be done for `install'. But it did appear to install something in /usr/local/arm. Next, for GCC, I don't have any "t-arm-elf" in the root directory with the build.sh script. It also gives the following output: cp: ../../t-arm-elf: No such file or directory creating cache ./config.cache checking host system type... i386-apple-darwin8.9.1 checking target system type... arm-unknown-elf checking build system type... i386-apple-darwin8.9.1 checking for a BSD compatible install... /usr/bin/install -c checking whether ln works... yes checking whether ln -s works... yes checking for gcc... ccache gcc checking whether the C compiler (ccache gcc ) works... no configure: error: installation or configuration problem: C compiler cannot create executables. make: *** No rule to make target `all-gcc'. Stop. make: *** No rule to make target `install-gcc'. Stop. I changed the directory stuff again, but I still end up with the t-arm-elf error (no such file) and "No rule to make target 'all-gcc'. I'll stop with these errors for now. The other builds have the same errors. Thanks for any help. Darrik
By the way, I'm using a Mac Pro (Intel Xeon) with Mac OS X 10.4.9. I have Xcode installed, so all the compilers are installed and such. I do NOT have any Fink or DarwinPorts stuff installed (and I really don't want to install either of those). This is basically a "factory-fresh" Mac OS X client installation. I'll keep track of documenting how this Intel version gets built as long as we can work through it and get it built. Thanks, Darrik
> The first one is this when trying to build binutils: > creating cache ./config.cache > checking host system type... i686-apple-darwin8.9.1 > checking target system type... arm-unknown-elf > checking build system type... i686-apple-darwin8.9.1 > checking for a BSD compatible install... /usr/bin/install -c > checking whether ln works... yes > checking whether ln -s works... yes > checking for gcc... ccache gcc > checking whether the C compiler (ccache gcc ) works... no > configure: error: installation or configuration problem: C compiler > cannot create executables. > make: *** No targets specified and no makefile found. Stop. > make: *** No rule to make target `install'. Stop. No idea where this error comes from. > Next, for GCC, I don't have any "t-arm-elf" in the root directory with > the build.sh script. It also gives the following output: > cp: ../../t-arm-elf: No such file or directory You can get this file here: http://www.gnuarm.com/t-arm-elf You don't need anything except the XCode package.
>> configure: error: installation or configuration problem: C compiler >> cannot create executables. >> make: *** No targets specified and no makefile found. Stop. >> make: *** No rule to make target `install'. Stop. > > No idea where this error comes from. Do you have ccache installed? I don't seem to have it on my system so I removed the export "ccache gcc" and the compile is now running. I'll see what happens... Darrik
>> Next, for GCC, I don't have any "t-arm-elf" in the root directory with >> the build.sh script. It also gives the following output: >> cp: ../../t-arm-elf: No such file or directory > > You can get this file here: > http://www.gnuarm.com/t-arm-elf I think I may also need: newlib-cflags_for_target.patch It appears this goes in the same directory as the build.sh script also. Thanks, Darrik
Now we're talking speed! I got everything to compile except for the following issues: * I didn't get the LPC21ISP source code--could just inlcude the version from the PPC one. * I don't have the patch file for newlib (I don't know if there was a warning regarding this because the window cache overflowed) I tried compiling my AT91SAM7 source code and it compiled just fine (but much faster). Let me know if I should get the patch file and re-do this before I submit the Intel version of the cross-compiler. Also, I noticed that Newlib on the ARM GCC toolchain web page indicated -DREENTRANT_SYSCALLS_PROVIDED was used. Is that what the patch is for or do I need to add that to the ./configure for Newlib? Best Regards, Darrik
Darrik Spaude wrote: > Now we're talking speed! > > I got everything to compile except for the following issues: > * I didn't get the LPC21ISP source code--could just inlcude the version > from the PPC one. That should be ok. Take this version: http://www.mikrocontroller.net/download/lpc21isp-133-osx > Also, I noticed that Newlib on the ARM GCC toolchain web page indicated > -DREENTRANT_SYSCALLS_PROVIDED was used. Is that what the patch is for or > do I need to add that to the ./configure for Newlib? That's what the patch is for. Sorry, I forgot to upload it: http://andreas-s.net/tmp/newlib-cflags_for_target.patch
> That should be ok. Take this version: > http://www.mikrocontroller.net/download/lpc21isp-133-osx Got it. >> Also, I noticed that Newlib on the ARM GCC toolchain web page indicated >> -DREENTRANT_SYSCALLS_PROVIDED was used. Is that what the patch is for or >> do I need to add that to the ./configure for Newlib? > > That's what the patch is for. Sorry, I forgot to upload it: > http://andreas-s.net/tmp/newlib-cflags_for_target.patch Got it. I'll recompile everything from scratch. I'll also try to use ccache. Newlib took at least 15 minutes to compile yesterday and it looked like it was re-compiling a lot of the same code several times (it was hard to tell, though, since it was flying past so quickly). I'm documenting what I did to get all of this to compile, so I'll send my version of the build script along with the Intel version maybe later today. Darrik
Everything compiled without trouble. I use ccache this time, but I don't know if it made any difference or not. All of it still took about 15 to 20 minutes. I also copied the PPC version of LPC21ISP to the /usr/local/arm/bin/ directory. On the practical side, I did some compile time tests. On my Mac Pro, I saw the following changes when compiling my small application for the AT91SAM7: PPC version of arm-elf toolchain: 46 seconds Intel version of arm-elf toolchain: 4 seconds Very nice. Thank you Andreas and Martin for your help and input. Is there a location to which I should submit the /usr/local/arm file and some of the build script files (but not the sources)? I bzipped the arm directory and it is 52,113,775 bytes (49.7 MB). I can also put it on an FTP site if you want to get it and move it to another server. Thanks again, Darrik
Darrik Spaude wrote: > Is there a location to which I should submit the /usr/local/arm file and > some of the build script files (but not the sources)? Did you make any changes to the script? What versions of binutils, GCC and GDB did you use? > I bzipped the arm > directory and it is 52,113,775 bytes (49.7 MB). You can reduce the size significantly by stripping the binaries: strip /usr/local/arm/bin/* strip /usr/local/arm/libexec/gcc/arm-elf/yourversion/* strip /usr/local/arm/arm-elf/bin/* Including the lpc21isp binary is not necessary, I think it's better to keep the GNU toolchain seperate from the rest. > I can also put it on an > FTP site if you want to get it and move it to another server. That would be nice. Andreas
> Did you make any changes to the script? What versions of binutils, GCC > and GDB did you use? Yes, I modified the script (link given at the end of this message) but really all I did was make it possible to compile it on my Mac. Otherwise, the script conforms to what is given on the ARM GCC toolchain web page (http://www.mikrocontroller.net/en/arm-gcc). I used the following sources: newlib-1.14.0.tar.gz binutils-2.16.1.tar.bz2 gdb-6.4.tar.bz2 gcc-4.1.0.tar.bz2 > You can reduce the size significantly by stripping the binaries: > strip /usr/local/arm/bin/* > strip /usr/local/arm/libexec/gcc/arm-elf/yourversion/* > strip /usr/local/arm/arm-elf/bin/* Okay, I did that. It is down to 33274627 bytes (from 52113775). > Including the lpc21isp binary is not necessary, I think it's better to > keep the GNU toolchain seperate from the rest. I removed the lpc21isp binary (which was a PPC build anyway). I have put the build script and supporting files (minus the source files) (17 KB) at: ftp://ftp.multitech.com/multivoip/misc/darrik/IntelARMGCCToolchain_20070 418.zip I have put the GNU ARM toolchain for Mac OS X (Intel) (31.7 MB) at: ftp://ftp.multitech.com/multivoip/misc/darrik/arm-toolchain-macosx-2_200 70418_Intel.tar.bz2 Darrik
Darrik, Andreas, In the last week I've moved my Eclipse cross-compile environment from a PPC laptop to a Mac Pro, and just yesterday discovered how SLOW the PPC cross-compiler was running under Rosetta. Then lo, I find this forum with Intel-compatible binaries POSTED FOR THE FIRST TIME THAT SAME DAY! May you both live long, blessed, healthy and prosperous lives!!! Can I buy you a beer? By the way, "bostjan" at: http://www.japina.eu/blog-eng/index.php/post/79/ offers (as of 8 April 2007) what he claims is a universal-binary version of lpc21isp 1.39. I have downloaded it and verified that it starts up OK on the (Intel) Mac Pro, but have not tested it with a target, nor on PPC architecture. Bill
Thanks, I have uploaded the toolchain to my server: http://www.mikrocontroller.net/articles/ARM_GCC_toolchain_for_Linux_and_Mac_OS_X
This morning I created an ARM toolchain for Intel Mac OS X based on the following (similar to what was done at gnuarm.org): - Binutils 2.17 - GCC 4.2.0 - Newlib 1.15.0 - GDB 6.6 Is there any interest in this toolchain? It is based on the same process found at http://www.mikrocontroller.net/articles/ARM_GCC_toolchain_for_Linux_and_Mac_OS_X . From my limited testing this morning it appears to be working. Best Regards, Darrik
> Is there any interest in this toolchain? It is based on the same process > found at > http://www.mikrocontroller.net/articles/ARM_GCC_toolchain_for_Linux_and_Mac_OS_X I looked at the http://gnuarm.org/support.html page and it looks like the t-arm-elf file was modified and some of the build parameters are a little different. The gnuarm.org parameters include "--with-float=soft". However, it doesn't appear -DREENTRANT_SYSCALLS_PROVIDED was used. Would there be any benefit to using the modified t-arm-elf file and adding --with-float=soft? Darrik
I posted the GCC 4.2.0 toolchain (PPC and Intel) to my web site's blog section: http://spaudemedia.com/blogs/blog_20070704_ARM7Toolchain04.html Darrik
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.