[PATCH 14/23] mprotect.c: Remove warning for no prototype

Gedare Bloom gedare at rtems.org
Fri Sep 5 01:58:18 UTC 2014


PR, I think it should go to Chris since he has a WIP on it.

On Thu, Sep 4, 2014 at 3:38 PM, Joel Sherrill <joel.sherrill at oarcorp.com> wrote:
>
> On 9/4/2014 2:06 PM, Gedare Bloom wrote:
>> 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
>>> public
>>> 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.
>>>
>>> http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/mman.h.html
>>>
>>> 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.
> PR? Note in code? Where?
>
> I can assign the PR to you. :)
>> -gedare
>>>>>   int mprotect(
>>>>>     const void *addr __attribute__((unused)),
>>>>>     size_t len __attribute__((unused)),
>>>>> --
>>>>> 1.9.3
>>>>>
>>>>> _______________________________________________
>>>>> devel mailing list
>>>>> devel at rtems.org
>>>>> http://lists.rtems.org/mailman/listinfo/devel
>>>
>>>
>>> --
>>> 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
>>>
>
> --
> 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 mailing list