Commit Graph

665 Commits

Author SHA1 Message Date
tg
4867c8dcef pasto 2007-01-12 02:02:21 +00:00
tg
80393db1b6 fix configuration on solaris 8 with whitespaces in both curdir and
srcdir, mostly due to 'eval' issues and a picky /bin/sh (yeaaah…)
2007-01-12 02:01:48 +00:00
tg
5891915f1b * Scan for __attribute__((...)) in general (the earliest was 2.5,
where we had 'noreturn' etc. but no '__noreturn__')
* Scan for __attribute__((bounded)) and __attribute__((used))
  if we have __attribute__((noreturn))
* To be able to scan if certain attributes give warnings,
  scan for -Werror with a simple programme which hopefully triggers none
* Convert __attribute__((unused)) to __unused, noreturn -> __dead
* Unify other attributes
* Clean up typography a little more
2007-01-12 01:49:29 +00:00
tg
70eb6d19c2 solaris /bin/sh:
| v() { ... }
| v=1
undefines v()
2007-01-12 01:44:32 +00:00
tg
636ef70a24 underline actual autoconf results (test names are in bold)
FWIW, works ATM, even with spaces in directory name
2007-01-12 01:32:27 +00:00
tg
c430db0b00 constify 2007-01-12 01:30:35 +00:00
tg
6fb4af0a9d * typo
* include path
2007-01-12 01:27:28 +00:00
tg
5309e33974 implement colouring of "autoconf" output. yay!
NB: only if stdout isatty
2007-01-12 01:17:10 +00:00
tg
cff011696e clean regress-dir before re-using 2007-01-12 01:11:03 +00:00
tg
0e4bbd4bf6 * inittraps: convert signal _names_ to uppercase, we're matching
case-sensitively in the 'trap' builtin, and Mac OSX has them
  in lowercase at sys_signame[]…
* gettraps: optimise
2007-01-12 00:37:09 +00:00
tg
2f15a11c55 Clean up the signal mess, saves 172 Bytes:
* 'sigseen' in Build.sh goes away
* Signal name existence is checked in this order:
  have our own¹ -> sys_signame[] -> _sys_signame[] -> build our own²
* Signal description existence is checked in this order:
  sys_siglist[] -> _sys_siglist[] -> strsignal() -> NULL³
¹ Predefined list of items, for operating systems where we
  cannot build² them, i.e. Plan 9 and Minix 3 (e.g. no $CPP -dD)
² The usual cpp(1) stuff
³ Changed later, see below
* Make $CPP test dependent on $NEED_MKSH_SIGNAME (others can
  be added here, this is not absolute)
* Make signal name list generation² dependent on $NEED_MKSH_SIGNAME
* Fix check if the generation worked
* Guarantee that sigtraps[*].name and sigtraps[*].mess are valid
  C strings; this makes the code shorter *and* removes a few pos-
  sible nil pointer dereferences
* Embed autoconf'd usages of sys_sig* / strsignal / mksh_sigpairs
  into inittraps()
* Check for each signal 0<=i<=NSIG that
  name is not NULL or "" -> replace with ("%d", i)
  mess is not NULL or "" -> replace with ("Signal %d", i)
  name does not start (case-insensitive) with "SIG" -> name += 3
* In gettrap(), fix check if signal name starts, case-sensitive
  or case-insensitive, depending on need, with "SIG" (bug from millert@)

Other changes:
* Build.sh: ac_test[n]() are documented
* Build.sh: ac_test[n]() can have negative prereqs as well now
* Build.sh: use <<-'EOF' consistently
* bump patchlevel to today
2007-01-12 00:25:40 +00:00
tg
3b63b986c3 * pasto (patcho?)
* improve output readability

I wonder if I should use ANSI escapes to make the results
from the configuration bold… but then, this'd look worse
in e.g. mc or less. Suggestions?
2007-01-11 03:03:34 +00:00
tg
3b6b37c671 make use of the new $CPP variable (and enable the cpp check if needed)
@Benny:	this is why I don't use GNU autoconf: writing configure.in
	files is, supposedly, easy - but nobody teaches you which
	changes you have to apply to your source files. Here I know.
2007-01-11 02:41:53 +00:00
tg
4d2624fd1d add test how to run the C preprocessor and fix the $NOWARN check and docs 2007-01-11 02:37:40 +00:00
tg
546e97621a small mkshs also shouldn't pull in the entire locale package,
so don't even call setlocale, lest alone nl_langinfo (already
disabled before)
2007-01-11 02:11:46 +00:00
tg
e269c4ed29 if building a small mksh, don't check for persistent history,
since it's not supported anyway; makes regression tests pass there
2007-01-11 02:08:50 +00:00
tg
f3168d3e9d introduce TARGET_OS, for crossbuilds, contains uname -s output 2007-01-11 00:57:56 +00:00
tg
8bfc693178 this double-backtick in double-backtick (SunOS /bin/sh) stuff
looked waay too weird to me, use a temporary variable instead
and make the two occurencies of the code look more alike
2007-01-11 00:47:40 +00:00
tg
8dc1a064fa use the same matching for NSIG as for the others - cut off
everything which doesn't look like a dec/hex/oct number
2007-01-11 00:44:08 +00:00
tg
c822cbedd8 oops, match hex numbers; seen while looking at ankon's (FreeBSD) problem 2007-01-11 00:38:37 +00:00
tg
e960fabf63 expand ~foo to getpwnam("foo")->dir only #if !defined(MKSH_SMALL)
this makes it possible to build a (small) mksh on glibc systems statically
2007-01-11 00:32:31 +00:00
tg
56e8571167 sync 2007-01-09 17:34:21 +00:00
tg
b725114422 use RLIMIT_AS, after much RTFM 2007-01-06 18:48:27 +00:00
tg
dbf5cdf632 * main.c: prevent segmentation faults on inferiour operating systems
such as Debian GNU/Linux "etch" 4.0 with not installed locale file
  corresponding to the current environmental settings. ばかたち!
2007-01-06 17:08:14 +00:00
tg
8a59ee0311 * mention additions go at the bottom (e.g. 'source' scripts), in case
they fail (due to nonexistence), so that the rest is still executed
* export $MKSH (users can set SHELL=$MKSH here, but I'm conservative)
2007-01-04 23:40:50 +00:00
tg
17a3fffc26 * main.c: when doing the conversion from strcasecmp (wrongly used)
to strcasestr, it was used in a wrong way (reverse logic error in
  checking its return value), turning to mis-detection of UTF-8 locale.
* sh.h, check.t: bump version
* copyright: bump year
2007-01-03 22:43:48 +00:00
tg
127760cfa5 fix typo, sync licence template, reindent 2006-12-11 21:24:12 +00:00
tg
9ecf60f6e5 CPPFLAGS+=-DMKSH_SMALL is not the only functionality-reducing option,
yet the others are not similar (mostly: OS reduces functionality, eg.
SunOS doesn't do persistent history, Minix some job control, Plan 9!)
2006-12-11 20:00:28 +00:00
tg
a080fc385d add a TODO here 2006-12-11 19:58:37 +00:00
tg
1f6ba50590 this is mksh, benzday edition (2006/12/07)
last code change was on 12/06
2006-12-11 16:09:49 +00:00
tg
15a0b1a021 catch up openbsd manpage changes: typos; from alf schlichting,
and revisit the RLIMIT_AS issue
2006-12-06 13:46:28 +00:00
tg
6775d79b2a Revision [7]1.16 / ([8]download) - [9]annotate - [10][select for
diffs] , Mon Nov 20 21:53:39 2006 UTC (2 weeks, 1 day ago) by miod
Compute user-given ulimit value times ulimit unit as an rlim_t value, not a
long value; catches some 32 bit overflows on 32 bit platforms.

Found by drahn@, ok otto@
2006-12-06 13:41:23 +00:00
tg
2122e253e7 fix bitching of: gcc version 3.3.5 (Debian 1:3.3.5-13) 2006-11-21 21:45:24 +00:00
tg
17cbdbd0f7 sync with reality 2006-11-21 20:58:07 +00:00
tg
98e9111bbc remove the "set -o sh" option (dummy anyway),
"set +o emacs-usemeta" and "set -o vi-show8" which are always on now,
since we have proper internationalisation (i.e. utf-8) support, and
assume the user either has a 'C' locale and can't enter 8-bit chars,
his terminal is 8bit-transparent, or he has a 'UTF-8' locale.
2006-11-19 20:43:14 +00:00
tg
8a4b64fde3 fix 'typeset -p' to act according to TFM and ksh93 2006-11-19 17:13:36 +00:00
tg
b21875f20f document hidden behaviour of typeset to clear flags from a certain
set if any other from that set are touched
2006-11-19 17:00:32 +00:00
tg
c2e79abc08 make mksh compatible to the AT&T ksh spec which says, according to
twkm (from #ksh on freenode), that $RANDOM is always an unsigned
15-bit decimal integer.

(RANDOM << 15 | RANDOM) thusly yields 30 bit, which is still more
than 36^5, so we can use it on the baselife CD to speed things up
2006-11-19 16:43:43 +00:00
tg
8adc4a2c56 support systems without setresugid 2006-11-16 13:35:07 +00:00
tg
d3dea44bb5 whitespace fixes 2006-11-16 13:35:00 +00:00
tg
dd63deb8b7 work around a bug in the GNU implementation of the Berkeley mdoc macros
cought by crib in IRC, thanks

(our textproc/groff port is unaffected since it uses the MirOS implementation,
 a BSD derived one with fixes, by default instead but can reproduce the defect
 with -mgdoc instead of -mdoc as parametre)
2006-11-16 13:05:39 +00:00
tg
151d913115 remove all but these __CRAZY=Yes build warnings:
main.c: In function 'main':
 main.c:208: warning: cast discards qualifiers from pointer target type
 main.c:329: warning: cast discards qualifiers from pointer target type

no warnings at autoconf time left either; will take care of these two later
(might revisit changes from this commit), maybe change declararion for the
builtins to have their argv[] be const strings, and go through strict type
and qualifier checking again. this'll further improve stability.

XXX these changes might have introduced (more?) memory leaks,
XXX someone who knows about these tools should verify with
XXX automatic memory usage analysers (valgrind?)

still passes testsuite
2006-11-12 14:58:16 +00:00
tg
fa7407a37c __CRAZY=Yes clean autoconf functions 2006-11-12 13:49:22 +00:00
tg
06b5723f83 oops, wrong protos 2006-11-12 13:38:40 +00:00
tg
f7ef916ed9 * fix CR-LF accident
* fix gcc4 warnings in autoconf tests
* Debian needs <grp.h> for setgroups, which seems fairly POSIX

Testsuite succeeds on Debian testing/unstable (i386)
2006-11-12 13:35:29 +00:00
tg
623bf49f19 order the same way as Build.sh outputs them 2006-11-12 13:21:50 +00:00
tg
abf1944a8e more warnings, cought on interix 2006-11-12 13:20:15 +00:00
tg
df01c5b051 strcasestr, oops 2006-11-12 13:19:06 +00:00
tg
2c1ffced08 unbelievably, cygwin doesn't have strcasestr(3) 2006-11-12 13:15:27 +00:00
tg
5267e51098 header checks before function checks 2006-11-12 13:09:09 +00:00