Subject: Re: bug#18237: Small fix for MSDOS

From: Reuben Thomas <[email-masked]>
Date: Sun, 10 Aug 2014 19:19:24 +0100

On 10 August 2014 19:02, Eli Zaretskii <[email-masked]> wrote:

> > Date: Sun, 10 Aug 2014 17:40:24 +0100
> > From: Reuben Thomas <[email-masked]>
> >
> > The following patch helps in the case when a sockets library is
> installed;
> > in my case, ls080b.zip from the DJGPP site:
> >
> > === modified file 'src/msdos.c'
> > --- src/msdos.c    2014-08-09 16:12:33 +0000
> > +++ src/msdos.c    2014-08-09 21:51:56 +0000
> > @@ -4016,7 +4017,7 @@
> >  #endif
> >
> >
> > -#ifndef HAVE_SELECT
> > +#ifndef HAVE_SYS_SELECT_H
> >  #include "sysselect.h"
> >
> >  /* This yields the rest of the current time slice to the task manager.
> >
> >
> > The reasoning is that having select doesn't imply having the sys/select.h
> > functionality that the following code emulates.
> >
> > Does that look OK to install?
>
> You didn't tell enough details, so I don't understand why the change
> is needed, and why it is OK not to test HAVE_SELECT at all here.  (I
> don't have ls080b.zip installed.)  Please tell what problems did you
> see with the original code, and let's take it from there.
>

libsocket is a sockets implementation:
http://rich.phekda.org/richdawe/lsck/lsck_dl.htm

When it is installed, configure correctly detects that select is available,
and sets HAVE_SELECT. However, libsocket has no sys/select.h, nor does it
implement sys_select.

Hence, at present, when I build using ./configure && make for DOS with
libsocket installed, HAVE_SELECT is defined to 1, so the MS-DOS
implementation of sys_select in msdos.c is not compiled. Later, the linker
is unable to find sys_select, and the build fails.

I think you're also saying that I should test both HAVE_SELECT &&
HAVE_SYS_SELECT_H therefore? You're probably right, I (incorrectly?)
assumed that if HAVE_SYS_SELECT_H is true, then HAVE_SELECT would be too.

-- 
http://rrt.sc3d.org