ULTRIX 3.1D: Unterschied zwischen den Versionen
Luna (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Luna (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''ULTRIX 3.1D''' | '''ULTRIX 3.1D''' | ||
ULTRIX release 3.1D was a special hardware release to support the then new DECstation 5000/200. It will run on some early DECstations like the original 3100 and 2100, 5000/200, and possibly on the 5400 and 5800. It is mostly 4.2BSD with several extensions by DEC and adaptations from SysV and 4.3BSD. The 5000/200 does not have room for internal SCSI disks, so external disks and storage expansion boxes were common. | |||
[[Datei:Decstation5000_200.jpg|thumb|right|DECstation 5000/200]] | |||
--------------- | |||
Ultrix 3.1D comes with X11R3(exact version?) and only a simple X that only supports the plain color graphics (DS3100 or PMAG-B). | Ultrix 3.1D comes with X11R3(exact version?) and only a simple X that only supports the plain color graphics (DS3100 or PMAG-B). | ||
Zeile 7: | Zeile 15: | ||
a more recent edition of X in order to compile NetHack's X11 interface." | a more recent edition of X in order to compile NetHack's X11 interface." | ||
--------------- | |||
copy stddef.h from ULTRIX 4.5... | copy stddef.h from ULTRIX 4.5... | ||
Zeile 17: | Zeile 26: | ||
-------------------------------------------- | -------------------------------------------- | ||
On ultrix 4.2 we don't have usleep() | '''setting the correct timezone:''' | ||
the only way to set the timezone on ULTRIX 3 is by building a new kernel. | |||
this is the correct setting for MET with daylight savings time (DST): | |||
timezone -1 dst 4 | |||
note: date knows about the TZNAME environment variable. You can set it | |||
to whatever you like and date will show a different string in the timezone | |||
field, but it won't adjust the time: | |||
# date | |||
Sun Jan 29 11:41:26 MET 2023 | |||
# TZNAME="FARTS"; export TZNAME | |||
# date | |||
Sun Jan 29 11:41:36 FARTS 2023 | |||
This behavior is different from later ULTRIX releases. | |||
----- | |||
'''building a new kernel:''' | |||
make sure you don't have anything GNU in the PATH and no CPPFLAGS, CFLAGS, LDFLAGS. | |||
this ULTRIX release will produce a distinct error when linking the vmunix kernel: | |||
loading vmunix | |||
/bin/ld: | |||
Object file format error in: ltt_usrreq.o: bad issBase in file table entry in FDISS_TO_STR<br> | |||
*** Error code 1 | |||
Stop. | |||
I have not been able to determine the source of the problem, but it can be fixed by excluding LAT from the kernel configuration. Chances are you won't need LAT anyway. | |||
this is an example of a working kernel configuration for a DECstation 5000/200 with 64MB RAM booting from rz0: | |||
<pre> | |||
ident "MINOU" | |||
machine mips | |||
cpu "DS5000" | |||
maxusers 64 | |||
processors 1 | |||
maxuprc 50 | |||
physmem 64 | |||
timezone -1 dst 4 | |||
options QUOTA | |||
options INET | |||
options EMULFLT | |||
options NFS | |||
options RPC | |||
options DLI | |||
options UFS | |||
options DECNET | |||
makeoptions ENDIAN="-EL" | |||
config vmunix root on rz0a swap on rz0b dumps on rz0b | |||
adapter ibus0 at nexus? | |||
adapter ibus1 at nexus? | |||
adapter ibus2 at nexus? | |||
adapter ibus5 at nexus? | |||
adapter ibus6 at nexus? | |||
adapter ibus7 at nexus? | |||
controller asc0 at ibus? vector ascintr | |||
disk rz0 at asc0 drive 0 | |||
disk rz1 at asc0 drive 1 | |||
disk rz2 at asc0 drive 2 | |||
disk rz3 at asc0 drive 3 | |||
disk rz4 at asc0 drive 4 | |||
disk rz5 at asc0 drive 5 | |||
disk rz6 at asc0 drive 6 | |||
disk rz7 at asc0 drive 7 | |||
tape tz0 at asc0 drive 0 | |||
tape tz1 at asc0 drive 1 | |||
tape tz2 at asc0 drive 2 | |||
tape tz3 at asc0 drive 3 | |||
tape tz4 at asc0 drive 4 | |||
tape tz5 at asc0 drive 5 | |||
tape tz6 at asc0 drive 6 | |||
tape tz7 at asc0 drive 7 | |||
controller asc1 at ibus? vector ascintr | |||
disk rz8 at asc1 drive 0 | |||
disk rz9 at asc1 drive 1 | |||
disk rz10 at asc1 drive 2 | |||
disk rz11 at asc1 drive 3 | |||
disk rz12 at asc1 drive 4 | |||
disk rz13 at asc1 drive 5 | |||
disk rz14 at asc1 drive 6 | |||
disk rz15 at asc1 drive 7 | |||
tape tz8 at asc1 drive 0 | |||
tape tz9 at asc1 drive 1 | |||
tape tz10 at asc1 drive 2 | |||
tape tz11 at asc1 drive 3 | |||
tape tz12 at asc1 drive 4 | |||
tape tz13 at asc1 drive 5 | |||
tape tz14 at asc1 drive 6 | |||
tape tz15 at asc1 drive 7 | |||
device ln0 at ibus? vector lnintr | |||
device ln1 at ibus? vector lnintr | |||
device dc0 at ibus? vector dcintr | |||
scs_sysid 1 | |||
pseudo-device pty | |||
pseudo-device loop | |||
pseudo-device inet | |||
pseudo-device ether | |||
pseudo-device rpc | |||
pseudo-device nfs | |||
pseudo-device dli | |||
pseudo-device ufs | |||
pseudo-device decnet | |||
</pre> | |||
------------------ | |||
On ultrix 4.2 (and earlier) we don't have '''usleep()''' | |||
in the file clients/olwm/usleep.c | in the file clients/olwm/usleep.c | ||
Zeile 26: | Zeile 156: | ||
with | with | ||
<pre> | |||
#ifndef ultrix | #ifndef ultrix | ||
return usleep(usec); | return usleep(usec); | ||
Zeile 32: | Zeile 162: | ||
return sleep(usec * 1000000); | return sleep(usec * 1000000); | ||
#endif | #endif | ||
</pre> | |||
-------------------------------------- | -------------------------------------- | ||
to enable root logins via telnet or non-secure ports, edit /etc/ttys: | to '''enable root logins via telnet''' or non-secure ports, edit /etc/ttys: | ||
<pre> | |||
root@minou:/etc# cat ttys | root@minou:/etc# cat ttys | ||
# @(#)ttys 1.1 (ULTRIX) 3/2/89 | # @(#)ttys 1.1 (ULTRIX) 3/2/89 | ||
Zeile 87: | Zeile 217: | ||
ttyqf none network secure | ttyqf none network secure | ||
# :0 "/usr/bin/login -P /usr/bin/Xprompter -C /usr/bin/dxsession" none on secure window="/usr/bin/Xcfb" | # :0 "/usr/bin/login -P /usr/bin/Xprompter -C /usr/bin/dxsession" none on secure window="/usr/bin/Xcfb" | ||
</pre> | |||
---------------------------------------- | ---------------------------------------- | ||
add to /etc/rc.local: | add to '''/etc/rc.local''': | ||
<pre> | |||
# default route | # default route | ||
echo 'setting default route' > /dev/console | echo 'setting default route' > /dev/console | ||
/etc/route add default 192.168.2.253 1 | /etc/route add default 192.168.2.253 1 | ||
# SSHd | # SSHd | ||
echo 'starting SSH daemon' > /dev/console | echo 'starting SSH daemon' > /dev/console | ||
/usr/local/sbin/sshd | /usr/local/sbin/sshd | ||
</pre> | |||
--------------- | --------------- | ||
error in repaired Ultrix gcc header files: | error in repaired Ultrix gcc header files: | ||
/usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/sys/dir.h | /usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/sys/dir.h | ||
gcc | gcc fixes this to u_long, but does not define it. Add: | ||
#include <sys/types.h> | |||
--------------- | --------------- | ||
Zeile 115: | Zeile 246: | ||
Ultrix also often needs: | Ultrix also often needs: | ||
#define NULL 0 | #define NULL 0 | ||
--------------- | --------------- | ||
.cshrc: | .cshrc: | ||
if ($term == xterm-256color) then | if ($term == xterm-256color) then | ||
setenv TERM vt100 | |||
endif | endif | ||
--------------- | --------------- | ||
.bashrc: | .bashrc: | ||
# set a fancy prompt | # set a fancy prompt | ||
PS1='\u@\h:\w\$ ' | PS1='\u@\h:\w\$ ' | ||
export PS1 | export PS1 | ||
--------------- | |||
.profile | .profile | ||
if [ $TERM = "xterm-256color" ] | if [ $TERM = "xterm-256color" ] | ||
then TERM=vt100; export TERM | |||
fi | fi | ||
------------- | |||
symlink /usr/lib/libi.a to /usr/lib/libiconv_ult.a | |||
if setlocale is undefined link with this library | |||
for some reason gcc doesn't want to link just to libi.a | |||
------------- | ------------- | ||
strstr.c from GNU tar... | strstr.c from GNU tar... | ||
copy to /usr/include/missing_strstr.h | copy to /usr/include/missing_strstr.h | ||
/* strstr.c -- return the offset of one string within another | /* strstr.c -- return the offset of one string within another | ||
Copyright (C) 1989, 1990 Free Software Foundation, Inc. | |||
This program is free software; you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation; either version 2, or (at your option) | |||
any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program; if not, write to the Free Software | |||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ | |||
/* Written by Mike Rendell <michael@cs.mun.ca>. */ | |||
/* Return the starting address of string S2 in S1; | |||
/* Return the starting address of string S2 in S1; | |||
return 0 if it is not found. */ | return 0 if it is not found. */ | ||
char * | |||
char * | strstr (s1, s2) | ||
strstr (s1, s2) | |||
char *s1; | char *s1; | ||
char *s2; | char *s2; | ||
{ | { | ||
int i; | int i; | ||
char *p1; | char *p1; | ||
char *p2; | char *p2; | ||
char *s = s1; | char *s = s1; | ||
for (p2 = s2, i = 0; *s; p2 = s2, i++, s++) | for (p2 = s2, i = 0; *s; p2 = s2, i++, s++) | ||
{ | { | ||
Zeile 184: | Zeile 315: | ||
if (!*p2) | if (!*p2) | ||
return s1 + i; | return s1 + i; | ||
return 0; | return 0; | ||
} | } | ||
----------------- | ----------------- | ||
Building some GNU software: | Building some GNU software: | ||
'''GCC:''' | |||
start with gcc-1.42 | start with gcc-1.42 | ||
Zeile 201: | Zeile 333: | ||
build gcc in steps: | build gcc in steps: | ||
make "CC=/usr/local/bin/gcc" LANGUAGES=c | make "CC=/usr/local/bin/gcc" LANGUAGES=c | ||
make stage1 | |||
make stage1 | make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O" | ||
make stage2 | |||
make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O" | make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" | ||
make compare | |||
make stage2 | make install CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" LANGUAGES=c | ||
make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" | |||
make compare | |||
make install CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" LANGUAGES=c | |||
Zeile 224: | Zeile 350: | ||
note: changing original 25 year old header files is really ugly | note: changing original 25 year old header files is really ugly | ||
#ifndef size_t_defined | #ifndef size_t_defined | ||
typedef int size_t; | typedef int size_t; | ||
#define size_t_defined | #define size_t_defined | ||
#endif | #endif | ||
binutils 2.7 | '''binutils 2.7''' | ||
incorrectly includes stdlib.h in binutils-2.7/binutils/arlex.c | <nowiki>incorrectly includes stdlib.h in binutils-2.7/binutils/arlex.c | ||
on line 556. | on line 556. | ||
and in binutils-2.7/ld/ldlex.c | and in binutils-2.7/ld/ldlex.c | ||
on line 1212. | on line 1212.</nowiki> | ||
gcc-2.7.2.3 | '''gcc-2.7.2.3''' | ||
incorrectly includes stdlib.h in ../gcc-2.7.2.3/cpplib.c | <nowiki>incorrectly includes stdlib.h in ../gcc-2.7.2.3/cpplib.c | ||
on line 73. | on line 73.</nowiki> | ||
sed-3.02 | '''sed-3.02''' | ||
add to sed/utils.h: | <nowiki>add to sed/utils.h: | ||
#include <sys/types.h> | #include <sys/types.h></nowiki> | ||
make-3.76 | '''make-3.76''' | ||
texinfo-4.8: | '''texinfo-4.8:''' | ||
add to lib/strdup.c: | <nowiki>add to lib/strdup.c: | ||
#include <sys/types.h> | #include <sys/types.h> | ||
#define NULL 0 | #define NULL 0 | ||
needs #include <missing_strstr.h> | needs #include <missing_strstr.h></nowiki> | ||
unzip-5.52 | '''unzip-5.52:''' | ||
filio.c needs #include <missing_strerror.h> | <nowiki>filio.c needs #include <missing_strerror.h> | ||
make ultrix | make ultrix</nowiki> | ||
bison-1.28 | '''bison-1.28''' | ||
vim-4.6 | '''vim-4.6:''' | ||
main.c | <nowiki>main.c | ||
#include <ctype.h> | #include <ctype.h> | ||
#include <locale.h> | #include <locale.h> | ||
add EXTRA_LIBS = -liconv (see above for /usr/lib/libi.a) | add EXTRA_LIBS = -liconv (see above for /usr/lib/libi.a) | ||
</nowiki> | |||
'''m4-1.4.3:''' | |||
<nowiki>--disable-nls</nowiki> | |||
'''bash-2.03:''' | |||
<nowiki>--disable-nls | |||
bash-2.03 | |||
--disable-nls | |||
save /bin/sh to /bin/sh.ultrix | save /bin/sh to /bin/sh.ultrix | ||
copy /usr/local/bin/bash to /bin/bash and /bin/sh | copy /usr/local/bin/bash to /bin/bash and /bin/sh | ||
zlib-1.2.8 | '''zlib-1.2.8:''' | ||
does not copy zlib.h and zconf.h | does not copy zlib.h and zconf.h | ||
Copy by hand! | Copy by hand! | ||
readline-5.2: | '''readline-5.2:''' | ||
xmalloc.h: | xmalloc.h: | ||
#include <sys/types.h> | #include <sys/types.h> | ||
Zeile 293: | Zeile 415: | ||
wants to build shared libraries for some reason. | wants to build shared libraries for some reason. | ||
Edit Makefile and remove TARGETS = shared and INSTALL_TARGETS = install-shared | Edit Makefile and remove TARGETS = shared and INSTALL_TARGETS = install-shared | ||
</nowiki> | |||
'''libiconv-1.9.2:''' | |||
libiconv-1.9.2: | <nowiki>--disable-nls | ||
--disable-nls | |||
srclib/setenv.c: | srclib/setenv.c: | ||
srclib/unsetenv.c: | srclib/unsetenv.c: | ||
add #include <sys/types.h> | add #include <sys/types.h></nowiki> | ||
tin-2.4.4: | '''tin-2.4.4:''' | ||
pcre/dftables.c: | <nowiki>pcre/dftables.c: | ||
Ultrix fopen() doesn't understand argument "wb". | Ultrix fopen() doesn't understand argument "wb". | ||
Change to "w+" | Change to "w+" | ||
Zeile 311: | Zeile 433: | ||
extern void *realloc(void *, size_t); | extern void *realloc(void *, size_t); | ||
extern void free(void *); | extern void free(void *); | ||
</nowiki> | |||
'''bash-2.05b:''' | |||
bash-2.05b: | |||
--with-readline --with-installed-readline --disable-nls | --with-readline --with-installed-readline --disable-nls | ||
pdksh-5.2.14: | '''pdksh-5.2.14:''' | ||
--disable-emacs | --disable-emacs | ||
m4-1.4.5: | '''m4-1.4.5:''' | ||
regcomp.c | <nowiki>regcomp.c | ||
Ultrix 3 doesn't know about MB_CUR_MAX | Ultrix 3 doesn't know about MB_CUR_MAX | ||
#define MB_CUR_MAX 1 | #define MB_CUR_MAX 1 | ||
Zeile 335: | Zeile 456: | ||
lib/regex_internal.c: | lib/regex_internal.c: | ||
add: | add: | ||
Zeile 358: | Zeile 478: | ||
some tests fail with doc/m4.texinfo. This is known. Ignore. | some tests fail with doc/m4.texinfo. This is known. Ignore. | ||
</nowiki> | |||
'''gawk-3.0.6:''' | |||
gawk-3.0.6 | |||
--disable-nls | --disable-nls | ||
make-3.77: | '''make-3.77:''' | ||
glob/fnmatch.c: | <nowiki>glob/fnmatch.c: | ||
#include <sys/types.h> | #include <sys/types.h> | ||
#define NULL 0 | #define NULL 0 | ||
Zeile 374: | Zeile 494: | ||
#endif | #endif | ||
remove() should remove both files and directories. unlink() only removes files. | remove() should remove both files and directories. unlink() only removes files. | ||
</nowiki> | |||
'''bash-2.05:''' | |||
bash-2.05: | <nowiki>locale.c: | ||
locale.c: | |||
#include <ctype.h> | #include <ctype.h> | ||
#include <locale.h> | #include <locale.h> | ||
#define NULL 0 | #define NULL 0 | ||
</nowiki> | |||
'''gcc-2.8.1:''' FAIL | |||
gcc-2.8.1: FAIL | <nowiki>incorrectly includes stdlib.h | ||
incorrectly includes stdlib.h | |||
change HAVE_STDLIB_H in auto-config.h | change HAVE_STDLIB_H in auto-config.h | ||
to #undef HAVE_STDLIB_H | to #undef HAVE_STDLIB_H | ||
Zeile 393: | Zeile 513: | ||
override host overrides... Not sure if this is a good idea... | override host overrides... Not sure if this is a good idea... | ||
FAILs compiling enquire.c with ./xgcc | FAILs compiling enquire.c with ./xgcc | ||
</nowiki> | |||
'''patch-2.5.9:''' | |||
patch-2.5.9 | <nowiki>dirname.h: | ||
dirname.h: | |||
#include <sys/types.h> | #include <sys/types.h> | ||
config.h | config.h | ||
#define HAVE_STRUCT_UTIMBUF 1 | #define HAVE_STRUCT_UTIMBUF 1 | ||
</nowiki> | |||
'''perl-5.004:''' FAIL | |||
perl-5.004: FAIL | <pre> | ||
Configure -Dcc=gcc to use gcc | Configure -Dcc=gcc to use gcc | ||
In file included from doio.c:21: | In file included from doio.c:21: | ||
/usr/include/sys/ipc.h:14: redefinition of `struct ipc_perm' | /usr/include/sys/ipc.h:14: redefinition of `struct ipc_perm' | ||
In file included from doio.c:26: | In file included from doio.c:26: | ||
/usr/include/sys/sem.h:91: redefinition of `struct semid_ds' | /usr/include/sys/sem.h:91: redefinition of `struct semid_ds' | ||
/usr/include/sys/sem.h:103: redefinition of `struct sem' | /usr/include/sys/sem.h:103: redefinition of `struct sem' | ||
/usr/include/sys/sem.h:114: redefinition of `struct sem_undo' | /usr/include/sys/sem.h:114: redefinition of `struct sem_undo' | ||
/usr/include/sys/sem.h:117: redefinition of `struct undo' | /usr/include/sys/sem.h:117: redefinition of `struct undo' | ||
/usr/include/sys/sem.h:127: redefinition of `struct seminfo' | /usr/include/sys/sem.h:127: redefinition of `struct seminfo' | ||
/usr/include/sys/sem.h:144: redefinition of `struct sembuf' | /usr/include/sys/sem.h:144: redefinition of `struct sembuf' | ||
make: *** [doio.o] Error 1 | make: *** [doio.o] Error 1 | ||
</pre> | |||
compilation FAILED | compilation FAILED | ||
gcc-2.95.3: FAIL | '''gcc-2.95.3:''' FAIL | ||
get libio patch | <nowiki>get libio patch | ||
copy patch to libio dir | copy patch to libio dir | ||
apply patch like: | apply patch like: | ||
Zeile 441: | Zeile 563: | ||
change in | change in | ||
libiberty/config.h | libiberty/config.h | ||
gcc/auto-host.h | gcc/auto-host.h</nowiki> | ||
FAILS in stage1: | FAILS in stage1: | ||
ln -s .././../gcc-2.95.3/gcc/../libiberty/obstack.c obstack.c | <pre> | ||
stage1/xgcc -Bstage1/ -B/usr/local/mips-dec-ultrix3.1/bin/ -c -DIN_GCC -O2 -g -O2 -DHAVE_CONFIG_H -I. -I.././../gcc-2.95.3/gcc -I.././../gcc-2.95.3/gcc/config -I.././../gcc-2.95.3/gcc/../include obstack.c | ln -s .././../gcc-2.95.3/gcc/../libiberty/obstack.c obstack.c | ||
stage1/xgcc -Bstage1/ -B/usr/local/mips-dec-ultrix3.1/bin/ -DIN_GCC -O2 -g -O2 -DHAVE_CONFIG_H -o gencheck \ | stage1/xgcc -Bstage1/ -B/usr/local/mips-dec-ultrix3.1/bin/ -c -DIN_GCC -O2 -g -O2 -DHAVE_CONFIG_H -I. -I.././../gcc-2.95.3/gcc -I.././../gcc-2.95.3/gcc/config -I.././../gcc-2.95.3/gcc/../include obstack.c | ||
gencheck.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` | stage1/xgcc -Bstage1/ -B/usr/local/mips-dec-ultrix3.1/bin/ -DIN_GCC -O2 -g -O2 -DHAVE_CONFIG_H -o gencheck \ | ||
stage1/libgcc.a(__main.o): In function `__do_global_ctors': | gencheck.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` | ||
/usr/local/compile/gcc-2.95.3bin/gcc/.././../gcc-2.95.3/gcc/libgcc2.c(.text+0xf0): undefined reference to `atexit' | stage1/libgcc.a(__main.o): In function `__do_global_ctors': | ||
collect2: ld returned 1 exit status | /usr/local/compile/gcc-2.95.3bin/gcc/.././../gcc-2.95.3/gcc/libgcc2.c(.text+0xf0): undefined reference to `atexit' | ||
make[2]: *** [gencheck] Error 1 | collect2: ld returned 1 exit status | ||
make[2]: Leaving directory `/usr/local/compile/gcc-2.95.3bin/gcc' | make[2]: *** [gencheck] Error 1 | ||
make[1]: *** [bootstrap] Error 2 | make[2]: Leaving directory `/usr/local/compile/gcc-2.95.3bin/gcc' | ||
make[1]: Leaving directory `/usr/local/compile/gcc-2.95.3bin/gcc' | make[1]: *** [bootstrap] Error 2 | ||
make: *** [bootstrap] Error 2 | make[1]: Leaving directory `/usr/local/compile/gcc-2.95.3bin/gcc' | ||
make: *** [bootstrap] Error 2 | |||
</pre> | |||
bzip2-1.0.6: | '''bzip2-1.0.6:''' | ||
change all remove() to unlink() in bzip2.c | <nowiki>change all remove() to unlink() in bzip2.c | ||
#include <missing_strstr.h> | #include <missing_strstr.h> | ||
#include <missing_memmove.h> | #include <missing_memmove.h> | ||
#include <missing_strerror.h> | #include <missing_strerror.h> | ||
delete "-f" from Makefile | delete "-f" from Makefile | ||
fopen() doesn't know about the argument rb or wb. Change to r+ an w+ | fopen() doesn't know about the argument rb or wb. Change to r+ an w+ | ||
also check for other open() like bzopen() | also check for other open() like bzopen() | ||
</nowiki> | |||
'''make-3.79.1:''' | |||
make-3.79.1: | <nowiki>glob/fnmatch.c: | ||
glob/fnmatch.c: | #include <sys/types.h> | ||
#include <sys/types.h> | #define NULL 0 | ||
#define NULL 0 | |||
do not strip the make binary. this breaks make. | do not strip the make binary. this breaks make. | ||
function.c and job.c: | function.c and job.c: | ||
#ifndef remove | #ifndef remove | ||
#define remove unlink | #define remove unlink | ||
#endif | #endif | ||
fix like make-3.77. Works. | fix like make-3.77. Works. | ||
</nowiki> | |||
'''bash-3.2:''' | |||
bash-3.2: | <nowiki>needs #include <sys/time.h> in readline/history.h | ||
needs #include <sys/time.h> in readline/history.h | |||
needs a few #inlcude <sys/types.h> for undefined size_t etc. | needs a few #inlcude <sys/types.h> for undefined size_t etc. | ||
#undef HAVE_LOCAL_H | #undef HAVE_LOCAL_H | ||
Zeile 492: | Zeile 615: | ||
Ultrix 3 does only have tzset() in a kernel sysV Envrionment. It is only | Ultrix 3 does only have tzset() in a kernel sysV Envrionment. It is only | ||
used in strftime.c, so uncomment all tzset(). | used in strftime.c, so uncomment all tzset(). | ||
</nowiki> | |||
'''jpeg-6b:''' | |||
jpeg-6b: | |||
just plain compile. Do not use libtool. Libtool will fail. | just plain compile. Do not use libtool. Libtool will fail. | ||
The rest works and builds fine. | The rest works and builds fine. | ||
jasper-1.900.1: FAIL | '''jasper-1.900.1:''' FAIL | ||
src/libjasper/include/jasper: | <nowiki>src/libjasper/include/jasper: | ||
#include <sys/types.h> | #include <sys/types.h> | ||
extern void *malloc(size_t); | extern void *malloc(size_t); | ||
extern void *realloc(void *, size_t); | extern void *realloc(void *, size_t); | ||
extern void free(void *); | extern void free(void *); | ||
#define EXIT_FAILURE 1 /* Failing exit status. */ | #define EXIT_FAILURE 1 /* Failing exit status. */ | ||
#define EXIT_SUCCESS 0 /* Successful exit status. */ | #define EXIT_SUCCESS 0 /* Successful exit status. */ | ||
imgcmp.c | imgcmp.c | ||
imginfo.c | imginfo.c | ||
jasper.c | jasper.c | ||
jiv.c | jiv.c</nowiki> | ||
mips-dec-ultrix3.1-gcc -g -O2 -o jasper jasper.o ../libjasper/.libs/libjasper.a -lm | |||
../libjasper/.libs/libjasper.a(jas_init.o): In function `jas_init': | |||
jas_init.c:154: undefined reference to `atexit' | |||
../libjasper/.libs/libjasper.a(jas_image.o): In function `jas_image_delcmpt': | |||
jas_image.c:649: undefined reference to `memmove' | |||
../libjasper/.libs/libjasper.a(jas_image.o): In function `jas_image_addcmpt': | |||
jas_image.c:676: undefined reference to `memmove' | |||
../libjasper/.libs/libjasper.a(jas_image.o): In function `jas_image_copycmpt': | |||
jas_image.c:803: undefined reference to `memmove' | |||
../libjasper/.libs/libjasper.a(jas_cm.o): In function `jas_cmpxformseq_insertpxform': | |||
jas_cm.c:669: undefined reference to `memmove' | |||
../libjasper/.libs/libjasper.a(jas_icc.o): In function `jas_iccattrtab_add': | |||
jas_icc.c:775: undefined reference to `memmove' | |||
../libjasper/.libs/libjasper.a(jas_icc.o):jas_icc.c:809: more undefined references to `memmove' follow | |||
make[2]: *** [jasper] Error 1 | |||
make[2]: Leaving directory `/usr/local/compile/jasper-1.900.1/src/appl' | |||
make[1]: *** [all-recursive] Error 1 | |||
make[1]: Leaving directory `/usr/local/compile/jasper-1.900.1/src' | |||
make: *** [all-recursive] Error 1 | |||
FAILS | FAILS | ||
ncurses-5.9: FAIL | '''ncurses-5.9:''' FAIL | ||
ncurses needs to link with libiconv_ult because of setlocale. | <nowiki>ncurses needs to link with libiconv_ult because of setlocale. | ||
Thomas Dickey proposed setting before configure in the shel environment: | Thomas Dickey proposed setting before configure in the shel environment: | ||
LIBS="$LIBS -liconv_ult"; export LIBS | LIBS="$LIBS -liconv_ult"; export LIBS | ||
Zeile 570: | Zeile 694: | ||
do a "find . -print | xargs grep fopen" and fix fopen arguments | do a "find . -print | xargs grep fopen" and fix fopen arguments | ||
still FAILS and can't open terminals. | still FAILS and can't open terminals. | ||
</nowiki> | |||
'''libtool-1.5.24:''' FAIL | |||
libtool-1.5.24: FAIL | <nowiki>ltdl.c: add: | ||
ltdl.c: add: | |||
#include <sys/types.h> | #include <sys/types.h> | ||
extern void *malloc(size_t); | extern void *malloc(size_t); | ||
Zeile 580: | Zeile 704: | ||
extern void free(void *); | extern void free(void *); | ||
FAILS several test. Don't install | FAILS several test. Don't install | ||
</nowiki> | |||
'''fileutils-4.1:''' | |||
fileutils-4.1: | <nowiki>lib/quotearg.h: | ||
lib/quotearg.h: | |||
#include <sys/types.h> | #include <sys/types.h> | ||
lib/dirname.c: | lib/dirname.c: | ||
Zeile 602: | Zeile 726: | ||
do not strip the fileutils binaries. This breaks some of the tools. | do not strip the fileutils binaries. This breaks some of the tools. | ||
</nowiki> | |||
'''top-3.1:''' | |||
top-3.1: | <nowiki>unpack to new dir! | ||
unpack to new dir! | |||
build for 43bsd. | build for 43bsd. | ||
install group as bin. | install group as bin. | ||
</nowiki> | |||
'''libpng-1.0.39:''' | |||
libpng-1.0.39: | <nowiki>png.c: | ||
png.c: | |||
#include <missing_snprintf.h> | #include <missing_snprintf.h> | ||
fix fopen() argument rb and wb to r+ and w+ | fix fopen() argument rb and wb to r+ and w+ | ||
pngtest.c | pngtest.c | ||
example.c | example.c</nowiki> | ||
'''gs6.01:''' FAIL | |||
<nowiki>fix fopen() argument rb and wb to r+ and w+ in many files | |||
</nowiki> | |||
/usr/include/strings.h:56: conflicting types for `strspn' | /usr/include/strings.h:56: conflicting types for `strspn' | ||
/usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/string.h:64: previous declaration of `strspn' | /usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/string.h:64: previous declaration of `strspn' | ||
/usr/include/strings.h:57: conflicting types for `strcspn' | /usr/include/strings.h:57: conflicting types for `strcspn' | ||
/usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/string.h:65: previous declaration of `strcspn' | /usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/string.h:65: previous declaration of `strcspn' | ||
./src/gp_unifs.c: In function `gp_enumerate_files_init': | ./src/gp_unifs.c: In function `gp_enumerate_files_init': | ||
./src/gp_unifs.c:206: warning: implicit declaration of function `memcpy' | ./src/gp_unifs.c:206: warning: implicit declaration of function `memcpy' | ||
./src/gp_unifs.c: In function `gp_enumerate_files_next': | ./src/gp_unifs.c: In function `gp_enumerate_files_next': | ||
./src/gp_unifs.c:311: warning: function `memcpy' was previously declared within a block | ./src/gp_unifs.c:311: warning: function `memcpy' was previously declared within a block | ||
./src/gp_unifs.c:313: warning: function `memcpy' was previously declared within a block | ./src/gp_unifs.c:313: warning: function `memcpy' was previously declared within a block | ||
./src/gp_unifs.c:317: warning: function `memcpy' was previously declared within a block | ./src/gp_unifs.c:317: warning: function `memcpy' was previously declared within a block | ||
./src/gp_unifs.c:329: warning: implicit declaration of function `stat' | ./src/gp_unifs.c:329: warning: implicit declaration of function `stat' | ||
./src/gp_unifs.c:402: warning: function `memcpy' was previously declared within a block | ./src/gp_unifs.c:402: warning: function `memcpy' was previously declared within a block | ||
make: *** [obj/gp_unifs.o] Error 1 | make: *** [obj/gp_unifs.o] Error 1 | ||
extern unsigned int vs extern int. | <nowiki>extern unsigned int vs extern int. | ||
fix /usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/string.h | fix /usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/string.h | ||
to extern int. | to extern int. | ||
FAILS. | FAILS. | ||
</nowiki> | |||
'''libidn-1.26:''' FAIL | |||
<nowiki>gl/version-etc.h | |||
libidn-1.26: FAIL | |||
gl/version-etc.h | |||
#include <sys/types.h> | #include <sys/types.h> | ||
Zeile 667: | Zeile 790: | ||
make without doc SUBDIR, because we don't have perl (yet)... | make without doc SUBDIR, because we don't have perl (yet)... | ||
FAILs still... | FAILs still... | ||
</nowiki> | |||
'''vim-5.8:''' FAIL | |||
vim-5.8: FAIL | <nowiki>--enable-gui=no --disable-gpm --without-x mips-dec-ultrix3.1 | ||
--enable-gui=no --disable-gpm --without-x mips-dec-ultrix3.1 | |||
ex_docmd.c: | ex_docmd.c: | ||
Zeile 688: | Zeile 811: | ||
FAILS: does not work correctly. Crashes often... | FAILS: does not work correctly. Crashes often... | ||
</nowiki> | |||
'''ssh-1.2.32:''' | |||
ssh-1.2.32: | <nowiki>compile with X11R4 for --with-x to work! | ||
compile with X11R4 for --with-x to work! | without X11R4 use configure --without-x</nowiki> | ||
without X11R4 use configure --without-x | |||
change in config.h: | change in config.h: | ||
#undef HAVE_ULTRIX_SHADOW_PASSWORDS | #undef HAVE_ULTRIX_SHADOW_PASSWORDS | ||
tcl-7.3 and tk-3.6 | '''tcl-7.3 and tk-3.6:''' | ||
build both in parallel. | <nowiki>build both in parallel. | ||
tk needs to have tcl in the same dir to build! | tk needs to have tcl in the same dir to build! | ||
use gcc | use gcc | ||
Zeile 712: | Zeile 835: | ||
lives in X11/Xutil.h in X11R4! | lives in X11/Xutil.h in X11R4! | ||
</nowiki> | |||
'''X11R4:''' | |||
<nowiki>unpack the distribution files: | |||
unpack the distribution files: | |||
cat *.?? | uncompress | (cd /home/X11R4/; tar xvf -) | cat *.?? | uncompress | (cd /home/X11R4/; tar xvf -) | ||
Zeile 729: | Zeile 852: | ||
X11R4 seems to work fine. Rebuild packages using X with X11R4... | X11R4 seems to work fine. Rebuild packages using X with X11R4... | ||
remove /usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/X11/Intrinsic.h | remove /usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/X11/Intrinsic.h | ||
</nowiki> | |||
'''xpm-3.4k:''' | |||
xpm-3.4k | <nowiki>use Makefile.noX | ||
use Makefile.noX | |||
change CC=cc to gcc | change CC=cc to gcc | ||
change XpmI.h | change XpmI.h | ||
Zeile 746: | Zeile 869: | ||
change installation directory to /usr... not /usr/local | change installation directory to /usr... not /usr/local | ||
libXpm.a is not correctly installed. Copy by hand to /usr/lib! | libXpm.a is not correctly installed. Copy by hand to /usr/lib! | ||
</nowiki> | |||
'''libungif-4.1.4:''' | |||
libungif-4.1.4: | <nowiki>fix fopen arguments | ||
fix fopen arguments | util/gif2epsn.c | ||
util/gif2epsn.c | util/gif2ps.c | ||
util/gif2ps.c | util/gif2rgb.c | ||
util/gif2rgb.c | util/gifasm.c | ||
util/gifasm.c | util/gifbg.c | ||
util/gifbg.c | util/gifclip.c | ||
util/gifclip.c | util/gifcomb.c | ||
util/gifcomb.c | util/giffix.c | ||
util/giffix.c | util/gifflip.c | ||
util/gifflip.c | util/gifhisto.c | ||
util/gifhisto.c | util/gifinter.c | ||
util/gifinter.c | util/gifinto.c | ||
util/gifinto.c | util/gifovly.c | ||
util/gifovly.c | util/gifpos.c | ||
util/gifpos.c | util/gifrsize.c | ||
util/gifrsize.c | util/giftext.c | ||
util/giftext.c | util/gifwedge.c | ||
util/gifwedge.c | util/raw2gif.c | ||
util/raw2gif.c | util/rgb2gif.c | ||
util/rgb2gif.c | util/text2gif.c | ||
util/text2gif.c | util/gifspnge.c | ||
util/gifspnge.c | util/giffiltr.c | ||
util/giffiltr.c | util/icon2gif.c | ||
util/icon2gif.c | util/gifcolor.c | ||
util/gifcolor.c | util/gifinfo.c | ||
util/gifinfo.c | util/gifclrmp.c | ||
util/gifclrmp.c | util/gifrotat.c | ||
util/gifrotat.c | util/gif2x11.c | ||
util/gif2x11.c | |||
#define EXIT_FAILURE 1 /* Failing exit status. */ | #define EXIT_FAILURE 1 /* Failing exit status. */ | ||
Zeile 786: | Zeile 909: | ||
text2gif.c(.text+0x2e0): undefined reference to `strdup' | text2gif.c(.text+0x2e0): undefined reference to `strdup' | ||
root@minou:/usr/local/compile/libungif-4.1.4/util# mips-dec-ultrix3.1-gcc -I/usr/local/include -Wall -I/usr/local/include -o text2gif text2gif.o -L/usr/local/lib ../lib/.libs/libungif.a -L/usr/lib -lX11 -liberty ../lib/libgetarg.a | root@minou:/usr/local/compile/libungif-4.1.4/util# mips-dec-ultrix3.1-gcc -I/usr/local/include -Wall -I/usr/local/include -o text2gif text2gif.o -L/usr/local/lib ../lib/.libs/libungif.a -L/usr/lib -lX11 -liberty ../lib/libgetarg.a | ||
</nowiki> | |||
'''ghostscript-5.01:''' FAIL | |||
fix fopen() | |||
gs16spl.c | |||
gp_os2.c | |||
gp_mswin.c | |||
gp_iwatc.c | |||
gp_dvx.c | |||
gdevcgm.c | |||
add to compile flags: -DBSD4_2 | |||
adapt makefile | |||
does not work with X11R3? Works with X11R4. | |||
gdevxini.c:55: `XtPointer' undeclared here (not in a function) | |||
gdevxini.c:55: initializer element for `resources[0].default_addr' is not constant | |||
gdevxini.c:119: `XtRFloat' undeclared here (not in a function) | |||
gdevxini.c:119: initializer element for `resources[18].resource_type' is not constant | |||
gdevxini.c: | |||
gdevxini.c: | #include <X11/Xlib.h> | ||
#include <X11/StringDefs.h> | |||
still FAILS | still FAILS | ||
t1lib-5.1.2: | '''t1lib-5.1.2:''' | ||
/lib/type1/t1io.c: | <nowiki>/lib/type1/t1io.c: | ||
#include <missing_strstr.h> | #include <missing_strstr.h> | ||
fix fopen() bugs in various files | fix fopen() bugs in various files | ||
Zeile 821: | Zeile 945: | ||
ULTRIX only provides tzset in a SystemV environment. Delete all lines with tzset. | ULTRIX only provides tzset in a SystemV environment. Delete all lines with tzset. | ||
copy strftime.c to /usr/include/missing_strftime.h | copy strftime.c to /usr/include/missing_strftime.h | ||
Surprise! strftime() also exists in libiconv_ult! | Surprise! strftime() also exists in libiconv_ult!</nowiki> | ||
freetype-2.1.10: | freetype-2.1.10: | ||
src/base/ftsystem.c: | <nowiki>src/base/ftsystem.c: | ||
#include <unistd.h> | #include <unistd.h> | ||
fix fopen() bugs in various files | fix fopen() bugs in various files | ||
Zeile 835: | Zeile 959: | ||
parse error in /usr/local/compile/freetype-2.1.10/include/freetype/internal/ftvalid.h | parse error in /usr/local/compile/freetype-2.1.10/include/freetype/internal/ftvalid.h | ||
FAILS. No solution yet. | FAILS. No solution yet.</nowiki> | ||
xearth-1.1: | '''xearth-1.1:''' | ||
do xmkmf and then edit the Makefile | <nowiki>do xmkmf and then edit the Makefile | ||
needs strftime(). Link with -liconv_ult | needs strftime(). Link with -liconv_ult</nowiki> | ||
xbill-1.1: FAIL | '''xbill-1.1:''' FAIL | ||
do xmkmf and then edit the Makefile | <nowiki>do xmkmf and then edit the Makefile | ||
use Xaw instead of Motif. | use Xaw instead of Motif. | ||
library hell. Lots of undefined X references... | library hell. Lots of undefined X references... | ||
FAILS. Maybe does not work with X11R4? | FAILS. Maybe does not work with X11R4?</nowiki> | ||
fvwm-1.24r | '''fvwm-1.24r:''' | ||
use gcc | <nowiki>use gcc | ||
do xmkmf and edit all the Makefiles... | do xmkmf and edit all the Makefiles... | ||
modules/FvwmSave/FvwmSave.c: | modules/FvwmSave/FvwmSave.c: | ||
Zeile 858: | Zeile 982: | ||
#include <missing_strstr.h> | #include <missing_strstr.h> | ||
copy sample.fvwmrc to /usr/local/share | copy sample.fvwmrc to /usr/local/share</nowiki> | ||
mutt-1.4.2.3: FAIL | '''mutt-1.4.2.3:''' FAIL | ||
./configure --disable-nls --with-libiconv-prefix=/usr/local --without-wc-funcs mips-de-ultrix3.1 | ./configure --disable-nls --with-libiconv-prefix=/usr/local --without-wc-funcs mips-de-ultrix3.1 | ||
makedoc.c: | <nowiki>makedoc.c: | ||
sy/stat.h cannot be included twice. | sy/stat.h cannot be included twice. | ||
remove from lib.h. | remove from lib.h. | ||
FAILs | FAILs</nowiki> | ||
zsh-4.3.10: | '''zsh-4.3.10:''' | ||
Src/utils.c: | Src/utils.c: | ||
#define MB_CUR_MAX 1 | <nowiki>#define MB_CUR_MAX 1</nowiki> | ||
'''xntp3-5.93e-export''' | |||
use this to sync time: (maybe add to add to /etc/rc.local:) | |||
<pre> | |||
# NTPdate | |||
echo "updating time with NTP" | |||
/usr/local/bin/ntpdate -b ptbtime1.ptb.de ptbtime2.ptb.de >/dev/null</nowiki> | |||
</pre> | |||
'''vim-6.4:''' | |||
<pre> | |||
./configure --disable-nls --enable-gui=no --with-x=no | |||
edit src/Makefile: | |||
EXTRA_LIBS = /usr/lib/libiconv_ult.a | |||
src/eval.c: add: | |||
#include <missing_strstr.h> | |||
</pre> | |||
[[Kategorie: UNIX]] | |||
[[Kategorie: ULTRIX]] |
Aktuelle Version vom 12. April 2023, 16:17 Uhr
ULTRIX 3.1D
ULTRIX release 3.1D was a special hardware release to support the then new DECstation 5000/200. It will run on some early DECstations like the original 3100 and 2100, 5000/200, and possibly on the 5400 and 5800. It is mostly 4.2BSD with several extensions by DEC and adaptations from SysV and 4.3BSD. The 5000/200 does not have room for internal SCSI disks, so external disks and storage expansion boxes were common.
Ultrix 3.1D comes with X11R3(exact version?) and only a simple X that only supports the plain color graphics (DS3100 or PMAG-B). Replace with X11R4:
"The XtPointer typedef was added to X11 with Release 4. This error indicates that your system has X11R3 or earlier. You need to update to a more recent edition of X in order to compile NetHack's X11 interface."
copy stddef.h from ULTRIX 4.5...
show all soft/hard errors:
uerf -c err
setting the correct timezone: the only way to set the timezone on ULTRIX 3 is by building a new kernel.
this is the correct setting for MET with daylight savings time (DST):
timezone -1 dst 4
note: date knows about the TZNAME environment variable. You can set it to whatever you like and date will show a different string in the timezone field, but it won't adjust the time:
# date Sun Jan 29 11:41:26 MET 2023 # TZNAME="FARTS"; export TZNAME # date Sun Jan 29 11:41:36 FARTS 2023
This behavior is different from later ULTRIX releases.
building a new kernel:
make sure you don't have anything GNU in the PATH and no CPPFLAGS, CFLAGS, LDFLAGS.
this ULTRIX release will produce a distinct error when linking the vmunix kernel:
loading vmunix /bin/ld: Object file format error in: ltt_usrreq.o: bad issBase in file table entry in FDISS_TO_STR
*** Error code 1 Stop.
I have not been able to determine the source of the problem, but it can be fixed by excluding LAT from the kernel configuration. Chances are you won't need LAT anyway.
this is an example of a working kernel configuration for a DECstation 5000/200 with 64MB RAM booting from rz0:
ident "MINOU" machine mips cpu "DS5000" maxusers 64 processors 1 maxuprc 50 physmem 64 timezone -1 dst 4 options QUOTA options INET options EMULFLT options NFS options RPC options DLI options UFS options DECNET makeoptions ENDIAN="-EL" config vmunix root on rz0a swap on rz0b dumps on rz0b adapter ibus0 at nexus? adapter ibus1 at nexus? adapter ibus2 at nexus? adapter ibus5 at nexus? adapter ibus6 at nexus? adapter ibus7 at nexus? controller asc0 at ibus? vector ascintr disk rz0 at asc0 drive 0 disk rz1 at asc0 drive 1 disk rz2 at asc0 drive 2 disk rz3 at asc0 drive 3 disk rz4 at asc0 drive 4 disk rz5 at asc0 drive 5 disk rz6 at asc0 drive 6 disk rz7 at asc0 drive 7 tape tz0 at asc0 drive 0 tape tz1 at asc0 drive 1 tape tz2 at asc0 drive 2 tape tz3 at asc0 drive 3 tape tz4 at asc0 drive 4 tape tz5 at asc0 drive 5 tape tz6 at asc0 drive 6 tape tz7 at asc0 drive 7 controller asc1 at ibus? vector ascintr disk rz8 at asc1 drive 0 disk rz9 at asc1 drive 1 disk rz10 at asc1 drive 2 disk rz11 at asc1 drive 3 disk rz12 at asc1 drive 4 disk rz13 at asc1 drive 5 disk rz14 at asc1 drive 6 disk rz15 at asc1 drive 7 tape tz8 at asc1 drive 0 tape tz9 at asc1 drive 1 tape tz10 at asc1 drive 2 tape tz11 at asc1 drive 3 tape tz12 at asc1 drive 4 tape tz13 at asc1 drive 5 tape tz14 at asc1 drive 6 tape tz15 at asc1 drive 7 device ln0 at ibus? vector lnintr device ln1 at ibus? vector lnintr device dc0 at ibus? vector dcintr scs_sysid 1 pseudo-device pty pseudo-device loop pseudo-device inet pseudo-device ether pseudo-device rpc pseudo-device nfs pseudo-device dli pseudo-device ufs pseudo-device decnet
On ultrix 4.2 (and earlier) we don't have usleep()
in the file clients/olwm/usleep.c
replace the line
return usleep(usec);
with
#ifndef ultrix return usleep(usec); #else return sleep(usec * 1000000); #endif
to enable root logins via telnet or non-secure ports, edit /etc/ttys:
root@minou:/etc# cat ttys # @(#)ttys 1.1 (ULTRIX) 3/2/89 # # # # name getty type status comments # console "/etc/getty std.9600" vt100 on secure # console terminal tty00 "/etc/getty std.9600" vt100 on secure nomodem # direct connect tty tty01 "/etc/getty std.9600" vt100 off secure nomodem # direct connect tty tty02 "/etc/getty std.9600" vt100 off secure nomodem # direct connect tty tty03 "/etc/getty std.9600" vt100 off secure nomodem # direct connect tty tty04 "/etc/getty std.9600" vt100 off secure nomodem # direct connect tty tty05 "/etc/getty std.9600" vt100 off secure nomodem # direct connect tty tty06 "/etc/getty std.9600" vt100 off secure nomodem # direct connect tty tty07 "/etc/getty std.9600" vt100 off secure nomodem # direct connect tty ttyd0 "/etc/getty std.9600" vt100 off shared secure # modem line ttyp0 none network secure ttyp1 none network secure ttyp2 none network secure ttyp3 none network secure ttyp4 none network secure ttyp5 none network secure ttyp6 none network secure ttyp7 none network secure ttyp8 none network secure ttyp9 none network secure ttypa none network secure ttypb none network secure ttypc none network secure ttypd none network secure ttype none network secure ttypf none network secure ttyq0 none network secure ttyq1 none network secure ttyq2 none network secure ttyq3 none network secure ttyq4 none network secure ttyq5 none network secure ttyq6 none network secure ttyq7 none network secure ttyq8 none network secure ttyq9 none network secure ttyqa none network secure ttyqb none network secure ttyqc none network secure ttyqd none network secure ttyqe none network secure ttyqf none network secure # :0 "/usr/bin/login -P /usr/bin/Xprompter -C /usr/bin/dxsession" none on secure window="/usr/bin/Xcfb"
add to /etc/rc.local:
# default route echo 'setting default route' > /dev/console /etc/route add default 192.168.2.253 1 # SSHd echo 'starting SSH daemon' > /dev/console /usr/local/sbin/sshd
error in repaired Ultrix gcc header files:
/usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/sys/dir.h
gcc fixes this to u_long, but does not define it. Add:
#include <sys/types.h>
in many cases, config.guess can't detect the platform. Specify as mips-dec-ultrix3.1
size_t is declared in <sys/types.h>
Ultrix also often needs:
#define NULL 0
.cshrc:
if ($term == xterm-256color) then setenv TERM vt100 endif
.bashrc:
# set a fancy prompt PS1='\u@\h:\w\$ ' export PS1
.profile
if [ $TERM = "xterm-256color" ] then TERM=vt100; export TERM fi
symlink /usr/lib/libi.a to /usr/lib/libiconv_ult.a if setlocale is undefined link with this library for some reason gcc doesn't want to link just to libi.a
strstr.c from GNU tar... copy to /usr/include/missing_strstr.h
/* strstr.c -- return the offset of one string within another Copyright (C) 1989, 1990 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Written by Mike Rendell <michael@cs.mun.ca>. */
/* Return the starting address of string S2 in S1; return 0 if it is not found. */ char * strstr (s1, s2) char *s1; char *s2; { int i; char *p1; char *p2; char *s = s1; for (p2 = s2, i = 0; *s; p2 = s2, i++, s++) { for (p1 = s; *p1 && *p2 && *p1 == *p2; p1++, p2++) ; if (!*p2) break; } if (!*p2) return s1 + i; return 0; }
Building some GNU software:
GCC:
start with gcc-1.42 use gcc to build some older version of tools: sed-1.18, gawk1, bison-1.25, make-3.75 use gcc1 to build gcc2
ultrix 3 doesn't know about atexit(). Remove HAVE_ATEXIT before building gcc.
build gcc in steps:
make "CC=/usr/local/bin/gcc" LANGUAGES=c make stage1 make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O" make stage2 make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" make compare make install CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" LANGUAGES=c
gcc-2.3.3 typedefs size_t to long unsigned int in
/usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.3.3/include/stddef.h
/usr/include/sys/types.h defines size_t as "int"
add something like this in both header files: note: changing original 25 year old header files is really ugly
#ifndef size_t_defined typedef int size_t; #define size_t_defined #endif
binutils 2.7
incorrectly includes stdlib.h in binutils-2.7/binutils/arlex.c
on line 556.
and in binutils-2.7/ld/ldlex.c
on line 1212.
gcc-2.7.2.3
incorrectly includes stdlib.h in ../gcc-2.7.2.3/cpplib.c
on line 73.
sed-3.02
add to sed/utils.h:
#include <sys/types.h>
make-3.76
texinfo-4.8: add to lib/strdup.c: #include <sys/types.h> #define NULL 0 needs #include <missing_strstr.h>
unzip-5.52: filio.c needs #include <missing_strerror.h> make ultrix
bison-1.28
vim-4.6: main.c #include <ctype.h> #include <locale.h> add EXTRA_LIBS = -liconv (see above for /usr/lib/libi.a)
m4-1.4.3: --disable-nls
bash-2.03: --disable-nls save /bin/sh to /bin/sh.ultrix copy /usr/local/bin/bash to /bin/bash and /bin/sh '''zlib-1.2.8:''' does not copy zlib.h and zconf.h Copy by hand! '''readline-5.2:''' xmalloc.h: #include <sys/types.h> time_t lives in <sys/types.> history.h: #include <sys/types.h> wants to build shared libraries for some reason. Edit Makefile and remove TARGETS = shared and INSTALL_TARGETS = install-shared
libiconv-1.9.2: --disable-nls srclib/setenv.c: srclib/unsetenv.c: add #include <sys/types.h>
tin-2.4.4: pcre/dftables.c: Ultrix fopen() doesn't understand argument "wb". Change to "w+" add to pcre/pcre_globals.c: #include <sys/types.h> extern void *malloc(size_t); extern void *realloc(void *, size_t); extern void free(void *);
bash-2.05b: --with-readline --with-installed-readline --disable-nls
pdksh-5.2.14:
--disable-emacs
m4-1.4.5:
regcomp.c
Ultrix 3 doesn't know about MB_CUR_MAX
#define MB_CUR_MAX 1
regcomp.c
vasnprintf.c
lib/error.c:
add:
#include <missing_strerror.h>
lib/regex_internal.c:
add:
old m4-1.4.3/src/stackovf.c:
vec.sv_flags = (SV_ONSTACK
#ifdef SV_RESETHAND
| SV_RESETHAND
#endif
);
new m4-1.4.5/src/stackovf.c:
vec.sv_flags = (SV_ONSTACK | SV_RESETHAND);
backport:
vec.sv_flags = (SV_ONSTACK
#ifdef SV_RESETHAND
| SV_RESETHAND
#endif
);
some tests fail with doc/m4.texinfo. This is known. Ignore.
gawk-3.0.6: --disable-nls
make-3.77:
glob/fnmatch.c:
#include <sys/types.h>
#define NULL 0
function.c and job.c:
#ifndef remove
#define remove unlink
#endif
remove() should remove both files and directories. unlink() only removes files.
bash-2.05: locale.c: #include <ctype.h> #include <locale.h> #define NULL 0
gcc-2.8.1: FAIL incorrectly includes stdlib.h change HAVE_STDLIB_H in auto-config.h to #undef HAVE_STDLIB_H change #define HAVE_STDDEF_H 1 to #undef HAVE_STDDEF_H Makefile insists on using OLDCC as the MIPS C compiler override host overrides... Not sure if this is a good idea... FAILs compiling enquire.c with ./xgcc
patch-2.5.9:
dirname.h:
#include <sys/types.h>
config.h
#define HAVE_STRUCT_UTIMBUF 1
perl-5.004: FAIL
Configure -Dcc=gcc to use gcc In file included from doio.c:21: /usr/include/sys/ipc.h:14: redefinition of `struct ipc_perm' In file included from doio.c:26: /usr/include/sys/sem.h:91: redefinition of `struct semid_ds' /usr/include/sys/sem.h:103: redefinition of `struct sem' /usr/include/sys/sem.h:114: redefinition of `struct sem_undo' /usr/include/sys/sem.h:117: redefinition of `struct undo' /usr/include/sys/sem.h:127: redefinition of `struct seminfo' /usr/include/sys/sem.h:144: redefinition of `struct sembuf' make: *** [doio.o] Error 1
compilation FAILED
gcc-2.95.3: FAIL get libio patch copy patch to libio dir apply patch like: /usr/local/bin/patch < libio_patch.txt configure --disable-nls --with-libiconv-prefix=/usr/local --enable-languages=c,c++ mips-dec-ultrix3.1 incorrectly includes stdlib.h change HAVE_STDLIB_H in auto-config.h to #undef HAVE_STDLIB_H change #define HAVE_STDDEF_H 1 to #undef HAVE_STDDEF_H libiberty/config.h #undef HAVE_ATEXIT #define NEED_ATEXIT 1 change in libiberty/config.h gcc/auto-host.h
FAILS in stage1:
ln -s .././../gcc-2.95.3/gcc/../libiberty/obstack.c obstack.c stage1/xgcc -Bstage1/ -B/usr/local/mips-dec-ultrix3.1/bin/ -c -DIN_GCC -O2 -g -O2 -DHAVE_CONFIG_H -I. -I.././../gcc-2.95.3/gcc -I.././../gcc-2.95.3/gcc/config -I.././../gcc-2.95.3/gcc/../include obstack.c stage1/xgcc -Bstage1/ -B/usr/local/mips-dec-ultrix3.1/bin/ -DIN_GCC -O2 -g -O2 -DHAVE_CONFIG_H -o gencheck \ gencheck.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` stage1/libgcc.a(__main.o): In function `__do_global_ctors': /usr/local/compile/gcc-2.95.3bin/gcc/.././../gcc-2.95.3/gcc/libgcc2.c(.text+0xf0): undefined reference to `atexit' collect2: ld returned 1 exit status make[2]: *** [gencheck] Error 1 make[2]: Leaving directory `/usr/local/compile/gcc-2.95.3bin/gcc' make[1]: *** [bootstrap] Error 2 make[1]: Leaving directory `/usr/local/compile/gcc-2.95.3bin/gcc' make: *** [bootstrap] Error 2
bzip2-1.0.6: change all remove() to unlink() in bzip2.c #include <missing_strstr.h> #include <missing_memmove.h> #include <missing_strerror.h> delete "-f" from Makefile fopen() doesn't know about the argument rb or wb. Change to r+ an w+ also check for other open() like bzopen()
make-3.79.1:
glob/fnmatch.c:
#include <sys/types.h>
#define NULL 0
do not strip the make binary. this breaks make.
function.c and job.c:
#ifndef remove
#define remove unlink
#endif
fix like make-3.77. Works.
bash-3.2: needs #include <sys/time.h> in readline/history.h needs a few #inlcude <sys/types.h> for undefined size_t etc. #undef HAVE_LOCAL_H strftime.c #include <sys/types.h> #include <time.h> #include <sys/time.h> Ultrix 3 does only have tzset() in a kernel sysV Envrionment. It is only used in strftime.c, so uncomment all tzset().
jpeg-6b: just plain compile. Do not use libtool. Libtool will fail. The rest works and builds fine.
jasper-1.900.1: FAIL
src/libjasper/include/jasper:
#include <sys/types.h>
extern void *malloc(size_t);
extern void *realloc(void *, size_t);
extern void free(void *);
#define EXIT_FAILURE 1 /* Failing exit status. */
#define EXIT_SUCCESS 0 /* Successful exit status. */
imgcmp.c
imginfo.c
jasper.c
jiv.c
mips-dec-ultrix3.1-gcc -g -O2 -o jasper jasper.o ../libjasper/.libs/libjasper.a -lm ../libjasper/.libs/libjasper.a(jas_init.o): In function `jas_init': jas_init.c:154: undefined reference to `atexit' ../libjasper/.libs/libjasper.a(jas_image.o): In function `jas_image_delcmpt': jas_image.c:649: undefined reference to `memmove' ../libjasper/.libs/libjasper.a(jas_image.o): In function `jas_image_addcmpt': jas_image.c:676: undefined reference to `memmove' ../libjasper/.libs/libjasper.a(jas_image.o): In function `jas_image_copycmpt': jas_image.c:803: undefined reference to `memmove' ../libjasper/.libs/libjasper.a(jas_cm.o): In function `jas_cmpxformseq_insertpxform': jas_cm.c:669: undefined reference to `memmove' ../libjasper/.libs/libjasper.a(jas_icc.o): In function `jas_iccattrtab_add': jas_icc.c:775: undefined reference to `memmove' ../libjasper/.libs/libjasper.a(jas_icc.o):jas_icc.c:809: more undefined references to `memmove' follow make[2]: *** [jasper] Error 1 make[2]: Leaving directory `/usr/local/compile/jasper-1.900.1/src/appl' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/compile/jasper-1.900.1/src' make: *** [all-recursive] Error 1
FAILS
ncurses-5.9: FAIL
ncurses needs to link with libiconv_ult because of setlocale.
Thomas Dickey proposed setting before configure in the shel environment:
LIBS="$LIBS -liconv_ult"; export LIBS
fails in form/fty_num.c because of possibly ancient locale.h
uncomment this IF:
#if HAVE_LOCALE_H
#define isDecimalPoint(c) ((c) == ((L && L->decimal_point) ? *(L->decimal_point)
: '.'))
use:
#define isDecimalPoint(c) ((c) == '.')
also uncomment:
#if HAVE_LOCALE_H
argn->L = localeconv();
#else
use:
argn->L = NULL;
test/dots.c
test/dots_mvcur.c
#define STDOUT_FILENO 1 /* Standard output. */
test/ncurses.c
#include <missing_strstr.h>
test/railroad.c
#define STDOUT_FILENO 1 /* Standard output. */
FAILS with tic -x.
Probably some unfixed fopen() calls in the sources...
do a "find . -print | xargs grep fopen" and fix fopen arguments
still FAILS and can't open terminals.
libtool-1.5.24: FAIL
ltdl.c: add:
#include <sys/types.h>
extern void *malloc(size_t);
extern void *realloc(void *, size_t);
extern void free(void *);
FAILS several test. Don't install
fileutils-4.1: lib/quotearg.h: #include <sys/types.h> lib/dirname.c: #include <sys/types.h> lib/mbswidth.h #include <sys/types.h> lib/xalloc.h #include <sys/types.h> lib/strnlen.c #include <sys/types.h> src/ls.c: extern int strcoll( const char *__s1, const char *__s2 ); strcoll lives in /usr/lib/libiconv_ult! man/Makefile missing perl wrong. remove man from Makefile rest seems to work fine. do not strip the fileutils binaries. This breaks some of the tools.
top-3.1: unpack to new dir! build for 43bsd. install group as bin.
libpng-1.0.39: png.c: #include <missing_snprintf.h> fix fopen() argument rb and wb to r+ and w+ pngtest.c example.c
gs6.01: FAIL
fix fopen() argument rb and wb to r+ and w+ in many files
/usr/include/strings.h:56: conflicting types for `strspn' /usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/string.h:64: previous declaration of `strspn' /usr/include/strings.h:57: conflicting types for `strcspn' /usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/string.h:65: previous declaration of `strcspn' ./src/gp_unifs.c: In function `gp_enumerate_files_init': ./src/gp_unifs.c:206: warning: implicit declaration of function `memcpy' ./src/gp_unifs.c: In function `gp_enumerate_files_next': ./src/gp_unifs.c:311: warning: function `memcpy' was previously declared within a block ./src/gp_unifs.c:313: warning: function `memcpy' was previously declared within a block ./src/gp_unifs.c:317: warning: function `memcpy' was previously declared within a block ./src/gp_unifs.c:329: warning: implicit declaration of function `stat' ./src/gp_unifs.c:402: warning: function `memcpy' was previously declared within a block make: *** [obj/gp_unifs.o] Error 1
extern unsigned int vs extern int. fix /usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/string.h to extern int. FAILS.
libidn-1.26: FAIL gl/version-etc.h #include <sys/types.h> lib/tld.c lib/tlds.c #define NULL 0 src/idn.c src/idn_cmd.c #define EXIT_FAILURE 1 /* Failing exit status. */ #define EXIT_SUCCESS 0 /* Successful exit status. */ lib/punycode.c #include <missing_memmove.h> change Makefile and src/Makefile LIBS = -liberty -liconv_ult lib/stringprep.h: typedef int ssize_t; make without doc SUBDIR, because we don't have perl (yet)... FAILs still...
vim-5.8: FAIL --enable-gui=no --disable-gpm --without-x mips-dec-ultrix3.1 ex_docmd.c: #include <missing_strstr.h> link with -liconv_ult, because setlocale is undefined does not work with --with-tlib=ncurses! let it autodetect termlib check config.mk: LIBS = -ltermlib -liconv_ult doesn't do anything: src/main.c src/os_unix.c #define STDOUT_FILENO 1 /* Standard output. */ FAILS: does not work correctly. Crashes often...
ssh-1.2.32: compile with X11R4 for --with-x to work! without X11R4 use configure --without-x
change in config.h:
#undef HAVE_ULTRIX_SHADOW_PASSWORDS
tcl-7.3 and tk-3.6: build both in parallel. tk needs to have tcl in the same dir to build! use gcc tkWm.c: In function `TkWmMapWindow': tkWm.c:447: `WithdrawnState' undeclared (first use this function) from linux standard base 4.0: This should be in Xutils.h in well behaved systems: #define WithdrawnState 0 lives in X11/Xutil.h in X11R4!
X11R4: unpack the distribution files: cat *.?? | uncompress | (cd /home/X11R4/; tar xvf -) some include files seem to live in /usr/include/X11/Xaw, but appear to be expected in /usr/include/X11... fix like: cd /usr/include; ln -s Xaw/Form.h ./ building the core X11 distribution works best with ULTRIX /bin/make building contribs may need GNU make xconsole: errors with line wraps... xlock: life.c: sleep(delay * 1000000000); X11R4 seems to work fine. Rebuild packages using X with X11R4... remove /usr/local/lib/gcc-lib/mips-dec-ultrix3.1/2.7.2.3/include/X11/Intrinsic.h
xpm-3.4k: use Makefile.noX change CC=cc to gcc change XpmI.h remove #include <stdlib.h> add #include <sys/types.h> FAILS because no X11/extensions/shape.h CrDatFrI.c: missing s += strlen(s); at various points scan.c(.text+0x668): undefined reference to `strdup': link with -liberty change installation directory to /usr... not /usr/local libXpm.a is not correctly installed. Copy by hand to /usr/lib!
libungif-4.1.4: fix fopen arguments util/gif2epsn.c util/gif2ps.c util/gif2rgb.c util/gifasm.c util/gifbg.c util/gifclip.c util/gifcomb.c util/giffix.c util/gifflip.c util/gifhisto.c util/gifinter.c util/gifinto.c util/gifovly.c util/gifpos.c util/gifrsize.c util/giftext.c util/gifwedge.c util/raw2gif.c util/rgb2gif.c util/text2gif.c util/gifspnge.c util/giffiltr.c util/icon2gif.c util/gifcolor.c util/gifinfo.c util/gifclrmp.c util/gifrotat.c util/gif2x11.c #define EXIT_FAILURE 1 /* Failing exit status. */ #define EXIT_SUCCESS 0 /* Successful exit status. */ link text2gif with -liberty, because it needs strdup(): text2gif.o: In function `main': text2gif.c(.text+0x2e0): undefined reference to `strdup' root@minou:/usr/local/compile/libungif-4.1.4/util# mips-dec-ultrix3.1-gcc -I/usr/local/include -Wall -I/usr/local/include -o text2gif text2gif.o -L/usr/local/lib ../lib/.libs/libungif.a -L/usr/lib -lX11 -liberty ../lib/libgetarg.a
ghostscript-5.01: FAIL
fix fopen() gs16spl.c gp_os2.c gp_mswin.c gp_iwatc.c gp_dvx.c gdevcgm.c add to compile flags: -DBSD4_2 adapt makefile
does not work with X11R3? Works with X11R4. gdevxini.c:55: `XtPointer' undeclared here (not in a function) gdevxini.c:55: initializer element for `resources[0].default_addr' is not constant gdevxini.c:119: `XtRFloat' undeclared here (not in a function) gdevxini.c:119: initializer element for `resources[18].resource_type' is not constant
gdevxini.c: #include <X11/Xlib.h> #include <X11/StringDefs.h>
still FAILS
t1lib-5.1.2:
/lib/type1/t1io.c:
#include <missing_strstr.h>
fix fopen() bugs in various files
strftime-strftime-release-7.0: provides a replacement for strftime().
ULTRIX only provides tzset in a SystemV environment. Delete all lines with tzset.
copy strftime.c to /usr/include/missing_strftime.h
Surprise! strftime() also exists in libiconv_ult!
freetype-2.1.10:
src/base/ftsystem.c:
#include <unistd.h>
fix fopen() bugs in various files
include/freetype/config/ftstdlib.h:
#include <setjmp.h>
include/freetype/internal/ftvalid.h:
#include <setjmp.h>
parse error in /usr/local/compile/freetype-2.1.10/include/freetype/internal/ftvalid.h
FAILS. No solution yet.
xearth-1.1:
do xmkmf and then edit the Makefile
needs strftime(). Link with -liconv_ult
xbill-1.1: FAIL
do xmkmf and then edit the Makefile
use Xaw instead of Motif.
library hell. Lots of undefined X references...
FAILS. Maybe does not work with X11R4?
fvwm-1.24r:
use gcc
do xmkmf and edit all the Makefiles...
modules/FvwmSave/FvwmSave.c:
modules/FvwmSaveDesk/FvwmSaveDesk.c:
fvwm/fvwm.c:
#include <missing_strstr.h>
copy sample.fvwmrc to /usr/local/share
mutt-1.4.2.3: FAIL
./configure --disable-nls --with-libiconv-prefix=/usr/local --without-wc-funcs mips-de-ultrix3.1
makedoc.c: sy/stat.h cannot be included twice. remove from lib.h. FAILs
zsh-4.3.10:
Src/utils.c:
#define MB_CUR_MAX 1
xntp3-5.93e-export
use this to sync time: (maybe add to add to /etc/rc.local:)
# NTPdate echo "updating time with NTP" /usr/local/bin/ntpdate -b ptbtime1.ptb.de ptbtime2.ptb.de >/dev/null</nowiki>
vim-6.4:
./configure --disable-nls --enable-gui=no --with-x=no edit src/Makefile: EXTRA_LIBS = /usr/lib/libiconv_ult.a src/eval.c: add: #include <missing_strstr.h>