Hello,

haproxy-1.8 does not build on FreeBSD/i386 (clang):

src/proto_http.o: In function `http_perform_server_redirect':
src/proto_http.c:(.text+0x1209): undefined reference to `__atomic_fetch_add_8'
src/proto_http.o: In function `http_wait_for_request':
src/proto_http.c:(.text+0x275a): undefined reference to `__atomic_fetch_add_8'
src/proto_http.c:(.text+0x2e2c): undefined reference to `__atomic_fetch_add_8'
src/proto_http.c:(.text+0x2e48): undefined reference to `__atomic_fetch_add_8'
src/proto_http.c:(.text+0x30bb): undefined reference to `__atomic_fetch_add_8'
src/proto_http.o:src/proto_http.c:(.text+0x3184): more undefined references to 
`__atomic_fetch_add_8' follow
src/time.o: In function `tv_update_date':
src/time.c:(.text+0x631): undefined reference to `__atomic_compare_exchange_8'


In include/common/hathreads.h you have (line 107):
#if defined(__GNUC__) && (__GNUC__ < 4 || __GNUC__ == 4 && __GNUC_MINOR__ < 7) &
& !defined(__clang__)


Why do you exclude clang here?  If I remove !defined(__clang__), it builds fine 
but produces a number of similar warnings:


In file included from src/compression.c:29:
In file included from include/common/cfgparse.h:30:
include/proto/proxy.h:116:2: warning: variable '__new' is uninitialized when
      used within its own initialization [-Wuninitialized]
        HA_ATOMIC_UPDATE_MAX(&fe->fe_counters.cps_max,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/common/hathreads.h:172:55: note: expanded from macro
      'HA_ATOMIC_UPDATE_MAX'
                while (__old < __new && !HA_ATOMIC_CAS(val, &__old, __new)); \
                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
include/common/hathreads.h:128:26: note: expanded from macro 'HA_ATOMIC_CAS'
                typeof((new)) __new = (new);                                   \
                              ~~~~~    ^~~


What is the proper fix for that?  May be remove !defined(__clang__) ?

Thanks!

Reply via email to