Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 12017
Product:  
Component:  
Status: RESOLVED
Resolution: FIXED
Assigned To: Not yet assigned to anyone <unassigned@gcc.gnu.org>
Host:
Reported against  
Priority:  
Severity:  
Target Milestone:  
 
 
Target:
Reporter: Dara Hazeghi <dhazeghi@gmail.com>
Add CC:
CC:
Remove selected CCs
Build:
URL:
Summary:
Keywords:
Known to work:
Known to fail:

Attachment Description Type Created Size Actions
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 12017 depends on: Show dependency tree
Show dependency graph
Bug 12017 blocks:

Additional Comments:






View Bug Activity   |   Format For Printing   |   Clone This Bug


Description:   Last confirmed: 2005-02-12 23:28 Opened: 2003-08-21 19:05
Building gcc mainline for avr target ICEs when building libobjc:

/home/dara/mainline/objdir/gcc/xgcc -B/home/dara/mainline/objdir/gcc/ -nostdinc -B/home/
dara/mainline/objdir/avr/newlib/ -isystem /home/dara/mainline/objdir/avr/newlib/targ-include 
-isystem /home/dara/mainline/combined/newlib/libc/include -B/tmp//avr/bin/ -B/tmp//avr/lib/ 
-isystem /tmp//avr/include -isystem /tmp//avr/sys-include -L/home/dara/mainline/objdir/ld -c 
-I. -I/home/dara/mainline/combined/libobjc -O2 -g -O2 -W -Wall -Wwrite-strings -Wstrict-
prototypes -DIN_GCC -DIN_TARGET_LIBS -I/home/dara/mainline/combined/libobjc/objc -I/
home/dara/mainline/combined/libobjc/../gcc -I/home/dara/mainline/combined/libobjc/../gcc/
config -I../../gcc -I/home/dara/mainline/combined/libobjc/../include /home/dara/mainline/
combined/libobjc/sendmsg.c -o sendmsg.o
/home/dara/mainline/combined/libobjc/sendmsg.c:42:1: warning: "rtx" redefined
In file included from /home/dara/mainline/combined/libobjc/sendmsg.c:31:
/home/dara/mainline/combined/libobjc/../gcc/coretypes.h:58:1: warning: this is the location of 
the previous definition
/home/dara/mainline/combined/libobjc/sendmsg.c: In function `__objc_word_forward':

/home/dara/mainline/combined/libobjc/sendmsg.c:581: error: unable to find a register to spill in 
class `BASE_POINTER_REGS'
/home/dara/mainline/combined/libobjc/sendmsg.c:581: error: this is the insn:
(insn 49 48 50 1 /home/dara/mainline/combined/libobjc/sendmsg.c:578 (set (reg:QI 30 r30 [+6 
])
        (mem:QI (plus:HI (reg/v/f:HI 18 r18 [orig:45 res ] [45])
                (const_int 6 [0x6])) [0 S1 A8])) 9 {*movqi} (nil)
    (nil))
/home/dara/mainline/combined/libobjc/sendmsg.c:581: internal compiler error: in spill_failure, at 
reload1.c:1862
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make: *** [sendmsg.lo] Error 1

Here's a testcase:

typedef const struct objc_selector
{
  void *sel_id;
  const char *sel_types;
} *SEL;

typedef struct objc_object {
  struct objc_class* class_pointer;
} *id;

static id
__objc_word_forward (id rcv, SEL op, ...)
{
  void *args, *res;

  args = __builtin_apply_args ();
  res = __objc_forward (rcv, op, args);
  __builtin_return (res);
}

This reproduces the ICE with a cross cc1. No optimization flags are necessary.

------- Comment #1 From Eric Weddington 2003-10-01 21:46 -------
The only known languages that builds for the AVR are C and C++. There has been 
work on an Ada port for the AVR here: <http://sourceforge.net/projects/avr-
ada>, but it is incomplete. Any others (such as Objective C) on the AVR are 
unknown.

Newlib is not used as the C library for the AVR. You need to get avr-libc: 
<http://savannah.nongnu.org/projects/avr-libc>

