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