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

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

    <bug>
          <bug_id>31914</bug_id>
          
          <creation_ts>2016-03-22 22:33:28 +0300</creation_ts>
          <short_desc>[FR][e2k] сделать возможной сборку не-gcc (или сильно старым gcc)</short_desc>
          <delta_ts>2017-08-18 19:06:09 +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>perl</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Shigorin">mike</reporter>
          <assigned_to name="viy">viy</assigned_to>
          <cc>andy</cc>
    
    <cc>antohami</cc>
    
    <cc>at</cc>
    
    <cc>crux</cc>
    
    <cc>viy</cc>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>155830</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2016-03-22 22:33:28 +0300</bug_when>
    <thetext>Пронаблюдал проблему сборки lcc на &quot;Эльбрусе&quot;:

gcc -fstack-protector -L/usr/local/lib -o miniperl \
    perlmini.o opmini.o miniperlmain.o  gv.o toke.o perly.o pad.o regcomp.o
    dump.o util.o mg.o reentr.o mro_core.o keywords.o hv.o av.o run.o pp_hot.o
    sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o
    deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o
    locale.o pp_pack.o pp_sort.o caretx.o   -lpthread -lnsl -ldl -lm -lcrypt
    -lutil -lc
opmini.o: In function `Perl_ck_rvconst&apos;:
/home/mike/RPM/BUILD/perl-5.22.1/opmini.c:198618: undefined reference to `_Static_assert&apos;
opmini.o: In function `Perl_rpeep&apos;:
/home/mike/RPM/BUILD/perl-5.22.1/opmini.c:201699: undefined reference to `_Static_assert&apos;
toke.o: In function `Perl_lex_start&apos;:
/home/mike/RPM/BUILD/perl-5.22.1/toke.c:679: undefined reference to `_Static_assert&apos;
pp_hot.o: In function `Perl_pp_padrange&apos;:
/home/mike/RPM/BUILD/perl-5.22.1/pp_hot.c:358: undefined reference to `_Static_assert&apos;
sv.o: In function `Perl_sv_upgrade&apos;:
/home/mike/RPM/BUILD/perl-5.22.1/sv.c:1230: undefined reference to `_Static_assert&apos;
sv.o:/home/mike/RPM/BUILD/perl-5.22.1/sv.c:1230: more undefined references to `_Static_assert&apos; follow
make: *** [lib/buildcustomize.pl] Error 1

Она же описана по этим ссылкам применительно к другим не-gcc, старым gcc и схожим случаям:

* https://forums.gentoo.org/viewtopic-p-7462508.html
* http://git.kernel.org/cgit/utils/kernel/kmod/kmod.git/patch/?id=dc8ed09f8f21d17ef9481001683d7edfdb308983
* http://permalink.gmane.org/gmane.comp.compilers.tinycc.devel/2715
* http://www.nntp.perl.org/group/perl.perl5.porters/2015/01/msg225172.html
* https://rt.perl.org/Public/Bug/Display.html?id=123682
** https://rt.perl.org/Public/Ticket/Attachment/1328635/709088/0001-static_assert-workaround-for-AIX-xlc.patch

Было бы здорово по возможности подправить, если что-то по этим ссылкам окажется достаточно очевидным.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155831</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2016-03-22 22:49:08 +0300</bug_when>
    <thetext>PS: выставляется там __LCC__</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155832</commentid>
    <comment_count>2</comment_count>
    <who name="viy">viy</who>
    <bug_when>2016-03-22 23:06:34 +0300</bug_when>
    <thetext>напрашивается такой патч:

Миша, проверь, пожалуйста.

iff --git a/perl.h b/perl.h
index dcb184b..3e7cde2 100644
--- a/perl.h
+++ b/perl.h
@@ -3543,7 +3543,8 @@ typedef pthread_key_t     perl_key;
    STATIC_ASSERT_STMT expands to a statement and is suitable for use inside a
    function.
 */
-#if (defined(static_assert) || (defined(__cplusplus) &amp;&amp; __cplusplus &gt;= 201103L)) &amp;&amp; (!defined(__IBMC__) || __IBMC__ &gt;= 1210)
+#if (defined(static_assert) || (defined(__cplusplus) &amp;&amp; __cplusplus &gt;= 201103L)) &amp;&amp; (!defined(__IBMC__) || __IBMC__ &gt;= 1210) &amp;&amp; (!defined(__LCC__)) 
+
 /* static_assert is a macro defined in &lt;assert.h&gt; in C11 or a compiler
    builtin in C++11.
 */</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155833</commentid>
    <comment_count>3</comment_count>
      <attachid>6676</attachid>
    <who name="viy">viy</who>
    <bug_when>2016-03-22 23:07:45 +0300</bug_when>
    <thetext>Created attachment 6676
lcc support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155835</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2016-03-22 23:29:26 +0300</bug_when>
    <thetext>И впрямь; зарядил сборку.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155836</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2016-03-22 23:53:52 +0300</bug_when>
    <thetext>Спасибо, так miniperl собирается, но падает уже дальше при запуске;
отправил грохот разработчикам МЦСТ.  Наверное, в пакет пока не стоит.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165326</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2017-08-18 19:06:09 +0300</bug_when>
    <thetext>Исходная проблема не наблюдается на perl-5.24.2-alt1 и lcc-1.21.20;
для сегфолта miniperl коллегами из МЦСТ предложен обход, проблема в работе.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6676</attachid>
            <date>2016-03-22 23:07:45 +0300</date>
            <delta_ts>2016-03-22 23:07:45 +0300</delta_ts>
            <desc>lcc support</desc>
            <filename>perl-5.22-lcc.patch</filename>
            <type>text/plain</type>
            <size>612</size>
            <attacher name="viy">viy</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL3BlcmwuaCBiL3BlcmwuaAppbmRleCBkY2IxODRiLi4zZTdjZGUyIDEwMDY0
NAotLS0gYS9wZXJsLmgKKysrIGIvcGVybC5oCkBAIC0zNTQzLDcgKzM1NDMsOCBAQCB0eXBlZGVm
IHB0aHJlYWRfa2V5X3QJcGVybF9rZXk7CiAgICBTVEFUSUNfQVNTRVJUX1NUTVQgZXhwYW5kcyB0
byBhIHN0YXRlbWVudCBhbmQgaXMgc3VpdGFibGUgZm9yIHVzZSBpbnNpZGUgYQogICAgZnVuY3Rp
b24uCiAqLwotI2lmIChkZWZpbmVkKHN0YXRpY19hc3NlcnQpIHx8IChkZWZpbmVkKF9fY3BsdXNw
bHVzKSAmJiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMKSkgJiYgKCFkZWZpbmVkKF9fSUJNQ19fKSB8
fCBfX0lCTUNfXyA+PSAxMjEwKQorI2lmIChkZWZpbmVkKHN0YXRpY19hc3NlcnQpIHx8IChkZWZp
bmVkKF9fY3BsdXNwbHVzKSAmJiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMKSkgJiYgKCFkZWZpbmVk
KF9fSUJNQ19fKSB8fCBfX0lCTUNfXyA+PSAxMjEwKSAmJiAoIWRlZmluZWQoX19MQ0NfXykpIAor
CiAvKiBzdGF0aWNfYXNzZXJ0IGlzIGEgbWFjcm8gZGVmaW5lZCBpbiA8YXNzZXJ0Lmg+IGluIEMx
MSBvciBhIGNvbXBpbGVyCiAgICBidWlsdGluIGluIEMrKzExLgogKi8K
</data>

          </attachment>
      

    </bug>

</bugzilla>