* [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h @ 2015-02-11 8:50 Stefan Puiu 2015-02-13 8:25 ` Mcnamara, John ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Stefan Puiu @ 2015-02-11 8:50 UTC (permalink / raw) To: dev In C++11 concatenated string literals need to have a space in between. clang 3.4 reports this as an error (and IIRC also gcc-4.8): dpdk/include/rte_pci.h:96:26: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal] Signed-off-by: Stefan Puiu <stefan.puiu@gmail.com> --- lib/librte_eal/common/include/rte_pci.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h index 66ed793..12ae5a7 100644 --- a/lib/librte_eal/common/include/rte_pci.h +++ b/lib/librte_eal/common/include/rte_pci.h @@ -93,10 +93,10 @@ extern struct pci_device_list pci_device_list; /**< Global list of PCI devices. #define SYSFS_PCI_DEVICES "/sys/bus/pci/devices" /** Formatting string for PCI device identifier: Ex: 0000:00:01.0 */ -#define PCI_PRI_FMT "%.4"PRIx16":%.2"PRIx8":%.2"PRIx8".%"PRIx8 +#define PCI_PRI_FMT "%.4" PRIx16 ":%.2" PRIx8 ":%.2" PRIx8 ".%" PRIx8 /** Short formatting string, without domain, for PCI device: Ex: 00:01.0 */ -#define PCI_SHORT_PRI_FMT "%.2"PRIx8":%.2"PRIx8".%"PRIx8 +#define PCI_SHORT_PRI_FMT "%.2" PRIx8 ":%.2" PRIx8 ".%" PRIx8 /** Nb. of values in PCI device identifier format string. */ #define PCI_FMT_NVAL 4 -- 1.7.9.5 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h 2015-02-11 8:50 [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h Stefan Puiu @ 2015-02-13 8:25 ` Mcnamara, John 2015-02-13 10:17 ` Bruce Richardson 2015-02-20 13:18 ` [dpdk-dev] [PATCH 1/2] rte_pci.h: Fix C++11 compilation Stefan Puiu 2015-02-20 13:23 ` Stefan Puiu 2 siblings, 1 reply; 9+ messages in thread From: Mcnamara, John @ 2015-02-13 8:25 UTC (permalink / raw) To: Stefan Puiu, dev > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Stefan Puiu > Sent: Wednesday, February 11, 2015 8:51 AM > To: dev@dpdk.org > Subject: [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h > > In C++11 concatenated string literals need to have a space in between. > clang 3.4 reports this as an error (and IIRC also gcc-4.8): > > dpdk/include/rte_pci.h:96:26: error: invalid suffix on literal; C++11 > requires a space between literal and identifier [-Wreserved-user-defined- > literal] Hi Stefan, That concatenated string literal with PRI* is used in 65 files in the DPDK source. Is that the only compilation error that you got? John ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h 2015-02-13 8:25 ` Mcnamara, John @ 2015-02-13 10:17 ` Bruce Richardson 2015-02-13 10:27 ` Mcnamara, John 0 siblings, 1 reply; 9+ messages in thread From: Bruce Richardson @ 2015-02-13 10:17 UTC (permalink / raw) To: Mcnamara, John; +Cc: dev On Fri, Feb 13, 2015 at 08:25:38AM +0000, Mcnamara, John wrote: > > -----Original Message----- > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Stefan Puiu > > Sent: Wednesday, February 11, 2015 8:51 AM > > To: dev@dpdk.org > > Subject: [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h > > > > In C++11 concatenated string literals need to have a space in between. > > clang 3.4 reports this as an error (and IIRC also gcc-4.8): > > > > dpdk/include/rte_pci.h:96:26: error: invalid suffix on literal; C++11 > > requires a space between literal and identifier [-Wreserved-user-defined- > > literal] > > Hi Stefan, > > That concatenated string literal with PRI* is used in 65 files in the DPDK source. Is that the only compilation error that you got? > > John It should only be a problem in header files. The C files for DPDK source are always to be compiled up with a C compiler - only the headers get included in application C++ code. /Bruce ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h 2015-02-13 10:17 ` Bruce Richardson @ 2015-02-13 10:27 ` Mcnamara, John 2015-02-20 12:26 ` Stefan Puiu 0 siblings, 1 reply; 9+ messages in thread From: Mcnamara, John @ 2015-02-13 10:27 UTC (permalink / raw) To: Richardson, Bruce; +Cc: dev > -----Original Message----- > From: Richardson, Bruce > Sent: Friday, February 13, 2015 10:18 AM > To: Mcnamara, John > Cc: Stefan Puiu; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h > > > > > > > In C++11 concatenated string literals need to have a space in between. > > > clang 3.4 reports this as an error (and IIRC also gcc-4.8): > > > > > > dpdk/include/rte_pci.h:96:26: error: invalid suffix on literal; > > > C++11 requires a space between literal and identifier > > > [-Wreserved-user-defined- literal] > > > > > > That concatenated string literal with PRI* is used in 65 files in the > DPDK source. Is that the only compilation error that you got? > > > > John > > It should only be a problem in header files. The C files for DPDK source > are always to be compiled up with a C compiler - only the headers get > included in application C++ code. > Hi, In that case it only occurs in 3 header files. I guess that patch should be extended to include those as well: $ find lib -name \*.h | xargs grep -l '"PRI' lib/librte_vhost/vhost-net-cdev.h lib/librte_eal/common/include/rte_pci.h lib/librte_mempool/rte_mempool.h John. -- ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h 2015-02-13 10:27 ` Mcnamara, John @ 2015-02-20 12:26 ` Stefan Puiu 0 siblings, 0 replies; 9+ messages in thread From: Stefan Puiu @ 2015-02-20 12:26 UTC (permalink / raw) To: Mcnamara, John; +Cc: dev Hi and thanks for reviewing, I seem to have somehow missed the email for this one and thought it got lost. Sorry. On Fri, Feb 13, 2015 at 12:27 PM, Mcnamara, John <john.mcnamara@intel.com> wrote: >> -----Original Message----- >> From: Richardson, Bruce >> Sent: Friday, February 13, 2015 10:18 AM >> To: Mcnamara, John >> Cc: Stefan Puiu; dev@dpdk.org >> Subject: Re: [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h >> >> > > >> > > In C++11 concatenated string literals need to have a space in between. >> > > clang 3.4 reports this as an error (and IIRC also gcc-4.8): >> > > >> > > dpdk/include/rte_pci.h:96:26: error: invalid suffix on literal; >> > > C++11 requires a space between literal and identifier >> > > [-Wreserved-user-defined- literal] >> > >> > >> > That concatenated string literal with PRI* is used in 65 files in the >> DPDK source. Is that the only compilation error that you got? >> > >> > John >> >> It should only be a problem in header files. The C files for DPDK source >> are always to be compiled up with a C compiler - only the headers get >> included in application C++ code. >> > > Hi, > > In that case it only occurs in 3 header files. I guess that patch should be extended to include those as well: > > $ find lib -name \*.h | xargs grep -l '"PRI' > lib/librte_vhost/vhost-net-cdev.h > lib/librte_eal/common/include/rte_pci.h > lib/librte_mempool/rte_mempool.h Makes sense. Bruce is right, I'm only including headers from C++, the library is compiled using C. It seems I didn't hit the rte_mempool.h because (at least in 1.8.0) that the usage of PRI* is under #ifdef RTE_LIBRTE_MEMPOOL_DEBUG. It's very likely I didn't need the first file in the list. Anyway, I'll send a new version. > > John. > -- > > > > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [dpdk-dev] [PATCH 1/2] rte_pci.h: Fix C++11 compilation 2015-02-11 8:50 [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h Stefan Puiu 2015-02-13 8:25 ` Mcnamara, John @ 2015-02-20 13:18 ` Stefan Puiu 2015-02-20 13:23 ` Stefan Puiu 2 siblings, 0 replies; 9+ messages in thread From: Stefan Puiu @ 2015-02-20 13:18 UTC (permalink / raw) To: dev In C++11 concatenated string literals need to have a space in between. Found with clang++-3.4, IIRC g++-4.8 also complains about this. Sample error message: dpdk/include/rte_pci.h:96:26: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal] Signed-off-by: Stefan Puiu <stefan.puiu@gmail.com> --- lib/librte_eal/common/include/rte_pci.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h index 66ed793..12ae5a7 100644 --- a/lib/librte_eal/common/include/rte_pci.h +++ b/lib/librte_eal/common/include/rte_pci.h @@ -93,10 +93,10 @@ extern struct pci_device_list pci_device_list; /**< Global list of PCI devices. #define SYSFS_PCI_DEVICES "/sys/bus/pci/devices" /** Formatting string for PCI device identifier: Ex: 0000:00:01.0 */ -#define PCI_PRI_FMT "%.4"PRIx16":%.2"PRIx8":%.2"PRIx8".%"PRIx8 +#define PCI_PRI_FMT "%.4" PRIx16 ":%.2" PRIx8 ":%.2" PRIx8 ".%" PRIx8 /** Short formatting string, without domain, for PCI device: Ex: 00:01.0 */ -#define PCI_SHORT_PRI_FMT "%.2"PRIx8":%.2"PRIx8".%"PRIx8 +#define PCI_SHORT_PRI_FMT "%.2" PRIx8 ":%.2" PRIx8 ".%" PRIx8 /** Nb. of values in PCI device identifier format string. */ #define PCI_FMT_NVAL 4 -- 1.7.9.5 >From 12a4d5def7d35bc790b55da01bb9fc0b11e09340 Mon Sep 17 00:00:00 2001 From: Stefan Puiu <stefan.puiu@gmail.com> Date: Fri, 20 Feb 2015 14:47:58 +0200 Subject: [PATCH 2/2] Headers: more C++11 compilation fixes Fixed two more places where non-C++11 string concatenation is used. Spotted by John McNamara. Signed-off-by: Stefan Puiu <stefan.puiu@gmail.com> --- lib/librte_mempool/rte_mempool.h | 8 ++++---- lib/librte_vhost/vhost-net-cdev.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index 3314651..48e9972 100644 --- a/lib/librte_mempool/rte_mempool.h +++ b/lib/librte_mempool/rte_mempool.h @@ -342,7 +342,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp, if (cookie != RTE_MEMPOOL_HEADER_COOKIE1) { rte_log_set_history(0); RTE_LOG(CRIT, MEMPOOL, - "obj=%p, mempool=%p, cookie=%"PRIx64"\n", + "obj=%p, mempool=%p, cookie=%" PRIx64 "\n", obj, mp, cookie); rte_panic("MEMPOOL: bad header cookie (put)\n"); } @@ -352,7 +352,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp, if (cookie != RTE_MEMPOOL_HEADER_COOKIE2) { rte_log_set_history(0); RTE_LOG(CRIT, MEMPOOL, - "obj=%p, mempool=%p, cookie=%"PRIx64"\n", + "obj=%p, mempool=%p, cookie=%" PRIx64 "\n", obj, mp, cookie); rte_panic("MEMPOOL: bad header cookie (get)\n"); } @@ -363,7 +363,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp, cookie != RTE_MEMPOOL_HEADER_COOKIE2) { rte_log_set_history(0); RTE_LOG(CRIT, MEMPOOL, - "obj=%p, mempool=%p, cookie=%"PRIx64"\n", + "obj=%p, mempool=%p, cookie=%" PRIx64 "\n", obj, mp, cookie); rte_panic("MEMPOOL: bad header cookie (audit)\n"); } @@ -372,7 +372,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp, if (cookie != RTE_MEMPOOL_TRAILER_COOKIE) { rte_log_set_history(0); RTE_LOG(CRIT, MEMPOOL, - "obj=%p, mempool=%p, cookie=%"PRIx64"\n", + "obj=%p, mempool=%p, cookie=%" PRIx64 "\n", obj, mp, cookie); rte_panic("MEMPOOL: bad trailer cookie\n"); } diff --git a/lib/librte_vhost/vhost-net-cdev.h b/lib/librte_vhost/vhost-net-cdev.h index 03a5c57..37e4ad2 100644 --- a/lib/librte_vhost/vhost-net-cdev.h +++ b/lib/librte_vhost/vhost-net-cdev.h @@ -55,9 +55,9 @@ char packet[VHOST_MAX_PRINT_BUFF]; \ \ if ((header)) \ - snprintf(packet, VHOST_MAX_PRINT_BUFF, "(%"PRIu64") Header size %d: ", (device->device_fh), (size)); \ + snprintf(packet, VHOST_MAX_PRINT_BUFF, "(%" PRIu64 ") Header size %d: ", (device->device_fh), (size)); \ else \ - snprintf(packet, VHOST_MAX_PRINT_BUFF, "(%"PRIu64") Packet size %d: ", (device->device_fh), (size)); \ + snprintf(packet, VHOST_MAX_PRINT_BUFF, "(%" PRIu64 ") Packet size %d: ", (device->device_fh), (size)); \ for (index = 0; index < (size); index++) { \ snprintf(packet + strnlen(packet, VHOST_MAX_PRINT_BUFF), VHOST_MAX_PRINT_BUFF - strnlen(packet, VHOST_MAX_PRINT_BUFF), \ "%02hhx ", pkt_addr[index]); \ -- 1.7.9.5 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [dpdk-dev] [PATCH 1/2] rte_pci.h: Fix C++11 compilation 2015-02-11 8:50 [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h Stefan Puiu 2015-02-13 8:25 ` Mcnamara, John 2015-02-20 13:18 ` [dpdk-dev] [PATCH 1/2] rte_pci.h: Fix C++11 compilation Stefan Puiu @ 2015-02-20 13:23 ` Stefan Puiu 2015-02-20 13:23 ` [dpdk-dev] [PATCH 2/2] Headers: more C++11 compilation fixes Stefan Puiu 2 siblings, 1 reply; 9+ messages in thread From: Stefan Puiu @ 2015-02-20 13:23 UTC (permalink / raw) To: dev; +Cc: Stefan Puiu From: Stefan Puiu <spuiu@ixiacom.com> In C++11 concatenated string literals need to have a space in between. Found with clang++-3.4, IIRC g++-4.8 also complains about this. Sample error message: dpdk/include/rte_pci.h:96:26: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal] Signed-off-by: Stefan Puiu <stefan.puiu@gmail.com> --- lib/librte_eal/common/include/rte_pci.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h index 66ed793..12ae5a7 100644 --- a/lib/librte_eal/common/include/rte_pci.h +++ b/lib/librte_eal/common/include/rte_pci.h @@ -93,10 +93,10 @@ extern struct pci_device_list pci_device_list; /**< Global list of PCI devices. #define SYSFS_PCI_DEVICES "/sys/bus/pci/devices" /** Formatting string for PCI device identifier: Ex: 0000:00:01.0 */ -#define PCI_PRI_FMT "%.4"PRIx16":%.2"PRIx8":%.2"PRIx8".%"PRIx8 +#define PCI_PRI_FMT "%.4" PRIx16 ":%.2" PRIx8 ":%.2" PRIx8 ".%" PRIx8 /** Short formatting string, without domain, for PCI device: Ex: 00:01.0 */ -#define PCI_SHORT_PRI_FMT "%.2"PRIx8":%.2"PRIx8".%"PRIx8 +#define PCI_SHORT_PRI_FMT "%.2" PRIx8 ":%.2" PRIx8 ".%" PRIx8 /** Nb. of values in PCI device identifier format string. */ #define PCI_FMT_NVAL 4 -- 1.7.9.5 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [dpdk-dev] [PATCH 2/2] Headers: more C++11 compilation fixes 2015-02-20 13:23 ` Stefan Puiu @ 2015-02-20 13:23 ` Stefan Puiu 2015-02-24 1:49 ` Thomas Monjalon 0 siblings, 1 reply; 9+ messages in thread From: Stefan Puiu @ 2015-02-20 13:23 UTC (permalink / raw) To: dev Fixed two more places where non-C++11 string concatenation is used. Spotted by John McNamara. Signed-off-by: Stefan Puiu <stefan.puiu@gmail.com> --- lib/librte_mempool/rte_mempool.h | 8 ++++---- lib/librte_vhost/vhost-net-cdev.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index 3314651..48e9972 100644 --- a/lib/librte_mempool/rte_mempool.h +++ b/lib/librte_mempool/rte_mempool.h @@ -342,7 +342,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp, if (cookie != RTE_MEMPOOL_HEADER_COOKIE1) { rte_log_set_history(0); RTE_LOG(CRIT, MEMPOOL, - "obj=%p, mempool=%p, cookie=%"PRIx64"\n", + "obj=%p, mempool=%p, cookie=%" PRIx64 "\n", obj, mp, cookie); rte_panic("MEMPOOL: bad header cookie (put)\n"); } @@ -352,7 +352,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp, if (cookie != RTE_MEMPOOL_HEADER_COOKIE2) { rte_log_set_history(0); RTE_LOG(CRIT, MEMPOOL, - "obj=%p, mempool=%p, cookie=%"PRIx64"\n", + "obj=%p, mempool=%p, cookie=%" PRIx64 "\n", obj, mp, cookie); rte_panic("MEMPOOL: bad header cookie (get)\n"); } @@ -363,7 +363,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp, cookie != RTE_MEMPOOL_HEADER_COOKIE2) { rte_log_set_history(0); RTE_LOG(CRIT, MEMPOOL, - "obj=%p, mempool=%p, cookie=%"PRIx64"\n", + "obj=%p, mempool=%p, cookie=%" PRIx64 "\n", obj, mp, cookie); rte_panic("MEMPOOL: bad header cookie (audit)\n"); } @@ -372,7 +372,7 @@ static inline void __mempool_check_cookies(const struct rte_mempool *mp, if (cookie != RTE_MEMPOOL_TRAILER_COOKIE) { rte_log_set_history(0); RTE_LOG(CRIT, MEMPOOL, - "obj=%p, mempool=%p, cookie=%"PRIx64"\n", + "obj=%p, mempool=%p, cookie=%" PRIx64 "\n", obj, mp, cookie); rte_panic("MEMPOOL: bad trailer cookie\n"); } diff --git a/lib/librte_vhost/vhost-net-cdev.h b/lib/librte_vhost/vhost-net-cdev.h index 03a5c57..37e4ad2 100644 --- a/lib/librte_vhost/vhost-net-cdev.h +++ b/lib/librte_vhost/vhost-net-cdev.h @@ -55,9 +55,9 @@ char packet[VHOST_MAX_PRINT_BUFF]; \ \ if ((header)) \ - snprintf(packet, VHOST_MAX_PRINT_BUFF, "(%"PRIu64") Header size %d: ", (device->device_fh), (size)); \ + snprintf(packet, VHOST_MAX_PRINT_BUFF, "(%" PRIu64 ") Header size %d: ", (device->device_fh), (size)); \ else \ - snprintf(packet, VHOST_MAX_PRINT_BUFF, "(%"PRIu64") Packet size %d: ", (device->device_fh), (size)); \ + snprintf(packet, VHOST_MAX_PRINT_BUFF, "(%" PRIu64 ") Packet size %d: ", (device->device_fh), (size)); \ for (index = 0; index < (size); index++) { \ snprintf(packet + strnlen(packet, VHOST_MAX_PRINT_BUFF), VHOST_MAX_PRINT_BUFF - strnlen(packet, VHOST_MAX_PRINT_BUFF), \ "%02hhx ", pkt_addr[index]); \ -- 1.7.9.5 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] Headers: more C++11 compilation fixes 2015-02-20 13:23 ` [dpdk-dev] [PATCH 2/2] Headers: more C++11 compilation fixes Stefan Puiu @ 2015-02-24 1:49 ` Thomas Monjalon 0 siblings, 0 replies; 9+ messages in thread From: Thomas Monjalon @ 2015-02-24 1:49 UTC (permalink / raw) To: Stefan Puiu; +Cc: dev 2015-02-20 15:23, Stefan Puiu: > Fixed two more places where non-C++11 string concatenation is > used. Spotted by John McNamara. > > Signed-off-by: Stefan Puiu <stefan.puiu@gmail.com> Both patches merged and applied, thanks. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-02-24 1:50 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-02-11 8:50 [dpdk-dev] [PATCH] Minor C++11 compilation fix for rte_pci.h Stefan Puiu 2015-02-13 8:25 ` Mcnamara, John 2015-02-13 10:17 ` Bruce Richardson 2015-02-13 10:27 ` Mcnamara, John 2015-02-20 12:26 ` Stefan Puiu 2015-02-20 13:18 ` [dpdk-dev] [PATCH 1/2] rte_pci.h: Fix C++11 compilation Stefan Puiu 2015-02-20 13:23 ` Stefan Puiu 2015-02-20 13:23 ` [dpdk-dev] [PATCH 2/2] Headers: more C++11 compilation fixes Stefan Puiu 2015-02-24 1:49 ` 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).