"winecfg" and "wineserver" commands are missing

Questions about Wine on Linux
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

"winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

Hello,

I am trying to build wine on Slackware64:

Code: Select all

$ mkdir wine64-build
$ cd wine64-build
$ CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../configure --prefix=/usr --enable-win64
[...]
config.status: executing Makefile commands

configure: OpenCL development files not found, OpenCL won't be supported.
configure: libhal development files not found, no legacy dynamic device support.
configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.
configure: libcapi20 development files not found, ISDN won't be supported.
configure: libgsm development files not found, gsm 06.10 codec won't be supported.

configure: Finished.  Do 'make' to compile Wine.
$ make
[...]
make[1]: Leaving directory '/tmp/build/wine/wine-1.8.1/wine64-build/server'
Wine build complete.

$ cd ..
$ mkdir wine32-build
$ cd wine32-build
$ CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --with-wine64=../wine64-build --with-alsa --without-capi --with-cms --with-coreaudio --without-cups --with-curses --with-dbus --with-fontconfig --with-freetype --with-gettext --without-gettextpo --without-gphoto --with-glu --with-gnutls --without-gsm --without-gstreamer --without-hal --with-jpeg --without-ldap --without-mpg123 --with-netapi --without-openal --without-opencl --with-opengl --with-osmesa --with-oss --with-pcap --with-png --with-pthread --without-pulse --without-sane --without-tiff --with-v4l --with-xcomposite --with-xcursor --with-xinerama --with-xinput --with-xinput2 --with-xml --with-xrandr --with-xrender --with-xshape --with-xshm --with-xslt --with-xxf86vm --with-zlib --with-x
[...]
config.status: executing Makefile commands

configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.
configure: openal-soft 32-bit development files not found (or too old), XAudio2 won't be supported

configure: WARNING: No sound system was found. Windows applications will be silent.

configure: Finished.  Do 'make' to compile Wine.

$ make install DESTDIR=/tmp/wine-1.8.1
After that, my "winecfg" and "wineserver" commands are missing.
In fact, I only have the "wine" and "wine-preloader" binaries.

Can you help me please?

Thank you.
Best regards.
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: "winecfg" and "wineserver" commands are missing

Post by Bob Wya »

YuGiOhJCJ wrote:Hello,

I am trying to build wine on Slackware64:

Code: Select all

...
configure: Finished.  Do 'make' to compile Wine.

$ make install DESTDIR=/tmp/wine-1.8.1
After that, my "winecfg" and "wineserver" commands are missing.
In fact, I only have the "wine" and "wine-preloader" binaries.
...
Question...
From my Gentoo install:

Code: Select all

file /usr/bin/wine*

wine:             ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, stripped
wine64:           ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, stripped
wine64-preloader: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
wineboot:         POSIX shell script, ASCII text executable
winebuild:        ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, stripped
winecfg:          POSIX shell script, ASCII text executable
wineconsole:      POSIX shell script, ASCII text executable
winecpp:          symbolic link to winegcc
winedbg:          POSIX shell script, ASCII text executable
winefile:         POSIX shell script, ASCII text executable
wineg++:          symbolic link to winegcc
winegcc:          ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, stripped
winemine:         POSIX shell script, ASCII text executable
winepath:         POSIX shell script, ASCII text executable
wine-preloader:   ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped
wineserver:       ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, stripped
winetricks:       POSIX shell script, UTF-8 Unicode text executable
winetricks.new:   POSIX shell script, UTF-8 Unicode text executable
winewizard:       ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, stripped
Spot the bits you're missing from that list!!

Answer...
I think you are missing (right at the end of your build process):

Code: Select all

cd ../wine64-build
make install DESTDIR=/tmp/wine-1.8.1
to install the 64-bit Wine component. You're merely installing the 32-bit components of Wine at present!!

The build step for the multilib 32-bit Wine only links it against the 64-bit components.

Bob
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

Re: "winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

You have right I only had 32-bit binaries installed (wine and wine-preloader).
I forgot the following step:

Code: Select all

cd ../wine64-build
make install DESTDIR=/tmp/wine-1.8.1
Now I have all 64-bit binaries installed too (including winecfg and wineserver).

But I am unable to run my applications through wine:

Code: Select all

$ wine ggpofba-ng.exe 
preloader: Warning: failed to reserve range 00010000-00110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x7de214b4
$ wine Pokemon\ Trading\ Card\ Game\ Online
preloader: Warning: failed to reserve range 00010000-00110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:system:SetProcessDPIAware stub!
Mono path[0] = 'C:/users/yugiohjcj/Application Data/Pokémon Trading Card Game Online/PokemonTradingCardGameOnline/Pokemon Trading Card Game Online_Data/Managed'
Mono path[1] = 'C:/users/yugiohjcj/Application Data/Pokémon Trading Card Game Online/PokemonTradingCardGameOnline/Pokemon Trading Card Game Online_Data/Mono'
Mono config path = 'C:/users/yugiohjcj/Application Data/Pokémon Trading Card Game Online/PokemonTradingCardGameOnline/Pokemon Trading Card Game Online_Data/Mono/etc'
fixme:win:EnumDisplayDevicesW ((null),0,0x32f488,0x00000000), stub!
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x32f488,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x32f488,0x00000000), stub!
Crash!!!
SymInit: Symbol-SearchPath: '.;C:\users\yugiohjcj\Application Data\PokΘmon Trading Card Game Online\PokemonTradingCardGameOnline;C:\users\yugiohjcj\Application Data\PokΘmon Trading Card Game Online\PokemonTradingCardGameOnline;C:\windows;C:\windows\system32;SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols;', symOptions: 530, UserName: 'yugiohjcj'
OS-Version: 6.3.9600 ( ) 0x0-0x1
C:\users\yugiohjcj\Application Data\PokΘmon Trading Card Game Online\PokemonTradingCardGameOnline\Pokemon Trading Card Game Online.exe:Pokemon Trading Card Game Online.exe (00400000), size: 17620992 (result: 0), SymType: '-nosymbols-', PDB: 'C:\users\yugiohjcj\Application Data\PokΘmon Trading Card Game Online\PokemonTradingCardGameOnline\Pokemon Trading Card Game Online.exe', fileVersion: 5.3.4.41864
C:\windows\system32\ntdll.dll:ntdll.dll (7BC10000), size: 909312 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\ntdll.dll', fileVersion: 5.1.2600.2180
C:\windows\system32\KERNEL32.dll:KERNEL32.dll (7B810000), size: 2433024 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\KERNEL32.dll', fileVersion: 5.1.2600.2180
C:\windows\system32\hid.dll:hid.dll (7EFF0000), size: 65536 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\hid.dll', fileVersion: 10.0.0.0
C:\windows\system32\gdi32.dll:gdi32.dll (7ECC0000), size: 1056768 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\gdi32.dll', fileVersion: 10.0.0.0
C:\windows\system32\advapi32.dll:advapi32.dll (7EC40000), size: 434176 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\advapi32.dll', fileVersion: 5.1.2600.2180
C:\windows\system32\user32.dll:user32.dll (7EB00000), size: 1269760 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\user32.dll', fileVersion: 5.1.2600.2180
C:\windows\system32\version.dll:version.dll (7EFD0000), size: 102400 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\version.dll', fileVersion: 5.1.2600.2180
C:\windows\system32\ws2_32.dll:ws2_32.dll (7EAC0000), size: 167936 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\ws2_32.dll', fileVersion: 5.1.2600.5512
C:\windows\system32\ole32.dll:ole32.dll (7E990000), size: 1183744 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\ole32.dll', fileVersion: 10.0.0.0
C:\windows\system32\rpcrt4.dll:rpcrt4.dll (7E910000), size: 446464 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\rpcrt4.dll', fileVersion: 5.1.2600.2180
C:\windows\system32\shlwapi.dll:shlwapi.dll (7E8A0000), size: 385024 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\shlwapi.dll', fileVersion: 6.0.2800.1692
C:\windows\system32\shell32.dll:shell32.dll (7E660000), size: 2260992 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\shell32.dll', fileVersion: 6.0.2900.6242
C:\windows\system32\opengl32.dll:opengl32.dll (7A820000), size: 1114112 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\opengl32.dll', fileVersion: 5.1.2600.2082
C:\windows\system32\winmm.dll:winmm.dll (7E5A0000), size: 712704 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\winmm.dll'
C:\windows\system32\msacm32.dll:msacm32.dll (7E570000), size: 155648 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\msacm32.dll'
C:\windows\system32\oleaut32.dll:oleaut32.dll (7E450000), size: 1163264 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\oleaut32.dll', fileVersion: 6.0.6001.18000
C:\windows\system32\imm32.dll:imm32.dll (7E420000), size: 122880 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\imm32.dll', fileVersion: 5.1.2600.2180
C:\windows\system32\dnsapi.dll:dnsapi.dll (7E400000), size: 106496 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\dnsapi.dll', fileVersion: 5.2.3790.4318
C:\windows\system32\netapi32.dll:netapi32.dll (7E380000), size: 184320 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\netapi32.dll'
C:\windows\system32\iphlpapi.dll:iphlpapi.dll (7E360000), size: 122880 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\iphlpapi.dll', fileVersion: 5.1.2600.2180
C:\windows\system32\winhttp.dll:winhttp.dll (7E320000), size: 217088 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\winhttp.dll', fileVersion: 5.1.2600.2180
C:\windows\system32\jsproxy.dll:jsproxy.dll (7E3E0000), size: 106496 (result: 0), SymType: 'DIA', PDB: 'C:\windows\system32\jsproxy.dll'
C:\users\yugiohjcj\Application Data\PokΘmon Trading Card Game Online\PokemonTradingCardGameOnline\Pokemon Trading Card Game Online_Data\Mono\mono.dll:mono.dll (10000000), size: 2293760 (result: 0), SymType: '-nosymbols-', PDB: 'C:\users\yugiohjcj\Application Data\PokΘmon Trading Card Game Online\PokemonTradingCardGameOnline\Pokemon Trading Card Game Online_Data\Mono\mono.dll', fileVersion: 1.0.0.1
fixme:dbghelp:validate_addr64 Unsupported address fffffffff7550000
C:\windows\system32\psapi.dll:psapi.dll (F7550000), size: 65536 (result: 87), SymType: '-unknown-', PDB: '', fileVersion: 5.1.2600.3264
fixme:dbghelp:validate_addr64 Unsupported address fffffffff7360000
C:\windows\system32\mswsock.dll:mswsock.dll (F7360000), size: 77824 (result: 87), SymType: '-unknown-', PDB: '', fileVersion: 4.0.0.0
fixme:dbghelp:validate_addr64 Unsupported address fffffffff72e0000
C:\windows\system32\winex11.drv:winex11.drv (F72E0000), size: 516096 (result: 87), SymType: '-unknown-', PDB: '', fileVersion: 10.0.0.0
fixme:dbghelp:validate_addr64 Unsupported address fffffffff7050000
C:\windows\system32\dbghelp.dll:dbghelp.dll (F7050000), size: 397312 (result: 87), SymType: '-unknown-', PDB: '', fileVersion: 6.1.7601.17514
fixme:dbghelp:validate_addr64 Unsupported address fffffffff6960000
C:\windows\system32\msvcrt.dll:msvcrt.dll (F6960000), size: 643072 (result: 87), SymType: '-unknown-', PDB: '', fileVersion: 7.0.2600.2180

========== OUTPUTING STACK TRACE ==================


========== END OF STACKTRACE ===========

**** Crash! ****
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x7e1314b4
Any idea why please?
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: "winecfg" and "wineserver" commands are missing

Post by Bob Wya »

YuGiOhJCJ wrote:
But I am unable to run my applications through wine:

Code: Select all

$ wine ggpofba-ng.exe
...
I would recommend using the wine you've just built, with a simple test:

Code: Select all

cd /tmp/wine-1.8.1/usr/bin
./wine winecfg
winecfg is a wrapped Windows PE executable:

Code: Select all

file /usr/lib32/wine/fakedlls/winecfg.exe
/usr/lib32/wine/fakedlls/winecfg.exe: PE32 executable (GUI) Intel 80386, for MS Windows
Don't be stupid. Use a simple test case to make sure your Source build of Wine is working - first - then start trying more complex stuff!! 8)

Bob
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

Re: "winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

Yes, I forgot to mentioned that I have already tested:

Code: Select all

$ cd /tmp/wine-1.8.1/usr/bin/
$ ./wine winecfg
and it works fine.

Also, I have not mentioned that I have already created and installed a package for Slackware64 from the /tmp/wine-1.8.1 directory.
So, now I can do the same thing than above directly like that:

Code: Select all

$ wine winecfg
and again, it works.

The only problem I have is when I try to run a program that is not part of wine (see the two examples in my previous message).

So, why it works with winecfg and not with other programs please?
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: "winecfg" and "wineserver" commands are missing

Post by Bob Wya »

See Linux Questions: "DOS support unavailable" ... It's probably just the default Slackware policy that's blocking the preloader (I suspect).

Bob
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

Re: "winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

Indeed, I did:

Code: Select all

$ sudo sysctl vm.mmap_min_addr=0
And now I have:

Code: Select all

$ wine ggpofba-ng.exe 
fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x7ddc14b4
I can give you the backtrace:

Code: Select all

$ wine winedbg ggpofba-ng.exe 
WineDbg starting on pid 0025
fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
0x7b85cff0 start_process+0x50 in kernel32: subl	$8,%esp
Wine-dbg>set $BreakOnFirstChance=0 
Wine-dbg>cont
Unhandled exception: page fault on read access to 0x00000048 in 32-bit code (0x7de724b4).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:7de724b4 ESP:0033ce1c EBP:7d8730f0 EFLAGS:00010216(  R- --  I   -A-P- )
 EAX:00000000 EBX:7dfd8000 ECX:00000000 EDX:7dfa6500
 ESI:7dfa6060 EDI:7dfa65b4
Stack dump:
0x0033ce1c:  7df8faff 00000000 000000ae 00000001
0x0033ce2c:  00002014 00000000 00000449 00000000
0x0033ce3c:  7df81a48 0033ce7c 00002014 0033cefc
0x0033ce4c:  7d8730f0 0033ce7c 0033cefc 7d873850
0x0033ce5c:  7df493c3 7d873850 0033ce7c 000009e2
0x0033ce6c:  7dfa60c0 00000000 00000000 00000000
Backtrace:
=>0 0x7de724b4 hb_font_get_face+0x4() in libharfbuzz.so.0 (0x7d8730f0)
  1 0x7df8faff af_shaper_get_coverage+0x6e() in libfreetype.so.6 (0x7d8730f0)
  2 0x7df90244 af_face_globals_new+0x343() in libfreetype.so.6 (0x7d8730f0)
  3 0x7df90776 af_autofitter_load_glyph+0x415() in libfreetype.so.6 (0x7d8006b0)
  4 0x7df4cca7 FT_Load_Glyph+0x3d6() in libfreetype.so.6 (0x0033eb28)
  5 0x7ebcaa26 get_glyph_outline+0x365() in gdi32 (0x0033ec78)
  6 0x7ebccbc6 freetype_GetTextExtentExPoint+0xa5() in gdi32 (0x0033ecf8)
  7 0x7ebba984 GetTextExtentExPointW.part+0x113() in gdi32 (0x0033f1a8)
  8 0x7ebbbf47 GetTextExtentExPointW+0x46() in gdi32 (0x0033f208)
  9 0x7ebbbf93 GetTextExtentPoint32W+0x32() in gdi32 (0x0033f248)
  10 0x7ebbc177 GetTextExtentPointW+0x66() in gdi32 (0x0033f298)
  11 0x7ebc260e GdiGetCharDimensions+0x4d() in gdi32 (0x0033f2e8)
  12 0x7ecfd37f get_text_metr_size+0x5e() in user32 (0x0033f378)
  13 0x7ecfecb1 GetSystemMetrics+0x590() in user32 (0x0033f5e8)
  14 0x7ecfeef2 GetSystemMetrics+0x7d1() in user32 (0x0033f868)
  15 0x7ed1470a WINPOS_GetMinMaxInfo+0x299() in user32 (0x0033f928)
  16 0x7ed11262 WIN_CreateWindowEx+0xaa1() in user32 (0x0033fa88)
  17 0x7ed0af99 CreateWindowExA+0x108() in user32 (0x0033fce8)
  18 0x004636b4 in ggpofba-ng (+0x636b3) (0x0033fda8)
  19 0x0045cc4d in ggpofba-ng (+0x5cc4c) (0x0033fdb8)
  20 0x004573b8 in ggpofba-ng (+0x573b7) (0x0033fdd0)
  21 0x0077c42f in ggpofba-ng (+0x37c42e) (0x0033fe60)
  22 0x7b85c07c call_process_entry+0xb() in kernel32 (0x0033fe78)
  23 0x7b85cffa start_process+0x59() in kernel32 (0x0033fea8)
  24 0x7bc7eccc call_thread_func_wrapper+0xb() in ntdll (0x0033fec8)
  25 0x7bc81a4f call_thread_func+0xde() in ntdll (0x0033ffa8)
  26 0x7bc7ecaa call_thread_entry_point+0x11() in ntdll (0x0033ffc8)
  27 0x7bc53a77 start_process+0x16() in ntdll (0x0033ffe8)
  28 0xf75e43ad wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
  29 0xf75e4510 wine_switch_to_stack+0x1f() in libwine.so.1 (0xffa10c08)
  30 0x7bc596c1 LdrInitializeThunk+0x1f0() in ntdll (0xffa10c48)
  31 0x7b862c39 __wine_kernel_init+0x888() in kernel32 (0xffa11b38)
  32 0x7bc5a503 __wine_process_init+0x152() in ntdll (0xffa11ba8)
  33 0xf75e1ee3 wine_init+0x2a2() in libwine.so.1 (0xffa11bf8)
  34 0x7bf00e59 main+0x98() in <wine-loader> (0xffa12048)
  35 0xf740d697 __libc_start_main+0x106() in libc.so.6 (0x00000000)
0x7de724b4 hb_font_get_face+0x4 in libharfbuzz.so.0: movl	0x48(%eax),%eax
What is the reason of the error above please?
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

Re: "winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

I see in the backtrace that it is something related to the fonts (freetype and harfbuzz libraries).

In order to check if I can reproduce the problem outside of wine, I wrote a simple code using freetype:

Code: Select all

#include <ft2build.h> /* for FT_Init_FreeType */
#include <stdlib.h> /* for exit */
#include FT_FREETYPE_H
int main()
{
	/* https://www.freetype.org/freetype2/docs/tutorial/step1.html */
	FT_Library library;
	FT_Face face;
	FT_UInt glyph_index;
	int error = FT_Init_FreeType(&library);
	if(error != 0)
	{
		fprintf(stderr, "Unable to create a FreeType library object (error = \"%d\").\n", error);
		exit(EXIT_FAILURE);
	}
	error = FT_New_Face(library, "Arial.TTF", 0, &face);
	if(error != 0)
	{
		fprintf(stderr, "Unable to create a FreeType face object (error = \"%d\").\n", error);
		exit(EXIT_FAILURE);
	}
	error = FT_Set_Char_Size(face, 0, 16*64, 300, 300);
	if(error != 0)
	{
		fprintf(stderr, "Unable to set the character size of a FreeType face object (error = \"%d\").\n", error);
		exit(EXIT_FAILURE);
	}
	glyph_index = FT_Get_Char_Index(face, 0x00041);
	error = FT_Load_Glyph(face, glyph_index, 0);
	if(error != 0)
	{
		fprintf(stderr, "Unable to load the glyph image of a FreeType face object (error = \"%d\").\n", error);
		exit(EXIT_FAILURE);
	}
	error = FT_Done_Face(face);
	if(error != 0)
	{
		fprintf(stderr, "Unable to destroy a FreeType face object (error = \"%d\").\n", error);
		exit(EXIT_FAILURE);
	}
	error = FT_Done_FreeType(library);
	if(error != 0)
	{
		fprintf(stderr, "Unable to destroy a FreeType library object (error = \"%d\").\n", error);
		exit(EXIT_FAILURE);
	}
	exit(EXIT_SUCCESS);
}
Then I built it for 64-bit:

