This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]