* [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5
@ 2014-12-17 12:55 Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 1/5] test-devargs: fix misplaced braces in strncmp call Olivier Matz
` (6 more replies)
0 siblings, 7 replies; 10+ messages in thread
From: Olivier Matz @ 2014-12-17 12:55 UTC (permalink / raw)
To: dev
This series are compilation fixes seen with clang-3.5 on linux.
Olivier Matz (5):
test-devargs: fix misplaced braces in strncmp call
examples/l3fwd: fix compilation with clang 3.5
examples/netmap: fix overflow in ioctl operation
examples/vm_power_manager: move -lvirt in LDLIBS
examples/vm_power_manager: fix initialization of cmdline token
app/test/test_devargs.c | 2 +-
examples/l3fwd/main.c | 4 +++-
examples/netmap_compat/lib/compat_netmap.c | 2 +-
examples/netmap_compat/lib/compat_netmap.h | 2 +-
examples/vm_power_manager/Makefile | 4 +++-
examples/vm_power_manager/vm_power_cli.c | 2 +-
6 files changed, 10 insertions(+), 6 deletions(-)
--
2.1.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-dev] [PATCH 1/5] test-devargs: fix misplaced braces in strncmp call
2014-12-17 12:55 [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5 Olivier Matz
@ 2014-12-17 12:55 ` Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 2/5] examples/l3fwd: fix compilation with clang 3.5 Olivier Matz
` (5 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Olivier Matz @ 2014-12-17 12:55 UTC (permalink / raw)
To: dev
One occurrence call to strncmp had the closing brace in the wrong
place. Changing this form:
if (strncmp(X, Y, sizeof(X) != 0))
which does a comparison of length 1, to
if (strncmp(X, Y, sizeof(X)) != 0)
which does the correct length comparison and then compares the result
to zero in the "if" part.
Seen with clang-3.5:
"error: size argument in 'strncmp' call is a comparison"
This patch is similar to 261386248 but it looks that one occurence
was forgotten.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
app/test/test_devargs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/test/test_devargs.c b/app/test/test_devargs.c
index dcbdd09..3d9f7bc 100644
--- a/app/test/test_devargs.c
+++ b/app/test/test_devargs.c
@@ -105,7 +105,7 @@ test_devargs(void)
devargs->pci.addr.devid != 0 ||
devargs->pci.addr.function != 1)
goto fail;
- if (strncmp(devargs->args, "", sizeof(devargs->args) != 0))
+ if (strncmp(devargs->args, "", sizeof(devargs->args)) != 0)
goto fail;
free_devargs_list();
--
2.1.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-dev] [PATCH 2/5] examples/l3fwd: fix compilation with clang 3.5
2014-12-17 12:55 [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5 Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 1/5] test-devargs: fix misplaced braces in strncmp call Olivier Matz
@ 2014-12-17 12:55 ` Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 3/5] examples/netmap: fix overflow in ioctl operation Olivier Matz
` (4 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Olivier Matz @ 2014-12-17 12:55 UTC (permalink / raw)
To: dev
Fix the following error:
error: unused function 'l3fwd_simple_forward'
The l3fwd_simple_forward() is maybe unused, due to compilation options
(APP_LOOKUP_METHOD, ENABLE_MULTI_BUFFER_OPTIMIZE). As the combinatorial
is quite big, it looks simpler to add the __attribute__((unused)) on
this function, so that the compiler does not complain.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
examples/l3fwd/main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
index bf0fcdb..918f2cb 100644
--- a/examples/l3fwd/main.c
+++ b/examples/l3fwd/main.c
@@ -724,9 +724,11 @@ get_ipv6_dst_port(void *ipv6_hdr, uint8_t portid, lookup6_struct_t * ipv6_l3fwd
}
#endif
+static inline void l3fwd_simple_forward(struct rte_mbuf *m, uint8_t portid,
+ struct lcore_conf *qconf) __attribute__((unused));
+
#if ((APP_LOOKUP_METHOD == APP_LOOKUP_EXACT_MATCH) && \
(ENABLE_MULTI_BUFFER_OPTIMIZE == 1))
-static inline void l3fwd_simple_forward(struct rte_mbuf *m, uint8_t portid, struct lcore_conf *qconf);
#define MASK_ALL_PKTS 0xf
#define EXECLUDE_1ST_PKT 0xe
--
2.1.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-dev] [PATCH 3/5] examples/netmap: fix overflow in ioctl operation
2014-12-17 12:55 [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5 Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 1/5] test-devargs: fix misplaced braces in strncmp call Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 2/5] examples/l3fwd: fix compilation with clang 3.5 Olivier Matz
@ 2014-12-17 12:55 ` Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 4/5] examples/vm_power_manager: move -lvirt in LDLIBS Olivier Matz
` (3 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Olivier Matz @ 2014-12-17 12:55 UTC (permalink / raw)
To: dev
Compiling the netmap example with clang-3.5 triggered the following
warning:
compat_netmap.c:783:11: error: overflow converting case value to
switch condition type (3225184658 to 18446744072639768978)
[-Werror,-Wswitch]
case NIOCREGIF:
^
Indeed, an ioctl value should be an unsigned 32 bits, not an int.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
examples/netmap_compat/lib/compat_netmap.c | 2 +-
examples/netmap_compat/lib/compat_netmap.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/examples/netmap_compat/lib/compat_netmap.c b/examples/netmap_compat/lib/compat_netmap.c
index 6a4737a..1d86ef0 100644
--- a/examples/netmap_compat/lib/compat_netmap.c
+++ b/examples/netmap_compat/lib/compat_netmap.c
@@ -765,7 +765,7 @@ rte_netmap_close(__rte_unused int fd)
return (rc);
}
-int rte_netmap_ioctl(int fd, int op, void *param)
+int rte_netmap_ioctl(int fd, uint32_t op, void *param)
{
int ret;
diff --git a/examples/netmap_compat/lib/compat_netmap.h b/examples/netmap_compat/lib/compat_netmap.h
index f8a7812..3dc7a2f 100644
--- a/examples/netmap_compat/lib/compat_netmap.h
+++ b/examples/netmap_compat/lib/compat_netmap.h
@@ -71,7 +71,7 @@ int rte_netmap_init_port(uint8_t portid,
const struct rte_netmap_port_conf *conf);
int rte_netmap_close(int fd);
-int rte_netmap_ioctl(int fd, int op, void *param);
+int rte_netmap_ioctl(int fd, uint32_t op, void *param);
int rte_netmap_open(const char *pathname, int flags);
int rte_netmap_poll(struct pollfd *fds, nfds_t nfds, int timeout);
void *rte_netmap_mmap(void *addr, size_t length, int prot, int flags, int fd,
--
2.1.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-dev] [PATCH 4/5] examples/vm_power_manager: move -lvirt in LDLIBS
2014-12-17 12:55 [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5 Olivier Matz
` (2 preceding siblings ...)
2014-12-17 12:55 ` [dpdk-dev] [PATCH 3/5] examples/netmap: fix overflow in ioctl operation Olivier Matz
@ 2014-12-17 12:55 ` Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 5/5] examples/vm_power_manager: fix initialization of cmdline token Olivier Matz
` (2 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Olivier Matz @ 2014-12-17 12:55 UTC (permalink / raw)
To: dev
The argument -lvirt is a linker parameter, not a CFLAG.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
examples/vm_power_manager/Makefile | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/examples/vm_power_manager/Makefile b/examples/vm_power_manager/Makefile
index b0a1037..113dbc4 100644
--- a/examples/vm_power_manager/Makefile
+++ b/examples/vm_power_manager/Makefile
@@ -45,9 +45,11 @@ APP = vm_power_mgr
SRCS-y := main.c vm_power_cli.c power_manager.c channel_manager.c
SRCS-y += channel_monitor.c
-CFLAGS += -O3 -lvirt -I$(RTE_SDK)/lib/librte_power/
+CFLAGS += -O3 -I$(RTE_SDK)/lib/librte_power/
CFLAGS += $(WERROR_FLAGS)
+LDLIBS += -lvirt
+
# workaround for a gcc bug with noreturn attribute
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
--
2.1.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-dev] [PATCH 5/5] examples/vm_power_manager: fix initialization of cmdline token
2014-12-17 12:55 [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5 Olivier Matz
` (3 preceding siblings ...)
2014-12-17 12:55 ` [dpdk-dev] [PATCH 4/5] examples/vm_power_manager: move -lvirt in LDLIBS Olivier Matz
@ 2014-12-17 12:55 ` Olivier Matz
2014-12-17 14:08 ` [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5 Bruce Richardson
2014-12-17 23:44 ` Thomas Monjalon
6 siblings, 0 replies; 10+ messages in thread
From: Olivier Matz @ 2014-12-17 12:55 UTC (permalink / raw)
To: dev
Fix a typo: cmdline_parse_token_string_t was used in place of
cmdline_parse_num_string_t.
Seen with clang-3.5.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
examples/vm_power_manager/vm_power_cli.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/vm_power_manager/vm_power_cli.c b/examples/vm_power_manager/vm_power_cli.c
index bd685fd..7690d14 100644
--- a/examples/vm_power_manager/vm_power_cli.c
+++ b/examples/vm_power_manager/vm_power_cli.c
@@ -624,7 +624,7 @@ cmd_set_cpu_freq_parsed(void *parsed_result, struct cmdline *cl,
cmdline_parse_token_string_t cmd_set_cpu_freq =
TOKEN_STRING_INITIALIZER(struct cmd_set_cpu_freq_result,
set_cpu_freq, "set_cpu_freq");
-cmdline_parse_token_string_t cmd_set_cpu_freq_core_num =
+cmdline_parse_token_num_t cmd_set_cpu_freq_core_num =
TOKEN_NUM_INITIALIZER(struct cmd_set_cpu_freq_result,
core_num, UINT8);
cmdline_parse_token_string_t cmd_set_cpu_freq_cmd_cmd =
--
2.1.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5
2014-12-17 12:55 [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5 Olivier Matz
` (4 preceding siblings ...)
2014-12-17 12:55 ` [dpdk-dev] [PATCH 5/5] examples/vm_power_manager: fix initialization of cmdline token Olivier Matz
@ 2014-12-17 14:08 ` Bruce Richardson
2014-12-17 14:24 ` Bruce Richardson
2014-12-17 23:44 ` Thomas Monjalon
6 siblings, 1 reply; 10+ messages in thread
From: Bruce Richardson @ 2014-12-17 14:08 UTC (permalink / raw)
To: Olivier Matz; +Cc: dev
On Wed, Dec 17, 2014 at 01:55:20PM +0100, Olivier Matz wrote:
> This series are compilation fixes seen with clang-3.5 on linux.
>
> Olivier Matz (5):
> test-devargs: fix misplaced braces in strncmp call
> examples/l3fwd: fix compilation with clang 3.5
> examples/netmap: fix overflow in ioctl operation
> examples/vm_power_manager: move -lvirt in LDLIBS
> examples/vm_power_manager: fix initialization of cmdline token
>
> app/test/test_devargs.c | 2 +-
> examples/l3fwd/main.c | 4 +++-
> examples/netmap_compat/lib/compat_netmap.c | 2 +-
> examples/netmap_compat/lib/compat_netmap.h | 2 +-
> examples/vm_power_manager/Makefile | 4 +++-
> examples/vm_power_manager/vm_power_cli.c | 2 +-
> 6 files changed, 10 insertions(+), 6 deletions(-)
>
> --
> 2.1.3
>
Interesting. I've just upgraded to Fedora 21, and I'm getting a lot of other,
different errors on compilation using its version of clang (3.4.2). Patches soon
to follow, but I'm surprised that they don't show up in clang 3.5. Perhaps they
are just compiler bugs in the Fedora version.
Examples of the errors are shown below.
/Bruce
CC cmdline_rdline.o
/home/bruce/dpdk.org/lib/librte_cmdline/cmdline_rdline.c:249:27: fatal error: equality comparison with extraneous parentheses [-Wparentheses-equality]
if (((&rdl->left)->len == 0))
~~~~~~~~~~~~~~~~~~^~~~
/home/bruce/dpdk.org/lib/librte_cmdline/cmdline_rdline.c:249:27: note: remove extraneous parentheses around the comparison to silence this warning
if (((&rdl->left)->len == 0))
~ ^ ~
/home/bruce/dpdk.org/lib/librte_cmdline/cmdline_rdline.c:249:27: note: use '=' to turn this equality comparison into an assignment
if (((&rdl->left)->len == 0))
^~
=
1 error generated.
CC eal.o
clang: fatal error: argument unused during compilation: '-I /home/bruce/dpdk.org/x86_64-native-linuxap
/home/bruce/dpdk.org/mk/internal/rte.compile-pre.mk:126: recipe for target 'eal.o' failed
gmake[7]: *** [eal.o] Error 1
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5
2014-12-17 14:08 ` [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5 Bruce Richardson
@ 2014-12-17 14:24 ` Bruce Richardson
2014-12-19 18:00 ` Bruce Richardson
0 siblings, 1 reply; 10+ messages in thread
From: Bruce Richardson @ 2014-12-17 14:24 UTC (permalink / raw)
To: Olivier Matz; +Cc: dev
On Wed, Dec 17, 2014 at 02:08:27PM +0000, Bruce Richardson wrote:
> On Wed, Dec 17, 2014 at 01:55:20PM +0100, Olivier Matz wrote:
> > This series are compilation fixes seen with clang-3.5 on linux.
> >
> > Olivier Matz (5):
> > test-devargs: fix misplaced braces in strncmp call
> > examples/l3fwd: fix compilation with clang 3.5
> > examples/netmap: fix overflow in ioctl operation
> > examples/vm_power_manager: move -lvirt in LDLIBS
> > examples/vm_power_manager: fix initialization of cmdline token
> >
> > app/test/test_devargs.c | 2 +-
> > examples/l3fwd/main.c | 4 +++-
> > examples/netmap_compat/lib/compat_netmap.c | 2 +-
> > examples/netmap_compat/lib/compat_netmap.h | 2 +-
> > examples/vm_power_manager/Makefile | 4 +++-
> > examples/vm_power_manager/vm_power_cli.c | 2 +-
> > 6 files changed, 10 insertions(+), 6 deletions(-)
> >
> > --
> > 2.1.3
> >
>
> Interesting. I've just upgraded to Fedora 21, and I'm getting a lot of other,
> different errors on compilation using its version of clang (3.4.2). Patches soon
> to follow, but I'm surprised that they don't show up in clang 3.5. Perhaps they
> are just compiler bugs in the Fedora version.
> Examples of the errors are shown below.
>
> /Bruce
>
This is the latest compile problem I see on Fedora 21 with clang. Anyone care
to suggest a suitable fix?
CC rte_eth_bond_args.o
/home/bruce/dpdk.org/lib/librte_pmd_bond/rte_eth_bond_args.c:237:1201: fatal error: array index 3 is past the end of the array (which contains 3 elements) [-Warray-bounds]
if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (("l2")) && __builtin_constant_p (value) && (__s1_len = strlen (("l2")), __s2_len = strlen (value), (!((size_t)(const void *)((("l2")) + 1) - (size_t)(const void *)(("l2")) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((value) + 1) - (size_t)(const void *)(value) == 1) || __s2_len >= 4)) ? __builtin_strcmp (("l2"), value) : (__builtin_constant_p (("l2")) && ((size_t)(const void *)((("l2")) + 1) - (size_t)(const void *)(("l2")) == 1) && (__s1_len = strlen (("l2")), __s1_len < 4) ? (__builtin_constant_p (value) && ((size_t)(const void *)((value) + 1) - (size_t)(const void *)(value) == 1) ? __builtin_strcmp (("l2"), value) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (value); int __result = (((const unsigned char *) (const char *) (("l2")))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (("l2")))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (("l2")))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (("l2")))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (value) && ((size_t)(const void *)((value) + 1) - (size_t)(const void *)(value) == 1) && (__s2_len = strlen (value), __s2_len < 4) ? (__builtin_constant_p (("l2")) && ((size_t)(const void *)((("l2")) + 1) - (size_t)(const void *)(("l2")) == 1) ? __builtin_strcmp (("l2"), value) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (("l2")); int __result = (((const unsigned char *) (const char *) (value))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (value))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (value))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (value))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (("l2"), value)))); }) == 0)
The offending line is the seemingly innoculous:
237 if (strcmp(PMD_BOND_XMIT_POLICY_LAYER2_KVARG, value) == 0)
where the first parameter is the constant value "12".
Any thoughts in the community?
/Bruce
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5
2014-12-17 12:55 [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5 Olivier Matz
` (5 preceding siblings ...)
2014-12-17 14:08 ` [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5 Bruce Richardson
@ 2014-12-17 23:44 ` Thomas Monjalon
6 siblings, 0 replies; 10+ messages in thread
From: Thomas Monjalon @ 2014-12-17 23:44 UTC (permalink / raw)
To: Olivier Matz; +Cc: dev
> This series are compilation fixes seen with clang-3.5 on linux.
>
> Olivier Matz (5):
> test-devargs: fix misplaced braces in strncmp call
> examples/l3fwd: fix compilation with clang 3.5
> examples/netmap: fix overflow in ioctl operation
> examples/vm_power_manager: move -lvirt in LDLIBS
> examples/vm_power_manager: fix initialization of cmdline token
Applied
Thanks
--
Thomas
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5
2014-12-17 14:24 ` Bruce Richardson
@ 2014-12-19 18:00 ` Bruce Richardson
0 siblings, 0 replies; 10+ messages in thread
From: Bruce Richardson @ 2014-12-19 18:00 UTC (permalink / raw)
To: Olivier Matz; +Cc: dev
On Wed, Dec 17, 2014 at 02:24:38PM +0000, Bruce Richardson wrote:
> On Wed, Dec 17, 2014 at 02:08:27PM +0000, Bruce Richardson wrote:
> > On Wed, Dec 17, 2014 at 01:55:20PM +0100, Olivier Matz wrote:
> > > This series are compilation fixes seen with clang-3.5 on linux.
> > >
> > > Olivier Matz (5):
> > > test-devargs: fix misplaced braces in strncmp call
> > > examples/l3fwd: fix compilation with clang 3.5
> > > examples/netmap: fix overflow in ioctl operation
> > > examples/vm_power_manager: move -lvirt in LDLIBS
> > > examples/vm_power_manager: fix initialization of cmdline token
> > >
> > > app/test/test_devargs.c | 2 +-
> > > examples/l3fwd/main.c | 4 +++-
> > > examples/netmap_compat/lib/compat_netmap.c | 2 +-
> > > examples/netmap_compat/lib/compat_netmap.h | 2 +-
> > > examples/vm_power_manager/Makefile | 4 +++-
> > > examples/vm_power_manager/vm_power_cli.c | 2 +-
> > > 6 files changed, 10 insertions(+), 6 deletions(-)
> > >
> > > --
> > > 2.1.3
> > >
> >
> > Interesting. I've just upgraded to Fedora 21, and I'm getting a lot of other,
> > different errors on compilation using its version of clang (3.4.2). Patches soon
> > to follow, but I'm surprised that they don't show up in clang 3.5. Perhaps they
> > are just compiler bugs in the Fedora version.
> > Examples of the errors are shown below.
> >
> > /Bruce
> >
>
> This is the latest compile problem I see on Fedora 21 with clang. Anyone care
> to suggest a suitable fix?
>
> CC rte_eth_bond_args.o
> /home/bruce/dpdk.org/lib/librte_pmd_bond/rte_eth_bond_args.c:237:1201: fatal error: array index 3 is past the end of the array (which contains 3 elements) [-Warray-bounds]
> if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (("l2")) && __builtin_constant_p (value) && (__s1_len = strlen (("l2")), __s2_len = strlen (value), (!((size_t)(const void *)((("l2")) + 1) - (size_t)(const void *)(("l2")) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((value) + 1) - (size_t)(const void *)(value) == 1) || __s2_len >= 4)) ? __builtin_strcmp (("l2"), value) : (__builtin_constant_p (("l2")) && ((size_t)(const void *)((("l2")) + 1) - (size_t)(const void *)(("l2")) == 1) && (__s1_len = strlen (("l2")), __s1_len < 4) ? (__builtin_constant_p (value) && ((size_t)(const void *)((value) + 1) - (size_t)(const void *)(value) == 1) ? __builtin_strcmp (("l2"), value) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (value); int __result = (((const unsigned char *) (const char *) (("l2")))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (("l2")))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (("l2")))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (("l2")))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (value) && ((size_t)(const void *)((value) + 1) - (size_t)(const void *)(value) == 1) && (__s2_len = strlen (value), __s2_len < 4) ? (__builtin_constant_p (("l2")) && ((size_t)(const void *)((("l2")) + 1) - (size_t)(const void *)(("l2")) == 1) ? __builtin_strcmp (("l2"), value) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (("l2")); int __result = (((const unsigned char *) (const char *) (value))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (value))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (value))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (value))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (("l2"), value)))); }) == 0)
>
> The offending line is the seemingly innoculous:
> 237 if (strcmp(PMD_BOND_XMIT_POLICY_LAYER2_KVARG, value) == 0)
>
> where the first parameter is the constant value "12".
>
> Any thoughts in the community?
>
> /Bruce
Is anyone else seeing issues with clang on Fedora 21? I have tried a number of
systems here, and on two of them (one board upgraded from Fedora 20, and another
VM freshly installed from an iso image), I get the errors referred to in the last
two mails on this thread. However, on two other systems (again one upgraded, one
freshly installed), I see no compilation issues at all.
It very much looks to me like a clang or system setup issue, rather than a DPDK
one, but I'm just curious if anyone else has seen any problems?
/Bruce
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2014-12-19 18:01 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-17 12:55 [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5 Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 1/5] test-devargs: fix misplaced braces in strncmp call Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 2/5] examples/l3fwd: fix compilation with clang 3.5 Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 3/5] examples/netmap: fix overflow in ioctl operation Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 4/5] examples/vm_power_manager: move -lvirt in LDLIBS Olivier Matz
2014-12-17 12:55 ` [dpdk-dev] [PATCH 5/5] examples/vm_power_manager: fix initialization of cmdline token Olivier Matz
2014-12-17 14:08 ` [dpdk-dev] [PATCH 0/5] fix compilation issues seen with clang-3.5 Bruce Richardson
2014-12-17 14:24 ` Bruce Richardson
2014-12-19 18:00 ` Bruce Richardson
2014-12-17 23:44 ` Thomas Monjalon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).