Re: ftbs pypy3 on alpine/musl

Thomas Liske <[email protected]> Tue, 12 Oct 2021 23:07:59 +0200
Newsgroups gmane.comp.python.pypy
Organization IBH IT-Service GmbH
Message-ID <[email protected]>
Hi Armin,


Am 2021-10-12 13:18, schrieb Armin Rigo:
> Hi Thomas,
> 
> On Tue, 12 Oct 2021 at 00:33, Thomas Liske <[email protected]> wrote:
>> [translation:ERROR] CompilationError: CompilationError(err="""
>>         data_pypy_module_cpyext.c:25256:3: warning: initialization of 
>> 'void
>> (*)(Signed)' {aka 'void (*)(long int)'} from incompatible pointer type
>> 'void (*)(int)' [-Wincompatible-pointer-types]
>>         25256 |   set_Py_DebugFlag, /* 0.value */
>>               |   ^~~~~~~~~~~~~~~~
>>         data_pypy_module_cpyext.c:25256:3: note: (near initialization 
>> for
>> 'pypy_g_array_25832.a.items[0].o_value')
> 
> This is a warning (which we should look into and probably show up
> everywhere).  The log contains only one error:

oops :-O


> [platform:Error] ../module_cache/module_15.c:558:14: error:
> conflicting type qualifiers for 'stdout'
> [platform:Error]   558 | extern FILE* stdout;
> [platform:Error]       |              ^~~~~~
> [platform:Error] /usr/include/stdio.h:61:20: note: previous
> declaration of 'stdout' was here
> [platform:Error]    61 | extern FILE *const stdout;
> [platform:Error]       |                    ^~~~~~
> 
> Responsible for that is rpython/rlib/rfile.py, whose create_stdio()
> function is called on pypy3 but not on pypy2.  Maybe we can add some
> hack to avoid entirely the "extern" above, which is not needed anyway
> because we #include stdio.h.

Thanks for pointing me in the right direction! Although i don't know how 
it works at all, I've created a small patch to suppress the 
std(in|err|out) declaration and got pypy3 to compile :-)


Should I put the patches required to make pypy musl compatible at some 
issue tracker or will ${someone} consider to take them from the mailing 
list?



Warm regards,
Thomas

-- 
[email protected]                              Tel. +49 351 477 77 30
www.ibh.de                                  Fax  +49 351 477 77 39

-----------------------------------------------------------------------
Dipl.-Ing. Thomas Liske
Teamleiter DataCenter Services


IBH IT-Service GmbH                      Amtsgericht Dresden
Heilbronner Str. 20                      HRB 13626
01189 Dresden                            GF: Sandra Zander
Germany                                  VAT DE182302907
-----------------------------------------------------------------------
Ihr Partner für: LAN, WAN IP-Quality, Security, VoIP, SAN, Backup, USV
-----------------------------------------------------------------------
        professioneller IT-Service - kompetent und zuverlässig
-----------------------------------------------------------------------

_______________________________________________
pypy-dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-dev
0002-extern-stdio.patch (text/x-diff, 527 B)
--- a/rpython/rtyper/lltypesystem/rffi.py	2021-10-12 13:51:19.679004256 +0200
+++ b/rpython/rtyper/lltypesystem/rffi.py	2021-10-12 13:51:39.411425448 +0200
@@ -693,7 +693,7 @@
     c_setter = "void %(setter_name)s (%(c_type)s v) { %(name)s = v; }" % locals()
 
     lines = ["#include <%s>" % i for i in eci.includes]
-    if declare_as_extern:
+    if declare_as_extern and name not in ['stdin', 'stdout', 'stderr']:
         lines.append('extern %s %s;' % (c_type, name))
     lines.append(c_getter)
     if not getter_only: