November 5th is Clang-Day
Jan Beich
jbeich at tormail.org
Sat Nov 3 21:51:36 UTC 2012
David Naylor <naylor.b.david at gmail.com> writes:
> On Friday, 2 November 2012 10:13:30 David Chisnall wrote:
>
>> On 2 Nov 2012, at 05:24, Jan Beich wrote:
>> >> Known Issues
>> >
>> > emulators/wine doesn't work with lib32 built by clang, probably due to
>> > wine bugs.
>>
>> Is this still the case? There was an issue preventing WINE from working
>> because it required stricter stack alignment than clang provided by
>> default, but I thought it was fixed. Does WINE work if compiled with the
>> flag that forces stack realignment? If not, then it's some other issue...
>
> There are two issues here: 1) wine compiled with clang, and 2) wine (compiled
> with gcc) running on clang compiled base.
>
> Regarding 1), according to the wiki [1], wine does have stack alignment issues
> and some wine programs do not run when compiled with clang [2][3] and other
> bugs with clang cause freezing within wine [4][5]. The impression I get is
> that, using the work-a-round of stack realignment, wine does work to some
> extent when compiled by clang.
Took me some time but now I can confirm that clang-built wine-1.5.16
works fine for me with gcc-built lib32 (i.e. ld-elf32.so.1 + /usr/lib32).
> Regarding 2) (which I believe Jan was referring to), when I have a gcc built
> world and just replace lib32 with clang built libraries I have winecfg and
> regedit launching but displaying black screens. Switching back to gcc built
> lib32 I get a working winecfg and regedit. This, to me, indicates a clang
> error somewhere.
My experience varies between clang-built and gcc-built wine.
# clang, quick crash
$ winecfg
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x622975ab
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x622975ab
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x622975ab
Exit 5
# gcc, black rectangle
$ winecfg
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x622995ab
err:service:service_send_start_message service L"MountMgr" failed to start
fixme:service:scmdatabase_autostart_services Auto-start service L"MountMgr" failed to start: 1053
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x622995ab
err:service:service_send_start_message service L"PlugPlay" failed to start
fixme:service:scmdatabase_autostart_services Auto-start service L"PlugPlay" failed to start: 1053
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x622995ab
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x622995ab
load: 0.89 cmd: wine 14626 [piperd] 7.49r 0.03u 0.01s 0% 8932k
So, why not switch stack alignment in wine (upstream)? This would make
/stable/9 wine package continue to work on /head.
Here's my wine package built with and without the patch.
# sha256: cef5e543a5c534acb7237634224561863122ab3c256df319c6428856266d79fd
http://ompldr.org/vZzR0bw/4byte-clang-wine-fbsd64-1.5.16,1.txz
# sha256: 68e402bf7cb39ea48b9bef7772422cf476e89b214fd3b98ced37e0068f588c6c
http://ompldr.org/vZzR0ZA/16byte-clang-wine-fbsd64-1.5.16,1.txz
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-16byte-stackalign
Type: text/x-patch
Size: 3184 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20121103/dd90d198/attachment.bin>
More information about the freebsd-current
mailing list