| Summary: | [FR][e2k] сделать возможной сборку не-gcc (или сильно старым gcc) | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | Michael Shigorin <mike> | ||||
| Component: | perl | Assignee: | viy <viy> | ||||
| Status: | CLOSED WORKSFORME | QA Contact: | |||||
| Severity: | enhancement | ||||||
| Priority: | P3 | CC: | at, crux, viy | ||||
| Version: | unstable | ||||||
| Hardware: | all | ||||||
| OS: | Linux | ||||||
| Attachments: |
|
||||||
PS: выставляется там __LCC__ напрашивается такой патч:
Миша, проверь, пожалуйста.
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) && __cplusplus >= 201103L)) && (!defined(__IBMC__) || __IBMC__ >= 1210)
+#if (defined(static_assert) || (defined(__cplusplus) && __cplusplus >= 201103L)) && (!defined(__IBMC__) || __IBMC__ >= 1210) && (!defined(__LCC__))
+
/* static_assert is a macro defined in <assert.h> in C11 or a compiler
builtin in C++11.
*/
Created attachment 6676 [details]
lcc support
И впрямь; зарядил сборку. Спасибо, так miniperl собирается, но падает уже дальше при запуске; отправил грохот разработчикам МЦСТ. Наверное, в пакет пока не стоит. Исходная проблема не наблюдается на perl-5.24.2-alt1 и lcc-1.21.20; для сегфолта miniperl коллегами из МЦСТ предложен обход, проблема в работе. |
Пронаблюдал проблему сборки lcc на "Эльбрусе": 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': /home/mike/RPM/BUILD/perl-5.22.1/opmini.c:198618: undefined reference to `_Static_assert' opmini.o: In function `Perl_rpeep': /home/mike/RPM/BUILD/perl-5.22.1/opmini.c:201699: undefined reference to `_Static_assert' toke.o: In function `Perl_lex_start': /home/mike/RPM/BUILD/perl-5.22.1/toke.c:679: undefined reference to `_Static_assert' pp_hot.o: In function `Perl_pp_padrange': /home/mike/RPM/BUILD/perl-5.22.1/pp_hot.c:358: undefined reference to `_Static_assert' sv.o: In function `Perl_sv_upgrade': /home/mike/RPM/BUILD/perl-5.22.1/sv.c:1230: undefined reference to `_Static_assert' sv.o:/home/mike/RPM/BUILD/perl-5.22.1/sv.c:1230: more undefined references to `_Static_assert' 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 Было бы здорово по возможности подправить, если что-то по этим ссылкам окажется достаточно очевидным.