This is the mail archive of the cygwin-apps@sources.redhat.com 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]

Re: libreadline.dll.a missing functions.


Charles Wilson wrote:
> 
> Earnie Boyd wrote:
> >
> > I was testing configurations of bash-2.04 and decided to try the
> > cygreadline.dll.  After ensuring that the make wasn't going to be using
> > bashes included lib/readline and changing the -lreadline to
> > -lreadline.dll I receive notice that some of the functions aren't
> > defined.  One such is _rl_set_screen_size.  I find it in the static
> > version but not the /bin/cygreadline.dll nor it's accompanying import
> > library.
> 
> I'll check into this, but note that you shouldn't have to specify
> "-lreadline.dll".  The current ld will automatically search for
> "libfoo.dll.a" *before* "libfoo.a" when you specify "-lfoo".  To
> *prevent* this behavior, you must tell it "-Bstatic" or tell gcc
> "-static" when linking.

rl_set_screen_size() is declared in rlprivate.h.  It is not supposed to
be an external entry point; that's why it is not exported in the dll. 
It is defined in terminal.c but is not marked 'static' there, presumably
because other, internal-to-readline functions call it -- but that
non-static designation means that is is exposed in the static library
and in unix shared librarys.  Just not dll's.  However, I can't find
*any* other reference to that function, other than the two I just
mentioned.  So, exteranl apps are not supposed to use
rl_set_screen_size(), and readline itself never calls the function.  I
think rl_set_screen_size() is dead code.

What package are you compiling that wants 'rl_set_screen_size()" ? 

--Chuck

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