Hi Willy, thanks a lot for your input and sorry for the delay. Work is pretty rough right now...
> Thank you for doing this work. I'm having a few questions below. Sure, I am glad I can help :). > > +# AIX 7.2 and above > > +ifeq ($(TARGET),aix72-gcc) > > + set_target_defaults = $(call default_opts, \ > > + USE_POLL USE_THREAD USE_LIBCRYPT USE_OBSOLETE_LINKER > > USE_GETADDRINFO USE_TFO) > > Are you really really sure about USE_TFO ? I suspect you might have > accidently borrowed it from another line. It stands for TCP FastOpen > and is really not broadly deployed, I was only aware of Linux and > FreeBSD, but there are likely a few other ones. And the fact that it > looks OK is possibly just that it's causing a different TCP socket > option to be set on the connection, so if you're not certain we'd > rather avoid it. I think you are right. I kept USE_TFO in there because it neither introduced any build-issues nor did it cause any runtime issues. However, it probably does nothing and should be removed as long as we are not certain it is actually beneficial. I will have a look at the corresponding AIX internals later at some point. > > src/hlua.c: In function 'hlua_panic_ljmp': > > src/hlua.c:128:1: warning: no return statement in function returning > > non-void [-Wreturn-type] > > static int hlua_panic_ljmp(lua_State *L) { longjmp(safe_ljmp_env, 1); } > > ^~~~~~ > > Don't worry about this one, I'll handle it. I suspect that on linux > platforms the longjmp() function prototype is decorated with > __attribute__((noreturn)) which makes the compiler happy, but that's > likely not the case on any system not relying on a gcc-compatible > compiler by default. Thanks for handling this one. If there is something I shoult test please let me know. > Just two small extra requests : > - please rebase it on top of the development branch. If you really > need it in 2.1, just indicate it. Given that it's well isolated, > I'm fine with having it backported. > > - please have a look at CONTRIBUTING to get guidance to write a > subject and a commit message. It doesn't need to be very long > but at least indicating what options you chosed to enable/disable > and on what system you tested it will be enough if we need to > reconsider parts of it later. I already made a new patch based on the current development-HEAD and tried to follow all the guidelines from CONTRIBUTING. I would love to have it backported to 2.1 as the patch is pretty much identical and should not cause any regressions. The patch will follow shortly! > Do you have a permanent and durable access to this machine, with the > ability to occasionally re-run a build test in case we ask you (likely > no more than 2-3 times a year in the worst case) ? I'm asking because > I'm still keeping a very old IBM server running 5.2 on a Power3 just > for the sake of revalidating new releases once in a while. Given that > I could not upgrade it to latest OpenSSL, it cannot even be used to > provide complete binaries to those needing them, so it's getting very > obsolete and knowing that there's a better solution somewhere would > allow me to get rid of it. Well, I am not the primary administrator of this machine. However, I have permanent access and no problem doing the occasional build on it. I will have a chat with the server admin in regards to the longtime prospects of this server and report back to you. > thanks! > Willy You are welcome - I am happy I can contribute! thanks, Christian On Thu, Feb 6, 2020 at 3:36 PM Willy Tarreau <w...@1wt.eu> wrote: > > Hello Christian, > > On Mon, Feb 03, 2020 at 12:09:46PM +0100, Chris wrote: > > Hello everybody, > > > > I spent some time making haproxy compile and run successfully on AIX > > 7.2 using GCC 8.3 and wanted to contribute my patch in the hope that > > it could be merged. The patch is based on the current haproxy 2.1 head > > revision. I can make one for the development branch too - but it > > should be basically identical. > > Thank you for doing this work. I'm having a few questions below. > > > +# AIX 7.2 and above > > +ifeq ($(TARGET),aix72-gcc) > > + set_target_defaults = $(call default_opts, \ > > + USE_POLL USE_THREAD USE_LIBCRYPT USE_OBSOLETE_LINKER > > USE_GETADDRINFO USE_TFO) > > Are you really really sure about USE_TFO ? I suspect you might have > accidently borrowed it from another line. It stands for TCP FastOpen > and is really not broadly deployed, I was only aware of Linux and > FreeBSD, but there are likely a few other ones. And the fact that it > looks OK is possibly just that it's causing a different TCP socket > option to be set on the connection, so if you're not certain we'd > rather avoid it. > > > The patch implements a new TARGET called aix72-gcc and also adds 2 > > CPUs (power8 and power9). Here is my proof-of-work: > (...) > > src/hlua.c: In function 'hlua_panic_ljmp': > > src/hlua.c:128:1: warning: no return statement in function returning > > non-void [-Wreturn-type] > > static int hlua_panic_ljmp(lua_State *L) { longjmp(safe_ljmp_env, 1); } > > ^~~~~~ > > Don't worry about this one, I'll handle it. I suspect that on linux > platforms the longjmp() function prototype is decorated with > __attribute__((noreturn)) which makes the compiler happy, but that's > likely not the case on any system not relying on a gcc-compatible > compiler by default. > > > -bash-4.4$ ./haproxy -vv > > HA-Proxy version 2.1.2 2019/12/21 - https://haproxy.org/ > > Status: stable branch - will stop receiving fixes around Q1 2021. > (...) > > Looks good! > > > If you have any questions feel free to ask and please keep me on CC > > for this topic! > > Just two small extra requests : > - please rebase it on top of the development branch. If you really > need it in 2.1, just indicate it. Given that it's well isolated, > I'm fine with having it backported. > > - please have a look at CONTRIBUTING to get guidance to write a > subject and a commit message. It doesn't need to be very long > but at least indicating what options you chosed to enable/disable > and on what system you tested it will be enough if we need to > reconsider parts of it later. > > thanks! > Willy