[m-rev.] for review: Require readline/editline header files to use the libraries.

Peter Wang novalazy at gmail.com
Tue Jun 4 16:34:10 AEST 2019


On Tue, 4 Jun 2019 16:05:48 +1000 (AEST), Julien Fischer <jfischer at opturion.com> wrote:
> 
> On Tue, 4 Jun 2019, Peter Wang wrote:
> 
> > On Tue, 4 Jun 2019 15:58:17 +1000 (AEST), Julien Fischer <jfischer at opturion.com> wrote:
> >>
> >>
> >> On Tue, 4 Jun 2019, Peter Wang wrote:
> >>
> >> Add a summary line (e.g. the subject of this mail) to the start of the
> >> log message; it looks strange in git log otherwise
> >>
> >>> m4/mercury.m4:
> >>>    Require readline headers in order to use the readline library.
> >>>
> >>>    Require editline header in order to use the editline library.
> >>
> >>
> >> What's the rationale for this change?
> >
> > To avoid compilation errors on systems with the readline library
> > installed but not the headers.
> 
> Is there a system where the current approach is causing problems?
> (I'm not objecting to the change, just curious.)

On AIX:

    checking readline/readline.h usability... no
    checking readline/readline.h presence... no
    checking for readline/readline.h... no
    checking readline/history.h usability... no
    checking readline/history.h presence... no
    checking for readline/history.h... no
    looking for termcap or curses (needed by readline)...
    checking for readline in -lreadline... yes

The link check succeeds because /usr/lib/libreadline.a exists.
Unlike on Linux, that's an archive which can (and does) contain shared
libraries.

On other systems, the link check would usually fail unless you install
the development package because only the development package
would contain the static library and a symlink like
    /usr/lib/libreadline.so -> /usr/lib/libreadline.so.8.0
which allows the linker to find the shared library.

Peter


More information about the reviews mailing list