Skip to content

Why -g is included in the compilation sequence? #2998

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
anonymouse64 opened this issue Apr 18, 2015 · 6 comments
Closed

Why -g is included in the compilation sequence? #2998

anonymouse64 opened this issue Apr 18, 2015 · 6 comments
Assignees
Labels
Component: Core Related to the code for the standard Arduino API Component: Toolchain The tools used for compilation and uploading to Arduino boards

Comments

@anonymouse64
Copy link

Hello,
I am wondering why the Arduino software always compiles with the -g (debugging in native output) option.
Background:
I am using the version of avr-gcc (and other tools) included in the Arduino software release, and before 1.6.3, I didn't have any problem compiling without -g, but now I get a linker returning 255 or 5 (or other random numbers sometimes) error. Including -g with Arduino 1.6.3 causes it to compile fine. When I switch to using 1.6.1 or 1.6.0 (I haven't tried 1.6.2), the issue doesn't appear. Strangely it seems as though including the -g option causes the linker to find files it should have found anyways. I can post more details (including verbose compilation output) if necessary. (I am using Windows 8.1 for reference)
I realize my specific issue is likely with avr-gcc and related tools itself, but it raised my curiosity as to why -g is always included when compiling on Arduino.
Thanks,
Ian

@matthijskooijman
Copy link
Collaborator

I'm a bit confused. You say adding -g fixes a compilation issue, but also that -g is always included already. Those seem contradictory to me?

Posting verbose compilation output, preferable for both the working and failing cases would be useful. Posting the failing sketch code (preferable with as much code as possible removed) would also be useful.

@anonymouse64
Copy link
Author

Sorry, perhaps I should have been clearer. I am using the avr-gcc tools and utilities (like avrude, avr-gcc, etc.) to upload to an Arduino board without using the Java-based Arduino software. When I do this, I have never included -g, and it worked fine without -g, until I updated to version 1.6.3. Now, the compilation will "fail" when -g is omitted. Interestingly enough, it still produces the elf output.

I noticed that the Arduino Java software includes the -g option always when compiling and I was wondering why this is, and if there is a reason that debugging is turned on for the compilation sequence.

To reproduce the issue inside the Arduino Java software, open up platforms.txt inside
(arduino install location)/hardware/arduino/avr, and remove -g from all the compilation recipes for compiler.c.flags, compiler.cpp.flags and from compiler.s.flags.

Now, open up the Arduino Java software and try to compile just about any sketch (including a blank one as I have done so below), and it will fail due to a linker issue. The sketch I tried compiling below is as follows:

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

This is the output from the Arduino software

Arduino: 1.6.3 (Windows 8.1), Board: "Arduino Uno"

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\sketch_apr20a.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\sketch_apr20a.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\hooks.c -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\hooks.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\WInterrupts.c -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\WInterrupts.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring.c -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\wiring.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_analog.c -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\wiring_analog.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_digital.c -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\wiring_digital.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_pulse.c -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\wiring_pulse.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_shift.c -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\wiring_shift.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\abi.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\abi.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\CDC.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\CDC.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\HardwareSerial.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial0.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\HardwareSerial0.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial1.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\HardwareSerial1.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial2.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\HardwareSerial2.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial3.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\HardwareSerial3.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HID.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\HID.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\IPAddress.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\IPAddress.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\main.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\main.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\new.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\new.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Print.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\Print.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Stream.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\Stream.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Tone.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\Tone.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\USBCore.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\USBCore.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\WMath.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\WMath.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\WString.cpp -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\WString.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\hooks.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\WInterrupts.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\wiring.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\wiring_analog.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\wiring_digital.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\wiring_pulse.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\wiring_shift.c.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\abi.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\CDC.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\HardwareSerial.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\HardwareSerial0.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\HardwareSerial1.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\HardwareSerial2.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\HardwareSerial3.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\HID.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\IPAddress.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\main.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\new.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\Print.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\Stream.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\Tone.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\USBCore.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\WMath.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\WString.cpp.o 

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -w -Os -Wl,--gc-sections -mmcu=atmega328p -o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/sketch_apr20a.cpp.elf C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp\sketch_apr20a.cpp.o C:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp/core.a -LC:\Users\Ian\AppData\Local\Temp\build4408645479113764614.tmp -lm 

collect2.exe: error: ld returned 5 exit status

Error compiling.

When I look at the linker output by passing --verbose as an option to the linker in the last elf compilation command, it turns out that for some reason the linker doesn't find certain .o files in libc.a.

The linker output below is when I added --verbose to the linker options (via -Wl,--verbose).

