LINUX.ORG.RU

Релиз binutils 2.20

 , , ,


0

0

Спустя примерно год разработки вышла новая версия пакета , с которого начинается построение любого дистрибутива Linux (и не только)

Из изменений:

  • Поддержка плагинов для bfd , что позволяет добавлять поддержку новых форматов на «лету» (в частности для линкера gold)
  • Добавлены опции objcopy --file-alignment, --heap, --image-base, --section-alignment, --insn-width , --stack и --subsystem
  • --as-needed теперь будет линковать динамическую библиотеку , если она будет содержать undefined символы в обычных объектах или других динамических библиотеках, во втором случае библиотека не будет слинкована , если она найдена в DT_NEEDED записи тех библиотек , которые уже слинкованы.
  • Убрана поддержка архитектур PowerPC booke32/64

    Изменения в as и ld:

  • Поддержка «globally unique in the entire process» символов gnu_unique_object на GNU/Linux (STB_GNU_UNIQUE symbol binding также добавлено в ld)
  • .inst[.nw] pseudo-ops для ARM (позволяет использовать вставку opcode указанных не как text, а in binary)
  • Common symbol alignment для PE формата, ld также будет способен поддерживать простейшие ELF versioning скрипты для формата PE
  • discriminator operand for the .loc directive (DWARF)
  • Поддержка архитектур Sunplus score, Lattice Mico32 (lm32) , Xilinx Microblaze

другие изменения можно посмотреть по ссылкам: binutils gas ld

>>> страница проекта

добавлю то что поддержка плагинов в gold будет реализовывать Link Time Optimization (LTO) в ветке GCC 4.5, LTO будет затрагивать link-time оптимизацию (вот ведь тавтология..) между объектными файлами, вне зависимости от оригинального языка программирования

Sylvia ★★★★★
() автор топика
Ответ на: комментарий от devl547

в -9999 уже 20.51 (т.е. то что станет 2.21) , оно не совсем стабильно как мне показалось...

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

В целом приятная новость. Надо будет собрать binutils с поддержкой gold и попробывать его.

fedkoff
()

Отличная новость! Только поддержку архитектур каких-то странных включили, я о таких и не знаю ничего. Оно вообще надо?

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

>Только поддержку архитектур каких-то странных включили, я о таких и не знаю ничего. Оно вообще надо?

Тебе нет, это же очевидно.

s0n1k ★★
()

хм, Silvy а есть ли альтернативы binutils открытые? так для общего развития интерессно.

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

а ядро как собирать ?) gcc же все равно использует binutils

Само собирается — GCC 4.2.1 входит в состав системы, но и его скоро выпилят и заменят на LLVM/CLang, а GCC 4.x останется только в портах для сборки ПО, а не системы.

Кстати:

> pkg_info | grep gcc
gcc-4.3.5.20091004  GNU Compiler Collection 4.3
gccxml-0.6.0        XML output extension to GCC
> pkg_info -rR gcc-4.3.5.20091004
Information for gcc-4.3.5.20091004:

Depends on:
Dependency: libgmp-4.3.1
Dependency: mpfr-2.4.1_1
Dependency: libiconv-1.13.1
Что в общем-то не нужно по-большому счёту, но GCC 4.3.x (или >4.2.x) нужны для сборки Deluge. В сборке остального ПО из портов используется в основном системный GCC 4.2.1.
> cc --version
cc (GCC) 4.2.1 20070719  [FreeBSD]
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

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

> cc --version
cc (GCC) 4.2.1 20070719 [FreeBSD]

который использует binutils,
так что выкиньте свой пакетный менеджер, лжет он ) если есть gcc , то есть и binutils, и уж не знаю что там clang использует для assemble-link (кстати что там?) , но вполне возможно что те же GNU binutils ;)

Sylvia ★★★★★
() автор топика
Ответ на: комментарий от iZEN

а ядро как собирать ?) gcc же все равно использует binutils

Само собирается

Этот человек позволяет себе что-то вякать о «линуксоедах», когда сам насквозь некомпетентен? /r/ useragent.

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

