Merge changes I918b4878,I85238d93,Iefee8a91

* changes:
  Add an output file tag for proguard dictionaries
  Add InstallBypassMake
  Document wokaround for yama ptrace restrictions
This commit is contained in:
Treehugger Robot
2019-08-09 00:12:27 +00:00
committed by Gerrit Code Review
6 changed files with 44 additions and 5 deletions

View File

@@ -355,6 +355,18 @@ and then in another terminal:
dlv connect :1234 dlv connect :1234
``` ```
If you see an error:
```
Could not attach to pid 593: this could be caused by a kernel
security setting, try writing "0" to /proc/sys/kernel/yama/ptrace_scope
```
you can temporarily disable
[Yama's ptrace protection](https://www.kernel.org/doc/Documentation/security/Yama.txt)
using:
```bash
sudo sysctl -w kernel.yama.ptrace_scope=0
```
## Contact ## Contact
Email android-building@googlegroups.com (external) for any questions, or see Email android-building@googlegroups.com (external) for any questions, or see

View File

@@ -689,10 +689,6 @@ func (c *config) DevicePrimaryArchType() ArchType {
return c.Targets[Android][0].Arch.ArchType return c.Targets[Android][0].Arch.ArchType
} }
func (c *config) SkipDeviceInstall() bool {
return c.EmbeddedInMake()
}
func (c *config) SkipMegaDeviceInstall(path string) bool { func (c *config) SkipMegaDeviceInstall(path string) bool {
return Bool(c.Mega_device) && return Bool(c.Mega_device) &&
strings.HasPrefix(path, filepath.Join(c.buildDir, "target", "product")) strings.HasPrefix(path, filepath.Join(c.buildDir, "target", "product"))

View File

@@ -155,6 +155,7 @@ type ModuleContext interface {
InstallInData() bool InstallInData() bool
InstallInSanitizerDir() bool InstallInSanitizerDir() bool
InstallInRecovery() bool InstallInRecovery() bool
InstallBypassMake() bool
RequiredModuleNames() []string RequiredModuleNames() []string
HostRequiredModuleNames() []string HostRequiredModuleNames() []string
@@ -192,6 +193,7 @@ type Module interface {
InstallInData() bool InstallInData() bool
InstallInSanitizerDir() bool InstallInSanitizerDir() bool
InstallInRecovery() bool InstallInRecovery() bool
InstallBypassMake() bool
SkipInstall() SkipInstall()
ExportedToMake() bool ExportedToMake() bool
NoticeFile() OptionalPath NoticeFile() OptionalPath
@@ -837,6 +839,10 @@ func (m *ModuleBase) InstallInRecovery() bool {
return Bool(m.commonProperties.Recovery) return Bool(m.commonProperties.Recovery)
} }
func (m *ModuleBase) InstallBypassMake() bool {
return false
}
func (m *ModuleBase) Owner() string { func (m *ModuleBase) Owner() string {
return String(m.commonProperties.Owner) return String(m.commonProperties.Owner)
} }
@@ -1493,6 +1499,10 @@ func (m *moduleContext) InstallInRecovery() bool {
return m.module.InstallInRecovery() return m.module.InstallInRecovery()
} }
func (m *moduleContext) InstallBypassMake() bool {
return m.module.InstallBypassMake()
}
func (m *moduleContext) skipInstall(fullInstallPath OutputPath) bool { func (m *moduleContext) skipInstall(fullInstallPath OutputPath) bool {
if m.module.base().commonProperties.SkipInstall { if m.module.base().commonProperties.SkipInstall {
return true return true
@@ -1506,7 +1516,7 @@ func (m *moduleContext) skipInstall(fullInstallPath OutputPath) bool {
} }
if m.Device() { if m.Device() {
if m.Config().SkipDeviceInstall() { if m.Config().EmbeddedInMake() && !m.InstallBypassMake() {
return true return true
} }

View File

@@ -46,6 +46,7 @@ type ModuleInstallPathContext interface {
InstallInData() bool InstallInData() bool
InstallInSanitizerDir() bool InstallInSanitizerDir() bool
InstallInRecovery() bool InstallInRecovery() bool
InstallBypassMake() bool
} }
var _ ModuleInstallPathContext = ModuleContext(nil) var _ ModuleInstallPathContext = ModuleContext(nil)
@@ -818,6 +819,17 @@ func PathForOutput(ctx PathContext, pathComponents ...string) OutputPath {
return OutputPath{basePath{path, ctx.Config(), ""}} return OutputPath{basePath{path, ctx.Config(), ""}}
} }
// pathForInstallInMakeDir is used by PathForModuleInstall when the module returns true
// for InstallBypassMake to produce an OutputPath that installs to $OUT_DIR instead of
// $OUT_DIR/soong.
func pathForInstallInMakeDir(ctx PathContext, pathComponents ...string) OutputPath {
path, err := validatePath(pathComponents...)
if err != nil {
reportPathError(ctx, err)
}
return OutputPath{basePath{"../" + path, ctx.Config(), ""}}
}
// PathsForOutput returns Paths rooted from buildDir // PathsForOutput returns Paths rooted from buildDir
func PathsForOutput(ctx PathContext, paths []string) WritablePaths { func PathsForOutput(ctx PathContext, paths []string) WritablePaths {
ret := make(WritablePaths, len(paths)) ret := make(WritablePaths, len(paths))
@@ -1123,6 +1135,9 @@ func PathForModuleInstall(ctx ModuleInstallPathContext, pathComponents ...string
outPaths = append([]string{"debug"}, outPaths...) outPaths = append([]string{"debug"}, outPaths...)
} }
outPaths = append(outPaths, pathComponents...) outPaths = append(outPaths, pathComponents...)
if ctx.InstallBypassMake() && ctx.Config().EmbeddedInMake() {
return pathForInstallInMakeDir(ctx, outPaths...)
}
return PathForOutput(ctx, outPaths...) return PathForOutput(ctx, outPaths...)
} }

View File

@@ -227,6 +227,10 @@ func (m moduleInstallPathContextImpl) InstallInRecovery() bool {
return m.inRecovery return m.inRecovery
} }
func (m moduleInstallPathContextImpl) InstallBypassMake() bool {
return false
}
func TestPathForModuleInstall(t *testing.T) { func TestPathForModuleInstall(t *testing.T) {
testConfig := TestConfig("", nil) testConfig := TestConfig("", nil)

View File

@@ -370,6 +370,8 @@ func (j *Module) OutputFiles(tag string) (android.Paths, error) {
return append(android.Paths{j.outputFile}, j.extraOutputFiles...), nil return append(android.Paths{j.outputFile}, j.extraOutputFiles...), nil
case ".jar": case ".jar":
return android.Paths{j.implementationAndResourcesJar}, nil return android.Paths{j.implementationAndResourcesJar}, nil
case ".proguard_map":
return android.Paths{j.proguardDictionary}, nil
default: default:
return nil, fmt.Errorf("unsupported module reference tag %q", tag) return nil, fmt.Errorf("unsupported module reference tag %q", tag)
} }