C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Working-iansasus-6556-11380-26>"C:\Program Files (x86)\Arduino\hardware\tools\avr\bin"\avr-gcc -o "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Working-iansasus-6556-11380-26\SketchTemplate.cpp.elf" -v -Os -Wall -mmcu=atmega328p -Wl,--gc-sections,--verbose   "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\SketchTemplate.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\abi.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\CDC.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial0.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial1.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial2.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial3.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HID.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\hooks.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\IPAddress.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\main.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\new.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Print.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Stream.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Tone.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\USBCore.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\WInterrupts.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_analog.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_digital.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_pulse.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_shift.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\WMath.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\WString.cpp.o" -L"C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe"    2>&1 
Using built-in specs.
COLLECT_GCC=C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avr-gcc
COLLECT_LTO_WRAPPER=c:/program\ files\ (x86)/arduino/hardware/tools/avr/bin/../libexec/gcc/avr/4.8.1/lto-wrapper.exe
Target: avr
Configured with: ../gcc-4.8.1/configure --enable-fixed-point --enable-languages=c,c++ --prefix=/c/jenkins/workspace/toolchain-avr-3.4.5-new-windows/objdir --enable-long-long --disable-nls --disable-checking --disable-libssp --disable-libada --disable-shared --enable-lto --with-avrlibc=yes --with-dwarf2 --disable-doc --target=avr
Thread model: single
gcc version 4.8.1 (GCC) 
COMPILER_PATH=c:/program files (x86)/arduino/hardware/tools/avr/bin/../libexec/gcc/avr/4.8.1/;c:/program files (x86)/arduino/hardware/tools/avr/bin/../libexec/gcc/;c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/
LIBRARY_PATH=c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5/;c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/;c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/;c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/;c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/
COLLECT_GCC_OPTIONS='-o' 'C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Working-iansasus-6556-11380-26\SketchTemplate.cpp.elf' '-v' '-Os' '-Wall' '-mmcu=atmega328p' '-LC:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe'
 c:/program files (x86)/arduino/hardware/tools/avr/bin/../libexec/gcc/avr/4.8.1/collect2.exe -m avr5 -Tdata 0x800100 -o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Working-iansasus-6556-11380-26\SketchTemplate.cpp.elf c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o -LC:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe -Lc:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5 -Lc:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5 -Lc:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1 -Lc:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc -Lc:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib --gc-sections --verbose C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\SketchTemplate.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\abi.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\CDC.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial0.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial1.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial2.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial3.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HID.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\hooks.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\IPAddress.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\main.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\new.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Print.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Stream.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Tone.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\USBCore.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\WInterrupts.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_analog.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_digital.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_pulse.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_shift.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\WMath.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\WString.cpp.o --start-group -lgcc -lm -lc --end-group
GNU ld (GNU Binutils) 2.24.51.20140729
  Supported emulations:
   avr2
   avr1
   avr25
   avr3
   avr31
   avr35
   avr4
   avr5
   avr51
   avr6
   avrxmega1
   avrxmega2
   avrxmega3
   avrxmega4
   avrxmega5
   avrxmega6
   avrxmega7
