qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] QEMU 0.2 is out


From: Falk Hueffner
Subject: Re: [Qemu-devel] QEMU 0.2 is out
Date: 03 Jun 2003 15:18:03 +0200
User-agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.5 (cabbage)

Fabrice Bellard <address@hidden> writes:

> Which version of gcc are you using ? Do you use a patched gcc ? Can
> you give me your spec file and the gcc -v log when you compile
> op-i386.c ?

I use gcc 3.3 or 3.4 snapshots usually.

> I am totally unable to get correct code. In particular, I cannot make
> gcc 3.2.3 generate R_ALPHA_BRADDR relocations. Currently, to get
> correct code, I must do the following:
> 
> --
> int __op_param1;
> #define PARAM1 ({ int _r; asm("ldah %0,__op_param1($29) !gprelhigh\n" \
>                                "lda %0,__op_param1(%0) !gprellow" :
>                                "=r"(_r) ); _r; })

Ah yes, this is because gcc 3.2.3 doesn't support visibility("hidden")
yet. If a symbol has global visibility, gcc cannot know it is accessed
with the same gp, since it might be provided by libc for example. I
don't think there's any better way do this with 3.2.3.

> #define CALL(x) asm volatile ("bsr $26, %0" : : "i" (x))
> --
> and use the macro CALL to call a function!

This seems to works for me even with 3.2.3. What happens if you don't
use the macro? Maybe your binutils is too old? I have 2.14.90.0.4-0.1.

Also, concerning the signal handler, siginfo is only filled in with
2.4.20 and newer kernels...

-- 
        Falk




reply via email to

[Prev in Thread] Current Thread [Next in Thread]