X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-workers-bounces using -f X-Authentication-Warning: new-smtp1.ihug.com.au: Host p534-apx1.syd.ihug.com.au [203.173.142.26] claimed to be acceleron Message-ID: <006d01c18068$f173b250$0102a8c0@acceleron> From: "Andrew Cottrell" To: "Eli Zaretskii" Cc: References: <002201c17fc1$3e4a58c0$0102a8c0 AT acceleron> <2427-Sat08Dec2001104717+0200-eliz AT is DOT elta DOT co DOT il> Subject: Re: Why do there appear to be two stubs in some files? Date: Sun, 9 Dec 2001 12:02:36 +1100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Reply-To: djgpp-workers AT delorie DOT com From: "Eli Zaretskii" SNIP > > the files that I checked that looked like they had two stubs in them are:- > > as.exe > > ar.exe > > objdump.exe > > objcopy.exe > > > > The ones I seen all come from binutils. > > That's because Binutils include a copy of the stub, to be able to > create a stubified executable without requiring stubify.exe. For > examlpe, ld.exe and objcopy.exe should be able to produce such > executables. > > As for others, I'm guessing that at least some of them get the stub > because they use the same code as ld and objcopy. Thanks for this. The file go32stub.h is a "copy" of libc\stub\stub.h file and it gets included in the libbfd.a library which is linked into these exes. If anyone updates stub.h please remember that go32stub.h in the Binutils may also need to be updated. I diffed the 2.04 stub.h against the go32stub.h and there were allot more changes then when I compared the 2.03 sub.h against the go32stub.h. The changes in 2.03 v's go32stub.h are expected due to the date and time info in the stub. The stub.asm file changed in 2.04 and as such does this mean that so should go32stub.h in Binutils when 2.04 is released? The following is the change in the 2.04 stub.asm code:- loadloop: mov ah, ';' ; Copy until this character call store_env_string ; to "loadname" or al,al ; Check terminating character << New Code jne @f1 ; If ';', continue << New Code dec di ; else point at null for next pass. << New Code @f1: << New Code Andrew