opened script file c:\program files (x86)\arduino\hardware\tools\avr\avr\bin\../lib\ldscripts/avr5.xn
using external linker script:
==================================================
/* Script for -n: mix text and data on same page */
OUTPUT_FORMAT("elf32-avr","elf32-avr","elf32-avr")
OUTPUT_ARCH(avr:5)
MEMORY
{
  text   (rx)   : ORIGIN = 0, LENGTH = 128K
  data   (rw!x) : ORIGIN = 0x800060, LENGTH = 0xffa0
  eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
  fuse      (rw!x) : ORIGIN = 0x820000, LENGTH = 1K
  lock      (rw!x) : ORIGIN = 0x830000, LENGTH = 1K
  signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K
}
SECTIONS
{
  /* Read-only sections, merged into text segment: */
  .hash          : { *(.hash)       }
  .dynsym        : { *(.dynsym)     }
  .dynstr        : { *(.dynstr)     }
  .gnu.version   : { *(.gnu.version)    }
  .gnu.version_d   : { *(.gnu.version_d)    }
  .gnu.version_r   : { *(.gnu.version_r)    }
  .rel.init      : { *(.rel.init)       }
  .rela.init     : { *(.rela.init)  }
  .rel.text      :
    {
      *(.rel.text)
      *(.rel.text.*)
      *(.rel.gnu.linkonce.t*)
    }
  .rela.text     :
    {
      *(.rela.text)
      *(.rela.text.*)
      *(.rela.gnu.linkonce.t*)
    }
  .rel.fini      : { *(.rel.fini)       }
  .rela.fini     : { *(.rela.fini)  }
  .rel.rodata    :
    {
      *(.rel.rodata)
      *(.rel.rodata.*)
      *(.rel.gnu.linkonce.r*)
    }
  .rela.rodata   :
    {
      *(.rela.rodata)
      *(.rela.rodata.*)
      *(.rela.gnu.linkonce.r*)
    }
  .rel.data      :
    {
      *(.rel.data)
      *(.rel.data.*)
      *(.rel.gnu.linkonce.d*)
    }
  .rela.data     :
    {
      *(.rela.data)
      *(.rela.data.*)
      *(.rela.gnu.linkonce.d*)
    }
  .rel.ctors     : { *(.rel.ctors)  }
  .rela.ctors    : { *(.rela.ctors) }
  .rel.dtors     : { *(.rel.dtors)  }
  .rela.dtors    : { *(.rela.dtors) }
  .rel.got       : { *(.rel.got)        }
  .rela.got      : { *(.rela.got)       }
  .rel.bss       : { *(.rel.bss)        }
  .rela.bss      : { *(.rela.bss)       }
  .rel.plt       : { *(.rel.plt)        }
  .rela.plt      : { *(.rela.plt)       }
  /* Internal text space or external memory.  */
  .text   :
  {
    *(.vectors)
    KEEP(*(.vectors))
    /* For data that needs to reside in the lower 64k of progmem.  */
     *(.progmem.gcc*)
    /* PR 13812: Placing the trampolines here gives a better chance
       that they will be in range of the code that uses them.  */
    . = ALIGN(2);
     __trampolines_start = . ;
    /* The jump trampolines for the 16-bit limited relocs will reside here.  */
    *(.trampolines)
     *(.trampolines*)
     __trampolines_end = . ;
     *(.progmem*)
    . = ALIGN(2);
    /* For future tablejump instruction arrays for 3 byte pc devices.
       We don't relax jump/call instructions within these sections.  */
    *(.jumptables)
     *(.jumptables*)
    /* For code that needs to reside in the lower 128k progmem.  */
    *(.lowtext)
     *(.lowtext*)
     __ctors_start = . ;
     *(.ctors)
     __ctors_end = . ;
     __dtors_start = . ;
     *(.dtors)
     __dtors_end = . ;
    KEEP(SORT(*)(.ctors))
    KEEP(SORT(*)(.dtors))
    /* From this point on, we don't bother about wether the insns are
       below or above the 16 bits boundary.  */
    *(.init0)  /* Start here after reset.  */
    KEEP (*(.init0))
    *(.init1)
    KEEP (*(.init1))
    *(.init2)  /* Clear __zero_reg__, set up stack pointer.  */
    KEEP (*(.init2))
    *(.init3)
    KEEP (*(.init3))
    *(.init4)  /* Initialize data and BSS.  */
    KEEP (*(.init4))
    *(.init5)
    KEEP (*(.init5))
    *(.init6)  /* C++ constructors.  */
    KEEP (*(.init6))
    *(.init7)
    KEEP (*(.init7))
    *(.init8)
    KEEP (*(.init8))
    *(.init9)  /* Call main().  */
    KEEP (*(.init9))
    *(.text)
    . = ALIGN(2);
     *(.text.*)
    . = ALIGN(2);
    *(.fini9)  /* _exit() starts here.  */
    KEEP (*(.fini9))
    *(.fini8)
    KEEP (*(.fini8))
    *(.fini7)
    KEEP (*(.fini7))
    *(.fini6)  /* C++ destructors.  */
    KEEP (*(.fini6))
    *(.fini5)
    KEEP (*(.fini5))
    *(.fini4)
    KEEP (*(.fini4))
    *(.fini3)
    KEEP (*(.fini3))
    *(.fini2)
    KEEP (*(.fini2))
    *(.fini1)
    KEEP (*(.fini1))
    *(.fini0)  /* Infinite loop after program termination.  */
    KEEP (*(.fini0))
     _etext = . ;
  }  > text
  .data          :
  {
     PROVIDE (__data_start = .) ;
    /* --gc-sections will delete empty .data. This leads to wrong start
       addresses for subsequent sections because -Tdata= from the command
       line will have no effect, see PR13697.  Thus, keep .data  */
    KEEP (*(.data))
     *(.data*)
    *(.rodata)  /* We need to include .rodata here if gcc is used */
     *(.rodata*) /* with -fdata-sections.  */
    *(.gnu.linkonce.d*)
    . = ALIGN(2);
     _edata = . ;
     PROVIDE (__data_end = .) ;
  }  > data AT> text
  .bss   : AT (ADDR (.bss))
  {
     PROVIDE (__bss_start = .) ;
    *(.bss)
     *(.bss*)
    *(COMMON)
     PROVIDE (__bss_end = .) ;
  }  > data
   __data_load_start = LOADADDR(.data);
   __data_load_end = __data_load_start + SIZEOF(.data);
  /* Global data not cleared after reset.  */
  .noinit  :
  {
     PROVIDE (__noinit_start = .) ;
    *(.noinit*)
     PROVIDE (__noinit_end = .) ;
     _end = . ;
     PROVIDE (__heap_start = .) ;
  }  > data
  .eeprom  :
  {
    /* See .data above...  */
    KEEP(*(.eeprom*))
     __eeprom_end = . ;
  }  > eeprom
  .fuse  :
  {
    KEEP(*(.fuse))
    KEEP(*(.lfuse))
    KEEP(*(.hfuse))
    KEEP(*(.efuse))
  }  > fuse
  .lock  :
  {
    KEEP(*(.lock*))
  }  > lock
  .signature  :
  {
    KEEP(*(.signature*))
  }  > signature
  /* Stabs debugging sections.  */
  .stab 0 : { *(.stab) }
  .stabstr 0 : { *(.stabstr) }
  .stab.excl 0 : { *(.stab.excl) }
  .stab.exclstr 0 : { *(.stab.exclstr) }
  .stab.index 0 : { *(.stab.index) }
  .stab.indexstr 0 : { *(.stab.indexstr) }
  .comment 0 : { *(.comment) }
  .note.gnu.build-id : { *(.note.gnu.build-id) }
  /* DWARF debug sections.
     Symbols in the DWARF debugging sections are relative to the beginning
     of the section so we begin them at 0.  */
  /* DWARF 1 */
  .debug          0 : { *(.debug) }
  .line           0 : { *(.line) }
  /* GNU DWARF 1 extensions */
  .debug_srcinfo  0 : { *(.debug_srcinfo) }
  .debug_sfnames  0 : { *(.debug_sfnames) }
  /* DWARF 1.1 and DWARF 2 */
  .debug_aranges  0 : { *(.debug_aranges) }
  .debug_pubnames 0 : { *(.debug_pubnames) }
  /* DWARF 2 */
  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
  .debug_abbrev   0 : { *(.debug_abbrev) }
  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }
  .debug_frame    0 : { *(.debug_frame) }
  .debug_str      0 : { *(.debug_str) }
  .debug_loc      0 : { *(.debug_loc) }
  .debug_macinfo  0 : { *(.debug_macinfo) }
  /* SGI/MIPS DWARF 2 extensions */
  .debug_weaknames 0 : { *(.debug_weaknames) }
  .debug_funcnames 0 : { *(.debug_funcnames) }
  .debug_typenames 0 : { *(.debug_typenames) }
  .debug_varnames  0 : { *(.debug_varnames) }
  /* DWARF 3 */
  .debug_pubtypes 0 : { *(.debug_pubtypes) }
  .debug_ranges   0 : { *(.debug_ranges) }
  /* DWARF Extension.  */
  .debug_macro    0 : { *(.debug_macro) }
}

