This forum has been archived. Please start a new discussion on GitHub.

Compile Error on OS X 10.4.2

Hi all,

I'm trying to build Ice 2.1.2 on OS X 10.4.2 and I receive the following error message. I have openssl 0.9.7g installed. I'm using the GCC 4.0.1 compiler. Any ideas? I looked at the code and it seems to be barfing on a macro expansion of PEM_write_bio_SSL_SESSION().

making all in IceSSL
c++ -c -I.. -I../../include  -DICE_SSL_API_EXPORTS  -I/usr/kerberos/include -g -ftemplate-depth-128 -Wall -D_REENTRANT SslTransceiver.cpp
SslTransceiver.cpp: In member function 'void IceSSL::SslTransceiver::showSessionInfo(BIO*)':
SslTransceiver.cpp:992: error: invalid conversion from 'int (*)()' to 'int (*)(...)'
SslTransceiver.cpp:992: error:   initializing argument 1 of 'int PEM_ASN1_write_bio(int (*)(...), const char*, BIO*, char*, const EVP_CIPHER*, unsigned char*, int, int (*)(char*, int, int, void*), void*)'
make[2]: *** [SslTransceiver.o] Error 1
make[1]: *** [all] Error 1
make: *** [all] Error 1


  • benoit
    benoit Rennes, France

    Sorry to hear you're having trouble to compile Ice. Note that we didn't try GCC 4.0.1 on Mac OS X. We only support GCC 3.3 included with the operating system. Did you build GCC 4.0.1 from the sources? AFAIK, the latest Apple developper tools still include GCC 4.0.0.

    In any case, I suggest that you simply comment out the body of the SslTransceiver::showSessionInfo method. It's only used for debugging.

  • Gcc 4.0.1

    GCC 3.3 is the default compiler on 10.3, but GCC 4.0 is the default for 10.4. GCC 4.0.1 is part of the (pre-release) Xcode 2.2.

    I'll comment out that bit of code and try again.

    BTW, using "gcc_select" and switching to the older gcc-3.3, I was able to get it to compile. Odd. I'm guessing not all the kinks haven been worked out of GCC 4.
  • Commenting-out the offending line of code allowed the whole project to compile successfully. Thanks for the info.

    I'll look into this particular bug a bit closer when I have some time. It might be a bad declaration in the OpenSSL code. I know they've tightened up some of the declarations a bit in 0.9.8, however. They might have already addressed this.
  • benoit
    benoit Rennes, France

    Right, Ice compiles fine with GCC 3.3. Here's what I found about this error: It looks like an OpenSSL bug. We'll support GCC 4.0.1 as soon as it's available publicly!