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

Reply via email to