It looks like you might have two different versions of the AVR-GCC tools installed, since one is looking in /usr/libexec and the other is looking in /usr/local
Older versions of the tools don't have support for the ATmega328.
i installed avr-gcc-4.3.2-r3 from portage and compiled avr-libc-1.6.6 by hand (it should support atmega328). but i don't know how to tell ld to look in /usr/local/avr for libs - i tried setting LD_LIBRARY_PATH and LIBRARY_PATH variables but that didn't help.
i also searched inside arduino directory for a place where the linker is called to pass it library path directly but i couldn't find it.