Well I removed the "static" from the line

static int openpty(int *amaster, int *aslave, char *name,
                   struct termios *termp, struct winsize *winp)

in util/qemu-openpty.c. I odn't know if that was the right thing to do but it did allow it to compile. Now I'm stopped here:

...
CC      monitor/trace.o
util/drm.c: In function 'qemu_drm_rendernode_open':
util/drm.c:41:16: error: 'struct dirent' has no member named 'd_type'; did you mean 'd_name'?
         if (e->d_type != DT_CHR) {
                ^~~~~~
                d_name
util/drm.c:41:26: error: 'DT_CHR' undeclared (first use in this function); did you mean 'TH_CWR'?
         if (e->d_type != DT_CHR) {
                          ^~~~~~
                          TH_CWR
util/drm.c:41:26: note: each undeclared identifier is reported only once for each function it appears in
gmake: *** [/export/home/denber/qemu-5.0.0/rules.mak:69: util/drm.o] Error 1

This looks like more "not in Solaris" POSIX stuff.  See

https://stackoverflow.com/questions/35215109/struct-dirent-does-not-have-de-type-in-header-file

   "The only fields in the dirent structure that are mandated by
   POSIX.1 are: d_name[], of unspecified size, with at most NAME_MAX
   characters preceding the terminating null byte; and (as an XSI
   extension) d_ino. /The other fields are unstandardized, and not
   present on all systems/; see NOTES below for some further details.

   then continues

   Only the fields d_name and d_ino are specified in POSIX.1-2001. The
   remaining fields are available on many, but not all systems. Under
   glibc, programs can check for the availability of the fields not
   defined in POSIX.1 by testing whether the macros
   _DIRENT_HAVE_D_NAMLEN, _DIRENT_HAVE_D_RECLEN, _DIRENT_HAVE_D_OFF, or
   _DIRENT_HAVE_D_TYPE are defined.

   *Other than Linux, the d_type field is available mainly only on BSD
   systems.* This field makes it possible to avoid the expense of
   calling lstat(2) if further actions depend on the type of the file.
   If the _BSD_SOURCE feature test macro is defined, then glibc defines
   the following macro constants for the value returned in d_type:"

But I'm not sure what to make of this.


            - Michele


Reply via email to