[PATCH] Remove gdb/nlm subdirectory

classic Classic list List threaded Threaded
17 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] Remove gdb/nlm subdirectory

Steve Ellcey
A few days ago I sent out a question about the gdb/nlm subdirectory to
the gdb mailing list and why it used autoconf 2.13 instead of autoconf
2.59 like the rest of gdb.  While it appears the subdirectory could be
updated it also looks like nobody is using it anymore and that it could
be removed from gdb.

So here is a patch to remove the gdb/nlm subdirectory.  I don't have a
netware platform on which to test this, but I did test it on a couple of
other platforms just to make sure my changes didn't break configure or
make in general.

What do people think?  Does one of the maintainers want to approve this
patch?

Steve Ellcey
[hidden email]



gdb/ChangeLog

2006-03-23  Steve Ellcey  <[hidden email]>

        * Makefile.in (nlm): Remove target.
        * configure.tgt (i[34567]86-*-netware*): Do not set build_nlm.
        * configure.ac: Remove AC_CONFIG_SUBDIRS of nlm.
        * configure: Regenerate.
        * doc/gdb.texinfo: Remove gdbserve.nlm documentation.
        * nlm: Remove directory.


*** Makefile.in.orig Thu Mar 23 10:49:41 2006
--- Makefile.in Thu Mar 23 10:50:00 2006
*************** $(TUI)$(EXEEXT): tui-main.o libgdb.a $(A
*** 1202,1210 ****
  -o $(TUI)$(EXEEXT) tui-main.o libgdb.a \
  $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES)
 
- nlm: force
- rootme=`pwd`; export rootme; $(MAKE) $(TARGET_FLAGS_TO_PASS) DO=all DODIRS=nlm subdir_do
-
  # Create a library of the gdb object files and build GDB by linking
  # against that.
  #
--- 1202,1207 ----
*** configure.ac.orig Tue Feb 21 13:02:25 2006
--- configure.ac Thu Mar 23 10:50:26 2006
*************** if test "x$target" = "x$host"; then
*** 1513,1524 ****
    fi
  fi
 
- # We configure the nlm subdirectory on netware targets, as instructed
- # by configure.tgt.
- if test "x$build_nlm" = xyes; then
-    AC_CONFIG_SUBDIRS(nlm)
- fi
-
  # If hostfile (XM_FILE) and/or targetfile (DEPRECATED_TM_FILE) and/or
  # nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
  # to an empty version.
--- 1513,1518 ----
*** configure.tgt.orig Thu Mar 23 10:50:51 2006
--- configure.tgt Thu Mar 23 10:51:15 2006
*************** i[34567]86-*-linux*) gdb_target=linux
*** 96,104 ****
  build_gdbserver=yes
  ;;
  i[34567]86-*-gnu*) gdb_target=i386gnu ;;
! i[34567]86-*-netware*) gdb_target=i386
! build_nlm=yes
! ;;
  i[34567]86-*-cygwin*) gdb_target=cygwin  ;;
  i[34567]86-*-*) gdb_target=i386 ;;
 
--- 96,102 ----
  build_gdbserver=yes
  ;;
  i[34567]86-*-gnu*) gdb_target=i386gnu ;;
! i[34567]86-*-netware*) gdb_target=i386 ;;
  i[34567]86-*-cygwin*) gdb_target=cygwin  ;;
  i[34567]86-*-*) gdb_target=i386 ;;
 
*** doc/gdb.texinfo.orig Thu Mar 23 11:09:44 2006
--- doc/gdb.texinfo Thu Mar 23 11:10:25 2006
*************** want to try.
*** 12139,12145 ****
  @menu
  * Connecting::                  Connecting to a remote target
  * Server::                Using the gdbserver program
- * NetWare::                     Using the gdbserve.nlm program
  * Remote configuration::        Remote configuration
  * remote stub::                 Implementing a remote stub
  @end menu
--- 12139,12144 ----
*************** you normally would), do that with the @c
*** 12393,12443 ****
  it @emph{before} connecting to the server; otherwise, you will get an
  error message saying @code{"Program is already running"}, since the
  program is considered running after the connection.
-
- @end table
-
- @node NetWare
- @section Using the @code{gdbserve.nlm} program
-
- @kindex gdbserve.nlm
- @code{gdbserve.nlm} is a control program for NetWare systems, which
- allows you to connect your program with a remote @value{GDBN} via
- @code{target remote}.
-
- @value{GDBN} and @code{gdbserve.nlm} communicate via a serial line,
- using the standard @value{GDBN} remote serial protocol.
-
- @table @emph
- @item On the target machine,
- you need to have a copy of the program you want to debug.
- @code{gdbserve.nlm} does not need your program's symbol table, so you
- can strip the program if necessary to save space.  @value{GDBN} on the
- host system does all the symbol handling.
-
- To use the server, you must tell it how to communicate with
- @value{GDBN}; the name of your program; and the arguments for your
- program.  The syntax is:
-
- @smallexample
- load gdbserve [ BOARD=@var{board} ] [ PORT=@var{port} ]
-               [ BAUD=@var{baud} ] @var{program} [ @var{args} @dots{} ]
- @end smallexample
-
- @var{board} and @var{port} specify the serial line; @var{baud} specifies
- the baud rate used by the connection.  @var{port} and @var{node} default
- to 0, @var{baud} defaults to 9600@dmn{bps}.
-
- For example, to debug Emacs with the argument @samp{foo.txt}and
- communicate with @value{GDBN} over serial port number 2 or board 1
- using a 19200@dmn{bps} connection:
-
- @smallexample
- load gdbserve BOARD=1 PORT=2 BAUD=19200 emacs foo.txt
- @end smallexample
-
- @item
- On the @value{GDBN} host machine, connect to your target (@pxref{Connecting,,
- Connecting to a remote target}).
 
  @end table
 
--- 12392,12397 ----
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

jimb (Bugzilla)
On 3/23/06, Steve Ellcey <[hidden email]> wrote:
> What do people think?  Does one of the maintainers want to approve this
> patch?

In the past we've generally marked something as outgoing for a
release, and then actually removed it in the next, or something
roughly like that, to give people some warning in case someone wants
to step up and maintain the code.  On the other hand, I think GDB's
policies have accumulated a lot of dead weight over the last few
years; some existing practices are more trouble than they're worth, in
my opinion.

So I'm not sure it's deathly important to do a staged phase-out of the
nlm directory.  But I'd like to see some other maintainers' opinions
on it, so that we're making a deliberate choice as a group about how
to handle these cases.
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Daniel Jacobowitz-2
On Thu, Mar 23, 2006 at 08:24:54PM -0800, Jim Blandy wrote:

> In the past we've generally marked something as outgoing for a
> release, and then actually removed it in the next, or something
> roughly like that, to give people some warning in case someone wants
> to step up and maintain the code.  On the other hand, I think GDB's
> policies have accumulated a lot of dead weight over the last few
> years; some existing practices are more trouble than they're worth, in
> my opinion.
>
> So I'm not sure it's deathly important to do a staged phase-out of the
> nlm directory.  But I'd like to see some other maintainers' opinions
> on it, so that we're making a deliberate choice as a group about how
> to handle these cases.

For things that folks still might, conceivably, be using in current
versions of GDB, and things that we still reasonably expect to work,
the obsoletion interval makes sense.  However, we've recently removed
one piece without that interval (rdi-share), and I've got my eye on two
others right now (KOD, which there was already agreement to remove;
just need to do it), and remote-rdp.c.  I think that's perfectly
appropriate.

I wouldn't mind pruning some of the other remote targets while we're
here, either - e.g. remote-mips.c.

I'm in favor of removing gdb/nlm/, but let's take another couple of
days to see if anyone disagrees.

