diff mbox series

[U-Boot] buildman: support newer gcc versions from kernel.org

Message ID 20180209213747.25582-1-daniel.schwierzeck@gmail.com
State Changes Requested
Delegated to: Tom Rini
Headers show
Series [U-Boot] buildman: support newer gcc versions from kernel.org | expand

Commit Message

Daniel Schwierzeck Feb. 9, 2018, 9:37 p.m. UTC
Add support for gcc versions 7.3.0, 6.4.0 and 4.9.4.

Also use a regex for matching the tarball names. Some gcc versions
use '-ARCH-' instead of '_ARCH-'.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>

---

 tools/buildman/toolchain.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Tom Rini Feb. 9, 2018, 9:43 p.m. UTC | #1
On Fri, Feb 09, 2018 at 10:37:47PM +0100, Daniel Schwierzeck wrote:
> Add support for gcc versions 7.3.0, 6.4.0 and 4.9.4.
> 
> Also use a regex for matching the tarball names. Some gcc versions
> use '-ARCH-' instead of '_ARCH-'.
> 
> Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
> 
> ---
> 
>  tools/buildman/toolchain.py | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/buildman/toolchain.py b/tools/buildman/toolchain.py
> index 2076323d5d..76dcb67614 100644
> --- a/tools/buildman/toolchain.py
> +++ b/tools/buildman/toolchain.py
> @@ -33,7 +33,7 @@ class MyHTMLParser(HTMLParser):
>          HTMLParser.__init__(self)
>          self.arch_link = None
>          self.links = []
> -        self._match = '_%s-' % arch
> +        self.re_arch = re.compile('[-_]%s-' % arch)
>  
>      def handle_starttag(self, tag, attrs):
>          if tag == 'a':
> @@ -41,7 +41,7 @@ class MyHTMLParser(HTMLParser):
>                  if tag == 'href':
>                      if value and value.endswith('.xz'):
>                          self.links.append(value)
> -                        if self._match in value:
> +                        if self.re_arch.search(value):
>                              self.arch_link = value
>  
>  
> @@ -431,7 +431,7 @@ class Toolchains:
>          """
>          arch = command.OutputOneLine('uname', '-m')
>          base = 'https://www.kernel.org/pub/tools/crosstool/files/bin'
> -        versions = ['4.9.0', '4.6.3', '4.6.2', '4.5.1', '4.2.4']
> +        versions = ['7.3.0', '6.4.0', '5.5.0', '4.9.4', '4.9.0', '4.6.3', '4.6.2', '4.5.1', '4.2.4']

Thanks for doing this.  I think we should trim out the toolchain
versions a bit.  We shouldn't need anything older than 4.9.0, or maybe
even 4.9.4 now.

I also worry about making 7.x or 6.x be the default fetched versions
now.  I know gcc-6.x adds more warnings as I use the Debian toolchains
in my test builds.  So travis is going to go right to erroring out.
Since your patch is going to start with 7.3, can you please push this to
travis and see what fails, so we have an idea on how hard it will be to
move CI to 7.3?  Thanks!
Daniel Schwierzeck Feb. 9, 2018, 9:53 p.m. UTC | #2
On 09.02.2018 22:43, Tom Rini wrote:
> On Fri, Feb 09, 2018 at 10:37:47PM +0100, Daniel Schwierzeck wrote:
>> Add support for gcc versions 7.3.0, 6.4.0 and 4.9.4.
>>
>> Also use a regex for matching the tarball names. Some gcc versions
>> use '-ARCH-' instead of '_ARCH-'.
>>
>> Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
>>
>> ---
>>
>>  tools/buildman/toolchain.py | 6 +++---
>>  1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/tools/buildman/toolchain.py b/tools/buildman/toolchain.py
>> index 2076323d5d..76dcb67614 100644
>> --- a/tools/buildman/toolchain.py
>> +++ b/tools/buildman/toolchain.py
>> @@ -33,7 +33,7 @@ class MyHTMLParser(HTMLParser):
>>          HTMLParser.__init__(self)
>>          self.arch_link = None
>>          self.links = []
>> -        self._match = '_%s-' % arch
>> +        self.re_arch = re.compile('[-_]%s-' % arch)
>>  
>>      def handle_starttag(self, tag, attrs):
>>          if tag == 'a':
>> @@ -41,7 +41,7 @@ class MyHTMLParser(HTMLParser):
>>                  if tag == 'href':
>>                      if value and value.endswith('.xz'):
>>                          self.links.append(value)
>> -                        if self._match in value:
>> +                        if self.re_arch.search(value):
>>                              self.arch_link = value
>>  
>>  
>> @@ -431,7 +431,7 @@ class Toolchains:
>>          """
>>          arch = command.OutputOneLine('uname', '-m')
>>          base = 'https://www.kernel.org/pub/tools/crosstool/files/bin'
>> -        versions = ['4.9.0', '4.6.3', '4.6.2', '4.5.1', '4.2.4']
>> +        versions = ['7.3.0', '6.4.0', '5.5.0', '4.9.4', '4.9.0', '4.6.3', '4.6.2', '4.5.1', '4.2.4']
> 
> Thanks for doing this.  I think we should trim out the toolchain
> versions a bit.  We shouldn't need anything older than 4.9.0, or maybe
> even 4.9.4 now.

yes, that makes sense

