This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: DJGPP stage 2 C++ makefile failure
- To: "Mark E." <snowball3 at bigfoot dot com>
- Subject: Re: DJGPP stage 2 C++ makefile failure
- From: Eli Zaretskii <eliz at delorie dot com>
- Date: Mon, 17 Jul 2000 01:39:40 -0400 (EDT)
- CC: gcc-bugs at gcc dot gnu dot org
- References: <39708C3D.7605.486C8A@localhost> (snowball3@bigfoot.com) <3971F351.536.1224195@localhost>
- Reply-to: Eli Zaretskii <eliz at is dot elta dot co dot il>
> From: "Mark E." <snowball3@bigfoot.com>
> Date: Sun, 16 Jul 2000 17:39:29 -0400
>
> CC will contain that pesky backslash and this is as you explained. It's set
> by this line in gcc's configure:
> quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' |
> sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
>
> which is then substituted into the generated Makefile. If this line is
> changed to use one backslash before $(CC) instead of three, then the lone
> backslash goes away in the Makefile. From reading the comment in the
> configure script, I think the idea is to quote CC so it survives into a sub-
> make when you have CC="stage1/xgcc -Bstage1/". To make that work, I think
> quoted_cc_* above needs to be changed to:
> quoted_cc_set_by_configure="\\\`case '\$(CC)' in stage*) echo '\$(CC)' | sed
> -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\\\`"
>
> with that change, I get a definition of SUBDIR_FLAGS_TO_PASS that doesn't
> introduce a backslash:
If this solution works on Unix, I think it's a good idea.
If not, we will need to force Make to run that command through the
shell. As I understand it, right now, nothing in the offending
command which invokes $(CC) requires a shell, since a backslash alone
is not enough (on MSDOS) to cause that. Adding some kind of
(redundant) quotes might be all you need.