Mail Archives: djgpp-workers/1999/07/28/03:34:47
Yesterday I tried to build Binutils 2.9.1 on a DOS machine using the
latest Bash and Mark's configuration files, and found a few problems
in the latest Bash. (Some of them might actually be the same problem,
since the tracebacks point to the same place.) I don't see at least
some of these problems on Windows, but that might be because Windows
doesn't catch NULL pointer dereferences, not because of LFN. The
crash with TAB completion doesn't happen with the previous beta
version, dated June 21nd. (The ``latest Bash'' means the binary dated
July 17th.)
Anyway, here's some data:
- First, Bash crashes during file-name completion. To reproduce,
type "ls" and press TAB right after the `s', without any space
between the cursor and "ls". The first traceback below is
generated in this case.
- DOS_TEST_HACK=y seems to cause "test -f" to fail and/or crash in
some cases. This one actually took some time to debug, as
initially all I saw was a strange failure of the config.guess
script to guess the host and target type, but only if DOS_TEST_HACK
was set. The second traceback below seems to indicate that the
first line of config.guess crashes the subshell, which is why
config.guess fails.
- I wanted to make some progress, so I commented out the offending
lines in config.guess. This helped to get past that part, but alas
the configure script then crashed further into the process with a
similar traceback. See traceback no. 3 below (the "phase N"
print-outs were added by me to the configure script to find out
what exactly crashes there). If you need the exact spot of the
crash, then it seems that it's inside the invocation of the
${tmpfile}.hst script. I was afraid of a file-name conflict
(tmpfile is cONf$$, which exceeds the 8+3 limits), but changing
tmpfile to cNf$$ didn't help.
Let me know if you need more info/testing to reproduce these
problems.
Btw, may I suggest to name DOS_TEST_HACK differently? (Perhaps the
name is one reason why it crashes ;-). How about DOS_TEST_FX, for
example (pun intended)?
Traceback no.1 (TAB completion):
sh-2.03$ lsExiting due to signal SIGSEGV
Page fault at eip=0004e572, error=0004
eax=00000000 ebx=00000001 ecx=00184100 edx=00000000 esi=00195384 edi=00195384
ebp=001840f0 esp=001840e4 program=C:\BIN\GCC\BIN\SH.EXE
cs: sel=00a7 base=10000000 limit=0019ffff
ds: sel=00af base=10000000 limit=0019ffff
es: sel=00af base=10000000 limit=0019ffff
fs: sel=00bf base=00000000 limit=0010ffff
gs: sel=00bf base=00000000 limit=0010ffff
ss: sel=00af base=10000000 limit=0019ffff
App stack: [00184aa4..00084aa4] Exceptn stack: [000843fc..000824bc]
Call frame traceback EIPs:
0x0004e572 _rl_display_match_list+974
0x0004e5d2 _rl_display_match_list+1070
0x0004ea3b _rl_complete_internal+459
0x0004d69f _rl_complete+79
0x000482b0 __rl_dispatch+248
0x000480b6 _readline_internal_char+182
0x00048155 _readline_internal_char+341
0x00048171 _readline_internal_char+369
0x00047e18 _readline+60
0x0000601b _input_file_descriptor+151
0x00005f6a _yy_getc+10
0x0000681f _read_secondary_line+431
0x000072b5 _reset_parser+529
0x00006d39 _execute_prompt_command+469
0x00004ffb _yyparse+471
0x00003b6c _parse_command+92
0x00003c1e _read_command+146
0x00003986 _reader_loop+258
0x00001d6a _main+1654
0x0005dd92 ___crt1_startup+174
Traceback no.2 (test -f from config.guess):
sh-2.03$ export DOS_TEST_HACK=y
sh-2.03$ if test -f /.attbin/uname; then
> echo found
> fi
Exiting due to signal SIGSEGV
Page fault at eip=0006c9cf, error=0006
eax=00000000 ebx=0019a4b4 ecx=00000030 edx=00000000 esi=00000016 edi=00000002
ebp=00184034 esp=00184030 program=C:\BIN\GCC\BIN\SH.EXE
cs: sel=00a7 base=10000000 limit=0019ffff
ds: sel=00af base=10000000 limit=0019ffff
es: sel=00af base=10000000 limit=0019ffff
fs: sel=00bf base=00000000 limit=0010ffff
gs: sel=00bf base=00000000 limit=0010ffff
ss: sel=00af base=10000000 limit=0019ffff
App stack: [00184aa4..00084aa4] Exceptn stack: [000843fc..000824bc]
Call frame traceback EIPs:
0x0006c9cf _memset+31
0x000628d9 __ioctl_get_first_cluster+225
0x000632ee _stat+242
0x00023f13 _set_signal_handler+563
0x00024a4c _unary_test+672
0x0002479e _binary_test+786
0x00024dc8 _test_unop+344
0x00024f81 _test_unop+785
0x000250d3 _test_command+199
0x0004564e _test_builtin+78
0x0001039f _execute_command_internal+11507
0x00010840 _execute_command_internal+12692
0x0001011b _execute_command_internal+10863
0x0000de00 _execute_command_internal+1876
0x0000d459 _execute_command+69
0x0000fa13 _execute_command_internal+9063
0x0000df9d _execute_command_internal+2289
0x0000d459 _execute_command+69
0x000039fb _reader_loop+375
0x00001d6a _main+1654
0x0005dd92 ___crt1_startup+174
Traceback no.3 (configuring Binutils):
Editing Makefile.in files...
Running the configure script ...
Configuring for a i386-pc-msdosdjgpp host.
phase 1
phase 2
phase 3
phase 4
Exiting due to signal SIGSEGV
Page fault at eip=0006c9cf, error=0006
eax=00000000 ebx=00198234 ecx=00000030 edx=00000000 esi=00000016 edi=00000002
ebp=00182df0 esp=00182dec program=c:/bin/gcc/bin/sh.exe
cs: sel=0127 base=10240000 limit=001affff
ds: sel=012f base=10240000 limit=001affff
es: sel=012f base=10240000 limit=001affff
fs: sel=010f base=0002a9f0 limit=0000ffff
gs: sel=013f base=00000000 limit=0010ffff
ss: sel=012f base=10240000 limit=001affff
App stack: [00184aa4..00084aa4] Exceptn stack: [000843fc..000824bc]
Call frame traceback EIPs:
0x0006c9cf _memset+31
0x000628d9 __ioctl_get_first_cluster+225
0x000632ee _stat+242
0x00023f13 _set_signal_handler+563
0x00024a4c _unary_test+672
0x0002479e _binary_test+786
0x00024dc8 _test_unop+344
0x00024f81 _test_unop+785
0x000250d3 _test_command+199
0x0004564e _test_builtin+78
0x0001039f _execute_command_internal+11507
0x00010840 _execute_command_internal+12692
0x0001011b _execute_command_internal+10863
0x0000de00 _execute_command_internal+1876
0x0000d459 _execute_command+69
0x0000fa13 _execute_command_internal+9063
0x0000df9d _execute_command_internal+2289
0x0000edce _execute_command_internal+5922
0x0000e01d _execute_command_internal+2417
0x0000d459 _execute_command+69
0x0000ef9d _execute_command_internal+6385
0x0000defd _execute_command_internal+2129
0x0000edce _execute_command_internal+5922
0x0000e01d _execute_command_internal+2417
0x0000d459 _execute_command+69
0x0000ed59 _execute_command_internal+5805
0x0000e01d _execute_command_internal+2417
0x0000d459 _execute_command+69
0x0000ed59 _execute_command_internal+5805
0x0000e01d _execute_command_internal+2417
0x0000d459 _execute_command+69
0x0000fa73 _execute_command_internal+9159
0x0000df9d _execute_command_internal+2289
0x00032d50 _parse_and_execute+868
0x00032897 _unset_builtin+1403
0x00032985 _source_file+41
0x0003fe76 _source_builtin+502
0x0001039f _execute_command_internal+11507
0x00010840 _execute_command_internal+12692
0x0001011b _execute_command_internal+10863
0x0000de00 _execute_command_internal+1876
0x0000d459 _execute_command+69
0x000039fb _reader_loop+375
0x00001d6a _main+1654
0x0005dd92 ___crt1_startup+174
- Raw text -