On-going portability issue with 9.9p2
Dennis Clarke
dclarke at blastwave.org
Sun Mar 2 08:36:57 AEDT 2025
On 3/1/25 00:40, Darren Tucker wrote:
> On Sat, 1 Mar 2025 at 14:23, Dennis Clarke via openssh-unix-dev <
> openssh-unix-dev at mindrot.org> wrote:
>
>>
>> So, I applied the patch from :
>>
>>
>> https://lists.mindrot.org/pipermail/openssh-unix-dev/2025-February/041816.html
>>
>> Then did the usual autoreconf dance and then configure fails :
>>
>
> Which version of autoconf did you use?
>
Fairly recent stuff :
sparc64$ which autoconf
/opt/bw/bin/autoconf
sparc64$ ls -l /opt/bw/bin/autoconf /opt/bw/bin/autoreconf
-rwxr-xr-x 1 root root 6721 Sep 12 03:32 /opt/bw/bin/autoconf
-rwxr-xr-x 1 root root 26903 Sep 12 03:32 /opt/bw/bin/autoreconf
sparc64$
sparc64$ /opt/bw/bin/autoconf --version
autoconf (GNU Autoconf) 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>,
<https://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by David J. MacKenzie and Akim Demaille.
sparc64$
sparc64$ which m4
/opt/bw/bin/m4
sparc64$
sparc64$ m4 --version
m4 (GNU M4) 1.4.19
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by René Seindal.
sparc64$
Just for the record, I had no such problems with 9.8p1 :
sparc64$ /opt/bw/sbin/sshd --version
unknown option -- -
OpenSSH_9.8p1, OpenSSL 3.4.1 11 Feb 2025
usage: sshd [-46DdeGiqTtV] [-C connection_spec] [-c host_cert_file]
[-E log_file] [-f config_file] [-g login_grace_time]
[-h host_key_file] [-o option] [-p port] [-u len]
sparc64$
All of this pain because of a GCC builtin that we do not need.
>
>> configure: error: cannot run /opt/bw/bin/bash ../openssh-9.9p2/config.sub
>>
>
> Take a look in config.log to see what the error is, but my guess is
> config.sub is missing or corrupt. I suspect something went wrong in the
> autoreconf step.
>
Yep. That has to be it.
This is a lot of hardship for a darn GCC builtin that never existed in
the previous release.
> You can try this patch (
> https://www.dtucker.net/tmp/openssh-mlkem-popcount.patch) against the V_9_9
> branch from github or mindrot, which is the same thing except it includes
> the autoconf changes. It seems to work for me (on Linux anyway, while I do
> have a sparc it is not easily accessible, and doesn't have the Sun
> compiler anyway).
I will try that with the not-so-portable RELEASE 9.9p2 and it looks
to be good :
# /opt/bw/bin/patch --dry-run --backup -p1 --verbose -i
../openssh-mlkem-popcount.patch
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/config.h.in b/config.h.in
|index c841417f4..57f63355b 100644
|--- a/config.h.in
|+++ b/config.h.in
--------------------------
checking file config.h.in
Using Plan A...
Hunk #1 succeeded at 1736 (offset -12 lines).
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/configure b/configure
|index ec1de26c2..069cd7671 100755
|--- a/configure
|+++ b/configure
--------------------------
checking file configure
Using Plan A...
Hunk #1 succeeded at 16726 (offset -59 lines).
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/configure.ac b/configure.ac
|index 57a8d1007..dbe189066 100644
|--- a/configure.ac
|+++ b/configure.ac
--------------------------
checking file configure.ac
Using Plan A...
Hunk #1 succeeded at 2029 (offset -12 lines).
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/libcrux_mlkem768_sha3.h b/libcrux_mlkem768_sha3.h
|index b8ac1436f..885e82baf 100644
|--- a/libcrux_mlkem768_sha3.h
|+++ b/libcrux_mlkem768_sha3.h
--------------------------
checking file libcrux_mlkem768_sha3.h
Using Plan A...
Hunk #1 succeeded at 177.
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/mlkem768.sh b/mlkem768.sh
|index 3d12b2ed8..cbc3d14da 100644
|--- a/mlkem768.sh
|+++ b/mlkem768.sh
--------------------------
checking file mlkem768.sh
Using Plan A...
Hunk #1 succeeded at 49.
Hunk #2 succeeded at 67.
done
#
You did not mention anything about autoreconf but I am guessing
that I need to do this :
# pwd
/opt/bw/build/openssh-9.9p2
#
# /opt/bw/bin/autoreconf --install --verbose --force
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: /opt/bw/bin/autoconf --force
autoreconf: running: /opt/bw/bin/autoheader --force
autoreconf: configure.ac: not using Automake
autoreconf: './config.sub' is updated
autoreconf: './config.guess' is updated
autoreconf: './install-sh' is updated
autoreconf: Leaving directory '.'
#
Now I shall once again try to configure this in the exact same manner
as usual :
sparc64$ pwd
/opt/bw/build/openssh-9.9p2_SunOS_5.10_SPARC64.004
sparc64$ date -u
Sat Mar 1 21:11:26 GMT 2025
sparc64$
sparc64$ ../openssh-9.9p2/configure --prefix=/opt/bw --disable-strip \
> --with-zlib=/opt/bw --with-ssl-dir=/opt/bw \
> --with-xauth=/usr/openwin/bin/xauth \
> --with-ipaddr-display 2>&1 | tee `pwd`.config.log
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... no
checking whether /opt/developerstudio12.6/bin/cc accepts -g... yes
checking for /opt/developerstudio12.6/bin/cc option to enable C11
features... none needed
checking if /opt/developerstudio12.6/bin/cc supports C99-style variadic
macros... yes
checking build system type... sparc-sun-solaris2.10
checking host system type... sparc-sun-solaris2.10
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking whether byte ordering is bigendian... yes
checking for gawk... /opt/bw/bin/gawk
checking how to run the C preprocessor... /opt/developerstudio12.6/bin/cc -E
checking for ranlib... /usr/ccs/bin/ranlib
checking for a BSD-compatible install... ../openssh-9.9p2/install-sh -c
checking for grep that handles long lines and -e... /usr/xpg4/bin/grep
checking for egrep... /usr/xpg4/bin/grep -E
checking for a race-free mkdir -p... mkdir -p
checking for cat... /usr/bin/cat
checking for kill... /usr/xpg4/bin/kill
checking for sed... /usr/xpg4/bin/sed
checking for bash... /opt/bw/bin/bash
checking for ksh... (cached) /opt/bw/bin/bash
checking for sh... (cached) /opt/bw/bin/bash
checking for bash... /opt/bw/bin/bash
checking for ksh... (cached) /opt/bw/bin/bash
checking for sh... (cached) /opt/bw/bin/bash
checking for groff... no
checking for nroff... /usr/bin/nroff
checking for mandoc... no
checking for pkg-config... /usr/bin/pkg-config
checking for groupadd... /usr/sbin/groupadd
checking for useradd... /usr/sbin/useradd
checking for pkgmk... yes
checking for /opt/developerstudio12.6/bin/cc option to enable large file
support... none needed
checking for passwd... /usr/bin/passwd
checking for inline... inline
checking for /opt/developerstudio12.6/bin/cc options needed to detect
all undeclared functions... none needed
checking whether LLONG_MAX is declared... yes
checking whether LONG_LONG_MAX is declared... no
checking whether SYSTR_POLICY_KILL is declared... no
checking whether RLIMIT_NPROC is declared... no
checking whether PR_SET_NO_NEW_PRIVS is declared... no
checking whether OpenSSL will be used for cryptography... yes
checking if /opt/developerstudio12.6/bin/cc supports -Werror... yes
checking if compiler allows __attribute__ on return types... yes
checking if compiler allows __attribute__ prototype args... yes
checking if compiler supports variable length arrays... yes
checking if compiler accepts variable declarations after code... yes
checking for blf.h... no
checking for bstring.h... no
checking for crypt.h... yes
checking for crypto/sha2.h... no
checking for dirent.h... yes
checking for endian.h... no
checking for elf.h... yes
checking for err.h... no
checking for features.h... no
checking for fcntl.h... yes
checking for floatingpoint.h... yes
checking for fnmatch.h... yes
checking for getopt.h... yes
checking for glob.h... yes
checking for ia.h... no
checking for iaf.h... no
checking for ifaddrs.h... no
checking for inttypes.h... (cached) yes
checking for langinfo.h... yes
checking for limits.h... yes
checking for locale.h... yes
checking for login.h... no
checking for maillock.h... yes
checking for ndir.h... no
checking for net/if_tun.h... no
checking for netdb.h... yes
checking for netgroup.h... no
checking for pam/pam_appl.h... no
checking for paths.h... no
checking for poll.h... yes
checking for pty.h... no
checking for readpassphrase.h... no
checking for rpc/types.h... yes
checking for security/pam_appl.h... yes
checking for sha2.h... yes
checking for shadow.h... yes
checking for stddef.h... yes
checking for stdint.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for sys/bitypes.h... no
checking for sys/byteorder.h... yes
checking for sys/bsdtty.h... no
checking for sys/cdefs.h... no
checking for sys/dir.h... no
checking for sys/file.h... yes
checking for sys/mman.h... yes
checking for sys/label.h... no
checking for sys/ndir.h... no
checking for sys/param.h... yes
checking for sys/poll.h... yes
checking for sys/prctl.h... no
checking for sys/procctl.h... no
checking for sys/pstat.h... no
checking for sys/ptrace.h... no
checking for sys/random.h... yes
checking for sys/select.h... yes
checking for sys/stream.h... yes
checking for sys/stropts.h... yes
checking for sys/strtio.h... no
checking for sys/statvfs.h... yes
checking for sys/sysmacros.h... yes
checking for sys/time.h... yes
checking for sys/timers.h... no
checking for sys/vfs.h... yes
checking for time.h... yes
checking for tmpdir.h... no
checking for ttyent.h... no
checking for ucred.h... yes
checking for unistd.h... (cached) yes
checking for usersec.h... no
checking for util.h... no
checking for utime.h... yes
checking for utmp.h... yes
checking for utmpx.h... yes
checking for vis.h... yes
checking for wchar.h... yes
checking for sys/audit.h... no
checking for sys/capsicum.h... no
checking for capsicum_helpers.h... no
checking for caph_cache_tzdata... no
checking for net/route.h... yes
checking for sys/sysctl.h... no
checking for lastlog.h... yes
checking for sys/ptms.h... yes
checking for login_cap.h... no
checking for sys/mount.h... yes
checking for sys/un.h... yes
checking for obsolete utmp and wtmp in solaris2.x... yes
checking for setpflags... yes
checking for setppriv... yes
checking for priv_basicset... no
checking for priv.h... yes
checking compiler and flags for sanity... yes
checking for setsockopt... no
checking for setsockopt in -lsocket... yes
checking for dirname... yes
checking for libgen.h... yes
checking for getspnam... yes
checking for library containing basename... none required
checking for zlib... yes
checking for zlib.h... yes
checking for deflate in -lz... yes
checking for possibly buggy zlib... no
checking for strcasecmp... yes
checking for utimes... yes
checking for bsd/libutil.h... no
checking for libutil.h... no
checking for library containing fmt_scaled... no
checking for library containing scan_scaled... no
checking for library containing login... no
checking for library containing logout... no
checking for library containing logwtmp... no
checking for library containing openpty... no
checking for library containing updwtmp... none required
checking for fmt_scaled... no
checking for scan_scaled... no
checking for login... no
checking for logout... no
checking for openpty... no
checking for updwtmp... yes
checking for logwtmp... no
checking for library containing inet_ntop... -lnsl
checking for library containing gethostbyname... none required
checking for library containing SHA256Update... -lmd
checking for strftime... yes
checking for GNU libc compatible malloc... yes
checking for GNU libc compatible realloc... yes
checking if calloc(0, N) returns non-null... yes
checking for GLOB_ALTDIRFUNC support... checking for egrep -e...
(cached) /usr/xpg4/bin/grep -E
no
checking for gl_matchc field in glob_t... no
checking for gl_statv and GLOB_KEEPSTAT extensions for glob... no
checking whether GLOB_NOMATCH is declared... yes
checking whether VIS_ALL is declared... no
checking whether struct dirent allocates space for d_name... no
checking for /proc/pid/fd directory... yes
checking whether -fPIC is accepted... yes
checking for auth_hostok... no
checking for auth_timeok... no
checking for Blowfish_initstate... no
checking for Blowfish_expandstate... no
checking for Blowfish_expand0state... no
checking for Blowfish_stream2word... no
checking for SHA256Update... yes
checking for SHA384Update... yes
checking for SHA512Update... yes
checking for asprintf... yes
checking for b64_ntop... no
checking for __b64_ntop... no
checking for b64_pton... no
checking for __b64_pton... no
checking for bcopy... yes
checking for bcrypt_pbkdf... no
checking for bindresvport_sa... no
checking for blf_enc... no
checking for bzero... yes
checking for cap_rights_limit... no
checking for clock... yes
checking for closefrom... yes
checking for close_range... no
checking for dirfd... no
checking for endgrent... yes
checking for err... no
checking for errx... no
checking for explicit_bzero... no
checking for explicit_memset... no
checking for fchmod... yes
checking for fchmodat... no
checking for fchown... yes
checking for fchownat... yes
checking for flock... no
checking for fnmatch... yes
checking for freeaddrinfo... yes
checking for freezero... no
checking for fstatfs... yes
checking for fstatvfs... yes
checking for futimes... no
checking for getaddrinfo... yes
checking for getcwd... yes
checking for getentropy... no
checking for getgrouplist... no
checking for getline... no
checking for getnameinfo... yes
checking for getopt... yes
checking for getpagesize... yes
checking for getpeereid... no
checking for getpeerucred... yes
checking for getpgid... yes
checking for _getpty... no
checking for getrlimit... yes
checking for getrandom... no
checking for getsid... yes
checking for getttyent... no
checking for glob... yes
checking for group_from_gid... no
checking for inet_aton... yes
checking for inet_ntoa... yes
checking for inet_ntop... yes
checking for innetgr... yes
checking for killpg... yes
checking for llabs... yes
checking for localtime_r... yes
checking for login_getcapbool... no
checking for login_getpwclass... no
checking for memmem... no
checking for memmove... yes
checking for memset_s... no
checking for mkdtemp... yes
checking for ngetaddrinfo... no
checking for nsleep... no
checking for ogetaddrinfo... no
checking for openlog_r... no
checking for pledge... no
checking for poll... yes
checking for ppoll... no
checking for prctl... no
checking for procctl... no
checking for pselect... yes
checking for pstat... no
checking for raise... yes
checking for readpassphrase... no
checking for reallocarray... no
checking for realpath... yes
checking for recvmsg... yes
checking for recallocarray... no
checking for rresvport_af... yes
checking for sendmsg... yes
checking for setdtablesize... no
checking for setegid... yes
checking for setenv... yes
checking for seteuid... yes
checking for setgroupent... no
checking for setgroups... yes
checking for setlinebuf... yes
checking for setlogin... no
checking for setpassent... no
checking for setpcred... no
checking for setproctitle... no
checking for setregid... yes
checking for setreuid... yes
checking for setrlimit... yes
checking for setsid... yes
checking for setvbuf... yes
checking for sigaction... yes
checking for sigvec... no
checking for snprintf... yes
checking for socketpair... yes
checking for statfs... yes
checking for statvfs... yes
checking for strcasestr... no
checking for strdup... yes
checking for strerror... yes
checking for strlcat... yes
checking for strlcpy... yes
checking for strmode... no
checking for strndup... no
checking for strnlen... no
checking for strnvis... no
checking for strptime... yes
checking for strsignal... yes
checking for strtonum... no
checking for strtoll... yes
checking for strtoul... yes
checking for strtoull... yes
checking for sysconf... yes
checking for tcgetpgrp... yes
checking for timegm... no
checking for timingsafe_bcmp... no
checking for truncate... yes
checking for unsetenv... yes
checking for updwtmpx... yes
checking for utimensat... yes
checking for user_from_uid... no
checking for usleep... yes
checking for vasprintf... yes
checking for vsnprintf... yes
checking for waitpid... yes
checking for warn... no
checking whether bzero is declared... yes
checking whether memmem is declared... no
checking for mblen... yes
checking for mbtowc... yes
checking for nl_langinfo... yes
checking for wcwidth... yes
checking for utf8 locale support... yes
checking for library containing dlopen... none required
checking for dlopen... yes
checking whether RTLD_NOW is declared... yes
checking for gai_strerror... yes
checking for library containing nanosleep... -lrt
checking for library containing clock_gettime... none required
checking whether localtime_r is declared... yes
checking whether strsep is declared... no
checking whether tcsendbreak is declared... yes
checking whether h_errno is declared... yes
checking whether SHUT_RD is declared... yes
checking whether getpeereid is declared... no
checking whether O_NONBLOCK is declared... yes
checking whether ftruncate is declared... yes
checking whether getentropy is declared... no
checking whether readv is declared... yes
checking whether writev is declared... yes
checking whether MAXSYMLINKS is declared... yes
checking whether offsetof is declared... yes
checking whether howmany is declared... yes
checking whether NFDBITS is declared... yes
checking for fd_mask... yes
checking for setresuid... no
checking for setresgid... no
checking for working fflush(NULL)... yes
checking for gettimeofday... yes
checking for time... yes
checking for endutent... yes
checking for getutent... yes
checking for getutid... yes
checking for getutline... yes
checking for pututline... yes
checking for setutent... yes
checking for utmpname... yes
checking for endutxent... yes
checking for getutxent... yes
checking for getutxid... yes
checking for getutxline... yes
checking for getutxuser... no
checking for pututxline... yes
checking for setutxdb... no
checking for setutxent... yes
checking for utmpxname... yes
checking for getlastlogxbyname... no
checking for daemon... no
checking for daemon in -lbsd... no
checking for getpagesize... (cached) yes
checking whether snprintf correctly terminates long strings... yes
checking whether snprintf understands %zu... yes
checking whether vsnprintf returns correct values on overflow... yes
checking whether snprintf can declare const char *fmt... yes
checking whether AI_NUMERICSERV is declared... yes
checking if SA_RESTARTed signals interrupt select()... yes
checking for getpgrp... yes
checking if getpgrp accepts zero args... yes
checking for openssl... /opt/bw/bin/openssl
checking for openssl/opensslv.h... yes
checking OpenSSL header version... 30400010 (OpenSSL 3.4.1 11 Feb 2025)
checking for OpenSSL_version... yes
checking for OpenSSL_version_num... yes
checking OpenSSL library version... 30400010 (OpenSSL 3.4.1 11 Feb 2025)
checking whether OpenSSL's headers match the library... yes
checking if programs using OpenSSL functions will link... yes
checking for BN_is_prime_ex... yes
checking for DES_crypt... yes
checking for DSA_generate_parameters_ex... yes
checking for EVP_DigestSign... yes
checking for EVP_DigestVerify... yes
checking for EVP_DigestFinal_ex... yes
checking for EVP_DigestInit_ex... yes
checking for EVP_MD_CTX_cleanup... no
checking for EVP_MD_CTX_copy_ex... yes
checking for EVP_MD_CTX_init... no
checking for HMAC_CTX_init... no
checking for RSA_generate_key_ex... yes
checking for RSA_get_default_method... yes
checking for OpenSSL_add_all_algorithms... no
checking whether OpenSSL_add_all_algorithms is declared... yes
checking for EVP_CIPHER_CTX_iv... yes
checking for EVP_CIPHER_CTX_iv_noconst... yes
checking for EVP_CIPHER_CTX_get_iv... no
checking for EVP_CIPHER_CTX_get_updated_iv... yes
checking for EVP_CIPHER_CTX_set_iv... no
checking whether OpenSSL lacks support for AES 192/256... no
checking if EVP_DigestUpdate returns an int... yes
checking for EVP_sha256... yes
checking for EVP_sha384... yes
checking for EVP_sha512... yes
checking for EVP_chacha20... yes
checking whether OpenSSL has NID_X9_62_prime256v1... yes
checking whether OpenSSL has NID_secp384r1... yes
checking whether OpenSSL has NID_secp521r1... yes
checking if OpenSSL's NID_secp521r1 is functional... yes
checking for EC_KEY_METHOD_new... yes
checking for EVP_PKEY_get_raw_public_key... yes
checking for EVP_PKEY_get_raw_private_key... yes
checking whether OpenSSL has ED25519 support... yes
checking whether to enable PKCS11... yes
checking whether to enable U2F... yes
checking if /usr/bin/pkg-config knows about libfido2... no
checking for fido_init in -lfido2... no
checking for fido.h... no
checking for fido/credman.h... no
checking for usable libfido2 installation... missing fido/credman.h from
libfido2
checking for arc4random... no
checking for arc4random_buf... no
checking for arc4random_stir... no
checking for arc4random_uniform... no
checking whether OpenSSL's PRNG is internally seeded... yes
checking for ia_openinfo in -liaf... no
checking for crypt in -lcrypt... yes
checking for crypt... yes
checking for struct pollfd.fd... yes
checking for nfds_t... yes
checking if select and/or poll works with descriptor rlimit... no
checking if setrlimit(RLIMIT_NOFILE,{0,0}) works... yes
checking if setrlimit RLIMIT_FSIZE works... yes
checking for long long... yes
checking for unsigned long long... yes
checking for long double... yes
checking size of short int... 2
checking size of int... 4
checking size of long int... 8
checking size of long long int... 8
checking size of time_t... 8
checking whether UINT32_MAX is declared... yes
checking for u_int type... yes
checking for intXX_t types... yes
checking for int64_t type... yes
checking for u_intXX_t types... no
checking for u_intXX_t types in sys/socket.h... no
checking for u_int64_t types... no
checking for uintXX_t types... yes
checking for uintXX_t types in stdint.h... yes
checking for uintXX_t types in inttypes.h... yes
checking for u_char... yes
checking for intmax_t... yes
checking for uintmax_t... yes
checking for socklen_t... yes
checking for sig_atomic_t... yes
checking for sighandler_t... no
checking for fsblkcnt_t... yes
checking for fsfilcnt_t... yes
checking for struct statfs.f_files... no
checking for struct statfs.f_flags... no
checking for in_addr_t... yes
checking for in_port_t... yes
checking for size_t... yes
checking for ssize_t... yes
checking for clock_t... yes
checking for sa_family_t... yes
checking for pid_t... yes
checking for mode_t... yes
checking for struct sockaddr_storage... yes
checking for struct sockaddr_in6... yes
checking for struct in6_addr... yes
checking for struct sockaddr_in6.sin6_scope_id... yes
checking for struct addrinfo... yes
checking for struct timeval... yes
checking for struct timespec... yes
checking for ut_host field in utmp.h... no
checking for ut_host field in utmpx.h... yes
checking for syslen field in utmpx.h... yes
checking for ut_pid field in utmp.h... yes
checking for ut_type field in utmp.h... yes
checking for ut_type field in utmpx.h... yes
checking for ut_tv field in utmp.h... no
checking for ut_id field in utmp.h... yes
checking for ut_id field in utmpx.h... yes
checking for ut_addr field in utmp.h... no
checking for ut_addr field in utmpx.h... no
checking for ut_addr_v6 field in utmp.h... no
checking for ut_addr_v6 field in utmpx.h... no
checking for ut_exit field in utmp.h... yes
checking for ut_time field in utmp.h... yes
checking for ut_time field in utmpx.h... yes
checking for ut_tv field in utmpx.h... yes
checking for ut_ss field in utmpx.h... no
checking for struct stat.st_blksize... yes
checking for struct stat.st_mtim... yes
checking for struct stat.st_mtime... yes
checking for struct passwd.pw_gecos... yes
checking for struct passwd.pw_class... no
checking for struct passwd.pw_change... no
checking for struct passwd.pw_expire... no
checking for struct __res_state.retrans... yes
checking for struct sockaddr_in.sin_len... no
checking for ss_family field in struct sockaddr_storage... yes
checking for __ss_family field in struct sockaddr_storage... no
checking for msg_accrights field in struct msghdr... yes
checking if struct statvfs.f_fsid is integral type... yes
checking for msg_control field in struct msghdr... no
checking if libc defines __progname... no
checking whether /opt/developerstudio12.6/bin/cc implements
__FUNCTION__... yes
checking whether /opt/developerstudio12.6/bin/cc implements __func__... yes
checking whether va_copy exists... yes
checking whether __va_copy exists... yes
checking whether getopt has optreset support... no
checking if libc defines sys_errlist... no
checking if libc defines sys_nerr... no
checking for library containing getrrsetbyname... no
checking for library containing res_query... -lresolv
checking for library containing dn_expand... none required
checking if res_query will link... yes
checking for _getshort... yes
checking for _getlong... yes
checking whether _getshort is declared... no
checking whether _getlong is declared... no
checking for HEADER.ad... no
checking if struct __res_state _res is an extern... yes
checking Discovering system mail directory... Using: /var/mail from MAILDIR
checking for "/dev/ptmx"... yes
checking for "/dev/ptc"... no
checking if the systems has expire shadow information... yes
checking for "/etc/default/login"... yes
configure: WARNING:
If PATH is defined in /etc/default/login, ensure the path to scp is
included,
otherwise scp will not work.
Adding /opt/bw/bin to USER_PATH so scp will work
checking if we need to convert IPv4 in IPv6-mapped addresses... no (default)
checking if your system defines LASTLOG_FILE... no
checking if your system defines _PATH_LASTLOG... no
checking if your system defines UTMP_FILE... yes
checking if your system defines WTMP_FILE... yes
checking if your system defines WTMPX_FILE... yes
checking for struct lastlog.ll_line... yes
checking for struct utmp.ut_line... yes
checking whether BROKEN_GETADDRINFO is declared... no
checking for plink... no
checking for puttygen... no
checking for conch... no
checking for dropbear... no
checking for dbclient... no
checking for dropbearkey... no
checking for dropbearconvert... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating buildpkg.sh
config.status: creating opensshd.init
config.status: creating openssh.xml
config.status: creating openbsd-compat/Makefile
config.status: creating openbsd-compat/regress/Makefile
config.status: creating survey.sh
config.status: creating config.h
OpenSSH has been configured with the following options:
User binaries: /opt/bw/bin
System binaries: /opt/bw/sbin
Configuration files: /opt/bw/etc
Askpass program: /opt/bw/libexec/ssh-askpass
Manual pages: /opt/bw/share/man/manX
PID file: /var/run
Privilege separation chroot path: /var/empty
sshd default user PATH:
/usr/bin:/bin:/usr/sbin:/sbin:/opt/bw/bin
(If PATH is set in /etc/default/login it will be used instead. If
used, ensure the path to scp is present, otherwise scp will not work.)
Manpage format: man
PAM support: no
OSF SIA support: no
KerberosV support: no
SELinux support: no
libedit support: no
libldns support: no
Solaris process contract support: no
Solaris project support: no
Solaris privilege support: no
IP address in $DISPLAY hack: yes
Translate v4 in v6 hack: no
BSD Auth support: no
Random number source: OpenSSL internal ONLY
Privsep sandbox style: none
PKCS#11 support: yes
U2F/FIDO support: yes
Host: sparc-sun-solaris2.10
Compiler: /opt/developerstudio12.6/bin/cc
Compiler flags: -std=iso9899:2011 -m64 -xarch=sparc -g -xO0 -mc -xs
-errfmt=error -xatomic=studio -erroff=%none -errshort=full -errtags=yes
-errwarn=%none -ftrap=%none -xbuiltin=%none -xildoff -xlibmieee
-xstrconst -xcode=pic32 -xmemalign=8s -xnolibmil -xunroll=1 -xdepend=no
-xregs=no%appl -xdebugformat=dwarf
Preprocessor flags: -I/opt/bw/include -I/opt/bw/include
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_TS_ERRNO
-D_FILE_OFFSET_BITS=64 -I/opt/bw/include -DOPENSSL_API_COMPAT=0x10100000L
Linker flags: -L/opt/bw/lib -R/opt/bw/lib -L/opt/bw/lib
-R/opt/bw/lib -R/opt/bw/lib -L/opt/bw/lib
Libraries: -lresolv -lrt -lmd -lnsl -lsocket
+for channels: -lcrypto -lz
+for sshd: -lcrypt
SVR4 style packages are supported with "make package"
sparc64$
I do not see mention of pop anywhere in that output.
Compile runs just fine ... until we need to link and the CFLAGS or
perhaps some other env var seems to be needed :
.
.
.
/opt/developerstudio12.6/bin/cc -std=iso9899:2011 -m64 -xarch=sparc -g
-xO0 -mc -xs -errfmt=error -xatomic=studio -erroff=%none -errshort=full
-errtags=yes -errwarn=%none -ftrap=%none -xbuiltin=%none -xildoff
-xlibmieee -xstrconst -xcode=pic32 -xmemalign=8s -xnolibmil -xunroll=1
-xdepend=no -xregs=no%appl -xdebugformat=dwarf -I. -I../openssh-9.9p2
-I/opt/bw/include -I/opt/bw/include -D_POSIX_PTHREAD_SEMANTICS
-D_LARGEFILE64_SOURCE -D_TS_ERRNO -D_FILE_OFFSET_BITS=64
-I/opt/bw/include -DOPENSSL_API_COMPAT=0x10100000L
-DSSHDIR=\"/opt/bw/etc\" -D_PATH_SSH_PROGRAM=\"/opt/bw/bin/ssh\"
-D_PATH_SSH_ASKPASS_DEFAULT=\"/opt/bw/libexec/ssh-askpass\"
-D_PATH_SFTP_SERVER=\"/opt/bw/libexec/sftp-server\"
-D_PATH_SSH_KEY_SIGN=\"/opt/bw/libexec/ssh-keysign\"
-D_PATH_SSHD_SESSION=\"/opt/bw/libexec/sshd-session\"
-D_PATH_SSH_PKCS11_HELPER=\"/opt/bw/libexec/ssh-pkcs11-helper\"
-D_PATH_SSH_SK_HELPER=\"/opt/bw/libexec/ssh-sk-helper\"
-D_PATH_SSH_PIDDIR=\"/var/run\"
-D_PATH_PRIVSEP_CHROOT_DIR=\"/var/empty\" -DHAVE_CONFIG_H -c
../openssh-9.9p2/mux.c -o mux.o
"../openssh-9.9p2/mux.c", line 1828: warning: argument #2 is
incompatible with prototype:
prototype: pointer to unsigned int :
"../openssh-9.9p2/sshbuf.h", line 157
argument : pointer to int (E_ARG_INCOMPATIBLE_WITH_ARG_L)
/opt/developerstudio12.6/bin/cc -std=iso9899:2011 -m64 -xarch=sparc -g
-xO0 -mc -xs -errfmt=error -xatomic=studio -erroff=%none -errshort=full
-errtags=yes -errwarn=%none -ftrap=%none -xbuiltin=%none -xildoff
-xlibmieee -xstrconst -xcode=pic32 -xmemalign=8s -xnolibmil -xunroll=1
-xdepend=no -xregs=no%appl -xdebugformat=dwarf -I. -I../openssh-9.9p2
-I/opt/bw/include -I/opt/bw/include -D_POSIX_PTHREAD_SEMANTICS
-D_LARGEFILE64_SOURCE -D_TS_ERRNO -D_FILE_OFFSET_BITS=64
-I/opt/bw/include -DOPENSSL_API_COMPAT=0x10100000L
-DSSHDIR=\"/opt/bw/etc\" -D_PATH_SSH_PROGRAM=\"/opt/bw/bin/ssh\"
-D_PATH_SSH_ASKPASS_DEFAULT=\"/opt/bw/libexec/ssh-askpass\"
-D_PATH_SFTP_SERVER=\"/opt/bw/libexec/sftp-server\"
-D_PATH_SSH_KEY_SIGN=\"/opt/bw/libexec/ssh-keysign\"
-D_PATH_SSHD_SESSION=\"/opt/bw/libexec/sshd-session\"
-D_PATH_SSH_PKCS11_HELPER=\"/opt/bw/libexec/ssh-pkcs11-helper\"
-D_PATH_SSH_SK_HELPER=\"/opt/bw/libexec/ssh-sk-helper\"
-D_PATH_SSH_PIDDIR=\"/var/run\"
-D_PATH_PRIVSEP_CHROOT_DIR=\"/var/empty\" -DHAVE_CONFIG_H -c
../openssh-9.9p2/ssh-sk-client.c -o ssh-sk-client.o
/opt/developerstudio12.6/bin/cc -o ssh ssh.o readconf.o clientloop.o
sshtty.o sshconnect.o sshconnect2.o mux.o ssh-sk-client.o -L.
-Lopenbsd-compat/ -L/opt/bw/lib -R/opt/bw/lib -L/opt/bw/lib
-R/opt/bw/lib -R/opt/bw/lib -L/opt/bw/lib -lssh -lopenbsd-compat
-lresolv -lrt -lmd -lnsl -lsocket -lcrypto -lz
ld: fatal: file ssh.o: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to ssh
make: *** [Makefile:215: ssh] Error 2
Seems the link stage is unaware of a 64-bit option flag. In fact, it is
missing nearly everything that I would want in the link stage.
>
>> Really some inline ASM would get this done.
>>
>
> I don't think anyone in the OpenSSH team is interested in maintaining
> assembler for any architectures.
>
I hear you loud and clear on that.
--
--
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
UNIX and Linux spoken
More information about the openssh-unix-dev
mailing list