public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* GCC port
@ 2013-11-20 18:22 eljedi .
  2013-11-20 18:25 ` Jonathan Wakely
  0 siblings, 1 reply; 10+ messages in thread
From: eljedi . @ 2013-11-20 18:22 UTC (permalink / raw)
  To: gcc-help

Hello,

I want to know how to port gcc to a platform (learn purpose only).
I've been reading some links:
http://gcc.gnu.org/onlinedocs/gcc-2.95.2/gcc_16.html#SEC169

But this are for 2.95. Does  it still holds? is there any updated doc?
or any link recomendation?

As a playground I was thinking on port gcc to snes procedor (16bits
WDL w65c816). Do you think is doable? (a decent port I mean, which
generates good code)

Thank you very much

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

* Re: GCC port
  2013-11-20 18:22 GCC port eljedi .
@ 2013-11-20 18:25 ` Jonathan Wakely
  2013-11-20 19:17   ` eljedi .
  0 siblings, 1 reply; 10+ messages in thread
From: Jonathan Wakely @ 2013-11-20 18:25 UTC (permalink / raw)
  To: eljedi .; +Cc: gcc-help

On 20 November 2013 18:14, eljedi . wrote:
> Hello,
>
> I want to know how to port gcc to a platform (learn purpose only).
> I've been reading some links:
> http://gcc.gnu.org/onlinedocs/gcc-2.95.2/gcc_16.html#SEC169
>
> But this are for 2.95. Does  it still holds? is there any updated doc?

If you remove the part of the URL after "gcc-2.95.2" i.e.
http://gcc.gnu.org/onlinedocs/ then you'll find that links to
http://gcc.gnu.org/onlinedocs/gccint/

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

* Re: GCC port
  2013-11-20 18:25 ` Jonathan Wakely
@ 2013-11-20 19:17   ` eljedi .
  2013-11-20 19:47     ` Oleg Endo
  0 siblings, 1 reply; 10+ messages in thread
From: eljedi . @ 2013-11-20 19:17 UTC (permalink / raw)
  To: Jonathan Wakely; +Cc: gcc-help

Thank you Jonathan for the quick reply.

About the CPU I mentioned, do you think it can be done? (its a 16bits,
and I read gcc works fine for 32bits processors with 32bits registers,
more than one).



On Wed, Nov 20, 2013 at 7:22 PM, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> On 20 November 2013 18:14, eljedi . wrote:
>> Hello,
>>
>> I want to know how to port gcc to a platform (learn purpose only).
>> I've been reading some links:
>> http://gcc.gnu.org/onlinedocs/gcc-2.95.2/gcc_16.html#SEC169
>>
>> But this are for 2.95. Does  it still holds? is there any updated doc?
>
> If you remove the part of the URL after "gcc-2.95.2" i.e.
> http://gcc.gnu.org/onlinedocs/ then you'll find that links to
> http://gcc.gnu.org/onlinedocs/gccint/

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

* Re: GCC port
  2013-11-20 19:17   ` eljedi .
@ 2013-11-20 19:47     ` Oleg Endo
  2013-11-21  8:39       ` eljedi .
  0 siblings, 1 reply; 10+ messages in thread
From: Oleg Endo @ 2013-11-20 19:47 UTC (permalink / raw)
  To: eljedi .; +Cc: Jonathan Wakely, gcc-help

On Wed, 2013-11-20 at 19:25 +0100, eljedi . wrote:
> Thank you Jonathan for the quick reply.
> 
> About the CPU I mentioned, do you think it can be done? (its a 16bits,
> and I read gcc works fine for 32bits processors with 32bits registers,
> more than one).

Yes, it can be done.
For example, AVR is also < 32 bits and it works.

Cheers,
Oleg

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

* Re: GCC port
  2013-11-20 19:47     ` Oleg Endo
@ 2013-11-21  8:39       ` eljedi .
  2013-11-21 10:56         ` David Brown
  0 siblings, 1 reply; 10+ messages in thread
From: eljedi . @ 2013-11-21  8:39 UTC (permalink / raw)
  To: Oleg Endo; +Cc: Jonathan Wakely, gcc-help

Thank you guys for the answers.
Now I have a lot to read and learn.


On Wed, Nov 20, 2013 at 8:17 PM, Oleg Endo <oleg.endo@t-online.de> wrote:
> On Wed, 2013-11-20 at 19:25 +0100, eljedi . wrote:
>> Thank you Jonathan for the quick reply.
>>
>> About the CPU I mentioned, do you think it can be done? (its a 16bits,
>> and I read gcc works fine for 32bits processors with 32bits registers,
>> more than one).
>
> Yes, it can be done.
> For example, AVR is also < 32 bits and it works.
>
> Cheers,
> Oleg
>

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

