From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f49.google.com (mail-wg0-f49.google.com [74.125.82.49]) by dpdk.org (Postfix) with ESMTP id 1A436C6F8 for ; Tue, 5 May 2015 09:57:32 +0200 (CEST) Received: by wgiu9 with SMTP id u9so10111265wgi.3 for ; Tue, 05 May 2015 00:57:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=/RhK1lEaOgqKDDAuwP4XM9od6GQyBsHy7zBzPnocKWM=; b=OzDSw6Gq8CIVjqEqBEkTr0cAvyLh+D+A7wPuG3zXuu4ckEQWr4JWl1VqEz0WgqbaPV nBAI0fqsqBcehEOZskDY5bsYLCeo2bF5HqRokIuON7wNdW2GxJpFixgohQJImeGpmC1+ 2fA/D6ISfaPUAkx0W29RutVcuvz2OcRN42Y9V+s4zYaOn7EcqdEqeIS8sJ+obBQg8lVV ihgcyuEcOi2diCjpHhzzwotVcPwNu2LBo2yxbD0Xm8FviB3jgoNDwHOvYn5rcHT2PLEh jFsyy2GX0j4QpBmLG8ZjbVhHAGxFfpURDX2d0wqz7HMklOKA5hLvPAbU4+ZXAmsqkBrk jiUQ== MIME-Version: 1.0 X-Received: by 10.180.102.74 with SMTP id fm10mr1560257wib.25.1430812651931; Tue, 05 May 2015 00:57:31 -0700 (PDT) Received: by 10.27.136.70 with HTTP; Tue, 5 May 2015 00:57:31 -0700 (PDT) In-Reply-To: References: Date: Tue, 5 May 2015 10:57:31 +0300 Message-ID: From: Pavel Odintsov To: dev@dpdk.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [dpdk-dev] Issues with rte_hash_crc.h when compiling with C++ X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 May 2015 07:57:32 -0000 Hello! Could anybody help me with this issue? :( In this file widely used enum forward declarations which completely incompatible with C++ and need some rewrite. On Wed, Apr 29, 2015 at 3:17 PM, Pavel Odintsov wrote: > Hello! > > I have C++ application compiles and works nice. But when I include > rte_hash_crc.h header everything goes away. > > CC main.o > In file included from > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:46:= 0, > from > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:48, > from /root/interceptor/main.cpp:25: > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/generic/rte_cpufla= gs.h:50:6: > error: use of enum =E2=80=98rte_cpu_flag_t=E2=80=99 without previous decl= aration > enum rte_cpu_flag_t; > ^ > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/generic/rte_cpufla= gs.h:55:6: > error: use of enum =E2=80=98cpu_register_t=E2=80=99 without previous decl= aration > enum cpu_register_t; > ^ > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/generic/rte_cpufla= gs.h:79:35: > error: uninitialized const =E2=80=98cpu_feature_table=E2=80=99 [-fpermiss= ive] > static const struct feature_entry cpu_feature_table[]; > ^ > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/generic/rte_cpufla= gs.h:64:8: > note: =E2=80=98const struct feature_entry=E2=80=99 has no user-provided d= efault > constructor > struct feature_entry { > ^ > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/generic/rte_cpufla= gs.h:65:11: > note: and the implicitly-defined constructor does not initialize > =E2=80=98uint32_t feature_entry::leaf=E2=80=99 > uint32_t leaf; /**< cpuid leaf */ > ^ > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/generic/rte_cpufla= gs.h:79:53: > error: storage size of =E2=80=98cpu_feature_table=E2=80=99 isn=E2=80=99t = known > static const struct feature_entry cpu_feature_table[]; > ^ > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/generic/rte_cpufla= gs.h:101:31: > error: use of enum =E2=80=98rte_cpu_flag_t=E2=80=99 without previous decl= aration > rte_cpu_get_flag_enabled(enum rte_cpu_flag_t feature); > ^ > In file included from > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:48:= 0, > from /root/interceptor/main.cpp:25: > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h: > In function =E2=80=98int rte_cpu_get_flag_enabled(rte_cpu_flag_t)=E2=80= =99: > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:278= :53: > error: conflicting declaration of C function =E2=80=98int > rte_cpu_get_flag_enabled(rte_cpu_flag_t)=E2=80=99 > rte_cpu_get_flag_enabled(enum rte_cpu_flag_t feature) > ^ > In file included from > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_cpuflags.h:46:= 0, > from > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/rte_hash_crc.h:48, > from /root/interceptor/main.cpp:25: > /usr/src/dpdk-2.0.0/x86_64-native-linuxapp-gcc/include/generic/rte_cpufla= gs.h:101:1: > note: previous declaration =E2=80=98int rte_cpu_get_flag_enabled(int)=E2= =80=99 > rte_cpu_get_flag_enabled(enum rte_cpu_flag_t feature); > ^ > /usr/src/dpdk-2.0.0/mk/internal/rte.compile-pre.mk:145: recipe for > target 'main.o' failed > make[1]: *** [main.o] Error 1 > /usr/src/dpdk-2.0.0/mk/rte.extapp.mk:42: recipe for target 'all' failed > make: *** [all] Error 2 > > I prepared my environment with this manual: > http://www.stableit.ru/2015/04/how-to-code-for-dpdk-with-c.html > > Could anybody help me with this header file and C++? > > -- > Sincerely yours, Pavel Odintsov --=20 Sincerely yours, Pavel Odintsov