Stran-nik 0 3 июля, 2008 Опубликовано 3 июля, 2008 · Жалоба Нид хелп! Установил я сегодня свежую YAGARTO с yagarto.de - теперь при линковке любого C++ проекта (пробовал и примеры от Martin Thomas) получаю: In function `__static_initialization_and_destruction_0': ................ undefined reference to `__dso_handle' Со старой версией все линковалось нормально. Куда копать? Гугл сегодня целый день копаю - пока результатов нет. P.S: линкую с помощью arm-elf-g++ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 3 июля, 2008 Опубликовано 3 июля, 2008 · Жалоба In function `__static_initialization_and_destruction_0': ................ undefined reference to `__dso_handle'Получал похожее. Если разрешить этот __dso_handle, то arm-gcc прилинковывает в этом случае чуть ли не всю библиотеку (во всяком случае видел там и все функции работы с файлами и множество других). Размер прошивки получается мегабайты. Выяснил, что к такому поведению приводит объявление статически размещенного объекта, у которого прописан явный деструктор. Но это было с довольно старой версией, так что может и не ваш случай. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stran-nik 0 4 июля, 2008 Опубликовано 4 июля, 2008 · Жалоба Выяснил, что к такому поведению приводит объявление статически размещенного объекта, у которого прописан явный деструктор. Но это было с довольно старой версией, так что может и не ваш случай. Да.. спрятал явные деструкторы глобальных статических объектов (в общем то они и не нужны) - все скомпилилось. Спасиб за наводку. :a14: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alx2 0 4 июля, 2008 Опубликовано 4 июля, 2008 · Жалоба Да.. спрятал явные деструкторы глобальных статических объектов (в общем то они и не нужны) - все скомпилилось.Я просто дал ему этот __dso_handle чтобы линкер мегабайты библиотек не тянул: void * __dso_handle = 0; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 4 июля, 2008 Опубликовано 4 июля, 2008 · Жалоба Я просто дал ему этот __dso_handle чтобы линкер мегабайты библиотек не тянул: void * __dso_handle = 0; Я пробовал что-то подобное: LDFLAGS += -Wl,--defsym,__dso_handle=0 и получил описанный выше результат. Повторил эксперимент с void * __dso_handle = 0; - то же яйцо, только в профиль. С деструктором размер хекса 13992, без него - 3960. arm-elf-gcc 4.2.2 из Yagarto 200804008 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться