[Pdns-users] Solaris 11 SPARC pdns recursor compilation

Дмитрий Клим dklimentiev at gmail.com
Tue Apr 11 17:31:22 UTC 2017


Hello guys,
I'm using pdns recursor 3.7.3 now (Solaris 11 sparc) which was compiled
from sources.
And I have an issue with pdns recursor upgrade to version 4.0.4.

I'm using the latest Solaris 11.3 release
root at rep11:/users/admin/pdns-recursor-4.0.4.1# pkg list entire
NAME (PUBLISHER)                                  VERSION
 IFO
entire                                            0.5.11-0.175.3.17.0.5.0
 i--

So when I tried to build pdns with default Solaris gcc 4.8.2 I passed the
configure:
configure: Configuration summary
configure: =====================
configure:
configure: PowerDNS Recursor configured with:
 '--with-boost=/opt/boost_1_63_0' '--prefix=/opt/pdns-recursor-4.0.4'
configure:
configure: CC: gcc
configure: CXX: g++
configure: LD: /usr/bin/ld
configure: CFLAGS: -fPIE -DPIE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
--param ssp-buffer-size=4 -fstack-protector -Wall -g -O2
configure: CPPFLAGS:  -I/opt/boost_1_63_0 -pthreads
configure: CXXFLAGS:  -fPIE -DPIE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
--param ssp-buffer-size=4 -fstack-protector -D_REENTRANT -Wall -g -O2
-std=gnu++11
configure: LDFLAGS:
configure: LIBS: -lsocket -lnsl -lresolv -lposix4 -lpthread    -pthreads
configure: BOOST_CPPFLAGS: -I/opt/boost_1_63_0 -pthreads
configure:
configure: Features enabled
configure: ----------------
configure: Lua: lua
configure: OpenSSL ECDSA: no
configure: Protobuf: no
configure: systemd: no
configure: Context library: System V ucontexts

But than I got an error while gmake:

gmake[2]: Entering directory `/users/admin/pdns-recursor-4.0.4.1'
  CXX      arguments.o
In file included from logger.hh:33:0,
                 from arguments.cc:31:
iputils.hh: In member function ‘std::string
ComboAddress::toStringWithPort() const’:
iputils.hh:274:33: error: ‘to_string’ is not a member of ‘std’
       return toString() + ":" + std::to_string(ntohs(sin4.sin_port));
                                 ^
iputils.hh:276:38: error: ‘to_string’ is not a member of ‘std’
       return "["+toString() + "]:" + std::to_string(ntohs(sin4.sin_port));
                                      ^
iputils.hh: In member function ‘std::string Netmask::toString() const’:
iputils.hh:399:37: error: ‘to_string’ is not a member of ‘std’
     return d_network.toString()+"/"+std::to_string((unsigned int)d_bits);
                                     ^
gmake[2]: *** [arguments.o] Error 1
gmake[2]: Leaving directory `/users/admin/pdns-recursor-4.0.4.1'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/users/admin/pdns-recursor-4.0.4.1'
gmake: *** [all] Error 2

I'm not a C programmer but it looks for me like gcc issue so I built from
sources new gcc 5.4.0

Configure with new gcc also successfully passed:
root at rep11:/users/admin/pdns-recursor-4.0.4# CPPFLAGS=" -I/opt/boost_1_63_0
-pthreads" CXXFLAGS=" -std=gnu++14" CXX=/opt/gcc-5.4.0/bin/g++
CC=/opt/gcc-5.4.0/bin/gcc
 PATH=/opt/gcc-5.4.0/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
LD_LIBRARY_PATH=/opt/gcc-5.4.0/lib:/lib:/usr/lib:/lib/secure:/usr/lib/secure
./configure --with-boost=/opt/boost_1_63_0 --prefix=/opt/pdns-recursor-4.0.4
configure: Configuration summary
configure: =====================
configure:
configure: PowerDNS Recursor configured with:
 '--with-boost=/opt/boost_1_63_0' '--prefix=/opt/pdns-recursor-4.0.4'
'CC=/opt/gcc-5.4.0/bin/gcc' 'CPPFLAGS= -I/opt/boost_1_63_0 -pthreads'
'CXX=/opt/gcc-5.4.0/bin/g++' 'CXXFLAGS= -std=gnu++14'
configure:
configure: CC: /opt/gcc-5.4.0/bin/gcc
configure: CXX: /opt/gcc-5.4.0/bin/g++
configure: LD: /usr/ccs/bin/ld
configure: CFLAGS: -fPIE -DPIE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
--param ssp-buffer-size=4 -fstack-protector -Wall -g -O2
configure: CPPFLAGS:  -I/opt/boost_1_63_0 -pthreads -I/opt/boost_1_63_0
configure: CXXFLAGS:  -fPIE -DPIE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
--param ssp-buffer-size=4 -fstack-protector -D_REENTRANT  -std=gnu++14
configure: LDFLAGS:
configure: LIBS: -lsocket -lnsl -lresolv -lposix4 -lpthread
configure: BOOST_CPPFLAGS: -I/opt/boost_1_63_0
configure:
configure: Features enabled
configure: ----------------
configure: Lua: lua
configure: OpenSSL ECDSA: no
configure: Protobuf: no
configure: systemd: no
configure: Context library: System V ucontexts

Than I ran gmake
root at rep11:/users/admin/pdns-recursor-4.0.4# CPPFLAGS=" -I/opt/boost_1_63_0
-pthreads" CXXFLAGS=" -std=gnu++14" CXX=/opt/gcc-5.4.0/bin/g++
CC=/opt/gcc-5.4.0/bin/gcc
 PATH=/opt/gcc-5.4.0/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
LD_LIBRARY_PATH=/opt/gcc-5.4.0/lib:/lib:/usr/lib:/lib/secure:/usr/lib/secure
gmake

It passed much more but falied on ws-recursor:
  CXX      ws-recursor.o
/usr/ccs/bin/as: "/var/tmp//ccval4va.s", line 2: error: quoted-string
operand required
/usr/ccs/bin/as: "/var/tmp//ccval4va.s", line 4: error: invalid character
(0x40)
/usr/ccs/bin/as: "/var/tmp//ccval4va.s", line 5: error: unknown opcode
".balign"
/usr/ccs/bin/as: "/var/tmp//ccval4va.s", line 5: error: statement syntax
/usr/ccs/bin/as: "/var/tmp//ccval4va.s", line 7: error: unknown opcode
".incbin"
/usr/ccs/bin/as: "/var/tmp//ccval4va.s", line 7: error: statement syntax
/usr/ccs/bin/as: "/var/tmp//ccval4va.s", line 9: error: invalid character
(0x40)
/usr/ccs/bin/as: "/var/tmp//ccval4va.s", line 10: error: unknown opcode
".balign"
<...>
and so on till line 323
<...>
gmake[2]: *** [ws-recursor.o] Error 1
gmake[2]: Leaving directory `/users/admin/pdns-recursor-4.0.4'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/users/admin/pdns-recursor-4.0.4'
gmake: *** [all] Error 2

It was assembler issue so I tried to change Solaris assembler
(/usr/ccs/bin/as) to GNU assembler (/usr/gnu/bin/as). But it didnt help.

So can anybody give me advice? I have no ideas any more.

-- 
С уважением,
Климентьев Дмитрий
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.powerdns.com/pipermail/pdns-users/attachments/20170411/d96be441/attachment.html>


More information about the Pdns-users mailing list