On Wed, 19 Feb 2020 at 06:38, Val Baranov <val.baranov at duke.edu> wrote:> AIX 7.1 TL5, OpenSSL ver. 1.1.1d. "vac.C" version 11.0.1.23 > Compilation error " The indirection operator cannot be applied to a pointer to an incomplete struct or union " (see full log below) produced for " libressl-api-compat.c ". > No such error if compiled with OpenSSL ver. 1.0.2r (and the earlier versions) > Any idea how to fix? Thank youAre you sure this is the 8.2p1 source? The line numbers from the error messages don't correspond to those in 8.2p1, but they do match 7.9p1. For example:> "libressl-api-compat.c", line 619.26: 1506-043 (S) The operand of the sizeof operator is not valid.$ head -619 openssh-7.9p1/openbsd-compat/libressl-api-compat.c | tail -1 return calloc(1, sizeof(EVP_MD_CTX)); $ head -619 openssh-8.0p1/openbsd-compat/libressl-api-compat.c | tail -1 #ifndef HAVE_EVP_MD_CTX_NEW $ head -619 openssh-8.2p1/openbsd-compat/libressl-api-compat.c | tail -1 #ifndef HAVE_EVP_MD_CTX_NEW I don't have VAC so I can't reproduce this myself. I have built 8.2p1 with a shared-lib openssl-1.1.1d on AIX with GCC, though. -- Darren Tucker (dtucker at dtucker.net) GPG key 11EAA6FA / A86E 3E07 5B19 5880 E860 37F4 9357 ECEF 11EA A6FA (new) Good judgement comes with experience. Unfortunately, the experience usually comes from bad judgement.
On Tuesday, February 18, 2020 8:31 PM Darren Tucker wrote: On Wed, 19 Feb 2020 at 06:38, Val Baranov <val.baranov at duke.edu> wrote:> > AIX 7.1 TL5, OpenSSL ver. 1.1.1d. "vac.C" version 11.0.1.23 > > Compilation error " The indirection operator cannot be applied to a pointer > to an incomplete struct or union " (see full log below) produced for " libressl- > api-compat.c ". > > No such error if compiled with OpenSSL ver. 1.0.2r (and the earlier > > versions) Any idea how to fix? Thank you > > Are you sure this is the 8.2p1 source? The line numbers from the error > messages don't correspond to those in 8.2p1, but they do match 7.9p1. For > example: > > > "libressl-api-compat.c", line 619.26: 1506-043 (S) The operand of the sizeof > operator is not valid. > > $ head -619 openssh-7.9p1/openbsd-compat/libressl-api-compat.c | tail -1 > return calloc(1, sizeof(EVP_MD_CTX)); $ head -619 openssh-8.0p1/openbsd- > compat/libressl-api-compat.c | tail -1 #ifndef HAVE_EVP_MD_CTX_NEW $ > head -619 openssh-8.2p1/openbsd-compat/libressl-api-compat.c | tail -1 > #ifndef HAVE_EVP_MD_CTX_NEW > > I don't have VAC so I can't reproduce this myself. I have built > 8.2p1 with a shared-lib openssl-1.1.1d on AIX with GCC, though.Daren, This is definitely ver. 8.2 - my apologies, but the output provided from session where " libressl-api-compat.c " was substituted with the older version in attempts to find out if this may have any difference. The "make" output with the 'native' souce of " libressl-api-compat.c " (truncated) is as follows: # make (cd openbsd-compat && make) cc -qlanglvl=extc89 -g -q64 -fPIC -I. -I.. -I. -I./.. -I/usr/local/openssl/include -I/usr/local/zlib/include -DHAVE_CONFIG_H -c libressl-api-compat.c "/usr/include/stdarg.h", line 89.9: 1506-236 (W) Macro name va_copy has been redefined. "/usr/include/stdarg.h", line 89.9: 1506-358 (I) "va_copy" is defined on line 872 of ../defines.h. "libressl-api-compat.c", line 165.22: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 167.22: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 169.22: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 177.14: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 177.45: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 178.14: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 182.25: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 183.17: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 186.25: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 187.17: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. <skip> <skip> "libressl-api-compat.c", line 593.9: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 602.9: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 611.13: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 615.16: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. "libressl-api-compat.c", line 623.26: 1506-043 (S) The operand of the sizeof operator is not valid. So, what you may recommend? Switch over to gcc/gmake? This will leave AIX native compiler forever out of scope. As an option and if needed, I may perform debugging per your directions (if possible). Txs. Val
OK. I read over it the first time. set CC=xlc_r? or CC=xlc and you should get the right parameters. Also, you will no longer need the flag -qlanglvl=extc89. Hope this helps! Michael On 2/19/2020 5:51 PM, Val Baranov wrote:> On Tuesday, February 18, 2020 8:31 PM Darren Tucker wrote: > On Wed, 19 Feb 2020 at 06:38, Val Baranov <val.baranov at duke.edu> wrote: >>> AIX 7.1 TL5, OpenSSL ver. 1.1.1d. "vac.C" version 11.0.1.23 >>> Compilation error " The indirection operator cannot be applied to a pointer >> to an incomplete struct or union " (see full log below) produced for " libressl- >> api-compat.c ". >>> No such error if compiled with OpenSSL ver. 1.0.2r (and the earlier >>> versions) Any idea how to fix? Thank you >> Are you sure this is the 8.2p1 source? The line numbers from the error >> messages don't correspond to those in 8.2p1, but they do match 7.9p1. For >> example: >> >>> "libressl-api-compat.c", line 619.26: 1506-043 (S) The operand of the sizeof >> operator is not valid. >> >> $ head -619 openssh-7.9p1/openbsd-compat/libressl-api-compat.c | tail -1 >> return calloc(1, sizeof(EVP_MD_CTX)); $ head -619 openssh-8.0p1/openbsd- >> compat/libressl-api-compat.c | tail -1 #ifndef HAVE_EVP_MD_CTX_NEW $ >> head -619 openssh-8.2p1/openbsd-compat/libressl-api-compat.c | tail -1 >> #ifndef HAVE_EVP_MD_CTX_NEW >> >> I don't have VAC so I can't reproduce this myself. I have built >> 8.2p1 with a shared-lib openssl-1.1.1d on AIX with GCC, though. > Daren, This is definitely ver. 8.2 - my apologies, but the output provided from session where " libressl-api-compat.c " was substituted with the older version in attempts to find out if this may have any difference. > The "make" output with the 'native' souce of " libressl-api-compat.c " (truncated) is as follows: > # make > (cd openbsd-compat && make) > cc -qlanglvl=extc89 -g -q64 -fPIC -I. -I.. -I. -I./.. -I/usr/local/openssl/include -I/usr/local/zlib/include -DHAVE_CONFIG_H -c libressl-api-compat.c > "/usr/include/stdarg.h", line 89.9: 1506-236 (W) Macro name va_copy has been redefined. > "/usr/include/stdarg.h", line 89.9: 1506-358 (I) "va_copy" is defined on line 872 of ../defines.h. > "libressl-api-compat.c", line 165.22: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 167.22: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 169.22: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 177.14: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 177.45: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 178.14: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 182.25: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 183.17: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 186.25: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 187.17: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > <skip> > <skip> > "libressl-api-compat.c", line 593.9: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 602.9: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 611.13: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 615.16: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union. > "libressl-api-compat.c", line 623.26: 1506-043 (S) The operand of the sizeof operator is not valid. > > So, what you may recommend? Switch over to gcc/gmake? This will leave AIX native compiler forever out of scope. As an option and if needed, I may perform debugging per your directions (if possible). > Txs. Val > > _______________________________________________ > openssh-unix-dev mailing list > openssh-unix-dev at mindrot.org > https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev