LINUX.ORG.RU
ФорумTalks

Зачем/почему при компиляции вставляют кучу ненужного?

 ,


0

3

Допустим берем какой-нибудь бинарник, скомпилированный на убунте (или федоре, дебиане, генте):

strings /opt/sublime_text_3/sublime_text | grep GCC
GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2

strings ololo | grep GCC
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)

Про Дебиан точно не скажу, но кажется он тоже таким страдает. Федора 100%, запомнил когда еще сидел на ней. Эти даже круче убунты, у них там Red Hat GCC™ (всеправазачищенытолькопопробуйуродматьтвою) 2015 своя атмосфера.

Компилим какой-нибудь код на Арче:

strings a.out | grep GCC
GCC: (GNU) 5.2.0

Все эти писькомерки как-то влияют на отладку? Зачем?


Ответ на: комментарий от melkor217

Видимо вопрос «зачем столько раз писать версию компилятора?».

ekzotech ★★★★
()

Может, дело в версии gcc?

x3al ★★★★★
()

Потом можно вылавливать халявщиков, кросс-компилирующих под MacOS X и iOS, например.

Пересобери дистрибутивный gcc с generic версией, чтобы не палиться.

slapin ★★★★★
()
Ответ на: комментарий от melkor217

19ubuntu1

Версия компилятора это, на примере саблайма, 4.8.2

jori
() автор топика
Ответ на: комментарий от slapin

Как видно из примера с Арчем, я не палю дистрибутив, только версия gcc.

jori
() автор топика
Ответ на: комментарий от eabi

strip -g --strip-unneeded ololo
$> strings ololo | grep GCC
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)
GCC: (GNU) 3.4.6 (Gentoo 3.4.6-r2, ssp-3.4.6-1.0, pie-8.7.10)

jori
() автор топика

TDM-GCC-64> strings.exe strings.exe | grep.exe -wae gcc

GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (tdm64-1) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2
GCC: (GNU) 4.9.2

pacify ★★★★★
()
Последнее исправление: pacify (всего исправлений: 1)
unix@unix-pc:~$ strings /bin/bash | grep -i gcc
unix@unix-pc:~$ cat /etc/issue
Ubuntu 14.04.2 LTS \n \l
...
root@unixcvs /v/www# strings /usr/local/bin/fish | grep -i clang
root@unixcvs /v/www# strings /usr/local/bin/fish | grep -i llvm
root@unixcvs /v/www# strings /usr/local/bin/fish | grep -i gcc
libgcc_s.so.1
GCC_3.0
root@unixcvs /v/www# uname -a
FreeBSD unixcvs.local 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 22:51:51 UTC 2014     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  i386

ЧЯДНТ?

svr4
()
Ответ на: комментарий от pacify

Да-да, mingw тоже вставляет. Хотя на Арче не так подробно как на других дистрах. В этом суть.

jori
() автор топика
Последнее исправление: jori (всего исправлений: 1)
Ответ на: комментарий от sudopacman

Таки да, в mingw bash добивает автодополнением до полного имени. Впрочем, если написать просто grep - поймёт.

svr4
()
Ответ на: комментарий от svr4

svr4> ЧЯДНТ?

Пользуешься еретическим GCC, а не православным бсдшным шлангом.

Quasar ★★★★★
()
Ответ на: комментарий от drull

drull> А зачем cygwin-у система инициализации? :)

Там нет поддержки systemd? Непорядок! Надо портировать systemd на Windows 10 и включить туда замену cygwin!

Quasar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.