From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10962 invoked by alias); 9 Jun 2003 22:02:55 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 10788 invoked from network); 9 Jun 2003 22:02:54 -0000 Received: from unknown (HELO crack.them.org) (146.82.138.56) by sources.redhat.com with SMTP; 9 Jun 2003 22:02:54 -0000 Received: from dsl093-172-017.pit1.dsl.speakeasy.net ([66.93.172.17] helo=nevyn.them.org ident=mail) by crack.them.org with asmtp (Exim 3.12 #1 (Debian)) id 19PUjp-0000yv-00; Mon, 09 Jun 2003 17:03:37 -0500 Received: from drow by nevyn.them.org with local (Exim 3.36 #1 (Debian)) id 19PUj3-0007XE-00; Mon, 09 Jun 2003 18:02:49 -0400 Date: Mon, 09 Jun 2003 22:02:00 -0000 From: Daniel Jacobowitz To: gcc@gcc.gnu.org Cc: gdb@sources.redhat.com, binutils@sources.redhat.com, aoliva@redhat.com Subject: Partial autoconf transition thoughts Message-ID: <20030609220248.GA21303@nevyn.them.org> Mail-Followup-To: gcc@gcc.gnu.org, gdb@sources.redhat.com, binutils@sources.redhat.com, aoliva@redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.1i X-SW-Source: 2003-06/txt/msg00124.txt.bz2 [Sorry for the cross posting; I'm waiting for Zack et al. to figure out where the new list should be.] I spent some time today reviewing the --host/--build issues. Fortunately, target isn't relevant to autoconf's choices at this stage. Consider the options: Build Host 1 - - 2 - A 3 A - 4 A A 5 A B With plain target ("nonopt"), configure will act as if any unspecified options had been given on the command line with the plain target as a value. 1. Native build 2.13: Native-build a compiler to run on the local system; test $CC for cross mode. 2.57: Native-build a compiler to run on the local system 2. Specify only host 2.13: Assume that $build is $host; test $CC for cross mode. 2.57: Same, but considered "deprecated", according to the manual. However, based on generated configure, build will be guessed, and cross compilation will be tested by running a program. 3. Specify only build 2.13: Host will be guessed; test $CC for cross mode. 2.57: Host will default to $build, will build natively. 4. Specify the same thing for both 2.13: Both will be overridden; test $CC for cross mode. 2.57: Both will be overridden, will build natively. 5. Specify both different. 2.13: Both will be overridden, test $CC for cross mode. 2.57: Both will be overridden, will enter cross mode. So I guess I don't see what the problem is with doing one directory at a time. If you want to build a compiler that runs on the build machine, then we can always pass $build and $host to subdirectories with the same value; if you want to build a compiler that runs on another machine, require the user to specify --build and --host differently and always pass those to subdirectories, and as long as $CC is a cross compiler both autoconfs will do the right thing. There are existence proofs that this (mostly!) works - readline has been using autoconf 2.57 since its last import. The readline configure has issues cross compiling though, so don't treat it as an example. Could someone who thinks this won't work please speak up, before I waste a lot of time? As a proof of concept, I took gas/, and did a trivial convertion (with a little help from Klee's patches: http://sources.redhat.com/ml/sid/2003-q1/msg00003.html but not using some of the tricky bits). The results were fine. I tested a native build on i386-linux and a --build=i686-pc-linux-gnu --host=mipsel-hardhat-linux-gnu build, because that's what I had handy. What other cases are tricky and meaningful? -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer