[PATCH] gdb: add callback defines for new ARGV handling

Jie Zhang jzhang918@gmail.com
Fri Apr 27 07:32:00 GMT 2012

On Mon, Apr 9, 2012 at 3:08 PM, Mike Frysinger <vapier@gentoo.org> wrote:
> Jie: could you comment on the below thread ?


> -mike
> On Monday 10 January 2011 22:38:11 Doug Evans wrote:
>> [+ newlib]
>> On Mon, Jan 10, 2011 at 2:29 PM, Mike Frysinger wrote:
>> >> For callback.h, IWBN to add some documentation regarding why things
>> >> are the way they are.  E.g. if argn is preferred over argv, why?
>> >
>> > these things were created long before i had even heard of either project,
>> > so i can only speculate on their history.
>> Understood.
>> > i would guess that argv/argvlen made it
>> > more difficult to do what most people actually want -- pass argc/argv to
>> > the main function.  and so argc/argn were born.
>> I wouldn't mind hearing more, sounds pretty fishy.
>> Though I understand it was before your time.
It was also much before my time. See my next comment.

>> I found these in the newlib archives:
>> An inquiry into argv,argvlen:
>> http://sourceware.org/ml/newlib/2006/msg00859.html
>> Submission of argc,argn,argnlen:
>> http://sourceware.org/ml/newlib/2006/msg00883.html
>> I couldn't find any pushback when argn,argnlen were submitted.
When I was working on adding argc/argv support for Blackfin
newlib/libgloss/simulator, I just copied the existing implementation
from other ports. I checked out the sim and newlib code around 27 Oct
2006. It seems at that time sh used argc/argn/argnlen while d30v used
argv/argvlen. But the code for CB_SYS_argvlen and CB_SYS_argv was
commented out by "#if 0 /* FIXME: wip */... #endif" in sim. So I just
used the same one as sh port for Blackfin.

The initial sh newlib patch:


The initial sh sim patch:


>> > all i really know is that argc/argn/argnlen are labeled as "the new
>> > approach" in a few places, and as such, it is what the Blackfin port
>> > supports.

I think this is true. CB_SYS_argv/CB_SYS_argvlen came in with the
initial import of gdb repository in 1999. It was still commented out
as WIP when argc/argn/argnlen was added in 2001. It's still commented
out today! I really think we should remove these commented out code,
which has been WIP for 13 years. I don't think it will get done in
near future.

>> Blech.
>> I'm hesitant to approve the patch, but since this is sim,newlib I
>> don't want to hold things up much just because of this.
>> > it also seems like the syscall handling intended to handle argv at some
>> > point, but someone didnt get around to implementing it.  so i could
>> > flesh that out too so that i could take the Blackfin argn/argc code and
>> > move it to common/syscall.c in the sim.
>> newlib: does anyone know the history of SYS_argc,argn,argnlen vs
>> SYS_argv,argvlen beyond the above mentioned emails?

The earliest information I know is the two patches I mentioned above.


More information about the Newlib mailing list