I'm just not confident enough of my coding skills to tackle it by myself.
I skimmed the code and I bet the port wouldn't be that hard. There's liberal use of the PROGMEM annotation that I've been ignoring up to now, becuase that's a NOP in Propeller CMM or LMM. However, it might confuse people so I should find a way to deal with it.
I plan to post base level 2 of my code this weekend. It will have the additional functions I mentioned above plus servo support.
Right now I've been building and testing my code by having my library files in the same project as my test program. I then swap the test program to exercise different library functions. While this works OK I would prefer to create a library project and link separate test projects with it. The way the Arduino works is that you have a main in the library which has two callbacks to the user code. They are setup and loop and the code looks like this:
int main(void)
{
setup();
for (;;) {
loop();
}
return 0;
}
When I compile this I get an error that those two functions are not defined. Which makes sense because I want the program that links with the library to do so. Here's what it looks like:
Project Directory: C:/Users/a231861/Documents/SimpleIDE/My Projects/Propelleruino/
propeller-elf-c++ -I . -L . -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -c nonstdlib.cpp -o cmm/nonstdlib.opp
propeller-elf-c++ -I . -L . -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -c Print.cpp -o cmm/Print.opp
propeller-elf-c++ -I . -L . -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -c Stream.cpp -o cmm/Stream.opp
propeller-elf-c++ -I . -L . -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -c WMath.cpp -o cmm/WMath.opp
propeller-elf-c++ -I . -L . -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -c WString.cpp -o cmm/WString.opp
propeller-elf-ar.exe rs cmm/Propelleruino.a cmm/nonstdlib.opp cmm/Print.opp cmm/Stream.opp cmm/WMath.opp cmm/WString.opp
propeller-elf-ar.exe: creating cmm/Propelleruino.a
propeller-elf-c++ -I . -L . -o cmm/Propelleruino.elf -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti Propelleruino.cpp cmm/Propelleruino.a
C:\Users\a231861\AppData\Local\Temp\ccaiiMjO.o: In function `_main':
(.text+0x3): undefined reference to `_setup'
C:\Users\a231861\AppData\Local\Temp\ccaiiMjO.o: In function `_main':
(.text+0x6): undefined reference to `_loop'
collect2: ld returned 1 exit status
Done. Build Failed!
Check source for bad function call or global variable name `_setup'
C:\Users\a231861\AppData\Local\Temp\ccaiiMjO.o: In function `_main':
(.text+0x6):
(1) Did you in fact define functions named setup() and loop()?
(2) Were those functions declared in a header file? Particularly in C++ it is important that the function prototypes match for all uses and declarations, because C++ will modify the function names to include parameter and return types. So for example, if one C++ file has:
extern void loop();
...
loop();
and it is linked with a C++ file that has:
int loop(void) {
}
then there will probably be a linker error, because the function signatures won't match.
(2) Were those functions declared in a header file? Particularly in C++ it is important that the function prototypes match for all uses and declarations, because C++ will modify the function names to include parameter and return types. So for example, if one C++ file has:
This is all good. I have a header file with the functions defined. If the program and library source are in the same project it all works. The problem is that those functions are not available while the library is being linked.
I have no idea about how the Arduino programs are put together. But looking at what you say it seems as if you have to build the thing "backwards".
You don't build your program as a normal program (with a main) which uses libraries but rather as a library that provides setup and loop functions. The actual program being built is whatever contains main() which then get's linked against you app, which is a library, and other libraries.
Heater, that's what I was afraid of. I've usually done exactly what you say, but someone the Arduino IDE does it backwards. Their library contains main.cpp and your code implements setup and loop.
weak The weak attribute causes the declaration to be emitted as a weak symbol rather than a global. This is primarily useful in defining library functions that can be overridden in user code, though it can also be used with non-function declarations. Weak symbols are supported for ELF targets, and also for a.out targets when using the GNU assembler and linker.
Good news bad news. The weak functions worked and I'm able to build the library code separately from the project. But it fails in the link step as it is unable to find the library. Note that I added and include and library directives and they are present on the command line. Here's the error:
It builds if you remove the -lPropelleruino from the linker options. I believe the -l option looks for a library with the name libfilename.a, so -lPropelleruino will look for libPropelleruino.a. The fact that it builds without -lPropelleruino means that it's not even using the library. How do you include the main function into your code without the library? BTW, I wasn't able to build the library either.
EDIT: It seems that the options for removing unused code are allowing an elf file to be built without the main routine. If I remove these options I get the expected errors about the missing main routine, and also the missing library routines. I'm using an older version of the tools, so the unused code options may not be working correctly with that version.
1) A SimpleIDE library project must begin with lib, i.e. libPropelleruino (see Help -> SimpleIDE User Guide)
2) Functions main, setup, and loop must be in a separate libPropellerino library file
I've fixed those in the attached .zip file.
Looks like Serial.cpp/h are missing from the library. I resorted to puts("hello") for testing.
Thanks for the help and being patient. I'm not sure why Serial has gone AWOL in the unloaded copy. I tried to create the library twice and must have botched it in the second try.
Jazzed, I think there might be something wrong with the newer build of propgcc when using the flags to exclude unused code. I can build just fine, but I can't load EPROM or RAM with it, but if I switch back to an older version of the project which I can compile without the flags, then the upload works fine. Below is the output:
I'll check that. I have two computers and I know I upgraded one. I might have forgotten to do the other.
Also, can I call printf in a static constructor which happens before main is called? I'm testing the servo object and I don't see the output in the constructor but I do in main.
I'll check that. I have two computers and I know I upgraded one. I might have forgotten to do the other.
Also, can I call printf in a static constructor which happens before main is called? I'm testing the servo object and I don't see the output in the constructor but I do in main.
You might want check your PATH environment variable. That is a critical item. Please make sure you only have one path to the propeller-gcc bin set. Also, SimpleIDE should be restarted if there are changes to where the compiler is placed.
If you put printf in a static constructor, you may need to add a half second delay before it to give the terminal time to start up.
You might want check your PATH environment variable. That is a critical item. Please make sure you only have one path to the propeller-gcc bin set. Also, SimpleIDE should be restarted if there are changes to where the compiler is placed.
If you put printf in a static constructor, you may need to add a half second delay before it to give the terminal time to start up.
I think I only upgraded one machine because I downloaded the new version and I can do the upload with the full library. The neat part is I'm only at 8408 bytes for one of my tests. I've got nearly the entire core library, plus the servo, spi, and Adafruit graphics lib. That leave plenty of room for user programs because all the unused string functions get ignored. I need to add analogRead and software serial, but this is looking plenty doable. I'm using the Arduino samples as my unit tests and that's been helpful.
Ah, the delay makes perfect sense. It's not big deal as most of the real works starts at attach, so I can put in a delay before that is called.
@All, here's the latest library with a debugged servo object and my unit test. This unit test is the Arduino servo sweep example modified to use two servos and to add a #include <Arduino.h>. Really the only required deviation from the example is adding the #include because the Arduino IDE mashes that onto your program, while propgcc doesn't.
NOTE: To use this library you need the newer version of propgcc referenced above to prune unused functions. The servo test for example ends up being over 5900 bytes which isn't bad, but the Arduino sketch is 2666 bytes which is more compact. It will be interesting to see if this multiple holds for large projects, or it is some one time cost on the Propeller.
The servo test for example ends up being over 5900 bytes which isn't bad, but the Arduino sketch is 2666 bytes which is more compact. It will be interesting to see if this multiple holds for large projects, or it is some one time cost on the Propeller.
There is a "one time cost" involved. Every Propeller-GCC program needs a kernel that is about 2KB (this is true of Spin also, but it is hidden in ROM). So in this case the actual C code is about 4KB. If you use the non-standard Tiny lib in the example the code is about 4100 bytes. So in that case the actual C code is about 1100 bytes.
@Martin_H, we need away to preserve your work for future reference. Arduino code is GPL AFAIK, so the Parallax OBEX is not a suitable place (at the moment). Do you have a repository?
@cavelamb, I've seen those touch-screens at Radio-Shack. If you buy one, I will too and give you a hand if necessary.
@Martin_H, we need away to preserve your work for future reference. Arduino code is GPL AFAIK, so the Parallax OBEX is not a suitable place (at the moment). Do you have a repository?
I plan to eventually bite the bullet and create a project on code.google.com. I've thought about the licensing issue and all the new modules I'm writing are MIT licensed which is considered GPL compatible. This means I'm allowed by the GPL to combine and redistribution with software that uses the MIT License. Any Arduino module that I'm reusing unchanged (e.g. WString.cpp) I've left as is with their existing GPL license and copyright. There are a few gray area modules (Arduino.h) where I reused things like the #defines and function prototypes, but omitted sections and dramatically rewrote the implementation. From the GPL point of view there's no way to contribute upstream and I'm certainly making the source available, so I MIT licensed those because they are compatible.
I've noticed that libPropelleruino is starting to get slow to compile because the SimpleIDE doesn't implement dependency management. The question that is starting to nag at me is that I may need to repackage into sub-libraries just like the Simple Libraries that come with SimpleIDE. I'm thinking of breaking it into libPropelleruinoCore (Arduino and wiring), libPropelleruinoMotors (Servo, Stepper, DC motors), libPropelleruinoComm (SPI, I2C). This would put a small burden on consumers versus dealing with a single library.
I'm a little confused. How is MIT compatible with GPL? GPL is "viral" but MIT is not for example.
Regarding libraries. Sorry about missing dependency management. It has never been on the improvement RADAR. Some day I may have time for it.
One of my high priorities is making SimpleIDE automatically find the libraries (there is primitive support now, but it does not recursively look at files). This would make it easy to add the different libraries you mention just by saying #include "PropellerinoCore" and #include "PropellerinoMotors" rather than needing to add the library to project manager. The only requirement for that to work would be specifying a library path. Today the default library path is SimpleIDE\Learn\Simple Libraries .... You could add your libraries under that path.
Once we have the auto-include-library feature working, it would enable a much simpler IDE.
I've noticed that libPropelleruino is starting to get slow to compile because the SimpleIDE doesn't implement dependency management. The question that is starting to nag at me is that I may need to repackage into sub-libraries just like the Simple Libraries that come with SimpleIDE. I'm thinking of breaking it into libPropelleruinoCore (Arduino and wiring), libPropelleruinoMotors (Servo, Stepper, DC motors), libPropelleruinoComm (SPI, I2C). This would put a small burden on consumers versus dealing with a single library.
IMHO: slow compiles is an acceptable trade off for ease of use -- I can always get a coffee during a long build, but if something becomes "too hard" ... well then....another siren may beckon
I'm a little confused. How is MIT compatible with GPL? GPL is "viral" but MIT is not for example.
There are two GPL licenses: the GPL and the lessor GPL. It is the lessor GPL that is MIT compatible while the GPL is not. The Arduino libraries have several different license conventions in them. A number are unlicensed without any copyright, some have an "as is" license, and all the rest seem to have the lessor GPL.
There are two GPL licenses: the GPL and the lessor GPL. It is the lessor GPL that is MIT compatible while the GPL is not. The Arduino libraries have several different license conventions in them. A number are unlicensed without any copyright, some have an "as is" license, and all the rest seem to have the lessor GPL.
Ah, Ok. Makes perfect sense for LGPL.
@TinkersALot, Parallax is thinking of you and others with all their Education decisions. Many such decisions tend to trip me for some reason. I offer cautious objections and deliver with hope.
@Jazzed, I find myself in a similar situation WRT contrasting various project deployment issues against complexity of use of a tool chain. The group I work for are currently packaging a small group of exe's, shared libraries, header files, idl files, documentation, example code, etc. into an API/SDK for our customers (currently I work in the medical device industry as a Software Engineer). So, we've, very recently, had the "ease of use vs. consideration-x" discussions. It is very fresh on my mind, and I always try to drive the solution toward ease of use. I could be wrong, but I've come to think that most will not use something that they think is "too hard" to use.
Parallax Education is driving all the Propeller-C efforts and the SimpleIDE front end in particular. The Education program examples and libraries were all written by Parallax Education although user library contributions are starting to roll in now.
The Parallax Education charter seems to be: make it possible to teach programming to students with absolutely no background. To support this idea, many things I value (and take for granted as well) are thrown out the window. Parallax knows what they want to make their program succeed and they have many customers (secondary school teachers, college professors, and students of many ages) who shape the end result.
I am very happy that Martin has enabled using Arduino code on Propeller with SimpleIDE.
I had never heard of "Wiring" language, but it does indeed look a lot like C
Here's a brief history of Arduino.
Back in 2001 the Processing open source project was created around the Java programming languages. Essentially it consisted of the language (Java), an IDE, and a framework for using that language to make it amenable to casual programming. The Wiring project started in 2003 to extend Processing to the C++ programming language and microcontroller programming. They created the core primitives (delay, digitalWrite, pinMode, etc) that you see in Arduino sketches. The Arduino project founded in 2005 built on top of Wiring and specified a hardware platform and I believe the boot loader.
Comments
Thanks Martin, that's quite generous. I'll PM it to you shortly.
I skimmed the code and I bet the port wouldn't be that hard. There's liberal use of the PROGMEM annotation that I've been ignoring up to now, becuase that's a NOP in Propeller CMM or LMM. However, it might confuse people so I should find a way to deal with it.
I plan to post base level 2 of my code this weekend. It will have the additional functions I mentioned above plus servo support.
When I compile this I get an error that those two functions are not defined. Which makes sense because I want the program that links with the library to do so. Here's what it looks like:
Anything I'm missing?
(2) Were those functions declared in a header file? Particularly in C++ it is important that the function prototypes match for all uses and declarations, because C++ will modify the function names to include parameter and return types. So for example, if one C++ file has: and it is linked with a C++ file that has: then there will probably be a linker error, because the function signatures won't match.
Eric
Those are to be defined in the program which links the library.
This is all good. I have a header file with the functions defined. If the program and library source are in the same project it all works. The problem is that those functions are not available while the library is being linked.
You don't build your program as a normal program (with a main) which uses libraries but rather as a library that provides setup and loop functions. The actual program being built is whatever contains main() which then get's linked against you app, which is a library, and other libraries.
http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
Attached is the project and dependent library:
Ticker.zip
EDIT: It seems that the options for removing unused code are allowing an elf file to be built without the main routine. If I remove these options I get the expected errors about the missing main routine, and also the missing library routines. I'm using an older version of the tools, so the unused code options may not be working correctly with that version.
1) A SimpleIDE library project must begin with lib, i.e. libPropelleruino (see Help -> SimpleIDE User Guide)
2) Functions main, setup, and loop must be in a separate libPropellerino library file
I've fixed those in the attached .zip file.
Looks like Serial.cpp/h are missing from the library. I resorted to puts("hello") for testing.
[code]
Project Directory: C:/Users/Martin/Documents/SimpleIDE/My Projects/Ticker/
propeller-elf-c++ -I . -L . -I ./library/libPropelleruino -L ./library/libPropelleruino/cmm/ -o cmm/Ticker.elf -Os -mcmm -m32bit-doubles -fno-exceptions -fno-rtti -ffunction-sections -fdata-sections -Wl,--gc-sections -Wl,--print-gc-sections Ticker.cpp -lPropelleruino
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.boot' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/cmm/short-doubles/spinboot.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.lmmkernel' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/cmm/short-doubles/_crt0.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.init' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/cmm/short-doubles/_crtbegin.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.fini' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/cmm/short-doubles/_crtbegin.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.setup' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.loop' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.startup._GLOBAL__sub_I_numberOfHorizontalDisplays' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.ctors' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.bss.width' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data.spacer' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data.wait' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data.tape' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.bss.matrix' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data.numberOfVerticalDisplays' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data.numberOfHorizontalDisplays' in file 'C:\Users\Martin\AppData\Local\Temp\ccOq9lGh.o'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX11constructorEss' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX10drawCircleEssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX16drawCircleHelperEsssht' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX16fillCircleHelperEssshst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX10fillCircleEssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX8drawLineEsssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX8drawRectEsssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX13drawFastVLineEssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX13drawFastHLineEssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX8fillRectEsssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX10fillScreenEt' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX13drawRoundRectEssssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX13fillRoundRectEssssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX12drawTriangleEsssssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX12fillTriangleEsssssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX10drawBitmapEssPKhsst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX8drawCharEsshtth' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX5writeEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX9setCursorEss' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX11setTextSizeEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX12setTextColorEt' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX12setTextColorEtt' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX11setTextWrapEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX11getRotationEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX11setRotationEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX13invertDisplayEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX5widthEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Adafruit_GFX6heightEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZL4font' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Adafruit_GFX.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel9drawPixelEsst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel11spiTransferEhh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel15doubleBufferingEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel10fillScreenEt' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel14drawLineHelperEsssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel8drawLineEsssst' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel12setIntensityEi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanel8shutdownEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN12Max72xxPanelC2Eiiiii' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTV12Max72xxPanel' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Max72xxPanel.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5writeEPKhj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEPK19__FlashStringHelper' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printERK6String' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printERK9Printable' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEPK19__FlashStringHelper' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnERK6String' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnERK9Printable' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print11printNumberEmh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEmi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEmi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEji' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEji' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEhi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEhi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEli' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEli' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEii' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEii' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print10printFloatEdh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print5printEdi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN5Print7printlnEdi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTV5Print' in file './library/libPropelleruino/cmm/\libPropelleruino.a(Print.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN3SPI5StartEii' in file './library/libPropelleruino/cmm/\libPropelleruino.a(SPI.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN3SPI9PostclockEi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(SPI.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN3SPI8ShiftoutEiiiii' in file './library/libPropelleruino/cmm/\libPropelleruino.a(SPI.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN3SPI8PreclockEi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(SPI.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN3SPI7ShiftinEiiii' in file './library/libPropelleruino/cmm/\libPropelleruino.a(SPI.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringD2Ev' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String10invalidateEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String12changeBufferEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String7reserveEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String4copyEPKcj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2EPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringaSERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2ERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringaSEPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2Emh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2Elh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2Ejh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2Eih' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2Ehh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringC2Ec' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEPKcj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEl' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String6concatEm' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperRK6String' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperh' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperi' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperl' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZplRK15StringSumHelperm' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String9compareToERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String6equalsERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String6equalsEPKc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6StringltERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6StringgtERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6StringleERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6StringgeERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String16equalsIgnoreCaseERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String10startsWithERKS_j' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String10startsWithERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String8endsWithERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String9setCharAtEjc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6StringixEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6StringixEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String6charAtEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String8getBytesEPhjj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String7indexOfEcj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String7indexOfEc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String7indexOfERKS_j' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String7indexOfERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String11lastIndexOfEcj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String11lastIndexOfEc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String11lastIndexOfERKS_j' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String11lastIndexOfERKS_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String9substringEjj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String9substringEj' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String7replaceEcc' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String7replaceERKS_S1_' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String11toLowerCaseEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String11toUpperCaseEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN6String4trimEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK6String5toIntEv' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.bss._ZZN6StringixEjE19dummy_writable_char' in file './library/libPropelleruino/cmm/\libPropelleruino.a(WString.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.strreverse' in file './library/libPropelleruino/cmm/\libPropelleruino.a(nonstdlib.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.itoa' in file './library/libPropelleruino/cmm/\libPropelleruino.a(nonstdlib.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.utoa' in file './library/libPropelleruino/cmm/\libPropelleruino.a(nonstdlib.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.ltoa' in file './library/libPropelleruino/cmm/\libPropelleruino.a(nonstdlib.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.ultoa' in file './library/libPropelleruino/cmm/\libPropelleruino.a(nonstdlib.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZL3num' in file './library/libPropelleruino/cmm/\libPropelleruino.a(nonstdlib.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.delay' in file './library/libPropelleruino/cmm/\libPropelleruino.a(wiring.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.delayMicroseconds' in file './library/libPropelleruino/cmm/\libPropelleruino.a(wiring.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.pinMode' in file './library/libPropelleruino/cmm/\libPropelleruino.a(wiring_digital.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.digitalWrite' in file './library/libPropelleruino/cmm/\libPropelleruino.a(wiring_digital.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.digitalRead' in file './library/libPropelleruino/cmm/\libPropelleruino.a(wiring_digital.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.setup' in file './library/libPropelleruino/cmm/\libPropelleruino.a(main.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.loop' in file './library/libPropelleruino/cmm/\libPropelleruino.a(main.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.startup.main' in file './library/libPropelleruino/cmm/\libPropelleruino.a(main.opp)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(pure.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_pure_virtual' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(pure.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv111__terminateEPFvvE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.gcc_except_table' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZSt9terminatev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv112__unexpectedEPFvvE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZSt10unexpectedv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZSt13set_terminatePFvvE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZSt14set_unexpectedPFvvE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_terminate.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data._ZN10__cxxabiv119__terminate_handlerE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_term_handler.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data._ZN10__cxxabiv120__unexpected_handlerE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_unex_handler.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(vterminate.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN9__gnu_cxx27__verbose_terminate_handlerEv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(vterminate.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.gcc_except_table' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(vterminate.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.bss._ZZN9__gnu_cxx27__verbose_terminate_handlerEvE11terminating' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(vterminate.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(cp-demangle.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(cp-demangle.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_get_exception_ptr' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_catch.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_begin_catch' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_catch.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_end_catch' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_catch.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZSt18uncaught_exceptionv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_catch.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.data' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNSt9exceptionD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNSt13bad_exceptionD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv115__forced_unwindD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv119__foreign_exceptionD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt9exception4whatEv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt13bad_exception4whatEv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv119__foreign_exceptionD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv115__forced_unwindD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNSt13bad_exceptionD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNSt9exceptionD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSSt9exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTISt9exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSSt13bad_exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTISt13bad_exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSN10__cxxabiv115__forced_unwindE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTIN10__cxxabiv115__forced_unwindE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSN10__cxxabiv119__foreign_exceptionE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTIN10__cxxabiv119__foreign_exceptionE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTVSt9exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTVSt13bad_exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTVN10__cxxabiv115__forced_unwindE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTVN10__cxxabiv119__foreign_exceptionE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_exception.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_get_globals_fast' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_globals.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_get_globals' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_globals.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.bss._ZL10eh_globals' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_globals.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL12read_sleb128PKhPl' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL21base_of_encoded_valuehP15_Unwind_Context' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL28read_encoded_value_with_basehjPKhPj' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info.constprop.5' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL15get_ttype_entryP16lsda_header_infom.constprop.6' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL20check_exception_specP16lsda_header_infoPKSt9type_infoPvl.constprop.4' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__gxx_personality_sj0' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.gcc_except_table' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_call_unexpected' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_personality.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZL23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_throw.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_throw' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_throw.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_rethrow' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_throw.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text.__cxa_current_exception_type' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(eh_type.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv120__si_class_type_infoD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv120__si_class_type_infoD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSN10__cxxabiv120__si_class_type_infoE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTIN10__cxxabiv120__si_class_type_infoE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTVN10__cxxabiv120__si_class_type_infoE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(si_class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNSt9type_infoD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt9type_info14__is_pointer_pEv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt9type_info15__is_function_pEv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNSt9type_infoD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt9type_infoeqERKS_' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNKSt9type_info10__do_catchEPKS_PPvj' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSSt9type_info' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTISt9type_info' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTVSt9type_info' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(tinfo.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv117__class_type_infoD2Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZN10__cxxabiv117__class_type_infoD0Ev' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.text._ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTSN10__cxxabiv117__class_type_infoE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'
c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/bin/ld.exe: Removing unused section '.rodata._ZTIN10__cxxabiv117__class_type_infoE' in file 'c:/users/martin/propgcc/bin/../lib/gcc/propeller-elf/4.6.1/../../../../propeller-elf/lib/cmm/short-doubles\libstdc++.a(class_type_info.o)'
c:/users/martin/propgcc/bin/../
If you use the compiler from the properties with -v in a command window, do you see propellergcc_v1_0_0_2054 ?
I only see the 4 byte issue with the old version. Here's the new version dump:
Also, can I call printf in a static constructor which happens before main is called? I'm testing the servo object and I don't see the output in the constructor but I do in main.
You might want check your PATH environment variable. That is a critical item. Please make sure you only have one path to the propeller-gcc bin set. Also, SimpleIDE should be restarted if there are changes to where the compiler is placed.
If you put printf in a static constructor, you may need to add a half second delay before it to give the terminal time to start up.
I think I only upgraded one machine because I downloaded the new version and I can do the upload with the full library. The neat part is I'm only at 8408 bytes for one of my tests. I've got nearly the entire core library, plus the servo, spi, and Adafruit graphics lib. That leave plenty of room for user programs because all the unused string functions get ignored. I need to add analogRead and software serial, but this is looking plenty doable. I'm using the Arduino samples as my unit tests and that's been helpful.
Ah, the delay makes perfect sense. It's not big deal as most of the real works starts at attach, so I can put in a delay before that is called.
@All, here's the latest library with a debugged servo object and my unit test. This unit test is the Arduino servo sweep example modified to use two servos and to add a #include <Arduino.h>. Really the only required deviation from the example is adding the #include because the Arduino IDE mashes that onto your program, while propgcc doesn't.
ServoTest.zip
NOTE: To use this library you need the newer version of propgcc referenced above to prune unused functions. The servo test for example ends up being over 5900 bytes which isn't bad, but the Arduino sketch is 2666 bytes which is more compact. It will be interesting to see if this multiple holds for large projects, or it is some one time cost on the Propeller.
(No, not that Martin, the OTHER Martin!)
But can I buy that touch screen yet?
(I'll convert to C when I can!)
(and that's saying a whole lot)
There is a "one time cost" involved. Every Propeller-GCC program needs a kernel that is about 2KB (this is true of Spin also, but it is hidden in ROM). So in this case the actual C code is about 4KB. If you use the non-standard Tiny lib in the example the code is about 4100 bytes. So in that case the actual C code is about 1100 bytes.
@Martin_H, we need away to preserve your work for future reference. Arduino code is GPL AFAIK, so the Parallax OBEX is not a suitable place (at the moment). Do you have a repository?
@cavelamb, I've seen those touch-screens at Radio-Shack. If you buy one, I will too and give you a hand if necessary.
I plan to eventually bite the bullet and create a project on code.google.com. I've thought about the licensing issue and all the new modules I'm writing are MIT licensed which is considered GPL compatible. This means I'm allowed by the GPL to combine and redistribution with software that uses the MIT License. Any Arduino module that I'm reusing unchanged (e.g. WString.cpp) I've left as is with their existing GPL license and copyright. There are a few gray area modules (Arduino.h) where I reused things like the #defines and function prototypes, but omitted sections and dramatically rewrote the implementation. From the GPL point of view there's no way to contribute upstream and I'm certainly making the source available, so I MIT licensed those because they are compatible.
I've noticed that libPropelleruino is starting to get slow to compile because the SimpleIDE doesn't implement dependency management. The question that is starting to nag at me is that I may need to repackage into sub-libraries just like the Simple Libraries that come with SimpleIDE. I'm thinking of breaking it into libPropelleruinoCore (Arduino and wiring), libPropelleruinoMotors (Servo, Stepper, DC motors), libPropelleruinoComm (SPI, I2C). This would put a small burden on consumers versus dealing with a single library.
I'm a little confused. How is MIT compatible with GPL? GPL is "viral" but MIT is not for example.
Regarding libraries. Sorry about missing dependency management. It has never been on the improvement RADAR. Some day I may have time for it.
One of my high priorities is making SimpleIDE automatically find the libraries (there is primitive support now, but it does not recursively look at files). This would make it easy to add the different libraries you mention just by saying #include "PropellerinoCore" and #include "PropellerinoMotors" rather than needing to add the library to project manager. The only requirement for that to work would be specifying a library path. Today the default library path is SimpleIDE\Learn\Simple Libraries .... You could add your libraries under that path.
Once we have the auto-include-library feature working, it would enable a much simpler IDE.
IMHO: slow compiles is an acceptable trade off for ease of use -- I can always get a coffee during a long build, but if something becomes "too hard" ... well then....another siren may beckon
There are two GPL licenses: the GPL and the lessor GPL. It is the lessor GPL that is MIT compatible while the GPL is not. The Arduino libraries have several different license conventions in them. A number are unlicensed without any copyright, some have an "as is" license, and all the rest seem to have the lessor GPL.
Ah, Ok. Makes perfect sense for LGPL.
@TinkersALot, Parallax is thinking of you and others with all their Education decisions. Many such decisions tend to trip me for some reason. I offer cautious objections and deliver with hope.
The Parallax Education charter seems to be: make it possible to teach programming to students with absolutely no background. To support this idea, many things I value (and take for granted as well) are thrown out the window. Parallax knows what they want to make their program succeed and they have many customers (secondary school teachers, college professors, and students of many ages) who shape the end result.
I am very happy that Martin has enabled using Arduino code on Propeller with SimpleIDE.
Trying to get a handle on this stuff...
http://arduino.cc/en/Reference/HomePage
and
http://arduino.cc/en/Reference/HomePage
And then the libraries?
http://arduino.cc/en/Hacking/LibraryTutorial
I think Martin picked the perfect avatar for this project!
Definately big brain stuff...
Here's a brief history of Arduino.
Back in 2001 the Processing open source project was created around the Java programming languages. Essentially it consisted of the language (Java), an IDE, and a framework for using that language to make it amenable to casual programming. The Wiring project started in 2003 to extend Processing to the C++ programming language and microcontroller programming. They created the core primitives (delay, digitalWrite, pinMode, etc) that you see in Arduino sketches. The Arduino project founded in 2005 built on top of Wiring and specified a hardware platform and I believe the boot loader.
tl;dr Wiring is C++