[P4] p4c2py próbálkozások
Brunner Márton
brmarci at caesar.elte.hu
Sun Mar 5 12:22:02 CET 2017
Sziasztok!
Sikerült a P4C fordítása hiba nélkül. Valószínűleg tényleg a build
könyvtárban való make-elés lehetett a megoldás. A következőket csináltam:
git clone https://github.com/p4lang/p4c
export P4C=`pwd`/p4c
cd $P4C
git submodule update --init --recursive
./bootstrap.sh
CXXFLAGS="-fPIC -g" ./configure
cd build
make -j4
Ez így mind sikeresen lefut, majd utána a make check is csak 1 XFAIL-t
tartalmaz.
Azt viszont nem tudom, hogy mennyire normális, hogy a "python
test_p4c.py "$P4C" $P4C/testdata/p4_16_samples/global-action.p4"
futtatása a következő hibához vezet:
Traceback (most recent call last):
File "test_p4c.py", line 4, in <module>
import p4c2py
ImportError: No module named p4c2py
Marci
On 2017-02-20 00:56, Brunner Márton wrote:
>
> 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
>
>
>
> _______________________________________________
> P4 mailing list
> P4 at plc.inf.elte.hu
> https://plc.inf.elte.hu/mailman/listinfo/p4
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://plc.inf.elte.hu/pipermail/p4/attachments/20170305/d166b5af/attachment.html>
More information about the P4
mailing list