summaryrefslogtreecommitdiff
path: root/m4/depend.m4
diff options
context:
space:
mode:
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>2009-04-22 22:13:05 +0200
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>2009-04-22 22:13:35 +0200
commit4f2950ac63faad47c4640eb56fade7d6b1d74307 (patch)
tree8122833bac71fd5fb9debba7bcae22917dcacb81 /m4/depend.m4
parent07939c25e5c3c442bc81366118067df92c5ce6ba (diff)
downloadautomake-4f2950ac63faad47c4640eb56fade7d6b1d74307.tar.gz
Avoid racy depmodes with universal builds.
* m4/depend.m4 (_AM_DEPENDENCIES): If universal builds are used, avoid racy depmodes. * lib/depcomp: Ignore `-arch' argument for makedepend depmode. Report by Bruno Haible, analysis by Bruno Haible, Peter O'Gorman, and Eric Blake. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Diffstat (limited to 'm4/depend.m4')
-rw-r--r--m4/depend.m414
1 files changed, 14 insertions, 0 deletions
diff --git a/m4/depend.m4 b/m4/depend.m4
index 451312a37..efe86436a 100644
--- a/m4/depend.m4
+++ b/m4/depend.m4
@@ -63,6 +63,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
@@ -87,6 +97,10 @@ AC_CACHE_CHECK([dependency style of $depcc],
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested