This is an automated email from the ASF dual-hosted git repository.

janc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-newt.git


The following commit(s) were added to refs/heads/master by this push:
     new 121ecdec newt: Fix autogenerated linker script usage
121ecdec is described below

commit 121ecdec770b0aa2880bdd248c60ce7c591471e2
Author: Michal Gorecki <[email protected]>
AuthorDate: Tue Feb 13 16:31:20 2024 +0100

    newt: Fix autogenerated linker script usage
    
    PreNewtError instead of NewNewtError was causing crashes. Also
    "autogenerated" key should be handled when there is only one
    value ("autogenerated") inside the vals slice.
---
 newt/pkg/bsp_package.go | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/newt/pkg/bsp_package.go b/newt/pkg/bsp_package.go
index 54b0aaed..39e46669 100644
--- a/newt/pkg/bsp_package.go
+++ b/newt/pkg/bsp_package.go
@@ -113,15 +113,7 @@ func (bsp *BspPackage) resolveLinkerScriptSetting(
                        return nil, err
                }
 
-               if path == "autogenerated" {
-                       path, err = bsp.getAutogeneratedLinkerScriptPath()
-                       if err != nil {
-                               return nil, util.PreNewtError(err,
-                                       "Could not resolve autogenerated linker 
script path for target \"%s\"",
-                                       bsp.yov.Pkg.Name())
-                       }
-                       paths = append(paths, path)
-               } else if path != "" {
+               if path != "" {
                        paths = append(paths, path)
                }
        } else {
@@ -130,9 +122,19 @@ func (bsp *BspPackage) resolveLinkerScriptSetting(
                // Read each linker script from the list.
                for _, val := range vals {
                        if val == "autogenerated" {
-                               return nil, util.PreNewtError(err,
-                                       "Both autogenerated and custom linker 
scripts cannot be used."+
+                               if len(vals) > 1 {
+                                       return nil, util.NewNewtError("Both 
autogenerated and custom linker scripts cannot be used. " +
                                                "Newt handles either 
autogenerated linker script or a list of custom linker scripts.")
+                               } else {
+                                       path, err := 
bsp.getAutogeneratedLinkerScriptPath()
+                                       if err != nil {
+                                               return nil, 
util.PreNewtError(err,
+                                                       "Could not resolve 
autogenerated linker script path for target \"%s\"",
+                                                       bsp.yov.Pkg.Name())
+                                       }
+                                       paths = append(paths, path)
+                                       continue
+                               }
                        }
 
                        path, err := proj.ResolvePath(ypkg.Repo().Path(), val)

Reply via email to