The problem is: sfio seems not to be compatible with Solaris 9. The error
comes from:
#include <stdio-tag.h>
in floatingpoint.h.
This contains only the definition of FILE*... But stdio-tag.tag is not
included into the sfio package, so
both definitions are different and the compiler do not like it.
I fixed this by creating a sfio-tag.h file in the sfio-include which only
contains the inclusion of stdio.h
(I think in solaris code the stdio-tag.h file is only for speedup in
compiling/preprocessing of the internal .h files.
For me it worked then better until a next problem occurs: under solaris 9
the ranlib tool does not seem to work, so
i have to change the Makefile of sfio to use ar with a parameter instead of
it. Because the .a file it produces does not
contain symbol information and linking with the sfio-mt.a does not work and
shows only missing symbols :(
All this is a problem and is not on the PHP side so this is no solution
until the sfio package is solaris 9 compatible.
Uwe
At 19:26 25.03.2003 -0600, you wrote:
>The PHP folks would have to look at this....
>
>Looks like redefinition issue, and something I don't know about.
>
>On the Apache stuff, It just worked..... (this was in 98-99, though).
>
>LER
>
>
>--On Wednesday, March 26, 2003 01:03:09 +0100 Uwe Schindler
><uwe@thetaphi.de> wrote:
>
>>Was a error in -I directive. But now the following error diplays:
>>
>>bash-2.05$ CC=cc CFLAGS="-I/pangaea/install/sfio/include" ./configure
>>--prefix=/pangaea/PHP4 --with-nsapi=/pangaea/webserver
>>--with-sybase-ct=$SYBASE --without-mysql ...
>>
>>bash-2.05$ make
>>/bin/sh /pangaea/install/php4-STABLE-200303210030/libtool --silent
>>--preserve-dup-deps --mode=compile
>>/pangaea/install/php4-STABLE-200303210030/meta_ccld -Iext/ctype/
>>-I/pangaea/install/php4-STABLE-200303210030/ext/ctype/ -DPHP_ATOM_INC
>>-I/pangaea/install/php4-STABLE-200303210030/include
>>-I/pangaea/install/php4-STABLE-200303210030/main
>>-I/pangaea/install/php4-STABLE-200303210030
>>-I/pangaea/webserver/plugins/include
>>-I/pangaea/install/php4-STABLE-200303210030/Zend
>>-I/pangaea/install/php4-STABLE-200303210030/ext/xml/expat
>>-D_POSIX_PTHREAD_SEMANTICS -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT
>>-I/pangaea/install/php4-STABLE-200303210030/TSRM
>>-I/pangaea/install/sfio/include -mt -DZTS -prefer-pic -c
>>/pangaea/install/php4-STABLE-200303210030/ext/ctype/ctype.c -o
>>ext/ctype/ctype.lo "/usr/include/floatingpoint.h", line 41: identifier
>>redeclared: Sfio_t current : struct __FILE {}
>> previous: struct _sfio_s {pointer to unsigned char next, pointer
>>to unsigned char _endw, pointer to unsigned char _endr, pointer to
>>unsigned char endb, pointer to struct _sfio_s {..} _push, unsigned short
>>_flags, short _file, pointer to unsigned char data, int _size, int _val,
>>long long extent, long long here, unsigned char getr, array[1] of
>>unsigned char tiny, unsigned short bits, unsigned int mode, pointer to
>>struct _sfdisc_s {..} disc, pointer to struct _sfpool_s {..} pool,
>>pointer to struct _sfrsrv_s {..} rsrv, pointer to struct _sfproc_s {..}
>>proc, pointer to void mutex, pointer to void stdio, long long lpos,
>>unsigned int iosz, array[2] of pointer to void fill} :
>>"/pangaea/install/sfio/include/sfio.h", line 29
>>"/pangaea/install/php4-STABLE-200303210030/main/snprintf.h", line 67:
>>warning: macro redefined: snprintf cc: acomp failed for
>>/pangaea/install/php4-STABLE-200303210030/ext/ctype/ctype.c *** Error
>>code 1
>>make: Fatal error: Command failed for target `ext/ctype/ctype.lo'
>>bash-2.05$
>>
>>How do you handle that in you apache some time ago....?
>>
>>At 00:27 26.03.2003 +0100, you wrote:
>>>I tried to compile PHP with sfio but I failed because under solaris:
>>>
>>>* linking together with compatiblity libstdio-mt.a (-lstdio-mt) does not
>>>work because this works not for .so files. The linking to libc is not
>>>overwritten. If you compile a whole program with it, it works (the init
>>>code of libstdio-mt.a unlinks all references to libc). But
>>>SunONE/iPlanet servers are not available in sourcecode so you cannot
>>>recompile the main code.
>>>
>>>* To compile with sfio that it works you have to include everywhere the
>>>special version of "stdio.h" (not with <>...). So we need a #define and
>>>we should include it to php-config.h and remove all occurences of
>>>#include <stdio.h> from code... and link to "libsfio.a". But this did
>>>not work, if I include CFLAGS=... before the ./configure it appends the
>>>-I at the end of all includes and will not use the special version of
>>>stdio.h I think the problem is the <> around the standard includes,
>>>they have to be ""...
>>>
>>>* If I do it really hard by: CC="gcc -nostdinc -I/../sfio/include
>>>-I/usr/include" ./configure (to get the right search order)
>>>The compiler claims about some redefinitions and stops somewhere in
>>>pthread.h :(
>>>
>>>Larry: Do you know how I could do this?
>>>
>>>Uwe
>>>
>>>At 05:58 25.03.2003 -0600, you wrote:
>>>
>>>
>>>>--On Tuesday, March 25, 2003 11:57:04 +0000 Wez Furlong
>>>><wez@thebrainroom.com> wrote:
>>>>
>>>>>http://www.research.att.com/sw/tools/sfio/ ?
>>>>yep.
>>>>>
>>>>>This sounds like a reasonable fix; we would need to add a configure
>>>>>check for this. (Although CFLAGS=-I/path/to/sfio/includes ./configure
>>>>>should also work).
>>>>>
>>>>>Uwe, could you try this out?
>>>>>
>>>>>Thanks for the suggestion Larry :)
>>>>My pleasure.
>>>>
>>>>when I was at a Solaris ISP, I used it for my Apache, and it worked
>>>>great.
>>>>
>>>>LER
>>>>
>>>>>
>>>>>--Wez.
>>>>>
>>>>>On Tue, 25 Mar 2003, Larry Rosenman wrote:
>>>>>>There is an AT&T SFIO package that is a drop in replacement stdio
>>>>>>package that fixes
>>>>>>this for solaris.
>>>>
>>>>
>>>>
>>>>--
>>>>Larry Rosenman http://www.lerctr.org/~ler
>>>>Phone: +1 972-414-9812 E-Mail: ler@lerctr.org
>>>>US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749
>>>-----
>>>Uwe Schindler
>>>Addr 1: Bamberger Str. 24a, D-96049 Bamberg
>>>Addr 2: Drausnickstr. 153, D-91052 Erlangen
>>>http://www.thetaphi.de - http:///www.schindlers-software.de
>>>eMails: uwe@thetaphi.de (private); info@schindlers-software.de (company)
>>>Tel./Fax: +49 700 PCLATEIN (+49 700 72528346)
>>>
>>>Schindlers Software - Home of Schindlers PC-LATEIN 3.10
>>>DIE Software zum Lateinlernen!
>>
>>-----
>>Uwe Schindler
>>Addr 1: Bamberger Str. 24a, D-96049 Bamberg
>>Addr 2: Drausnickstr. 153, D-91052 Erlangen
>>http://www.thetaphi.de - http:///www.schindlers-software.de
>>eMails: uwe@thetaphi.de (private); info@schindlers-software.de (company)
>>Tel./Fax: +49 700 PCLATEIN (+49 700 72528346)
>>
>>Schindlers Software - Home of Schindlers PC-LATEIN 3.10
>>DIE Software zum Lateinlernen!
>
>
>
>--
>Larry Rosenman http://www.lerctr.org/~ler
>Phone: +1 972-414-9812 E-Mail: ler@lerctr.org
>US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749
>
-----
Uwe Schindler
Addr 1: Bamberger Str. 24a, D-96049 Bamberg
Addr 2: Drausnickstr. 153, D-91052 Erlangen
http://www.thetaphi.de - http:///www.schindlers-software.de
eMails: uwe@thetaphi.de (private); info@schindlers-software.de (company)
Tel./Fax: +49 700 PCLATEIN (+49 700 72528346)
Schindlers Software - Home of Schindlers PC-LATEIN 3.10
DIE Software zum Lateinlernen!