Re: stdcall in egcs

Mike Galbraith (mikeg@weiden.de)
Sun, 9 May 1999 19:42:25 +0200 (CEST)


On Sun, 9 May 1999, Andrea Arcangeli wrote:

> On Sun, 9 May 1999, Richard Henderson wrote:
>
> >On Thu, May 06, 1999 at 05:29:27PM +0200, Andrea Arcangeli wrote:
> >> I am using stdcall in my ikd patch. Why is it been removed from egcs?
> >
> >It hasn't been.
>
> Mike told me that it was been removed (maybe it was not the latest
> snapshot?).

The docs still have entries for stdcall, but all recent snapshots choke
on __switch_to()...

egcs-2.93.21 -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fno-omit-frame-pointer -g1 -pg -pipe -DCPU=586 -mcpu=pentium -march=pentium
-c -o process.o process.c
process.c:718: conflicting types for `__switch_to'
/usr/src/linux/include/asm/system.h:15: previous declaration of `__switch_to'
make[1]: *** [process.o] Error 1

from 2.2.8-pre4+ikd/include/asm/system.h...
#ifndef CONFIG_KERNEL_DEBUGGING /* Fix the FASTCALL thing -arca */
extern void FASTCALL(__switch_to(struct task_struct *prev, struct task_struct *next));
#else
extern void __switch_to(struct task_struct *prev, struct task_struct *next)
__attribute__((stdcall));
#endif

and from 2.2.8-pre4+ikd/include/linux/kernel.h
#if defined(__i386__) && !defined(CONFIG_KERNEL_DEBUGGING)
#define FASTCALL(x) x __attribute__((regparm(3)))
#else
#define FASTCALL(x) x
#endif

egcs-1.1.2, older snapshots and various other gcc versions are ok with
the prototype.

> Or maybe it's due some other compiler issue (not the stdcall attribute)
> that the ikd doesn't boot? Mike any ideas?

[ ] Attribute usage changed?
[ ] It has a bug?
[ ] It hates me?
[*] Nope, no ideas that don't generate instant reboot. :)

-Mike

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/