I've been getting compile errors lately with gcc 3.x compiling kvm 27
and 28:


gcc -I /home/dave/kvm/kvm-28/kernel/include -MMD -MF test/.access.d -g 
-fomit-frame-pointer -Wall -m64     -nostdlib -o test/access.flat 
-Wl,-T,flat.lds test/access.o test/cstart64.o test/printf.o test/print.o 
test/smp.o
test/print.o: In function `print':
/home/dave/kvm/kvm-28/user/test/print.S:19: undefined reference to 
`PSEUDO_SERIAL_PORT'
collect2: ld returned 1 exit status

Looking at 'gcc -E' output, you can see the problem:

...
.globl print
print:
        push %rax
        push %rsi
        push %rdx

        mov %rdi, %rsi
        mov $PSEUDO_SERIAL_PORT, %edx

The PSEUDO_SERIAL_PORT macro isn't getting expanded for some reason.
However, it works in gcc 4.1.  The following patch fixes it for me. 

--- kvm-28/user/test/print.S.orig       2007-07-02 12:57:02.000000000 -0700
+++ kvm-28/user/test/print.S    2007-07-02 12:57:14.000000000 -0700
@@ -16,7 +16,7 @@
        push %rdx
 
        mov %rdi, %rsi
-       mov $PSEUDO_SERIAL_PORT, %edx
+       mov $(PSEUDO_SERIAL_PORT), %edx
 
 putchar:
        cmpb $0, (%rsi)

-- Dave


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to