[P4] p4c2py próbálkozások
Brunner Márton
brmarci at caesar.elte.hu
Mon Feb 20 00:56:07 CET 2017
Sziasztok!
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.
Nálam egy pár extra package telepítésére szükség volt, a readme-ben
említetteken kívül: *libtool m4 dh-autoreconf* (Ezeket az egyes hibák
előkerülésekor a hibára rákeresve próbáltam összehozni.)
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:
https://github.com/google/protobuf/blob/master/src/README.md)
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).
Ezután következett a p4c forráskód fordítása, ami a következő hibához
vezetett:
/bin/mkdir -p './p4include'
*/usr/bin/install -c -m 644 ./backends/ebpf/p4include/ebpf_model.p4
./p4include/core.p4 ./p4include/v1model.p4 './p4include'*
/usr/bin/install: './p4include/core.p4' and './p4include/core.p4' are
the same file
/usr/bin/install: './p4include/v1model.p4' and './p4include/v1model.p4'
are the same file
Makefile:1692: recipe for target 'install-p4includeHEADERS' failed
make[2]: *** [install-p4includeHEADERS] Error 1
make[2]: Leaving directory '/home/brmarci/Downloads/p4c'
Makefile:2466: recipe for target 'all-local' failed
make[1]: *** [all-local] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/brmarci/Downloads/p4c'
Makefile:1250: recipe for target 'all' failed
make: *** [all] Error 2
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.
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:
Traceback (most recent call last):
File "test_p4c.py", line 126, in <module>
node_count, _, _, tree = do_visit(p4program, (0, 0, [-1] *
max_indent, []), print_op_in, print_op_out)
File "test_p4c.py", line 70, in do_visit
p4c.test_visitor(node, v)
RuntimeError: COMPILER BUG: /home/brmarci/Downloads/p4c//lib/crash.cpp:226
Exiting with SIGSEGV
Segmentation fault (core dumped)
Eddig jutottam. Robi, ha van valami javaslatod, hogy mit csináljak
másként, akkor szívesen megpróbálom máshogy is.
Marci
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://plc.inf.elte.hu/pipermail/p4/attachments/20170220/c7eeaf6b/attachment.html>
More information about the P4
mailing list