On Wed, Jan 03, 2018 at 05:39:50PM +0100, Lukas Tribus wrote: > > src/hathreads.o: In function `thread_want_sync': > > /softwares/haproxy-1.8.2/src/hathreads.c:75: undefined reference to > > `__atomic_or_fetch' > > src/hathreads.o: In function `thread_exit_sync': > > /softwares/haproxy-1.8.2/src/hathreads.c:142: undefined reference to > > `__atomic_and_fetch' > > src/hathreads.o: In function `thread_sync_barrier': > > /softwares/haproxy-1.8.2/src/hathreads.c:108: undefined reference to > > `__atomic_compare_exchange_n' > > /softwares/haproxy-1.8.2/src/hathreads.c:109: undefined reference to > > `__atomic_or_fetch' > > src/lb_map.o: In function `recalc_server_map': > > /softwares/haproxy-1.8.2/src/lb_map.c:116: undefined reference to > > `__atomic_add_fetch' > > /softwares/haproxy-1.8.2/src/lb_map.c:125: undefined reference to > > `__atomic_sub_fetch' > > src/compression.o: In function `deinit_comp_ctx': > > /softwares/haproxy-1.8.2/src/compression.c:199: undefined reference to > > `__atomic_sub_fetch' > > /softwares/haproxy-1.8.2/src/compression.c:199: undefined reference to > > `__atomic_sub_fetch' > > src/compression.o: In function `init_comp_ctx': > > /softwares/haproxy-1.8.2/src/compression.c:177: undefined reference to > > `__atomic_add_fetch' > > /softwares/haproxy-1.8.2/src/compression.c:177: undefined reference to > > `__atomic_add_fetch' > > /softwares/haproxy-1.8.2/src/compression.c:177: undefined reference to > > `__atomic_add_fetch' > > src/compression.o: In function `alloc_zlib': > > /softwares/haproxy-1.8.2/src/compression.c:469: undefined reference to > > `__atomic_add_fetch' > > src/compression.o: In function `free_zlib': > > /softwares/haproxy-1.8.2/src/compression.c:500: undefined reference to > > `__atomic_sub_fetch' > > src/time.o: In function `tv_update_date': > > /softwares/haproxy-1.8.2/src/time.c:228: undefined reference to > > `__atomic_compare_exchange_n' > > collect2: ld returned 1 exit status > > make: *** [haproxy] Error 1 > > > To compile Haproxy 1.8 with threads, at least GCC 4.7 is needed. > CentOs 6 only ships GCC 4.4.7, therefor compilation fails.
If these are the only failures, maybe we can try and see if we find equivalent builtins for older versions. I seem to remember that most of them have their equivalent with the __sync_* builtins on older compilers, but there was something odd with the compare_and_swap(), only allowing a few bits to be used or something like this. I've always been all for supporting older compilers exactly for the reason above. Till very recently, gcc-2.95 was still reported to work ;-) Willy