diff mbox series

[arm] gcc-7-branch: Fix bootstrap on FreeBSD

Message ID b361c803-7607-e67e-b90f-a60d8b56fbe1@fgznet.ch
State New
Headers show
Series [arm] gcc-7-branch: Fix bootstrap on FreeBSD | expand

Commit Message

Andreas Tobler Oct. 16, 2017, 7 p.m. UTC
Hi all,

I struggled over a bootstrap issue while building gcc-7 for armv7-*-freebsd*

I got a 'permission denied' while creating the arm-tables.opt file.

The source tree is located on a nfs server.

The below patch fixed it for me.

Ok to apply?

TIA,
Andreas

2017-10-16  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/arm/t-arm (MD_INCLUDES): Create arm-tables.opt via
	intermediate arm-tables.new like the other awk generated files.

Comments

Kyrill Tkachov Oct. 17, 2017, 10:02 a.m. UTC | #1
Hi Andreas,

On 16/10/17 20:00, Andreas Tobler wrote:
> Hi all,
>
> I struggled over a bootstrap issue while building gcc-7 for 
> armv7-*-freebsd*
>
> I got a 'permission denied' while creating the arm-tables.opt file.
>
> The source tree is located on a nfs server.
>
> The below patch fixed it for me.
>
> Ok to apply?
>
> TIA,
> Andreas
>
> 2017-10-16  Andreas Tobler  <andreast@gcc.gnu.org>
>
>         * config/arm/t-arm (MD_INCLUDES): Create arm-tables.opt via
>         intermediate arm-tables.new like the other awk generated files.
>
> Index: config/arm/t-arm
> ===================================================================
> --- config/arm/t-arm    (revision 253792)
> +++ config/arm/t-arm    (working copy)
> @@ -75,8 +75,8 @@
>   $(srcdir)/config/arm/arm-tables.opt: $(srcdir)/config/arm/parsecpu.awk \
>     $(srcdir)/config/arm/arm-cpus.in
>          $(AWK) -f $(srcdir)/config/arm/parsecpu.awk -v cmd=opt \
> -               $(srcdir)/config/arm/arm-cpus.in > \
> -               $(srcdir)/config/arm/arm-tables.opt
> +               $(srcdir)/config/arm/arm-cpus.in > arm-tables.new
> +       mv arm-tables.new $(srcdir)/config/arm/arm-tables.opt
>

This looks ok to me as it makes the rule consistent with the other 
awk-generated files.

Out of interest, this looks like a small subset of Richard's patch [1] 
at r249971.
Have you tried that patch on the branch?

[1] https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00223.html

Thanks,
Kyrill
>   $(srcdir)/config/arm/arm-cpu.h: $(srcdir)/config/arm/parsecpu.awk \
>     $(srcdir)/config/arm/arm-cpus.in
Andreas Tobler Oct. 17, 2017, 12:42 p.m. UTC | #2
Hi Kyrill,

On 17.10.17 12:02, Kyrill Tkachov wrote:

> On 16/10/17 20:00, Andreas Tobler wrote:
>> Hi all,
>>
>> I struggled over a bootstrap issue while building gcc-7 for
>> armv7-*-freebsd*
>>
>> I got a 'permission denied' while creating the arm-tables.opt file.
>>
>> The source tree is located on a nfs server.
>>
>> The below patch fixed it for me.
>>
>> Ok to apply?
>>
>> TIA,
>> Andreas
>>
>> 2017-10-16  Andreas Tobler  <andreast@gcc.gnu.org>
>>
>>          * config/arm/t-arm (MD_INCLUDES): Create arm-tables.opt via
>>          intermediate arm-tables.new like the other awk generated files.
>>
>> Index: config/arm/t-arm
>> ===================================================================
>> --- config/arm/t-arm    (revision 253792)
>> +++ config/arm/t-arm    (working copy)
>> @@ -75,8 +75,8 @@
>>    $(srcdir)/config/arm/arm-tables.opt: $(srcdir)/config/arm/parsecpu.awk \
>>      $(srcdir)/config/arm/arm-cpus.in
>>           $(AWK) -f $(srcdir)/config/arm/parsecpu.awk -v cmd=opt \
>> -               $(srcdir)/config/arm/arm-cpus.in > \
>> -               $(srcdir)/config/arm/arm-tables.opt
>> +               $(srcdir)/config/arm/arm-cpus.in > arm-tables.new
>> +       mv arm-tables.new $(srcdir)/config/arm/arm-tables.opt
>>
> 
> This looks ok to me as it makes the rule consistent with the other
> awk-generated files.
> 
> Out of interest, this looks like a small subset of Richard's patch [1]
> at r249971.

