On 27.03.2017 16:45, John D. Baker wrote:
> Building "emulators/wine" or "emulators/wine-devel" on i386-current:
>
> $ uname -a
> NetBSD avaya.technoskunk.fur 7.99.66 NetBSD 7.99.66 (RACKMOUNT) #46: Sun Mar 19 09:41:06 CDT 2017 sysop%x3650.technoskunk.fur@localhost:/r1/build/current/obj/i386/sys/arch/i386/compile/RACKMOUNT i386
>
> fails as follows ("emulators/wine" shown, "wine-devel" is similar):
>
> [...]
> -m32 -O2 -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include/libdrm -I/usr/pkg/include/ncurses -o wrc dumpres.o genres.o newstruc.o po.o readres.o translation.o utils.o wrc.o writeres.o parser.tab.o parser.yy.o ../../libs/wpp/libwpp.a -L../../libs/wine -lwine ../../libs/port/libwine_port.a -L/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -Wl,-R/usr/pkg/lib -Wl,--rpath,\$ORIGIN/../../libs/wine
> parser.yy.o: In function `parser_lex':
> parser.yy.c:(.text+0x252f): undefined reference to `yywrap'
> Makefile:327: recipe for target 'wrc' failed
> gmake[1]: *** [wrc] Error 1
> gmake[1]: Leaving directory '/d0/build/pkgsrc/emulators/wine/work/wine-1.6.2/tools/wrc'
> Makefile:19758: recipe for target 'tools/wrc' failed
> gmake: *** [tools/wrc] Error 2
> [...]
> gcc -m32 -c -I. -I. -I../include -I../include -D__WINESRC__ -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Wstrict-prototypes -Wtype-limits -Wunused-but-set-parameter -Wwrite-strings -Wpointer-arith -Wlogical-op -fno-omit-frame-pointer -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include/libdrm -I/usr/pkg/include/ncurses -O2 -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include/libdrm -I/usr/pkg/include/ncurses -o ptrace.o ptrace.c
> ptrace.c: In function 'get_thread_context':
> ptrace.c:671:46: error: 'struct dbreg' has no member named 'dr0'
> context->debug.i386_regs.dr0 = dbregs.dr0;
> ^
> ptrace.c:672:46: error: 'struct dbreg' has no member named 'dr1'
> context->debug.i386_regs.dr1 = dbregs.dr1;
> ^
> ptrace.c:673:46: error: 'struct dbreg' has no member named 'dr2'
> context->debug.i386_regs.dr2 = dbregs.dr2;
> ^
> ptrace.c:674:46: error: 'struct dbreg' has no member named 'dr3'
> context->debug.i386_regs.dr3 = dbregs.dr3;
> ^
> ptrace.c:675:46: error: 'struct dbreg' has no member named 'dr6'
> context->debug.i386_regs.dr6 = dbregs.dr6;
> ^
> ptrace.c:676:46: error: 'struct dbreg' has no member named 'dr7'
> context->debug.i386_regs.dr7 = dbregs.dr7;
> ^
> ptrace.c: In function 'set_thread_context':
> ptrace.c:705:11: error: 'struct dbreg' has no member named 'dr0'
> dbregs.dr0 = context->debug.i386_regs.dr0;
> ^
> ptrace.c:706:11: error: 'struct dbreg' has no member named 'dr1'
> dbregs.dr1 = context->debug.i386_regs.dr1;
> ^
> ptrace.c:707:11: error: 'struct dbreg' has no member named 'dr2'
> dbregs.dr2 = context->debug.i386_regs.dr2;
> ^
> ptrace.c:708:11: error: 'struct dbreg' has no member named 'dr3'
> dbregs.dr3 = context->debug.i386_regs.dr3;
> ^
> ptrace.c:709:11: error: 'struct dbreg' has no member named 'dr4'
> dbregs.dr4 = 0;
> ^
> ptrace.c:710:11: error: 'struct dbreg' has no member named 'dr5'
> dbregs.dr5 = 0;
> ^
> ptrace.c:711:11: error: 'struct dbreg' has no member named 'dr6'
> dbregs.dr6 = context->debug.i386_regs.dr6;
> ^
> ptrace.c:712:11: error: 'struct dbreg' has no member named 'dr7'
> dbregs.dr7 = context->debug.i386_regs.dr7;
> ^
> Makefile:201: recipe for target 'ptrace.o' failed
> gmake[1]: *** [ptrace.o] Error 1
> gmake[1]: *** Waiting for unfinished jobs....
>
>
> I don't know if the first part (yywrap.yy.o) is related to the second
> part. I seem to recall some of the ptrace work changing things for
> the benefit of amd64 possibly at the expense of i386.
>
> FWIW, amd64-current builds "wine-devel" just fine. I seem to recall
> you can't actually run 'wine' on amd64 yet.
>
> As such, I'm not sure if this is a pkgsrc issue or a kern issue
> (or other category?).
>
> Thanks.
>
Regarding ptrace(2) please try to add in this line:
https://github.com/wine-mirror/wine/blob/e2ebc0dc23f0fa04ea79cefc9e3d2faf189a6bf7/server/ptrace.c#L654
This code:
#ifndef DBREG_DRX
#define DBREG_DRX(d,x) ((d)->dr[(x)])
#endif
Something similar has been done in devel/gdb:
https://github.com/jsonn/pkgsrc/commit/83bca6bc22ced89de921f10b767bc8de46fe947d
Attachment:
signature.asc
Description: OpenPGP digital signature