http://bugs.winehq.org/show_bug.cgi?id=32872
Bug #: 32872 Summary: Compilation broken if clang is installed, but not used for compilation. Product: Wine Version: 1.5.23 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: tools AssignedTo: wine-bugs@winehq.org ReportedBy: iive@yahoo.com Classification: Unclassified
When compiling I got the following error: -- make[1]: Entering directory `/dev/shm/fikus/wine-1.5.23/wine-1.5.23_GIT20130201_0618/dlls/avifile.dll16' ../../tools/winegcc/winegcc -B../../tools/winebuild --sysroot=../.. -fasynchronous-unwind-tables -shared ./avifile.dll16.spec -m16 -Wb,--main-module,avifil32.dll -o avifile.dll16.so -lavifil32 ../../libs/port/libwine_port.a avifile.b0xGhP.s:443:2: error: invalid operand for instruction lretw ^ avifile.b0xGhP.s:580:2: error: invalid operand for instruction lretw ^ --
I did git-bisect between 1.5.22 and 1.5.23 and got: -- c14bdaf1ddb7d0e5587f63f1216b61c9ecb7a8c3 is the first bad commit commit c14bdaf1ddb7d0e5587f63f1216b61c9ecb7a8c3 Author: Charles Davis cdavis5x@gmail.com Date: Mon Jan 28 13:42:12 2013 -0700
winebuild: Use Clang to assemble if found.
:040000 040000 6d74670c5b85af40c0294786d2fe62b6cf69e950 ce57d3edff2b26c81e9d4e15be97beead7bbd5a9 M tools bisect run success --
Looking at the patch it is clear that if `clang` is found on the system it would be used unconditionally. Since I have an old version (LLVM-3.0), that I need for compiling the last stable Mesa3D v9.0 release (it is used for shaders).
The configure script doesn't check for clang support or version. There are no conditional option that would force gnu `as`, nor there is any code that would prefer `as` when `gcc` is used.
FYI. I'm on Slackware 14. GCC-4.7.2 (latest release atm). LLVM-3.0 fails. LLVM-3.2 seems to work fine.
I expect the bug to be fixed by checking for minimum clang version. If that is not feasible then there must be an configure option to select the toolchain and it should be documented in `configure -help`.