У gcc есть ключ (по-моему -V) выводить выполняемые команды. Собери какой-нибудь hello world на C и запости результаты. Что-то мне подсказывает, что там проявятся as и ld, которые, наверняка будут из binutils.

По-идее в gcc родные только препроцессор и компилятор (который генерирует из c-файла ассемблерный код). Ассемблер и линкер сторонние (почти всегда из binutils, хотя теоретически могут быть любыми, совместимыми с AT&T-ассемблером и форматом твоих исполняемых файлов, динамических и статических библиотек), библиотека языка C тоже сторонняя (например, glibc, или что-там-у-тебя).

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

-v

>запости результаты.


на paste.org.ru ... а то выхлоп большой

>там проявятся as и ld, которые, наверняка будут из binutils


как минимум as
GNU C /argenta/ version 4.3.4 (i586-sylvia-linux)
compiled by GNU C version 4.3.4, GMP version 4.3.1, MPFR version 2.4.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: ee520efeef1d29d89ac7cca977eba0cc
COLLECT_GCC_OPTIONS='-v' '-o' '/tmp/hello-world' '-mtune=pentium-m' '-march=pentium-m'
as -V -Qy -o /tmp/cccTU9ib.o /tmp/cci8vJCa.s
GNU assembler version 2.20 (i586-sylvia-linux) using BFD version (/Meya Argenta/) 2.20


>glibc

в bsd своя libc

А вообще да, GCC все равно что использовать, хотя в 99% случаев это GNU binutils

Sylvia ★★★★★
() автор топика

Вернулась-таки? :) А мне, вишь, пока тебя не было - звезду дали :) Давай больше не будет ругаться?

По сабжу: новость приятная, особенно пункты 1 и 3. Хотя жаль, что выкромсали частично PPC.

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

Собери какой-нибудь hello world на C и запости результаты.

А чего собирать, если в исходниках /usr/src/gnu/usr.bin/binutils/Makefile:

# $FreeBSD: src/gnu/usr.bin/binutils/Makefile,v 1.29.30.1 2009/08/03 08:13:06 kensmith Exp $

SUBDIR=		libiberty libbfd libopcodes libbinutils \
		addr2line ar as ld nm objcopy objdump ranlib readelf \
		size strings strip doc

.include <bsd.subdir.mk>

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

> GCC 4.3.x (или >4.2.x) нужны для сборки Deluge.

Вот уж не ожидал от питона...

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

>так что выкиньте свой пакетный менеджер, лжет он ) если есть gcc , то есть и binutils

FreeBSD "пакетный менеджер" не ковыряет систему, в отличие от Linux, и выкинуть его я могу лишь при целевой сборке системы из исходников без поддержки портов (например, для embedded, % echo 'WITHOUT_PKGTOOLS=true' >> /etc/src.conf).

Отсутствие pkg_* на десктопе == ССЗБ и LFS.

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

Дайте пожалста ссылку на список изменений. Я прочитал новость и ничего не понял. Первая секция вообще к чему относится? Только к gold?

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

Мм.. откопал файлик NEWS в архиве, но что-то его содержимое и текст новости не похожи :)

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

Похоже что да. И молодец! Не стала принимать близко к сердцу выходки всяких придурков.

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

хм.... а в этом случае, интересно как был востановлен логин? а как же: Pass the point of no return?

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

>Нашел, чему радоваться.

Как же не радоваться, если GNU-поделия в составе world FreeBSD собираются целый час, а, собственно, сама система и ядро — полчаса.

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

