All of lore.kernel.org
 help / color / mirror / Atom feed
From: Denys Dmytriyenko <denis@denix.org>
To: Alexander Kanavin <alex.kanavin@gmail.com>
Cc: reatmon@ti.com, raj.khem@gmail.com,
	openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH][master] go: Update patch due to build errors
Date: Mon, 28 Nov 2022 16:21:53 -0500	[thread overview]
Message-ID: <20221128212153.GO22689@denix.org> (raw)
In-Reply-To: <CANNYZj8Q2Cu9Z2ujN_frFs2UC4O0PU1tgm2j24843kv_M5eqqg@mail.gmail.com>

On Mon, Nov 28, 2022 at 09:58:43PM +0100, Alexander Kanavin wrote:
> What build errors is this addressing and how can they be observed?

https://bugzilla.yoctoproject.org/show_bug.cgi?id=14976


> On Mon, 28 Nov 2022 at 21:46, Ryan Eatmon via lists.openembedded.org
> <reatmon=ti.com@lists.openembedded.org> wrote:
> >
> > The previous version of this patch was a little too zealous in
> > cleaning up the envvironment.  Some of the variable impacted
> > by the filerCompilerFlags() function require at least one
> > value to remain in the array.  In this case, the values for
> > ccExe, cxxExe, and fcExe require a value or it results in
> > a panic related to accessing a value out of range.
> >
> > The updated patch adds a flag that requires keeping the first
> > value so that at least one thing remains and the assignments
> > for the Exes set that flag to true.  The first item in the
> > array should be the compiler name anyway so it should remain.
> >
> > Signed-off-by: Ryan Eatmon <reatmon@ti.com>
> > ---
> >  ...ent-based-hash-generation-less-pedan.patch | 30 ++++++++++---------
> >  1 file changed, 16 insertions(+), 14 deletions(-)
> >
> > diff --git a/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch b/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
> > index 17fa9d9831..43be5cd2e8 100644
> > --- a/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
> > +++ b/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
> > @@ -74,7 +74,7 @@ index c88b315..a06455c 100644
> >  +              cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p, true)
> >
> >  -              ccExe := b.ccExe()
> > -+              ccExe := filterCompilerFlags(b.ccExe())
> > ++              ccExe := filterCompilerFlags(b.ccExe(), true)
> >                 fmt.Fprintf(h, "CC=%q %q %q %q\n", ccExe, cppflags, cflags, ldflags)
> >                 // Include the C compiler tool ID so that if the C
> >                 // compiler changes we rebuild the package.
> > @@ -83,7 +83,7 @@ index c88b315..a06455c 100644
> >                 }
> >                 if len(p.CXXFiles)+len(p.SwigCXXFiles) > 0 {
> >  -                      cxxExe := b.cxxExe()
> > -+                      cxxExe := filterCompilerFlags(b.cxxExe())
> > ++                      cxxExe := filterCompilerFlags(b.cxxExe(), true)
> >                         fmt.Fprintf(h, "CXX=%q %q\n", cxxExe, cxxflags)
> >                         if cxxID, err := b.gccToolID(cxxExe[0], "c++"); err == nil {
> >                                 fmt.Fprintf(h, "CXX ID=%q\n", cxxID)
> > @@ -91,7 +91,7 @@ index c88b315..a06455c 100644
> >                 }
> >                 if len(p.FFiles) > 0 {
> >  -                      fcExe := b.fcExe()
> > -+                      fcExe := filterCompilerFlags(b.fcExe())
> > ++                      fcExe := filterCompilerFlags(b.fcExe(), true)
> >                         fmt.Fprintf(h, "FC=%q %q\n", fcExe, fflags)
> >                         if fcID, err := b.gccToolID(fcExe[0], "f95"); err == nil {
> >                                 fmt.Fprintf(h, "FC ID=%q\n", fcID)
> > @@ -104,20 +104,22 @@ index c88b315..a06455c 100644
> >         }
> >
> >         // Configuration specific to compiler toolchain.
> > -@@ -2705,8 +2707,23 @@ func envList(key, def string) []string {
> > +@@ -2705,8 +2707,25 @@ func envList(key, def string) []string {
> >         return args
> >   }
> >
> >  +var filterFlags = os.Getenv("CGO_PEDANTIC") == ""
> >  +
> > -+func filterCompilerFlags(flags []string) []string {
> > ++func filterCompilerFlags(flags []string, keepfirst bool) []string {
> >  +      var newflags []string
> > ++   var realkeepfirst bool = keepfirst
> >  +      if !filterFlags {
> >  +              return flags
> >  +      }
> >  +      for _, flag := range flags {
> > -+              if strings.HasPrefix(flag, "-m") {
> > ++              if strings.HasPrefix(flag, "-m") || realkeepfirst {
> >  +                      newflags = append(newflags, flag)
> > ++           realkeepfirst = false
> >  +              }
> >  +      }
> >  +      return newflags
> > @@ -129,21 +131,21 @@ index c88b315..a06455c 100644
> >         defaults := "-g -O2"
> >
> >         if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS, checkCompilerFlags); err != nil {
> > -@@ -2724,6 +2741,13 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l
> > +@@ -2724,6 +2743,13 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l
> >         if ldflags, err = buildFlags("LDFLAGS", defaults, p.CgoLDFLAGS, checkLinkerFlags); err != nil {
> >                 return
> >         }
> >  +      if filtered {
> > -+              cppflags = filterCompilerFlags(cppflags)
> > -+              cflags = filterCompilerFlags(cflags)
> > -+              cxxflags = filterCompilerFlags(cxxflags)
> > -+              fflags = filterCompilerFlags(fflags)
> > -+              ldflags = filterCompilerFlags(ldflags)
> > ++              cppflags = filterCompilerFlags(cppflags, false)
> > ++              cflags = filterCompilerFlags(cflags, false)
> > ++              cxxflags = filterCompilerFlags(cxxflags, false)
> > ++              fflags = filterCompilerFlags(fflags, false)
> > ++              ldflags = filterCompilerFlags(ldflags, false)
> >  +      }
> >
> >         return
> >   }
> > -@@ -2739,7 +2763,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
> > +@@ -2739,7 +2765,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
> >
> >   func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo, outObj []string, err error) {
> >         p := a.Package
> > @@ -152,7 +154,7 @@ index c88b315..a06455c 100644
> >         if err != nil {
> >                 return nil, nil, err
> >         }
> > -@@ -3246,7 +3270,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) {
> > +@@ -3246,7 +3272,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) {
> >
> >   // Run SWIG on one SWIG input file.
> >   func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir string, pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string, err error) {
> > --
> > 2.17.1
> >
> >
> > 
> >


  parent reply	other threads:[~2022-11-28 21:22 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-28 20:46 [PATCH][master] go: Update patch due to build errors Ryan Eatmon
2022-11-28 20:58 ` [OE-core] " Alexander Kanavin
2022-11-28 21:19   ` Ryan Eatmon
2022-11-28 21:21   ` Denys Dmytriyenko [this message]
2022-11-28 21:26     ` Alexander Kanavin
2022-11-28 21:30       ` Ryan Eatmon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221128212153.GO22689@denix.org \
    --to=denis@denix.org \
    --cc=alex.kanavin@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=raj.khem@gmail.com \
    --cc=reatmon@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.