AIX: Dependency problem with xlC/g++ combination
Jan-Benedict Glaw
jbglaw@lug-owl.de
Wed Oct 23 23:04:00 GMT 2013
Hi!
When building on gcc111, I tried to use different compilers for my
build robot. This machine has IBM's XL C compiler installed, but not
the C++ compiler. So I used CC=xlC, g++ was auto-detected for CXX.
This led to depmode=aix, but g++ was actually used later on for
calculating dependencies, totally fucking up the build directory
(since it's output was wrongly parsed using aix-style.)
Since some time, GCC's language is C++, so let's update dependency
generation to use the proper compiler, which in turn allows to build
the C parts (ie. binutils etc.) with a non-GNU C compiler.
I'd like to get some comments on this patch, which works for me for
stage-1 builds with gcc/g++ (on a amd64-linux box) as well as with
xlC/g++ on gcc111 (the mentioned AIX machine):
2013-10-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
gcc/
* configure.ac (ZW_PROG_COMPILER_DEPENDENCIES): Use CXX instead of CC.
* Makefile.in (CXXDEPMODE): Assign and change users.
(CCDEPMODE): Delete.
* configure: Regenerate.
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 5111109..5e686db 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -974,7 +974,7 @@ AC_CONFIG_COMMANDS([gccdepdir],[
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/mkinstalldirs $lang/$DEPDIR
done], [subdirs="$subdirs" ac_aux_dir=$ac_aux_dir DEPDIR=$DEPDIR])
-ZW_PROG_COMPILER_DEPENDENCIES([CC])
+ZW_PROG_COMPILER_DEPENDENCIES([CXX])
AC_LANG_POP(C++)
# --------
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index f0b8c5a..f519455 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -311,7 +311,7 @@ write_entries_to_file = $(shell rm -f $(2) || :) $(shell touch $(2)) \
# --------
# Dependency tracking stuff.
-CCDEPMODE = @CCDEPMODE@
+CXXDEPMODE = @CXXDEPMODE@
DEPDIR = @DEPDIR@
depcomp = $(SHELL) $(srcdir)/../depcomp
@@ -1040,7 +1040,7 @@ INCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
$(CLOOGINC) $(ISLINC)
COMPILE.base = $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) -o $@
-ifeq ($(CCDEPMODE),depmode=gcc3)
+ifeq ($(CXXDEPMODE),depmode=gcc3)
# Note a subtlety here: we use $(@D) for the directory part, to make
# things like the go/%.o rule work properly; but we use $(*F) for the
# file part, as we just want the file part of the stem, not the entire
@@ -1049,7 +1049,7 @@ COMPILE = $(COMPILE.base) -MT $@ -MMD -MP -MF $(@D)/$(DEPDIR)/$(*F).TPo
POSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(*F).TPo $(@D)/$(DEPDIR)/$(*F).Po
else
COMPILE = source='$<' object='$@' libtool=no \
- DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) $(COMPILE.base)
+ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) $(COMPILE.base)
POSTCOMPILE =
endif
diff --git a/gcc/configure b/gcc/configure
index bedf3b1..1e7bcb6 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -737,7 +737,7 @@ LDEXP_LIB
EXTRA_GCC_LIBS
GNAT_LIBEXC
COLLECT2_LIBS
-CCDEPMODE
+CXXDEPMODE
DEPDIR
am__leading_dot
CXXCPP
@@ -8766,12 +8766,12 @@ ac_config_commands="$ac_config_commands depdir"
ac_config_commands="$ac_config_commands gccdepdir"
-depcc="$CC" am_compiler_list=
+depcc="$CXX" am_compiler_list=
am_depcomp=$ac_aux_dir/depcomp
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -f "$am_depcomp"; then
@@ -8793,7 +8793,7 @@ else
# directory.
mkdir sub
- am_cv_CC_dependencies_compiler_type=none
+ am_cv_CXX_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
@@ -8838,7 +8838,7 @@ else
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
+ am_cv_CXX_dependencies_compiler_type=$depmode
$as_echo "$as_me:$LINENO: success" >&5
break
fi
@@ -8850,15 +8850,15 @@ else
cd ..
rm -rf conftest.dir
else
- am_cv_CC_dependencies_compiler_type=none
+ am_cv_CXX_dependencies_compiler_type=none
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-if test x${am_cv_CC_dependencies_compiler_type-none} = xnone
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+if test x${am_cv_CXX_dependencies_compiler_type-none} = xnone
then as_fn_error "no usable dependency style found" "$LINENO" 5
-else CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+else CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
fi
Any suggestions to better testing? Or an ACK/NACK for the overall
change? (Maybe there's something I didn't get right at all?)
MfG, JBG
--
Jan-Benedict Glaw jbglaw@lug-owl.de +49-172-7608481
Signature of: They that give up essential liberty to obtain temporary safety,
the second : deserve neither liberty nor safety. (Ben Franklin)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20131023/84cc662b/attachment.sig>
More information about the Gcc-patches
mailing list