Subject: php compile fails

From: Ralf Grabow <[email-masked]>
Date: Fri, 20 Sep 2002 13:24:17 +0000

Hello list.

>> here:
>> imap-2002.RC6
>> php-4.2.3
>> linux 2.4.18
>> cyrus-imapd-2.1.9
>> cyrus-sasl-2.1.6
>> httpd-2.0.40
>> ./configure  --with-apxs2=/usr/local/apache2/bin/apxs
>>  --with-pear --disable-debug --enable-track-vars --with-ftp
>>  --with-xml --enable-sockets
>>  --with-imap=/usr/src/imap-2002.RC6 --with-gettext=yes
>>  --with-cyrus --with-openssl
>>
>> php-4.2.3:> make:
>> ...
>> /usr/src/imap-2002.RC6/lib/libc-client.a(osdep.o): In function `fatal':
>> /usr/src/imap-2002.RC6/c-client/fs_unix.c(.text+0x9500): multiple
>> definition of `fatal'
>> /usr/src/php-4.2.3/ext/cyrus/.libs/libcyrus.al(cyrus.lo)(.text+0x160):/u
>> sr/src/php-4.2.3/ext/cyrus/cyrus.c: first defined here
>> /usr/i486-suse-linux/bin/ld: Warning: size of symbol `fatal' changed
>> from 40 to 43 in /usr/src/imap-2002.RC6/lib/libc-client.a(osdep.o)
>> /usr/local/lib/libcyrus.a(xmalloc.o): In function `fs_get':
>> /usr/src/cyrus-imapd-2.1.9/lib/xmalloc.c(.text+0x190): multiple
>>  definition of `fs_get'
>> /usr/src/imap-2002.RC6/lib/libc-client.a(osdep.o)(.text+0x93c0):/usr/src
>> /imap-2002.RC6/c-client/env_unix.c: first defined here
>> /usr/i486-suse-linux/bin/ld: Warning: size of symbol `fs_get' changed
>> from 110 to 44 in /usr/local/lib/libcyrus.a(xmalloc.o)
>> /usr/local/lib/libcyrus.a(xmalloc.o): In function `fs_give':
>> /usr/src/cyrus-imapd-2.1.9/lib/xmalloc.c(.text+0x1c0): multiple
>> definition of `fs_give'
>> /usr/src/imap-2002.RC6/lib/libc-client.a(osdep.o)(.text+0x94b0):/usr/src
>> /imap-2002.RC6/c-client/fs_unix.c: first defined
>> here/usr/i486-suse-linux/bin/ld: Warning: size of symbol `fs_give'
>> changed from 80 to 34 in /usr/local/lib/libcyrus.a(xmalloc.o)
>> collect2: ld returned 1 exit status
>> make[1]: *** [libphp4.la] Error 1
>> make[1]: Leaving directory `/usr/src/php-4.2.3'
>> make: *** [all-recursive] Error 1
>>
>> see also Bug #15776 imap compile failure
>>
>
> [19 Sep 8:20pm] [email-masked]
>
> Sorry, but the bug system is not the appropriate forum for asking
> support questions. Your problem does not imply a bug in PHP itself.
> ...
> Your problem is in your c-client compile not PHP.  Talk to c-client people..

I do make slx in the imap-2002.RC6 directory and all seems to be okay.
How can I avoid these multiple definitions.

Ralf
-- 
------------------------------------------------------------------
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/c-client-list.html
------------------------------------------------------------------

---

From: Mark Crispin <[email-masked]>
Date: Fri, 20 Sep 2002 09:11:08 -0700 (PDT)

I'm sorry, but this problem seems to go back to the PHP people, or possibly to
the Cyrus people.

It looks like PHP is trying to link with two libraries, libc-client.a and
libcyrus.a, and that both libraries have routines named fatal() and fs_get().

c-client has had these routine names as globals for a long time (15 years),
long before Cyrus existed.  If libcyrus.a is supposed to be lunk with c-client
in an application, it can not define global routines with these names.

So either it is a Cyrus problem (libcyrus.a uses conflicting global names), or
it is a PHP problem (PHP is linking two incompatible libraries).  That is
something that you'll need to discuss with the PHP and/or Cyrus people.

I do not know enough about either Cyrus or PHP to be able to determine which
one of these two possibilities that it is.  I can, however, tell you that it's
not a c-client problem.

I don't know why [email-masked] told you that it was a "c-client compile".
It is clearly doing a link, not a compile; and this link is in PHP and not in
c-client.  c-client was obviously lunk quite some time earlier.