www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/07/22/04:19:29

Date: Wed, 22 Jul 1998 11:19:18 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: Hooman Katirai <hkatirai AT netpart DOT com>
cc: djgpp AT delorie DOT com
Subject: Re: DJGPP under WINNT
In-Reply-To: <000401bdb4ee$d24d7670$1901030a@WS-hkatirai.netpartners.com>
Message-ID: <Pine.SUN.3.91.980722111900.10941M-100000@is>
MIME-Version: 1.0

On Tue, 21 Jul 1998, Hooman Katirai wrote:

> Since NT doesn't support the Long File Names (LFN) API I've had to find ways
> around it. I changed the libraries
> to their 8.3 equivelants. For example std_configuration.h would be turned
> into std_co~1.h. Using this approach I've solved the problem where the
> compiler does not find the include files.

I'm really sorry for all the work you've put into this renaming,
because that's not how these problwms should be solved.  Your problems
all stem from a single cause: you used an unzip program which supports
long file names, when you unzipped DJGPP distribution.  This causes NT
to invent the short 8+3 aliases with those pesky numeric tails, and
breaks DJGPP.

The correct way to install DJGPP on an NT machine is to use a DOS
unzip program which does NOT support long names on NT.  This will
truncate all the long names to short 8+3 names, exactly like if you
were unzipping on DOS.

When the short 8+3 names are proper truncations of the long names,
DJGPP works correctly even though you specify a long name.  This works
because when a DJGPP program tries to open a file with a long name,
the DOS file-oriented calls transparently truncate the long name to
the DOS 8+3 limits, and the call succeeds.

> This problem being solved, I now have a new problem -- the linking libraries
> with long filenames -- specificaly libstdcxx.a. Since it is too long DJGPP
> can't find it. I tried renaming it to libstd.a and adding the "-lstd" to the
> command line but it doesn't work because the libraries are order sensitive.

You need that library to be called libstdcx.a, i.e. exactly the first
8 characters before the dot.  Then it will work.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019