[PATCH 14/23] mprotect.c: Remove warning for no prototype
Joel Sherrill
joel.sherrill at oarcorp.com
Thu Sep 4 17:10:03 UTC 2014
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.
>> 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
More information about the devel
mailing list