libargp: argp_program_version does not work

Andrew Schulman schulman.andrew@epamail.epa.gov
Fri Jul 12 15:36:00 GMT 2013


> Hello!
>> > int main (int argc, char **argv)
> > {
> > argp_program_version = version;
> > argp_program_bug_address = bug_address;
> > 
> > argp_parse (&argp, argc, argv, 0, 0, 0); }
> > 
> > /*** End modified argp example #2 ***/
> > 
> > If you compile the above version, you'll see that the --version option
> > and bug tracker text are available.
> > 
> > I'm sure this problem is familiar to developers and users of shared
> > libraries, but I had forgotten it. I'll add a note to the Cygwin
> > README file, to help all of us remember it next time.
>> Yes, i know this. But looks like nobody actually follows your way, because
> under Linux simple redefinition perfectly works.
> Of course we could fix every program, but i have an idea how to make the
> original Linux code working:
> 1. Inside DLL we should rename this variables somehow
> 2. Inside libargp.a.dll we should have a constructor function (with
> __attribute__((constructor))) which assigns variables inside DLL with
> contents of argp_program_version and argp_program_bug_address.
> 3. Also inside libargp.a.dll we should have default definitions of these
> variables with NULL contents.
>> This way code modification would not be required any more.
> I'll try to implement this when have more time.

Okay, well I agree that this sounds like a good solution. For now you have
a workaround, and I'll be glad to consider a patch if you submit one.
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple


More information about the Cygwin mailing list

AltStyle によって変換されたページ (->オリジナル) /