[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