| Upstream-Status: Backport |
| |
| Backport from https://github.com/xelerance/xl2tpd/commit/9098f64950eb22cf049058d40f647bafdb822174 |
| |
| Signed-off-by: Kai Kang <kai.kang@windriver.com> |
| --- |
| From 9098f64950eb22cf049058d40f647bafdb822174 Mon Sep 17 00:00:00 2001 |
| From: Kai Kang <kai.kang@windriver.com> |
| Date: Wed, 23 Sep 2015 10:41:05 +0800 |
| Subject: [PATCH] Fix build errors caused by inline function with gcc 5 |
| |
| GCC 5 defaults to -std=gnu11 instead of -std=gnu89. And -std=gnu89 |
| employs the GNU89 inline semantics, -std=gnu11 uses the C99 inline |
| semantics. |
| |
| For 'inline' fuction, it is NOT exported by C99. So error messages such as: |
| |
| | control.c:1717: undefined reference to `check_control' |
| |
| For these functions which is not referred by other compile units, make |
| them 'static inline'. |
| |
| For 'extern inline' function, it fails such as: |
| |
| | misc.h:68:20: warning: inline function 'swaps' declared but never defined |
| | extern inline void swaps (void *, int); |
| | ^ |
| |
| Because function swaps() is referred by other compile units, it must be |
| exported. The semantics of 'extern inline' are not same between GNU89 |
| and C99, so remove 'inline' attribute for compatible with GNU89. |
| |
| Ref: |
| https://gcc.gnu.org/gcc-5/porting_to.html |
| |
| Signed-off-by: Kai Kang <kai.kang@windriver.com> |
| --- |
| control.c | 8 ++++---- |
| misc.c | 2 +- |
| misc.h | 2 +- |
| network.c | 4 ++-- |
| 4 files changed, 8 insertions(+), 8 deletions(-) |
| |
| diff --git a/control.c b/control.c |
| index b2891a9..c4a39b5 100644 |
| --- a/control.c |
| +++ b/control.c |
| @@ -1140,7 +1140,7 @@ int control_finish (struct tunnel *t, struct call *c) |
| return 0; |
| } |
| |
| -inline int check_control (const struct buffer *buf, struct tunnel *t, |
| +static inline int check_control (const struct buffer *buf, struct tunnel *t, |
| struct call *c) |
| { |
| /* |
| @@ -1276,7 +1276,7 @@ inline int check_control (const struct buffer *buf, struct tunnel *t, |
| return 0; |
| } |
| |
| -inline int check_payload (struct buffer *buf, struct tunnel *t, |
| +static inline int check_payload (struct buffer *buf, struct tunnel *t, |
| struct call *c) |
| { |
| /* |
| @@ -1382,7 +1382,7 @@ inline int check_payload (struct buffer *buf, struct tunnel *t, |
| #endif |
| return 0; |
| } |
| -inline int expand_payload (struct buffer *buf, struct tunnel *t, |
| +static inline int expand_payload (struct buffer *buf, struct tunnel *t, |
| struct call *c) |
| { |
| /* |
| @@ -1562,7 +1562,7 @@ void send_zlb (void *data) |
| toss (buf); |
| } |
| |
| -inline int write_packet (struct buffer *buf, struct tunnel *t, struct call *c, |
| +static inline int write_packet (struct buffer *buf, struct tunnel *t, struct call *c, |
| int convert) |
| { |
| /* |
| diff --git a/misc.c b/misc.c |
| index 3092401..af90dbf 100644 |
| --- a/misc.c |
| +++ b/misc.c |
| @@ -170,7 +170,7 @@ void do_packet_dump (struct buffer *buf) |
| printf ("}\n"); |
| } |
| |
| -inline void swaps (void *buf_v, int len) |
| +void swaps (void *buf_v, int len) |
| { |
| #ifdef __alpha |
| /* Reverse byte order alpha is little endian so lest save a step. |
| diff --git a/misc.h b/misc.h |
| index aafdc62..caab7a1 100644 |
| --- a/misc.h |
| +++ b/misc.h |
| @@ -65,7 +65,7 @@ extern void l2tp_log (int level, const char *fmt, ...); |
| extern struct buffer *new_buf (int); |
| extern void udppush_handler (int); |
| extern int addfcs (struct buffer *buf); |
| -extern inline void swaps (void *, int); |
| +extern void swaps (void *, int); |
| extern void do_packet_dump (struct buffer *); |
| extern void status (const char *fmt, ...); |
| extern void status_handler (int signal); |
| diff --git a/network.c b/network.c |
| index b1268c6..d324a71 100644 |
| --- a/network.c |
| +++ b/network.c |
| @@ -135,7 +135,7 @@ int init_network (void) |
| return 0; |
| } |
| |
| -inline void extract (void *buf, int *tunnel, int *call) |
| +static inline void extract (void *buf, int *tunnel, int *call) |
| { |
| /* |
| * Extract the tunnel and call #'s, and fix the order of the |
| @@ -155,7 +155,7 @@ inline void extract (void *buf, int *tunnel, int *call) |
| } |
| } |
| |
| -inline void fix_hdr (void *buf) |
| +static inline void fix_hdr (void *buf) |
| { |
| /* |
| * Fix the byte order of the header |
| -- |
| 2.6.1 |
| |