This is the mail archive of the cygwin mailing list for the Cygwin 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: libargp: argp_program_version does not work

>  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:
Unsubscribe info:

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