X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: "Rod Pemberton" Newsgroups: comp.os.msdos.djgpp Subject: Re: 'The system cannot execute the specified program' (again) Date: Sat, 8 Nov 2008 03:41:21 -0500 Organization: Aioe.org NNTP Server Lines: 63 Message-ID: References: <6nk3hhFm2at0U1 AT mid DOT uni-berlin DOT de> NNTP-Posting-Host: BW0KeZm3CShCykloOUjLTA.user.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse AT aioe DOT org NNTP-Posting-Date: Sat, 8 Nov 2008 08:41:46 +0000 (UTC) X-Notice: Filtered by postfilter v. 0.7.4 X-Newsreader: Microsoft Outlook Express 6.00.2800.1933 X-Priority: 3 X-MSMail-Priority: Normal X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1933 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com "Andreas Eibach" wrote in message news:6nk3hhFm2at0U1 AT mid DOT uni-berlin DOT de... > after a little odyssey in the net, I've finally found the culprit why my > batch-capable small C application does not accept longer lines than (about) > 189/190 characters, which makes it very unusable for recursive operation > through a vast directory tree. I found that I was limited to 64 character paths in DOS - unless - I specified the exact full pathname. Specifying the exact full pathname allows me to completely recurse all my Windows directories with LFN's using Henrik Haftmann's DOSLFN (or Jason Hood's updated version). I found this to be true for real mode MS-DOS v7.10 (from Win98 SE). It works with both DJGPP and OpenWatcom so I don't think it's a DJGPP feature. Also, it might not be true for other DOS versions. > This old thread from 2006: [...] > finally brought some insight that djgpp uses a 16-bit stub that will make > any 32bit program _look_ like a 16 bit app for MSDOS. True. > Is there - after 2 years - still no way to circumvent this (compiling > options?) apart from silly workarounds I already read about in the thread > from 2 years ago? You could try Daniel Borca's DJELF. It's a version of DJGPP which produces ELF executables. Chris Giese's MBLOAD is a Multiboot loader for DOS and will load ELF binaries produced for DOS (not Linux, etc.). You should also be able to use DOSGRUB to start DOS ELFs from DOS. http://www.geocities.com/dborca/djgpp/elf/djelf.html > Second question: Would it be *theoretically* possible to live without that > 16bit stub Yes, with conditions. DOS can't directly execute a 32-bit application since it's 16-bit. So, the condition is that you have a separate executable loader for that executable type (which would contain the DOS 16-bit loader code and code to transition to 32-bits). If DJGPP implemented it's 16-bit DPMI startup stub as an DPMI executable loader as a DOS application or as a int 0x21 TSR 'exec' function extension, you'd be set. > Second question: Would it be *theoretically* possible to live without that > 16bit stub, so that 32bit programs are also recognized as 32bit? Yes, it's possible. I'd like to see DJGPP produce pure 32-bit applications: multi-boot protocol (either ELF or a.out "kludge") and unstubbed DPMI with a separate loader. Even though there is DJELF, it produces flat binaries which is different from the two address space method currently used by DJGPP. > I can only say I *DO* need very long lines in my batch file, because people > with deep directory trees do not even need to have directories with a > certain number of characters, but only the grade of tree depth will > automatically make paths quite long. Well, the only suggestion I have is to use the full exact path... Rod Pemberton