From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7413 invoked by alias); 26 Feb 2003 14:36:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 7399 invoked by uid 71); 26 Feb 2003 14:36:01 -0000 Date: Wed, 26 Feb 2003 14:36:00 -0000 Message-ID: <20030226143601.7398.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: "John Hughes" Subject: Re: target/9603: SCO 5 build of gcc-3.2.2 fails with i386.c: line 927: error: undefined symbol: DEFAULT_PCC_STRUCT_RETURN Reply-To: "John Hughes" X-SW-Source: 2003-02/txt/msg01377.txt.bz2 List-Id: The following reply was made to PR target/9603; it has been noted by GNATS. From: "John Hughes" To: , , , , Cc: Subject: Re: target/9603: SCO 5 build of gcc-3.2.2 fails with i386.c: line 927: error: undefined symbol: DEFAULT_PCC_STRUCT_RETURN Date: Wed, 26 Feb 2003 15:32:50 +0100 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=g cc&pr=9603 and http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=g cc&pr=9583 This bug is also present on UnixWare 7.1.1 (aka svr5) and I'd guess all other versions of svr4. It's still present in the 2003/02/24 snapshot of 3.3. For svr4 systems the fix is: --- gcc-20030224/gcc/config/i386/sysv4.h.orig Sun Jun 16 23:13:11 2002 +++ gcc-20030224/gcc/config/i386/sysv4.h Wed Feb 26 14:35:08 2003 @@ -23,6 +23,14 @@ #define TARGET_VERSION fprintf (stderr, " (i386 System V Release 4)"); +#if 0 + +/* i386.h says: + + Do not use this macro to indicate that structures and unions + should always be returned in memory. You should instead use + `DEFAULT_PCC_STRUCT_RETURN' to indicate this. */ + /* The svr4 ABI for the i386 says that records and unions are returned in memory. */ @@ -30,6 +38,12 @@ #define RETURN_IN_MEMORY(TYPE) \ (TYPE_MODE (TYPE) == BLKmode \ || (VECTOR_MODE_P (TYPE_MODE (TYPE)) && int_size_in_bytes (TYPE) == 8)) + +#else + +#define DEFAULT_PCC_STRUCT_RETURN 1 + +#endif /* Output at beginning of assembler file. */ /* The .file command should always begin the output. */