--
Daniel Jacobowitz
CodeSourcery
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Eli Zaretskii
In reply to this post by Steve Ellcey
> Date: Thu, 23 Mar 2006 17:02:56 -0800 (PST)
> From: Steve Ellcey <[hidden email]>
>
> 2006-03-23  Steve Ellcey  <[hidden email]>
>
> * Makefile.in (nlm): Remove target.
> * configure.tgt (i[34567]86-*-netware*): Do not set build_nlm.
> * configure.ac: Remove AC_CONFIG_SUBDIRS of nlm.
> * configure: Regenerate.
> * doc/gdb.texinfo: Remove gdbserve.nlm documentation.
> * nlm: Remove directory.

Removed platforms should be mentioned in NEWS, I think.

> *** doc/gdb.texinfo.orig Thu Mar 23 11:09:44 2006
> --- doc/gdb.texinfo Thu Mar 23 11:10:25 2006

This part is approved, provided that the removal itself is approved.
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Eli Zaretskii
In reply to this post by Daniel Jacobowitz-2
> Date: Thu, 23 Mar 2006 23:30:08 -0500
> From: Daniel Jacobowitz <[hidden email]>
> Cc: [hidden email], [hidden email]
>
> For things that folks still might, conceivably, be using in current
> versions of GDB, and things that we still reasonably expect to work,
> the obsoletion interval makes sense.

Do we have good reasons to believe the nlm stuff is not used, or
cannot be built with a reasonable amount of effort?  If so, I see no
reason to have the staging period.

Otherwise, let's leave this for the next release.
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Daniel Jacobowitz-2
On Fri, Mar 24, 2006 at 11:46:20AM +0200, Eli Zaretskii wrote:

> > Date: Thu, 23 Mar 2006 23:30:08 -0500
> > From: Daniel Jacobowitz <[hidden email]>
> > Cc: [hidden email], [hidden email]
> >
> > For things that folks still might, conceivably, be using in current
> > versions of GDB, and things that we still reasonably expect to work,
> > the obsoletion interval makes sense.
>
> Do we have good reasons to believe the nlm stuff is not used, or
> cannot be built with a reasonable amount of effort?  If so, I see no
> reason to have the staging period.

Well, in all the time I've been working on GDB, I've never seen a user
question about Netware, a GNATS PR about Netware, or a developer commit
tested on Netware.  To build it you need a Netware-provided SDK; I
don't know if those are still obtainable.

> Otherwise, let's leave this for the next release.

I'm fine with that if you'd prefer.  I think we can ignore its old
configure file for now, then, instead of worrying about upgrading it to
2.5x (which started this discussion).

--
Daniel Jacobowitz
CodeSourcery
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

jimb (Bugzilla)
On 3/24/06, Daniel Jacobowitz <[hidden email]> wrote:
> I'm fine with that if you'd prefer.  I think we can ignore its old
> configure file for now, then, instead of worrying about upgrading it to
> 2.5x (which started this discussion).

How's this, then?

src/gdb/ChangeLog:
2006-03-24  Jim Blandy  <[hidden email]>

        * NEWS: Mention that the 'nlm' code is on its way out.
        * configure.tgt: Print an error message when configured for a
        '-netware' target, and suggest that the user delete the code to
        build there.

Index: src/gdb/NEWS
===================================================================
--- src.orig/gdb/NEWS
+++ src/gdb/NEWS
@@ -48,6 +48,14 @@ GDB now builds as a cross debugger hoste
 native console support, and remote communications using either
 network sockets or serial ports.

+* OBSOLETE features
+
+The support for Netware Loadable Modules (the 'gdb/nlm' subdirectory)
+is obsolete, and will be removed in the next release.  For now, the
+code is still present, but the GDB 'configure' script prints an error
+message when configured for 'i*86-*-netware', explaining how to enable
+the code.
+
 * REMOVED features

 The ARM rdi-share module.
