[oi-dev] Wine 1.9.10 : compilation trial

Thomas Wagner tom-oi-dev at tom.bn-ulm.de
Mon May 23 21:44:46 UTC 2016


Ben,

I took this as a trigger and had a look at wine 1.9.10 in SFE.

The tricky part has been a missing symbol export in "port.o",
but I got it right after some testing with compiler options.

At the moment the final compile is running and if the result is
at least a little bit usable, I'll push that into SVN. 
After a while the automatic builds should pick it up.

I'll let you know if this attempt has been successful.

In the upcoming SVN commit for SFEwine.spec you can see 
what I did to compile wine.

Regards,
Tom

On Mon, May 23, 2016 at 09:40:22AM +0000, Aur?lien Larcher wrote:
> Illumos changed inclusion of regset.h some months ago.
> You need to include sys/regset.h
> 
> 
> À lun. mai 23 04:25:12 2016 GMT+0200, bentahyr at chez.com a écrit :
> > Hi
> > I have a bit of free time today and thought I could give wine compilation a go.
> > 
> > configure stage is ok
> > I need to add the -std=gnu99  to C(XX)FLAGS to pass first error then unfortunately it fails a lot later with the following error :
> > 
> > gmake[1]: Entering directory '/home/franck/tmp/wine-1.9.10/dlls/ntdll'
> > gcc -c -o signal_i386.o signal_i386.c -I. -I../../include -D__WINESRC__ -D_NTSYSTEM_ -D_REENTRANT -fPIC \
> >   -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers \
> >   -Wstrict-prototypes -Wtype-limits -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith \
> >   -Wlogical-op -fno-omit-frame-pointer -std=gnu99
> > In file included from signal_i386.c:60:0:
> > signal_i386.c: In function 'init_handler':
> > signal_i386.c:342:60: error: 'FS' undeclared (first use in this function)
> >  #define FS_sig(context)      ((context)->uc_mcontext.gregs[FS])
> >                                                             ^
> > ../../include/windef.h:337:52: note: in definition of macro 'LOWORD'
> >  #define LOWORD(l)              ((WORD)((DWORD_PTR)(l) & 0xFFFF))
> >                                                     ^
> > signal_i386.c:965:18: note: in expansion of macro 'FS_sig'
> >      *fs = LOWORD(FS_sig(sigcontext));
> >                   ^
> > signal_i386.c:342:60: note: each undeclared identifier is reported only once for each function it appears in
> >  #define FS_sig(context)      ((context)->uc_mcontext.gregs[FS])
> >                                                             ^
> > ../../include/windef.h:337:52: note: in definition of macro 'LOWORD'
> >  #define LOWORD(l)              ((WORD)((DWORD_PTR)(l) & 0xFFFF))
> >                                                     ^
> > signal_i386.c:965:18: note: in expansion of macro 'FS_sig'
> >      *fs = LOWORD(FS_sig(sigcontext));
> >                   ^
> > signal_i386.c:343:60: error: 'GS' undeclared (first use in this function)
> >  #define GS_sig(context)      ((context)->uc_mcontext.gregs[GS])
> >                                                             ^
> > ../../include/windef.h:337:52: note: in definition of macro 'LOWORD'
> >  #define LOWORD(l)              ((WORD)((DWORD_PTR)(l) & 0xFFFF))
> >                                                     ^
> > signal_i386.c:970:18: note: in expansion of macro 'GS_sig'
> >      *gs = LOWORD(GS_sig(sigcontext));
> >                   ^
> > signal_i386.c:337:60: error: 'CS' undeclared (first use in this function)
> >  #define CS_sig(context)      ((context)->uc_mcontext.gregs[CS])
> >                                                             ^
> > signal_i386.c:983:29: note: in expansion of macro 'CS_sig'
> >      if (!wine_ldt_is_system(CS_sig(sigcontext)) ||
> >                              ^
> > signal_i386.c:340:60: error: 'SS' undeclared (first use in this function)
> >  #define SS_sig(context)      ((context)->uc_mcontext.gregs[SS])
> >                                                             ^
> > signal_i386.c:984:29: note: in expansion of macro 'SS_sig'
> >          !wine_ldt_is_system(SS_sig(sigcontext)))  /* 16-bit mode */
> >                              ^
> > signal_i386.c:353:60: error: 'ESP' undeclared (first use in this function)
> >  #define ESP_sig(context)     ((context)->uc_mcontext.gregs[ESP])
> >                                                             ^
> > signal_i386.c:995:21: note: in expansion of macro 'ESP_sig'
> >      return (void *)(ESP_sig(sigcontext) & ~3);
> >                      ^
> > signal_i386.c: In function 'save_context':
> > signal_i386.c:329:60: error: 'EAX' undeclared (first use in this function)
> >  #define EAX_sig(context)     ((context)->uc_mcontext.gregs[EAX])
> >                                                             ^
> > signal_i386.c:1108:29: note: in expansion of macro 'EAX_sig'
> >      context->Eax          = EAX_sig(sigcontext);
> >                              ^
> > signal_i386.c:330:60: error: 'EBX' undeclared (first use in this function)
> >  #define EBX_sig(context)     ((context)->uc_mcontext.gregs[EBX])
> >                                                             ^
> > signal_i386.c:1109:29: note: in expansion of macro 'EBX_sig'
> >      context->Ebx          = EBX_sig(sigcontext);
> >                              ^
> > signal_i386.c:331:60: error: 'ECX' undeclared (first use in this function)
> >  #define ECX_sig(context)     ((context)->uc_mcontext.gregs[ECX])
> >                                                             ^
> > signal_i386.c:1110:29: note: in expansion of macro 'ECX_sig'
> >      context->Ecx          = ECX_sig(sigcontext);
> >                              ^
> > signal_i386.c:332:60: error: 'EDX' undeclared (first use in this function)
> >  #define EDX_sig(context)     ((context)->uc_mcontext.gregs[EDX])
> >                                                             ^
> > signal_i386.c:1111:29: note: in expansion of macro 'EDX_sig'
> >      context->Edx          = EDX_sig(sigcontext);
> >                              ^
> > signal_i386.c:333:60: error: 'ESI' undeclared (first use in this function)
> >  #define ESI_sig(context)     ((context)->uc_mcontext.gregs[ESI])
> >                                                             ^
> > signal_i386.c:1112:29: note: in expansion of macro 'ESI_sig'
> >      context->Esi          = ESI_sig(sigcontext);
> >                              ^
> > signal_i386.c:334:60: error: 'EDI' undeclared (first use in this function)
> >  #define EDI_sig(context)     ((context)->uc_mcontext.gregs[EDI])
> >                                                             ^
> > signal_i386.c:1113:29: note: in expansion of macro 'EDI_sig'
> >      context->Edi          = EDI_sig(sigcontext);
> >                              ^
> > signal_i386.c:335:60: error: 'EBP' undeclared (first use in this function)
> >  #define EBP_sig(context)     ((context)->uc_mcontext.gregs[EBP])
> >                                                             ^
> > signal_i386.c:1114:29: note: in expansion of macro 'EBP_sig'
> >      context->Ebp          = EBP_sig(sigcontext);
> >                              ^
> > signal_i386.c:345:60: error: 'EFL' undeclared (first use in this function)
> >  #define EFL_sig(context)     ((context)->uc_mcontext.gregs[EFL])
> >                                                             ^
> > signal_i386.c:1115:29: note: in expansion of macro 'EFL_sig'
> >      context->EFlags       = EFL_sig(sigcontext);
> >                              ^
> > signal_i386.c:347:60: error: 'EIP' undeclared (first use in this function)
> >  #define EIP_sig(context)     ((context)->uc_mcontext.gregs[EIP])
> >                                                             ^
> > signal_i386.c:1116:29: note: in expansion of macro 'EIP_sig'
> >      context->Eip          = EIP_sig(sigcontext);
> >                              ^
> > signal_i386.c:353:60: error: 'ESP' undeclared (first use in this function)
> >  #define ESP_sig(context)     ((context)->uc_mcontext.gregs[ESP])
> >                                                             ^
> > signal_i386.c:1117:29: note: in expansion of macro 'ESP_sig'
> >      context->Esp          = ESP_sig(sigcontext);
> >                              ^
> > In file included from signal_i386.c:60:0:
> > signal_i386.c:337:60: error: 'CS' undeclared (first use in this function)
> >  #define CS_sig(context)      ((context)->uc_mcontext.gregs[CS])
> >                                                             ^
> > signal_i386.c:1118:29: note: in expansion of macro 'LOWORD'
> >      context->SegCs        = LOWORD(CS_sig(sigcontext));
> >                              ^
> > signal_i386.c:1118:36: note: in expansion of macro 'CS_sig'
> >      context->SegCs        = LOWORD(CS_sig(sigcontext));
> >                                     ^
> > signal_i386.c:338:60: error: 'DS' undeclared (first use in this function)
> >  #define DS_sig(context)      ((context)->uc_mcontext.gregs[DS])
> >                                                             ^
> > ../../include/windef.h:337:52: note: in definition of macro 'LOWORD'
> >  #define LOWORD(l)              ((WORD)((DWORD_PTR)(l) & 0xFFFF))
> >                                                     ^
> > signal_i386.c:1119:36: note: in expansion of macro 'DS_sig'
> >      context->SegDs        = LOWORD(DS_sig(sigcontext));
> >                                     ^
> > signal_i386.c:339:60: error: 'ES' undeclared (first use in this function)
> >  #define ES_sig(context)      ((context)->uc_mcontext.gregs[ES])
> >                                                             ^
> > ../../include/windef.h:337:52: note: in definition of macro 'LOWORD'
> >  #define LOWORD(l)              ((WORD)((DWORD_PTR)(l) & 0xFFFF))
> >                                                     ^
> > signal_i386.c:1120:36: note: in expansion of macro 'ES_sig'
> >      context->SegEs        = LOWORD(ES_sig(sigcontext));
> >                                     ^
> > signal_i386.c:340:60: error: 'SS' undeclared (first use in this function)
> >  #define SS_sig(context)      ((context)->uc_mcontext.gregs[SS])
> >                                                             ^
> > ../../include/windef.h:337:52: note: in definition of macro 'LOWORD'
> >  #define LOWORD(l)              ((WORD)((DWORD_PTR)(l) & 0xFFFF))
> >                                                     ^
> > signal_i386.c:1123:36: note: in expansion of macro 'SS_sig'
> >      context->SegSs        = LOWORD(SS_sig(sigcontext));
> >                                     ^
> > signal_i386.c: In function 'restore_context':
> > signal_i386.c:329:60: error: 'EAX' undeclared (first use in this function)
> >  #define EAX_sig(context)     ((context)->uc_mcontext.gregs[EAX])
> >                                                             ^
> > signal_i386.c:1164:5: note: in expansion of macro 'EAX_sig'
> >      EAX_sig(sigcontext) = context->Eax;
> >      ^
> > signal_i386.c:330:60: error: 'EBX' undeclared (first use in this function)
> >  #define EBX_sig(context)     ((context)->uc_mcontext.gregs[EBX])
> >                                                             ^
> > signal_i386.c:1165:5: note: in expansion of macro 'EBX_sig'
> >      EBX_sig(sigcontext) = context->Ebx;
> >      ^
> > signal_i386.c:331:60: error: 'ECX' undeclared (first use in this function)
> >  #define ECX_sig(context)     ((context)->uc_mcontext.gregs[ECX])
> >                                                             ^
> > signal_i386.c:1166:5: note: in expansion of macro 'ECX_sig'
> >      ECX_sig(sigcontext) = context->Ecx;
> >      ^
> > signal_i386.c:332:60: error: 'EDX' undeclared (first use in this function)
> >  #define EDX_sig(context)     ((context)->uc_mcontext.gregs[EDX])
> >                                                             ^
> > signal_i386.c:1167:5: note: in expansion of macro 'EDX_sig'
> >      EDX_sig(sigcontext) = context->Edx;
> >      ^
> > signal_i386.c:333:60: error: 'ESI' undeclared (first use in this function)
> >  #define ESI_sig(context)     ((context)->uc_mcontext.gregs[ESI])
> >                                                             ^
> > signal_i386.c:1168:5: note: in expansion of macro 'ESI_sig'
> >      ESI_sig(sigcontext) = context->Esi;
> >      ^
> > signal_i386.c:334:60: error: 'EDI' undeclared (first use in this function)
> >  #define EDI_sig(context)     ((context)->uc_mcontext.gregs[EDI])
> >                                                             ^
> > signal_i386.c:1169:5: note: in expansion of macro 'EDI_sig'
> >      EDI_sig(sigcontext) = context->Edi;
> >      ^
> > signal_i386.c:335:60: error: 'EBP' undeclared (first use in this function)
> >  #define EBP_sig(context)     ((context)->uc_mcontext.gregs[EBP])
> >                                                             ^
> > signal_i386.c:1170:5: note: in expansion of macro 'EBP_sig'
> >      EBP_sig(sigcontext) = context->Ebp;
> >      ^
> > signal_i386.c:345:60: error: 'EFL' undeclared (first use in this function)
> >  #define EFL_sig(context)     ((context)->uc_mcontext.gregs[EFL])
> >                                                             ^
> > signal_i386.c:1171:5: note: in expansion of macro 'EFL_sig'
> >      EFL_sig(sigcontext) = context->EFlags;
> >      ^
> > signal_i386.c:347:60: error: 'EIP' undeclared (first use in this function)
> >  #define EIP_sig(context)     ((context)->uc_mcontext.gregs[EIP])
> >                                                             ^
> > signal_i386.c:1172:5: note: in expansion of macro 'EIP_sig'
> >      EIP_sig(sigcontext) = context->Eip;
> >      ^
> > signal_i386.c:353:60: error: 'ESP' undeclared (first use in this function)
> >  #define ESP_sig(context)     ((context)->uc_mcontext.gregs[ESP])
> >                                                             ^
> > signal_i386.c:1173:5: note: in expansion of macro 'ESP_sig'
> >      ESP_sig(sigcontext) = context->Esp;
> >      ^
> > signal_i386.c:337:60: error: 'CS' undeclared (first use in this function)
> >  #define CS_sig(context)      ((context)->uc_mcontext.gregs[CS])
> >                                                             ^
> > signal_i386.c:1174:5: note: in expansion of macro 'CS_sig'
> >      CS_sig(sigcontext)  = context->SegCs;
> >      ^
> > signal_i386.c:338:60: error: 'DS' undeclared (first use in this function)
> >  #define DS_sig(context)      ((context)->uc_mcontext.gregs[DS])
> >                                                             ^
> > signal_i386.c:1175:5: note: in expansion of macro 'DS_sig'
> >      DS_sig(sigcontext)  = context->SegDs;
> >      ^
> > signal_i386.c:339:60: error: 'ES' undeclared (first use in this function)
> >  #define ES_sig(context)      ((context)->uc_mcontext.gregs[ES])
> >                                                             ^
> > signal_i386.c:1176:5: note: in expansion of macro 'ES_sig'
> >      ES_sig(sigcontext)  = context->SegEs;
> >      ^
> > signal_i386.c:340:60: error: 'SS' undeclared (first use in this function)
> >  #define SS_sig(context)      ((context)->uc_mcontext.gregs[SS])
> >                                                             ^
> > signal_i386.c:1177:5: note: in expansion of macro 'SS_sig'
> >      SS_sig(sigcontext)  = context->SegSs;
> >      ^
> > signal_i386.c:343:60: error: 'GS' undeclared (first use in this function)
> >  #define GS_sig(context)      ((context)->uc_mcontext.gregs[GS])
> >                                                             ^
> > signal_i386.c:1179:5: note: in expansion of macro 'GS_sig'
> >      GS_sig(sigcontext)  = context->SegGs;
> >      ^
> > signal_i386.c:342:60: error: 'FS' undeclared (first use in this function)
> >  #define FS_sig(context)      ((context)->uc_mcontext.gregs[FS])
> >                                                             ^
> > signal_i386.c:1184:5: note: in expansion of macro 'FS_sig'
> >      FS_sig(sigcontext)  = context->SegFs;
> >      ^
> > In file included from signal_i386.c:64:0:
> > signal_i386.c: In function 'setup_exception_record':
> > signal_i386.c:347:60: error: 'EIP' undeclared (first use in this function)
> >  #define EIP_sig(context)     ((context)->uc_mcontext.gregs[EIP])
> >                                                             ^
> > ../../include/wine/debug.h:91:49: note: in definition of macro '__WINE_DBG_LOG'
> >      wine_dbg_log( __dbcl, __dbch, __FUNCTION__, args); } } while(0)
> >                                                  ^
> > signal_i386.c:1775:56: note: in expansion of macro 'EIP_sig'
> >                    GetCurrentThreadId(), (unsigned int) EIP_sig(sigcontext),
> >                                                         ^
> > signal_i386.c:353:60: error: 'ESP' undeclared (first use in this function)
> >  #define ESP_sig(context)     ((context)->uc_mcontext.gregs[ESP])
> >                                                             ^
> > ../../include/wine/debug.h:91:49: note: in definition of macro '__WINE_DBG_LOG'
> >      wine_dbg_log( __dbcl, __dbch, __FUNCTION__, args); } } while(0)
> >                                                  ^
> > signal_i386.c:1776:34: note: in expansion of macro 'ESP_sig'
> >                    (unsigned int) ESP_sig(sigcontext), NtCurrentTeb()->Tib.StackLimit,
> >                                   ^
> > signal_i386.c:345:60: error: 'EFL' undeclared (first use in this function)
> >  #define EFL_sig(context)     ((context)->uc_mcontext.gregs[EFL])
> >                                                             ^
> > signal_i386.c:1837:5: note: in expansion of macro 'EFL_sig'
> >      EFL_sig(sigcontext) &= ~(0x100|0x400|0x40000);
> >      ^
> > signal_i386.c:337:60: error: 'CS' undeclared (first use in this function)
> >  #define CS_sig(context)      ((context)->uc_mcontext.gregs[CS])
> >                                                             ^
> > signal_i386.c:1838:5: note: in expansion of macro 'CS_sig'
> >      CS_sig(sigcontext)  = wine_get_cs();
> >      ^
> > signal_i386.c:338:60: error: 'DS' undeclared (first use in this function)
> >  #define DS_sig(context)      ((context)->uc_mcontext.gregs[DS])
> >                                                             ^
> > signal_i386.c:1839:5: note: in expansion of macro 'DS_sig'
> >      DS_sig(sigcontext)  = wine_get_ds();
> >      ^
> > signal_i386.c:339:60: error: 'ES' undeclared (first use in this function)
> >  #define ES_sig(context)      ((context)->uc_mcontext.gregs[ES])
> >                                                             ^
> > signal_i386.c:1840:5: note: in expansion of macro 'ES_sig'
> >      ES_sig(sigcontext)  = wine_get_es();
> >      ^
> > signal_i386.c:342:60: error: 'FS' undeclared (first use in this function)
> >  #define FS_sig(context)      ((context)->uc_mcontext.gregs[FS])
> >                                                             ^
> > signal_i386.c:1841:5: note: in expansion of macro 'FS_sig'
> >      FS_sig(sigcontext)  = wine_get_fs();
> >      ^
> > signal_i386.c:343:60: error: 'GS' undeclared (first use in this function)
> >  #define GS_sig(context)      ((context)->uc_mcontext.gregs[GS])
> >                                                             ^
> > signal_i386.c:1842:5: note: in expansion of macro 'GS_sig'
> >      GS_sig(sigcontext)  = wine_get_gs();
> >      ^
> > signal_i386.c:340:60: error: 'SS' undeclared (first use in this function)
> >  #define SS_sig(context)      ((context)->uc_mcontext.gregs[SS])
> >                                                             ^
> > signal_i386.c:1843:5: note: in expansion of macro 'SS_sig'
> >      SS_sig(sigcontext)  = wine_get_ss();
> >      ^
> > signal_i386.c: In function 'init_handler':
> > signal_i386.c:996:1: warning: control reaches end of non-void function [-Wreturn-type]
> >  }
> >  ^
> > Makefile:596: recipe for target 'signal_i386.o' failed
> > gmake[1]: *** [signal_i386.o] Error 1
> > gmake[1]: Leaving directory '/home/franck/tmp/wine-1.9.10/dlls/ntdll'
> > Makefile:12228: recipe for target 'dlls/ntdll' failed
> > gmake: *** [dlls/ntdll] Error 2
> > 
> > 
> > If anyone have an idea, it would be great.
> > 
> > Best regards.
> > Ben
> > 
> > _______________________________________________
> > oi-dev mailing list
> > oi-dev at openindiana.org
> > http://openindiana.org/mailman/listinfo/oi-dev
> >
> 
> -- 
> Thanks for sailing Jolla :)
> _______________________________________________
> oi-dev mailing list
> oi-dev at openindiana.org
> http://openindiana.org/mailman/listinfo/oi-dev
> 

-- 
-- 
Thomas Wagner

------------------------------------------------------------------------
Service rund um UNIX(TM),     Wagner Network Services, Thomas Wagner
Solaris(TM), Linux(TM)        Eschenweg 21, 89174 Altheim, Germany
Novell(TM), Windows(TM)       TEL: +49-731-9807799, FAX: +49-731-9807711
Telekommunikation, LAN,       MOBILE/CELL: +49-171-6135989
Internet-Service, Elektronik  EMAIL: wagner at wagner-net.com




More information about the oi-dev mailing list