From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58163) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Trglp-0008Qy-99 for qemu-devel@nongnu.org; Sat, 05 Jan 2013 22:19:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Trglk-0005yT-J8 for qemu-devel@nongnu.org; Sat, 05 Jan 2013 22:19:33 -0500 Received: from plane.gmane.org ([80.91.229.3]:40986) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Trglk-0005yP-93 for qemu-devel@nongnu.org; Sat, 05 Jan 2013 22:19:28 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1Trglv-0004CW-Su for qemu-devel@nongnu.org; Sun, 06 Jan 2013 04:19:39 +0100 Received: from 71-212-47-219.tukw.qwest.net ([71.212.47.219]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 06 Jan 2013 04:19:39 +0100 Received: from reginod5000 by 71-212-47-219.tukw.qwest.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 06 Jan 2013 04:19:39 +0100 From: Ashley Date: Sat, 05 Jan 2013 19:19:11 -0800 Message-ID: References: <20130105014858.GE11220@rox.home.comstyle.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit In-Reply-To: Subject: Re: [Qemu-devel] QEMU build fails with Clang? List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org On 1/5/2013 8:51 AM, Blue Swirl wrote: > On Sat, Jan 5, 2013 at 1:48 AM, Brad Smith wrote: >> Supposedly QEMU is able to build with Clang and yet trying to do so >> I am seeing the build fail as follows.. >> >> Comments? > > Clang does not support this kind of assembly code yet. The attached > patch avoids this by using 'as' and 'cpp' for .S files, please try. It > could still fail if the 'as' does not come from binutils. > >> >> >> gmake[1]: Entering directory `/home/brad/qemu/pc-bios/optionrom' >> clang -I. -I/home/brad/qemu -I/home/brad/qemu/include -I/home/brad/qemu/libcacard -Wall -Wstrict-prototypes -Werror -fomit-frame-pointer -fno-builtin -I/home/brad/qemu -fno-stack-protector -MMD -MP -MT multiboot.o -MF ./multiboot.d -Wall -Wstrict-prototypes -Werror -fomit-frame-pointer -fno-builtin -I/home/brad/qemu -fno-stack-protector -c -o multiboot.o multiboot.S >> multiboot.S:31:1: error: unexpected directive .code16 >> .code16; .text; .global _start; _start:; .short 0xaa55; .byte (_end - _start) / 512; lret; .org 0x18; .short 0; .short _pnph; _pnph: .ascii "$PnP"; .byte 0x01; .byte ( _pnph_len / 16 ); .short 0x0000; .byte 0x00; .byte 0x00; .long 0x00000000; .short _manufacturer; .short _product; .long 0x00000000; .short 0x0000; .short 0x0000; .short _bev; .short 0x0000; .short 0x0000; .equ _pnph_len, . - _pnph; _bev:; movw %cs, %ax; movw %ax, %ds; >> ^ >> multiboot.S:31:8: error: .code16 not supported yet >> .code16; .text; .global _start; _start:; .short 0xaa55; .byte (_end - _start) / 512; lret; .org 0x18; .short 0; .short _pnph; _pnph: .ascii "$PnP"; .byte 0x01; .byte ( _pnph_len / 16 ); .short 0x0000; .byte 0x00; .byte 0x00; .long 0x00000000; .short _manufacturer; .short _product; .long 0x00000000; .short 0x0000; .short 0x0000; .short _bev; .short 0x0000; .short 0x0000; .equ _pnph_len, . - _pnph; _bev:; movw %cs, %ax; movw %ax, %ds; >> ^ >> multiboot.S:71:135: error: unknown directive >> read_fw 0x0a; mov %eax, %edi; read_fw 0x0b; mov %eax, %ecx; mov $0x12, %ax; mov $0x510, %edx; outw %ax, (%dx); mov $0x511, %dx; cld; .dc.b 0xf3,0x6c >> ^ >> multiboot.S:102:2: error: unknown directive >> .dc.b 0x26,0x67,0x66,0x89,0x4f,0xfc >> ^ >> multiboot.S:130:17: error: unexpected token in argument list >> data32 lgdt %gs:6 >> ^ >> multiboot.S:138:15: error: unknown token in expression >> data32 ljmp *%gs:0 >> ^ >> multiboot.S:152:135: error: unknown directive >> read_fw 0x07; mov %eax, %edi; read_fw 0x08; mov %eax, %ecx; mov $0x11, %ax; mov $0x510, %edx; outw %ax, (%dx); mov $0x511, %dx; cld; .dc.b 0xf3,0x6c >> ^ >> gmake[1]: *** [multiboot.o] Error 1 >> >> -- >> This message has been scanned for viruses and >> dangerous content by MailScanner, and is >> believed to be clean. >> >> Have you committed this to the git? (or is the term push) I think that might be a good idea if you haven't (or some variation of this fix) because clang is going to be the "official" C/C++ compiler in FreeBSD 10 (as I've heard).