Code: Select all

gcc -std=c89 -pedantic -Wall -Werror `pkg-config freetype2 --cflags --libs` main.c
And I built it for 32-bit too:

Code: Select all

export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
gcc -O2 -m32 -std=c89 -pedantic -Wall -Werror `pkg-config freetype2 --cflags --libs` main.c -o a-32.out
Here are the two binaries:

Code: Select all

$ file *.out
a-32.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, not stripped
a.out:    ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, not stripped
Each binary runs fine:

Code: Select all

$ ./a.out
$ ./a-32.out
So, I guess that the problem comes from the harfbuzz library.

Should I call the hb_font_get_face function in my code to check that?
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: "winecfg" and "wineserver" commands are missing

Post by Bob Wya »

@YuGiOhJCJ,

I'd love to help more... I think you're getting a bit side-tracked. I've very limited experience of using Slackware (I found package management support to be unbearably "medieval" - in my admittedly very brief foray!!)

What's the deal with muiltilib support on Slackware? Are the x86 and amd64 development libraries matched? It's not area I would have a clue about - since I'm not familiar with the distro.

Can you post, on a pastebin(type) site, the complete build logs for your custom build Wine? I suspected there is something simple wrong - like a library mismatch between the abi's or something similar occuring (e.g. a runtime library mismatch)...

Don't run before you can walk... 8) Like I said before you also need to be sensible about how you test your self-built Wine. Start by testing all the builtin programs. Then move on to some basic, freeware Windows utilities, etc.

You're trying to jump in and test games built with the Unity engine, that are subject to update breakages - i.e. not good candidates! I can't get many of these games to run either...

Bob
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

Re: "winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

Well, the Slackware64 distro does not support multilib officially.
In order to be able to build or run 32-bit programs on Slackware64, you need to upgrade the gcc and glibc packages [1].
I did that and now I am able to build 32-bit programs and run them under my 64-bit operating system.

In order to build wine, these are all the packages (dependencies of wine) that I built:
  • 32-cairo-1.14.6-x86_64-20161026180038_ygo
    32-dbus-1.10.8-x86_64-20161030035816_ygo
    32-elfutils-0.163-x86_64-20161014161639_ygo
    32-expat-2.2.0-x86_64-20161010143212_ygo
    32-fontconfig-2.11.1-x86_64-20161010152113_ygo
    32-freetype-2.6.3-x86_64-20161111132914_ygo
    32-glib2-2.50.0-x86_64-20161005213227_ygo
    32-glu-9.0.0-x86_64-20161027214324_ygo
    32-gmp-6.1.1-x86_64-20161101125323_ygo
    32-gnutls-3.4.13-x86_64-20161101141217_ygo
    32-harfbuzz-1.2.7-x86_64-20161026180356_ygo
    32-icu4c-56.1-x86_64-20161009143405_ygo
    32-lcms2-2.7-x86_64-20161023232141_ygo
    32-libdrm-2.4.68-x86_64-20161015150909_ygo
    32-libffi-3.2.1-x86_64-20161005211655_ygo
    32-libgcrypt-1.7.1-x86_64-20161014143644_ygo
    32-libgpg-error-1.23-x86_64-20161014143326_ygo
    32-libidn-1.30-x86_64-20161101130552_ygo
    32-libjpeg-turbo-1.5.0-x86_64-20161101170949_ygo
    32-libpcap-1.7.4-x86_64-20161029190803_ygo
    32-libpciaccess-0.13.4-x86_64-20161015150503_ygo
    32-libpng-1.6.25-x86_64-20161005210400_ygo
    32-libtasn1-4.8-x86_64-20161101134631_ygo
    32-libX11-1.6.3-x86_64-20161004190739_ygo
    32-libXau-1.0.8-x86_64-20161004180011_ygo
    32-libxcb-1.11.1-x86_64-20161004180155_ygo
    32-libXcomposite-0.4.4-x86_64-20161027211055_ygo
    32-libXcursor-1.1.14-x86_64-20161026213344_ygo
    32-libXdamage-1.1.4-x86_64-20161016001626_ygo
    32-libXext-1.3.3-x86_64-20161009144922_ygo
    32-libXfixes-5.0.2-x86_64-20161016001426_ygo
    32-libXi-1.7.6-x86_64-20161026215928_ygo
    32-libXinerama-1.1.3-x86_64-20161027190134_ygo
    32-libxml2-2.9.4-x86_64-20161029202811_ygo
    32-libXrandr-1.5.0-x86_64-20161027182848_ygo
    32-libXrender-0.9.9-x86_64-20161009150744_ygo
    32-libxshmfence-1.2-x86_64-20161015205434_ygo
    32-libxslt-1.1.29-x86_64-20161029204632_ygo
    32-libXxf86vm-1.1.4-x86_64-20161015213413_ygo
    32-llvm-3.8.0-x86_64-20161018155045_ygo
    32-mesa-11.2.2-x86_64-20161022161423_ygo
    32-ncurses-5.9-x86_64-20161101151130_ygo
    32-nettle-3.2-x86_64-20161101140918_ygo
    32-nss-3.23-x86_64-20161024142203_ygo
    32-openjpeg-2.1-x86_64-20161025210617_ygo
    32-p11-kit-0.23.2-x86_64-20161101135221_ygo
    32-pcre-8.39-x86_64-20161005211215_ygo
    32-pixman-0.34.0-x86_64-20161009151531_ygo
    32-sqlite-3.13.0-x86_64-20161024135129_ygo
    32-util-linux-2.27.1-x86_64-20161005213016_ygo
    32-v4l-utils-1.10.1-x86_64-20161101180647_ygo
    32-xz-5.2.2-x86_64-20161029202107_ygo
    32-zlib-1.2.8-x86_64-20161005210138_ygo
That was a hard job (53 packages to build!).
After that, I was able to build the wine package:
  • wine-1.8.1-x86_64-20161105023416_ygo
If you want to know how I built all of these packages, I am using a different script for each of them.
Here is the content of each one:

Code: Select all

$ cat `find . -name "32-*.sh" | sort`
set -e
NAME="32-cairo"
VERSION="1.14.6"
DIR="cairo-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.xz
patch -p0 < ${NAME}-${VERSION}.patch
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-tee --enable-gl --enable-egl \
	ac_cv_func_XRenderCreateLinearGradient=yes \
	ac_cv_func_XRenderCreateRadialGradient=yes \
	ac_cv_func_XRenderCreateConicalGradient=yes
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-dbus"
VERSION="1.10.8"
DIR="dbus-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/etc
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/libexec
rm -rfv ${DESTDIR}/usr/share
rm -rfv ${DESTDIR}/usr/var
cd -
rm -rfv ${DIR}
set -e
NAME="32-elfutils"
VERSION="0.163"
DIR="elfutils-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
patch -p1 < ../elfutils-portability-${VERSION}.patch
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --program-prefix="eu-"
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-expat"
VERSION="2.2.0"
DIR="expat-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-fontconfig"
VERSION="2.11.1"
DIR="fontconfig-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-freetype"
VERSION="2.6.3"
DIR="freetype-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
patch -p0 < ${NAME}-${VERSION}.patch
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --with-harfbuzz -disable-static
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-glib2"
VERSION="2.50.0"
DIR="glib-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.xz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --with-pcre=system --disable-fam
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-glu"
VERSION="9.0.0"
DIR="glu-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-gmp"
VERSION="6.1.1"
DIR="gmp-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.lz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
ABI="32" CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-gnutls"
VERSION="3.4.13"
DIR="gnutls-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.xz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-harfbuzz"
VERSION="1.2.7"
DIR="harfbuzz-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
#CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --without-freetype
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --with-freetype
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-icu4c"
VERSION="56.1"
DIR="icu"
DESTDIR="/tmp/${NAME}-${VERSION}"
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
export CC="gcc -m32"
export CXX="g++ -m32"
tar xvf icu4c-56_1-src.tgz
mkdir -pv ${DIR}/source/build
cd ${DIR}/source/build
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ../configure --prefix=/usr --bindir=/usr/bin32 --sbindir=/usr/sbin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-lcms2"
VERSION="2.7"
DIR="lcms2-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libdrm"
VERSION="2.4.68"
DIR="libdrm-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-cairo-tests
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libffi"
VERSION="3.2.1"
DIR="libffi-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libgcrypt"
VERSION="1.7.1"
DIR="libgcrypt-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --disable-padlock-support --enable-shared --disable-asm
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libgpg-error"
VERSION="1.23"
DIR="libgpg-error-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libidn"
VERSION="1.30"
DIR="libidn-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libjpeg-turbo"
VERSION="1.5.0"
DIR="libjpeg-turbo-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libpcap"
VERSION="1.7.4"
DIR="libpcap-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared --disable-bluetooth
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libpciaccess"
VERSION="0.13.4"
DIR="libpciaccess-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libpng"
VERSION="1.6.25"
DIR="libpng-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.xz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libtasn1"
VERSION="4.8"
DIR="libtasn1-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libX11"
VERSION="1.6.3"
DIR="libX11-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-specs
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libXau"
VERSION="1.0.8"
DIR="libXau-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libxcb"
VERSION="1.11.1"
DIR="libxcb-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libXcomposite"
VERSION="0.4.4"
DIR="libXcomposite-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libXcursor"
VERSION="1.1.14"
DIR="libXcursor-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libXdamage"
VERSION="1.1.4"
DIR="libXdamage-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libXext"
VERSION="1.3.3"
DIR="libXext-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libXfixes"
VERSION="5.0.2"
DIR="libXfixes-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libXi"
VERSION="1.7.6"
DIR="libXi-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libXinerama"
VERSION="1.1.3"
DIR="libXinerama-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libxml2"
VERSION="2.9.4"
DIR="libxml2-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared --without-python
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libXrandr"
VERSION="1.5.0"
DIR="libXrandr-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libXrender"
VERSION="0.9.9"
DIR="libXrender-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libxshmfence"
VERSION="1.2"
DIR="libxshmfence-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libxslt"
VERSION="1.1.29"
DIR="libxslt-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared --without-python
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-libXxf86vm"
VERSION="1.1.4"
DIR="libXxf86vm-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-llvm"
VERSION="3.8.0"
DIR="llvm-${VERSION}.src"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.xz
mkdir -pv ${DIR}/build
cd ${DIR}/build
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
cmake -DCMAKE_BUILD_TYPE=Release \
	-DCMAKE_INSTALL_PREFIX=/usr \
	-DLLVM_LIBDIR_SUFFIX="" \
	-DCMAKE_C_FLAGS:STRING=-m32 \
	-DCMAKE_CXX_FLAGS:STRING=-m32 \
	-DLLVM_TARGET_ARCH:STRING=i686 \
	-DLLVM_DEFAULT_TARGET_TRIPLE="i686-pc-linux-gnu" \
	-DLLVM_BUILD_LLVM_DYLIB=ON \
	-DLLVM_DYLIB_EXPORT_ALL=ON \
	-DLLVM_LINK_LLVM_DYLIB=ON \
	-DLLVM_ENABLE_RTTI=ON \
	-DLLVM_ENABLE_FFI=ON \
	-DLLVM_BUILD_DOCS=OFF \
	-DLLVM_ENABLE_SPHINX=OFF \
	-DLLVM_ENABLE_DOXYGEN=OFF \
	-DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \
	-DLLVM_BINUTILS_INCDIR=/usr/include \
	-DLLVM_TOOLS_BINARY_DIR=/usr/bin32 \
	..