==================================================
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o succeeded
c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\SketchTemplate.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\SketchTemplate.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\abi.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\abi.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\CDC.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\CDC.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial0.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial0.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial1.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial1.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial2.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial2.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial3.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial3.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HardwareSerial.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HID.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\HID.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\hooks.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\hooks.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\IPAddress.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\IPAddress.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\main.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\main.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\new.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\new.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Print.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Print.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Stream.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Stream.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Tone.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\Tone.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\USBCore.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\USBCore.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\WInterrupts.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\WInterrupts.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_analog.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_analog.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_digital.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_digital.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_pulse.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_pulse.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_shift.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\wiring_shift.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\WMath.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\WMath.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\WString.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\WString.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe/libgcc.so failed
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\libgcc.a failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5/libgcc.so failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a succeeded
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_mulsi3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_udivmodsi4.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_divmodsi4.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_negsi2.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_exit.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_tablejump.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_copy_data.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_clear_bss.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_ctors.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_muluhisi3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_umulhisi3.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe/libm.so failed
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\libm.a failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5/libm.so failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libm.a failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/libm.so failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a succeeded
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)addsf3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)addsf3x.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)cmpsf2.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)divsf3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)divsf3x.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fixsfsi.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fixunssfsi.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)floatsisf.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_cmp.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_inf.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_nan.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_pscA.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_pscB.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_round.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_split3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_zero.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)gesf2.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)mulsf3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)mulsf3x.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)unordsf2.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe/libc.so failed
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile2af337dd75314edbac79a8c7a123a4fe\libc.a failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5/libc.so failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libc.a failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/libc.so failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a succeeded
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)calloc.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)dtostrf.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)malloc.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)random.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)realloc.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)abort.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)atof.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)atol.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)isspace.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)tolower.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)toupper.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strcpy_P.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strlen_P.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)memcmp.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)memcpy.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)memmove.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)memset.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strchr.o
(c:/progcollect2.exe: error: ld returned 5 exit status

Now, when I include -g when compiling, this is the verbose linker output

Input

"C:\Program Files (x86)\Arduino\hardware\tools\avr\bin"\avr-gcc -o "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Working-iansasus-8004-7124-26\SketchTemplate.cpp.elf" -v -Os -Wall -mmcu=atmega328p -Wl,--gc-sections,--verbose   "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\SketchTemplate.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\abi.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\CDC.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial0.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial1.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial2.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial3.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HID.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\hooks.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\IPAddress.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\main.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\new.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Print.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Stream.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Tone.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\USBCore.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WInterrupts.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_analog.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_digital.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_pulse.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_shift.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WMath.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WString.cpp.o" -L"C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404"   2>&1

Output:


C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Working-iansasus-8004-7124-26>"C:\Program Files (x86)\Arduino\hardware\tools\avr\bin"\avr-gcc -o "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Working-iansasus-8004-7124-26\SketchTemplate.cpp.elf" -v -Os -Wall -mmcu=atmega328p -Wl,--gc-sections,--verbose   "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\SketchTemplate.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\abi.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\CDC.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial0.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial1.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial2.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial3.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HID.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\hooks.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\IPAddress.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\main.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\new.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Print.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Stream.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Tone.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\USBCore.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WInterrupts.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_analog.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_digital.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_pulse.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_shift.c.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WMath.cpp.o" "C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WString.cpp.o" -L"C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404"    2>&1 
Using built-in specs.
COLLECT_GCC=C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avr-gcc
COLLECT_LTO_WRAPPER=c:/program\ files\ (x86)/arduino/hardware/tools/avr/bin/../libexec/gcc/avr/4.8.1/lto-wrapper.exe
Target: avr
Configured with: ../gcc-4.8.1/configure --enable-fixed-point --enable-languages=c,c++ --prefix=/c/jenkins/workspace/toolchain-avr-3.4.5-new-windows/objdir --enable-long-long --disable-nls --disable-checking --disable-libssp --disable-libada --disable-shared --enable-lto --with-avrlibc=yes --with-dwarf2 --disable-doc --target=avr
Thread model: single
gcc version 4.8.1 (GCC) 
COMPILER_PATH=c:/program files (x86)/arduino/hardware/tools/avr/bin/../libexec/gcc/avr/4.8.1/;c:/program files (x86)/arduino/hardware/tools/avr/bin/../libexec/gcc/;c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/
LIBRARY_PATH=c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5/;c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/;c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/;c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/;c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/
COLLECT_GCC_OPTIONS='-o' 'C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Working-iansasus-8004-7124-26\SketchTemplate.cpp.elf' '-v' '-Os' '-Wall' '-mmcu=atmega328p' '-LC:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404'
 c:/program files (x86)/arduino/hardware/tools/avr/bin/../libexec/gcc/avr/4.8.1/collect2.exe -m avr5 -Tdata 0x800100 -o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Working-iansasus-8004-7124-26\SketchTemplate.cpp.elf c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o -LC:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404 -Lc:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5 -Lc:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5 -Lc:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1 -Lc:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc -Lc:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib --gc-sections --verbose C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\SketchTemplate.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\abi.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\CDC.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial0.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial1.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial2.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial3.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HID.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\hooks.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\IPAddress.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\main.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\new.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Print.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Stream.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Tone.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\USBCore.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WInterrupts.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_analog.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_digital.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_pulse.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_shift.c.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WMath.cpp.o C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WString.cpp.o --start-group -lgcc -lm -lc --end-group
GNU ld (GNU Binutils) 2.24.51.20140729
  Supported emulations:
   avr2
   avr1
   avr25
   avr3
   avr31
   avr35
   avr4
   avr5
   avr51
   avr6
   avrxmega1
   avrxmega2
   avrxmega3
   avrxmega4
   avrxmega5
   avrxmega6
   avrxmega7
opened script file c:\program files (x86)\arduino\hardware\tools\avr\avr\bin\../lib\ldscripts/avr5.xn
using external linker script:
==================================================
/* Script for -n: mix text and data on same page */
OUTPUT_FORMAT("elf32-avr","elf32-avr","elf32-avr")
OUTPUT_ARCH(avr:5)
MEMORY
{
  text   (rx)   : ORIGIN = 0, LENGTH = 128K
  data   (rw!x) : ORIGIN = 0x800060, LENGTH = 0xffa0
  eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
  fuse      (rw!x) : ORIGIN = 0x820000, LENGTH = 1K
  lock      (rw!x) : ORIGIN = 0x830000, LENGTH = 1K
  signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K
}
SECTIONS
{
  /* Read-only sections, merged into text segment: */
  .hash          : { *(.hash)       }
  .dynsym        : { *(.dynsym)     }
  .dynstr        : { *(.dynstr)     }
  .gnu.version   : { *(.gnu.version)    }
  .gnu.version_d   : { *(.gnu.version_d)    }
  .gnu.version_r   : { *(.gnu.version_r)    }
  .rel.init      : { *(.rel.init)       }
  .rela.init     : { *(.rela.init)  }
  .rel.text      :
    {
      *(.rel.text)
      *(.rel.text.*)
      *(.rel.gnu.linkonce.t*)
    }
  .rela.text     :
    {
      *(.rela.text)
      *(.rela.text.*)
      *(.rela.gnu.linkonce.t*)
    }
  .rel.fini      : { *(.rel.fini)       }
  .rela.fini     : { *(.rela.fini)  }
  .rel.rodata    :
    {
      *(.rel.rodata)
      *(.rel.rodata.*)
      *(.rel.gnu.linkonce.r*)
    }
  .rela.rodata   :
    {
      *(.rela.rodata)
      *(.rela.rodata.*)
      *(.rela.gnu.linkonce.r*)
    }
  .rel.data      :
    {
      *(.rel.data)
      *(.rel.data.*)
      *(.rel.gnu.linkonce.d*)
    }
  .rela.data     :
    {
      *(.rela.data)
      *(.rela.data.*)
      *(.rela.gnu.linkonce.d*)
    }
  .rel.ctors     : { *(.rel.ctors)  }
  .rela.ctors    : { *(.rela.ctors) }
  .rel.dtors     : { *(.rel.dtors)  }
  .rela.dtors    : { *(.rela.dtors) }
  .rel.got       : { *(.rel.got)        }
  .rela.got      : { *(.rela.got)       }
  .rel.bss       : { *(.rel.bss)        }
  .rela.bss      : { *(.rela.bss)       }
  .rel.plt       : { *(.rel.plt)        }
  .rela.plt      : { *(.rela.plt)       }
  /* Internal text space or external memory.  */
  .text   :
  {
    *(.vectors)
    KEEP(*(.vectors))
    /* For data that needs to reside in the lower 64k of progmem.  */
     *(.progmem.gcc*)
    /* PR 13812: Placing the trampolines here gives a better chance
       that they will be in range of the code that uses them.  */
    . = ALIGN(2);
     __trampolines_start = . ;
    /* The jump trampolines for the 16-bit limited relocs will reside here.  */
    *(.trampolines)
     *(.trampolines*)
     __trampolines_end = . ;
     *(.progmem*)
    . = ALIGN(2);
    /* For future tablejump instruction arrays for 3 byte pc devices.
       We don't relax jump/call instructions within these sections.  */
    *(.jumptables)
     *(.jumptables*)
    /* For code that needs to reside in the lower 128k progmem.  */
    *(.lowtext)
     *(.lowtext*)
     __ctors_start = . ;
     *(.ctors)
     __ctors_end = . ;
     __dtors_start = . ;
     *(.dtors)
     __dtors_end = . ;
    KEEP(SORT(*)(.ctors))
    KEEP(SORT(*)(.dtors))
    /* From this point on, we don't bother about wether the insns are
       below or above the 16 bits boundary.  */
    *(.init0)  /* Start here after reset.  */
    KEEP (*(.init0))
    *(.init1)
    KEEP (*(.init1))
    *(.init2)  /* Clear __zero_reg__, set up stack pointer.  */
    KEEP (*(.init2))
    *(.init3)
    KEEP (*(.init3))
    *(.init4)  /* Initialize data and BSS.  */
    KEEP (*(.init4))
    *(.init5)
    KEEP (*(.init5))
    *(.init6)  /* C++ constructors.  */
    KEEP (*(.init6))
    *(.init7)
    KEEP (*(.init7))
    *(.init8)
    KEEP (*(.init8))
    *(.init9)  /* Call main().  */
    KEEP (*(.init9))
    *(.text)
    . = ALIGN(2);
     *(.text.*)
    . = ALIGN(2);
    *(.fini9)  /* _exit() starts here.  */
    KEEP (*(.fini9))
    *(.fini8)
    KEEP (*(.fini8))
    *(.fini7)
    KEEP (*(.fini7))
    *(.fini6)  /* C++ destructors.  */
    KEEP (*(.fini6))
    *(.fini5)
    KEEP (*(.fini5))
    *(.fini4)
    KEEP (*(.fini4))
    *(.fini3)
    KEEP (*(.fini3))
    *(.fini2)
    KEEP (*(.fini2))
    *(.fini1)
    KEEP (*(.fini1))
    *(.fini0)  /* Infinite loop after program termination.  */
    KEEP (*(.fini0))
     _etext = . ;
  }  > text
  .data          :
  {
     PROVIDE (__data_start = .) ;
    /* --gc-sections will delete empty .data. This leads to wrong start
       addresses for subsequent sections because -Tdata= from the command
       line will have no effect, see PR13697.  Thus, keep .data  */
    KEEP (*(.data))
     *(.data*)
    *(.rodata)  /* We need to include .rodata here if gcc is used */
     *(.rodata*) /* with -fdata-sections.  */
    *(.gnu.linkonce.d*)
    . = ALIGN(2);
     _edata = . ;
     PROVIDE (__data_end = .) ;
  }  > data AT> text
  .bss   : AT (ADDR (.bss))
  {
     PROVIDE (__bss_start = .) ;
    *(.bss)
     *(.bss*)
    *(COMMON)
     PROVIDE (__bss_end = .) ;
  }  > data
   __data_load_start = LOADADDR(.data);
   __data_load_end = __data_load_start + SIZEOF(.data);
  /* Global data not cleared after reset.  */
  .noinit  :
  {
     PROVIDE (__noinit_start = .) ;
    *(.noinit*)
     PROVIDE (__noinit_end = .) ;
     _end = . ;
     PROVIDE (__heap_start = .) ;
  }  > data
  .eeprom  :
  {
    /* See .data above...  */
    KEEP(*(.eeprom*))
     __eeprom_end = . ;
  }  > eeprom
  .fuse  :
  {
    KEEP(*(.fuse))
    KEEP(*(.lfuse))
    KEEP(*(.hfuse))
    KEEP(*(.efuse))
  }  > fuse
  .lock  :
  {
    KEEP(*(.lock*))
  }  > lock
  .signature  :
  {
    KEEP(*(.signature*))
  }  > signature
  /* Stabs debugging sections.  */
  .stab 0 : { *(.stab) }
  .stabstr 0 : { *(.stabstr) }
  .stab.excl 0 : { *(.stab.excl) }
  .stab.exclstr 0 : { *(.stab.exclstr) }
  .stab.index 0 : { *(.stab.index) }
  .stab.indexstr 0 : { *(.stab.indexstr) }
  .comment 0 : { *(.comment) }
  .note.gnu.build-id : { *(.note.gnu.build-id) }
  /* DWARF debug sections.
     Symbols in the DWARF debugging sections are relative to the beginning
     of the section so we begin them at 0.  */
  /* DWARF 1 */
  .debug          0 : { *(.debug) }
  .line           0 : { *(.line) }
  /* GNU DWARF 1 extensions */
  .debug_srcinfo  0 : { *(.debug_srcinfo) }
  .debug_sfnames  0 : { *(.debug_sfnames) }
  /* DWARF 1.1 and DWARF 2 */
  .debug_aranges  0 : { *(.debug_aranges) }
  .debug_pubnames 0 : { *(.debug_pubnames) }
  /* DWARF 2 */
  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
  .debug_abbrev   0 : { *(.debug_abbrev) }
  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }
  .debug_frame    0 : { *(.debug_frame) }
  .debug_str      0 : { *(.debug_str) }
  .debug_loc      0 : { *(.debug_loc) }
  .debug_macinfo  0 : { *(.debug_macinfo) }
  /* SGI/MIPS DWARF 2 extensions */
  .debug_weaknames 0 : { *(.debug_weaknames) }
  .debug_funcnames 0 : { *(.debug_funcnames) }
  .debug_typenames 0 : { *(.debug_typenames) }
  .debug_varnames  0 : { *(.debug_varnames) }
  /* DWARF 3 */
  .debug_pubtypes 0 : { *(.debug_pubtypes) }
  .debug_ranges   0 : { *(.debug_ranges) }
  /* DWARF Extension.  */
  .debug_macro    0 : { *(.debug_macro) }
}

