Sender: root AT delorie DOT com Message-ID: <38AD8997.295D9B17@inti.gov.ar> Date: Fri, 18 Feb 2000 15:04:07 -0300 From: salvador Organization: INTI X-Mailer: Mozilla 4.6 [en] (X11; I; Linux 2.0.38 i686) X-Accept-Language: es-AR, en, es MIME-Version: 1.0 To: djgpp-workers AT delorie DOT com, Pierre Muller Subject: Re: Bug in crt0.S References: <200002171707 DOT SAA16280 AT cerbere DOT u-strasbg DOT fr> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com Pierre Muller wrote: > Hello, > > I wrote the Run Time Library of the Free Pascal port to DJGPP system. > As such, I changed crt0.S to allow starting a program without any use of the > C library. > > Due to internal problems, I disabled the multiblock feature in the > startup code. > Thus our RTL uses Unixy sbrk with selector base changes. How it affects? is this problem found only when using Unixy sbrk? > Recently, we got more and more problems with our IDE > (a freeware equivalent of the Borland editor BP) under Windows. > These crashes allways appeared in the VMOUSE VXD and completely crashed the > computer! I have a TV application + Win95 system that have this problem (ramdonly). But is on exit. > These errors were even more frequent on Win98 and Win 2000 !! > After quite long and hard debugging, I finally realized that > there is a major bug in the startup code: > > when the function 0x503 of DPMI is called, > only the cs and ds selector are updated in the 16 byte sbrk16.asm code. > The djgpp_ds_alias selector (that is used for the RMCB > to avoid problems with fake exceptions like Crtl-C) is updated > later in the 32 bit code... but its updated after the > interrupts are reenabled !!! Ugh! > If the mouse callback is called in the interval between the 0x503 > function call and the update > of the alias selector base address => you get the crash!! > > I include here a diff to version 2.03 of crt0.S file that also fixes the > problem for the C library! > Could someone please test this with RHIDE > because the recent problem about linking could be due to that fact > if (and I don't know if this is true) the linker is called internally ! You mean it could be because the RHIDE's RMCB is called during ld startup? > PS: I first sent this mail by error to the wrong djgpp-announce mailing list > but apparently it was rejected anyhow ! DJ monitors all mails sent to announce. SET -- Salvador Eduardo Tropea (SET). (Electronics Engineer) Visit my home page: http://welcome.to/SetSoft or http://www.geocities.com/SiliconValley/Vista/6552/ Alternative e-mail: set-soft AT usa DOT net set AT computer DOT org set AT ieee DOT org set-soft AT bigfoot DOT com Address: Curapaligue 2124, Caseros, 3 de Febrero Buenos Aires, (1678), ARGENTINA Phone: +(5411) 4759 0013