Решил написать небольшую программу на С++ (никаких фундаментальных задач, пока просто для изучения).
Взял маленький проект состоящий из файлов cstartup.S lowlevel.c syscalls.c (для ф-ии printf) и собственно main.c
Все это компилится и собирается и даже работает, если используется обычный С.
Переименовываю main.c в main.cpp изменяю makefile для компилятора C++ и начинается веселье.
Компиляция проходит нормально (без ошибок и предупреждений), а вот линкер выдает ошибки: "undefined reference to `(здесь имя функции)'" и такие ошибки для всех функций, которые реализованы в main.cpp.
выписка из "Cross Reference Table".
в случае, если собирался проект на С:
dabt_handler main.o
cstartup.o
в случае, если собирался проект на С++:
dabt_handler cstartup.o
dabt_handler() main.o
Аналогично для других функций.
То есть, во втором случае функции используемые в файлах разные

тех. данные: контроллер АТ91SAM7A3, компилятор arm-elf-gcc, arm-elf-g++
Опции компилятора и линковщика:
для обычных файлов: arm-elf-gcc -c -g -mcpu=arm7tdmi -Wall -I./include -DAT91SAM7A3 lowlevel.c -o lowlevel.o
для ++ файлов: arm-elf-g++ -c -mcpu=arm7tdmi -I./include -gdwarf-2 -fdata-sections -Wall -Wcast-align -Wimplicit -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wshadow -Wunused -Wa,-adhlns=main.lst -fno-rtti -fno-exceptions main.cpp -o main.o
линковщик: arm-elf-gcc -Wl,--cref -nostartfiles -T elf32-littlearm.lds -lc -lgcc -lstdc++ -Ttext 0x100000 -Tdata 0x200000 -n -o DUT_flash.elf cstartup.o lowlevel.o syscalls.o main.o
Кто знает как бороться с данной проблемой, поделитель опытом.
Спасибо.