Index: src/gdb/configure.tgt
===================================================================
--- src.orig/gdb/configure.tgt
+++ src/gdb/configure.tgt
@@ -98,6 +98,21 @@ i[34567]86-*-linux*) gdb_target=linux
 i[34567]86-*-gnu*) gdb_target=i386gnu ;;
 i[34567]86-*-netware*) gdb_target=i386
  build_nlm=yes
+
+### To re-enable Netware support, delete this line and all subsequent lines
+### up to and including the line that says 'exit 1' below the error message.
+                        cat >&2 <<END
+
+We plan to remove support for Netware loadable modules (the code in
+the 'nlm' subdirectory) after this release of GDB, unless we can find
+volunteers to maintain it.  If you are interested, please send mail to
+'[hidden email]'.
+
+For now, if you want to build GDB on Netware, delete this code
+in 'gdb/configure.tgt', and try running 'configure' again.
+END
+                        exit 1
+
  ;;
 i[34567]86-*-cygwin*) gdb_target=cygwin  ;;
 i[34567]86-*-*) gdb_target=i386 ;;
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Mark Kettenis
In reply to this post by Daniel Jacobowitz-2
> Date: Fri, 24 Mar 2006 09:47:27 -0500
> From: Daniel Jacobowitz <[hidden email]>
>
> On Fri, Mar 24, 2006 at 11:46:20AM +0200, Eli Zaretskii wrote:
> > > Date: Thu, 23 Mar 2006 23:30:08 -0500
> > > From: Daniel Jacobowitz <[hidden email]>
> > > Cc: [hidden email], [hidden email]
> > >
> > > For things that folks still might, conceivably, be using in current
> > > versions of GDB, and things that we still reasonably expect to work,
> > > the obsoletion interval makes sense.
> >
> > Do we have good reasons to believe the nlm stuff is not used, or
> > cannot be built with a reasonable amount of effort?  If so, I see no
> > reason to have the staging period.
>
> Well, in all the time I've been working on GDB, I've never seen a user
> question about Netware, a GNATS PR about Netware, or a developer commit
> tested on Netware.  To build it you need a Netware-provided SDK; I
> don't know if those are still obtainable.

I believe the last time we proposed this some guy from Novell stepped
up and said he'd like to keep the code.  This must have been around
the time Novell acquired SuSE.  But I never heard from this guy again.

> > Otherwise, let's leave this for the next release.
>
> I'm fine with that if you'd prefer.  I think we can ignore its old
> configure file for now, then, instead of worrying about upgrading it to
> 2.5x (which started this discussion).

We have no way of checking whether this code still works.  Let's get
rid of it.  If someone complains, he/she can get it out of the attic
and we can add it back if said person converts the configure fragment
to autoconf 2.5x.

Mark

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

jimb (Bugzilla)
Okay, I got confused, went back and actually parsed what everyone said
about this, aside from the general deferentialness:

- I said I didn't think it was important to phase it out gradually.
- Daniel said he'd not mind seeing it removed.
- Eli said he saw no reason to have the staging period IF someone had
reason to believe it was unused.  Daniel offered some reasons.
- Mark wants it gone.

So we've got a general trend towards getting rid of it now, and if Eli
found Daniel's reasons adequate, we've got consensus.
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Eli Zaretskii
> Date: Fri, 24 Mar 2006 15:17:44 -0800
> From: "Jim Blandy" <[hidden email]>
> Cc: [hidden email], [hidden email], [hidden email], [hidden email]
>
> Okay, I got confused, went back and actually parsed what everyone said
> about this, aside from the general deferentialness:
>
> - I said I didn't think it was important to phase it out gradually.
> - Daniel said he'd not mind seeing it removed.
> - Eli said he saw no reason to have the staging period IF someone had
> reason to believe it was unused.  Daniel offered some reasons.
> - Mark wants it gone.
>
> So we've got a general trend towards getting rid of it now, and if Eli
> found Daniel's reasons adequate, we've got consensus.

I interpreted Daniel's message as something like ``I'm not sure, I
just know we never heard any problem or patch''.  Which to me doesn't
sound as firm reasons, just as lack of any information.

