From patchwork Tue Jan 17 14:52:48 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Lance Taylor X-Patchwork-Id: 136485 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 7BEA2B6EE6 for ; Wed, 18 Jan 2012 01:53:32 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1327416812; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:Received:From:To:Subject:Date:Message-ID:User-Agent: MIME-Version:Content-Type:Mailing-List:Precedence:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:Sender: Delivered-To; bh=V3yaJsQEbJnXQdelUrgMwZ9qC4w=; b=nzW8vUG88SAIQDJ Rnf9a8IDPBmyHQXNEMCH1Yq5s2SoNi9rl6mI6JQTAL5m+6yjcPcEUfXQVVR1CDEn jW2P0JmqSw5GESHCO5C7aULRvLTegqeK9mao8r1+MQhxzKZY0yWvf/NNDYjvgIXI 7dVQxU4/gG3B0zsNNKfNSVSDh8UQ= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Received:Received:From:To:Subject:Date:Message-ID:User-Agent:MIME-Version:Content-Type:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=MCBXFGZM0e9BUitFrIvzd+PZZz0U4rR5l83Y28DPdnihrWU056uyeGvCoor+hv glCP+JwOK6YcUDqfq1fUYj2pVi2juAEyw8bU/yIuvTwZocBmNVjkRkJ2r6bUf8lr /6qlM3Xn2eabxH8gdttnOWW28yrOwhjQhFnkMDNg4WDgg=; Received: (qmail 29140 invoked by alias); 17 Jan 2012 14:53:26 -0000 Received: (qmail 29034 invoked by uid 22791); 17 Jan 2012 14:53:22 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_LOW, TW_CC, TW_CP, T_RP_MATCHES_RCVD, T_TVD_MIME_NO_HEADERS X-Spam-Check-By: sourceware.org Received: from mail-iy0-f175.google.com (HELO mail-iy0-f175.google.com) (209.85.210.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 17 Jan 2012 14:52:56 +0000 Received: by iabz21 with SMTP id z21so3327976iab.20 for ; Tue, 17 Jan 2012 06:52:54 -0800 (PST) Received: by 10.42.168.135 with SMTP id w7mr14885180icy.9.1326811974914; Tue, 17 Jan 2012 06:52:54 -0800 (PST) Received: by 10.42.168.135 with SMTP id w7mr14885170icy.9.1326811974818; Tue, 17 Jan 2012 06:52:54 -0800 (PST) Received: from coign.google.com ([67.218.102.231]) by mx.google.com with ESMTPS id he16sm78026347ibb.9.2012.01.17.06.52.52 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 17 Jan 2012 06:52:54 -0800 (PST) From: Ian Lance Taylor To: gcc-patches@gcc.gnu.org, gofrontend-dev@googlegroups.com Subject: Go patch committed: fix gccgo -S Date: Tue, 17 Jan 2012 06:52:48 -0800 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) MIME-Version: 1.0 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Using gccgo -S without -o did not work correctly because it generated BASE.o rather than BASE.s. This happened because the gccgo driver adds an explicit -o option, but did not take -S into account. A cleaner approach here would be some gcc driver interface to set combine_inputs, but this approach works fine for now. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline. Ian 2012-01-17 Ian Lance Taylor * gospec.c (lang_specific_driver): If we see -S without -o, add -o BASE.s rather than -o BASE.o. Index: gcc/go/gospec.c =================================================================== --- gcc/go/gospec.c (revision 183119) +++ gcc/go/gospec.c (working copy) @@ -1,5 +1,5 @@ /* gospec.c -- Specific flags and argument handling of the gcc Go front end. - Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. + Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This file is part of GCC. @@ -109,6 +109,9 @@ lang_specific_driver (struct cl_decoded_ /* Whether the -o option was used. */ bool saw_opt_o = false; + /* Whether the -S option was used. */ + bool saw_opt_S = false; + /* The first input file with an extension of .go. */ const char *first_go_file = NULL; @@ -163,7 +166,6 @@ lang_specific_driver (struct cl_decoded_ break; case OPT_c: - case OPT_S: case OPT_E: case OPT_M: case OPT_MM: @@ -173,6 +175,11 @@ lang_specific_driver (struct cl_decoded_ library = -1; break; + case OPT_S: + saw_opt_S = true; + library = -1; + break; + case OPT_o: saw_opt_o = true; break; @@ -280,10 +287,13 @@ lang_specific_driver (struct cl_decoded_ alen = baselen + 3; out = XNEWVEC (char, alen); memcpy (out, base, baselen); - /* The driver will convert .o to some other suffix if - appropriate. */ + /* The driver will convert .o to some other suffix (e.g., .obj) + if appropriate. */ out[baselen] = '.'; - out[baselen + 1] = 'o'; + if (saw_opt_S) + out[baselen + 1] = 's'; + else + out[baselen + 1] = 'o'; out[baselen + 2] = '\0'; generate_option (OPT_o, out, 1, CL_DRIVER, &new_decoded_options[j]);