From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7404 invoked by alias); 28 Sep 2007 12:52:30 -0000 Received: (qmail 7351 invoked by uid 48); 28 Sep 2007 12:52:11 -0000 Date: Fri, 28 Sep 2007 12:52:00 -0000 Message-ID: <20070928125211.7350.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug bootstrap/32272] make exit because build/genmodes.exe doesn't exist In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "haubi at gentoo dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-09/txt/msg02355.txt.bz2 ------- Comment #6 from haubi at gentoo dot org 2007-09-28 12:52 ------- More analysis (solution (?) at the end): Compared gmake's debug-output from powerpc-aix5.3 to x86-gentoo-linux: x86-gentoo-linux: <<< Considering target file `build/genmodes'. File `build/genmodes' does not exist. Looking for an implicit rule for `build/genmodes'. Trying pattern rule with stem `modes'. Trying implicit prerequisite `build/genmodes.o'. Trying rule prerequisite `../build-i686-pc-linux-gnu/libiberty/libiberty.a'. Found an implicit rule for `build/genmodes'. <<< powerpc-aix5.3: <<< Considering target file `build/genmodes'. File `build/genmodes' does not exist. Looking for an implicit rule for `build/genmodes'. Trying pattern rule with stem `modes'. Trying implicit prerequisite `build/genmodes.o'. Trying rule prerequisite `../../build-powerpc-ibm-aix5.3.0.0/libiberty/libiberty.a'. Trying pattern rule with stem `modes'. Trying implicit prerequisite `build/genmodes.o'. Trying rule prerequisite `../../build-powerpc-ibm-aix5.3.0.0/libiberty/libiberty.a'. Looking for a rule with intermediate file `../../build-powerpc-ibm-aix5.3.0.0/libiberty/libiberty.a'. Avoiding implicit rule recursion. No implicit rule found for `build/genmodes'. <<< gmake avoids matching 'build/gen%' because of not finding libiberty.a in '../../build-powerpc-ibm-aix5.3.0.0/libiberty/'. But on linux, libiberty.a is searched in '../build-i686-pc-linux-gnu/libiberty/' Now, 'libiberty.a' is searched using $(build_libobjdir). build_libobjdir is set from this gcc/Makefile snippet: <<< ifeq ($(host_subdir),.) build_objdir := ../$(build_subdir) build_libobjdir := ../$(build_libsubdir) else build_objdir := ../../$(build_subdir) build_libobjdir := ../../$(build_libsubdir) endif <<< There's a difference in gcc/Makefile for $(host_subdir): x86-gentoo-linux: <<< host_subdir=. build_subdir=build-i686-pc-linux-gnu build_libsubdir=build-i686-pc-linux-gnu <<< powerpc-aix5.3: <<< host_subdir=host_subdir=host-powerpc-ibm-aix5.3.0.0 build_subdir=build-powerpc-ibm-aix5.3.0.0 build_libsubdir=build-powerpc-ibm-aix5.3.0.0 <<< Now found in gcc/configure some lines to determine 'host_subdir': <<< if ( test $srcdir = . && test -d gcc ) \ || test -d $srcdir/../host-${host_noncanonical}; then host_subdir="host-${host_noncanonical}" else host_subdir=. fi <<< And indeed, there is a gcc-4.2.0/host-powerpc-ibm-aix5.3.0.0 (in sourcedir). Although I'm pretty sure to not configure+make inside gcc's source dir, I've started from fresh extracted sourcedir. Currently the build is running, but 'build/genmodes' is already built and successfully executed. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32272