Merge "Omit .gnu_debuglink sections in object files"

am: e29e2473d2

Change-Id: I81dc36130b94bb8e0739c76c98392b6e07cec9c4
This commit is contained in:
Ryan Prichard 2019-06-03 16:29:29 -07:00 committed by android-build-merger
commit b78d3c1b70
5 changed files with 19 additions and 9 deletions

View file

@ -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)

View file

@ -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)

View file

@ -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
} }

View file

@ -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)
}

View file

@ -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
} }