compilation errors on master

1,123 views
Skip to first unread message

Cristian Ionescu-Idbohrn

unread,
Feb 3, 2017, 8:42:37 AM2/3/17
to openssh-...@mindrot.org
`git describe' says V_7_3_P1-207-gc924b2ef (shouldn't it say
V_7_4_P1-<yadayada>?). This is what I see:

gcc -g -O2 -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset -fstack-protector-strong -fPIE -I. -I. -DSSHDIR=\"/usr/local/etc\" -D_PATH_SSH_PROGRAM=\"/usr/local/bin/ssh\" -D_PATH_SSH_ASKPASS_DEFAULT=\"/usr/local/libexec/ssh-askpass\" -D_PATH_SFTP_SERVER=\"/usr/local/libexec/sftp-server\" -D_PATH_SSH_KEY_SIGN=\"/usr/local/libexec/ssh-keysign\" -D_PATH_SSH_PKCS11_HELPER=\"/usr/local/libexec/ssh-pkcs11-helper\" -D_PATH_SSH_PIDDIR=\"/var/run\" -D_PATH_PRIVSEP_CHROOT_DIR=\"/var/empty\" -DHAVE_CONFIG_H -c sshkey.c -o sshkey.o
sshkey.c: In function ‘sshkey_size’:
sshkey.c:274:28: error: dereferencing pointer to incomplete type ‘RSA {aka struct rsa_st}’
return BN_num_bits(k->rsa->n);
^~
sshkey.c:277:28: error: dereferencing pointer to incomplete type ‘DSA {aka struct dsa_st}’
return BN_num_bits(k->dsa->p);
^~
sshkey.c: In function ‘sshkey_new’:
sshkey.c:478:11: error: dereferencing pointer to incomplete type ‘RSA {aka struct rsa_st}’
(rsa->n = BN_new()) == NULL ||
^~
sshkey.c:490:11: error: dereferencing pointer to incomplete type ‘DSA {aka struct dsa_st}’
(dsa->p = BN_new()) == NULL ||
^~
sshkey.c: In function ‘sshkey_parse_private_pem_fileblob’:
sshkey.c:3792:8: error: dereferencing pointer to incomplete type ‘EVP_PKEY {aka struct evp_pkey_st}’
if (pk->type == EVP_PKEY_RSA &&
^~


Cheers,

--
Cristian
_______________________________________________
openssh-unix-dev mailing list
openssh-...@mindrot.org
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev

Scott Neugroschl

unread,
Feb 3, 2017, 10:54:53 AM2/3/17
to openssh-...@mindrot.org
It looks to me like you're building against OpenSSL 1.1.0. This won't work. You need 1.0.2 or earlier. The OpenSSL guys changed the API on 1.1.0.

Cristian Ionescu-Idbohrn

unread,
Feb 3, 2017, 12:57:52 PM2/3/17
to openssh-...@mindrot.org
On Fri, 3 Feb 2017, Scott Neugroschl wrote:
>
> It looks to me like you're building against OpenSSL 1.1.0. This
> won't work. You need 1.0.2 or earlier. The OpenSSL guys changed
> the API on 1.1.0.

Yes, when I look closer :)

checking OpenSSL header version... 1010003f (OpenSSL 1.1.0c 10 Nov 2016)
checking OpenSSL library version... 1010003f (OpenSSL 1.1.0c 10 Nov 2016)

I guess I was expecting ./configure to err out or at least warn about
that and/or "OpenSSH has been configured with the following options:"
would display the openssl version. That would help.

I see there's a guard for lowest possible version, but not the higest.
This is a debian box. I see:

libssl1.0.0:amd64
libssl1.0.2:amd64
libssl1.1:amd64

installed. How does one go about to tell ./configure what to choose?
I looked through, but couldn't find info on a clean way to do that :(

Cristian Ionescu-Idbohrn

unread,
Feb 4, 2017, 2:26:11 PM2/4/17
to openssh-...@mindrot.org
On Fri, 3 Feb 2017, Cristian Ionescu-Idbohrn wrote:
> On Fri, 3 Feb 2017, Scott Neugroschl wrote:
> >
> > It looks to me like you're building against OpenSSL 1.1.0. This
> > won't work. You need 1.0.2 or earlier. The OpenSSL guys changed
> > the API on 1.1.0.
>
> Yes, when I look closer :)
>
> checking OpenSSL header version... 1010003f (OpenSSL 1.1.0c 10 Nov 2016)
> checking OpenSSL library version... 1010003f (OpenSSL 1.1.0c 10 Nov 2016)
>
> I guess I was expecting ./configure to err out or at least warn about
> that and/or "OpenSSH has been configured with the following options:"
> would display the openssl version. That would help.
>
> I see there's a guard for lowest possible version, but not the higest.

Yes. Isn't there a way to detect OpenSSL version >= 1010003f?
I see there's already code in configure.ac that does this:

#if OPENSSL_VERSION_NUMBER < 0x0090807f /* 0.9.8g */

> This is a debian box. I see:
>
> libssl1.0.0:amd64
> libssl1.0.2:amd64
> libssl1.1:amd64
>
> installed. How does one go about to tell ./configure what to choose?
> I looked through, but couldn't find info on a clean way to do that :(

Answering to myself. Yes, there's a way. Install package:

libssl1.0-dev

That will (if installed) remove package libssl-dev which points to
openssl >= 1.1.0.
Reply all
Reply to author
Forward
0 new messages