Игорь Пашев -

Aug. 21st, 2012

05:47 pm

Previous Entry Add to Memories Tell A Friend Next Entry
(10 комментариев | Оставить комментарий)

Comments:

[User Picture]
From:[info]ketmar
Date:August 24th, 2012 - 12:07 pm
(Link)
э… а какие, собственно, возможности линкера надо проверять? нет, я действительно озадачен. вот сколько делаю всякое — от приветмиров до немалых проектов, — ни разу мне не было это интересно. линкер умеет линковать. ar умеет ar'овать. что ещё надо-то?

и да, проверять систему — самый простой и нормальный вариант. а если юзер воткнул себе в систему что-то нестандартное, то его не затруднит и накормить сборщик нужными флагами.

есть, впрочем, ещё более расово верный вариант: «нам нужен gcc не ниже x.y.z и вот такой вот набор библиотек. все остальные берут трубу и барабан, после чего с весёлым маршем отправляются нахуй.» решает две задачи сразу: позволяет избавиться от идиотских конфигураторов и избавляет исходный текст от кучи ifdef'ов.

максимум, что можно сделать — пнуть pkg-config и врубить/вырубить некоторые опции сборки. у кого pkg-config нет, тем не повезло.

чем дольше авторы софта поддерживают идиотский зоопарк, тем дольше он будет существовать.
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]igorpashev
Date:August 24th, 2012 - 12:08 pm
(Link)
Как ему скормить version script: -M или --version-script?

Экспортирует ли он все дин. символы по умолчанию, или его надо попросить? (--export-dynamic)?
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]igorpashev
Date:August 24th, 2012 - 12:13 pm
(Link)
Ах, да ещё: при линковке libXXX.a он сам догадается развернуть архив, или надо за него? (Mesa так делает, вроде.)
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]ketmar
Date:August 24th, 2012 - 12:27 pm
(Link)
какой-то линкер не умеет .a? O_O
на помойку этот линкер, нечего дрожать над инвалидами.
(Reply to this) (Parent)
[User Picture]
From:[info]ketmar
Date:August 24th, 2012 - 12:26 pm
(Link)
хм. не знаю, зачем это надо, но ок. полагаю, впрочем, что как минимум cmake должен что-то такое уметь (точно не знаю, потому что всем этим зоопарком не пользуюсь). но помилуй, почти гигабайтный configure, который проверяет 100500 фич, уж много лет как везде (почти) доступных? но помилуй, make? который до сих пор нормально не дружит с подкаталогами и без пинка обожает срать объектниками по всем местам? а уж .ac — это отдельная песня ярости и боли.

в своё время набор костылей под названием autocrap, возможно, и был хорош. но тем не менее, это всё ещё набор костылей. причём ладно, если бы при своих размерах он умел хотя бы разные системы (ту же винду с m$vc, пополаму, гайку и так далее). да вообще хоть что-то бы умел нормально кроме генерации шелл-портянок.

да, признаюсь честно: я ниасилил. jam — асилил. доработал напильником и пользуюсь. меньше 150 кил одиночного бинаря, а сколько радости. а от автокрапа после audiere2 до сих пор потряхивает.
(Reply to this) (Parent)
[User Picture]
From:[info]ketmar
Date:August 24th, 2012 - 12:29 pm
(Link)
впрочем, я вообще изгой и читер: рассчитываю на наличие нормального позикса (привет, макось! и пока), нормального gcc и gnu binutils (привет, шланг… и пока), обильно насыпаю в код «gcc-измы» (мне моё удобство важнее, чем трепетная душа неведомого компилятора).
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]igorpashev
Date:August 24th, 2012 - 03:15 pm
(Link)
Ну, вот, из свежего:
https://github.com/joyent/illumos-extra/commit/fc553cb0b9f3668ca6fa04c49fff5ebbed387583

Разработчики Node.js говорят, что "Node's build system is super broken"

*facepalm*
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]ketmar
Date:August 24th, 2012 - 10:46 pm
(Link)
и при этом патчат мэйкфайлы заместо просто заменить то, что поломано, на что-то нормальное? этот мир обречён.
(Reply to this) (Parent)