aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2024-02-26 13:31:28 +0100
committerAlexander Potapenko <glider@google.com>2024-02-26 14:08:32 +0000
commit2e48ae432bff2748add61827c9995b91c8f91030 (patch)
tree830b7ff1601d5ad181bddbc7995e201478df44d7
parentda36a36bd4b9de4456c4649e0d47afb1f0b2d050 (diff)
pkg/cover: delete getModuleOffset()
Since commit 971a0f14c5cf6 ("pkg/host: get module .text address from /sys/module") getModuleOffset() is not used by anyone, so it should be safe to delete it.
-rw-r--r--pkg/cover/backend/dwarf.go3
-rw-r--r--pkg/cover/backend/elf.go42
-rw-r--r--pkg/cover/backend/modules.go6
3 files changed, 4 insertions, 47 deletions
diff --git a/pkg/cover/backend/dwarf.go b/pkg/cover/backend/dwarf.go
index 00606f038..c640b3038 100644
--- a/pkg/cover/backend/dwarf.go
+++ b/pkg/cover/backend/dwarf.go
@@ -36,7 +36,6 @@ type dwarfParams struct {
readTextData func(*Module) ([]byte, error)
readModuleCoverPoints func(*targets.Target, *Module, *symbolInfo) ([2][]uint64, error)
readTextRanges func(*Module) ([]pcRange, []*CompileUnit, error)
- getModuleOffset func(string) uint64
getCompilerVersion func(string) string
}
@@ -165,7 +164,7 @@ func makeDWARFUnsafe(params *dwarfParams) (*Impl, error) {
srcDir := params.srcDir
buildDir := params.buildDir
splitBuildDelimiters := params.splitBuildDelimiters
- modules, err := discoverModules(target, objDir, params.moduleObj, params.hostModules, params.getModuleOffset)
+ modules, err := discoverModules(target, objDir, params.moduleObj, params.hostModules)
if err != nil {
return nil, err
}
diff --git a/pkg/cover/backend/elf.go b/pkg/cover/backend/elf.go
index fbb6b4480..cb2c7d706 100644
--- a/pkg/cover/backend/elf.go
+++ b/pkg/cover/backend/elf.go
@@ -29,7 +29,6 @@ func makeELF(target *targets.Target, objDir, srcDir, buildDir string, splitBuild
readTextData: elfReadTextData,
readModuleCoverPoints: elfReadModuleCoverPoints,
readTextRanges: elfReadTextRanges,
- getModuleOffset: elfGetModuleOffset,
getCompilerVersion: elfGetCompilerVersion,
})
}
@@ -203,40 +202,6 @@ func elfReadModuleCoverPoints(target *targets.Target, module *Module, info *symb
return pcs, nil
}
-// Calculate the offset of the module .text section in the kernel memory.
-// /proc/modules only contains the base address, which corresponds to the
-// beginning of the first code section, but that section does not have to
-// be .text (e.g. on Android it may be .plt).
-// The offset is calculated by summing up the aligned sizes of sections
-// that:
-// - precede .text;
-// - are not .init/.exit sections;
-// - have the SHF_ALLOC and SHF_EXECINSTR flags.
-func elfGetModuleOffset(path string) uint64 {
- file, err := elf.Open(path)
- if err != nil {
- return 0
- }
- defer file.Close()
- ts := file.Section(".text")
- if ts == nil {
- return 0
- }
- off := uint64(0)
- const textFlagsMask = elf.SHF_ALLOC | elf.SHF_EXECINSTR
- for _, s := range file.Sections {
- if (s.Flags&textFlagsMask == textFlagsMask) && !strings.HasPrefix(s.SectionHeader.Name, ".init") &&
- !strings.HasPrefix(s.SectionHeader.Name, ".exit") {
- off = alignUp(off, s.SectionHeader.Addralign)
- if s == ts {
- return off
- }
- off += s.SectionHeader.Size
- }
- }
- return 0
-}
-
func elfGetCompilerVersion(path string) string {
file, err := elf.Open(path)
if err != nil {
@@ -253,10 +218,3 @@ func elfGetCompilerVersion(path string) string {
}
return string(data[:])
}
-
-func alignUp(addr, align uint64) uint64 {
- if align == 0 {
- return addr
- }
- return (addr + align - 1) & ^(align - 1)
-}
diff --git a/pkg/cover/backend/modules.go b/pkg/cover/backend/modules.go
index 3a76e607f..1d9b0a0f6 100644
--- a/pkg/cover/backend/modules.go
+++ b/pkg/cover/backend/modules.go
@@ -17,7 +17,7 @@ import (
)
func discoverModules(target *targets.Target, objDir string, moduleObj []string,
- hostModules []host.KernelModule, getModuleOffset func(string) uint64) (
+ hostModules []host.KernelModule) (
[]*Module, error) {
modules := []*Module{
// A dummy module representing the kernel itself.
@@ -25,7 +25,7 @@ func discoverModules(target *targets.Target, objDir string, moduleObj []string,
}
if target.OS == targets.Linux {
modules1, err := discoverModulesLinux(append([]string{objDir}, moduleObj...),
- hostModules, getModuleOffset)
+ hostModules)
if err != nil {
return nil, err
}
@@ -37,7 +37,7 @@ func discoverModules(target *targets.Target, objDir string, moduleObj []string,
}
func discoverModulesLinux(dirs []string, hostModules []host.KernelModule,
- getModuleOffset func(string) uint64) ([]*Module, error) {
+) ([]*Module, error) {
paths, err := locateModules(dirs)
if err != nil {
return nil, err