Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Максимальный размер static-массива 
V
    Опции темы
borisbn
Дата 2.7.2012, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



Цитата(500mhz @  2.7.2012,  17:04 Найти цитируемый пост)
Я понял в чем проблема )))
В заголовке ELF размер секции 4 байтами определяется (при 32битном ельфе) так что туда 12гб по определению не влезут )))

хммм. но у меня 64-х битный линукс. Такой же g++ (я это выяснил путём вывода sizeof( void* ) = 8)
Но вообще-то, очень похоже, т.к. как только я уменьшил размер массива ровно до 4 ГБ - всё стало собираться.
А как тогда сказать g++, чтобы эльф стал 64-х битным ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
math64
Дата 3.7.2012, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: нет
Всего: 72



borisbn,  а как у Вас со временем линковки? 
Временные файлы создаются по умолчанию в /var/tmp/ - т.е. в Вашем случае на /dev/sdg2/, но можно переназначить сделав /var/tmp/ символической ссылкой на каталог в /dev/sdg3/ (права доступа должны соответствовать)
Попробуйте создать массив 6GB - если получится (места для него у Вас точно хватит), то заголовок ELF не при чём
PM   Вверх
borisbn
Дата 3.7.2012, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



Ура!!! Решил.
для gcc нужен ключ -fpic -mcmodel=large
Нашёл тут - http://stackoverflow.com/questions/6296837...th-2-gb-of-code
вот этот ответ - http://stackoverflow.com/a/6297704/667266

Это сообщение отредактировал(а) borisbn - 3.7.2012, 10:22


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
500mhz
Дата 3.7.2012, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



И? 12 гб выделяется?


--------------------

PM MAIL ICQ   Вверх
borisbn
Дата 3.7.2012, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



Цитата(500mhz @  3.7.2012,  10:10 Найти цитируемый пост)
12 гб выделяется? 

во всяком случае программа линкуется без ошибок...
правда, не запускается: у меня временно забрали 16 ГБ... есть только 4... как только вернут - проверю и отпишусь


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
borisbn
Дата 3.7.2012, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



Блин.... То понос, то золотуха... Теперь у меня линукс не видит больше 4 гигов памяти...
Но это - отдельная тема. Кстати, господа линуксоиды, я её создал - http://forum.vingrad.ru/forum/act-ST/f-135...4/unread-1.html - посмотрите, если не сложно. Спасибо.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
borisbn
Дата 27.7.2012, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



P.S. оказывается 
Цитата
-mcmodel=large
Generate code for the large model: This model makes no assumptions about addresses and sizes of sections. Currently GCC does not implement this model.

но, используя -mcmodel=medium всё заработало. 
Код
printf( "size = %d MB\n", sizeof( large_array ) / 1024 / 1024 );

выводит
Цитата
size = 12240  MB



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | GNU toolchain | Следующая тема »


 




[ Время генерации скрипта: 0.1327 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.