This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

DJGPP stage 2 C++ makefile failure


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]