This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
DJGPP stage 2 C++ makefile failure
- To: gcc-bugs at gcc dot gnu dot org
- Subject: DJGPP stage 2 C++ makefile failure
- From: "Mark E." <snowball3 at bigfoot dot com>
- Date: Sat, 15 Jul 2000 01:36:20 -0400
Hi guys,
I haven't tried to build the C++ compiler in a while because I've been busy
with other projects. But I've run into a problem building the g++ compiler
and traced it to the gcc Makefile's definition of CC that is passed to the
g++ directory.
A change about 2 1/2 months ago means that the quoted version of CC is passed
to the g++ directory. What gcc's Makefile passes in the case of DJGPP is
this:
SUBDIR_FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) \
"CC=`echo \`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e
's|stage|../stage|g';; *) echo '\$(CC)';; esac\` |
$(PREPEND_DOTDOT_TO_RELATIVE_PATHS)`"
The backslash in front of the instances of $(CC) causes the failure. For
example:
CC=/djgpp/cvs/gcc/build/gcc/stage1
all:
@echo \$(CC)
'make all' here prints '\/djgpp/cvs/gcc/build/gcc/stage1'. When building g++,
make dies because it does not to find
'/djgpp/cvs/gcc/build/gcc/stage1/xgcc.exe'. Most likely, DJGPP's Make treats
a backslash as a filename character and under Windows two slashes (forward or
backward) is a network request. The problem also shows up in a stage1 build
when CC="gcc" and is expanded to "\gcc".
The source of the problem appears to be in gcc/configure.in when symbolic
links aren't supported (excuse any mailer inserted line breaks). The quoted
CC is set to:
quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' |
sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
However, I have no idea what to do to fix it. Help?
Mark