[Top][All Lists]
[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