Re: [squid-users] Solaris/OpenSSL/MD5 Issues

From: Amos Jeffries <squid3@dont-contact.us>
Date: Wed, 07 Nov 2007 23:18:39 +1300

Randall DuCharme wrote:
>
> Greetings,
>
> I've recently run into a problem with building Squid on the latest Solaris 10 release from Sun as well as the Nevada 74 release of OpenSolaris and before I start hacking and wasting time, I'm wondering if someone else has encountered/solved this. I've done a pretty exhaustive Google and BLOG (several) search(es) but am still empty-handed.
>
> The problem seems to be about /usr/include/sys/md5.h .... as follows:
>
> In file included from /usr/include/inet/ip_stack.h:37,
> from /usr/include/inet/ip.h:50,
> from /usr/include/netinet/ip_compat.h:189,
> from IPInterception.cc:59:
> /usr/include/sys/md5.h:62: error: conflicting declaration 'typedef struct MD5_CTX MD5_CTX'
> ../include/md5.h:59: error: 'MD5_CTX' has a previous declaration as `typedef struct MD5Context MD5_CTX'
> /usr/include/sys/md5.h:62: error: declaration of `typedef struct MD5_CTX MD5_CTX'
> ../include/md5.h:59: error: conflicts with previous declaration `typedef struct MD5Context MD5_CTX'
> /usr/include/sys/md5.h:62: error: declaration of `typedef struct MD5_CTX MD5_CTX'
> ../include/md5.h:59: error: conflicts with previous declaration `typedef struct MD5Context MD5_CTX'
> /usr/include/sys/md5.h:62: error: declaration of `typedef struct MD5_CTX MD5_CTX'
> ../include/md5.h:59: error: conflicts with previous declaration `typedef struct MD5Context MD5_CTX'
> /usr/include/sys/md5.h:66: error: declaration of C function `void MD5Final(void*, MD5_CTX*)' conflicts with
> ../include/md5.h:63: error: previous declaration `void MD5Final(uint8_t*, MD5Context*)' here
> gmake[1]: *** [IPInterception.lo] Error 1
> gmake[1]: Leaving directory `/export/home/randy/Download/squid-3.0.RC1/src'
> gmake: *** [all-recursive] Error 1

IPInterception does nothing with MD5_CTX.
Ooooh. Last time I saw an error that appeared to be buried in the sys
headers it turned out to be an autoconf problem generating weird syntax.

Try running bootstrap.sh, and configure, etc again on a clean set of
sources.
If the problem persists please attach a copy of the resulting
include/autoconf.h and configure.log to squid-dev or bugzilla.

Also any patches you are applying.

>
> I'm still running an older (2.6-STABLE5) release that was built on an earlier release of OpenSolaris so I'm not exactly sure what changed or when.
>
>
> Further, I've tried to build 3.0RC1 with SunStudio12 but it complains about operator overloading when building Squid's 3.0 RC1 like so:
>
> CC: Warning: Option -fhuge-objects passed to ld, if ld is invoked, ignored otherwise
> "HttpRequestMethod.h", line 138: Error: Overloading ambiguity between "operator!=(const HttpRequestMethod&, const _method_t&)" and "operator!=(int, int)".
> 1 Error(s) detected.
> *** Error code 1
> make: Fatal error: Command failed for target `cf_gen.o'
> Current working directory /export/home/randy/Download/squid-3.0.RC1/src

This second looks like a compiler issue.
Somehow its not registering types properly in its symbol tables. It's
confusing ptr with int, and even appears to be screwing the const
correctness over (the error is for constptr-to-data, where the squid
code contains ptr-to-constdata. Two very different types in C++).

>
> I can hack my way past the overloading ambiguity problem as well as the GNU assumpton about the -f switch (-fhuge-objects ) but end up
> with roughly the same problem with /usr/include/sys/md5.h.
>
> What the heck am I missing??????
>
>
> Kind regards!
>

Amos
Received on Wed Nov 07 2007 - 03:18:50 MST

This archive was generated by hypermail pre-2.1.9 : Sat Dec 01 2007 - 12:00:02 MST