==================================================
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o succeeded
c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\SketchTemplate.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\SketchTemplate.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\abi.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\abi.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\CDC.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\CDC.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial0.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial0.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial1.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial1.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial2.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial2.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial3.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial3.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HardwareSerial.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HID.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\HID.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\hooks.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\hooks.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\IPAddress.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\IPAddress.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\main.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\main.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\new.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\new.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Print.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Print.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Stream.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Stream.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Tone.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\Tone.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\USBCore.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\USBCore.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WInterrupts.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WInterrupts.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_analog.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_analog.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_digital.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_digital.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_pulse.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_pulse.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_shift.c.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\wiring_shift.c.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WMath.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WMath.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WString.cpp.o succeeded
C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\WString.cpp.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404/libgcc.so failed
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\libgcc.a failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5/libgcc.so failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a succeeded
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_mulsi3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_udivmodsi4.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_divmodsi4.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_negsi2.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_exit.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_tablejump.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_copy_data.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_clear_bss.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_ctors.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_muluhisi3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_umulhisi3.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404/libm.so failed
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\libm.a failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5/libm.so failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libm.a failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/libm.so failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a succeeded
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)addsf3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)addsf3x.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)cmpsf2.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)divsf3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)divsf3x.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fixsfsi.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fixunssfsi.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)floatsisf.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_cmp.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_inf.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_nan.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_pscA.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_pscB.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_round.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_split3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)fp_zero.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)gesf2.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)mulsf3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)mulsf3x.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a)unordsf2.o
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404/libc.so failed
attempt to open C:\Users\Ian\AppData\Local\Temp\arduinocompile3fa812c4ac4e47b98b7c966130131404\libc.a failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5/libc.so failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libc.a failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/libc.so failed
attempt to open c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a succeeded
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)calloc.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)dtostrf.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)malloc.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)random.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)realloc.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)abort.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)atof.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)atol.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)isspace.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)tolower.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)toupper.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strcpy_P.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strlen_P.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)memcmp.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)memcpy.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)memmove.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)memset.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strchr.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strcmp.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strcpy.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strncmp.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strncpy.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strrchr.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strstr.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)itoa.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)itoa_ncheck.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)ltoa.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)ltoa_ncheck.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)mulsi10.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)ultoa.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)ultoa_ncheck.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)utoa.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)utoa_ncheck.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)dtoa_prf.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strtod.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)ftoa_engine.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)cty_isfalse.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strncasecmp_P.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strrev.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)errno.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_mulshisi3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_prologue.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_epilogue.o

