On 05.10.2016 at 16:59, Dennis Clarke wrote:

> I tried the php-install mail list but saw no reply thus I will try here.
> 
> 
> While attempting a build of 7.0.11 I was presented with :
> 
> "/usr/local/build/php-7.0.11_SunOS5.10_sparcv9.001/ext/fileinfo/libmagic/apprentice.c",
> 
> line 2195: error: syntax error before or at: struct
> "/usr/local/build/php-7.0.11_SunOS5.10_sparcv9.001/ext/fileinfo/libmagic/apprentice.c",
> 
> line 2209: error: syntax error before or at: struct
> cc: acomp failed for
> /usr/local/build/php-7.0.11_SunOS5.10_sparcv9.001/ext/fileinfo/libmagic/apprentice.c
> 
> gmake: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
> 
> 
> The problem appears to be in a strange placement of the keyword "struct" :
> 
>    2189  private int
>    2190  parse_apple(struct magic_set *ms, struct magic_entry *me, const
> char *line)
>    2191  {
>    2192          struct magic *m = &me->mp[0];
>    2193
>    2194          return parse_extra(ms, me, line,
>    2195              CAST(off_t, offsetof(struct magic, apple)),
>    2196              sizeof(m->apple), "APPLE", "!+-./", 0);
>    2197  }
>    2198
> 
> also
> 
>    2203  private int
>    2204  parse_mime(struct magic_set *ms, struct magic_entry *me, const
> char *line)
>    2205  {
>    2206          struct magic *m = &me->mp[0];
>    2207
>    2208          return parse_extra(ms, me, line,
>    2209              CAST(zend_off_t, offsetof(struct magic, mimetype)),
>    2210              sizeof(m->mimetype), "MIME", "+-/.", 1);
>    2211  }
>    2212
> 
> 
> Not sure where the definition of "offsetof()" is located but something
> seems clearly not C compliant here.
> 
> So this is using the Oracle Studio 12.5 compiler tools on a big old
> SPARC box running Solaris 10. Any input would be appreciated. The cflags
> were permissive and allowed for transition type elements as I note that
> C99 with strict compliance will fail horribly. The configure stage was
> reasonably clean also.
> 
> In any case .. any input would be greatly appreciated.

offsetof() is supposed to be declared in <stddef.h>[1].  Perhaps it
would need a typedef for your system?

[1] <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stddef.h.html>

-- 
Christoph M. Becker


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to