From: Marco Gerards <mgerards@xs4all.nl>
To: The development of GRUB 2 <grub-devel@gnu.org>
Subject: Re: GRUB2 Build on Mac OS X
Date: Thu, 08 Dec 2005 13:26:02 +0100 [thread overview]
Message-ID: <878xuvsrl1.fsf@xs4all.nl> (raw)
In-Reply-To: <E93EC7D9-E7D1-4AE8-A98E-9D8967D20328@speakeasy.net> (Andre Smith's message of "Thu, 8 Dec 2005 01:10:19 -0500")
Andre Smith <andre-smith@speakeasy.net> writes:
Hi Andre,
> The GRUB2 build fails on Mac OS X, due to non-support of nested
> functions in GCC on OS X. The reasoning behind this, the GCC
> implementation of nested functions uses stack based execution.
> Hackers use buffer overflows, along with stack based execution, to
> exploit weaknesses in poorly written code. Apple has decided to
> disable nested function support until a volunteer has patched GCC
> with a non-stack based implementation of nested functions.
Right, there has been a discussion about this on the list.
> I would like to see the PowerPC port of Open Solaris build on Mac
> hardware. I have been working on patches for the code that uses
> nested functions in the GRUB2 project and I would like get some
> feedback from the list. I would also like to solicit help in testing
> the patches against the official tree for regression testing.
It's not acceptable to me to just remove the nested functions because
someone broke some unofficial build of gcc. When an executable stack
is not available, there are the following options (as I see them):
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.
So on the apple nested functions should not cause an error. Perhaps a
serious warning that the stack is not available and a runtime error.
In that case we can use the fixes above.
So on the apple the right thing to do would be:
1) Fix gcc so nested functions are not fatal.
2) fix GRUB using the methods I described above.
What kind of restrictions does opensolaris have on nested functions?
If it doesn't cause an error, the problem for opensolaris is not that
big.
Thanks,
Marco
next prev parent reply other threads:[~2005-12-08 12:26 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-08 6:10 GRUB2 Build on Mac OS X Andre Smith
2005-12-08 12:26 ` Marco Gerards [this message]
2005-12-08 16:27 ` Peter Jones
2005-12-08 18:25 ` Yoshinori K. Okuji
2005-12-08 23:40 ` Peter Jones
2005-12-10 0:18 ` Yoshinori K. Okuji
2005-12-10 14:32 ` Marco Gerards
2005-12-08 18:45 ` Marco Gerards
2005-12-08 19:10 ` Andrei Warkentin
2005-12-08 20:00 ` Marco Gerards
2005-12-08 20:10 ` Andrei Warkentin
2005-12-08 20:14 ` Marco Gerards
2005-12-08 20:51 ` Andrei Warkentin
2005-12-09 22:49 ` Hollis Blanchard
2005-12-09 23:07 ` Peter Jones
2005-12-09 23:32 ` Marco Gerards
2005-12-10 0:23 ` Yoshinori K. Okuji
2005-12-10 18:52 ` Peter Jones
2005-12-09 23:26 ` Marco Gerards
2005-12-08 15:09 ` Andrei Warkentin
-- strict thread matches above, loose matches on Subject: below --
2005-12-08 22:01 andre-smith
2005-12-08 23:06 ` Andrei Warkentin
2005-12-09 21:34 ` Marco Gerards
2005-12-08 23:18 ` Andrei Warkentin
2005-12-09 21:40 ` Marco Gerards
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=878xuvsrl1.fsf@xs4all.nl \
--to=mgerards@xs4all.nl \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.