Hi Theo
Yes, this is what I'm seeing.
The abort (ref google) appears to be due to the absence of some of the builtins referred to at line 54 of pngshim.c
If I rearrange the conditional it'll go past that, then fails around line 110 calling the routine determined by line54 et al .. seems to be looking for a builtin that isn't 'responding'. gcc source suggests the builtin should be there..
This is the patch pngshim.c.p I used to get past the abort .. cludgy I know ..
JB
--- src/sfnt/pngshim.c.orig 2017-09-16 14:01:48.000000000 +0100
+++ src/sfnt/pngshim.c 2018-04-12 21:24:14.397961733 +0100
@@ -61,16 +61,13 @@
/* predates clang; the `__BYTE_ORDER__' preprocessor symbol was */
/* introduced in gcc 4.6 and clang 3.2, respectively. */
/* `__builtin_shuffle' for gcc was introduced in gcc 4.7.0. */
-#if ( ( defined( __GNUC__ ) && \
- ( ( __GNUC__ >= 5 ) || \
- ( ( __GNUC__ == 4 ) && ( __GNUC_MINOR__ >= 7 ) ) ) ) || \
- ( defined( __clang__ ) && \
- ( ( __clang_major__ >= 4 ) || \
- ( ( __clang_major__ == 3 ) && ( __clang_minor__ >= 2 ) ) ) ) ) && \
- defined( __OPTIMIZE__ ) && \
- __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+#ifdef __GNUC__
+#if ( ( __GNUC__ >= 5 ) || ( ( __GNUC__ == 4 ) && ( __GNUC_MINOR__ >= 7 ) ) )
+#ifdef __clang__
+#if ( ( __clang_major__ >= 4 ) || ( ( __clang_major__ == 3 ) && ( __clang_minor__ >= 2 ) ) )
+#ifdef __OPTIMIZE__
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
-#ifdef __clang__
/* the clang documentation doesn't cover the two-argument case of */
/* `__builtin_shufflevector'; however, it is is implemented since */
/* version 2.8 */
@@ -78,6 +75,11 @@
#else
#define vector_shuffle __builtin_shuffle
No comments:
Post a Comment