The avr-libc user manual (found online above) also has instructions on building 
and installing a full toolchain. The AVR toolchain is maintained on Linux, 
FreeBSD, and Windows, and is known to build on Solaris and recently Mac OSX. 
For the Windows port see WinAVR: <http://sourceforge.net/projects/winavr>. For 
information on OSX see recent posts to the avr-gcc-list mailing list: 
<http://www.avr1.org/mailman/listinfo/avr-gcc-list/>

Eric

------- Comment #2 From Andrew Pinski 2003-10-01 21:49 -------
Confirmed on the mainline (20030930).

------- Comment #3 From Andrew Pinski 2003-10-01 21:49 -------
Suspending as there is no avr maintainer, yet.

------- Comment #4 From Eric Weddington 2003-10-01 21:54 -------
There are 2 AVR maintainers.
From the MAINTAINERS file (3.3.1):
avr port		Denis Chertykov		denisc@overta.ru
avr port		Marek Michalkiewicz	marekm@linux.org.pl

------- Comment #5 From Andrew Pinski 2003-10-01 21:58 -------
Woops that was a different target I was think of.

------- Comment #6 From Andrew Pinski 2003-10-01 22:03 -------
Note this is C code not Objective-C code any way.

------- Comment #7 From Dara Hazeghi 2003-10-24 17:40 -------
This problem is still present on mainline.

Denis, do you have any suggestions about what may be causing this issue? Thanks.

------- Comment #8 From denisc@overta.ru 2003-10-27 20:30 -------
Subject: Re:  libobjc/sendmsg.c build ICE: in spill_failure, at reload1.c:1862

"dhazeghi at yahoo dot com" <gcc-bugzilla@gcc.gnu.org> writes:

It's because __builtin_return completely unsupported.

Denis.


------- Comment #9 From Dara Hazeghi 2003-10-27 21:38 -------
Fair enough. Then would it be possible to disable building of objc (and
libobjc) on avr in configure, 
and document this as such? If this sounds good, I can make a patch...

------- Comment #10 From denisc@overta.ru 2003-10-30 17:53 -------
Subject: Re:  libobjc/sendmsg.c build ICE: in spill_failure, at reload1.c:1862

"dhazeghi at yahoo dot com" <gcc-bugzilla@gcc.gnu.org> writes:

> PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12017
> 
> 
> 
> ------- Additional Comments From dhazeghi at yahoo dot com  2003-10-27 21:38 -------
> Fair enough. Then would it be possible to disable building of objc (and libobjc) on avr in configure, 
> and document this as such? If this sounds good, I can make a
> patch...

Please make it !

Denis.


------- Comment #11 From Andrew Pinski 2003-12-29 04:54 -------
Note the Objective-C front-end just produces C front-end trees so the problem
is in avr 
back-end and needs to be fixed, this bug also is when using the C source code
and not 
Objective-C source.
So this really needs to be fixed and not patched by not building libobjc.

------- Comment #12 From Eric Weddington 2007-08-23 22:26 -------
Seems to be fixed in 4.3 20070817 snapshot.

An additional minor patch is needed, not for this bug, but to allow Objective-C
to build for the AVR. (It's unknown if Objective-C will actually *work* on the
AVR...)

--- gcc/config/avr/avr.h.old    2007-08-23 15:18:31.015625000 -0600
+++ gcc/config/avr/avr.h        2007-08-23 15:19:17.687500000 -0600
@@ -53,7 +53,7 @@ extern int avr_mega_p;
 extern int avr_have_mul_p;
 extern int avr_asm_only_p;
 extern int avr_have_movw_lpmx_p;
-#ifndef IN_LIBGCC2
+#if !defined(IN_LIBGCC2) && !defined(IN_TARGET_LIBS)
 extern GTY(()) section *progmem_section;
 #endif


------- Comment #13 From Eric Weddington 2007-09-04 03:46 -------
Seems to be fixed in 4.2.1, at least. I haven't tried earlier releases.
Changing target milestone and closing bug.

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug