Date: Wed, 28 Jul 1999 10:31:26 +0300 (IDT) From: Eli Zaretskii X-Sender: eliz AT is To: "Mark E." cc: djgpp-workers AT delorie DOT com Subject: Problems with latest Bash Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp-workers AT delorie DOT com 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