comparison lang/pypy2/README @ 65:9e9df3f25e7d

Move the old imported pypy repo into the lang/pypy2 folder
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 12 Jan 2024 09:18:14 +0100
parents README@585cf5a218ad
children 8b567a874360
comparison
equal deleted inserted replaced
64:4f846c664620 65:9e9df3f25e7d
1
2 Notes on how to build
3 =====================
4
5
6 1. Schritt: ein erstes pypy bauen
7 ---------------------------------
8
9 Erst einmal mit dem **alten** Ports-Verzeichnis, welches insgesamt auf
10 dem Stand ist, wo pypy noch offizieller Bestandteil des Ports-Trees war.
11
12 Problem: py27-setuptools ist aber aktuell in Wirklichkeit py27-setuptools44.
13
14 Deshalb tricksen und zum ersten Bauen und installieren die setuptools in
15 der Pkg-Db umbenennen mit "pkg set -n"
16
17
18 ACHTUNG: Ports-Tree auf alten Zeitpunkt stellen:
19 "hg update -r 377386a46a6b"
20
21
22 Dependencies
23 ~~~~~~~~~~~~
24
25 Build py27-pycparser (Origin: devel/py-pycparser):
26
27 pkg install py27-setuptools44
28
29 pkg set -n py27-setuptools44:py27-setuptools
30
31 cd devel/py-pycparser
32 make FLAVOR=py27 package
33
34 Install this package: pkg install py27-pycparser
35
36
37 PyPy
38 ~~~~
39
40 Origin: lang/pypy
41
42 Install -A gmake, binutils, expat, libunwind, pkgconf
43
44 Unbedingt auch sicherstellen, daß libffi und libz installiert sind
45
46 Build:
47
48 pkg set -n py27-setuptools44:py27-setuptools
49 make rmconfig
50 make build
51 make package
52
53 Installieren
54
55 Dann erst einmal die setuptools wieder zurückbenennen:
56
57 pkg set -n py27-setuptools:py27-setuptools44
58
59 Testen folgender Importe:
60
61 import bz2
62 import curses
63 import pyexpat
64 import zlib
65 import ssl
66 import cffi
67
68
69 2. Schritt: nochmal bauen mit "richtiger" und aktueller Ports-Umgebung
70 ----------------------------------------------------------------------
71
72 Vorgehen im Prinzip wie beim ersten Schritt, nur den aktuellen py27-pycparser
73 installieren als VB und dann auch mittels "make config" das installierte
74 erste "pypy" als Übersetzer nehmen
75
76 ACHTUNG: Ports-Tree auf neueste Version stellen per "hg update".
77 Keine setuptools-Umbenennung!
78
79
80 Dependencies
81 ~~~~~~~~~~~~
82
83 Build py27-pycparser (Origin: devel/py-pycparser):
84
85 Den lassen, der kann mit
86
87 pkg info py27-setuptools44
88
89 cd devel/py-pycparser
90
91 Zum Bauen temporär "USES=python:2.7" einstellen.
92
93 Bauen:
94
95 make package
96
97 Install this package: pkg install py27-pycparser
98
99
100 PyPy
101 ~~~~
102
103 Mit PyPy bauen:
104
105 make config -> PYPY
106 make build
107 make package
108
109 Re-Installation:
110
111 pkg remove pypy
112 pkg install pypy
113
114 Testen folgender Importe:
115
116 import bz2
117 import curses
118 import pyexpat
119 import zlib
120 import ssl
121 import cffi
122 import ctypes
123
124
125 pypy-gdbm und pypy-sqlite3
126 ~~~~~~~~~~~~~~~~~~~~~~~~~~
127
128 jeweils mit "FLAVOR=pypy" bauen
129
130
131
132 Build von PyPy v7.3.14 auf FreeBSD-13.2
133 =======================================
134
135 .. note:: Auch das Kommanto :command:`pkg-config` scheint nun nötig zu
136 sein laut Dokumentation.
137
138
139 ``AF_NETLINK`` und :file:`linux/netlink.h`
140 ------------------------------------------
141
142 FreeBSD-13.2 definiert im Gegensatz zu früheren Versionen nun auch
143 ``AF_NETLINK``. Aber PyPy (übrigends auch frühere Versionen) geht davon aus,
144 daß ``AF_NETLINK`` nur unter Linux definiert sein kann und includiert dann
145 fest das Include-File :file:`linux/netlink.h`; das gibt es aber unter
146 FreeBSD nicht. Stattdessen ist es hier :file:'netlink/netlink.h`.
147
148 Deswegen in :file:`rpython/rlib/_rsocket_rffi.py` die entsprechende
149 Include-Definition patchen.
150
151
152 termios
153 -------
154
155 PyPy v7.3.14 baut nun auch das `termios`-Modul. Der entsprechende nötige
156 Header :file:`termios.h` ist aber unter FreeBSD nicht automatisch beim
157 Compilieren mit dabei.
158
159 Deswegen in :file:`rpython/rlib/rposix.py` den Header :file:`termios.h`
160 in die Platform-Konfigurations-Includes mit aufnehmen unter FreeBSD.