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  <andre...@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

Reply via email to