public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: objc/4582: All objc tests fail on cygwin with gcc-3.1 (regression from 3.0)
@ 2002-01-13  4:36 Billinghurst, David (CRTS)
  0 siblings, 0 replies; 3+ messages in thread
From: Billinghurst, David (CRTS) @ 2002-01-13  4:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR objc/4582; it has been noted by GNATS.

From: "Billinghurst, David (CRTS)" <David.Billinghurst@riotinto.com>
To: <gcc-gnats@gcc.gnu.org>
Cc:  
Subject: Re: objc/4582: All objc tests fail on cygwin with gcc-3.1 (regression from 3.0)
Date: Sun, 13 Jan 2002 20:33:17 +0800

 Most objc tests have failed on cygwin since late June 2001.  I think the
 cause is:
 
 2001-06-27  Stan Shebs  <shebs@apple.com>
 
 	* objc/objc-act.c (handle_impent): Rewrite to be more portable
 	and to use ASM_DECLARE_CLASS_REFERENCE.
 	* config/darwin.h (ASM_DECLARE_CLASS_REFERENCE): Rename from
 	undocumented DECLARE_CLASS_REFERENCE, add file argument.
 	* doc/tm.texi (ASM_DECLARE_CLASS_REFERENCE): Document.
 
 The symptoms of the failure are:
 
 
 /usr/local/obj/gcc/i686-pc-cygwin/libobjc/.libs/libobjc.a(linking.o): In
 function `__objc_linking':
 /usr/local/src/gcc/libobjc/linking.m:37: undefined reference to
 `___objc_class_name_Object'
 /usr/local/src/gcc/libobjc/linking.m:37: undefined reference to
 `___objc_class_name_NXConstantString'
 collect2: ld returned 1 exit status
 
 In gcc-3.0, where the tests pass, these symbols are in NXConstStr.o and
 Object.o with three leading underscores.
 
 $ nm NXConstStr.o | grep objc_class
 00000034 T ___objc_class_name_NXConstantString
 U ___objc_class_name_Object
 
 $ nm Object.o | grep objc_class_name
 00000d04 T ___objc_class_name_Object
 
 $ nm linking.o | grep objc_class
 U ___objc_class_name_NXConstantString
 U ___objc_class_name_Object
 
 In gcc-3.1 the symbols only have two leading underscores.
 
 $ nm NXConstStr.o | grep objc_class_name
 U ___objc_class_name_Object
 00000036 T __objc_class_name_NXConstantString
 
 $ nm Object.o | grep objc_class_name
 00000f16 T __objc_class_name_Object
 
 $ nm linking.o | grep objc_class_name
 U ___objc_class_name_NXConstantString
 U ___objc_class_name_Object
 
 
 The symbols that (now) only have two leading underscores are emitted in
 objc-act.c(handle_impent).  Before this change, another leading
 underscore was added by ASM_GLOBALIZE_LABEL, but this is not done now
 since the name has a leading '*'. =20
 
 The patch below removes the leading '*' from the name and fixes the
 problem on cygwin.  I have no idea what it does on other platforms.
 With it I get the following test results
 
 Running /usr/local/src/gcc/gcc/testsuite/objc/compile/compile.exp ...
 Running /usr/local/src/gcc/gcc/testsuite/objc/execute/execute.exp ...
 FAIL: objc/execute/formal_protocol-6.m execution,  -O0
 FAIL: objc/execute/formal_protocol-6.m execution,  -O1
 FAIL: objc/execute/formal_protocol-6.m execution,  -O2
 FAIL: objc/execute/formal_protocol-6.m execution,  -O3
 -fomit-frame-pointer
 FAIL: objc/execute/formal_protocol-6.m execution,  -O3 -g
 FAIL: objc/execute/formal_protocol-6.m execution,  -Os
 Running /usr/local/src/gcc/gcc/testsuite/objc.dg/dg.exp ...
 Running /usr/local/src/gcc/gcc/testsuite/objc.dg/special/special.exp ...
 
                 =3D=3D=3D objc Summary =3D=3D=3D
 
 # of expected passes            1036
 # of unexpected failures        6
 /usr/local/obj/gcc/gcc/xgcc version 3.1 20020110 (experimental)
 
 
 Index: objc-act.c
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 RCS file: /cvs/gcc/gcc/gcc/objc/objc-act.c,v
 retrieving revision 1.123
 diff -u -p -r1.123 objc-act.c
 --- objc-act.c  2002/01/08 18:03:11     1.123
 +++ objc-act.c  2002/01/13 12:20:33
 @@ -8330,7 +8330,7 @@ handle_impent (impent)
 
        string =3D (char *) alloca (strlen (class_name) + 30);
 
 -      sprintf (string, "*%sobjc_class_name_%s",
 +      sprintf (string, "%sobjc_class_name_%s",
                 (flag_next_runtime ? "." : "__"), class_name);
      }
    else if (TREE_CODE (impent->imp_context) =3D=3D
 CATEGORY_IMPLEMENTATION_TYPE)
 


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: objc/4582: All objc tests fail on cygwin with gcc-3.1 (regression from 3.0)
@ 2002-02-17 20:38 billingd
  0 siblings, 0 replies; 3+ messages in thread
From: billingd @ 2002-02-17 20:38 UTC (permalink / raw)
  To: David.Billinghurst, gcc-bugs, gcc-prs, nobody

Synopsis: All objc tests fail on cygwin with gcc-3.1 (regression from 3.0)

State-Changed-From-To: open->closed
State-Changed-By: billingd
State-Changed-When: Sun Feb 17 20:38:24 2002
State-Changed-Why:
    Fixed in 3.1
    http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00578.html

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4582


^ permalink raw reply	[flat|nested] 3+ messages in thread

* objc/4582: All objc tests fail on cygwin with gcc-3.1 (regression from 3.0)
@ 2001-10-16  5:16 David.Billinghurst
  0 siblings, 0 replies; 3+ messages in thread
From: David.Billinghurst @ 2001-10-16  5:16 UTC (permalink / raw)
  To: gcc-gnats

>Number:         4582
>Category:       objc
>Synopsis:       All objc tests fail on cygwin with gcc-3.1 (regression from 3.0)
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Oct 16 05:16:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     David Billinghurst
>Release:        gcc 3.1 20011015
>Organization:
>Environment:
i686-pc-cygwin
>Description:
All objc testsuite tests fail with gcc-3.1.  The same tests pass with gcc-3.0.x.  Error is:

/usr/local/obj/gcc/i686-pc-cygwin/libobjc/.libs/libobjc.a(linking.o): In function `__objc_linking':
/usr/local/src/gcc/libobjc/linking.m:37: undefined reference to `___objc_class_name_Object'
/usr/local/src/gcc/libobjc/linking.m:37: undefined reference to `___objc_class_name_NXConstantString'
collect2: ld returned 1 exit status


In gcc-3.0, where the tests pass, these symbols are in NXConstStr.o and Object.o with three leading underscores.

$ nm NXConstStr.o | grep objc_class
00000034 T ___objc_class_name_NXConstantString
         U ___objc_class_name_Object

$ nm Object.o | grep objc_class_name
00000d04 T ___objc_class_name_Object

$ nm linking.o | grep objc_class
         U ___objc_class_name_NXConstantString
         U ___objc_class_name_Object

In gcc-3.1 the symbols only have two leading underscores.

$ nm NXConstStr.o | grep objc_class_name
         U ___objc_class_name_Object
00000036 T __objc_class_name_NXConstantString

$ nm Object.o | grep objc_class_name
00000f16 T __objc_class_name_Object

$ nm linking.o | grep objc_class_name
         U ___objc_class_name_NXConstantString
         U ___objc_class_name_Object
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-02-18  4:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-01-13  4:36 objc/4582: All objc tests fail on cygwin with gcc-3.1 (regression from 3.0) Billinghurst, David (CRTS)
  -- strict thread matches above, loose matches on Subject: below --
2002-02-17 20:38 billingd
2001-10-16  5:16 David.Billinghurst

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).