[PATCH] Evaluate syscall parameters on ARM LOAD_ARGS_x macros

Khem Raj kraj at mvista.com
Thu Mar 27 17:07:54 UTC 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Bernhard Fischer wrote:
| On Thu, Mar 27, 2008 at 01:57:02AM -0700, Khem Raj wrote:
|> -----BEGIN PGP SIGNED MESSAGE-----
|> Hash: SHA1
|>
|> Hi
|>
|> While compiling uclibc on thumb and running LTP tests on it I noticed
|> that the sched_setaffinity system calls were failing. The reason is that
|> when the parameters to syscall macros on ARM contain function calls, gcc
|> places the calls to evaluate the parameters at the very end just before
|> the system call instruction (SVC) is called.
|> This corrupts the registers that has been set up for the system call.
|>
|> This patch evaluates the arguments in LOAD_ARGS_x macros and also
|> separates declaration to make it more PPC like. Thanks to Daniel
|> Jacobowitz for this suggestion.
|
| Khem,
|
| Since you seem to use ARM, may i ask you to take a look and clean-up
| syscalls.h? Specifically this one spot:
|
| The INTERNAL_SYSCALL macro is duplicated, apparently needlessly.
| Search for "r7, v3" in libc/sysdeps/linux/arm/bits/syscalls.h

There are 4 different variants of INTERNAL_SYSCALL
EABI/ARM
EABI/THUMB
OABI/ARM
OABI/THUMB

I think we need all of them unless we decide on dropping OABI :)

|
| TIA
|> OK ?
|
| Is this a recent breakage since Pauls thumb patch was applied or was it
| already there before this patch was applied (about two days ago, or the
| like)?

The problem i observed is in revisions before Paul's patches.


- --
Khem Raj
MontaVista Software Inc.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFH69RpUjbQJxVzeZQRAtIWAJ4sP5BaFaTzOo1C65NXYTWor9vDNACdHg01
J0iFCOxl8Gq15xuOufl906s=
=Qqmf
-----END PGP SIGNATURE-----



More information about the uClibc mailing list