Remove __P macro usage to fix musl build

__P() is used for compatibility with old K&R C compilers. With ANSI C
this macro has no effect.

This fixes a compilation error with musl libc because of undeclared
__P.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Index: b/md5.c
===================================================================
--- a/md5.c
+++ b/md5.c
@@ -97,21 +97,21 @@
 
 /* Initialize structure containing state of computation.
    (RFC 1321, 3.3: Step 3)  */
-static void md5_init_ctx __P ((struct md5_ctx *ctx));
+static void md5_init_ctx (struct md5_ctx *ctx);
 
 /* Starting with the result of former calls of this function (or the
    initialization function update the context for the next LEN bytes
    starting at BUFFER.
    It is necessary that LEN is a multiple of 64!!! */
-static void md5_process_block __P ((const void *buffer, size_t len,
-				    struct md5_ctx *ctx));
+static void md5_process_block (const void *buffer, size_t len,
+				    struct md5_ctx *ctx);
 
 /* Starting with the result of former calls of this function (or the
    initialization function update the context for the next LEN bytes
    starting at BUFFER.
    It is NOT required that LEN is a multiple of 64.  */
-static void md5_process_bytes __P ((const void *buffer, size_t len,
-				    struct md5_ctx *ctx));
+static void md5_process_bytes (const void *buffer, size_t len,
+				    struct md5_ctx *ctx);
 
 /* Process the remaining bytes in the buffer and put result from CTX
    in first 16 bytes following RESBUF.  The result is always in little
@@ -120,7 +120,7 @@
 
    IMPORTANT: On some systems it is required that RESBUF is correctly
    aligned for a 32 bits value.  */
-static void *md5_finish_ctx __P ((struct md5_ctx *ctx, void *resbuf));
+static void *md5_finish_ctx (struct md5_ctx *ctx, void *resbuf);
 
 //----------------------------------------------------------------------------
 //--------end of md5.h
