Releases: cilium/ebpf
v0.16.0
program: automatic verifier log sizing and ProgramInfo.RecursionMisses()
For the longest time users had to specify ProgramOptions.LogSize
to get the
full verifier log for large programs. The library now automatically figures out
the correct buffer size to use and the field is deprecated. It will be removed
in the next version.
ProgramInfo now exposes how often a program didn't execute due to recursion
limits via RecursionMisses
.
perf, ringbuf: better control over wakeups, Flush()
There is a trade off between how fast samples are processed and how much CPU is
used. Reading samples as quickly as possible uses more CPU, reading in batches
is cheaper.
It's now possible to configure a "maximum time before a wakeup" by using
Reader.SetDeadline(). This now guarantees that any pending samples are read
at the end of the deadline, even if the Watermark wasn't reached.
It's also possible to manually flush the buffer using Flush()
.
Bugfixes
- The various
Copy()
methods now to a full deep copy and all accept nil values. - link: kprobe and uprobe links can now be pinned.
What's Changed
- perf: clean up error handling and bare fds by @lmb in #1444
- [go.mod] Change
go
directive to1.21
by @mx-psi in #1441 - gh: don't use code blocks in Bug report template by @lmb in #1450
- CI: Update kernel from v6.7 to v6.8 by @dylandreimerink in #1452
- build(deps): bump mkdocs from 1.5.3 to 1.6.0 in /docs by @dependabot in #1455
- build(deps): bump golangci/golangci-lint-action from 4.0.0 to 5.1.0 by @dependabot in #1454
- build(deps): bump mkdocs-material from 9.5.16 to 9.5.20 in /docs by @dependabot in #1456
- build(deps): bump mkdocs-git-revision-date-localized-plugin from 1.2.4 to 1.2.5 in /docs by @dependabot in #1458
- build(deps): bump jinja2 from 3.1.3 to 3.1.4 in /docs by @dependabot in #1459
- replace virtme by @lmb in #1321
- ci: ignore kprobe_multi test failures on arm64 by @lmb in #1461
- perf: flush Record when deadline is exceeded by @lmb in #1429
- link: allow retrieving perf event file descriptor by @lmb in #1425
- perf_event_open cpu should be -1 for valid PID by @brycekahle in #1464
- link: add test suite for netkit by @brlbil in #1463
- debug sporadic vimto hang by @lmb in #1466
- build(deps): bump requests from 2.31.0 to 2.32.0 in /docs by @dependabot in #1469
- ci: use stable-selftests tag by @lmb in #1472
- link: add Info() method to all link types by @rgo3 in #1435
- Add RecursionMisses to access ProgramInfo recursion misses counter by @olsajiri in #1465
- elf: turn BTF map_extra into ErrNotSupported by @lmb in #1483
- docs: add a section on examples by @lmb in #1482
- build(deps): bump mkdocs-material from 9.5.20 to 9.5.26 in /docs by @dependabot in #1484
- build(deps): bump golangci/golangci-lint-action from 5.1.0 to 6.0.1 by @dependabot in #1479
- build(deps): bump mkdocs-git-authors-plugin from 0.8.0 to 0.9.0 in /docs by @dependabot in #1476
- build(deps): bump mkdocs-git-revision-date-localized-plugin from 1.2.5 to 1.2.6 in /docs by @dependabot in #1477
- map: fix TestMapBatch failing with ENOSPC for hash maps by @lmb in #1485
- gh: try to group dependabot updates by @lmb in #1412
- map: add Map.Handle() method for retrieving a Map's type information by @ti-mo in #1488
- build(deps): bump urllib3 from 2.2.1 to 2.2.2 in /docs by @dependabot in #1489
- add example using Linux TC hook for network flow monitoring by @smagnani96 in #1352
- docs: fix clipped headline on home page by @lmb in #1493
- Fix ringbuffer ring size reporting by @usamasaqib in #1492
- Add Flush to manually unblock Read/ReadInto by @brycekahle in #1491
- bpf2go: export core functionality by @lmb in #1494
- allow to pin kprobe and kprobe_multi links by @olsajiri in #1496
- build(deps): bump mkdocs-material from 9.5.26 to 9.5.27 in /docs by @dependabot in #1498
- link: allow pinning uprobe multi links by @lmb in #1499
- program, btf: probe correct log buffer size by @lmb in #1500
- build(deps): bump certifi from 2024.6.2 to 2024.7.4 in /docs by @dependabot in #1504
- cmd/bpf2go: make Nick Zavaritsky a reviewer by @lmb in #1505
- perf: fix panic when CPU is offline by @Ghostbaby in #1503
- map: fix flaky TestMapIteratorAllocations by @lmb in #1506
- link: fix nil pointer dereference in AttachXDP by @gavinbunney in #1507
- info: make it harder to add backwards incompatible API by @lmb in #1515
- perf: do not add offline CPUs by @florianl in #1510
- fix a variety of Copy() problems by @lmb in #1518
- map: do not allocate on lookup when key doesn't exist by @brycekahle in #1519
- program: deprecate LogSize and VerifierError.Truncated by @lmb in #1520
- btf: fix panic when copying nil Type by @lmb in #1521
- map: remove misleading error message when creating without BTF by @lmb in #1522
New Contributors
- @mx-psi made their first contribution in #1441
- @brlbil made their first contribution in #1463
- @smagnani96 made their first contribution in #1352
- @usamasaqib made their first contribution in #1492
- @Ghostbaby made their first contribution in #1503
- @gavinbunney made their first contribution in #1507
Full Changelog: v0.15.0...v0.16.0
v0.15.0
btf: bpf_core_type_matches
is now supported
Programs can now use bpf_core_type_matches()
for a stricter compatibility check. See #1366.
program, btf: improve debuggability when CO-RE or kfunc fixup fails
The library now tries to return a more informative error when loading a program fails due to a failed CO-RE relocation or a missing kfunc. See #1402.
btf: synthesise instruction comments into line info
asm.Comment
in an instruction's Source()
are now passed to the kernel in the form of BTF line info. See #1417.
perf: add WakeupEvents support to Reader
A perf Reader can now be configured to be woken up after a specific number of events / samples have been submitted. See #1404.
Bugfixes
program
: fix loading a program which targets a function in a kernel module whenCONFIG_DEBUG_INFO_BTF_MODULES
is disabled, see #1440.
Breaking changes
github.com/cilium/ebpf/btf
Copy
: thetransform
argument was removed. Use the newbtf.As
function instead.Transformer
: removed. See above.
What's Changed
- btf: use recursion by @lmb in #1397
- gh: hopefully fix apidiff workflow by @lmb in #1401
- gh: only cancel pull_request runs by @lmb in #1403
- build(deps): bump pymdown-extensions from 10.7 to 10.7.1 in /docs by @dependabot in #1410
- build(deps): bump mkdocs-git-authors-plugin from 0.7.2 to 0.8.0 in /docs by @dependabot in #1411
- build(deps): bump mkdocs-material from 9.5.12 to 9.5.16 in /docs by @dependabot in #1409
- program, btf: improve debuggability when CO-RE or kfunc fixup fails by @lmb in #1402
- add WakeupEvents support to perf Reader by @brycekahle in #1404
- Extend go test CI from 10 to 15 miniutes by @dylandreimerink in #1418
- btf: synthesise instruction comments into line info by @MarcusWichelmann in #1417
- Add support to retrieve missed counts from probes by @olsajiri in #1295
- perf: fix TestPerfReaderWakeupEvents by @lmb in #1423
- Don't mention inexistent outLen parameter in (*Program).Test godoc by @tklauser in #1426
- btf: refuse reloTypeIDTarget for kmod types by @lmb in #1422
- when ringbuffer map size is not a power-of-2 multiple of page size, prompt users in a user-friendly way by @hengyoush in #1420
- btf: Add support for
bpf_core_type_matches()
by @dylandreimerink in #1366 - Define LookupLock by means of BPF_F_LOCK by @tklauser in #1428
- build(deps): bump idna from 3.6 to 3.7 in /docs by @dependabot in #1431
- fix function name by @looklose in #1427
- doc: rephrase supported kernel versions by @lmb in #1439
- Use latest Go version for ARM64 and VM tests in CI by @tklauser in #1430
- program: don't return error when kmod BTF is disabled by @orishuss in #1440
New Contributors
- @hengyoush made their first contribution in #1420
- @looklose made their first contribution in #1427
- @orishuss made their first contribution in #1440
Full Changelog: v0.14.0...v0.15.0
v0.14.0
btf: support for CO-RE relocations against kernel modules
It's now possible to use CO-RE relocations against types defined in kernel modules. See #1300 by @brycekahle.
link: netkit support
The link
package now allows attaching to netkit interfaces. See #1257 by @hemanthmalla
link: support for iterating links
The new link.Iterator
type allows enumerating all BPF links active. See #1392 by @mpastyl.
Bugfixes
ringbuf
: fixed a bug which can lead to corrupt data on arm64, see #1375
Breaking changes
github.com/cilium/ebpf
ProgramOptions
is not comparable anymore due toKernelModuleTypes
.
github.com/cilium/ebpf/btf
CORERelocate
had its singature change once again.
What's Changed
- Add CO-RE support for kernel modules by @brycekahle in #1300
- Create CONTRIBUTING.md by @sandipanpanda in #1361
- build(deps): bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 by @dependabot in #1362
- build(deps): bump mkdocs-material from 9.5.8 to 9.5.12 in /docs by @dependabot in #1363
- test: don't rely on append() to copy base slice by @ti-mo in #1367
- Add support for netkit device by @hemanthmalla in #1257
- docs: update project roles by @lmb in #1374
- make rgo3 owner of features package by @lmb in #1376
- ringbuf: replace clamp with min by @lmb in #1377
- ringbuf: fix corrupt samples on arm64 by @paulcacheux in #1375
- ringbuf: simplify ringReader by @lmb in #1379
- CI: increase vm memory to avoid oomkills by @lmb in #1378
- Add support for weak kfuncs by @dylandreimerink in #1364
- CODEOWNERS: assign code ownership to florianl, mmat11 and dylandreimerink by @ti-mo in #1382
- elf_reader_test: Fix CI by disabling the "test_log_fixup" selftest by @dylandreimerink in #1385
- btf: use recursion in coreAreTypesCompatible by @lmb in #1383
- link, internal: generate full linkinfo for union subtypes by @rgo3 in #1359
- gh: do not hide internal/sys/types.go in diffs by @lmb in #1388
- tests: clean up ClangEndian by @lmb in #1389
- examples: avoid depending on internal packages by @ti-mo in #1289
- doc: add DCO by @lmb in #1396
- Fix GitHub edit link on every page by @remram44 in #1393
- chore: fix some comments by @majorteach in #1391
- miscellaneous test fixes by @lmb in #1386
- link: add Iterator by @mpastyl in #1392
New Contributors
- @sandipanpanda made their first contribution in #1361
- @hemanthmalla made their first contribution in #1257
- @remram44 made their first contribution in #1393
- @majorteach made their first contribution in #1391
- @mpastyl made their first contribution in #1392
Full Changelog: v0.13.2...v0.14.0
v0.13.2
v0.13.1
What's Changed
- fix trusted "Tag breaking changes" workflow by @paulcacheux in #1347
- fix: add testcast for PutInteger by @atgane in #1323
- btf: Take instruction size into account when handling poison relocation by @dylandreimerink in #1351
- btf: fix race due to concurrent read access by @lmb in #1357
New Contributors
Full Changelog: v0.13.0...v0.13.1
v0.13.0
Faster btf.LoadKernelSpec()
Obtaining the kernel's BTF used to be very slow and is now very fast. See #1235 by @lmb.
TCX
It's now possible to attach TC programs using the new bpf_link based TCX API. See #1163 by @lmb.
UprobeMulti and UretprobeMulti
These are the user-space equivalents to KprobeMulti and Kretprobe multi and allow
attaching to a large number of symbols quickly. See #1269 by @olsajiri.
Netfilter link
There is now support to attach Netfilter programs using bpf_links. See #1313 by @mehrdadrad.
Better ELF section naming compatibility
The list of recognised ELF section names is now automatically generated from
libbpf and should be more accurate and easier to keep up to date. See #1209 by @lmb.
Pre-allocate per-CPU values
It's now possible to cut down on allocations by pre-allocating per-CPU values. See #1220 by @alxn.
Batch operation support for per-CPU values
Batch operations like Map.BatchLookup now support per-CPU values. Note that this
is not particularly optimised, please check whether it is faster based on your
use case. See #1192 by @alxn.
Breaking changes
This release requires at least Go 1.21.
github.com/cilium/ebpf
(*Map).BatchLookup
,(*Map).BatchLookupAndDelete
: now take aMapBatchCursor
.
The previous implementation did not properly account for differences between
map types and was unsafe.
github.com/cilium/ebpf/btf
- CORERelocate: now takes an additional argument, which is usually
Spec.TypeID
. - MarshalExtInfos: now takes an additional
*Builder
instead of allocating it.
Simply passNewBuilder()
.
Both of these are considered somewhat internal API of the library.
github.com/cilium/ebpf/features
HaveBoundedLoops
: changed from var to funcHaveLargeInstructions
: changed from var to funcHaveV2ISA
: changed from var to funcHaveV3ISA
: changed from var to func
github.com/cilium/ebpf/link
QueryOptions.Path
: removed. Instead, pass an fd to the directory viaQueryOptions.Target
.QueryPrograms
: now returnsQueryResult
to be able to extend the API.RawAttachProgramOptions.Replace
: removed. Instead, passReplaceProgram()
toRawAttachProgramOptions.Anchor
.
What's Changed
- btf: fix CO-RE relocations for local type id by @lmb in #1191
- fix data race by caching ring buffer size by @brycekahle in #1217
- elf: generate ELF section patterns from libbpf by @lmb in #1209
- Move PossibleCPUs to a public API by @alxn in #1219
- CI: add go-apidiff check by @lmb in #1225
- CI: fix trusted workflow by @lmb in #1227
- CI: allow writing PRs from trusted workflow by @lmb in #1228
- link: add TCX support by @lmb in #1163
- map: allow pre-allocating per-CPU values on lookup by @alxn in #1220
- CI: store apidiff as json artifact by @lmb in #1229
- docs: split CONTRIBUTING.md into separate pages by @lmb in #1221
- CI: add logging to trusted workflow by @lmb in #1233
- Revert "CI: add logging to trusted workflow" by @lmb in #1234
- add kfunc benchmark by @lmb in #1231
- link: rename First, Last to Head, Tail by @lmb in #1232
- docs: remove WIP pages by @lmb in #1236
- go.mod: update golang.org/x/sys to v0.15.0 by @tklauser in #1241
- map: avoid allocations in MapIterator.Next by @lmb in #1243
- map: Introduce BatchCursor abstraction by @christarazi in #1223
- Xabier/fix typos by @txabman42 in #1248
- build(deps): bump pymdown-extensions from 10.3.1 to 10.5 in /docs by @dependabot in #1246
- build(deps): bump mkdocs-material from 9.4.7 to 9.4.14 in /docs by @dependabot in #1247
- map: fix flaky TestMapBatch/Hash by @lmb in #1250
- CI: execute benchmarks once to prevent bitrot by @lmb in #1244
- doc: use Sourcegraph query for list of importers by @lmb in #1252
- test: Migrate tests to github.com/go-quicktest/qt by @sayboras in #1253
- map: avoid allocations during batch lookup of common types by @lmb in #1254
- CI: run tests on arm64 by @lmb in #1245
- map: Fix MapBatch test for BatchLookupAndDelete case by @lmb in #1260
- link: fix TestUprobeExtWithOpts address by @rgo3 in #1272
- cmd/bpf2go: rephrase GOPACKAGE error message by @lmb in #1267
- run-tests: fetch kernels and selftests from containers by @lmb in #1264
- GH: use an issue form for bug reports by @lmb in #1268
- program: fix raw_tracepoint run repeat check bug by @mtardy in #1275
- fix make update-kernel-deps by @lmb in #1276
- Add per-CPU Map Support to Batch Operations by @alxn in #1192
- build(deps): bump mkdocs-material from 9.4.14 to 9.5.3 in /docs by @dependabot in #1285
- build(deps): bump mkdocs-git-revision-date-localized-plugin from 1.2.1 to 1.2.2 in /docs by @dependabot in #1287
- perf: fix nil pointer when perf map create failed by @cfc4n in #1282
- Fix link.Info.XDP comment to match method name by @aibor in #1292
- Add link.Info.TCX method by @aibor in #1293
- link: add feature test for tcx by @rgo3 in #1294
- cmd/bpf2go: Make LoongArch a supported target by @chenhengqi in #1296
- features: fix documentation by @lmb in #1299
- build(deps): bump gitpython from 3.1.40 to 3.1.41 in /docs by @dependabot in #1302
- link: fix tcx feature test by @rgo3 in #1303
- build(deps): bump jinja2 from 3.1.2 to 3.1.3 in /docs by @dependabot in #1305
- cmd/bpf2go: clean up goarch / clang / linux target handling by @lmb in #1310
- add kernel 6.7 by @lmb in #1314
- btf: fix slow LoadKernelSpec by making Spec.Copy lazy by @lmb in #1235
- cmd/bpf2go: fix s390x target by @lmb in #1312
- map: Make the Examples all testable examples. by @alxn in #1278
- Add support for uprobe multi link by @olsajiri in #1269
- link: add netfilter support by @mehrdadrad in #1313
- bpf2go: support specifying output directory and package name by @chent1996 in #1280
- build(deps): bump mkdocs-material from 9.5.3 to 9.5.6 in /docs by @dependabot in #1324
- bump minimum Go to 1.21 by @lmb in #1331
- add support for reading auxv from Go runtime by @paulcacheux in #1319
- dependabot: onboard github actions upgrades by @paulcacheux in #1332
- build(deps): bump actions/checkout from 3 to 4 by @dependabot in #1334
- use slices and maps packages instead of x/exp by @lmb in #1333
- build(deps): bump actions/setup-python from 4 to 5 by @dependabot in #1335
- build(deps): bump actions/github-script from 3 to 7 by @dependabot in #1336
- build(deps): bump actions/upload-artifact from 3 to 4 by @dependabot in #1337
- build(deps): bump mkdocs-git-revision-date-localized-plugin from 1.2.2 to 1.2.4 in /docs by @dependabot in #1339
- build(deps): bump mkdocs-material from 9.5.6 to 9.5.8 in /docs by @dependabot in #1340
- build(deps): bump actions/setup-go from 4 to 5 by @dependabot in #1338
- internal: replace internal memoize with sync.OnceValues by @kwakubiney in #1240
- fix minor contradiction in comments by @christian-2 in #1341
- map: rename BatchCursor to MapBatchCursor by @lmb in #1344
New Contributors
v0.12.3
This is a small release to fix an incompatibility with golang.org/x/sys/[email protected]. There is a variety of performance improvements as well.
What's Changed
- Add Remaining and Size to perf/ring Record by @brycekahle in #1167
- btf: correct printing size of Int type in bytes by @Asphaltt in #1182
- collection: Add Assign method by @danobi in #1114
- add 6.6 to CI by @lmb in #1187
- docs: add overview for package features by @rgo3 in #1164
- elf: skip local_kptr_stash libbpf test by @lmb in #1190
- btf: support both elf and raw BTF in loadKernelSpec by @wxx213 in #1177
- elf: skip local_kptr_stash_fail test by @lmb in #1198
- btf, sys: update vmlinux.btf.gz to 6.6 by @lmb in #1200
- btf: optimize stringTable to speed up vmlinux parsing by @lmb in #1203
- program: fix LINUX_HAS_SYSCALL_WRAPPER use with bpf_tracing.h by @paulcacheux in #1202
- btf: Optimize string table for globally increasing offsets by @dylandreimerink in #1210
- map: include full property diff in ErrMapIncompatible error string by @ti-mo in #1212
- Add new ISAv4 instructions by @dylandreimerink in #1193
- asm: cleanups for v4 ISA by @lmb in #1214
- build(deps): bump mkdocs-material from 9.4.4 to 9.4.7 in /docs by @dependabot in #1197
- build(deps): bump pymdown-extensions from 10.3 to 10.3.1 in /docs by @dependabot in #1196
- build(deps): bump mkdocs-macros-plugin from 1.0.4 to 1.0.5 in /docs by @dependabot in #1195
- build(deps): bump mkdocs-git-revision-date-localized-plugin from 1.2.0 to 1.2.1 in /docs by @dependabot in #1194
- small speedups during elf loading by @paulcacheux in #1207
- go.mod: update golang.org/x/sys to latest unreleased version by @tklauser in #1215
- btf: Optimizing BTF parsing by merging
readTypes
andinflateRawTypes
by @dylandreimerink in #1211
New Contributors
Full Changelog: v0.12.2...v0.12.3
v0.12.2
This release fixes unmarshaling from a map operation into a []byte
, see #1180. This is a regression in v0.12.0.
We now also properly return an error when the value to unmarshal into is too small, see #1181. This behaviour has existed for a long time.
What's Changed
- btf: stop accessing Spec.types from tests by @lmb in #1176
- PinType: change from int to uint32 by @ti-mo in #1179
- example: fix key type of xdp example by @BillyChen1 in #1178
- sysenc: special case unmarshaling into []byte by @lmb in #1180
- sysenc: refuse to unmarshal into undersized dst by @lmb in #1181
New Contributors
- @BillyChen1 made their first contribution in #1178
Full Changelog: v0.12.1...v0.12.2
v0.12.1
Fixes
Fix ProgramInfo.Instructions failing to decode ExtInfos
A recent change to ProgramInfo.Instructions failed to take a difference between kernel and ELF wire format into account. This meant that retrieving the instructions of a program from the kernel failed with a error.
Fix reading auxv on 32-bit platforms
The code to determine the kernel version from vdso has been broken on 32-bit platforms. Note that 32-bit arches are not officially supported to the fix is best effort.
What's Changed
- internal: fix reading auxv on 32-bit platforms by @lmb in #1144
- perf: clarify purpose of the package by @lmb in #1172
- build(deps): bump urllib3 from 2.0.6 to 2.0.7 in /docs by @dependabot in #1170
- btf: some inflateRawTypes simplifications by @lmb in #1173
- docs: improve Makefile UX with pipenv sync by @ti-mo in #1174
- btf,info: Fix bad instruction offset when parsing infos from kernel by @dylandreimerink in #1169
Full Changelog: v0.12.0...v0.12.1
v0.12.0
This release requires at least Go 1.20. It is mainly a bugfix release without any expected breaking changes. Map operations have also been made faster on the Go side.
Fixes
Correctly freeze .rodata
maps
.rodata
maps were frozen after programs referring to them were loaded, preventing the verifier from eliminating dead code based on the contents of the .rodata
maps. Upgrade if you're running into odd verifier errors that don't occur on libbpf.
See #1159.
Fix fd leak in error path of kfunc support
The library leaked file descriptors when trying to use non-existent kfuncs.
See #1145.
Fix incorrect formatting of signed BTF enums with negative values
Signed enums with negative values were incorrectly formatted, leading to invalid output from bpf2go
.
See #1155.
Additions
Map operations using common types are much faster
Keys and values used in map operations were indiscriminately passed through the encoding/binary
package. There is now a fast path which skips this step when the in-memory layout of a type is equivalent to the output produced by binary.Write
. The result is less allocations and CPU usage.
The optimization doesn't apply to per-CPU maps.
See #1062.
What's Changed
- .semaphore: rename master to main by @lmb in #1092
- improv: make errors more conclusive by @kwakubiney in #1071
- elf: don't clamp PerfEventArray.MaxEntries at parse time by @lmb in #1094
- internal/sys: make generate-btf and regenerate types by @florianl in #1105
- all: fix typos in comments and tests by @alexandear in #1109
- Add riscv64 Linux string by @hack3ric in #1110
- go: require v1.20 by @lmb in #1112
- testutils: log random seed to test output by @lmb in #1113
- Ringbuf read on timeout by @RonFed in #1111
- elf: don't set BPF_F_MMAPABLE on .kconfig by @lmb in #1128
- implementation for hinting on possible error on map create with noPrealloc flag set by @kwakubiney in #1102
- docker: rebuild ebpf-builder to include go 1.20 by @lmb in #1130
- CI: test against 6.1 by @lmb in #1131
- Add metadata to instructions returned by program info by @dylandreimerink in #1118
- Support attaching fentry / fexit on user-defined programs by @jschwinger233 in #1097
- map: zero-allocation operations for common types by @lmb in #1062
- elf_reader_test: check for bpf_testmod before running TestInvalidKfunc by @ti-mo in #1135
- CI: add github actions by @lmb in #1134
- btf: work around missing ENUM64 support by @lmb in #1132
- run-tests: support new packaging by @lmb in #1091
- Update bpf2go and stringer go:generate statements across the codebase by @ti-mo in #1140
- Drop LLVM 7 and 9 in favor of 11, 14 and 17 by @ti-mo in #1141
- btf: clean up some small things by @lmb in #1139
- CI: update apt repositories by @lmb in #1146
- linker: fix fd leak in fixupKfuncs by @lmb in #1145
- Project documentation website by @ti-mo in #1017
- dependabot: add configuration, ignore indirect Python dependencies by @ti-mo in #1148
- build(deps): bump mkdocs-material from 9.3.2 to 9.4.3 in /docs by @dependabot in #1150
- bpf2go,collection: fix typos in test and comment by @alexandear in #1138
- docs: remove partials override for content.html by @ti-mo in #1153
- sys: small cleanups by @lmb in #1154
- docs: copy shorthands to clipboard in getting-started by @ti-mo in #1158
- testdata: drop the use of clang_major directive by @ti-mo in #1151
- btf: fix writing out signed enums by @lmb in #1155
- elf: assume BTF support in loader tests by @lmb in #1161
- elf: Add support for map struct typedef by @anjmao in #1125
- Freeze .rodata before trying to load programs by @ti-mo in #1159
New Contributors
- @alexandear made their first contribution in #1109
- @hack3ric made their first contribution in #1110
- @RonFed made their first contribution in #1111
- @jschwinger233 made their first contribution in #1097
- @dependabot made their first contribution in #1150
- @anjmao made their first contribution in #1125
Full Changelog: v0.11.0...v0.12.0