[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GRUB2 Build on Mac OS X
From: |
Hollis Blanchard |
Subject: |
Re: GRUB2 Build on Mac OS X |
Date: |
Fri, 9 Dec 2005 16:49:19 -0600 |
User-agent: |
KMail/1.8.2 |
On Thursday 08 December 2005 10:27, Peter Jones wrote:
>
> That being said, what's the reasoning for using this uncommon and
> lossely defined extension in the first place? The way GRUB (both 2 and
> Legacy) uses nested functions, it's no better than just having a method
> vector, and certainly not easier to read.
I do find nested functions very easy to read...
What do you mean by "method vector"?
> Not only that, but the trend
> going forward is towards *less* support of executable stacks, not more.
> I wouldn't expect that to stop with us and for Apple, especially now
> that there's widespread support for non-executable pages on Intel
> hardware.
Yes, this is definitely a problem.
> Would you be amicable to patches which
> change code from using nested functions to a more C-like implementation?
> (I don't mean like the patch in my current GRUB Legacy package;
> something cleaner than that hacky approach.)
Do you have any specific ideas? I'm very interested, but I honestly don't know
how it could be done (other than the method you described of creating custom
structs and passing pointers to those).
> > Enable the executable stack using:
> > 1) Set some bit in the ELF file so the OS knows we want this
> > (that's what linux does).
> > 2) Enable it using some function.
> > 3) Creating our own stack.
>
> There's a major point of contention being ignored here. OS vendors
> don't want to ship executables which require an executable stack. Full
> stop.
Would be alright if we could enable execute permission only on the specific
pages needed (as known by GCC)? GCC provides an ENABLE_EXECUTE_STACK macro,
but it seems that is not currently used on Linux. It is used on the various
BSDs.
> Currently in RHEL and Fedora Core, we (somewhat kludgedly) fix GRUB not
> to need an executable stack for the normal operations that happen during
> grub-install. If we're ever to move to GRUB 2, it'll either need to not
> use nested functions, or I'm going to wind up doing the same
> modifications to it.
>
> I really hope you're willing to entertain patches that remove use of
> nested functions. If so, I'll certainly put some effort that direction
> when next I look at moving RHEL and Fedora to GRUB 2.
I am willing to entertain them.
Marco found a nice description from Roland McGrath on this subject:
https://www.redhat.com/archives/fedora-devel-list/2003-November/msg00838.html
His only suggestions for nested functions were a) do not use function pointers
with them, or b) rewrite them entirely.
-Hollis
- Re: GRUB2 Build on Mac OS X, (continued)
- Re: GRUB2 Build on Mac OS X, Marco Gerards, 2005/12/08
- Re: GRUB2 Build on Mac OS X, Andrei Warkentin, 2005/12/08
- Re: GRUB2 Build on Mac OS X, Marco Gerards, 2005/12/08
- Re: GRUB2 Build on Mac OS X, Andrei Warkentin, 2005/12/08
- Re: GRUB2 Build on Mac OS X, Marco Gerards, 2005/12/08
- Re: GRUB2 Build on Mac OS X, Andrei Warkentin, 2005/12/08
- Re: GRUB2 Build on Mac OS X,
Hollis Blanchard <=
- Re: GRUB2 Build on Mac OS X, Peter Jones, 2005/12/09
- Re: GRUB2 Build on Mac OS X, Marco Gerards, 2005/12/09
- Re: GRUB2 Build on Mac OS X, Yoshinori K. Okuji, 2005/12/09
- Re: GRUB2 Build on Mac OS X, Peter Jones, 2005/12/10
- Re: GRUB2 Build on Mac OS X, Marco Gerards, 2005/12/09
Re: GRUB2 Build on Mac OS X, Andrei Warkentin, 2005/12/08
Re: GRUB2 Build on Mac OS X, andre-smith, 2005/12/08