Merge "Omit .gnu_debuglink sections in object files"
am: e29e2473d2
Change-Id: I81dc36130b94bb8e0739c76c98392b6e07cec9c4
This commit is contained in:
commit
b78d3c1b70
5 changed files with 19 additions and 9 deletions
|
@ -326,7 +326,7 @@ func (binary *binaryDecorator) link(ctx ModuleContext,
|
||||||
}
|
}
|
||||||
strippedOutputFile := outputFile
|
strippedOutputFile := outputFile
|
||||||
outputFile = android.PathForModuleOut(ctx, "unstripped", fileName)
|
outputFile = android.PathForModuleOut(ctx, "unstripped", fileName)
|
||||||
binary.stripper.strip(ctx, outputFile, strippedOutputFile, builderFlags)
|
binary.stripper.stripExecutableOrSharedLib(ctx, outputFile, strippedOutputFile, builderFlags)
|
||||||
}
|
}
|
||||||
|
|
||||||
binary.unstrippedOutputFile = outputFile
|
binary.unstrippedOutputFile = outputFile
|
||||||
|
@ -350,7 +350,7 @@ func (binary *binaryDecorator) link(ctx ModuleContext,
|
||||||
if binary.stripper.needsStrip(ctx) {
|
if binary.stripper.needsStrip(ctx) {
|
||||||
out := android.PathForModuleOut(ctx, "versioned-stripped", fileName)
|
out := android.PathForModuleOut(ctx, "versioned-stripped", fileName)
|
||||||
binary.distFile = android.OptionalPathForPath(out)
|
binary.distFile = android.OptionalPathForPath(out)
|
||||||
binary.stripper.strip(ctx, versionedOutputFile, out, builderFlags)
|
binary.stripper.stripExecutableOrSharedLib(ctx, versionedOutputFile, out, builderFlags)
|
||||||
}
|
}
|
||||||
|
|
||||||
binary.injectVersionSymbol(ctx, outputFile, versionedOutputFile)
|
binary.injectVersionSymbol(ctx, outputFile, versionedOutputFile)
|
||||||
|
|
|
@ -721,7 +721,7 @@ func (library *libraryDecorator) linkShared(ctx ModuleContext,
|
||||||
}
|
}
|
||||||
strippedOutputFile := outputFile
|
strippedOutputFile := outputFile
|
||||||
outputFile = android.PathForModuleOut(ctx, "unstripped", fileName)
|
outputFile = android.PathForModuleOut(ctx, "unstripped", fileName)
|
||||||
library.stripper.strip(ctx, outputFile, strippedOutputFile, builderFlags)
|
library.stripper.stripExecutableOrSharedLib(ctx, outputFile, strippedOutputFile, builderFlags)
|
||||||
}
|
}
|
||||||
|
|
||||||
library.unstrippedOutputFile = outputFile
|
library.unstrippedOutputFile = outputFile
|
||||||
|
@ -738,7 +738,7 @@ func (library *libraryDecorator) linkShared(ctx ModuleContext,
|
||||||
if library.stripper.needsStrip(ctx) {
|
if library.stripper.needsStrip(ctx) {
|
||||||
out := android.PathForModuleOut(ctx, "versioned-stripped", fileName)
|
out := android.PathForModuleOut(ctx, "versioned-stripped", fileName)
|
||||||
library.distFile = android.OptionalPathForPath(out)
|
library.distFile = android.OptionalPathForPath(out)
|
||||||
library.stripper.strip(ctx, versionedOutputFile, out, builderFlags)
|
library.stripper.stripExecutableOrSharedLib(ctx, versionedOutputFile, out, builderFlags)
|
||||||
}
|
}
|
||||||
|
|
||||||
library.injectVersionSymbol(ctx, outputFile, versionedOutputFile)
|
library.injectVersionSymbol(ctx, outputFile, versionedOutputFile)
|
||||||
|
|
|
@ -98,7 +98,7 @@ func (p *prebuiltLibraryLinker) link(ctx ModuleContext,
|
||||||
libName := ctx.baseModuleName() + flags.Toolchain.ShlibSuffix()
|
libName := ctx.baseModuleName() + flags.Toolchain.ShlibSuffix()
|
||||||
if p.needsStrip(ctx) {
|
if p.needsStrip(ctx) {
|
||||||
stripped := android.PathForModuleOut(ctx, "stripped", libName)
|
stripped := android.PathForModuleOut(ctx, "stripped", libName)
|
||||||
p.strip(ctx, in, stripped, builderFlags)
|
p.stripExecutableOrSharedLib(ctx, in, stripped, builderFlags)
|
||||||
in = stripped
|
in = stripped
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,7 +197,7 @@ func (p *prebuiltBinaryLinker) link(ctx ModuleContext,
|
||||||
|
|
||||||
if p.needsStrip(ctx) {
|
if p.needsStrip(ctx) {
|
||||||
stripped := android.PathForModuleOut(ctx, "stripped", fileName)
|
stripped := android.PathForModuleOut(ctx, "stripped", fileName)
|
||||||
p.strip(ctx, in, stripped, builderFlags)
|
p.stripExecutableOrSharedLib(ctx, in, stripped, builderFlags)
|
||||||
in = stripped
|
in = stripped
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
14
cc/strip.go
14
cc/strip.go
|
@ -41,7 +41,7 @@ func (stripper *stripper) needsStrip(ctx ModuleContext) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (stripper *stripper) strip(ctx ModuleContext, in android.Path, out android.ModuleOutPath,
|
func (stripper *stripper) strip(ctx ModuleContext, in android.Path, out android.ModuleOutPath,
|
||||||
flags builderFlags) {
|
flags builderFlags, isStaticLib bool) {
|
||||||
if ctx.Darwin() {
|
if ctx.Darwin() {
|
||||||
TransformDarwinStrip(ctx, in, out)
|
TransformDarwinStrip(ctx, in, out)
|
||||||
} else {
|
} else {
|
||||||
|
@ -57,9 +57,19 @@ func (stripper *stripper) strip(ctx ModuleContext, in android.Path, out android.
|
||||||
if Bool(stripper.StripProperties.Strip.Use_gnu_strip) {
|
if Bool(stripper.StripProperties.Strip.Use_gnu_strip) {
|
||||||
flags.stripUseGnuStrip = true
|
flags.stripUseGnuStrip = true
|
||||||
}
|
}
|
||||||
if ctx.Config().Debuggable() && !flags.stripKeepMiniDebugInfo {
|
if ctx.Config().Debuggable() && !flags.stripKeepMiniDebugInfo && !isStaticLib {
|
||||||
flags.stripAddGnuDebuglink = true
|
flags.stripAddGnuDebuglink = true
|
||||||
}
|
}
|
||||||
TransformStrip(ctx, in, out, flags)
|
TransformStrip(ctx, in, out, flags)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (stripper *stripper) stripExecutableOrSharedLib(ctx ModuleContext, in android.Path,
|
||||||
|
out android.ModuleOutPath, flags builderFlags) {
|
||||||
|
stripper.strip(ctx, in, out, flags, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (stripper *stripper) stripStaticLib(ctx ModuleContext, in android.Path, out android.ModuleOutPath,
|
||||||
|
flags builderFlags) {
|
||||||
|
stripper.strip(ctx, in, out, flags, true)
|
||||||
|
}
|
||||||
|
|
|
@ -86,7 +86,7 @@ func (library *toolchainLibraryDecorator) link(ctx ModuleContext,
|
||||||
fileName := ctx.ModuleName() + staticLibraryExtension
|
fileName := ctx.ModuleName() + staticLibraryExtension
|
||||||
outputFile := android.PathForModuleOut(ctx, fileName)
|
outputFile := android.PathForModuleOut(ctx, fileName)
|
||||||
buildFlags := flagsToBuilderFlags(flags)
|
buildFlags := flagsToBuilderFlags(flags)
|
||||||
library.stripper.strip(ctx, srcPath, outputFile, buildFlags)
|
library.stripper.stripStaticLib(ctx, srcPath, outputFile, buildFlags)
|
||||||
return outputFile
|
return outputFile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue