asdf-community / asdf-python

Python plugin for the asdf version manager
https://github.com/asdf-vm/asdf
MIT License
651 stars 56 forks source link

[Makefile:1048: install] Error 139 on Manjaro #103

Open guimolnar opened 3 years ago

guimolnar commented 3 years ago

When I try to install python with asdf install python 3.5.6 the build fails and outputs the following error:

BUILD FAILED (ManjaroLinux 21.0.7 using python-build 2.0.1-6-g5f751985)

Inspect or clean up the working tree at /tmp/python-build.20210619134141.48867
Results logged to /tmp/python-build.20210619134141.48867.log

Last 10 log lines:
(cd /home/guilherme/.asdf/installs/python/3.5.10/share/man/man1; ln -s python3.5.1 python3.1)
if test "xupgrade" != "xno"  ; then \
    case upgrade in \
        upgrade) ensurepip="--upgrade" ;; \
        install|*) ensurepip="" ;; \
    esac; \
     ./python -E -m ensurepip \
        $ensurepip --root=/ ; \
fi

make: *** [Makefile:1048: install] Error 139

I tried other versions 3.5.x and got the same error.

I was able to install the activepython from the list, though. But I still would like to understand what went wrong with the official versions.

Thanks.

franciscocpg commented 3 years ago

Same issue for me.

Found this workaround (using pyenv).

franciscocpg commented 3 years ago

My final workaround using asdf

echo '--- Include/objimpl.h
+++ Include/objimpl.h
@@ -250,7 +250,7 @@
         union _gc_head *gc_prev;
         Py_ssize_t gc_refs;
     } gc;
-    double dummy;  /* force worst-case alignment */
+    long double dummy;  /* force worst-case alignment */
 } PyGC_Head;

 extern PyGC_Head *_PyGC_generation0;
--- Objects/obmalloc.c
+++ Objects/obmalloc.c
@@ -643,8 +643,8 @@
  *
  * You shouldnt change this unless you know what you are doing.
  */
-#define ALIGNMENT               8               /* must be 2^N */
-#define ALIGNMENT_SHIFT         3
+#define ALIGNMENT               16               /* must be 2^N */
+#define ALIGNMENT_SHIFT         4

 /* Return the number of bytes in size class I, as a uint. */
 #define INDEX2SIZE(I) (((uint)(I) + 1) << ALIGNMENT_SHIFT)' > /tmp/3.6.12.patch

export ASDF_PYTHON_PATCHES_DIRECTORY=/tmp

asdf install python 3.6.12