Fix make_errors.go.
It needs to be taught about modules that are split in two.
Change-Id: Icbf32450eeba2255f40f37c72f1b569a0ebd3a96
Reviewed-on: https://boringssl-review.googlesource.com/15865
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/util/make_errors.go b/util/make_errors.go
index c1aef82..22fbd6a 100644
--- a/util/make_errors.go
+++ b/util/make_errors.go
@@ -90,6 +90,25 @@
return err
}
+ if filepath.Base(filepath.Dir(dirName)) == "fipsmodule" {
+ // Search the non-FIPS half of library for error codes as well.
+ extraPath := filepath.Join(topLevelPath, "crypto", lib+"_extra")
+ extraDir, err := os.Open(extraPath)
+ if err != nil && !os.IsNotExist(err) {
+ return err
+ }
+ if err == nil {
+ defer extraDir.Close()
+ extraFilenames, err := extraDir.Readdirnames(-1)
+ if err != nil {
+ return err
+ }
+ for _, extraFilename := range extraFilenames {
+ filenames = append(filenames, filepath.Join(extraPath, extraFilename))
+ }
+ }
+ }
+
for _, name := range filenames {
if !strings.HasSuffix(name, ".c") {
continue
@@ -135,7 +154,7 @@
buildingPath := filepath.Join(path, "BUILDING.md")
_, err = os.Stat(buildingPath)
- if err != nil && os.IsNotExist(err) {
+ for i := 0; i < 2 && err != nil && os.IsNotExist(err); i++ {
path = filepath.Join("..", path)
buildingPath = filepath.Join(path, "BUILDING.md")
_, err = os.Stat(buildingPath)