Update: If I disable threading with
USE_THREAD=
then the build gets much further, but still fails eventually with:
gcc -g -o haproxy src/ev_poll.o ebtree/ebtree.o ebtree/eb32sctree.o
ebtree/eb32tree.o ebtree/eb64tree.o ebtree/ebmbtree.o ebtree/ebsttree.o
ebtree/ebimtree.o ebtree/ebistree.o src/proto_http.o src/cfgparse.o
src/server.o src/stream.o src/flt_spoe.o src/stick_table.o src/stats.o
src/mux_h2.o src/checks.o src/haproxy.o src/log.o src/dns.o src/peers.o
src/standard.o src/sample.o src/cli.o src/stream_interface.o src/proto_tcp.o
src/backend.o src/proxy.o src/tcp_rules.o src/listener.o src/flt_http_comp.o
src/pattern.o src/cache.o src/filters.o src/vars.o src/acl.o src/payload.o
src/connection.o src/raw_sock.o src/proto_uxst.o src/flt_trace.o src/session.o
src/ev_select.o src/channel.o src/task.o src/queue.o src/applet.o src/map.o
src/frontend.o src/freq_ctr.o src/lb_fwlc.o src/mux_pt.o src/auth.o src/fd.o
src/hpack-dec.o src/memory.o src/lb_fwrr.o src/lb_chash.o src/lb_fas.o
src/hathreads.o src/chunk.o src/lb_map.o src/xxhash.o src/regex.o src/shctx.o
src/buffer.o src/action.o src/h1.o src/compression.o src/pipe.o src/namespace.o
src/sha1.o src/hpack-tbl.o src/hpack-enc.o src/uri_auth.o src/time.o
src/proto_udp.o src/arg.o src/signal.o src/protocol.o src/lru.o src/hdr_idx.o
src/hpack-huff.o src/mailers.o src/h2.o src/base64.o src/hash.o -lnsl -lsocket
-lcrypt -L../pcre/lib -Wl,-Bstatic -lpcreposix -lpcre -Wl,-Bdynamic Undefined
first referenced symbol in
file__sync_sub_and_fetch src/cache.o__sync_val_compare_and_swap
src/cache.o__sync_lock_test_and_set src/cache.old: fatal:
symbol referencing errors. No output written to haproxycollect2: ld returned 1
exit statusgmake: *** [haproxy] Error 1
On Monday, 16 July 2018, 10:52:06 am AEST, Thrawn
<[email protected]> wrote:
My workplace is using HAProxy on Solaris (uname -a output: SunOS 5.10
Generic_150400-49 sun4v sparc sun4v), and we can build up to 1.7.11
successfully, but attempting to build 1.8 fails.
> MAKE=/usr/sfw/bin/gmake> $MAKE cleanrm -f *.[oas] src/*.[oas] ebtree/*.[oas]
> haproxy test .build_opts .build_opts.newfor dir in . src include/* doc
> ebtree; do rm -f $dir/*~ $dir/*.rej $dir/core; donerm -f
> haproxy-1.8.12.tar.gz haproxy-1.8.12-8a200c7.tar.gzrm -f haproxy-1.8.12
> haproxy-1.8.12-8a200c7 nohup.out gmon.out> $MAKE USE_STATIC_PCRE=1
> ARCH=native TARGET=solaris PCREDIR=../pcre/bin/sh: pcre-config: not foundgcc
> -Iinclude -Iebtree -Wall -O2 -g -fno-strict-aliasing
> -Wdeclaration-after-statement -fwrapv -Wno-unused-label
> -fomit-frame-pointer -DFD_SETSIZE=65536 -D_REENTRANT -D_XOPEN_SOURCE=500
> -D__EXTENSIONS__ -DTPROXY -DCONFIG_HAP_CRYPT -DNEED_CRYPT_H
> -DUSE_GETADDRINFO -DENABLE_POLL -DUSE_THREAD -DUSE_PCRE -I../pcre/include
> -DCONFIG_HAPROXY_VERSION=\"1.8.12-8a200c7\"
> -DCONFIG_HAPROXY_DATE=\"2018/06/27\" -c -o src/ev_poll.o src/ev_poll.cIn file
> included from include/common/chunk.h:29, from
> include/common/standard.h:36, from include/common/ticks.h:56,
> from src/ev_poll.c:22:include/common/memory.h: In function
> `pool_get_first':include/common/memory.h:138: warning: implicit declaration
> of function `__sync_fetch_and_add'include/common/memory.h:138: warning:
> implicit declaration of function `__sync_sub_and_fetch'src/ev_poll.c: In
> function `_do_poll':src/ev_poll.c:235: warning: implicit declaration of
> function `__sync_or_and_fetch'/usr/ccs/bin/as: "/var/tmp//ccTlH0pa.s", line
> 18498: error: statement syntax/usr/ccs/bin/as: "/var/tmp//ccTlH0pa.s", line
> 18498: error: statement syntax/usr/ccs/bin/as: "/var/tmp//ccTlH0pa.s", line
> 18498: error: statement syntax/usr/ccs/bin/as: "/var/tmp//ccTlH0pa.s", line
> 18507: error: statement syntax/usr/ccs/bin/as: "/var/tmp//ccTlH0pa.s", line
> 18507: error: statement syntax/usr/ccs/bin/as: "/var/tmp//ccTlH0pa.s", line
> 18507: error: statement syntax/usr/ccs/bin/as: "/var/tmp//ccTlH0pa.s", line
> 2750: warning: use of DCTI couples is deprecatedgmake: *** [src/ev_poll.o]
> Error 1
In case it helps, the first chunk of our 1.7.11 build output looks like:
rm -f *.[oas] src/*.[oas] ebtree/*.[oas] haproxy test .build_opts
.build_opts.newfor dir in . src include/* doc ebtree; do rm -f $dir/*~
$dir/*.rej $dir/core; donerm -f haproxy-1.7.11.tar.gz haproxy-1.7.11.tar.gzrm
-f haproxy-1.7.11 haproxy-1.7.11 nohup.out gmon.outrm -f
haproxy-systemd-wrapper/bin/sh: pcre-config: not foundgcc -Iinclude -Iebtree
-Wall -O2 -g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv
-fomit-frame-pointer -DFD_SETSIZE=65536 -D_REENTRANT -D_XOPEN_SOURCE=500
-D__EXTENSIONS__ -DTPROXY -DCONFIG_HAP_CRYPT -DNEED_CRYPT_H
-DUSE_GETADDRINFO -DENABLE_POLL -DUSE_PCRE -I../pcre/include
-DCONFIG_HAPROXY_VERSION=\"1.7.11\" -DCONFIG_HAPROXY_DATE=\"2018/04/30\" \
-DBUILD_TARGET='"solaris"' \ -DBUILD_ARCH='"native"' \
-DBUILD_CPU='"generic"' \ -DBUILD_CC='"gcc"' \ -DBUILD_CFLAGS='"-O2
-g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv
-fomit-frame-pointer -DFD_SETSIZE=65536 -D_REENTRANT -D_XOPEN_SOURCE=500
-D__EXTENSIONS__"' \ -DBUILD_OPTIONS='"USE_STATIC_PCRE=1"' \ -c -o
src/haproxy.o src/haproxy.c/usr/ccs/bin/as: "/var/tmp//ccmxWzXP.s", line 935:
warning: use of DCTI couples is deprecated/usr/ccs/bin/as:
"/var/tmp//ccmxWzXP.s", line 2632: warning: use of DCTI couples is
deprecated/usr/ccs/bin/as: "/var/tmp//ccmxWzXP.s", line 6708: warning: use of
DCTI couples is deprecatedgcc -Iinclude -Iebtree -Wall -O2 -g
-fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -fomit-frame-pointer
-DFD_SETSIZE=65536 -D_REENTRANT -D_XOPEN_SOURCE=500 -D__EXTENSIONS__
-DTPROXY -DCONFIG_HAP_CRYPT -DNEED_CRYPT_H -DUSE_GETADDRINFO -DENABLE_POLL
-DUSE_PCRE -I../pcre/include -DCONFIG_HAPROXY_VERSION=\"1.7.11\"
-DCONFIG_HAPROXY_DATE=\"2018/04/30\" -c -o src/base64.o src/base64.c...
Is it possible to build 1.8 on our Solaris version, or is it just too old?