Bug 17167 - [3.4 Regression] FATAL:Symbol L_foo$stub already defined.
Summary: [3.4 Regression] FATAL:Symbol L_foo$stub already defined.
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 3.4.1
: P2 normal
Target Milestone: 3.4.3
Assignee: Andrew Pinski
URL:
Keywords: patch, wrong-code
Depends on:
Blocks:
 
Reported: 2004-08-24 14:17 UTC by Kate Minola
Modified: 2004-09-11 20:33 UTC (History)
1 user (show)

See Also:
Host:
Target: *-darwin*
Build:
Known to work: 3.3.3 4.0.0
Known to fail: 3.4.0
Last reconfirmed: 2004-08-24 15:17:58


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kate Minola 2004-08-24 14:17:44 UTC
% uname -a
Darwin varro 7.5.0 Darwin Kernel Version 7.5.0: Thu Aug  5 19:26:16 PDT 2004; 
root:xnu/xnu-517.7.21.obj~3/RELEASE_PPC  Power Macintosh powerpc
% gcc -v
Reading specs from /private/var/automount/usr/local/gcc-3.4.1/powerpc-
Darwin/bin/../lib/gcc/powerpc-apple-darwin7.3.0/3.4.1/specs
Configured with: ../gcc-3.4.1/configure --enable-languages=c --
prefix=/usr/local/gcc-3.4.1/powerpc-Darwin
Thread model: posix
gcc version 3.4.1
% cat foo.c
/* On powerpc-apple-darwin7.5.0 gcc-3.4.1 gives

% gcc -c foo.c
/var/tmp//ccdpYiCe.s:24:FATAL:Symbol L_foo$stub already defined.

This is a regression from gcc-3.3.3.  It does not seem
to happen on other architectures that I have tried.

It seems to be fixed in gcc-3.5-20040530.
*/

int foo(a)
  int a;
{
    int    foo();  /* if you remove this line, the bug disappears */

    foo(a);
    return 0;
}

%
Comment 1 Andrew Pinski 2004-08-24 15:17:58 UTC
Testing a patch.

The patch which fixed on the mainline which I am back porting:
<http://gcc.gnu.org/ml/gcc-patches/2004-02/msg02647.html>.
Comment 2 Andrew Pinski 2004-08-24 21:00:37 UTC
Patch here: <http://gcc.gnu.org/ml/gcc-patches/2004-08/msg01933.html>.
Comment 3 Mark Mitchell 2004-08-29 19:09:50 UTC
Postponed until GCC 3.4.3.
Comment 4 GCC Commits 2004-09-11 20:32:31 UTC
Subject: Bug 17167

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_4-branch
Changes by:	pinskia@gcc.gnu.org	2004-09-11 20:32:24

Modified files:
	gcc/config     : darwin-protos.h darwin.c darwin.h 
	gcc            : ChangeLog 

Log message:
	2004-09-11  Andrew Pinski  <apinski@apple.com>
	
	PR target/17167
	backport from the mainline:
	2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
	* config/darwin.h (machopic_finish): Output stub even if
	the symbol is already defined.
	2004-02-27  Dale Johannesen  <dalej@apple.com>
	* config/darwin.c (machopic_output_possible_stub_label):
	Remove.
	config/darwin-protos.h:  Ditto.
	config/darwin.h:  Remove call to it.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/darwin-protos.h.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.29&r2=1.29.6.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/darwin.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.55.6.1&r2=1.55.6.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/darwin.h.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.65.4.2&r2=1.65.4.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.2326.2.618&r2=2.2326.2.619

Comment 5 Andrew Pinski 2004-09-11 20:33:33 UTC
Fixed.