Цитата(Drozd2 @ Mar 21 2013, 15:38)

На всякий случай прикрепляю скрипт линкера. Может в нем погрешность?
Какая-то странная секция - "CONSTRUCTORS". Современные компиляторы помещают конструкторы в секцию ".init_array". Хотя у вас всё равно конструкторы не вызываются из стартапа.
Посмотрите ещё
вот этот скрипт для примера, может быть что-то там найдёте полезного.
Цитата(Drozd2 @ Mar 21 2013, 15:38)

Malloc нормально работает без кучи, а больше ничего и не надо было.
Так не бывает. Malloc как раз выдаёт память из кучи. Куча обычно начинается с позиции _end, определённой в скрипте линкера.
Чтобы контролировать это, попробуйте собрать свой проект с ключом линкера -nostartfiles. Линкер должен будет заругаться на неопределённые имена типа _sbrk() и проч. Тут вы ему подсунете свои заглушки для системных функций,
примерно как здесь.
Если бы я знал, что такое электричество...