* Re: GCC port
  2013-11-21  8:39       ` eljedi .
@ 2013-11-21 10:56         ` David Brown
  2013-11-21 11:41           ` Brian Drummond
  0 siblings, 1 reply; 10+ messages in thread
From: David Brown @ 2013-11-21 10:56 UTC (permalink / raw)
  To: eljedi ., Oleg Endo; +Cc: Jonathan Wakely, gcc-help

On 21/11/13 09:22, eljedi . wrote:
> Thank you guys for the answers.
> Now I have a lot to read and learn.
> 
> 
> On Wed, Nov 20, 2013 at 8:17 PM, Oleg Endo <oleg.endo@t-online.de> wrote:
>> On Wed, 2013-11-20 at 19:25 +0100, eljedi . wrote:
>>> Thank you Jonathan for the quick reply.
>>>
>>> About the CPU I mentioned, do you think it can be done? (its a 16bits,
>>> and I read gcc works fine for 32bits processors with 32bits registers,
>>> more than one).
>>
>> Yes, it can be done.
>> For example, AVR is also < 32 bits and it works.
>>
>> Cheers,
>> Oleg
>>
> 

The AVR is in fact an 8-bit cpu - I think it is the only 8-bit target
that is supported by gcc mainline.

For a 16-bit cpu, look at the msp430 port.  It has just recently been
added to mainline - previously it was developed outside the main gcc
tree.  But being a new port, or at least a newly cleaned up port, it
should be a good example to start with.

Also note that before working on a gcc port, you should check that the
device is supported by binutils - if not, that's where to start.
Binutils support for a processor is a lot less work than gcc support,
but it is an essential step - that's what gcc uses for assembling and
linking.

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

* Re: GCC port
  2013-11-21 10:56         ` David Brown
@ 2013-11-21 11:41           ` Brian Drummond
  2013-11-21 13:15             ` David Brown
  2013-11-21 17:51             ` Jeff Law
  0 siblings, 2 replies; 10+ messages in thread
From: Brian Drummond @ 2013-11-21 11:41 UTC (permalink / raw)
  To: gcc-help

On Thu, 2013-11-21 at 11:23 +0100, David Brown wrote:
> On 21/11/13 09:22, eljedi . wrote:
> > Thank you guys for the answers.
> > Now I have a lot to read and learn.
> > 
> > 
> > On Wed, Nov 20, 2013 at 8:17 PM, Oleg Endo <oleg.endo@t-online.de> wrote:
> >> On Wed, 2013-11-20 at 19:25 +0100, eljedi . wrote:
> >>> Thank you Jonathan for the quick reply.

> The AVR is in fact an 8-bit cpu - I think it is the only 8-bit target
> that is supported by gcc mainline.
> 
> For a 16-bit cpu, look at the msp430 port.  It has just recently been
> added to mainline - previously it was developed outside the main gcc
> tree.  But being a new port, or at least a newly cleaned up port, it
> should be a good example to start with.

Excellent news! Which release version includes (or will include) the
MSP430?

I would add that out-of-tree, it works well and supports Ada very
nicely.

Thanks,
- Brian

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

* Re: GCC port
  2013-11-21 11:41           ` Brian Drummond
@ 2013-11-21 13:15             ` David Brown
  2013-11-21 17:51             ` Jeff Law
  1 sibling, 0 replies; 10+ messages in thread
From: David Brown @ 2013-11-21 13:15 UTC (permalink / raw)
  To: gcc-help

On 21/11/13 11:56, Brian Drummond wrote:
> On Thu, 2013-11-21 at 11:23 +0100, David Brown wrote:
>> On 21/11/13 09:22, eljedi . wrote:
>>> Thank you guys for the answers.
>>> Now I have a lot to read and learn.
>>>
>>>
>>> On Wed, Nov 20, 2013 at 8:17 PM, Oleg Endo <oleg.endo@t-online.de> wrote:
>>>> On Wed, 2013-11-20 at 19:25 +0100, eljedi . wrote:
>>>>> Thank you Jonathan for the quick reply.
> 
>> The AVR is in fact an 8-bit cpu - I think it is the only 8-bit target
>> that is supported by gcc mainline.
>>
>> For a 16-bit cpu, look at the msp430 port.  It has just recently been
>> added to mainline - previously it was developed outside the main gcc
>> tree.  But being a new port, or at least a newly cleaned up port, it
>> should be a good example to start with.
> 
> Excellent news! Which release version includes (or will include) the
> MSP430?

The last I heard on the gcc development list was that DJ Delorie and
Nick Clifton (both Redhat) are officially appointed as gcc maintainers
for the port, and checked in support on 12/09/2013.  I guess that means
it will be released with gcc 4.9 - but it should be fine as an example
for the OP's use.

> 
> I would add that out-of-tree, it works well and supports Ada very
> nicely.

