The crc32 definition should be between : #elif defined(__arm__) || defined(__aarch64__)
#else #error "Need to define PLATFORM_DEPENDENT_HASH32 macro" #endif so it should not affect a x86 build. On 13 November 2015 at 09:54, Maxim Uvarov <maxim.uva...@linaro.org> wrote: > On 11/13/2015 10:29, Alexandru Badicioiu wrote: > >> Compile with -march=armv8-a+crc. >> >> Alex >> >> ok, now arm64 looks like work, but other arches broken: > > ./configure --with-platform=linux-generic > --prefix=/builds/check-odp-new.git/new-build --enable-test-perf > --with-openssl-path=/builds/check-odp-new.git/installed/x86_64-i386/openssl-OpenSSL_1_0_1h > --enable-test-vald > --with-cunit-path=/builds/check-odp-new.git/installed/x86_64-i386/cunit-2.1-3 > CFLAGS=-m32 LDFLAGS=-m32 > odp_name_table.c: In function 'check_secondary_hash': > odp_name_table.c:366:4: error: right shift count >= width of type [-Werror] > if ((hash_tbl_entry >> 48) == 0x7FFF) > ^ > odp_name_table.c:368:4: error: right shift count >= width of type [-Werror] > else if ((hash_tbl_entry >> 48) == 0) > ^ > cc1: all warnings being treated as errors > > > ./configure --with-platform=linux-generic > --prefix=/builds/check-odp-new.git/new-build --host=arm-linux-gnueabihf > --enable-test-perf > --with-openssl-path=/builds/check-odp-new.git/installed/arm/openssl-OpenSSL_1_0_1h > --enable-test-vald > --with-cunit-path=/builds/check-odp-new.git/installed/arm/cunit-2.1-3 > configure: WARNING: using cross tools not prefixed with host triplet > odp_name_table.c: In function 'check_secondary_hash': > odp_name_table.c:366:4: error: right shift count >= width of type [-Werror] > if ((hash_tbl_entry >> 48) == 0x7FFF) > ^ > odp_name_table.c:368:4: error: right shift count >= width of type [-Werror] > else if ((hash_tbl_entry >> 48) == 0) > ^ > odp_name_table.c: In function 'hash_name_and_kind': > odp_name_table.c:158:2: error: invalid 'asm': invalid operand for code 'w' > __asm__("crc32w %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value)); > ^ > odp_name_table.c:158:2: error: invalid 'asm': invalid operand for code 'w' > odp_name_table.c:158:2: error: invalid 'asm': invalid operand for code 'w' > odp_name_table.c:158:2: error: invalid 'asm': invalid operand for code 'w' > __asm__("crc32w %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value)); > ^ > odp_name_table.c:158:2: error: invalid 'asm': invalid operand for code 'w' > odp_name_table.c:158:2: error: invalid 'asm': invalid operand for code 'w' > odp_name_table.c:158:2: error: invalid 'asm': invalid operand for code 'w' > __asm__("crc32w %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value)); > ^ > odp_name_table.c:158:2: error: invalid 'asm': invalid operand for code 'w' > odp_name_table.c:158:2: error: invalid 'asm': invalid operand for code 'w' > odp_name_table.c:158:2: error: invalid 'asm': invalid operand for code 'w' > __asm__("crc32w %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value)); > ^ > odp_name_table.c:158:2: error: invalid 'asm': invalid operand for code 'w' > odp_name_table.c:158:2: error: invalid 'asm': invalid operand for code 'w' > odp_pkt_queue.c: In function '_odp_queue_pool_create': > odp_pkt_queue.c:218:9: error: cast from pointer to integer of different > size [-Werror=pointer-to-int-cast] > return (_odp_int_queue_pool_t)pool; > ^ > odp_pkt_queue.c: In function '_odp_pkt_queue_create': > odp_pkt_queue.c:226:9: error: cast to pointer from integer of different > size [-Werror=int-to-pointer-cast] > pool = (queue_pool_t *)queue_pool; > ^ > odp_pkt_queue.c: In function '_odp_pkt_queue_append': > odp_pkt_queue.c:242:9: error: cast to pointer from integer of different > size [-Werror=int-to-pointer-cast] > pool = (queue_pool_t *)queue_pool; > ^ > odp_pkt_queue.c: In function '_odp_pkt_queue_remove': > odp_pkt_queue.c:299:9: error: cast to pointer from integer of different > size [-Werror=int-to-pointer-cast] > pool = (queue_pool_t *)queue_pool; > ^ > odp_pkt_queue.c: In function '_odp_pkt_queue_stats_print': > odp_pkt_queue.c:350:9: error: cast to pointer from integer of different > size [-Werror=int-to-pointer-cast] > pool = (queue_pool_t *)queue_pool; > ^ > odp_pkt_queue.c: In function '_odp_queue_pool_destroy': > odp_pkt_queue.c:370:9: error: cast to pointer from integer of different > size [-Werror=int-to-pointer-cast] > pool = (queue_pool_t *)queue_pool; > > > > > On 13 November 2015 at 09:23, Maxim Uvarov <maxim.uva...@linaro.org >> <mailto:maxim.uva...@linaro.org>> wrote: >> >> now it compiles, but fails on execution in virtual machine: >> >> ./configure --with-platform=linux-generic >> --prefix=/builds/check-odp-new.git/new-build >> --host=aarch64-linux-gnu --enable-test-perf >> >> --with-openssl-path=/builds/check-odp-new.git/installed/arm64/openssl-OpenSSL_1_0_1h >> --enable-test-vald >> >> --with-cunit-path=/builds/check-odp-new.git/installed/arm64/cunit-2.1-3 >> configure: WARNING: using cross tools not prefixed with host triplet >> /tmp/ccQvP04V.s: Assembler messages: >> /tmp/ccQvP04V.s:200: Error: selected processor does not support >> `crc32w w3,w3,w0' >> /tmp/ccQvP04V.s:239: Error: selected processor does not support >> `crc32w w3,w3,w20' >> /tmp/ccQvP04V.s:254: Error: selected processor does not support >> `crc32w w3,w3,w0' >> /tmp/ccQvP04V.s:285: Error: selected processor does not support >> `crc32w w0,w0,w2' >> >> >> I think we need to check under ./configure if crc32 is supported >> then turn on that #ifdef branch. >> >> Maxim. >> >> >> On 11/12/2015 19:36, Bill Fischofer wrote: >> >> Changes in v10 >> - Add back ARM definitions for _crc32w() from Alex that got >> dropped in v9 >> >> Note: Checkpatch complains about the _asm() line. Says spaces >> are needed but >> if spaces are added then complains that spaces are >> prohibited. Rules need to >> be updated to ignore these sort of constructs. >> >> Changes in v9 >> - Rebase on top of latest queue fixes >> >> Changes in v8 >> - add ARM definition for __crc32w() function (from Alex) >> >> Changes in v7 (review comments by Maxim) >> - Correct architecture ifdefs (use of arch dir in later patch) >> - Correct doxygen for queue types >> - Change internal APIs that use odp_ prefix to use _odp prefix >> - Rebase to latest api-next >> >> Changes in v6 >> - Move documentation of packet colors to main API file >> - Add ODP prefix to odp_tm_egress_kind_t enums >> >> Changes in v5 >> - Add include file odp_traffic_mngr_internal.h >> - Add support for odp_tm_enq() from packets originating from >> ordered queues >> >> Changes in v4 >> - Incorporate API changes suggested by Petri >> >> Changes in v3 >> - Fix checkpatch errors (Bill) >> >> Changes in v2 >> - Full patch submission (Barry) >> >> Barry Spinney (4): >> api: tm: add tm API definitions >> linux-generic: tm: implement traffic manager >> linux-generic: tm: add tm to build >> example: tm: traffic manager example >> >> configure.ac <http://configure.ac> | 1 + >> >> example/Makefile.am | 2 +- >> example/traffic_mgmt/.gitignore | 1 + >> example/traffic_mgmt/Makefile.am | 9 + >> example/traffic_mgmt/odp_traffic_mgmt.c | 781 ++++++ >> include/odp.h | 1 + >> include/odp/api/packet.h | 69 + >> include/odp/api/traffic_mngr.h | 1611 >> +++++++++++ >> platform/linux-generic/Makefile.am | 13 + >> .../linux-generic/include/odp/plat/packet_types.h | 11 + >> .../linux-generic/include/odp/plat/queue_types.h | 7 + >> .../include/odp/plat/traffic_mngr_types.h | 185 ++ >> platform/linux-generic/include/odp/traffic_mngr.h | 35 + >> platform/linux-generic/include/odp_internal.h | 2 + >> .../include/odp_name_table_internal.h | 61 + >> .../linux-generic/include/odp_packet_internal.h | 5 + >> .../linux-generic/include/odp_pkt_queue_internal.h | 62 + >> .../linux-generic/include/odp_queue_internal.h | 6 + >> .../include/odp_sorted_list_internal.h | 78 + >> .../include/odp_timer_wheel_internal.h | 68 + >> .../include/odp_traffic_mngr_internal.h | 324 +++ >> platform/linux-generic/odp_init.c | 5 + >> platform/linux-generic/odp_name_table.c | 1371 >> ++++++++++ >> platform/linux-generic/odp_packet_flags.c | 46 +- >> platform/linux-generic/odp_pkt_queue.c | 379 +++ >> platform/linux-generic/odp_queue.c | 60 + >> platform/linux-generic/odp_sorted_list.c | 271 ++ >> platform/linux-generic/odp_timer_wheel.c | 907 +++++++ >> platform/linux-generic/odp_traffic_mngr.c | 2799 >> ++++++++++++++++++++ >> 29 files changed, 9168 insertions(+), 2 deletions(-) >> create mode 100644 example/traffic_mgmt/.gitignore >> create mode 100644 example/traffic_mgmt/Makefile.am >> create mode 100644 example/traffic_mgmt/odp_traffic_mgmt.c >> create mode 100644 include/odp/api/traffic_mngr.h >> create mode 100644 >> platform/linux-generic/include/odp/plat/traffic_mngr_types.h >> create mode 100644 >> platform/linux-generic/include/odp/traffic_mngr.h >> create mode 100644 >> platform/linux-generic/include/odp_name_table_internal.h >> create mode 100644 >> platform/linux-generic/include/odp_pkt_queue_internal.h >> create mode 100644 >> platform/linux-generic/include/odp_sorted_list_internal.h >> create mode 100644 >> platform/linux-generic/include/odp_timer_wheel_internal.h >> create mode 100644 >> platform/linux-generic/include/odp_traffic_mngr_internal.h >> create mode 100644 platform/linux-generic/odp_name_table.c >> create mode 100644 platform/linux-generic/odp_pkt_queue.c >> create mode 100644 platform/linux-generic/odp_sorted_list.c >> create mode 100644 platform/linux-generic/odp_timer_wheel.c >> create mode 100644 platform/linux-generic/odp_traffic_mngr.c >> >> >> _______________________________________________ >> lng-odp mailing list >> lng-odp@lists.linaro.org <mailto:lng-odp@lists.linaro.org> >> https://lists.linaro.org/mailman/listinfo/lng-odp >> >> >> >
_______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp