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

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

    <bug>
          <bug_id>40991</bug_id>
          
          <creation_ts>2021-09-23 06:58:03 +0300</creation_ts>
          <short_desc>ruby 2.7.4-alt1 не пересобирает сам себя</short_desc>
          <delta_ts>2021-09-23 15:08:40 +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>ruby</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>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>ilyakurdyukov</reporter>
          <assigned_to name="majioa@altlinux.org">majioa</assigned_to>
          <cc>admsasha</cc>
    
    <cc>bircoph</cc>
    
    <cc>cas</cc>
    
    <cc>glebfm</cc>
    
    <cc>majioa</cc>
    
    <cc>mike</cc>
    
    <cc>nbr</cc>
    
    <cc>pav</cc>
    
    <cc>rider</cc>
    
    <cc>thatman</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>203123</commentid>
    <comment_count>0</comment_count>
    <who name="">ilyakurdyukov</who>
    <bug_when>2021-09-23 06:58:03 +0300</bug_when>
    <thetext>http://git.altlinux.org/tasks/285728/logs/events.1.1.log

Падает на всех архитектурах. Надо или чинить, или вернуться к старой версии.

[00:02:38] [BUG] Segmentation fault at 0x0000000000000018
[00:02:38] ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux]

Мне нужно рабочую версию для починки бутстрапа. Чтобы потом через бутстрап обновить ruby на Эльбрусе.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203125</commentid>
    <comment_count>1</comment_count>
    <who name="">ilyakurdyukov</who>
    <bug_when>2021-09-23 08:42:19 +0300</bug_when>
    <thetext>При пересборке ruby-2.7.3-alt1.3 через починенный бутстрап. По адресу сегфолта очень похоже на обращение к структуре по нулевому указателю. И если не работает даже предыдущая версия, то это наводка из какого-то пакета что подгружается при сборке ruby?

./ext/extmk.rb:525: [BUG] Segmentation fault at 0x0000000000000018
ruby 2.7.3p183 (2021-04-05 revision 647ee6f091) [x86_64-linux]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203130</commentid>
    <comment_count>2</comment_count>
    <who name="">ilyakurdyukov</who>
    <bug_when>2021-09-23 10:09:39 +0300</bug_when>
    <thetext>Что же такого делали в Альте недавно... включили LTO.

Ошибки сборочницы от чего были исправлены в ruby 2.7.4:

%{?optflags_lto:%global optflags_lto %optflags_lto -ffat-lto-objects}

И ruby 2.7.4 собрался (через старый 2.7.3 собранный без LTO, потому что ruby собирается рекурсивно). Вот только это сломало ruby. И чтобы работало, нужно отключать LTO полностью:

%define optflags_lto %nil

P.S.: Мне теперь приходится чинить LTO у половины пакетов, просто чтобы внести правки для Эльбруса.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203148</commentid>
    <comment_count>3</comment_count>
    <who name="">ilyakurdyukov</who>
    <bug_when>2021-09-23 12:42:05 +0300</bug_when>
    <thetext>Исправлено в ruby 2.7.4-alt2 (with bootstrap) -&gt; ruby 2.7.4-alt2.1 (without bootstrap).

Бутстраппинг починен в этих коммитах (делается через noarch пакет ruby-miniruby-src взятый с другой архитектуры, где ruby уже собирался).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203169</commentid>
    <comment_count>4</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2021-09-23 14:27:50 +0300</bug_when>
    <thetext>Зачем при сборке делать анализ сломавшихся пакетов и отправлять его результаты в devel@, если потом никто не читает?

https://lore.altlinux.org/devel/YUpSZVRiieC7B%2FnK@glebfm.cloud.tilaa.com/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203170</commentid>
    <comment_count>5</comment_count>
    <who name="">ilyakurdyukov</who>
    <bug_when>2021-09-23 14:40:41 +0300</bug_when>
    <thetext>(Ответ для Gleb F-Malinovskiy на комментарий #4)
&gt; Зачем при сборке делать анализ сломавшихся пакетов и отправлять его
&gt; результаты в devel@, если потом никто не читает?
&gt; 
&gt; https://lore.altlinux.org/devel/YUpSZVRiieC7B%2FnK@glebfm.cloud.tilaa.com/

Так это из-за обновления GCC было? Я два раза перепроверил, что лечится отключением LTO (если только в GCC чего с LTO не наделали в новой версии).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203172</commentid>
    <comment_count>6</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2021-09-23 14:55:04 +0300</bug_when>
    <thetext>(In reply to ilyakurdyukov from comment #5)
&gt; Так это из-за обновления GCC было? Я два раза перепроверил, что лечится
&gt; отключением LTO (если только в GCC чего с LTO не наделали в новой версии).

Я не пробовал выключать LTO, но очевидно, что эта регрессия из-за обновления gcc вылезает только при включённом LTO.  На самом деле, если бы вы посмотрели в результаты тестовой пересборки, вы бы увидели, когда именно перестал пересобираться ruby.

Я проверял, что применение патча, на который я ссылаюсь в письме (там в нашей старой версии ruby есть только одно место, в котором используется такая конструкция) к ruby-2.7.4-alt1 и он успешно собирался с помощью ruby-2.7.4-alt1 из репозитория.

Я другой стороны, я так понимаю, что вы починили bootstrap, что может пригодиться кому-нибудь. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203174</commentid>
    <comment_count>7</comment_count>
    <who name="">ilyakurdyukov</who>
    <bug_when>2021-09-23 15:08:40 +0300</bug_when>
    <thetext>Значит можно вернуть LTO когда дойдёт до версии где это исправили. Но для верности после этого надо второй раз пересобрать для проверки, чтобы удостовериться что обновлённая версия сама себя пересоберёт.

Бутстрап еще есть куда улучшать, текущий руби устанавливается по каким-то зависимостям, хотя в спеке явно не указан.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>