make VERBOSE=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-mesa"
VERSION="11.2.2"
DIR="mesa-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.xz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" LLVM_LDFLAGS="/usr/lib" LLVM_CONFIG="/usr/bin32/llvm-config" ./configure --build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu --libdir=/usr/lib --prefix=/usr --sysconfdir=/etc --with-dri-driverdir=/usr/lib/xorg/modules/dri --with-gallium-drivers=r300,r600,nouveau,swrast,virgl --with-dri-drivers=i915,i965,r200,radeon,nouveau,swrast --with-egl-platforms=x11,drm --with-sha1=libgcrypt --disable-xvmc --enable-gallium-llvm --enable-llvm-shared-libs --enable-shared-glapi --enable-glx-tls --enable-egl --enable-glx --enable-gles1 --enable-gles2 --enable-gbm --enable-dri --enable-osmesa --enable-texture-float --enable-nine --enable-vdpau --with-llvm-prefix="/usr/bin32/llvm-config"
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/etc
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-ncurses"
VERSION="5.9"
DIR="ncurses-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cp ${DIR}-*-patch.sh.bz2 ${DIR}
cd ${DIR}
bunzip2 -fv ${DIR}-*-patch.sh.bz2
bash ${DIR}-*-patch.sh
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --without-gpm --with-shared --with-normal --without-debug --without-ada --enable-ext-mouse
make V=1
make install DESTDIR=${DESTDIR}
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --without-gpm --with-shared --with-normal --without-debug --without-ada --enable-widec --enable-ext-colors --enable-ext-mouse
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
rm -rfv ${DESTDIR}/home
cd -
rm -rfv ${DIR}
set -e
NAME="32-nettle"
VERSION="3.2"
DIR="nettle-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/etc
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-nss"
VERSION="3.23"
DIR="nss-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf nss-${VERSION}-with-nspr-4.12.tar.gz
cd ${DIR}/nss
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
export LDFLAGS="-lz"
export CFLAGS="-O2 -m32"
export CXXFLAGS="-O2 -m32"
export LDFLAGS="-O2 -m32"
export BUILD_OPT=1
export NSDISTMODE="copy"
export NSS_USE_SYSTEM_SQLITE=1
export NSS_ENABLE_ECC=1
make nss_build_all export
mkdir -vp ${DESTDIR}/usr/bin32
mkdir -vp ${DESTDIR}/usr/lib
cp -v ../dist/Linux*/bin/* ${DESTDIR}/usr/bin32
cp -v ../dist/Linux*/lib/*.so ${DESTDIR}/usr/lib
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-openjpeg"
VERSION="2.1"
DIR="openjpeg-version.${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
mkdir -pv ${DIR}/build
cd ${DIR}/build
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
cmake -DCMAKE_C_FLAGS="-O2 -m32" -DCMAKE_CXX_FLAGS="-O2 -fPIC" -DCMAKE_INSTALL_PREFIX=/usr -DOPENJPEG_INSTALL_BIN_DIR="bin32" -DBUILD_JPWL:BOOL=ON -DBUILD_MJ2:BOOL=ON -DBUILD_JPIP:BOOL=ON -DBUILD_JP3D:BOOL=ON ..
make VERBOSE=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-p11-kit"
VERSION="0.23.2"
DIR="p11-kit-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/etc
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-pcre"
VERSION="8.39"
DIR="pcre-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --enable-utf --enable-unicode-properties --enable-pcre16 --enable-pcre32 --enable-jit
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-pixman"
VERSION="0.34.0"
DIR="pixman-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-sqlite"
VERSION="3.13.0"
DIR="sqlite-autoconf-3130000"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.gz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-util-linux"
VERSION="2.27.1"
DIR="util-linux-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.xz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --sbindir=/usr/sbin32 --libdir=/usr/lib --without-python --disable-use-tty-group
make V=1
make install DESTDIR=${DESTDIR}
mv -v ${DESTDIR}/usr/bin/* ${DESTDIR}/usr/bin32
mv -v ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/sbin32
rm -rfv ${DESTDIR}/usr/bin
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/sbin
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-v4l-utils"
VERSION="1.10.1"
DIR="v4l-utils-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --bindir=/usr/sbin32 --disable-static --enable-shared --disable-qv4l2
make V=1
make install DESTDIR=${DESTDIR}
mv -v ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/sbin32/
rm -rfv ${DESTDIR}/lib
rm -rfv ${DESTDIR}/usr/etc
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/sbin
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-xz"
VERSION="5.2.2"
DIR="xz-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.xz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --disable-static --enable-shared
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
NAME="32-zlib"
VERSION="1.2.8"
DIR="zlib-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.xz
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
I know that it is not the complete build log but I guess I could do it.
I just have to run automatically all these scripts and redirect the output to a log file.
I will copy paste that on a pastebin(type) site soon.
During this time, if you see something strange above please tell me.

If you don't know well Slackware64, it is very easy compared to other distro to understand how it works because it is uses "medieval" things (i.e., basic and simple things).
Here [2] you can see what packages are officially provided and how they are built.

I am not sure what you mean about compatibility between the x86 and amd64 development libraries.
I try to keep the same version for my 32-bit packages than the 64-bit packages.
Is it what you mean?

[1] http://www.slackware.com/~alien/multilib/
[2] http://ftp.slackware.com/pub/slackware/ ... .2/source/
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: "winecfg" and "wineserver" commands are missing

Post by Bob Wya »

YuGiOhJCJ wrote:Well, the Slackware64 distro does not support multilib officially.
In order to be able to build or run 32-bit programs on Slackware64, you need to upgrade the gcc and glibc packages [1].
I did that and now I am able to build 32-bit programs and run them under my 64-bit operating system.

In order to build wine, these are all the packages (dependencies of wine) that I built:
  • ...
    That was a hard job (53 packages to build!).
    After that, I was able to build the wine package:
    • wine-1.8.1-x86_64-20161105023416_ygo
A minor system update on my Gentoo install was ~133 packages - compiled from source - y/day evening (including my monthly 1 hour long rebuild of libreoffice - why??!!)... You're in kindergarden matey... 8)

Anyway that list looks pretty comprehensive. Plus you've the recursive multilib dependencies (something I forget to ask about earlier)...
YuGiOhJCJ wrote: If you want to know how I built all of these packages, I am using a different script for each of them.
blah... blah... blah...

I know that it is not the complete build log but I guess I could do it.
This is WineHQ Wine Forum - not a Slackware support forum!! :o

I trust you know how to build packages - I was just checking for correct multilib support... The link you sent me was convincing enough!! I actually wanted, surprise surprise, the full build log for the Wine package you build.
YuGiOhJCJ wrote: If you don't know well Slackware64, it is very easy compared to other distro to understand how it works because it is uses "medieval" things (i.e., basic and simple things).
Here [2] you can see what packages are officially provided and how they are built.
It's not that different from Gentoo - just Gentoo has an interstellar, warp drive package manager vs. Slackware's (very small) small propane lighter 8)
YuGiOhJCJ wrote: I am not sure what you mean about compatibility between the x86 and amd64 development libraries.
I try to keep the same version for my 32-bit packages than the 64-bit packages.
Is it what you mean?
I've recently written a build script for Ubuntu users to use, for Wine & Wine-Staging. Because the Debian developers chose to make the x86 packages totally separate from the amd64 packages... I had to make sure to match the, x86 and amd64 architecture, build environments (development packages) very precisely.

But you've detailed that you've built true multi-arch Slackware tar'd packages for all the Wine dependencies - so that's cool (i.e. same as Arch and Gentoo would do). 8)

So I'd suggest next step is to go through all the Wine bundled programs and check them:

Code: Select all

wine clock
wine explorer
wine notepad
wine regedit
wine winhlp32
wine winecfg
wine wordpad
wine taskmgr
...
Then I'd suggest installing the Steam client, even if you don't use Steam. Follow the, excellently written (pats back), guide on the WineHQ AppDB page: Steam Official Client ... That's a good basic test for font-rendering, GL support, etc.

Let's stick to testing your Wine build with applications that are known to work well under Wine - first! :mrgreen:

Bob
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

Re: "winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

OK, here is a short build log for the Wine package I built:

Code: Select all

$ tar xvf wine-1.8.1.tar.bz2
[...]
$ mkdir -pv wine-1.8.1/wine64-build
[...]
$ mkdir -pv wine-1.8.1/wine32-build
[...]
$ cd wine-1.8.1/wine64-build
$ CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../configure --prefix=/usr --enable-win64
[...]
config.status: executing Makefile commands

configure: OpenCL development files not found, OpenCL won't be supported.
configure: libhal development files not found, no legacy dynamic device support.
configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.
configure: libcapi20 development files not found, ISDN won't be supported.
configure: libgsm development files not found, gsm 06.10 codec won't be supported.

configure: Finished.  Do 'make' to compile Wine.

$ make
[...]
make[1]: Leaving directory '/tmp/build/wine/wine-1.8.1/wine64-build/server'
Wine build complete.
$ cd -
[...]
$ cd wine-1.8.1/wine32-build
$ export PATH="/usr/bin32:${PATH}"
$ export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
$ export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
$ CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../configure --prefix=/usr --with-wine64=../wine64-build --with-alsa --without-capi --with-cms --with-coreaudio --without-cups --with-curses --with-dbus --with-fontconfig --with-freetype --with-gettext --without-gettextpo --without-gphoto --with-glu --with-gnutls --without-gsm --without-gstreamer --without-hal --with-jpeg --without-ldap --without-mpg123 --with-netapi --without-openal --without-opencl --with-opengl --with-osmesa --with-oss --with-pcap --with-png --with-pthread --without-pulse --without-sane --without-tiff --with-v4l --with-xcomposite --with-xcursor --with-xinerama --with-xinput --with-xinput2 --with-xml --with-xrandr --with-xrender --with-xshape --with-xshm --with-xslt --with-xxf86vm --with-zlib --with-x
[...]
config.status: executing Makefile commands

configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.
configure: openal-soft 32-bit development files not found (or too old), XAudio2 won't be supported

configure: WARNING: No sound system was found. Windows applications will be silent.

configure: Finished.  Do 'make' to compile Wine.

$ make install DESTDIR=/tmp/wine-1.8.1
[...]
make[1]: Leaving directory '/tmp/build/wine/wine-1.8.1/wine32-build/programs/xcopy'
STRIPPROG="strip" ../tools/install-sh  programs/xcopy/xcopy.exe.so /tmp/wine-1.8.1/usr/lib/wine/xcopy.exe.so
../tools/install-sh -m 644  programs/xcopy/xcopy.exe.fake /tmp/wine-1.8.1/usr/lib/wine/fakedlls/xcopy.exe
$ cd -
[...]
$ cd wine-1.8.1/wine64-build
$ make install DESTDIR=/tmp/wine-1.8.1
[...]
make[1]: Leaving directory '/tmp/build/wine/wine-1.8.1/wine64-build/tools/wrc'
../tools/install-sh -m 644  ../loader/l_intl.nls /tmp/wine-1.8.1/usr/share/wine/l_intl.nls
../tools/install-sh -m 644  ../loader/wine.desktop /tmp/wine-1.8.1/usr/share/applications/wine.desktop
And here [2] is a full build log for the Wine package I built.

I checked some Wine bundled programs and here is the result:

Code: Select all

$ wine clock
preloader: Warning: failed to reserve range 00010000-00110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e4184b4 (thread 0009), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 8 88") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
$ wine explorer
preloader: Warning: failed to reserve range 00010000-00110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e8674b4 (thread 0009), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 8 68") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
$ wine notepad
preloader: Warning: failed to reserve range 00010000-00110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e33d4b4 (thread 0009), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 8 96") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
$ wine regedit
preloader: Warning: failed to reserve range 00010000-00110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
wine: Unhandled page fault on read access to 0x00000048 at address 0xf6fa34b4 (thread 0009), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 8 92") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
$ wine winhlp32
preloader: Warning: failed to reserve range 00010000-00110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e8bd4b4 (thread 0009), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 8 68") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
$ wine winecfg
preloader: Warning: failed to reserve range 00010000-00110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
$ wine wordpad
preloader: Warning: failed to reserve range 00010000-00110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e15e4b4 (thread 0009), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 8 96") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
$ wine taskmgr
preloader: Warning: failed to reserve range 00010000-00110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e3e24b4 (thread 0009), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 8 88") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
So, in other words, only "winecfg" is working.

What's wrong with my wine please?

[2] http://yugiohjcj.free.fr/wine.txt
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: "winecfg" and "wineserver" commands are missing

Post by Bob Wya »

So assuming you've not left out any vital bits - the Wine build log looks fine... It would be easier if you just posted the whole thing on a pastebin-type site... I can't check what I can't see!!

Are you sure you've worked around Slackware's default memory-map lower limit? I've already brought this up - about 10 posts ago!!

Here:

Code: Select all

gunzip -c /proc/config.gz | grep MMAP_MIN_ADDR
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
On the 4.8.8 kernel...

Assuming your kernel is too out-of-date (what kernel version does Slackware ship these days??) ... Then you'd want something like:

Code: Select all

/etc/sysctl.conf:

vm.default_mmap_min_addr=4096
Bob
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

Re: "winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

Bob Wya wrote:So assuming you've not left out any vital bits - the Wine build log looks fine... It would be easier if you just posted the whole thing on a pastebin-type site... I can't check what I can't see!!
As I said in my previous post, I have already posted the full Wine build log so you can see it:
http://yugiohjcj.free.fr/wine.txt

Indeed, it is not on a pastebin-type site because I only know http://pastebin.com/ and when I copy/paste the full Wine build log, I get this error:

Code: Select all

You have exceeded the maximum paste size of 512 kilobytes per paste. PRO users don't have this limit!
Bob Wya wrote:Are you sure you've worked around Slackware's default memory-map lower limit? I've already brought this up - about 10 posts ago!!
Are you speaking about the post you wrote containing this link https://www.linuxquestions.org/question ... ost4220871?

It only fixes some warnings that are not critical so that's why I have not fixed in my last post.
But here is the result if I fix these warnings:

Code: Select all

$ sudo sysctl vm.mmap_min_addr=0
vm.mmap_min_addr = 0
$ wine clock
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e4184b4 (thread 0009), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 8 88") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
$ wine explorer
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e8674b4 (thread 0009), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 8 68") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
$ wine notepad
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e33d4b4 (thread 0009), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 8 96") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
wine regedit
wine: Unhandled page fault on read access to 0x00000048 at address 0xf6ff54b4 (thread 0009), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 8 92") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
$ wine winhlp32
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e8b04b4 (thread 002c), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 43 76") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
$ wine winecfg
$ wine wordpad
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e0bd4b4 (thread 0009), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 8 96") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
$ wine taskmgr
wine: Unhandled page fault on read access to 0x00000048 at address 0x7e3e24b4 (thread 002c), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 43 96") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
For my kernel config, I guess this is what you want to know:

Code: Select all

$ zcat /proc/config.gz | grep MMAP_MIN_ADDR
CONFIG_DEFAULT_MMAP_MIN_ADDR=98304
So we don't have the same number.
I don't know if that matters.

The kernel version I am using currently is:

Code: Select all

$ uname -a
Linux desktop 4.4.14 #2 SMP Fri Jun 24 13:38:27 CDT 2016 x86_64 Intel(R) Celeron(R) CPU G3920 @ 2.90GHz GenuineIntel GNU/Linux
So yeah don't worry about these warnings, the most important are errors.

How to know why I get these errors while running Wine bundled programs please?
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: "winecfg" and "wineserver" commands are missing

Post by Bob Wya »

@YuGiOhJCJ,

OK I've taken the time to go through your wine build log with a fine toothcomb.

One thing that is confusing me - is how Slackware handles linking against 32-bit libraries.

I refer you to the:
  1. Arch-Linux wine Package buildscript
  2. Gentoo wine 1.8.1 ebuild
From 1. :

Code: Select all

_wine32opts=(
      --libdir=/usr/lib32
      --with-wine64="$srcdir/$pkgname-64-build"
    )

    export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
  fi

  msg2 "Building Wine-32..."
  cd "$srcdir/$pkgname-32-build"
  ../$pkgname/configure \
    --prefix=/usr \
    --with-x \
    --with-gstreamer \
    "${_wine32opts[@]}"

  make
From the build log for 2. :

Code: Select all

...
>>> Configuring source in /tmp/portage/app-emulation/wine-1.8.1-r3/work/wine-1.8.1 ...
 * strip-flags: CFLAGS: changed '-O2 -fomit-frame-pointer -pipe -march=native -mtune=native' to '-O2 -pipe -march=native -mtune=native'
 * strip-flags: CXXFLAGS: changed '-O2 -fomit-frame-pointer -pipe -march=native -mtune=native' to '-O2 -pipe -march=native -mtune=native'
 * abi_x86_32.x86: running multilib-minimal_abi_src_configure
 * econf: updating wine-1.8.1/tools/config.sub with /usr/share/gnuconfig/config.sub
 * econf: updating wine-1.8.1/tools/config.guess with /usr/share/gnuconfig/config.guess
/tmp/portage/app-emulation/wine-1.8.1-r3/work/wine-1.8.1/configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --docdir=/usr/share/doc/wine-1.8.1-r3 --htmldir=/usr/share/doc/wine-1.8.1-r3/html --libdir=/usr/lib32 --sysconfdir=/etc/wine --with-alsa --with-capi --with-cms --with-cups --with-curses --with-dbus --with-fontconfig --with-gnutls --enable-mshtml --with-gphoto --with-gsm --with-gstreamer --without-hal --with-jpeg --without-ldap --enable-mscoree --with-mpg123 --without-netapi --with-gettext --with-openal --with-opencl --with-opengl --with-osmesa --without-oss --without-pcap --with-png --with-pulse --with-pthread --with-sane --disable-tests --with-freetype --without-v4l --with-x --with-xcomposite --with-xinerama --with-xml --with-xslt --with-xattr --without-gtk3 --without-va --disable-win64
configure: loading site script /usr/share/config.site
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking whether make sets $(MAKE)... yes
checking for i686-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc -m32
...
checking whether x86_64-pc-linux-gnu-gcc -m32 accepts -g... yes
...
checking whether x86_64-pc-linux-gnu-g++ -m32 accepts -g... yes
checking for i686-pc-linux-gnu-cpp... no
checking for cpp... cpp
checking for i686-pc-linux-gnu-ld... x86_64-pc-linux-gnu-ld -m elf_i386
...
checking for i686-pc-linux-gnu-ar... ar
checking for i686-pc-linux-gnu-strip... no
checking for strip... strip
checking for i686-pc-linux-gnu-ranlib... ranlib
...
checking for i686-pc-linux-gnu-pkg-config... i686-pc-linux-gnu-pkg-config
...
checking for i386_set_ldt in -li386... no
...
checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -m32 -E
...
So there is reference made, in the configure step, to the location of the 32-bit system libraries - on Arch/Gentoo this /usr/lib32 - when building the multilib wine package:

Code: Select all

--libdir=/usr/lib32
I'm unclear about how Slackware stores and handles the 32-bit libraries on a 64-bit System... E.g.

Code: Select all

cd wine-1.8.1/wine32-build
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
??? :? :?
I'm not clear how that exported LD_LIBRARY_PATH will specifies any 32-bit library paths??
I wasn't able to find any useful Slackware documentation for this.

Bob
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

Re: "winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

Well, on Slackware64 the 32-bit libraries are in "/usr/lib" whereas the 64-bit libraries are in "/usr/lib64".
I know that it is not the same convention that is used on ArchLinux/Gentoo where 32-bit libraries are in "/usr/lib32" whereas the 64-bit libraries are in "/usr/lib".
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: "winecfg" and "wineserver" commands are missing

Post by Bob Wya »

YuGiOhJCJ wrote:Well, on Slackware64 the 32-bit libraries are in "/usr/lib" whereas the 64-bit libraries are in "/usr/lib64".
I know that it is not the same convention that is used on ArchLinux/Gentoo where 32-bit libraries are in "/usr/lib32" whereas the 64-bit libraries are in "/usr/lib".
OK that's fine.

So I'd suggest a slight alteration to build script:

Code: Select all

mkdir -pv /tmp/build/wine
cd /tmp/build/wine
tar xvf wine-1.8.1.tar.bz2
mkdir -v wine{64,32}-build
pushd wine64-build
CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../wine-1.8.1/configure --prefix=/usr --enable-win64
make
popd
pushd wine32-build
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../wine-1.8.1/configure --prefix=/usr --libdir=/usr/lib --with-wine64=../wine64-build --with-alsa --without-capi --with-cms --with-coreaudio --without-cups --with-curses --with-dbus --with-fontconfig --with-freetype --with-gettext --without-gettextpo --without-gphoto --with-glu --with-gnutls --without-gsm --without-gstreamer --without-hal --with-jpeg --without-ldap --without-mpg123 --with-netapi --without-openal --without-opencl --with-opengl --with-osmesa --with-oss --with-pcap --with-png --with-pthread --without-pulse --without-sane --without-tiff --with-v4l --with-xcomposite --with-xcursor --with-xinerama --with-xinput --with-xinput2 --with-xml --with-xrandr --with-xrender --with-xshape --with-xshm --with-xslt --with-xxf86vm --with-zlib --with-x
make
make install DESTDIR=/tmp/wine-1.8.1
popd
pushd wine64-build
make install DESTDIR=/tmp/wine-1.8.1
popd
I'd put in --libdir=/usr/lib - just in case the LD_LIBRARY_PATH override isn't enough (for when you actually run the built package).
I wouldn't put your build directories in the source directory (so I've moved them up a level).

Then post the output from here:

Code: Select all

installpkg -warn wine-1.8.1.tgz
(Or whatever you've called it) ... Just to check no files are missing from the final wine package.

It would also be useful to see what the 32-bit wine libraries and executable are linked against:

Code: Select all

ldd /usr/lib/wine/*.so /usr/bin32/wine
Plus what the 64-bit wine libraries and executable are linked against:

Code: Select all

ldd /usr/lib64/wine/*.so /usr/bin/wine64
Just post that stuff inline. It'll be a bit long - but that's fine! 8)

Ta
Bob
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

Re: "winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

You helped me a lot because now I am able to run the clock.exe program :D

That's when you wrote this command that I have understood:

Code: Select all

ldd /usr/lib/wine/*.so /usr/bin32/wine
The /usr/bin32/wine binary was not available on my system because it is installed in /usr/bin/wine.

And when you wrote this command I finally understood what was wrong:

Code: Select all

ldd /usr/lib64/wine/*.so /usr/bin/wine64
There is a "wine" program and a "wine64" program!

So, since all this time I was running the 32-bit wine on my 64-bit operating system.

In order to run the Wine bundled programs that's how I must call wine:

Code: Select all

$ wine64 clock
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
$ wine64 explorer
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
fixme:nstc:NSTC2_fnSetControlStyle2 mask & style (0x00000004) contains unsupported style(s): 0x00000004
fixme:shell:IShellBrowser_fnSendControlMsg stub, 0x13ae00 (2, 1026, a003, 0, 0x32ef08)
fixme:shell:IShellBrowser_fnSendControlMsg stub, 0x13ae00 (2, 1026, a004, 1, 0x32ef08)
fixme:shell:IShellBrowser_fnSendControlMsg stub, 0x13ae00 (2, 1025, a003, 1, 0x32ef08)
fixme:shell:IShellBrowser_fnSendControlMsg stub, 0x13ae00 (2, 1025, a004, 1, 0x32ef08)
fixme:shell:IExtractIconW_fnExtract (0x14bef0) (file=L"C:\\windows\\system32\\shell32.dll" index=-35 (nil) 0x32ece8 size=00000014) semi-stub
fixme:shell:IExtractIconW_fnExtract (0x154480) (file=L"C:\\windows\\system32\\shell32.dll" index=-16 (nil) 0x32ece8 size=00000014) semi-stub
fixme:shell:IExtractIconW_fnExtract (0x153320) (file=L"C:\\windows\\system32\\shell32.dll" index=-235 (nil) 0x32ece8 size=00000014) semi-stub
fixme:shell:IExtractIconW_fnExtract (0x1543b0) (file=L"@C:\\windows\\system32\\shell32.dll" index=-33 (nil) 0x32ece8 size=00000014) semi-stub
fixme:shell:IExtractIconW_fnExtract (0x156d80) (file=L"C:\\windows\\system32\\shell32.dll" index=-9 (nil) 0x32ece8 size=00000014) semi-stub
$ wine64 notepad
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
$ wine64 regedit
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
$ wine64 winhlp32
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
$ wine64 winecfg
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
$ wine64 wordpad
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
fixme:font:get_outline_text_metrics failed to read full_nameW for font L"Ani"!
$ wine64 taskmgr
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_CACHE_INFORMATION
fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_HANDLE_INFORMATION
fixme:advapi:ImpersonateLoggedOnUser (0x78)
fixme:resource:GetGuiResources (0x74,1): stub
fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_CACHE_INFORMATION
fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_HANDLE_INFORMATION
fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_CACHE_INFORMATION
fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_HANDLE_INFORMATION
fixme:msg:pack_message msg 7f (WM_GETICON) not supported yet
fixme:class:CLASS_GetClassLong offset -34 (GCLP_HICONSM) not supported on other process window 0x100da
fixme:class:CLASS_GetClassLong offset -14 (GCLP_HICON) not supported on other process window 0x100da
fixme:msg:pack_message msg 37 (WM_QUERYDRAGICON) not supported yet
fixme:msg:pack_message msg 7f (WM_GETICON) not supported yet
fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_CACHE_INFORMATION
fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_HANDLE_INFORMATION
fixme:msg:pack_message msg 7f (WM_GETICON) not supported yet
fixme:class:CLASS_GetClassLong offset -34 (GCLP_HICONSM) not supported on other process window 0x100da
fixme:class:CLASS_GetClassLong offset -14 (GCLP_HICON) not supported on other process window 0x100da
fixme:msg:pack_message msg 37 (WM_QUERYDRAGICON) not supported yet
fixme:msg:pack_message msg 7f (WM_GETICON) not supported yet
So, in other words, all are working good!

I guess you don't need anymore information you asked me [1, 2, 3] because the problem is solved now.

I think the best thing I should do is to use the "bindir" configuration option while building the 32-bit version of wine to set it to "/usr/bin32" (instead of "/usr/bin").
Also, I need to create a symbolic link from "/usr/bin/wine64" to "/usr/bin/wine" because I guess lots of programs will call "wine" (not "wine64").

Problem solved.
Thank you.

[1] http://yugiohjcj.free.fr/wine-20161126.txt
[2] http://yugiohjcj.free.fr/wine-20161126-ldd.txt
[3] http://yugiohjcj.free.fr/wine-20161126-ldd-64.txt
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: "winecfg" and "wineserver" commands are missing

Post by Bob Wya »

YuGiOhJCJ wrote:You helped me a lot because now I am able to run the clock.exe program :D
...
There is a "wine" program and a "wine64" program!

So, since all this time I was running the 32-bit wine on my 64-bit operating system.

...

So, in other words, all are working good!

[1] http://yugiohjcj.free.fr/wine-20161126.txt
[2] http://yugiohjcj.free.fr/wine-20161126-ldd.txt
[3] http://yugiohjcj.free.fr/wine-20161126-ldd-64.txt

The standard way to launch wine is via the 32-bit executable...
So things aren't really that great for you (your self-built package is still pretty broken).
For example you won't be able to create or use a pure 32-bit Wineprefix - when you use the wine64 executable. This is a big deal - as many applications aren't well supported in a 64-bit Wineprefix.

The 32-bit wine executable should be able to launch any (supported) Windows application or built-in utility as well... This should be the default way to start any wine based application.

Btw the library linking looks OK to me...

For reference on my system:

Code: Select all

readelf -h /usr/bin/wine /usr/bin/wine64

File: /usr/bin/wine
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Intel 80386
  Version:                           0x1
  Entry point address:               0x7c000ff7
  Start of program headers:          52 (bytes into file)
  Start of section headers:          8600 (bytes into file)
  Flags:                             0x0
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         9
  Size of section headers:           40 (bytes)
  Number of section headers:         28
  Section header string table index: 27

File: /usr/bin/wine64
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x7c001020
  Start of program headers:          64 (bytes into file)
  Start of section headers:          8680 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         9
  Size of section headers:           64 (bytes)
  Number of section headers:         28
  Section header string table index: 27
On Gentoo, with multilib app-emualation/wine on a 64-bit System, the 32-bit executable is the main wine executable.

I could ping the discussion over to the winehq-devel mailing list if you want... I guess I can't get my head around the slightly odd choices, that have been made, in the Slackware multilib implementation...

Bob
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

Re: "winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

Oh... So I will not be able to run my 32-bit Windows applications :\

I thought the problem was solved but not yet.

Here is what I have with readelf:

Code: Select all

$ readelf -h /usr/bin/wine
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Intel 80386
  Version:                           0x1
  Entry point address:               0x7bf01041
  Start of program headers:          52 (bytes into file)
  Start of section headers:          12212 (bytes into file)
  Flags:                             0x0
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         8
  Size of section headers:           40 (bytes)
  Number of section headers:         37
  Section header string table index: 34
$ readelf -h /usr/bin/wine64
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x7bf00e80
  Start of program headers:          64 (bytes into file)
  Start of section headers:          1059256 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         8
  Size of section headers:           64 (bytes)
  Number of section headers:         36
  Section header string table index: 33
Maybe something useful is the content of my wine Slackware package [1].

Here is the content of the install/doinst.sh script:

Code: Select all

$ cat install/doinst.sh 
( cd usr/share/man/man1 ; rm -rf winecpp.1 )
( cd usr/share/man/man1 ; ln -sf winegcc.1 winecpp.1 )
( cd usr/share/man/man1 ; rm -rf wineg++.1 )
( cd usr/share/man/man1 ; ln -sf winegcc.1 wineg++.1 )
( cd usr/lib ; rm -rf libwine.so )
( cd usr/lib ; ln -sf libwine.so.1 libwine.so )
( cd usr/lib ; rm -rf libwine.so.1 )
( cd usr/lib ; ln -sf libwine.so.1.0 libwine.so.1 )
( cd usr/bin ; rm -rf winecpp )
( cd usr/bin ; ln -sf winegcc winecpp )
( cd usr/bin ; rm -rf wineg++ )
( cd usr/bin ; ln -sf winegcc wineg++ )
( cd usr/lib64 ; rm -rf libwine.so )
( cd usr/lib64 ; ln -sf libwine.so.1 libwine.so )
( cd usr/lib64 ; rm -rf libwine.so.1 )
( cd usr/lib64 ; ln -sf libwine.so.1.0 libwine.so.1 )
Yes, please if you can write to the winehq-devel mailing list please do it and post here the link to the thread from the mailing list archives.

So, you think that the problem comes from my multilib (gcc/glibc) rather than wine?

[1] http://yugiohjcj.free.fr/wine-20161127-tar.txt
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: "winecfg" and "wineserver" commands are missing

Post by Bob Wya »

Code: Select all

NAME="32-freetype"
VERSION="2.6.3"
DIR="freetype-${VERSION}"
DESTDIR="/tmp/${NAME}-${VERSION}"
tar xvf ${DIR}.tar.bz2
patch -p0 < ${NAME}-${VERSION}.patch
cd ${DIR}
export PATH="/usr/bin32:${PATH}"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
CFLAGS="-O2 -m32" CXXFLAGS="-O2 -m32" LDFLAGS="-O2 -m32" ./configure --prefix=/usr --bindir=/usr/bin32 --libdir=/usr/lib --with-harfbuzz -disable-static
make V=1
make install DESTDIR=${DESTDIR}
rm -rfv ${DESTDIR}/usr/include
rm -rfv ${DESTDIR}/usr/share
cd -
rm -rfv ${DIR}
set -e
Ahhh-hah!! The reason for one of your original stacktrace crashes - related to the freetype library (that you tried to troubleshoot)... See WineHQ Bugzilla: Bug 41758 - wine can't load freetype if the latter is built with harfbuzz support ...
I've not had this issue - because my Gentoo freetype library is not linked against the harfbuzz library (Portage doesn't like cyclic dependencies!!)

Bob
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: "winecfg" and "wineserver" commands are missing

Post by Bob Wya »

OK... So I had another think about the difference between your (Slackware) build script and one that is going to actually work.

I think you're building orthogonal wine32 and wine64 builds - since you are using 32-bit gcc to build the wine32 part.
Gentoo and Arch use 64-bit gcc to compile wine32 on a 64-bit Linux install...

So try using 64-bit gcc throughout the build:

Code: Select all

mkdir -pv /tmp/build/wine
cd /tmp/build/wine
mkdir -v wine{64,32}-build
WINE_ARCHIVE="wine-1.8.1.tar.bz2"
WINE_OPTIONS="--with-alsa --without-capi --with-cms --with-coreaudio --without-cups --with-curses --with-dbus --with-fontconfig --with-freetype --with-gettext --without-gettextpo --without-gphoto --with-glu --with-gnutls --without-gsm --without-gstreamer --without-hal --with-jpeg --without-ldap --without-mpg123 --with-netapi --without-openal --without-opencl --with-opengl --with-osmesa --with-oss --with-pcap --with-png --with-pthread --without-pulse --without-sane --without-tiff --with-v4l --with-xcomposite --with-xcursor --with-xinerama --with-xinput --with-xinput2 --with-xml --with-xrandr --with-xrender --with-xshape --with-xshm --with-xslt --with-xxf86vm --with-zlib --with-x"
WINE_SRC_DIR=$(tar --exclude '*/*' -taf "${WINE_ARCHIVE}")
tar xvf "${WINE_ARCHIVE}"
pushd wine64-build
CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../${WINE_SRC_DIR}/configure --prefix=/usr --enable-win64 ${WINE_OPTIONS}
make
popd
pushd wine32-build
CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../${WINE_SRC_DIR}/configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --libdir=/usr/lib --with-wine64=../wine64-build ${WINE_OPTIONS}
make
make install DESTDIR=/tmp/${WINE_SRC_DIR}
popd
pushd wine64-build
make install DESTDIR=/tmp/${WINE_SRC_DIR}
popd
So I've borrowed some of the multilib configuration from Gentoo... If you want distribution with good package build scripts - it's Gentoo!! :lol:
Removed all the path overrides - these shouldn't be necessary. You're not trying to build a pure 32-bit package - since that wouldn't be executable on a 64-bit Linux OS anyway...
Make sure that the build options are consistent for the 32-bit and 64-bit builds - by using identical options for each stage.
Btw you probably don't want --with-v4l since that links to Video4Linux 1.x - which is totally obsolete. (Just a minor point.)

