-
Yonghong Song authored
Fix issue #1562. Currently, bcc allows a map defined in one module and used in the same or a different module. At tests/python directory, test_clang.py and test_shared_table.py have such an example. ... b1 = BPF(text="""BPF_TABLE_PUBLIC("hash", int, int, table1, 10);""") b2 = BPF(text="""BPF_TABLE("extern", int, int, table1, 10);""") t = b2["table"] ... With current implementation, the map key/value types are parsed twice, resulting a type "int int" instead of "int". When type is retrieved through `t = b2["table"]`, python decoding error will appear. The issue is fixed by preventing the second map key/value type parsing if the map is `extern`. Also add `t = b2["table"]` so the issue will be triggered if bcc clang frontend fix is not there. Signed-off-by: Yonghong Song <yhs@fb.com>
96354c67