public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* New target porting time estimates?
@ 2003-11-14 18:44 Richard Tierney
  2003-11-14 20:32 ` Ian Lance Taylor
  0 siblings, 1 reply; 6+ messages in thread
From: Richard Tierney @ 2003-11-14 18:44 UTC (permalink / raw)
  To: gcc, binutils

Hi - can anyone give me any opinions on how long it'll take to port GCC 
and binutils to a new architecture? This is a medium-complexity RISC-ish 
processor. I know this is a 'how long is a piece of string' question, 
but any estimates would be much appreciated. I've spent a couple of 
hours on the web looking for answers but had no luck.

Many thanks

Richard


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

* Re: New target porting time estimates?
  2003-11-14 18:44 New target porting time estimates? Richard Tierney
@ 2003-11-14 20:32 ` Ian Lance Taylor
  2003-11-17  9:31   ` Richard Tierney
  0 siblings, 1 reply; 6+ messages in thread
From: Ian Lance Taylor @ 2003-11-14 20:32 UTC (permalink / raw)
  To: Richard Tierney; +Cc: gcc, binutils

Richard Tierney <mfoc73@dsl.pipex.com> writes:

> Hi - can anyone give me any opinions on how long it'll take to port
> GCC and binutils to a new architecture? This is a medium-complexity
> RISC-ish processor. I know this is a 'how long is a piece of string'
> question, but any estimates would be much appreciated. I've spent a
> couple of hours on the web looking for answers but had no luck.

I would say that there are two major variables here.

First, how similar is the processor to other processors which gcc
already supports?  If the processor has unique features, then it may
take more time to figure out how to make gcc handle those features.
If the processor is just like other processors, then why bother
building it--er, I mean, it will be easier to do the gcc port.

Second, how familiar is the person or people doing the port with
working on gcc, and how much experience do they have developing new
ports?  And, bluntly, how good are they as programmers?  A gcc port is
not (yet) a task for a mediocre programmer, at least not one without a
lot of guidance.  Software is still a field where professional
programmers can differ in quality by a full order of magnitude, a fact
which is not true of most engineering disciplines.

I think that when I was at Cygnus, we usually figured that one
experienced programmer could do a complete gcc and binutils port for a
fairly typical processor in three to four months.  This would be a
person who had already done extensive work on gcc and the binutils,
and who was working next to and had immediate access to most of the
top experts on the gcc and binutils code.

On the other hand, if we are talking about a non-expert programmer,
with no experience on gcc and the binutils, relying on the public
mailing lists for help, I think it would take a good dose of luck and
perseverance for the port to ever be finished at all.

I think I'm telling it like it is, but I should also reveal my bias by
saying that my employer, Wasabi Systems, will do this type of work for
pay.  There are several other companies and consultants, well
represented on these mailing lists, which you can also hire for this
type of work.

Hope this helps.

Ian

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

* Re: New target porting time estimates?
  2003-11-14 20:32 ` Ian Lance Taylor
@ 2003-11-17  9:31   ` Richard Tierney
  2003-11-18  4:13     ` Ian Lance Taylor
  2003-11-27 19:50     ` Hans-Peter Nilsson
  0 siblings, 2 replies; 6+ messages in thread
From: Richard Tierney @ 2003-11-17  9:31 UTC (permalink / raw)
  To: Ian Lance Taylor; +Cc: gcc, binutils

Ian Lance Taylor wrote:

 > If the processor is just like other processors, then why bother
 > building it--

Exactly. I'm afraid it's different in weird and wonderful (and, 
currently, unknown) ways. I need to get the most out of the new DFA 
scheduler, for starters.

 > Second, how familiar is the person or people doing the port with
 > working on gcc, and how much experience do they have developing new
 > ports?

Not at all/None. Can there be more than 50 people in the whole world 
who've done a working gcc port? I've read Hans-Peter Nilsson's stuff, 
I'm working through Richard Kenner's docs, and I've had a first look at 
the porting guide (there's nothing similar for binutils, though), and I 
still don't know enough to start. It also seems to me that just finding 
good documentation on RTL may be harder than rewriting it from scratch. 
Does anyone have any RTL doc pointers?

 > I think that when I was at Cygnus, we usually figured that one
 > experienced programmer could do a complete gcc and binutils port for a
 > fairly typical processor in three to four months.  This would be a
 > person who had already done extensive work on gcc and the binutils,
 > and who was working next to and had immediate access to most of the
 > top experts on the gcc and binutils code.
 >
 > On the other hand, if we are talking about a non-expert programmer,
 > with no experience on gcc and the binutils, relying on the public
 > mailing lists for help, I think it would take a good dose of luck and
 > perseverance for the port to ever be finished at all.

Thanks. I think I'll estimate 9 months, followed by a lifetime of 
maintenance. The only other estimate I found on the web was Tim Olson's 
statement that "A simple basic port (without working out all the subtle 
bugs) can be done in a man-month or so." H-PN doesn't seem to give any 
estimates - he still seems to be working on it..   :)

 > I think I'm telling it like it is, but I should also reveal my bias by
 > saying that my employer, Wasabi Systems, will do this type of work for
 > pay.  There are several other companies and consultants, well
 > represented on these mailing lists, which you can also hire for this
 > type of work.

Thanks again, but I'm afraid that this one has to be done in-house.

Cheers

RT

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

* Re: New target porting time estimates?
  2003-11-17  9:31   ` Richard Tierney