Try the updated build script - before I start bothering anyone on the wine-devel mailing list.
I don't want to spam the list with questions - unless I get really stuck... 8)

If that works - then I'll get you to try applying the (freetype) cyclic library loader patch (from the bug report I linked to above)...

Bob
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

Re: "winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

I followed your steps and here is the short build log:

Code: Select all

$ mkdir -pv /tmp/build/wine
$ cd /tmp/build/wine
$ mkdir -v wine{64,32}-build
$ WINE_ARCHIVE="wine-1.8.1.tar.bz2"
$ WINE_OPTIONS="--with-alsa --without-capi --with-cms --with-coreaudio --without-cups --with-curses --with-dbus --with-fontconfig --with-freetype --with-gettext --without-gettextpo --without-gphoto --with-glu --with-gnutls --without-gsm --without-gstreamer --without-hal --with-jpeg --without-ldap --without-mpg123 --with-netapi --without-openal --without-opencl --with-opengl --with-osmesa --with-oss --with-pcap --with-png --with-pthread --without-pulse --without-sane --without-tiff --with-v4l --with-xcomposite --with-xcursor --with-xinerama --with-xinput --with-xinput2 --with-xml --with-xrandr --with-xrender --with-xshape --with-xshm --with-xslt --with-xxf86vm --with-zlib --with-x"
$ WINE_SRC_DIR=$(tar --exclude '*/*' -taf "${WINE_ARCHIVE}")
$ tar xvf "${WINE_ARCHIVE}"
$ cd wine64-build
$ CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../${WINE_SRC_DIR}/configure --prefix=/usr --enable-win64 ${WINE_OPTIONS}
$ make
$ cd -
$ cd wine32-build
$ CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../${WINE_SRC_DIR}/configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --libdir=/usr/lib --with-wine64=../wine64-build ${WINE_OPTIONS}
$ make
./../wine64-build/tools/makedep dlls/acledit
./../wine64-build/tools/makedep libs/port
make[1]: Entering directory '/tmp/build/wine/wine32-build/libs/port'
gcc -c -o ffs.o ../../../wine-1.8.1/libs/port/ffs.c -I. -I../../../wine-1.8.1/libs/port \
  -I../../include -I../../../wine-1.8.1/include -D__WINESRC__ -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 -O2 -fPIC -D__i386__
