Bug 32972 - libtool глючит, опция pic-only нихрена не работает
Summary: libtool глючит, опция pic-only нихрена не работает
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libtool_2.4 (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-05 02:01 MSK by Big Benis
Modified: 2019-04-10 21:27 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Big Benis 2017-01-05 02:01:07 MSK
Мужчины, мать вашу за ногу! Я занялся разработкой библиотеки нестандартного ввода-вывода.  И поскольку ввод-вывод такой нестандартный, то я хочу компилировать его в режиме disable-shared pic-only (и там еще используется pragma visibility hidden - короче, вживлять это код намертво и без символов).

LT_INIT([disable-shared pic-only])
github.com/svpv/nonstdio/blob/master/configure.ac

Вот, но поскольку libtool в вашем промышленном дистрибутиве очень старый и глючный, то опция pic-only в ём не работает.

$ git clean -dfx && autoreconf -i && ./configure && make
...
$ gcc -shared nonstdio.o
/usr/bin/ld: nonstdio.o: warning: relocation against `__errno_location@@GLIBC_2.2.5' in readonly section `.text'
/usr/bin/ld: nonstdio.o: relocation R_X86_64_PC32 against undefined symbol `write@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC

Что интересно, наш старый знакомый Mikhail Zabaluev исправил эту проблему в апстриме libtool еще пять лет назад. 
git.savannah.gnu.org/cgit/libtool.git/commit/?id=7b059d5a

$ git clone git://git.savannah.gnu.org/libtool.git
...
$ cd libtool
$ git show v2.4.2-321-g7b059d5 |sudo patch /usr/share/libtool-2.4/aclocal/ltoptions.m4
patching file /usr/share/libtool-2.4/aclocal/ltoptions.m4
Hunk #1 succeeded at 344 with fuzz 1.

После чего естественно "gcc -shared nonstdio.o" работает. Пять лет уже как проблема исправлена, но что такое пять лет для суверенного дистрибутива?  У Бога вообще тысяча лет как один день (Второе послание Петра гл.3). Мужчины, знали бы вы, сколько раз в вашем дистрибутиве приходится делать "sudo patch", генеральные конструкторы, мать вашу!
Comment 1 Dmitry V. Levin 2017-01-05 18:36:36 MSK
(In reply to comment #0)
> LT_INIT([disable-shared pic-only])
> github.com/svpv/nonstdio/blob/master/configure.ac
> 
> Вот, но поскольку libtool в вашем промышленном дистрибутиве очень старый и
> глючный, то опция pic-only в ём не работает.
> 
> $ git clean -dfx && autoreconf -i && ./configure && make
> ...
> $ gcc -shared nonstdio.o
> /usr/bin/ld: nonstdio.o: warning: relocation against
> `__errno_location@@GLIBC_2.2.5' in readonly section `.text'
> /usr/bin/ld: nonstdio.o: relocation R_X86_64_PC32 against undefined symbol
> `write@@GLIBC_2.2.5' can not be used when making a shared object; recompile
> with -fPIC
> 
> Что интересно, наш старый знакомый Mikhail Zabaluev исправил эту проблему в
> апстриме libtool еще пять лет назад.

Что, вообще говоря, не удивительно, поскольку Михаил давно в теме:
$ rpmquery --changelog libtool_2.4 |grep mhz@
* Wed Aug 20 2003 Mikhail Zabaluev <mhz@altlinux.ru> 2:1.5-alt6
* Tue Aug 19 2003 Mikhail Zabaluev <mhz@altlinux.ru> 2:1.5-alt4
* Sat Aug 16 2003 Mikhail Zabaluev <mhz@altlinux.ru> 2:1.5-alt3
* Sat Aug 09 2003 Mikhail Zabaluev <mhz@altlinux.ru> 2:1.5-alt1
* Sun Sep 22 2002 Mikhail Zabaluev <mhz@altlinux.ru> 2:1.4.2-alt0.2
* Thu Jun 13 2002 Mikhail Zabaluev <mhz@altlinux.ru> 2:1.4.2-alt0.1

> git.savannah.gnu.org/cgit/libtool.git/commit/?id=7b059d5a
> 
> $ git clone git://git.savannah.gnu.org/libtool.git
> ...
> $ cd libtool
> $ git show v2.4.2-321-g7b059d5 |sudo patch
> /usr/share/libtool-2.4/aclocal/ltoptions.m4
> patching file /usr/share/libtool-2.4/aclocal/ltoptions.m4
> Hunk #1 succeeded at 344 with fuzz 1.

Спасибо.  Предлагаете собрать нынешний пакет с этим коммитом, или дождаться исправления https://bugzilla.altlinux.org/show_bug.cgi?id=31849 ?
Comment 2 Repository Robot 2019-04-10 21:27:45 MSK
libtool_2.4-2.4.6-alt1 -> sisyphus:

Tue Apr 09 2019 Dmitry V. Levin <ldv@altlinux> 2.4.6-alt1
- 2.4.2 -> v2.4.6-44-gb9b44533 (closes: #31849, #32972).