Hehe, now as you say, yes. But I wasn't aware about it. I just tried to 
fix my bootstrap issue and compared the snippet with main. And tried if 
it helps to use an intermediate file.

> Have you tried that patch on the branch?

No, is this patch going to appear on the gcc-7 branch?
If it is, then I'll not apply my patchlet above.

> [1] https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00223.html

Thanks,
Andreas
Kyrill Tkachov Oct. 17, 2017, 1 p.m. UTC | #3
On 17/10/17 13:42, Andreas Tobler wrote:
> Hi Kyrill,
>
> On 17.10.17 12:02, Kyrill Tkachov wrote:
>
> > On 16/10/17 20:00, Andreas Tobler wrote:
> >> Hi all,
> >>
> >> I struggled over a bootstrap issue while building gcc-7 for
> >> armv7-*-freebsd*
> >>
> >> I got a 'permission denied' while creating the arm-tables.opt file.
> >>
> >> The source tree is located on a nfs server.
> >>
> >> The below patch fixed it for me.
> >>
> >> Ok to apply?
> >>
> >> TIA,
> >> Andreas
> >>
> >> 2017-10-16  Andreas Tobler <andreast@gcc.gnu.org>
> >>
> >>          * config/arm/t-arm (MD_INCLUDES): Create arm-tables.opt via
> >>          intermediate arm-tables.new like the other awk generated 
> files.
> >>
> >> Index: config/arm/t-arm
> >> ===================================================================
> >> --- config/arm/t-arm    (revision 253792)
> >> +++ config/arm/t-arm    (working copy)
> >> @@ -75,8 +75,8 @@
> >>    $(srcdir)/config/arm/arm-tables.opt: 
> $(srcdir)/config/arm/parsecpu.awk \
> >>      $(srcdir)/config/arm/arm-cpus.in
> >>           $(AWK) -f $(srcdir)/config/arm/parsecpu.awk -v cmd=opt \
> >> -               $(srcdir)/config/arm/arm-cpus.in > \
> >> -               $(srcdir)/config/arm/arm-tables.opt
> >> +               $(srcdir)/config/arm/arm-cpus.in > arm-tables.new
> >> +       mv arm-tables.new $(srcdir)/config/arm/arm-tables.opt
> >>
> >
> > This looks ok to me as it makes the rule consistent with the other
> > awk-generated files.
> >
> > Out of interest, this looks like a small subset of Richard's patch [1]
> > at r249971.
>
> Hehe, now as you say, yes. But I wasn't aware about it. I just tried to
> fix my bootstrap issue and compared the snippet with main. And tried if
> it helps to use an intermediate file.
>
> > Have you tried that patch on the branch?
>
> No, is this patch going to appear on the gcc-7 branch?
> If it is, then I'll not apply my patchlet above.
>

AFAIK that patch was part of a series to further improve the 
architecture features selection mechanism for GCC 8
and wasn't thus considered for the GCC 7 branch, but it looks like a 
fairly standalone improvement, so unless Richard
has any objections to it, I think it would be good to take that patch 
for the branch (assuming it passes validation there).

Kyrill