gcc -c -o fstatvfs.o ../../../wine-1.8.1/libs/port/fstatvfs.c -I. -I../../../wine-1.8.1/libs/port \
  -I../../include -I../../../wine-1.8.1/include -D__WINESRC__ -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 -O2 -fPIC -D__i386__
gcc -c -o getopt.o ../../../wine-1.8.1/libs/port/getopt.c -I. -I../../../wine-1.8.1/libs/port \
  -I../../include -I../../../wine-1.8.1/include -D__WINESRC__ -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 -O2 -fPIC -D__i386__
gcc -c -o getopt1.o ../../../wine-1.8.1/libs/port/getopt1.c -I. -I../../../wine-1.8.1/libs/port \
  -I../../include -I../../../wine-1.8.1/include -D__WINESRC__ -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 -O2 -fPIC -D__i386__
gcc -c -o interlocked.o ../../../wine-1.8.1/libs/port/interlocked.c -I. -I../../../wine-1.8.1/libs/port \
  -I../../include -I../../../wine-1.8.1/include -D__WINESRC__ -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 -O2 -fPIC -D__i386__
{standard input}: Assembler messages:
{standard input}:35: Error: operand type mismatch for `push'
{standard input}:37: Error: bad register expression
{standard input}:37: Error: register save offset not a multiple of 8
{standard input}:38: Error: operand type mismatch for `push'
{standard input}:40: Error: bad register expression
{standard input}:47: Error: operand type mismatch for `pop'
{standard input}:48: Error: bad register expression
{standard input}:50: Error: operand type mismatch for `pop'
{standard input}:51: Error: bad register expression
Makefile:210: recipe for target 'interlocked.o' failed
make[1]: *** [interlocked.o] Error 1
make[1]: Leaving directory '/tmp/build/wine/wine32-build/libs/port'
Makefile:21909: recipe for target 'libs/port' failed
make: *** [libs/port] Error 2
And here is the full build log:
http://yugiohjcj.free.fr/wine-20161202.txt