> 
> I also worry about making 7.x or 6.x be the default fetched versions
> now.  I know gcc-6.x adds more warnings as I use the Debian toolchains
> in my test builds.  So travis is going to go right to erroring out.
> Since your patch is going to start with 7.3, can you please push this to
> travis and see what fails, so we have an idea on how hard it will be to
> move CI to 7.3?  Thanks!
> 

I've scheduled builds for 7.3.0 [1] and 6.4.0 [2]

[1] https://travis-ci.org/danielschwierzeck/u-boot/builds/339663802
[2] https://travis-ci.org/danielschwierzeck/u-boot/builds/339664291
Tom Rini Feb. 9, 2018, 11:26 p.m. UTC | #3
On Fri, Feb 09, 2018 at 10:53:44PM +0100, Daniel Schwierzeck wrote:
> 
> 
> On 09.02.2018 22:43, Tom Rini wrote:
> > On Fri, Feb 09, 2018 at 10:37:47PM +0100, Daniel Schwierzeck wrote:
> >> Add support for gcc versions 7.3.0, 6.4.0 and 4.9.4.
> >>
> >> Also use a regex for matching the tarball names. Some gcc versions
> >> use '-ARCH-' instead of '_ARCH-'.
> >>
> >> Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
> >>
> >> ---
> >>
> >>  tools/buildman/toolchain.py | 6 +++---
> >>  1 file changed, 3 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/tools/buildman/toolchain.py b/tools/buildman/toolchain.py
> >> index 2076323d5d..76dcb67614 100644
> >> --- a/tools/buildman/toolchain.py
> >> +++ b/tools/buildman/toolchain.py
> >> @@ -33,7 +33,7 @@ class MyHTMLParser(HTMLParser):
> >>          HTMLParser.__init__(self)
> >>          self.arch_link = None
> >>          self.links = []
> >> -        self._match = '_%s-' % arch
> >> +        self.re_arch = re.compile('[-_]%s-' % arch)
> >>  
> >>      def handle_starttag(self, tag, attrs):
> >>          if tag == 'a':
> >> @@ -41,7 +41,7 @@ class MyHTMLParser(HTMLParser):
> >>                  if tag == 'href':
> >>                      if value and value.endswith('.xz'):
> >>                          self.links.append(value)
> >> -                        if self._match in value:
> >> +                        if self.re_arch.search(value):
> >>                              self.arch_link = value
> >>  
> >>  
> >> @@ -431,7 +431,7 @@ class Toolchains:
> >>          """
> >>          arch = command.OutputOneLine('uname', '-m')
> >>          base = 'https://www.kernel.org/pub/tools/crosstool/files/bin'
> >> -        versions = ['4.9.0', '4.6.3', '4.6.2', '4.5.1', '4.2.4']
> >> +        versions = ['7.3.0', '6.4.0', '5.5.0', '4.9.4', '4.9.0', '4.6.3', '4.6.2', '4.5.1', '4.2.4']
> > 
> > Thanks for doing this.  I think we should trim out the toolchain
> > versions a bit.  We shouldn't need anything older than 4.9.0, or maybe
> > even 4.9.4 now.
> 
> yes, that makes sense
> 
> > 
> > I also worry about making 7.x or 6.x be the default fetched versions
> > now.  I know gcc-6.x adds more warnings as I use the Debian toolchains
> > in my test builds.  So travis is going to go right to erroring out.
> > Since your patch is going to start with 7.3, can you please push this to
> > travis and see what fails, so we have an idea on how hard it will be to
> > move CI to 7.3?  Thanks!
> > 
> 
> I've scheduled builds for 7.3.0 [1] and 6.4.0 [2]
> 
> [1] https://travis-ci.org/danielschwierzeck/u-boot/builds/339663802
> [2] https://travis-ci.org/danielschwierzeck/u-boot/builds/339664291

x86 broke, but I submitted a patch for the new warning gcc-6.x and later
shows yesterday.
diff mbox series

Patch

diff --git a/tools/buildman/toolchain.py b/tools/buildman/toolchain.py
index 2076323d5d..76dcb67614 100644
--- a/tools/buildman/toolchain.py
+++ b/tools/buildman/toolchain.py
@@ -33,7 +33,7 @@  class MyHTMLParser(HTMLParser):
         HTMLParser.__init__(self)
         self.arch_link = None
         self.links = []
-        self._match = '_%s-' % arch
+        self.re_arch = re.compile('[-_]%s-' % arch)
 
     def handle_starttag(self, tag, attrs):
         if tag == 'a':
@@ -41,7 +41,7 @@  class MyHTMLParser(HTMLParser):
                 if tag == 'href':
                     if value and value.endswith('.xz'):
                         self.links.append(value)
-                        if self._match in value:
+                        if self.re_arch.search(value):
                             self.arch_link = value
 
 
@@ -431,7 +431,7 @@  class Toolchains:
         """
         arch = command.OutputOneLine('uname', '-m')
         base = 'https://www.kernel.org/pub/tools/crosstool/files/bin'
-        versions = ['4.9.0', '4.6.3', '4.6.2', '4.5.1', '4.2.4']
+        versions = ['7.3.0', '6.4.0', '5.5.0', '4.9.4', '4.9.0', '4.6.3', '4.6.2', '4.5.1', '4.2.4']
         links = []
         for version in versions:
             url = '%s/%s/%s/' % (base, arch, version)