This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] gdb: add callback defines for new ARGV handling
- From: Jie Zhang <jzhang918 at gmail dot com>
- To: Mike Frysinger <vapier at gentoo dot org>
- Cc: Doug Evans <dje at google dot com>, gdb-patches at sourceware dot org, toolchain-devel at blackfin dot uclinux dot org, newlib at sourceware dot org
- Date: Tue, 17 Apr 2012 00:05:32 -0400
- Subject: Re: [PATCH] gdb: add callback defines for new ARGV handling
- References: <1294308908-23356-1-git-send-email-vapier@gentoo.org> <201101101729.10772.vapier@gentoo.org> <AANLkTi=UrcCcLLtpvEG5x0yfQwzqXxhNCnTz2eAsWac5@mail.gmail.com> <201204091508.11480.vapier@gentoo.org>
On Mon, Apr 9, 2012 at 3:08 PM, Mike Frysinger <vapier@gentoo.org> wrote:
> Jie: could you comment on the below thread ?
Yes.
> -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:
http://sourceware.org/ml/newlib/2001/msg00043.html
The initial sh sim patch:
http://sourceware.org/ml/gdb-patches/2001-01/msg00288.html
>> > 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.
Regards,
Jie