Hopefully, removing the two following options solves the problem:
--build=i686-pc-linux-gnu --host=i686-pc-linux-gnu

Why do you want I set "build" to 32-bit and "host" to 32-bit?
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: "winecfg" and "wineserver" commands are missing

Post by Bob Wya »

YuGiOhJCJ wrote: ...
Hopefully, removing the two following options solves the problem:
--build=i686-pc-linux-gnu --host=i686-pc-linux-gnu

Why do you want I set "build" to 32-bit and "host" to 32-bit?
Removing the build host flags will revert you back to building 64-bit wine - twice.

We need to pass -m32 to 64-bit gcc during the 32-bit compilation phase...

So try adding in the Gentoo multilib patch (that I use re-worked as a sed one-liner in my app-emulation/wine ebuilds):

Code: Select all

mkdir -pv /tmp/build/wine
cd /tmp/build/wine
mkdir -v wine{64,32}-build
WINE_ARCHIVE="wine-1.8.1.tar.bz2"
WINE_OPTIONS="--with-alsa --without-capi --with-cms --with-coreaudio --without-cups --with-curses --with-dbus --with-fontconfig --with-freetype --with-gettext --without-gettextpo --without-gphoto --with-glu --with-gnutls --without-gsm --without-gstreamer --without-hal --with-jpeg --without-ldap --without-mpg123 --with-netapi --without-openal --without-opencl --with-opengl --with-osmesa --with-oss --with-pcap --with-png --with-pthread --without-pulse --without-sane --without-tiff --with-v4l --with-xcomposite --with-xcursor --with-xinerama --with-xinput --with-xinput2 --with-xml --with-xrandr --with-xrender --with-xshape --with-xshm --with-xslt --with-xxf86vm --with-zlib --with-x"
WINE_SRC_DIR=$(tar --exclude '*/*' -taf "${WINE_ARCHIVE}")
tar xvf "${WINE_ARCHIVE}"
for ARCH in "m32" "m64"; do
        sed -i '/CXX="\$CXX -'"${ARCH}"'"/a \
      CFLAGS="$CFLAGS -'"${ARCH}"'"\
      LDFLAGS="$LDFLAGS -'"${ARCH}"'"\
      CXXFLAGS="$CXXFLAGS -m'"${ARCH}"'"' "${WINE_SRC_DIR}/configure.ac"
