OpenSSH ver.8.2p1 compilation error on AIX

Michael Felt aixtools at felt.demon.nl
Thu Mar 12 09:29:19 AEDT 2020


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


More information about the openssh-unix-dev mailing list