Files
moloch-- c7ee9636e9 feat: add FreeBSD amd64 and arm64 support
Enable BOF and ELF shared-library loading on FreeBSD, including recursive dependency handling and exact symbol-version resolution.

Add strict no-skip FreeBSD 15.1 QEMU coverage, a 25-object semantic BOF corpus per architecture, platform documentation, and the verified Sliver compile exception.
2026-08-23 19:00:58 -07:00

41 lines
1.1 KiB
Go

//go:build linux && !android && (386 || amd64 || (arm && arm.7) || arm64 || ppc64le || riscv64)
package linuxmem
import "fmt"
func initLinuxDynAPI() error {
modules, err := runtimeModules()
if err != nil {
return err
}
dlopenAddr, err := resolveRuntimeAPISymbol(modules, "dlopen")
if err != nil {
return fmt.Errorf("resolve runtime symbol dlopen: %w", err)
}
dlsymAddr, err := resolveRuntimeAPISymbol(modules, "dlsym")
if err != nil {
return fmt.Errorf("resolve runtime symbol dlsym: %w", err)
}
dlerrorAddr, err := resolveRuntimeAPISymbol(modules, "dlerror")
if err != nil {
return fmt.Errorf("resolve runtime symbol dlerror: %w", err)
}
dlvsymAddr, _ := resolveRuntimeAPISymbol(modules, "dlvsym")
dlcloseAddr, err := resolveRuntimeAPISymbol(modules, "dlclose")
if err != nil {
return fmt.Errorf("resolve runtime symbol dlclose: %w", err)
}
linuxAPI = linuxDynAPI{
dlopen: dlopenAddr,
dlsym: dlsymAddr,
dlvsym: dlvsymAddr,
dlclose: dlcloseAddr,
dlerror: dlerrorAddr,
defaultHandle: 0,
}
return nil
}