So I think the patch you posted lately is okay for now.
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Eli Zaretskii
In reply to this post by jimb (Bugzilla)
> Date: Fri, 24 Mar 2006 09:28:58 -0800
> From: "Jim Blandy" <[hidden email]>
>
> On 3/24/06, Daniel Jacobowitz <[hidden email]> wrote:
> > I'm fine with that if you'd prefer.  I think we can ignore its old
> > configure file for now, then, instead of worrying about upgrading it to
> > 2.5x (which started this discussion).
>
> How's this, then?
>
> src/gdb/ChangeLog:
> 2006-03-24  Jim Blandy  <[hidden email]>
>
> * NEWS: Mention that the 'nlm' code is on its way out.
> * configure.tgt: Print an error message when configured for a
> '-netware' target, and suggest that the user delete the code to
> build there.

Fine with me.
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Ian Lance Taylor
In reply to this post by Daniel Jacobowitz-2
Daniel Jacobowitz <[hidden email]> writes:

> Well, in all the time I've been working on GDB, I've never seen a user
> question about Netware, a GNATS PR about Netware, or a developer commit
> tested on Netware.  To build it you need a Netware-provided SDK; I
> don't know if those are still obtainable.

I'm in favor of removing it, but I just want to note that the last
sentence is not correct.  You can build the gdb/nlm code using an
i386-elf-gcc and nlmconv.  No non-GNU tools are required.

However, it is true that the current sources won't build without
modification.  The configure script looks for config/CPU/gdbserve.mt,
and no such files exist.  The only two targets which ever worked were
i386 and PPC, and the required gdbserve.mt files were removed with
this change:

2003-02-05  Andrew Cagney  <[hidden email]>

        Remove orphaned hosts, targets and files.
        ...

So since then it has been difficult to build the NLM debug server.  I
think the lack of complaints about this is a compelling argument that
the code is unused.

Ian
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Daniel Jacobowitz-2
On Sun, Mar 26, 2006 at 08:03:57PM -0800, Ian Lance Taylor wrote:

> Daniel Jacobowitz <[hidden email]> writes:
>
> > Well, in all the time I've been working on GDB, I've never seen a user
> > question about Netware, a GNATS PR about Netware, or a developer commit
> > tested on Netware.  To build it you need a Netware-provided SDK; I
> > don't know if those are still obtainable.
>
> I'm in favor of removing it, but I just want to note that the last
> sentence is not correct.  You can build the gdb/nlm code using an
> i386-elf-gcc and nlmconv.  No non-GNU tools are required.

I was just going by this:

   This code is intended to produce an NLM (a NetWare Loadable Module)
   to run under Novell NetWare.  To create the NLM, compile this code
   into an object file using the NLM SDK on any i386 host,

If that's not true, where do you get these?

#ifdef __i386__
#include <dfs.h>
#include <conio.h>
#include <advanced.h>
#include <debugapi.h>
#include <process.h>
#else
#include <nwtypes.h>
#include <nwdfs.h>
#include <nwconio.h>
#include <nwadv.h>
#include <nwdbgapi.h>
#include <nwthread.h>
#endif

> However, it is true that the current sources won't build without
> modification.  The configure script looks for config/CPU/gdbserve.mt,
> and no such files exist.  The only two targets which ever worked were
> i386 and PPC, and the required gdbserve.mt files were removed with
> this change:
>
> 2003-02-05  Andrew Cagney  <[hidden email]>
>
> Remove orphaned hosts, targets and files.
>         ...
>
> So since then it has been difficult to build the NLM debug server.  I
> think the lack of complaints about this is a compelling argument that
> the code is unused.

Ah - that's perfect, thank you.  That means the code has not built
since GDB 6.0.

--
Daniel Jacobowitz
CodeSourcery
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Ian Lance Taylor
Daniel Jacobowitz <[hidden email]> writes:

