<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>32972</bug_id>
          
          <creation_ts>2017-01-05 02:01:07 +0300</creation_ts>
          <short_desc>libtool глючит, опция pic-only нихрена не работает</short_desc>
          <delta_ts>2019-04-10 21:27:45 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>libtool_2.4</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Big Benis">big.benis</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>161186</commentid>
    <comment_count>0</comment_count>
    <who name="Big Benis">big.benis</who>
    <bug_when>2017-01-05 02:01:07 +0300</bug_when>
    <thetext>Мужчины, мать вашу за ногу! Я занялся разработкой библиотеки нестандартного ввода-вывода.  И поскольку ввод-вывод такой нестандартный, то я хочу компилировать его в режиме 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 &amp;&amp; autoreconf -i &amp;&amp; ./configure &amp;&amp; make
...
$ gcc -shared nonstdio.o
/usr/bin/ld: nonstdio.o: warning: relocation against `__errno_location@@GLIBC_2.2.5&apos; in readonly section `.text&apos;
/usr/bin/ld: nonstdio.o: relocation R_X86_64_PC32 against undefined symbol `write@@GLIBC_2.2.5&apos; 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.

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

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

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

Спасибо.  Предлагаете собрать нынешний пакет с этим коммитом, или дождаться исправления https://bugzilla.altlinux.org/show_bug.cgi?id=31849 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180744</commentid>
    <comment_count>2</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2019-04-10 21:27:45 +0300</bug_when>
    <thetext>libtool_2.4-2.4.6-alt1 -&gt; sisyphus:

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

    </bug>

</bugzilla>