done
unset -v ARCH
pushd wine64-build
CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../${WINE_SRC_DIR}/configure --prefix=/usr --enable-win64 ${WINE_OPTIONS}
make
popd
pushd wine32-build
CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../${WINE_SRC_DIR}/configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --libdir=/usr/lib --with-wine64=../wine64-build ${WINE_OPTIONS}
make
make install DESTDIR=/tmp/${WINE_SRC_DIR}
popd
pushd wine64-build
make install DESTDIR=/tmp/${WINE_SRC_DIR}
popd
Ta
Bob
User avatar
YuGiOhJCJ
Level 2
Level 2
Posts: 19
Joined: Tue Aug 19, 2014 6:09 pm

Re: "winecfg" and "wineserver" commands are missing

Post by YuGiOhJCJ »

Same issue:

Code: Select all

$ mkdir -pv /tmp/build/wine
$ cd /tmp/build/wine
$ mkdir -v wine{64,32}-build
$ WINE_ARCHIVE="wine-1.8.1.tar.bz2"
$ WINE_OPTIONS="--with-alsa --without-capi --with-cms --with-coreaudio --without-cups --with-curses --with-dbus --with-fontconfig --with-freetype --with-gettext --without-gettextpo --without-gphoto --with-glu --with-gnutls --without-gsm --without-gstreamer --without-hal --with-jpeg --without-ldap --without-mpg123 --with-netapi --without-openal --without-opencl --with-opengl --with-osmesa --with-oss --with-pcap --with-png --with-pthread --without-pulse --without-sane --without-tiff --with-v4l --with-xcomposite --with-xcursor --with-xinerama --with-xinput --with-xinput2 --with-xml --with-xrandr --with-xrender --with-xshape --with-xshm --with-xslt --with-xxf86vm --with-zlib --with-x"
$ WINE_SRC_DIR=$(tar --exclude '*/*' -taf "${WINE_ARCHIVE}")
$ tar xvf "${WINE_ARCHIVE}"
$ for ARCH in "m32" "m64"; do
>  sed -i '/CXX="\$CXX -'"${ARCH}"'"/a \
>  CFLAGS="$CFLAGS -'"${ARCH}"'"\
>  LDFLAGS="$LDFLAGS -'"${ARCH}"'"\
>  CXXFLAGS="$CXXFLAGS -m'"${ARCH}"'"' "${WINE_SRC_DIR}/configure.ac"
>done
$ unset -v ARCH
$ cd wine64-build
$ CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../${WINE_SRC_DIR}/configure --prefix=/usr --enable-win64 ${WINE_OPTIONS}
$ make
$ cd -
/tmp/build/wine
$ cd wine32-build
$ CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" ../${WINE_SRC_DIR}/configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --libdir=/usr/lib --with-wine64=../wine64-build ${WINE_OPTIONS}
$ make
./../wine64-build/tools/makedep dlls/acledit
./../wine64-build/tools/makedep libs/port
make[1]: Entering directory '/tmp/build/wine/wine32-build/libs/port'
gcc -c -o ffs.o ../../../wine-1.8.1/libs/port/ffs.c -I. -I../../../wine-1.8.1/libs/port \
  -I../../include -I../../../wine-1.8.1/include -D__WINESRC__ -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 -O2 -fPIC -D__i386__
gcc -c -o fstatvfs.o ../../../wine-1.8.1/libs/port/fstatvfs.c -I. -I../../../wine-1.8.1/libs/port \
  -I../../include -I../../../wine-1.8.1/include -D__WINESRC__ -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 -O2 -fPIC -D__i386__
gcc -c -o getopt.o ../../../wine-1.8.1/libs/port/getopt.c -I. -I../../../wine-1.8.1/libs/port \
  -I../../include -I../../../wine-1.8.1/include -D__WINESRC__ -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 -O2 -fPIC -D__i386__
gcc -c -o getopt1.o ../../../wine-1.8.1/libs/port/getopt1.c -I. -I../../../wine-1.8.1/libs/port \
  -I../../include -I../../../wine-1.8.1/include -D__WINESRC__ -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 -O2 -fPIC -D__i386__
gcc -c -o interlocked.o ../../../wine-1.8.1/libs/port/interlocked.c -I. -I../../../wine-1.8.1/libs/port \
  -I../../include -I../../../wine-1.8.1/include -D__WINESRC__ -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 -O2 -fPIC -D__i386__
{standard input}: Assembler messages:
{standard input}:35: Error: operand type mismatch for `push'
{standard input}:37: Error: bad register expression
{standard input}:37: Error: register save offset not a multiple of 8
{standard input}:38: Error: operand type mismatch for `push'
{standard input}:40: Error: bad register expression
{standard input}:47: Error: operand type mismatch for `pop'
{standard input}:48: Error: bad register expression
{standard input}:50: Error: operand type mismatch for `pop'
{standard input}:51: Error: bad register expression
Makefile:210: recipe for target 'interlocked.o' failed
make[1]: *** [interlocked.o] Error 1
make[1]: Leaving directory '/tmp/build/wine/wine32-build/libs/port'
Makefile:21909: recipe for target 'libs/port' failed
make: *** [libs/port] Error 2
The full build log is here: http://yugiohjcj.free.fr/wine-20161204.txt

I guess it is because of the double "m" here:

Code: Select all

$ cp -r wine-1.8.1 wine-1.8.1.ori
$ for ARCH in "m32" "m64"; do         sed -i '/CXX="\$CXX -'"${ARCH}"'"/a \
      CFLAGS="$CFLAGS -'"${ARCH}"'"\
      LDFLAGS="$LDFLAGS -'"${ARCH}"'"\
      CXXFLAGS="$CXXFLAGS -m'"${ARCH}"'"' "${WINE_SRC_DIR}/configure.ac"; done
$ diff -ruN wine-1.8.1.ori wine-1.8.1
diff -ruN wine-1.8.1.ori/configure.ac wine-1.8.1/configure.ac
--- wine-1.8.1.ori/configure.ac	2016-12-04 15:13:36.267447857 +0100
+++ wine-1.8.1/configure.ac	2016-12-04 15:13:39.753447675 +0100
@@ -131,12 +131,18 @@
     then
       CC="$CC -m64"
       CXX="$CXX -m64"
+      CFLAGS="$CFLAGS -m64"
+      LDFLAGS="$LDFLAGS -m64"
+      CXXFLAGS="$CXXFLAGS -mm64"
       host_cpu="x86_64"
       notice_platform="64-bit "
       AC_SUBST(TARGETFLAGS,"-m64")
     else
       CC="$CC -m32"
       CXX="$CXX -m32"
+      CFLAGS="$CFLAGS -m32"
+      LDFLAGS="$LDFLAGS -m32"
+      CXXFLAGS="$CXXFLAGS -mm32"
       host_cpu="i386"
       notice_platform="32-bit "
       AC_SUBST(TARGETFLAGS,"-m32")
@@ -149,6 +155,9 @@
     then
       CC="$CC -m32"
       CXX="$CXX -m32"
+      CFLAGS="$CFLAGS -m32"
+      LDFLAGS="$LDFLAGS -m32"
+      CXXFLAGS="$CXXFLAGS -mm32"
       AC_MSG_CHECKING([whether $CC works])
       AC_LINK_IFELSE([AC_LANG_PROGRAM()],AC_MSG_RESULT([yes]),
                      [AC_MSG_RESULT([no])
isn't it?
Locked