> а еще там ТРИ ссылки на списки изменений, плохо смотрите )
oh shi~, и правда. Надо больше спать :(

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

Ты не имеешь морального права говорить "GNU-поделия", потому что не можешь предложить ничего лучшего.
Ты не имеешь морального права говорить "GNU-поделия", не разбираяся в теме.
Наконец, чтобы называть утилиты GNU "поделиями", ты должен иметь большой опыт их использования, равно как и опыт использования какой-то их альтернативы. У тебя же нет опыта использования ни того, ни другого.
Будь мужиком, забанься.

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

> Ты не имеешь морального права говорить "GNU-поделия", потому что не можешь предложить ничего лучшего.

Это IT-аналог знаменитого "Сперва добейся"?

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

>Ты не имеешь морального права говорить "GNU-поделия", потому что не можешь предложить ничего лучшего.

http://minnie.tuhs.org/UnixTree/
— в каком месте там ГНУС?

>Ты не имеешь морального права говорить "GNU-поделия", не разбираяся в теме.


>Наконец, чтобы называть утилиты GNU "поделиями", ты должен иметь большой опыт их использования, равно как и опыт использования какой-то их альтернативы.


Да, чтобы сказать о еде, что она хороша и имеет приятный вкус, не обязательно быть поваром. Ну а GNU-поделями я пользуюсь с 2006 года. До этого пользовался ПО под EULA, CDDL, MPL и EPL. Могу сказать, что GNU является монополией в нише инструментов системной разработки в области Open Source, что не идёт на пользу сообществу в целом. Альтернатива в виде LLVM/CLang будет струёй бензина в загнивающее и попахивающее смрадом кучу GNU toolchain.

iZEN ★★★★★
()

вроде недавно новость была

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

> в каком месте там ГНУС?
А почему он там должен быть?

> Альтернатива в виде LLVM/CLang будет струёй бензина в загнивающее и попахивающее смрадом кучу GNU toolchain

Конкретно LLVM/CLang не заменит весь toolchain, только GCC. Интересно, в каком состоянии будет этот LLVM/CLang, когда обеспечит сравнимый перечень поддерживаемых платформ и сравнимое качество кода (внимание, я не говорю, что GCC генерирует хороший код).
А если binutils - тоже загнивающая и попахивающая смрадом куча, то лучшим способом избавиться от неё, наверное, будет не переписывание, а отказ от ELF?

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

нет, она еще не вернулась, продолжайте спать.

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

> > а ядро как собирать ?) gcc же все равно использует binutils
>

> Само собирается


Скажи прямо, что про /usr/src/contrib/binutils ты не знаешь.

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

> добавлю то что поддержка плагинов в gold будет реализовывать Link Time Optimization (LTO) в ветке GCC 4.5, LTO будет затрагивать link-time оптимизацию (вот ведь тавтология..) между объектными файлами, вне зависимости от оригинального языка программирования

а оно сможет например развируализовать функцию, если у класса нет наследников?

и вообще, где про это почитать обзорно?

www_linux_org_ru ★★★★★
()

LTO <trolling>(который в MSVC есть уже давным-давно)</trolling> неслабо увеличивает время компиляции <trolling>(хотя GCC и так не самый быстрый компилятор)</trolling>, зато на критичных к быстродействию задачах может (теоретически) дать неплохой профит за счёт встраивания находящихся в другом модуле функций и т.п..

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

>Скажи прямо, что про /usr/src/contrib/binutils ты не знаешь.

В первый раз услышал о его важности только в этой теме. До этого особого значения binutils не придавал (ну, есть, значит есть, что тут такого?).

iZEN ★★★★★
()

> например, для embedded, % echo 'WITHOUT_PKGTOOLS=true' >> /etc/src.conf

Даже в самом захудалом embedded дистрибутиве Linux есть минималистичные легковесные пакетные менеджеры, типа opkg...

Решительно не понимаю эту маргинальную ненависть ко всему что относится к GNU... Разве это как-то ограничивает тех же самых проприетарщиков? Вообще никак ведь.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от anonymous

> LTO неслабо увеличивает время компиляции (хотя GCC и так не самый быстрый компилятор)

Если я ничего не путаю, gold то ли в 2, то ли в 5 раз быстрее ld. Т.е. gold + lto вполне может оказаться быстрее, чем просто ld.

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

время компоновки некритично,
lto его увеличит как раз за счет того что будет проводиться дополнительная оптимизация на этом этапе

IPO в Intel CC например может занимать прилично времени...

Sylvia ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

GPL3 ограничивает. Именно поэтому в FreeBSD base system обновлять binutils не будут, а просто заменят. Надо полагать, что на это http://elftoolchain.sourceforge.net

Кстати elftoolchain будет и для Debian.

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