@ 2003-11-18  4:13     ` Ian Lance Taylor
  2003-11-27 19:50     ` Hans-Peter Nilsson
  1 sibling, 0 replies; 6+ messages in thread
From: Ian Lance Taylor @ 2003-11-18  4:13 UTC (permalink / raw)
  To: Richard Tierney; +Cc: gcc, binutils

Richard Tierney <mfoc73@dsl.pipex.com> writes:

> I'm working through Richard Kenner's docs, and I've had a first look
> at the porting guide (there's nothing similar for binutils, though),
> and I still don't know enough to start. It also seems to me that just
> finding good documentation on RTL may be harder than rewriting it from
> scratch. Does anyone have any RTL doc pointers?

Well, RTL is documented here:
    http://gcc.gnu.org/onlinedocs/gccint/RTL.html#RTL
For many examples, look at the .md file for a processor with which you
are familiar.

If you don't know LISP, take a few hours to read a LISP primer (use
Google).  It will help with RTL syntax, which is pretty simple.

Other than that, the key to RTL is to understand that some patterns
are used to generate RTL, namely the ones with names mentioned here:
    http://gcc.gnu.org/onlinedocs/gccint/Standard-Names.html#Standard%20Names
RTL patterns without names, or with different names, are used to
translate RTL into assembly language.

There are minimal binutils docs in bfd/doc/bfdint.texi and
gas/doc/internals.texinfo.

Good luck.

Ian

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

* Re: New target porting time estimates?
  2003-11-17  9:31   ` Richard Tierney
  2003-11-18  4:13     ` Ian Lance Taylor
@ 2003-11-27 19:50     ` Hans-Peter Nilsson
  1 sibling, 0 replies; 6+ messages in thread
From: Hans-Peter Nilsson @ 2003-11-27 19:50 UTC (permalink / raw)
  To: Richard Tierney; +Cc: gcc, binutils

On Mon, 17 Nov 2003, Richard Tierney wrote:

> I think I'll estimate 9 months, followed by a lifetime of
> maintenance. The only other estimate I found on the web was Tim Olson's
> statement that "A simple basic port (without working out all the subtle
> bugs) can be done in a man-month or so." H-PN doesn't seem to give any
> estimates - he still seems to be working on it..   :)

Only as much as _all_ ports are still being worked on, except
those deprecated and thrown out.  It's called maintenance, but I
see you already plan for it so enough said.  Or do you refer to
something in particular in the CRIS or MMIX ports?  Anyway, I
feel any and all of my conclusions in the "Porting GCC for
Dunces" document should be taken with a truckload of salt.

IIRC Mike Stump once said something like "8 years to learn gcc,
then a few months per port".

brgds, H-P
PS.  Don't forget to plan for reading the gcc lists too, now
only a week and a half behind...

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

* Re: New target porting time estimates?
@ 2003-11-15 12:28 Robert Dewar
  0 siblings, 0 replies; 6+ messages in thread
From: Robert Dewar @ 2003-11-15 12:28 UTC (permalink / raw)
  To: ian, mfoc73; +Cc: binutils, gcc

> I think that when I was at Cygnus, we usually figured that one
> experienced programmer could do a complete gcc and binutils port for a
> fairly typical processor in three to four months.  This would be a
> person who had already done extensive work on gcc and the binutils,
> and who was working next to and had immediate access to most of the
> top experts on the gcc and binutils code.

Another significant variable is whether you are talking about getting something
working, or producing a smooth, documented, distributable, commercial
product. The latter compared to the former can add a significant factor.

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

end of thread, other threads:[~2003-11-27 19:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-11-14 18:44 New target porting time estimates? Richard Tierney
2003-11-14 20:32 ` Ian Lance Taylor
2003-11-17  9:31   ` Richard Tierney
2003-11-18  4:13     ` Ian Lance Taylor
2003-11-27 19:50     ` Hans-Peter Nilsson
2003-11-15 12:28 Robert Dewar

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