Commit 92039d4
feat(ffi): automatically generate
## Why this should be merged
Closes: #1774
## How this works
This change adds a `go generate` program to parse the go source files
for `C.func(...)` calls and injects the relevant `#cgo` pragma comments
into those files. This also removes any previous pragmas.
Also added is a check to ensure that each c function has at most 1
callsite. While technically out of scope, it was necessary to ensure we
don't inject multiple pragmas. However, it is also unexpected if we were
to invoke a c function from two different places.
### Why not in Rust?
Go already has the proper tools to parse itself.
## How this was tested
The `ffi-check-go-generate` job was added to the CI workflow to ensure
that `go generate` does not produce any changes. It will fail very early
if so.
https://github.com/ava-labs/firewood/actions/runs/23062649367/job/66993031048?pr=1784#step:3:202
## Breaking Changes
n/a
---------
Signed-off-by: Joachim Brandon LeBlanc <brandon@leblanc.codes>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>cgo pragma declarations (#1784)1 parent 913a26b commit 92039d4
11 files changed
+414
-35
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
224 | 224 | | |
225 | 225 | | |
226 | 226 | | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
227 | 241 | | |
228 | | - | |
| 242 | + | |
229 | 243 | | |
230 | 244 | | |
231 | 245 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| |||
Lines changed: 12 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | | - | |
6 | 4 | | |
7 | 5 | | |
8 | 6 | | |
| |||
41 | 39 | | |
42 | 40 | | |
43 | 41 | | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | 42 | | |
49 | 43 | | |
50 | 44 | | |
| |||
81 | 75 | | |
82 | 76 | | |
83 | 77 | | |
| 78 | + | |
| 79 | + | |
84 | 80 | | |
85 | 81 | | |
86 | 82 | | |
| |||
89 | 85 | | |
90 | 86 | | |
91 | 87 | | |
92 | | - | |
| 88 | + | |
93 | 89 | | |
94 | 90 | | |
95 | 91 | | |
96 | 92 | | |
97 | | - | |
| 93 | + | |
98 | 94 | | |
99 | 95 | | |
100 | 96 | | |
101 | 97 | | |
102 | | - | |
103 | | - | |
| 98 | + | |
| 99 | + | |
104 | 100 | | |
105 | 101 | | |
106 | 102 | | |
107 | 103 | | |
108 | | - | |
| 104 | + | |
109 | 105 | | |
110 | | - | |
| 106 | + | |
111 | 107 | | |
112 | 108 | | |
113 | 109 | | |
| |||
117 | 113 | | |
118 | 114 | | |
119 | 115 | | |
120 | | - | |
| 116 | + | |
121 | 117 | | |
122 | 118 | | |
123 | 119 | | |
| |||
127 | 123 | | |
128 | 124 | | |
129 | 125 | | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
130 | 129 | | |
131 | 130 | | |
132 | 131 | | |
| |||
0 commit comments