Jeremy,
      The Trak reporting system is down so I am posting this to the
mailing list instead. I have puzzled out a hack to work around the
boehm-gc regressions and resulting gcj breakage in darwin15 from the
recompilation of the libunwind.dylib with Apple Clang 7.0. The
attached patch reduces the alignment from 8 to 2 on x86_64 64-bit and
from 4 to 2 on i386 32-bit. Note that the alignment could have been
reduced to 1 but this would have produced additional performance
reductions in speed. Also an alignment of 4 for the x86_64 64-bit code
still fails the boehm-gc test suite. The gcc 5.2.0 compiler built on
darwin15 shows no regressions in the libjava test suite with this
patch proving that a functional gcj is restored for darwin15. Also
this change shows no regression in the resulting build on darwin13 as
well.
               Jack
ps I still strongly suspect that the Apple Clang 7.0 compiler is
actually improperly optimizing libunwind and this issue really should
be explored by Apple to make sure additional software beyond
boehm-gc/gcj isn't impacted.
--- boehm-gc/include/private/gcconfig.h.orig    2015-10-11 17:19:25.000000000 
-0400
+++ boehm-gc/include/private/gcconfig.h 2015-10-11 15:41:26.000000000 -0400
@@ -1041,10 +1041,10 @@
 #   define MACH_TYPE "I386"
 #   if defined(__LP64__) || defined(_WIN64)
 #     define CPP_WORDSZ 64
-#     define ALIGNMENT 8
+#     define ALIGNMENT 2
 #   else
 #     define CPP_WORDSZ 32
-#     define ALIGNMENT 4
+#     define ALIGNMENT 2
                        /* Appears to hold for all "32 bit" compilers   */
                        /* except Borland.  The -a4 option fixes        */
                        /* Borland.                                     */
@@ -2005,10 +2005,10 @@
 # ifdef X86_64
 #   define MACH_TYPE "X86_64"
 #   ifdef __ILP32__
-#     define ALIGNMENT 4
+#     define ALIGNMENT 2
 #     define CPP_WORDSZ 32
 #   else
-#     define ALIGNMENT 8
+#     define ALIGNMENT 2
 #     define CPP_WORDSZ 64
 #   endif
 #   ifndef HBLKSIZE
_______________________________________________
macports-dev mailing list
[email protected]
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to