> > [1] https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00223.html
>
> Thanks,
> Andreas
>
Richard Earnshaw (lists) Oct. 17, 2017, 1:17 p.m. UTC | #4
On 17/10/17 14:00, Kyrill Tkachov wrote:
> 
> On 17/10/17 13:42, Andreas Tobler wrote:
>> Hi Kyrill,
>>
>> On 17.10.17 12:02, Kyrill Tkachov wrote:
>>
>> > On 16/10/17 20:00, Andreas Tobler wrote:
>> >> Hi all,
>> >>
>> >> I struggled over a bootstrap issue while building gcc-7 for
>> >> armv7-*-freebsd*
>> >>
>> >> I got a 'permission denied' while creating the arm-tables.opt file.
>> >>
>> >> The source tree is located on a nfs server.
>> >>
>> >> The below patch fixed it for me.
>> >>
>> >> Ok to apply?
>> >>
>> >> TIA,
>> >> Andreas
>> >>
>> >> 2017-10-16  Andreas Tobler <andreast@gcc.gnu.org>
>> >>
>> >>          * config/arm/t-arm (MD_INCLUDES): Create arm-tables.opt via
>> >>          intermediate arm-tables.new like the other awk generated
>> files.
>> >>
>> >> Index: config/arm/t-arm
>> >> ===================================================================
>> >> --- config/arm/t-arm    (revision 253792)
>> >> +++ config/arm/t-arm    (working copy)
>> >> @@ -75,8 +75,8 @@
>> >>    $(srcdir)/config/arm/arm-tables.opt:
>> $(srcdir)/config/arm/parsecpu.awk \
>> >>      $(srcdir)/config/arm/arm-cpus.in
>> >>           $(AWK) -f $(srcdir)/config/arm/parsecpu.awk -v cmd=opt \
>> >> -               $(srcdir)/config/arm/arm-cpus.in > \
>> >> -               $(srcdir)/config/arm/arm-tables.opt
>> >> +               $(srcdir)/config/arm/arm-cpus.in > arm-tables.new
>> >> +       mv arm-tables.new $(srcdir)/config/arm/arm-tables.opt
>> >>
>> >
>> > This looks ok to me as it makes the rule consistent with the other
>> > awk-generated files.
>> >
>> > Out of interest, this looks like a small subset of Richard's patch [1]
>> > at r249971.
>>
>> Hehe, now as you say, yes. But I wasn't aware about it. I just tried to
>> fix my bootstrap issue and compared the snippet with main. And tried if
>> it helps to use an intermediate file.
>>
>> > Have you tried that patch on the branch?
>>
>> No, is this patch going to appear on the gcc-7 branch?
>> If it is, then I'll not apply my patchlet above.
>>
> 
> AFAIK that patch was part of a series to further improve the
> architecture features selection mechanism for GCC 8
> and wasn't thus considered for the GCC 7 branch, but it looks like a
> fairly standalone improvement, so unless Richard
> has any objections to it, I think it would be good to take that patch
> for the branch (assuming it passes validation there).
> 
> Kyrill
> 
>> > [1] https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00223.html
>>
>> Thanks,
>> Andreas
>>
> 

I've no objections to back-porting a suitable subset of the patch.

I'd point out, however, that this file is committed as part of the
source base, so unless you're changing arm-cpus.in (or parsecpu.awk)
there really shouldn't be a need to regenerate that file.  Using
"contrib/gcc_update --touch" should ensure that the date-stamps are all
correct.

R.
diff mbox series

Patch

Index: config/arm/t-arm
===================================================================
--- config/arm/t-arm	(revision 253792)
+++ config/arm/t-arm	(working copy)
@@ -75,8 +75,8 @@ 
  $(srcdir)/config/arm/arm-tables.opt: $(srcdir)/config/arm/parsecpu.awk \
    $(srcdir)/config/arm/arm-cpus.in
  	$(AWK) -f $(srcdir)/config/arm/parsecpu.awk -v cmd=opt \
-		$(srcdir)/config/arm/arm-cpus.in > \
-		$(srcdir)/config/arm/arm-tables.opt
+		$(srcdir)/config/arm/arm-cpus.in > arm-tables.new
+	mv arm-tables.new $(srcdir)/config/arm/arm-tables.opt

  $(srcdir)/config/arm/arm-cpu.h: $(srcdir)/config/arm/parsecpu.awk \
    $(srcdir)/config/arm/arm-cpus.in