ULTRIX 3 VAX: Unterschied zwischen den Versionen
Luna (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „restoring Ultrix 3.1 on a MicroVAX 3100 copy image to harddisk using dd boot in single user mode: boot/r5:2 dkb100 fsck edit /etc/fstab edit /etc/passwd edit…“) |
Luna (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== ULTRIX 3 on VAX == | |||
copy image to harddisk using dd | Here, I will describe two Ultrix setups: Ultrix 3.0 on an emulated Simh VAX and Ultrix 3.1 on a real MicroVAX 3100. The emulated VAX is a lot faster than the real VAX. | ||
boot in single user mode: | |||
--------------- | |||
'''restoring Ultrix 3.1 on a MicroVAX 3100''' | |||
copy image to harddisk using dd <br> | |||
boot in single user mode: <br> | |||
boot/r5:2 dkb100 | boot/r5:2 dkb100 | ||
<p> | |||
fsck | fsck | ||
edit /etc/fstab | edit /etc/fstab <br> | ||
edit /etc/passwd | edit /etc/passwd <br> | ||
edit /etc/group | edit /etc/group <br> | ||
edit /etc/ttys | edit /etc/ttys <br> | ||
edit /etc/hosts | edit /etc/hosts <br> | ||
edit /etc/resolv.conf | edit /etc/resolv.conf <br> | ||
edit /etc/rc.local | edit /etc/rc.local <br> | ||
build new kernel to recognize additional disks. | build new kernel to recognize additional disks. <br> | ||
doconfig, then choose to edit config file with vi. | doconfig, then choose to edit config file with vi. <br> | ||
add: | add: | ||
disk rz2 at scsi0 drive 2 | |||
<p> | |||
After building a new kernel, doconfig changes /etc/rc.local and uses the ident name of the kernel configuration as the new hostname. This might break things. Check and reset to a proper hostname. | After building a new kernel, doconfig changes /etc/rc.local and uses the ident name of the kernel configuration as the new hostname. This might break things. Check and reset to a proper hostname. | ||
<p> | |||
/dev/rz9a:/:rw:49:1:ufs:: | |||
/dev/rz9g:/usr:rw:49:2:ufs:: | --------------- | ||
/dev/rz9h:/usr/local:rw:98:3:ufs:: | |||
/dev/rz2a:/home:rw:98:4:ufs:: | '''/etc/fstab:''' | ||
/dev/rz9a:/:rw:49:1:ufs:: | |||
/dev/rz9g:/usr:rw:49:2:ufs:: | |||
/dev/rz9h:/usr/local:rw:98:3:ufs:: | |||
/dev/rz2a:/home:rw:98:4:ufs:: | |||
--------------- | |||
'''df:''' | |||
Filesystem Total kbytes kbytes % | Filesystem Total kbytes kbytes % | ||
node kbytes used free used Mounted on | node kbytes used free used Mounted on | ||
/dev/rz9a 19183 7323 9942 42% / | /dev/rz9a 19183 7323 9942 42% / | ||
/dev/rz9g 239663 129235 86462 60% /usr | /dev/rz9g 239663 129235 86462 60% /usr | ||
/dev/rz9h 233247 46743 163180 22% /usr/local | /dev/rz9h 233247 46743 163180 22% /usr/local | ||
/dev/rz2a 191958 72583 100180 42% /home | /dev/rz2a 191958 72583 100180 42% /home | ||
<p> | |||
---------------------- | |||
The largest small 3.5" SCSI disk that is know by ULTRIX 3.1 is the RZ23. But we can just add the RZ24: | The largest small 3.5" SCSI disk that is know by ULTRIX 3.1 is the RZ23. But we can just add the RZ24: | ||
rz24|RZ24|DEC RZ24 Winchester:\ | |||
rz24|RZ24|DEC RZ24 Winchester:\ | |||
:ty=winchester:ns#38:nt#8:nc#1348:\ | :ty=winchester:ns#38:nt#8:nc#1348:\ | ||
:pa#32768:ba#8192:fa#1024:\ | :pa#32768:ba#8192:fa#1024:\ | ||
Zeile 47: | Zeile 65: | ||
:pg#245952:bg#8192:fg#1024: | :pg#245952:bg#8192:fg#1024: | ||
<p> | |||
This would likely work for other disks, but ULTRIX 3 very likely cannot use disks larger than 1GB. /etc/chpt works as known from ULTRIX 4. | This would likely work for other disks, but ULTRIX 3 very likely cannot use disks larger than 1GB. /etc/chpt works as known from ULTRIX 4. | ||
--------------- | |||
'''/etc/ttys:''' | |||
# "@(#)ttys 4.1 (ULTRIX) 11/23/87" | # "@(#)ttys 4.1 (ULTRIX) 11/23/87" | ||
# | # | ||
# | # | ||
# | # | ||
# name getty type status comments | # name getty type status comments | ||
# | # | ||
#console "/etc/getty e" dw3 on secure # console terminal | #console "/etc/getty e" dw3 on secure # console terminal | ||
console "/etc/getty std.9600" vt100 on secure # console terminal | console "/etc/getty std.9600" vt100 on secure # console terminal | ||
tty00 "/etc/getty std.9600" vt100 on nomodem secure # direct connect tty | tty00 "/etc/getty std.9600" vt100 on nomodem secure # direct connect tty | ||
tty01 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | tty01 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | ||
tty02 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | tty02 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | ||
tty03 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | tty03 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | ||
tty04 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | tty04 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | ||
tty05 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | tty05 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | ||
tty06 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | tty06 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | ||
tty07 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | tty07 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty | ||
ttyp0 none network secure | ttyp0 none network secure | ||
ttyp1 none network secure | ttyp1 none network secure | ||
ttyp2 none network secure | ttyp2 none network secure | ||
ttyp3 none network secure | ttyp3 none network secure | ||
ttyp4 none network secure | ttyp4 none network secure | ||
ttyp5 none network secure | ttyp5 none network secure | ||
ttyp6 none network secure | ttyp6 none network secure | ||
ttyp7 none network secure | ttyp7 none network secure | ||
ttyp8 none network secure | ttyp8 none network secure | ||
ttyp9 none network secure | ttyp9 none network secure | ||
ttypa none network secure | ttypa none network secure | ||
ttypb none network secure | ttypb none network secure | ||
ttypc none network secure | ttypc none network secure | ||
ttypd none network secure | ttypd none network secure | ||
ttype none network secure | ttype none network secure | ||
ttypf none network secure | ttypf none network secure | ||
ttyq0 none network secure | ttyq0 none network secure | ||
ttyq1 none network secure | ttyq1 none network secure | ||
ttyq2 none network secure | ttyq2 none network secure | ||
ttyq3 none network secure | ttyq3 none network secure | ||
ttyq4 none network secure | ttyq4 none network secure | ||
ttyq5 none network secure | ttyq5 none network secure | ||
ttyq6 none network secure | ttyq6 none network secure | ||
ttyq7 none network secure | ttyq7 none network secure | ||
ttyq8 none network secure | ttyq8 none network secure | ||
ttyq9 none network secure | ttyq9 none network secure | ||
ttyqa none network secure | ttyqa none network secure | ||
ttyqb none network secure | ttyqb none network secure | ||
ttyqc none network secure | ttyqc none network secure | ||
ttyqd none network secure | ttyqd none network secure | ||
ttyqe none network secure | ttyqe none network secure | ||
ttyqf none network secure | ttyqf none network secure | ||
----------------- | ----------------- | ||
Zeile 118: | Zeile 135: | ||
build GNU stuff: | build GNU stuff: | ||
gcc-1.42: | '''gcc-1.42:''' | ||
sh configure vax | sh configure vax | ||
make | make | ||
make stage1 | make stage1 | ||
make CC=stage1/gcc CFLAGS="-g -O -Bstage1/" | make CC=stage1/gcc CFLAGS="-g -O -Bstage1/" | ||
do a make install. Trust this stage. | do a make install. Trust this stage. | ||
------- | ------- | ||
make stage2 | make stage2 | ||
make CC=stage2/gcc CFLAGS="-g -O -Bstage2/" | make CC=stage2/gcc CFLAGS="-g -O -Bstage2/" | ||
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 stage2 | make compare | ||
make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" | make install | ||
make compare | |||
make install | |||
--------- | --------- | ||
flex-2.5.4a | '''flex-2.5.4a''' | ||
scan.c want to include stdlib.h, which does not exists. | scan.c want to include stdlib.h, which does not exists. | ||
Zeile 146: | Zeile 161: | ||
Ultrix 3.0: | Ultrix 3.0: | ||
flexdef.h: | flexdef.h: | ||
add: typedef int size_t; | add: typedef int size_t; | ||
gawk-1.01 | '''gawk-1.01''' | ||
sed-1.18 | '''sed-1.18''' | ||
bison-1.25 | '''bison-1.25''' | ||
Ultrix 3.1: | Ultrix 3.1: | ||
Zeile 162: | Zeile 177: | ||
make-3.75 | '''make-3.75''' | ||
m4-1.4 | '''m4-1.4''' | ||
bash-1.14.7 | '''bash-1.14.7''' | ||
gcc-2.3.3 | '''gcc-2.3.3''' | ||
ultrix 3 doesn't know about atexit(). | ultrix 3 doesn't know about atexit(). | ||
#undef HAVE_ATEXIT before building gcc. | #undef HAVE_ATEXIT before building gcc. | ||
configure as vax-dec-ultrix3.1 | configure as vax-dec-ultrix3.1 | ||
then do a make bootstrap | then do a make bootstrap | ||
gcc will use the host cc to build the first stage. This works. | gcc will use the host cc to build the first stage. This works. | ||
You can also edit the Makefile and use gcc to build the first stage: CC = gcc | You can also edit the Makefile and use gcc to build the first stage: CC = gcc | ||
sed-3.02 | '''sed-3.02''' | ||
sed/utils.h: | sed/utils.h: | ||
#include <sys/types.h> | #include <sys/types.h> | ||
gzip-1.2.4a | '''gzip-1.2.4a''' | ||
gawk-3.0.6 --disable-nls | '''gawk-3.0.6''' | ||
protos.h: | --disable-nls | ||
uncomment: /* extern SPRINTF_RET sprintf P((char *, const char *, ...)); */ | protos.h: | ||
needs link with -lm | uncomment: /* extern SPRINTF_RET sprintf P((char *, const char *, ...)); */ | ||
needs link with -lm | |||
copy install-sh from gawk to /usr/local/bin/install | |||
copy | '''gcc headers:''' | ||
there is something in sys/types.h that gcc-2.3.3 cannot compile. | |||
Fix the "volatile" on line 80 ff and copy the custom header to the gcc include directory. | |||
'''grep-2.3''' | |||
'''binutils-2.7''' | |||
binutils/arlex.c: remove includes of stdlib.h | |||
ld/ldlex.c: remove includes of stdlib.h | |||
On Ultrix 3.0: | |||
if there are any "size_t undeclared" error, include <sys/types.h> | |||
make install will fail. Copy as to /usr/local/bin/gas and ld to /usr/local/bin/gnuld. | |||
'''gcc-2.7.2.3:''' | |||
incorrectly includes stdlib.h in ../gcc-2.7.2.3/cpplib.c | |||
on line 73. | |||
--with-as=/usr/local/bin/gas --with-gnu-as --with-ld=/usr/local/bin/gnuld --with-gnu-ld | |||
--enable-languages=c,c++,f77 | |||
change Makefile: edit CC = cc to CC = gcc. | |||
stage1 gcc cannot be build with VAX cc anymore. | |||
change Makefile: edit CC = cc to CC = gcc. | |||
stage1 gcc cannot be build with VAX cc anymore. | |||
Ultrix 3.0: | |||
/home/compile/gcc-2.7.2.3/xgcc -B/home/compile/gcc-2.7.2.3/ -O -fgnu-runtime \ | |||
-c -DIN_GCC -O -g -I./include -I. -I.. -I/home/compile/gcc-2.7.2.3 -I/home/compile/gcc-2.7.2.3/config/ | |||
NXConstStr.m | |||
Assembler: | |||
"/usr/tmp/cca25075.s", line 182: Invalid type in .stabs | |||
make[2]: *** [NXConstStr.o] Error 1 | |||
make[2]: Leaving directory `/home/compile/gcc-2.7.2.3/objc' | |||
make[1]: *** [libobjc.a] Error 2 | |||
make[1]: Leaving directory `/home/compile/gcc-2.7.2.3' | |||
make: *** [bootstrap] Error 2 | |||
gcc-2. | retry withouth gnu as: also fails... | ||
Foor some reason, ULtrix 3 and 3.1 won't build gcc-2.7.2.3. | |||
gcc-2. | '''gcc-2.5.8:''' | ||
--with-as=/usr/local/bin/gas --with-gnu-as --with-ld=/usr/local/bin/gnuld --with-gnu-ld | --with-as=/usr/local/bin/gas --with-gnu-as --with-ld=/usr/local/bin/gnuld --with-gnu-ld | ||
--enable-languages=c | --enable-languages=c | ||
change Makefile: edit CC = cc to CC = gcc | change Makefile: edit CC = cc to CC = gcc | ||
gcc-2.6.3: | |||
edit | --with-as=/usr/local/bin/gas --with-gnu-as --with-ld=/usr/local/bin/gnuld --with-gnu-ld | ||
--enable-languages=c | |||
change Makefile: edit CC = cc to CC = gcc | |||
fails to build objc in stage1. | |||
edit Makefile and remove objc from LANG | |||
'''make-3.79.1:''' | |||
# | glob/fnmatch.c: | ||
#define | #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 | |||
'''libiconv-1.9.2:''' | |||
needs some #include <sys/types.h> in files that use size_t. | |||
'''patch-2.5.9''' | |||
# | dirname.h: | ||
#include <sys/types.h> | |||
config.h | |||
#define HAVE_STRUCT_UTIMBUF 1 | |||
jpeg-6b | '''jpeg-6b''' | ||
tar-1.11.8 | '''tar-1.11.8''' | ||
'''tin-2.4.4:''' | |||
./configure --enable-nntp-only --with-domain=pcde.inka.de --with-nntp-default-server=news.akk.org --disable-nls --with-editor=/usr/local/bin/vim --enable-broken-system-fix mips-dec-ultrix3.1 | |||
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 *); | |||
[[Kategorie: UNIX]] | |||
[[Kategorie: ULTRIX]] | |||
Aktuelle Version vom 13. Mai 2019, 13:40 Uhr
ULTRIX 3 on VAX
Here, I will describe two Ultrix setups: Ultrix 3.0 on an emulated Simh VAX and Ultrix 3.1 on a real MicroVAX 3100. The emulated VAX is a lot faster than the real VAX.
restoring Ultrix 3.1 on a MicroVAX 3100
copy image to harddisk using dd
boot in single user mode:
boot/r5:2 dkb100
fsck
edit /etc/fstab
edit /etc/passwd
edit /etc/group
edit /etc/ttys
edit /etc/hosts
edit /etc/resolv.conf
edit /etc/rc.local
build new kernel to recognize additional disks.
doconfig, then choose to edit config file with vi.
add:
disk rz2 at scsi0 drive 2
After building a new kernel, doconfig changes /etc/rc.local and uses the ident name of the kernel configuration as the new hostname. This might break things. Check and reset to a proper hostname.
/etc/fstab:
/dev/rz9a:/:rw:49:1:ufs:: /dev/rz9g:/usr:rw:49:2:ufs:: /dev/rz9h:/usr/local:rw:98:3:ufs:: /dev/rz2a:/home:rw:98:4:ufs::
df:
Filesystem Total kbytes kbytes % node kbytes used free used Mounted on /dev/rz9a 19183 7323 9942 42% / /dev/rz9g 239663 129235 86462 60% /usr /dev/rz9h 233247 46743 163180 22% /usr/local /dev/rz2a 191958 72583 100180 42% /home
The largest small 3.5" SCSI disk that is know by ULTRIX 3.1 is the RZ23. But we can just add the RZ24:
rz24|RZ24|DEC RZ24 Winchester:\ :ty=winchester:ns#38:nt#8:nc#1348:\ :pa#32768:ba#8192:fa#1024:\ :pb#131072:bb#4096:fb#1024:\ :pc#409792:bc#8192:fc#1024:\ :pd#81984:bd#8192:fd#1024:\ :pe#81984:be#8192:fe#1024:\ :pf#81984:bf#8192:ff#1024:\ :pg#245952:bg#8192:fg#1024:
This would likely work for other disks, but ULTRIX 3 very likely cannot use disks larger than 1GB. /etc/chpt works as known from ULTRIX 4.
/etc/ttys:
# "@(#)ttys 4.1 (ULTRIX) 11/23/87" # # # # name getty type status comments # #console "/etc/getty e" dw3 on secure # console terminal console "/etc/getty std.9600" vt100 on secure # console terminal tty00 "/etc/getty std.9600" vt100 on nomodem secure # direct connect tty tty01 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty tty02 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty tty03 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty tty04 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty tty05 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty tty06 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty tty07 "/etc/getty std.9600" vt100 off nomodem secure # direct connect tty 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
Y2K:
set the date to 9912312359.59
then continue to set the date to 12312359.59 in steps until you reach the current year.
setld -l /dev/rmt0h
build GNU stuff:
gcc-1.42:
sh configure vax make make stage1 make CC=stage1/gcc CFLAGS="-g -O -Bstage1/"
do a make install. Trust this stage.
make stage2 make CC=stage2/gcc CFLAGS="-g -O -Bstage2/"
make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O" make stage2 make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" make compare make install
flex-2.5.4a scan.c want to include stdlib.h, which does not exists.
make check fails, because we have edited scan.c Trust and install anyway...
Ultrix 3.0:
flexdef.h: add: typedef int size_t;
gawk-1.01
sed-1.18 bison-1.25
Ultrix 3.1: edit /usr/local/lib/gcc-include/stddef.h and remove definition of size_t Ultrix defines size_t in <sys/types.h> as "typedef int size_t;"
Ultrix 3.0 works fine.
make-3.75
m4-1.4
bash-1.14.7
gcc-2.3.3
ultrix 3 doesn't know about atexit(). #undef HAVE_ATEXIT before building gcc.
configure as vax-dec-ultrix3.1 then do a make bootstrap gcc will use the host cc to build the first stage. This works. You can also edit the Makefile and use gcc to build the first stage: CC = gcc
sed-3.02
sed/utils.h: #include <sys/types.h>
gzip-1.2.4a
gawk-3.0.6
--disable-nls protos.h: uncomment: /* extern SPRINTF_RET sprintf P((char *, const char *, ...)); */ needs link with -lm copy install-sh from gawk to /usr/local/bin/install
gcc headers:
there is something in sys/types.h that gcc-2.3.3 cannot compile. Fix the "volatile" on line 80 ff and copy the custom header to the gcc include directory.
grep-2.3
binutils-2.7
binutils/arlex.c: remove includes of stdlib.h ld/ldlex.c: remove includes of stdlib.h
On Ultrix 3.0: if there are any "size_t undeclared" error, include <sys/types.h>
make install will fail. Copy as to /usr/local/bin/gas and ld to /usr/local/bin/gnuld.
gcc-2.7.2.3:
incorrectly includes stdlib.h in ../gcc-2.7.2.3/cpplib.c on line 73.
--with-as=/usr/local/bin/gas --with-gnu-as --with-ld=/usr/local/bin/gnuld --with-gnu-ld --enable-languages=c,c++,f77
change Makefile: edit CC = cc to CC = gcc. stage1 gcc cannot be build with VAX cc anymore.
Ultrix 3.0: /home/compile/gcc-2.7.2.3/xgcc -B/home/compile/gcc-2.7.2.3/ -O -fgnu-runtime \
-c -DIN_GCC -O -g -I./include -I. -I.. -I/home/compile/gcc-2.7.2.3 -I/home/compile/gcc-2.7.2.3/config/
NXConstStr.m Assembler: "/usr/tmp/cca25075.s", line 182: Invalid type in .stabs make[2]: *** [NXConstStr.o] Error 1 make[2]: Leaving directory `/home/compile/gcc-2.7.2.3/objc' make[1]: *** [libobjc.a] Error 2 make[1]: Leaving directory `/home/compile/gcc-2.7.2.3' make: *** [bootstrap] Error 2
retry withouth gnu as: also fails... Foor some reason, ULtrix 3 and 3.1 won't build gcc-2.7.2.3.
gcc-2.5.8:
--with-as=/usr/local/bin/gas --with-gnu-as --with-ld=/usr/local/bin/gnuld --with-gnu-ld --enable-languages=c change Makefile: edit CC = cc to CC = gcc
gcc-2.6.3: --with-as=/usr/local/bin/gas --with-gnu-as --with-ld=/usr/local/bin/gnuld --with-gnu-ld --enable-languages=c change Makefile: edit CC = cc to CC = gcc
fails to build objc in stage1. edit Makefile and remove objc from LANG
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
libiconv-1.9.2:
needs some #include <sys/types.h> in files that use size_t.
patch-2.5.9
dirname.h: #include <sys/types.h>
config.h #define HAVE_STRUCT_UTIMBUF 1
jpeg-6b
tar-1.11.8
tin-2.4.4:
./configure --enable-nntp-only --with-domain=pcde.inka.de --with-nntp-default-server=news.akk.org --disable-nls --with-editor=/usr/local/bin/vim --enable-broken-system-fix mips-dec-ultrix3.1
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 *);