diff mbox

ARM FreeBSD fix bootstrap

Message ID 567A6C12.9080305@foss.arm.com
State New
Headers show

Commit Message

Kyrill Tkachov Dec. 23, 2015, 9:40 a.m. UTC
Hi Andreas,

On 22/12/15 19:53, Andreas Tobler wrote:
> Hi all,
>
> the commit for PR68617 broke boostrap on armv6*-*-freebsd*.
>
> We still have unaligned_access = 0 on armv6 here on FreeBSD.
>
> The commit from the above PR overrides my SUBTARGET_OVERRIDE_OPTIONS I called in arm_option_override. And it sets the unaligned_access to 1.
>
> The attached patch fixes this, bootstrap ongoing but passed the breaking stage where genmddeps bus errored.
>
> Is this patch ok for trunk once bootstrap completes?
>
> TIA,
> Andreas
>
> 2015-12-22  Andreas Tobler  <andreast@gcc.gnu.org>
>
>     * config/arm/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Adjust to
>     check unaligned_access on the gcc_options set.
>     * config/arm/arm.c (arm_option_override): Move
>     SUBTARGET_OVERRIDE_OPTIONS from here to
>     (arm_option_override_internal).
>

This looks sensible to me with a couple of questions:


Also, do you have access to an arm linux target? Would be nice to perform a bootstrap there as well
as a sanity check

If that works then this patch is fine.

Thanks,
Kyrill

Comments

Andreas Tobler Dec. 23, 2015, 7:21 p.m. UTC | #1
Hi Kyrill,

On 23.12.15 10:40, Kyrill Tkachov wrote:

> On 22/12/15 19:53, Andreas Tobler wrote:
>> Hi all,
>>
>> the commit for PR68617 broke boostrap on armv6*-*-freebsd*.
>>
>> We still have unaligned_access = 0 on armv6 here on FreeBSD.
>>
>> The commit from the above PR overrides my SUBTARGET_OVERRIDE_OPTIONS I called in arm_option_override. And it sets the unaligned_access to 1.
>>
>> The attached patch fixes this, bootstrap ongoing but passed the breaking stage where genmddeps bus errored.
>>
>> Is this patch ok for trunk once bootstrap completes?
>>
>> TIA,
>> Andreas
>>
>> 2015-12-22  Andreas Tobler  <andreast@gcc.gnu.org>
>>
>>      * config/arm/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Adjust to
>>      check unaligned_access on the gcc_options set.
>>      * config/arm/arm.c (arm_option_override): Move
>>      SUBTARGET_OVERRIDE_OPTIONS from here to
>>      (arm_option_override_internal).
>>
>
> This looks sensible to me with a couple of questions:
>
> --- config/arm/freebsd.h	(revision 231903)
> +++ config/arm/freebsd.h	(working copy)
> @@ -122,8 +122,8 @@
>
>    #define SUBTARGET_OVERRIDE_OPTIONS		\
>    do {						\
> -    if (unaligned_access)			\
> -	unaligned_access = 0;			\
> +    if (opts->x_unaligned_access)		\
> +	opts->x_unaligned_access = 0;		\
>    } while (0)
>
> So FreeBSD doesn't have unaligned_access at all? Even for architecture revisions later than armv6?

No, not yet. We distinguish between arm(<armv6) armv6 and arm64.

> Also, do you have access to an arm linux target? Would be nice to perform a bootstrap there as well
> as a sanity check

I do not have linux target. But I think with my next iteration of the 
patch it is not possible to break any other target.

> If that works then this patch is fine.

As Richard mentioned in a follow up mail there is an other user of 
SUBTARGET_OVERRIDE_OPTIONS. So I have to adjust. See the next mail.

Thanks,
Andreas
diff mbox

Patch

--- config/arm/freebsd.h	(revision 231903)
+++ config/arm/freebsd.h	(working copy)
@@ -122,8 +122,8 @@ 
  
  #define SUBTARGET_OVERRIDE_OPTIONS		\
  do {						\
-    if (unaligned_access)			\
-	unaligned_access = 0;			\
+    if (opts->x_unaligned_access)		\
+	opts->x_unaligned_access = 0;		\
  } while (0)
  
So FreeBSD doesn't have unaligned_access at all? Even for architecture revisions later than armv6?