[Pdns-users] Solaris 8 with gmysql compile error - 2.9.16

Petros Diveris petros at urban-eye.com
Mon Mar 8 17:16:49 UTC 2004

sorry for previous html - mozilla mail you see!


Apologies if it has been covered before, I don't seem to be able to find 
anything about it on the the list. I am compiling pdns 2.9.16 with 
gmysql and recursor on Solaris 8, with gcc 3.3.2

When I ran make (obviously after configure) I got the following error:

In file included from smysql.cc:4:
smysql.hh:13: error: type specifier omitted for parameter `u_int16_t'
smysql.hh:13: error: parse error before `=' token
smysql.cc:16: error: prototype for `SMySQL::SMySQL(const std::string&, const
   std::string&, short unsigned int, const std::string&, const std::string&,
   const std::string&)' does not match any in class `SMySQL'
smysql.hh:11: error: candidates are: SMySQL::SMySQL()
smysql.hh:11: error:                 SMySQL::SMySQL(const SMySQL&)
make: *** [smysql.lo] Error 1

I added a

typedef uint16_t u_int16_t at the begining and that sorted the problem. 
Something similar happened with ippreftree.cc. This time I got the 
following error:

In file included from ippreftree.cc:10:
ippreftree.hh:27: error: parse error before `,' token
ippreftree.hh:30: error: parse error before `,' token
ippreftree.hh:41: error: parse error before `,' token
ippreftree.hh:43: error: parse error before `,' token
ippreftree.hh:46: error: ISO C++ forbids declaration of `u_int32_t' with no
ippreftree.hh:46: error: `u_int32_t' declared as an `inline' field
ippreftree.hh:46: error: parse error before `(' token
ippreftree.hh:47: error: type specifier omitted for parameter `u_int32_t'
ippreftree.hh:47: error: parse error before `&' token

Again, I typedefed at the begining

typedef uint132_t u_int32_t

which sorted the problem out. However, running make I know got

mtasker.cc: In member function `void MTasker<EventKey,
   EventVal>::makeThread(void (*)(void*), void*) [with EventKey = PacketID,
   EventVal = std::string]':
pdns_recursor.cc:456:   instantiated from here
mtasker.cc:230: error: invalid conversion from `void (*)()' to `void 
make[3]: *** [pdns_recursor.o] Error 1
make[3]: Leaving directory `/usr/home/pete/pdns-2.9.16/pdns'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/home/pete/pdns-2.9.16/pdns'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/home/pete/pdns-2.9.16'
make: *** [all] Error 2

It  seems that the #IFDEF SOLARIS on line 227 didn't actually do 
anything so I had to "force" it to use the Solaris specific line, i.e. 
makecontext (uc, void (*) (...))threadWrapper, 4, this, start, maxtid, val);

After that, the code compiled and built fine but obviously I can't 
really deploy if I am not sure about whether I am doing something wrong 
or there are probs with Solaris 8?

Any ideas/suggestions much appreciated.

Petros Diveris

iFone, Ltd

The contents of this email are supposed to be confidential. However, the security services of at least the US, UK, Canada, Australia and New Zealand have actually intercepted it. The same applies to your replies. You've been warned. You can check: www.gnupg.org for more info.

More information about the Pdns-users mailing list