Hi Willy,
Thanks for your prompt response. I appreciate your help with this matter.

Here is the ld version on my AIX system. 
ld: LD 1.65.6.6 (4/1/14)

I tried changing the linker in the Makefile from gcc to ld, but ran into 
similar undefined symbol errors. I installed binutils which includes gld 
version 2.29.1, but ran into many undefined reference errors (attached). 

Thank you!

Patrick Overbey
Fiserv


-----Original Message-----
From: Willy Tarreau [mailto:w...@1wt.eu] 
Sent: Thursday, December 27, 2018 8:17 AM
To: Overbey, Patrick (Sioux Falls) <patrick.over...@fiserv.com>
Cc: Aleksandar Lazic <al-hapr...@none.at>; haproxy@formilux.org
Subject: Re: haproxy AIX 7.1.0.0 compile issues

Hi Patrick,

On Thu, Dec 27, 2018 at 01:37:15PM +0000, Overbey, Patrick (Sioux Falls) wrote:
> I have attached connection.c and vars.c (aixchg.tar.bz2) which had to 
> have changes to (ip_v and var) variable assignments to compile version 1.8.
> 
> I have also attached a build log (haproxy-make.zip) for version 1.9 
> when the build failed which has the same code changes to connection.c and 
> vars.c.

Thanks for your report. That's really sad that it broke, to say the least :-(

The problem that the change addressed was that we were dealing with init 
ordering dependencies that really required to do something finer than what we 
had till now. Certain things couldn't be pre-initialized (e.g. thread-local 
variables), resulting in the need to run through complex fixing operations when 
switching to multi-thread.

What you report indicates that your linker doesn't seem to create the start and 
end of section automatic symbols that we are relying on. 
Could you please send the output of "ld --version" ? I suspect it's not a 
binutils-compatible linker but there might be some options to make it become 
more compatible and/or to emit these symbols.

Alternatively maybe you have another linker available on the system.
Please check if you have something called "gld", "gcc-ld" or so, I wouldn't be 
surprised.

> When I attempt to add the -bnoquiet to the LDFLAGS, I get an error 
> that it is an unrecognized command line option. Here is the command I 
> used that included the -bnoquiet.
> 
> /usr/local/gnu-2018/bin/gmake -B CFLAGS="-maix64" LDFLAGS="-maix64 -bnoquiet"
> TARGET=aix52 USE_OPENSSL=1 SSL_INC=/opt/freeware/include/openssl
> SSL_LIB=/opt/freeware/lib USE_ZLIB=1 2>&1 | tee haproxy-make.log
> 
> gcc: error: unrecognized command line option '-bnoquiet'; did you mean 
> '-quiet'?

Regarding this one I'm less worried. We default to LD=$(CC) so by just setting 
"LD=ld" or wherever your ld is located, it should more or less be OK.

At the moment I'd really like to see how to make your linker generate the 
initcall symbols.

Regards,
Willy

Attachment: haproxy-gld.log.bz2
Description: haproxy-gld.log.bz2

Reply via email to