OpenSSH ver.8.2p1 compilation error on AIX

Val Baranov val.baranov at duke.edu
Thu Feb 20 03:51:46 AEDT 2020


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



More information about the openssh-unix-dev mailing list