You may be correct if you use your commandline, but what does the IDE tells you if you do compile ?
The unchanged downloaded version tells me the following:
/home/drizzt/Programme/arduino-1.0.1/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=101 -I/home/drizzt/Programme/arduino-1.0.1/hardware/arduino/cores/arduino -I/home/drizzt/Programme/arduino-1.0.1/hardware/arduino/variants/standard -I/home/drizzt/Programme/arduino-1.0.1/libraries/SPI -I/home/drizzt/Programme/arduino-1.0.1/libraries/Ethernet -I/home/drizzt/Programme/arduino-1.0.1/libraries/Metro -I/home/drizzt/Programme/arduino-1.0.1/libraries/Flash -I/home/drizzt/Programme/arduino-1.0.1/libraries/Wire -I/home/drizzt/Programme/arduino-1.0.1/libraries/Adafruit_PWMServoDriver /tmp/build7825702190261685714.tmp/cd_regal_controller_tcp.cpp -o /tmp/build7825702190261685714.tmp/cd_regal_controller_tcp.cpp.o
and if I run
/home/drizzt/Programme/arduino-1.0.1/hardware/tools/avr/bin/avr-g++ -v
from the commandline I get the following output
Using built-in specs.
Target: avr
Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --disable-libssp --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=avr
Thread model: single
gcc version 4.3.2 (GCC)
Whereas the following command
avr-g++ -v
gives the following results
Es werden eingebaute Spezifikationen verwendet.
COLLECT_GCC=/usr/x86_64-pc-linux-gnu/avr/gcc-bin/4.5.3/avr-g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/avr/4.5.3/lto-wrapper
Ziel: avr
Konfiguriert mit: /var/tmp/portage/cross-avr/gcc-4.5.3-r2/work/gcc-4.5.3/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/avr/gcc-bin/4.5.3 --includedir=/usr/lib/gcc/avr/4.5.3/include --datadir=/usr/share/gcc-data/avr/4.5.3 --mandir=/usr/share/gcc-data/avr/4.5.3/man --infodir=/usr/share/gcc-data/avr/4.5.3/info --with-gxx-include-dir=/usr/lib/gcc/avr/4.5.3/include/g++-v4 --host=x86_64-pc-linux-gnu --target=avr --build=x86_64-pc-linux-gnu --disable-altivec --disable-fixed-point --with-ppl --with-cloog --disable-ppl-version-check --with-cloog-include=/usr/include/cloog-ppl --disable-lto --enable-nls --without-included-gettext --with-system-zlib --disable-werror --enable-secureplt --enable-multilib --disable-libmudflap --disable-libssp --disable-libgomp --with-python-dir=/share/gcc-data/avr/4.5.3/python --enable-checking=release --disable-libgcj --enable-languages=c,c++ --enable-shared --disable-threads --disable-bootstrap --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.5.3-r2 p1.1, pie-0.4.7'
Thread-Modell: single
gcc-Version 4.5.3 (Gentoo 4.5.3-r2 p1.1, pie-0.4.7)
As one clearly can see the stock IDE is not using the system wide compiler as long as the bundled one hasn't been disabled. I disable it by renaming
/home/drizzt/Programme/arduino-1.0.1/hardware/tools/avr
to
/home/drizzt/Programme/arduino-1.0.1/hardware/tools/avr.orig
It can also be removed.
This is one of the reasons why I choose the title 'pitfalls' since these things are not obvious if you do not inspect the compiler output carefully and start to wonder why your perfect running code starts to fail.
regards