<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Sziasztok!</p>
<p>Ahogy a múltkori meetingen megbeszéltük, megpróbáltam összehozni
a p4c2py dolgok fordítását. Amire jutottam azt nem igazán nevezném
még sikernek, és még így sem volt túl egyszerű. Megpróbáltam
minden lépést összegyűjteni, ha esetleg van javaslat, hogy a
problémás lépéseket hogyan javíthatnám, akkor még próbálkozhatok
vele.</p>
<p>Nálam egy pár extra package telepítésére szükség volt, a
readme-ben említetteken kívül: <b>libtool m4 dh-autoreconf</b>
(Ezeket az egyes hibák előkerülésekor a hibára rákeresve próbáltam
összehozni.)</p>
<p>A p4c readme-jében szerepel, hogy a 16.04-es ubuntu-ra, a
protobuf-nak csak egy korábbi verziója telepíthető apt-get-tel,
így a frissebb verziót a githubról kell buildelni. (A 3.0.2-es
verziót fordítottam, ez a leírás alapján: <a
href="https://github.com/google/protobuf/blob/master/src/README.md">https://github.com/google/protobuf/blob/master/src/README.md</a>)</p>
<p>A p4c-s github repo clone-ozásakor belefutottam még egy olyanba,
hogy a benne szereplő submodul-t külön kell leszedni ("git
submodule update --init --recursive" paranccsal).</p>
<p>Ezután következett a p4c forráskód fordítása, ami a következő
hibához vezetett:</p>
<p><font face="Courier New, Courier, monospace"> /bin/mkdir -p
'./p4include'<br>
<b>/usr/bin/install -c -m 644
./backends/ebpf/p4include/ebpf_model.p4 ./p4include/core.p4
./p4include/v1model.p4 './p4include'</b><br>
/usr/bin/install: './p4include/core.p4' and
'./p4include/core.p4' are the same file<br>
/usr/bin/install: './p4include/v1model.p4' and
'./p4include/v1model.p4' are the same file<br>
Makefile:1692: recipe for target 'install-p4includeHEADERS'
failed<br>
make[2]: *** [install-p4includeHEADERS] Error 1<br>
make[2]: Leaving directory '/home/brmarci/Downloads/p4c'<br>
Makefile:2466: recipe for target 'all-local' failed<br>
make[1]: *** [all-local] Error 2<br>
make[1]: *** Waiting for unfinished jobs....<br>
make[1]: Leaving directory '/home/brmarci/Downloads/p4c'<br>
Makefile:1250: recipe for target 'all' failed<br>
make: *** [all] Error 2</font></p>
<p>A vastagon szedett sor végrehajtása az utána levő két sort írja
ki és 1-es hibakóddal tér vissza, így a fordítás leáll.</p>
<p>Annyival még tovább mentem, hogy a Makefile-ból kiszedtem azt a
sort ami a hibához vezet (ha jól értelmeztem ez csak azon száll
el, hogy önmagukba akarja másolni a fájlokat). Ezután a make
sikeresen lefutott, majd a p4c2py fordítása is (látszólag) hiba
nélkül megtörtént. Viszont amikor a "python test_p4c.py "$P4C"
$P4C/testdata/p4_16_samples/global-action.p4" parancsot futtatnám,
ez a hiba fogad:</p>
<p><font face="Courier New, Courier, monospace">Traceback (most
recent call last):<br>
File "test_p4c.py", line 126, in <module><br>
node_count, _, _, tree = do_visit(p4program, (0, 0, [-1] *
max_indent, []), print_op_in, print_op_out)<br>
File "test_p4c.py", line 70, in do_visit<br>
p4c.test_visitor(node, v)<br>
RuntimeError: COMPILER BUG:
/home/brmarci/Downloads/p4c//lib/crash.cpp:226<br>
Exiting with SIGSEGV<br>
<br>
Segmentation fault (core dumped)</font></p>
<p>Eddig jutottam. Robi, ha van valami javaslatod, hogy mit
csináljak másként, akkor szívesen megpróbálom máshogy is.<br>
</p>
<p>Marci<br>
</p>
</body>
</html>