Re: Proposal "LUID"

From: Jesse Pollard (pollard@tomcat.admin.navo.hpc.mil)
Date: Wed Apr 19 2000 - 07:45:38 EST


Florian Weimer <fw@deneb.cygnus.argh.org>
> pollard@tomcat.admin.navo.hpc.mil (Jesse Pollard) writes:
>
> > > Also this "feature" forbid some program to run,
> > > program using nested functions like lisp / ada program are some exemple.
> >
> > Neither LISP nor Ada requires execution on stack.
>
> It's true that Ada implementations can use obscure techniques to avoid
> trampolines for nested subprograms. But the GNU Ada Translator uses
> trampolines (actually, it's a feature of the backend, and you can use
> GCC trampolines with most frontends, including the C frontend).

I don't consider a frame pointer + function address pointer to be "obscure".
This has been standard programming for quite some time. The GNU backend
is what generates this artifact, but Ada works quite well on systems that
don't even have a hardware stack.

> Last time I checked, the non-executable stack patch detected properly
> gcc 2.8.x trampolines, but not those generated by GCC 2.95.2.
>
> Anyway, it's slightly amusing that a kernel patch which aims for
> improved security may eventually stop Ada programs from running.

That part is normal - I don't think the gnu Ada has passed the full
test suite (I think -my opinion- that is why it is "gnat" and not Ada). Since
Ada was supposed to (was dropped) run in embeded systems
with minimal stack, it should not put functions on the stack (takes too
much space). Now this doesn't hurt in a general manner, but it does impose
(some) software limits on what can be done with it.
-------------------------------------------------------------------------
Jesse I Pollard, II
Email: pollard@navo.hpc.mil

Any opinions expressed are solely my own.

-
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/



This archive was generated by hypermail 2b29 : Sun Apr 23 2000 - 21:00:15 EST