You will notice in the latter case, the linker finds the following files:

(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strcmp.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strcpy.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strncmp.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strncpy.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strrchr.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strstr.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)itoa.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)itoa_ncheck.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)ltoa.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)ltoa_ncheck.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)mulsi10.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)ultoa.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)ultoa_ncheck.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)utoa.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)utoa_ncheck.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)dtoa_prf.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strtod.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)ftoa_engine.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)cty_isfalse.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strncasecmp_P.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)strrev.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a)errno.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_mulshisi3.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_prologue.o
(c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a)_epilogue.o

@ffissore ffissore added Component: Core Related to the code for the standard Arduino API Component: Toolchain The tools used for compilation and uploading to Arduino boards labels Apr 22, 2015
@anonymouse64
Copy link
Author

I think that this problem is related to/explained by #5539

Is that correct? Is the -g option used so all necessary information is included in the elf?

@matthijskooijman
Copy link
Collaborator

Looking at the compiler output, this could very well be a compiler bug (given that the linker exits without any error message). @anonymouse64, is this problem still occuring for you with the most recent version? I think we might have upgraded the compiler version since then.

As for the issue you link to, that might indeed solve this issue, if the compiler is somehow confused by having debugging symbols in the object files without -g being passed to the linker.

As for why -g is passed in the first place, that allows using an (external) debugger, or disassembling the binary and dumping the related source code in between (though I've seen that LTO messes up the correctness of the debugging symbols in some places).

@PaulStoffregen
Copy link
Contributor

PaulStoffregen commented Feb 10, 2017

The -g debub symbols also allows the compiler to show more meaningful error messages. Or at least they did in earlier compiler versions. That's the reason Arduino has always used -g while compiling.

@anonymouse64
Copy link
Author

Yes, I have confirmed that it now works with the updated toolchain in Arduino 1.8.1.
Thanks for the explanation!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Core Related to the code for the standard Arduino API Component: Toolchain The tools used for compilation and uploading to Arduino boards
Projects
None yet
Development

No branches or pull requests

5 participants