[PATCH 14/23] mprotect.c: Remove warning for no prototype
gedare at rtems.org
Thu Sep 4 19:06:18 UTC 2014
On Thu, Sep 4, 2014 at 1:10 PM, Joel Sherrill <joel.sherrill at oarcorp.com> wrote:
> On 9/4/2014 11:19 AM, Gedare Bloom wrote:
>> On Wed, Sep 3, 2014 at 11:26 AM, Joel Sherrill
>> <joel.sherrill at oarcorp.com> wrote:
>>> cpukit/posix/src/mprotect.c | 23 ++++++++++++++---------
>>> 1 file changed, 14 insertions(+), 9 deletions(-)
>>> diff --git a/cpukit/posix/src/mprotect.c b/cpukit/posix/src/mprotect.c
>>> index f2f8af6..51b565e 100644
>>> --- a/cpukit/posix/src/mprotect.c
>>> +++ b/cpukit/posix/src/mprotect.c
>>> @@ -3,10 +3,19 @@
>>> * @brief Change Memory Protection
>>> * @ingroup POSIXAPI
>>> + *
>>> + * 12.2.3 Change Memory Protection, P1003.1b-1996, p. 277.
>>> + *
>>> + * This is not a functional version of mprotect() but the SPARC backend
>>> + * for at least gcc 2.8.1 plus gnat 3.13p and gcc 3.0.1 require it to
>>> + * be there and return 0.
>>> + *
>>> + * As of gcc 4.2.2, the gcc SPARC backend doesn't appear to have a
>>> + * way to call this for RTEMS anymore but it doesn't hurt to leave it.
>>> - * COPYRIGHT (c) 1989-2007.
>>> + * COPYRIGHT (c) 1989-2014.
>>> * On-Line Applications Research Corporation (OAR).
>>> * The license and distribution terms for this file may be
>>> @@ -21,16 +30,12 @@
>>> #include <unistd.h>
>>> - * 12.2.3 Change Memory Protection, P1003.1b-1996, p. 277.
>>> - *
>>> - * This is not a functional version but the SPARC backend for at least
>>> - * gcc 2.8.1 plus gnat 3.13p and gcc 3.0.1 require it to be there and
>>> - * return 0.
>>> - *
>>> - * As of gcc 4.2.2, the gcc SPARC backend doesn't appear to have a
>>> - * way to call this for RTEMS anymore but it doesn't hurt to leave it.
>>> + * RTEMS does not have <sys/mman.h> so we need a prototype here to
>>> + * avoid warnings.
>>> +int mprotect( const void *, size_t, int );
>> I don't like (despise) adding prototypes to C files just to get rid of
>> this warning. The prototype should be coming from whatever header
>> provides the function, or the function should be declared static.
> We can't make it static as it doesn't solve the problem of providing a
> symbol to satisfy linking. As the comments indicate, this was added to let
> gcc produced SPARC executables actually link.
> Also I didn't see adding <sys/mman.h> when we don't support any of it.
> However, that doesn't mean that adding <sys/mman.h> and a bunch of
> stubs that return ENOSYS isn't an acceptable option. I just don't want to
> invest the effort now.
Make a note to that effect.
>>> int mprotect(
>>> const void *addr __attribute__((unused)),
>>> size_t len __attribute__((unused)),
>>> devel mailing list
>>> devel at rtems.org
> Joel Sherrill, Ph.D. Director of Research & Development
> joel.sherrill at OARcorp.com On-Line Applications Research
> Ask me about RTEMS: a free RTOS Huntsville AL 35805
> Support Available (256) 722-9985
More information about the devel