URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6208
[ Назад ]

Исходное сообщение
"Компилятор GCC"

Отправлено OptimusPrime , 27-Фев-07 21:41 
Вопрос такой, я компилирую файл с помощью gcc, в результате в исполняемом ELF-файле есть записи вида "GCC: (GNU) 3.2.3 20030502 (Red Hat Linux 3.2.3-54)". Перебирал всевозможные опции, убирал всю отладочную информацию (ключ "-s"), всё равно остаются эти записи. Чем больше объектных файлов линкую, тем больше этих записей. Можно ли их прибить и для чего они? Спасиб :)

Содержание

Сообщения в этом обсуждении
"Компилятор GCC"
Отправлено MKuznetsov , 27-Фев-07 21:55 
>Вопрос такой, я компилирую файл с помощью gcc, в результате в исполняемом
>ELF-файле есть записи вида "GCC: (GNU) 3.2.3 20030502 (Red Hat Linux
>3.2.3-54)". Перебирал всевозможные опции, убирал всю отладочную информацию (ключ "-s"), всё
>равно остаются эти записи. Чем больше объектных файлов линкую, тем больше
>этих записей. Можно ли их прибить и для чего они? Спасиб
>:)

прибить - можно..
грызть доки по теме binutils,
в частности objcopy опция --remove-section


"Компилятор GCC"
Отправлено OptimusPrime , 27-Фев-07 23:18 
>>Вопрос такой, я компилирую файл с помощью gcc, в результате в исполняемом
>>ELF-файле есть записи вида "GCC: (GNU) 3.2.3 20030502 (Red Hat Linux
>>3.2.3-54)". Перебирал всевозможные опции, убирал всю отладочную информацию (ключ "-s"), всё
>>равно остаются эти записи. Чем больше объектных файлов линкую, тем больше
>>этих записей. Можно ли их прибить и для чего они? Спасиб
>>:)
>
>прибить - можно..
>грызть доки по теме binutils,
>в частности objcopy опция --remove-section


Спасибо большое. С помощью утилиты objdump вывел все секции. Эта называлась .comment. И с помощью objcopy прибил её. Теперь эльф чистенький.


"Компилятор GCC"
Отправлено vic , 28-Фев-07 12:26 
>Спасибо большое. С помощью утилиты objdump вывел все секции. Эта называлась .comment.
>И с помощью objcopy прибил её. Теперь эльф чистенький.

Чисто из любопытства - а зачем?


"Компилятор GCC"
Отправлено DeadMustdie , 01-Мрт-07 09:13 
>Чисто из любопытства - а зачем?

Место люди економят. Ибо жадные.


"Компилятор GCC"
Отправлено int_0dh , 02-Мрт-07 14:35 
>Вопрос такой, я компилирую файл с помощью gcc, в результате в исполняемом
>ELF-файле есть записи вида "GCC: (GNU) 3.2.3 20030502 (Red Hat Linux
>3.2.3-54)". Перебирал всевозможные опции, убирал всю отладочную информацию (ключ "-s"), всё
>равно остаются эти записи. Чем больше объектных файлов линкую, тем больше
>этих записей. Можно ли их прибить и для чего они? Спасиб
>:)
прибить можно (например man objcopy на предмет -R .note, можно сказать ld что они не нужны)
содержат сведения о компиляторе (для информации) -  системно не используется


"Компилятор GCC"
Отправлено Michelnok , 02-Мрт-07 16:28 
>и для чего они?

Иногда полезно знать, чем было откомпилировано.


"GCC вызывает не ту функцию."
Отправлено Guru , 06-Мрт-07 15:13 
Дело обстоит следующим образом: в проекте присутствует множественное наследование.
В производном классе есть фунции GetParam() и SetParam(). В коде написан вызов функции GetParam(), а  на самом деле вызывается SetParam(). Я искал в гугле. Нашел те же вопросы, но не нашел ответов. А статической функцию сделать не могу! Кто подскажет?

Проект на Mac OS. Версия GCC i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1


"GCC вызывает не ту функцию."
Отправлено DeadMustdie , 06-Мрт-07 18:57 
>Дело обстоит следующим образом: в проекте присутствует множественное наследование.
>В производном классе есть фунции GetParam() и SetParam(). В коде написан вызов
>функции GetParam(), а  на самом деле вызывается SetParam(). Я искал
>в гугле. Нашел те же вопросы, но не нашел ответов. А
>статической функцию сделать не могу! Кто подскажет?
>
>Проект на Mac OS. Версия GCC i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1


Никогда такого не видел, а видел я много всякого разного.
Sample в студию, если можно.


"GCC вызывает не ту функцию."
Отправлено vic , 07-Мрт-07 12:39 
>>Дело обстоит следующим образом: в проекте присутствует множественное наследование.
>>В производном классе есть фунции GetParam() и SetParam(). В коде написан вызов
>>функции GetParam(), а  на самом деле вызывается SetParam(). Я искал
>>в гугле. Нашел те же вопросы, но не нашел ответов. А
>>статической функцию сделать не могу! Кто подскажет?
>>
>>Проект на Mac OS. Версия GCC i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1
>
>
>Никогда такого не видел, а видел я много всякого разного.

к примеру, когда объява класса с виртуальными методами попадает под pragma pack(1), вызываецца все че угодно)) для макоськи видимо как вариант съезжает указатель в vtable (которая хде находицца?..)

>Sample в студию, если можно.
+1