public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
From: Rob Hatcherson <rob.hatcherson@zedasoft.com>
To: gcc-help@gcc.gnu.org
Subject: Unexpected File Name Too Long Error With #includes
Date: Tue, 04 Oct 2005 21:25:00 -0000	[thread overview]
Message-ID: <4342F356.8010409@zedasoft.com> (raw)

Hello,

A few weeks back I ran across an odd behavior of the gcc preprocessor on 
cygwin (gcc reported version 3.4.4-1).  I ping'd the cygwin list first, 
and got one suggestion that ended up not fixing the problem.  I thought 
I'd ping this group on the outside chance somebody here may have 
encountered this problem (the original message I posted to the cygwin 
group follows).

Apologies if this is inappropriate for this list, since this is likely 
an 'ism of something on the cygwin side.  And/or it may have nothing to 
do with the preprocessor directly, but rather be something flakey in an 
underlying lib.

Thanks,

Rob Hatcherson
ZedaSoft, Inc.



All,

This issue involves a "File name too long" error being generated by the 
C preprocessor that came along with 1.5.18-1.  The compiler reports 
version 3.4.4, the distro file says 3.4.4-1.


I have a header file whose total path length is 190 characters counting 
drive letters (yeah, I know it's ridiculously long, and I can get around 
this problem by chopping some stuff out, but at the moment I'm wondering 
what I'm missing for future reference).


I can #include this header file directly in a .c file with no problem:

#include "C:/d1/d2/d3/d4/...lots more.../blah.h"


The problem occurs if I provide a part of this path via a -I option, and 
put the remainder inside quotes in the #include.  So say I do this:

gcc -E -I C:/d1/d2/d3/d4 blah.c

...with the source file looking notionally like this:

#include "...lots more.../blah.h"


By experimentation (with this particular file I'm having problems with, 
so this isn't a general observation) when the total length of the stuff 
inside the quotes in the #include statement reaches 82 characters in 
length I get a "File name too long" error from the preprocessor.  Yet as 
noted earlier I can include the entire path inline without a complaint.


I've been using Cygwin for a while now and can't recall ever having a 
path length problem unless the length exceeded the total path limit at 
the Windows level (250, or 253, or 255, or whatever it is).  So... this 
makes me wonder if perhaps some feature has been introduced that I'm 
missing, and/or there's some magic option I need to be using.

Has anybody else encountered this behavior?

Sorry if this is a well-known issue.  I've been poking around a bit and 
haven't seen anything relevant (yet).  I'm currently digging in the 
gcc-core source, but thought I'd ping the group in the meantime.

TIA,

Rob Hatcherson
ZedaSoft, Inc.

             reply	other threads:[~2005-10-04 21:25 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-04 21:25 Rob Hatcherson [this message]
2005-10-04 21:32 ` Ian Lance Taylor
2005-10-04 22:45   ` Rob Hatcherson
2005-10-05  3:20     ` Ian Lance Taylor
2005-10-05 14:05       ` Rob Hatcherson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4342F356.8010409@zedasoft.com \
    --to=rob.hatcherson@zedasoft.com \
    --cc=gcc-help@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).