Changelog 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573
  1. 0.9.19 3 March 2003
  2. See Changelog.full for the complete list of who did what.
  3. Note:
  4. This release remains binary compatible with 0.9.18 (except
  5. for mips, but then mips was unusable in stock 0.9.18 anyways).
  6. Release highlights:
  7. Stefan Allius
  8. o Some Makefile and warning fixes
  9. David Airlie
  10. o Fixed gcc wrapper handling of ctor/dtor stuff when used in
  11. with and w/o the nostdinc and nostdlib options
  12. Erik Andersen
  13. o Fixed a number of system call kernel type/user type translation
  14. problems that scrambed a handful of system calls.
  15. o Fixup powerpc syscalls to eliminate warnings with gcc-3.2
  16. o Fixed several ioctl special cases for powerpc
  17. o Checked in forgotten mips kernel_types.h changes
  18. o Fixed mips shared library loader bug that caused segfaults
  19. o Major update to the pthreads library. Should improve performance.
  20. o Fixed uClibc's shared library loader so we can properly debug
  21. applications using pthreads (must use gdb 5.3 or newer which
  22. was compiled using uClibc).
  23. o Made uClibc's ldd act just the glibc provided one (i.e. relying
  24. on the shared lib loader to do the work) when it is possible to
  25. doi so, and only rummage about the ELF headers when we have no
  26. other choice (such as when using 'ldd' on cross compiled stuff).
  27. Miles Bader
  28. o header file updates for v850 architecture
  29. o Fixed v850 crt0.S __uClibc_main argument stack space
  30. Jeffrey Damick
  31. o Fixed res_init() so it properly reloads /etc/resolv.conf
  32. Vadim Lebedev
  33. o Fixed ARM setjmp when floating point was disabled
  34. David McCullough
  35. o Removed debug (-g) when building crti.o and crtn.o, as
  36. debug would mess up the build for SH4 and probably others.
  37. o Fixed SH setjmp when floating point was enabled
  38. -Erik
  39. 0.9.18 12 February 2003
  40. See Changelog.full for the complete list of who did what.
  41. Note:
  42. Once again, this release is _NOT_ binary compatible with earlier
  43. releases. I _think this will be the last time (with the possible
  44. exception of some future changes to our locale support...)
  45. Release highlights:
  46. Stefan Allius
  47. o fixed a compile problem when large file support was disabled
  48. o fixed dlib_pic.o to compile with proper flags
  49. o fixed a shared lib loader compile warning
  50. o Made adding libgcc functions to uClibc optional
  51. Erik Andersen
  52. o Fixed scandir64 to not free the wrong pieces of memory
  53. which caused segfaults
  54. o Fixed mismatches between kernel and libc dirent structures
  55. o Fixed mismatches between the size of uClibc's struct dirent
  56. and struct dirent64 so that when _FILE_OFFSET_BITS=64 we
  57. do not lose part of the filename
  58. o Fixed getdents64.c so the build will not break when compiling
  59. vs a 2.0.x Linux kernel when UCLIBC_HAS_LFS is enabled
  60. o Create stub crti.o and crtn.o files when UCLIBC_CTOR_DTOR is disabled
  61. o Fixed licenses for a few files that erroneously were listed as GPL
  62. but were really LGPL after discussing with authors
  63. o sigaction for x86 had an extra and unwanted sigaction syscall
  64. o Fixed debugging of arm binaries by adding a .note.ABI-tag section
  65. Miles Bader
  66. o header file updates for v850 architecture
  67. o Fixed v850 clone syscall
  68. Christian Krause
  69. o Fixed pthread_cond_timedwait to properly uses rt singals
  70. when available
  71. Christophe Massiot
  72. o Added mips _flush_cache syscall
  73. David McCullough
  74. o Added m68k brk syscall
  75. Marshall M. Midden
  76. o Fixed pipe implementation for mips
  77. -Erik
  78. 0.9.17 25 January 2003
  79. See Changelog.full for the complete list of who did what.
  80. Note:
  81. I have always reserved the right to make binary incompatible changes as
  82. needed prior to the "1.0" release. This release is a good example of
  83. that. A few bugs turned up that needed to be fixed and the only good way
  84. to fix them was to change some fundamental data structure sizes. So I did
  85. just that. As a result, this release is _NOT_ binary compatible with
  86. earlier releases -- you will need to recompile your applications.
  87. Release highlights:
  88. Stefan Allius
  89. o fixed a number of shared library loader bugs
  90. o setjmp, longjmp, clone, and vfork cleanups for the SH architecture
  91. o Don't build the config system with ncurses unless asked to
  92. Tobias Anderberg
  93. o cris architecture updates
  94. Erik Andersen
  95. o Changed 'struct stat' and 'struct stat64' so they use types that
  96. are consistant with use elsewhere in the library. Without this,
  97. subtle bugs would occur due to comparing signed and unsigned
  98. types (for example, GNU tar wouldn't work)
  99. o Fixed dlopen so it works with staticly linked apps
  100. o Fixed sigaction on arm architecture so sa_restorer works properly
  101. o Fixed sigaction on x86 architecture for (fixed debugging threads)
  102. o Fixed a wide char related segfault in the regular expression code
  103. o Powerpc pread and pwrite are now implemented correctly
  104. o Powerpc syscall mechanism reimplemented
  105. o Sparc architecture and syscall mechanism fixed up so things compile
  106. o usershell reimplemented
  107. o Fixed global destructors for staticly linked applications
  108. o Added dynamic atexit support (needed for full C++ ctor/dtor support)
  109. o The ldd utility now acts more like the GNU utility
  110. o Added a stub libnsl library to make stupid configure scripts bahave
  111. o Always build crt1.o as well as crt0.o to minimize the need to mess
  112. with the compiler
  113. o Rewrote powerpc crt0.S to properly handle ctors/dtors
  114. o Removed unimplemented and legacy stuff from our header files to
  115. make configure behave better
  116. o Made the lib loader also support libs in /usr/X11R6/lib by default
  117. o Config system updates
  118. o networking function updates
  119. o Large file support updates
  120. o Lots of other little bug fixes and cleanups
  121. Nick Fedchik
  122. o Support ether_aton
  123. Nathan Field
  124. o Fixed pthread_mutex_lock and pthread_mutex_unlock so they
  125. actually work as advertised on mips
  126. o Fixed several nasty pthread bugs fixing debugging
  127. Brett Hunt
  128. o Fixed potential segfaults during 'make menuconfig'
  129. Jay Kulpinski
  130. o Fixed a subtle problem in the DNS resolver that prevented
  131. uncompressed DNS lookup responses from working
  132. David McCullough
  133. o Fixed pclose error handling
  134. David Meggy
  135. o fixed the problem where arm binaries would crash on start
  136. that Erik stupidly caused right before the last release.
  137. Manuel Novoa III
  138. o Major locale support update!
  139. o Allow people to use pregenerated locale data instead of generating
  140. approx 40Mb of glibc locales to get the 300+ locales currently
  141. supported.
  142. o locale dependent collation support
  143. o Fixed locale support tools to work when cross-compiling
  144. o Added the *wprintf functions
  145. o Added the wcsto{inttype} functions
  146. o Added iconv() and a mini iconv utility
  147. o Added hsearch and hsearch_r
  148. o Fixed a silly bug allowing wprintf %s to work correctly.
  149. o Fixed fdopen when used with "a" (append).
  150. o Fixed stdio file position handing to be sure fell() always
  151. gives correct results
  152. Luc Van Oostenryck
  153. o Fixed a buffer overflow in getlogin_r
  154. Yoshinori Sato
  155. o Hitachi h8300 architecture update
  156. Ronald Wahl
  157. o Powerpc shared library relocation fixes
  158. -Erik
  159. 0.9.16 8 November 2002
  160. See Changelog.full for the complete list of who did what.
  161. Release highlights:
  162. o CRIS architecture and shared library support from Tobias Anderberg
  163. o New uClibc configuration system
  164. o shared library global constructors and destructors initialization
  165. ordering fixed by Stefan Allius
  166. o More SuperH architecture fixes from Stefan Allius
  167. o uClibc now compiles with newer versions of gcc (i.e. RedHat 8.0)
  168. o uClibc no longer requires perl to compile
  169. o mips dlopen was fixed by Steven J. Hill
  170. o pty and tty handling fixes
  171. o Manuel Novoa added support for a new /etc/TZ file for globally
  172. setting the system timezone.
  173. o Manuel also fixed up a number of remaining wide char issues.
  174. o Lots of other little bug fixes and cleanups
  175. -Erik
  176. 0.9.15 27 August 2002
  177. This is a minor bugfix release.
  178. See Changelog.full for the complete list of who did what.
  179. Release highlights:
  180. o Eliminated the HAS_LONG_LONG option. gcc always supports
  181. long long, and the option never excluded all long long anyways.
  182. o ctype.h no longer allows multiple argument evaluation in
  183. compliance with ANSI/ISO C99
  184. o Obscure printf fixes -- one involving %o and one involving %f.
  185. o Bugfixes for locking and reentrance in password/group functions
  186. o Directly use kernel types for most items, eliminating needless
  187. translation and fixing several bugs.
  188. o Directly use kernel struct stat -- no more translating
  189. o More superH (sh) architecture merging from Stefan Allius
  190. o Errno values and strerror are now correct on alpha, sparc, and mips
  191. o Fixed an obscure bug with fclose when custom streams are enabled.
  192. o Lots of other little bug fixes and cleanups
  193. -Erik
  194. 0.9.14 12 August 2002
  195. This is a minor bugfix release.
  196. See Changelog.full for the complete list of who did what.
  197. Release highlights:
  198. o Fix a compile error when RPC and Pthread support
  199. were both enabled.
  200. o Eliminate duplicate define warnings in wstring.c.
  201. o Fix potentially broken preprocessor comparisons.
  202. o Erik was an idiot and broke thread locking in exit(),
  203. atexit() and friends. Fix that.
  204. o Fix the gcc wrapper to use crtbeginS.o and crtendS.o when
  205. compiling PIC code (crtbegin.o and crtend.o) otherwise.
  206. -Erik
  207. 0.9.13 9 August 2002
  208. Security Fixes
  209. o There was an off-by-one buffer overflow in the group
  210. handling code, fix thanks to Joseph Chiu.
  211. o There was an integer overflow bug in calloc, per
  212. http://online.securityfocus.com/bid/5398
  213. o There was an integer overflow bug in the xdr_array
  214. RPC code, per http://online.securityfocus.com/bid/5356
  215. See Changelog.full for the complete list of who did what.
  216. Release highlights:
  217. o Add full shared library support for Hitachi SuperH (sh)
  218. thanks to Stefan Allius and Edie C. Dost
  219. o Lots of reentrance cleanups (we should now be fully
  220. reentrant when compiled with pthread support).
  221. o Miles Bader implemented a new mmap based malloc which is much
  222. smarter than the old "malloc-simple", and actually works, unlike
  223. the old "malloc". This is now the default for mmu-less systems
  224. and should greatly help reduce memory fragmentation and wastage.
  225. o Reworked syscall handling for i386 and ARM, smaller and cleaner.
  226. o Support for the syscall() function on i386 and ARM
  227. o The uClibc g++ wrapper now automagically adds the proper include
  228. search path and and libraries.
  229. o Lots of shared library loader updates
  230. o dlopen'd shred libraries not properly run destructors
  231. when ctor/dtor support is enabled
  232. o pread/pwrite/pread64/pwrite64 now all work as expected
  233. o Lots and lots of other bug fixes and cleanups.
  234. -Erik
  235. 0.9.12 20 June 2002
  236. See Changelog.full for the complete list of who did what.
  237. Release highlights:
  238. o Add full shared library support for mips (big and little
  239. endian), thanks to a lot of hard work from Steven J. Hill
  240. o i960 architecture support, thanks to Martin Proulx
  241. o An initial alpha port (works, but needs some cleanup)
  242. o Fixes shared library support for powerpc
  243. o Fixes for mmu-less systems
  244. o Much improved thread locking and reentrance.
  245. o More gcc wrapper updates. XFree86 really does link
  246. this time around. It still didn't last time.
  247. o Libcrypt now passes conformance tests
  248. o Nearly complete locale supporti thanks to a lot
  249. of hard work by Manuel Novoa III. This stuff is
  250. _way_ smaller than glibc's
  251. o Completely new time handling functions also by Manuel
  252. o Lots of other bug fixes and cleanups.
  253. -Erik
  254. Erik Andersen:
  255. 0.9.11 10 April 2002
  256. Release highlights:
  257. o Lots of bug fixes
  258. o Much better large file support
  259. o Several gcc wrapper bug fixes, so things like iproute2 and
  260. XFree86 should now link properly.
  261. o Fixes a stdio thread locking bug that could cause random
  262. deadlocks on s*printf calls when threading was enabled.
  263. Erik Andersen:
  264. o Added a generic implementation of truncate64.c and ftruncate64.c
  265. o Added missing creat64, glob64, mkstemp64, getrlimit64, setrlimit64
  266. o Removed internal erroneous use of __USE_FILE_OFFSET64
  267. o Made libpthread compile on sparc and powerpc
  268. o Made libpthread soname and symlinks match the other libraries.
  269. o Added finite() to the C89 math lib, since some math functions use it.
  270. o Added missing function pointer to error.c (some apps wanted it)
  271. o Fixed initfini build for arches where gcc tries to be sneaky
  272. o Fixed m68k/bits/setjmp.h which I has broken in the last release.
  273. o Fixed a buffer overflow in the dynamic library loader
  274. o Fixed a stdio thread locking bug that could cause random
  275. deadlocks on s*printf calls when threading was enabled.
  276. o Implemented sqrtf(), needed for libstdc++ on arm
  277. Miles Bader:
  278. o Make clean fixes to not blindly wipe all symlinks
  279. o Re-enabled clnt_perror()
  280. o Re-implemented swab()
  281. Dwayne Fontenot:
  282. o Many updates to the uClibc Working Application List
  283. Steven J. Hill:
  284. o Many updates to the mips dynamic loader. Not yet working but
  285. getting very close now.
  286. o Fixed locking bug in getttyent()
  287. o Support libpthread on mips
  288. Richard June:
  289. o Fixed several bugs in utmp code (pututline was only writing the
  290. first sizeof-a-pointer bytes to the utmpfile).
  291. o setutent() was only opening utmp readonly.
  292. m4@brecis.COM:
  293. o Fixed a silly typing problem with the getuid syscall.
  294. Manuel Novoa III:
  295. o Fixed stdio FILE read/write auto-transition bugs.
  296. o Better stdio errno handling
  297. o Changed setvbuf() to more closely match glibc's behavior
  298. o Fixed getpass() to not echo passwords to the console
  299. o Fixed locale ISblank flag.
  300. o Fixed an arg promotion handling bug in _do_one_spec for %c reported
  301. by Ilguiz Latypov.
  302. Kensuke Otake:
  303. o Implemented swab()
  304. Yoshinori Sato:
  305. o Fixed h8300 architecture support for pthreads and changes to
  306. the include files
  307. David Schleef:
  308. o Made powerpc assembly code PIC-compatible
  309. o Removed powerpc R_PPC_REL24 handling, since it was deceptively useless.
  310. John Traill:
  311. o Several types on powerpc, such as dev_t, are different than on other
  312. architectures. John spotted this, which fixed a _ton_ of problems since
  313. anything calling stat() was previously broken.
  314. Jim Treadway:
  315. o Eliminated use of alarm() from the DNS resolver by converting
  316. it to use select instead (much cleaner).
  317. 0.9.10 21 March 2002
  318. Major new features:
  319. o pthreads support (derived from glibc 2.1.3's linuxthreads library)
  320. by Stefan Soucek and Erik Andersen
  321. o pthreads support for MMU-less systems, by Stefan Soucek
  322. o Complete rewrite of all stdio functions for standards compliance,
  323. small size, pthreads support, wide/narrow stream support, large
  324. file support, unbuffered support, etc, etc by Manuel Novoa III
  325. o gcc wrapper reworked by Erik Andersen. Now operated correctly in
  326. all known cases, and now wraps g++ as well for C++ support.
  327. o constructor/destructor support, for C++ by Erik Andersen.
  328. o Eliminated duplicate include/bits header files, by Erik Andersen.
  329. Now all common include/bits headers are grouped together.
  330. Erik Andersen:
  331. o Lots of changes and improvements to the shared library loader
  332. o Cleaned up a piles of bugs
  333. o Fixed a segfault when scandir was called on empty directories.
  334. o Several syscalls added: pread/pwrite
  335. o Makefile/build system cleanups
  336. o Sighandling fixes
  337. o pthreads support (with Stefan Soucek)
  338. o Added ldexp to the C89 math library, per POSIX
  339. o fclose() EINTR handling is now correct per IEEE Std 1003.1-2001
  340. o Support isblank()
  341. o Reworked libcrypt to avoid leaking private symbols into the namespace
  342. o Added strtof(), strtold(), updwtmp(), strptime()
  343. o Fix ldso build for older arm cross compilers
  344. Miles Bader:
  345. o atexit cleanups
  346. o fixed gcc wrapper handling of -M* options
  347. o Fixed truncate64/ftruncate64 to restrict them to 64-bit systems,
  348. since we can't be sure that the _syscall macros can cope with 64
  349. bit args on 32 bit arches.
  350. o Large File support on the v850
  351. o Fixed v850 headers after Erik messed them up
  352. o Eliminate include/features.h namespace pollution
  353. M. R. Brown:
  354. o Fixed pthread support for SH, and fixed SH vfork as well
  355. o Fixed SH headers after Erik messed them up
  356. Geoffrey Espin:
  357. o Mips architecture cleanups. Now works perfectly
  358. with busybox, vi, ash, etc...
  359. o Merged in the random number support (rand, srand, etc) from glibc.
  360. Thomas Fritzsche:
  361. o Fixes DNS resolver bug from 0.9.9
  362. Steven J. Hill:
  363. o Fixed build to support both mips and mipsel
  364. o Beginnings of a mips ldso port
  365. Andrew Ip:
  366. o Support for gnu error() functions
  367. David McCullough:
  368. o Coldfire platform updates: clone, setjmp
  369. o Fixed simple malloc to work on systems with an MMU
  370. Manuel Novoa III:
  371. o Rewrote all stdio functions for standards compliance, small size,
  372. pthreads support, wide/narrow stream support, large file support,
  373. unbuffered support, etc, etc, etc.
  374. o Rewrote the various string to int functions to be smaller, more
  375. standards compilant, and reduce dependance on libgcc.a.
  376. Yoshinori Sato:
  377. o ptrace for the Hitachi h8300 fix
  378. David Schleef:
  379. o Debian packaging updates
  380. o Check for proper 16-byte aliged stack pointer on powerpc
  381. Stefan Soucek:
  382. o pthreads support for MMU-less systems
  383. o pthreads support (with Erik Andersen)
  384. Brian Stafford:
  385. o Rewrote strcasecmp() per SUSv2.
  386. Bart Visscher:
  387. o Added missing IPV6 support and reentrant networking function
  388. additions so iptables now runs with IPV6 support.
  389. 0.9.9 February 4, 2002
  390. Erik Andersen:
  391. o A bunch of doc updates. Major update to the working
  392. apps list.
  393. o Added a configurator script (extra/Configs/uClibc_config_fix.pl)
  394. which can simplify configuring uClibc.
  395. o Fixed setjmp/longjmp on x86,arm,powerpc,mips,and sparc.
  396. Hitting ^C in ash kills client apps now, not ash.
  397. o Reworked signal handling code so it now passes POSIX
  398. conformance tests.
  399. o Fixed sleep and usleep to work correctly when
  400. interrupted by signals.
  401. o Made getopt behave the same when staticly linking
  402. as when dynamicly linking. It was using different
  403. implementations depending on how apps were linked.
  404. o Added missing inttypes.h header file
  405. o Eliminate all C++ style comments from header files
  406. o Support statvfs and statfs
  407. o Support getmntent_r
  408. o Scandir and scandir64 were calling malloc without
  409. checking for ENOMEM
  410. o Fixed stpcpy function declaration
  411. o Many large file support improvements.
  412. o Fixed fcntl to work when DOLFS is enabled
  413. o Fixed termios code to do the Right Thing(tm)
  414. o Allow regex to be excluded at compile time
  415. o Implemented mempcpy
  416. o Build ldd and readelf for the target system and for the
  417. host system
  418. o Fix several cases where get-needed-libgcc-objects.sh
  419. could fail, breaking the shared uClibc library.
  420. o Include all shared library loader objects into a
  421. single C file, thereby reducing its size further.
  422. o Reworked the shared library linking process to be more
  423. flexible so that gcc and ld can more easily be built to
  424. target uClibc library.
  425. o Better error checking in the Makefiles. Be more pedantic
  426. about tar, chmod, etc to avoid system dependent failures.
  427. o We can now autodetect the target architecture
  428. o Hide references to wchar_t so GNU autoconf
  429. configure scripts won't get confused and try to
  430. enable wide char support.
  431. o Fixed stdio.h so apps can use varargs.h if they want to.
  432. o Added brk/sbrk support for ARM, powerpc, mips, and sparc
  433. and set them to default to the much faster brk using malloc
  434. o Added missing syscalls: get_kernel_syms, fcntl64,
  435. fdatasync, sched_setparam, sched_getparam,
  436. sched_setscheduler, sched_getscheduler,
  437. sched_get_priority_max, sched_get_priority_min,
  438. sched_rr_get_interval, sigaltstack, sendfile,
  439. pivot_root, sigsuspend, setfsuid, and setfsgid
  440. o Force DOPIC be true when HAVE_SHARED is true.
  441. o Fixed hstrerror()
  442. o Implemented gethostent(), sethostent(), and endhostent()
  443. o Added arch specific support so that sparc and mips actually
  444. compile and work
  445. Miles Bader:
  446. o Fixes for the v850 architecture: crt0, setjmp,
  447. arch autodetection, etc.
  448. o Fixed `make install' to not build ldso stuff on
  449. non-shared-library systems.
  450. Michael E Brown:
  451. o Allow the gcc wrapper to support setting DEVEL_PREFIX
  452. and BUILD_DIR at runtime (no more need to recompile).
  453. M. R. Brown and Erik Andersen:
  454. o Fixed the SH port so it now works. Tested and shown
  455. working on an SH4 Dreamcast system.
  456. Kim Heino:
  457. o Made 'make clean' remove generated bits/syscall.h
  458. David McCullough:
  459. o SH architecture updates. Added brk, sbrk,
  460. o Fixed simple malloc to work on systems with an MMU
  461. o Taught getutent to return NULL if utmp doesn't exist.
  462. o Added insque/remque support
  463. o Fixed DNS resolver version number so apps won't get
  464. confused and use the wrong API.
  465. o Added Config selectable shadow password support
  466. Yoshinori Sato
  467. o Contributed support for the Hitach H8/300H architecture
  468. Cédric Schieli:
  469. o Add support for inet_netof, inet_lnaof, inet_makeaddr
  470. and hstrerror.
  471. David Schleef:
  472. o Added libstrip, a nifty script to automagically
  473. strip unneeded content from the uClibc shared
  474. libraries.
  475. Martin Sieper
  476. o Added getw() and putw()
  477. o Added missing header files -- lastlog.h, sgtty.h,
  478. netipx/ipx.h, sys/perm.h
  479. Stefan Soucek:
  480. o Add rcmd support, i.e. rsh, rlogin, etc.
  481. o Fix rcmd to avoid alloca, which is dangerous
  482. on mmu-less systems
  483. spudmonkey@racsa.co.cr:
  484. o Eliminate a buffer overflow in the shared library loader
  485. Brian Stafford:
  486. o Enable support for Unix98 PTYs, and add option
  487. to disable old style PTYs.