Мужчины, мать вашу за ногу! Я занялся разработкой библиотеки нестандартного ввода-вывода. И поскольку ввод-вывод такой нестандартный, то я хочу компилировать его в режиме 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", генеральные конструкторы, мать вашу!
(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 ?
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).