Discussion:
configure warning on SunOS 4.1.4
(too old to reply)
Klaus Ziegler - owner of sunfreeware.de
2016-01-31 23:52:35 UTC
Permalink
Hi,

I was told to do so by configure of openssh-7.1p2 -:)

...
configure: WARNING: sys/audit.h: present but cannot be compiled
configure: WARNING: sys/audit.h: check for missing prerequisite headers?
configure: WARNING: sys/audit.h: see the Autoconf documentation
configure: WARNING: sys/audit.h: section "Present But Cannot Be
Compiled"
configure: WARNING: sys/audit.h: proceeding with the preprocessor's result
configure: WARNING: sys/audit.h: in the future, the compiler will take
precedence
configure: WARNING: ## ------------------------------------------- ##
configure: WARNING: ## Report this to openssh-unix-***@mindrot.org ##
configure: WARNING: ## ------------------------------------------- ##

configure options used:
--sysconfdir=/etc/ssh --libexecdir=/usr/lib/ssh --sbindir=/usr/lib/ssh
--prefix=/usr --with-pid-dir=/var/tmp -with-xauth=/usr/openwin/bin/xauth
--with-mantype=man --with-md5-passwords --with-ssl-engine
--with-default-path=/usr/bin --with-privsep-path=/var/opt/sshd
--with-privsep-user=sshd

environment used:
PATH=/usr/lang:/opt/sfw/bin:/bin:/usr/ucb:/usr/kvm:/usr/etc:/usr/5bin
CFLAGS=-Xa -D__SYS5__ -D__EXTENSIONS__ -xCC -cg92 -fast -nolibmil -xO4

compiler used:
acc -V
acc: SC3.0.1 12/7/95 patch_101913-05

error in config.log:
configure:7525: checking sys/audit.h usability
configure:7542: acc -c -Xa -D__SYS5__ -D__EXTENSIONS__ -xCC -cg92 -fast
-nolibmil -xO4 conftest.c >&5
"/usr/include/sys/audit.h", line 189: syntax error before or at: blabel_t
"/usr/include/sys/audit.h", line 189: cannot recover from previous errors
configure:7548: $? = 10
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "OpenSSH"
...

can be fixed by the following patch to sys/audith.h:
--- audit.h.orig 1994-10-14 20:29:44.000000000 +0100
+++ audit.h 2016-02-01 00:18:49.000000000 +0100
@@ -6,6 +6,9 @@
#ifndef _sys_audit_h
#define _sys_audit_h