> I was just going by this:
>
>    This code is intended to produce an NLM (a NetWare Loadable Module)
>    to run under Novell NetWare.  To create the NLM, compile this code
>    into an object file using the NLM SDK on any i386 host,
>
> If that's not true, where do you get these?
>
> #ifdef __i386__
> #include <dfs.h>
> #include <conio.h>
> #include <advanced.h>
> #include <debugapi.h>
> #include <process.h>
> #else
> #include <nwtypes.h>
> #include <nwdfs.h>
> #include <nwconio.h>
> #include <nwadv.h>
> #include <nwdbgapi.h>
> #include <nwthread.h>
> #endif

Oh, you're right, sorry.  You do need the NLM header files, and they
aren't in the GNU sources.  They used to be available somewhere, but I
no longer remember where.

Ian
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Daniel Jacobowitz-2
In reply to this post by Eli Zaretskii
On Tue, Mar 28, 2006 at 04:18:48PM -0500, Daniel Jacobowitz wrote:
> On Sat, Mar 25, 2006 at 10:16:09AM +0200, Eli Zaretskii wrote:
> > I interpreted Daniel's message as something like ``I'm not sure, I
> > just know we never heard any problem or patch''.  Which to me doesn't
> > sound as firm reasons, just as lack of any information.
>
> That's right.  But, Ian has now provided evidence that it wouldn't
> build without hacking the GDB sources since before GDB 6.0; is that
> enough to remove it directly, in your opinion?

[Oops!  Sorry for moving this to gdb, I fat-fingered it.  Moving it
back now!]

--
Daniel Jacobowitz
CodeSourcery
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Eli Zaretskii
> Date: Tue, 28 Mar 2006 16:23:28 -0500
> From: Daniel Jacobowitz <[hidden email]>
>
> On Tue, Mar 28, 2006 at 04:18:48PM -0500, Daniel Jacobowitz wrote:
> > On Sat, Mar 25, 2006 at 10:16:09AM +0200, Eli Zaretskii wrote:
> > > I interpreted Daniel's message as something like ``I'm not sure, I
> > > just know we never heard any problem or patch''.  Which to me doesn't
> > > sound as firm reasons, just as lack of any information.
> >
> > That's right.  But, Ian has now provided evidence that it wouldn't
> > build without hacking the GDB sources since before GDB 6.0; is that
> > enough to remove it directly, in your opinion?
>
> [Oops!  Sorry for moving this to gdb, I fat-fingered it.  Moving it
> back now!]

The answer is still yes. ;-)
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Remove gdb/nlm subdirectory

Daniel Jacobowitz-2
In reply to this post by Steve Ellcey
On Thu, Mar 23, 2006 at 05:02:56PM -0800, Steve Ellcey wrote:

> A few days ago I sent out a question about the gdb/nlm subdirectory to
> the gdb mailing list and why it used autoconf 2.13 instead of autoconf
> 2.59 like the rest of gdb.  While it appears the subdirectory could be
> updated it also looks like nobody is using it anymore and that it could
> be removed from gdb.
>
> So here is a patch to remove the gdb/nlm subdirectory.  I don't have a
> netware platform on which to test this, but I did test it on a couple of
> other platforms just to make sure my changes didn't break configure or
> make in general.
>
> What do people think?  Does one of the maintainers want to approve this
> patch?

Everyone now agrees.  Yay!  I've checked your patch in, along with the
obvious blurb for NEWS.

2006-03-29  Daniel Jacobowitz  <[hidden email]>

        * NEWS: Mention the removal of NLM.

Index: NEWS
===================================================================
RCS file: /cvs/src/src/gdb/NEWS,v
retrieving revision 1.184
diff -u -p -r1.184 NEWS
--- NEWS 10 Feb 2006 22:01:43 -0000 1.184
+++ NEWS 29 Mar 2006 22:58:30 -0000
@@ -51,6 +51,8 @@ network sockets or serial ports.
 
 The ARM rdi-share module.
 
+The Netware NLM debug server.
+
 *** Changes in GDB 6.4
 
 * New native configurations

--
Daniel Jacobowitz
CodeSourcery