I don't know how much of the gcc port was changed when Red Hat took it
over (with TI paying the bills) and moved it in-tree.  Some of it had to
be changed or re-written due to copyright issues.  I know that a lot of
the library and support code was re-done, and I think this is based on
newlib-nano.  First priority is obviously for C, followed by basic C++
(typically without exceptions, RTTI, and limited library support - but
that's what embedded users generally want anyway).  I can't say anything
concrete about the state of Ada, but my guess is that the code
generation will work but the library will be limited.

> 
> Thanks,
> - Brian
> 
> 


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

* Re: GCC port
  2013-11-21 11:41           ` Brian Drummond
  2013-11-21 13:15             ` David Brown
@ 2013-11-21 17:51             ` Jeff Law
  2013-11-22 11:52               ` David Brown
  1 sibling, 1 reply; 10+ messages in thread
From: Jeff Law @ 2013-11-21 17:51 UTC (permalink / raw)
  To: brian, gcc-help

On 11/21/13 03:56, Brian Drummond wrote:
> On Thu, 2013-11-21 at 11:23 +0100, David Brown wrote:
>> On 21/11/13 09:22, eljedi . wrote:
>>> Thank you guys for the answers.
>>> Now I have a lot to read and learn.
>>>
>>>
>>> On Wed, Nov 20, 2013 at 8:17 PM, Oleg Endo <oleg.endo@t-online.de> wrote:
>>>> On Wed, 2013-11-20 at 19:25 +0100, eljedi . wrote:
>>>>> Thank you Jonathan for the quick reply.
>
>> The AVR is in fact an 8-bit cpu - I think it is the only 8-bit target
>> that is supported by gcc mainline.
>>
>> For a 16-bit cpu, look at the msp430 port.  It has just recently been
>> added to mainline - previously it was developed outside the main gcc
>> tree.  But being a new port, or at least a newly cleaned up port, it
>> should be a good example to start with.
>
> Excellent news! Which release version includes (or will include) the
> MSP430?
Good grief, no.  Not the msp430 which has odd sized pointers.  If you're 
going to do a 16 bit port, do a pure one.  Anything with PSImode should 
be avoided as a learning experience.

For someone trying to learn, I'd stick with one of the simple 32bit 
embeded riscy processors.  v850 for example.

Jeff

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

* Re: GCC port
  2013-11-21 17:51             ` Jeff Law
@ 2013-11-22 11:52               ` David Brown
  0 siblings, 0 replies; 10+ messages in thread
From: David Brown @ 2013-11-22 11:52 UTC (permalink / raw)
  To: Jeff Law, brian, gcc-help

On 21/11/13 17:02, Jeff Law wrote:
> On 11/21/13 03:56, Brian Drummond wrote:
>> On Thu, 2013-11-21 at 11:23 +0100, David Brown wrote:
>>> On 21/11/13 09:22, eljedi . wrote:
>>>> Thank you guys for the answers.
>>>> Now I have a lot to read and learn.
>>>>
>>>>
>>>> On Wed, Nov 20, 2013 at 8:17 PM, Oleg Endo <oleg.endo@t-online.de>
>>>> wrote:
>>>>> On Wed, 2013-11-20 at 19:25 +0100, eljedi . wrote:
>>>>>> Thank you Jonathan for the quick reply.
>>
>>> The AVR is in fact an 8-bit cpu - I think it is the only 8-bit target
>>> that is supported by gcc mainline.
>>>
>>> For a 16-bit cpu, look at the msp430 port.  It has just recently been
>>> added to mainline - previously it was developed outside the main gcc
>>> tree.  But being a new port, or at least a newly cleaned up port, it
>>> should be a good example to start with.
>>
>> Excellent news! Which release version includes (or will include) the
>> MSP430?
> Good grief, no.  Not the msp430 which has odd sized pointers.  If you're
> going to do a 16 bit port, do a pure one.  Anything with PSImode should
> be avoided as a learning experience.
> 
> For someone trying to learn, I'd stick with one of the simple 32bit
> embeded riscy processors.  v850 for example.
> 

The 20-bit pointers are only used for some msp430 devices, and even then
only in "large" memory models.  I haven't looked at the port code at
all, but I am sure it will be possible to gloss over the 20-bit stuff
when reading the code for learning purposes.  Apart from the 20-bit
support, the msp430 should be a pretty nice example as it has a mostly
orthogonal ISA with 16 16-bit registers.  And since it was updated and
contributed to mainline recently by gcc experts, I expect it to be a
good, modern gcc port.

I have no idea about the v850, however - it may be more appropriate,
despite being 32-bit rather than 16-bit.  Almost certainly, it would be
useful for the OP to look at more than one architecture anyway.



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

end of thread, other threads:[~2013-11-21 20:13 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-20 18:22 GCC port eljedi .
2013-11-20 18:25 ` Jonathan Wakely
2013-11-20 19:17   ` eljedi .
2013-11-20 19:47     ` Oleg Endo
2013-11-21  8:39       ` eljedi .
2013-11-21 10:56         ` David Brown
2013-11-21 11:41           ` Brian Drummond
2013-11-21 13:15             ` David Brown
2013-11-21 17:51             ` Jeff Law
2013-11-22 11:52               ` David Brown

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).