+/* This makes the test for audith.h in openssh-7.1p2 happy -:) */
+#include <sys/label.h>
+
/*
* Maximum size for audit data passed from the audit system call
* This value is arbitrary, so offers of better numbers are invited.

let's see how the build goes, when the new openssl has finshed testing
the build went
fine so far - shared library support is still missing - but we'll see -:)

Best Regards
Klaus
--
Tel: (++49 6105) 968846
Klaus Ziegler Mobil: (++49 172) 3064445
Zeppelinstrasse 3 mailto: ***@haus-gisela.de
D-64546 Walldorf-Moerfelden http://www.haus-gisela.de/~klausz
Nico Kadel-Garcia
2016-02-01 07:20:30 UTC
Permalink
On Sun, Jan 31, 2016 at 6:52 PM, Klaus Ziegler - owner of
Post by Klaus Ziegler - owner of sunfreeware.de
Hi,
I was told to do so by configure of openssh-7.1p2 -:)
SunOS 4.1.4? Dear lord, that OS is old enough to drink now.I still
remember doing the first published ports of ssh-1, ssh-2, and openssh
to SunOS way, way back in yesteryear.

*Why* are you still running this? I'm not deprecating the work, just
wondering why you're supporting an OS more than 20 years old from a
company that no longer exists, on an OS that Sun itself tried to
deprecate when Solaris came out.
Klaus Ziegler - owner of sunfreeware.de
2016-02-03 20:52:13 UTC
Permalink
Post by Nico Kadel-Garcia
SunOS 4.1.4? Dear lord, that OS is old enough to drink now.I still
remember doing the first published ports of ssh-1, ssh-2, and openssh
to SunOS way, way back in yesteryear. *Why* are you still running
this? I'm not deprecating the work, just wondering why you're
supporting an OS more than 20 years old from a company that no longer
exists, on an OS that Sun itself tried to deprecate when Solaris came
out.
Hi Nico,

well, I used to work for that company and went through all thinkable
migrations from SunOS to Solaris at many customer sites. Now I'm old and
play around with some of these oldtimer's I've sitting around here. And
not to get too rusty I try to get some things going. To be honest I
don't want to get SSH for SunOS 4.1.4 running, instead I want to have
have it for SunOS 4.1.1_U1 on Sun3x architecture (3/80). But since
compiling on this even more older hardware I begun my work on a SS10
with 4.1.4 - 2x60Mhz/512MB memory. But to something more serious, you
would be wondering how much people still use such old operating systems
on some island-systems which would love to have a secure connectivity
for. The last known working SecureShell server for Sun3 you can get is:
OpenSSH-4.3p2, OpenSSL 0.98a from:
http://www.sun3arc.org/precompiled/precomp.phtml - I have a working
OpenSSL 1.0.2f for Sun4 now the build for Sun3 will follow when SSH is
working. I even have made good progress implementing the missing
snprintf into the libc to at least have the underlying zlib as secure as
possible. But if you tell me you will abandon SunOS4 completely I would
be sad, but well the world doesn't go down the bin because of that. And
after all it's much fun -:)

So the first build on SPARC is fished and installed the conclusions so far:

hostnameresolution isn't working - only IP's possible
everything runs without dumping at least a core.
if trying to connect via ssh from the build system to any other
secure-shell server the following happens:

***@nosystem % ssh 192.168.xxx.xxx
The authenticity of host '192.168.xxx.xxx (192.168.xxx.xxx)' can't be
established.
RSA key fingerprint is SHA256:TtrEzvxTL5C...
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.xxx.xxx' (RSA) to the list of known
hosts.
Enter passphrase for key '/home/nobody/.ssh/id_rsa':
xreallocarray: out of memory (1 elements of 4 bytes) <-- here is the
first thing which goes wrong in xmalloc.c

one thing to mention is that blocks.c isn't able to compile with any
optimization, just -g is possible no matter
if I try gcc-2.95.3/3.2.3 or SPARCworks SC3.0.1 - blocks.c allocates
more and ore ram until nothing is left,
this one will be hard to find I guess. I will try the bootstrap using
SPARCworks again as it found some integer-overflows
I hope they aren't real overflows, just bugs in this compiler. I keep
you posted of next progresses, please find the
patch I did so far - of course not for integration purposes - just to
let you know, I know how to use GNU diff/patch -:)

Much Regards
Klaus
--
Tel: (++49 6105) 968846
Klaus Ziegler Mobil: (++49 172) 3064445
Zeppelinstrasse 3 mailto: ***@haus-gisela.de
D-64546 Walldorf-Moerfelden http://www.haus-gisela.de/~klausz
Darren Tucker
2016-02-05 02:38:24 UTC
Permalink
On Mon, Feb 01, 2016 at 12:52:35AM +0100, Klaus Ziegler - owner of sunfreeware.de wrote:
[...]
Post by Klaus Ziegler - owner of sunfreeware.de
"/usr/include/sys/audit.h", line 189: syntax error before or at: blabel_t
"/usr/include/sys/audit.h", line 189: cannot recover from previous errors
Does sys/types.h pull in the required headers? The configure tests do
this kind of thing:

| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif

however right now the AC_CHECK_FUNCS are in alphabetical order so things
like sys/types.h don't get checked until quite late. If we check these
things first it's probably a bit more likely to avoid this class of
problems across the board.

Does this patch help? You will need to run "autoreconf" to rebuild
configure after applying.
Post by Klaus Ziegler - owner of sunfreeware.de
let's see how the build goes, when the new openssl has finshed testing the
build went
fine so far - shared library support is still missing - but we'll see -:)
In general, as long as a) someone is willing to do the work and b) it
does not compromise support of modern platforms I'm happy to accept
patches to support retrocomputing systems :-)

diff --git a/configure.ac b/configure.ac
index 0b399ce..e97565a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -365,6 +365,16 @@ AC_ARG_WITH([Werror],
]
)

+# Standard system headers used by AC_CHECK_FUNCS, sys ones first.
+AC_CHECK_HEADERS([ \
+ sys/types.h \
+ sys/stat.h \
+ stdint.h \
+ string.h \
+ strings.h \
+ unistd.h \
+])
+
AC_CHECK_HEADERS([ \
blf.h \
bstring.h \
@@ -399,7 +409,6 @@ AC_CHECK_HEADERS([ \
sha2.h \
shadow.h \
stddef.h \
- stdint.h \
string.h \
strings.h \
sys/audit.h \
@@ -414,7 +423,6 @@ AC_CHECK_HEADERS([ \
sys/prctl.h \
sys/pstat.h \
sys/select.h \
- sys/stat.h \
sys/stream.h \
sys/stropts.h \
sys/strtio.h \
@@ -426,7 +434,6 @@ AC_CHECK_HEADERS([ \
tmpdir.h \
ttyent.h \
ucred.h \
- unistd.h \
usersec.h \
util.h \
utime.h \
--
Darren Tucker (dtucker at zip.com.au)
GPG key 8FF4FA69 / D9A3 86E9 7EEE AF4B B2D4 37C9 C982 80C7 8FF4 FA69
Good judgement comes with experience. Unfortunately, the experience
usually comes from bad judgement.
Klaus Ziegler - owner of sunfreeware.de
2016-02-05 14:04:57 UTC
Permalink
Post by Darren Tucker
[...]
Post by Klaus Ziegler - owner of sunfreeware.de
"/usr/include/sys/audit.h", line 189: syntax error before or at: blabel_t
"/usr/include/sys/audit.h", line 189: cannot recover from previous errors
Does sys/types.h pull in the required headers? The configure tests do
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
however right now the AC_CHECK_FUNCS are in alphabetical order so things
like sys/types.h don't get checked until quite late. If we check these
things first it's probably a bit more likely to avoid this class of
problems across the board.
Does this patch help? You will need to run "autoreconf" to rebuild
configure after applying.
In general, as long as a) someone is willing to do the work and b) it
does not compromise support of modern platforms I'm happy to accept
patches to support retrocomputing systems :-)
Hi Darren,

cool, this realy sounds like you are my man. Thanks a lot for the patch
- I implemented it directly in configure, so no need to build all the
autoconf tools on that platform, unfortunately your patch does not help,
I still need to include <sys/label.h> in sys/audit.h to pass the test.
For the time being I can live with that. More important are these - the
first error where the build bails out is this:

acc -Xa -D__SYS5__ -D__EXTENSIONS__ -xCC -cg92 -fast -nolibmil -xO4
-I. -I.. -I. -I./.. -DSUNOS4 -DHAVE_CONFIG_H -c bsd-statvfs.c
"bsd-statvfs.c", line 31: warning: dubious tag declaration: struct statfs
"bsd-statvfs.c", line 33: improper member use: f_bsize
"bsd-statvfs.c", line 34: improper member use: f_bsize
"bsd-statvfs.c", line 35: improper member use: f_blocks
"bsd-statvfs.c", line 36: improper member use: f_bfree
"bsd-statvfs.c", line 37: improper member use: f_bavail
"bsd-statvfs.c", line 38: improper member use: f_files
"bsd-statvfs.c", line 39: improper member use: f_ffree
"bsd-statvfs.c", line 40: improper member use: f_ffree
"bsd-statvfs.c", line 42: undefined struct/union member: f_flags
"bsd-statvfs.c", line 43: undefined symbol: MNAMELEN
"bsd-statvfs.c", line 50: incomplete struct/union/enum statfs: fs
"bsd-statvfs.c", line 55: warning: argument #2 is incompatible with
prototype:
prototype: pointer to struct buf {} : "bsd-statvfs.c", line 31
argument : pointer to struct statfs {}
"bsd-statvfs.c", line 68: incomplete struct/union/enum statfs: fs
"bsd-statvfs.c", line 73: warning: argument #2 is incompatible with
prototype:
prototype: pointer to struct buf {} : "bsd-statvfs.c", line 31
argument : pointer to struct statfs {}
gmake[1]: *** [bsd-statvfs.o] Error 2

this is happens, because SunOS4 does not have <sys/statfs.h> nor
<sys/fstatfs.h>, but it has <sys/vfs.h> in which
"struct statfs" can be found - but not completely as required by
bsd-statvfs.c, it misses struct/union member: f_flags.
The following patches fix this:
--- openbsd-compat/bsd-statvfs.c.orig 2016-01-14 02:10:45.000000000 +0100
+++ openbsd-compat/bsd-statvfs.c 2016-02-05 14:26:52.000000000 +0100
@@ -20,6 +20,11 @@

#if !defined(HAVE_STATVFS) || !defined(HAVE_FSTATVFS)

+#ifdef SUNOS4
+#include <sys/vfs.h>
+#define MNAMELEN 90
+#endif
+
#include <sys/param.h>
#ifdef HAVE_SYS_MOUNT_H
# include <sys/mount.h>
--- /usr/include/sys/vfs.h.orig 1994-10-14 20:29:59.000000000 +0100
+++ /usr/include/sys/vfs.h 2016-02-05 14:50:15.000000000 +0100
@@ -92,7 +92,7 @@
long f_files; /* total file nodes in file
system */
long f_ffree; /* free file nodes in fs */
fsid_t f_fsid; /* file system id */
- long f_spare[7]; /* spare for later */
+ long f_flags; /* spare for later */
};


question is for what is f_flags for? - or more important in sys/vfs.h:
"long f_spare[7]; /* spare for later */".
I could not find f_flags in any newer Solaris releases (checked 2.4/2.6
8 and 10).
Hey, I don't mind building autoconf tools - just tell me which releases
you use.

Thanks much in advance
Best Reagrds
Klaus
--
Tel: (++49 6105) 968846
Klaus Ziegler Mobil: (++49 172) 3064445
Zeppelinstrasse 3 mailto: ***@haus-gisela.de
D-64546 Walldorf-Moerfelden http://www.haus-gisela.de/~klausz
Loading...