On 07/03/20 01:11, Thomas Huth wrote:

Did you have a local modification to that file?
Oops yes, I had changed the line


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


to

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

If so, please revert it first before applying the patch (or add the "#if !defined(HAVE_OPENPTY)" now manually to see whether it works).

OK - looks like that did it:

root@hemlock:~/qemu-5.0.0# gpatch -p1 < configpatch.diff
patching file configure
Hunk #1 succeeded at 5049 (offset -85 lines).
Hunk #2 succeeded at 7117 (offset -267 lines).
patching file util/qemu-openpty.c
Hunk #2 succeeded at 94 with fuzz 2.
root@hemlock:~/qemu-5.0.0#


Then

root@hemlock:~/qemu-5.0.0# /opt/csw/bin/bash ./configure --cc=gcc  --extra-cflags="-m32"

succeeded with only one odd thing:

./configure: line 6326: pod2man: command not found

I fixed that with

root@hemlock:~/qemu-5.0.0# PATH=$PATH:/usr/perl5/5.26/bin

So I can confirm your patch works in Solaris 11.4.

gmake then ran successfully through qemu-openpty.c  becfore stopping with:

 ...
CC      crypto/trace.o
util/drm.c: In function \u2018qemu_drm_rendernode_open\u2019:
util/drm.c:41:16: error: \u2018struct dirent\u2019 has no member named \u2018d_type\u2019; did you mean \u2018d_name\u2019?
         if (e->d_type != DT_CHR) {
                ^~~~~~
                d_name
util/drm.c:41:26: error: \u2018DT_CHR\u2019 undeclared (first use in this function); did you mean \u2018TH_CWR\u2019?
         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


PMM said about this:

Ah, the Haiku folks just ran into exactly this issue.
Their fix should also be good for Solaris:
https://lists.gnu.org/archive/html/qemu-devel/2020-06/msg08800.html
(This whole file is for using a Linux-specific feature so there's
no point even compiling it for other OSes.)



            - Michele