реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Обновил YAGARTO - получил undefined reference to `__dso_handle'
Stran-nik
сообщение Jul 3 2008, 14:18
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 7-03-08
Пользователь №: 35 718



Нид хелп!

Установил я сегодня свежую YAGARTO с yagarto.de - теперь при линковке любого C++ проекта (пробовал и примеры от Martin Thomas) получаю:
In function `__static_initialization_and_destruction_0': ................ undefined reference to `__dso_handle'
Со старой версией все линковалось нормально.
Куда копать?
Гугл сегодня целый день копаю - пока результатов нет.

P.S: линкую с помощью arm-elf-g++
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 3 2008, 17:08
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Stran-nik @ Jul 3 2008, 17:18) *
In function `__static_initialization_and_destruction_0': ................ undefined reference to `__dso_handle'
Получал похожее. Если разрешить этот __dso_handle, то arm-gcc прилинковывает в этом случае чуть ли не всю библиотеку (во всяком случае видел там и все функции работы с файлами и множество других). Размер прошивки получается мегабайты. Выяснил, что к такому поведению приводит объявление статически размещенного объекта, у которого прописан явный деструктор. Но это было с довольно старой версией, так что может и не ваш случай.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Stran-nik
сообщение Jul 4 2008, 09:21
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 7-03-08
Пользователь №: 35 718



Цитата(Сергей Борщ @ Jul 3 2008, 21:08) *
Выяснил, что к такому поведению приводит объявление статически размещенного объекта, у которого прописан явный деструктор. Но это было с довольно старой версией, так что может и не ваш случай.


Да.. спрятал явные деструкторы глобальных статических объектов (в общем то они и не нужны) - все скомпилилось.
Спасиб за наводку. a14.gif
Go to the top of the page
 
+Quote Post
alx2
сообщение Jul 4 2008, 09:34
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(Stran-nik @ Jul 4 2008, 14:21) *
Да.. спрятал явные деструкторы глобальных статических объектов (в общем то они и не нужны) - все скомпилилось.
Я просто дал ему этот __dso_handle чтобы линкер мегабайты библиотек не тянул:

void * __dso_handle = 0;


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 4 2008, 15:52
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(alx2 @ Jul 4 2008, 12:34) *
Я просто дал ему этот __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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016