From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============3191336308196889660==" MIME-Version: 1.0 From: Harris, James R Subject: [SPDK] Re: ABI change Date: Thu, 24 Jun 2021 14:58:08 +0000 Message-ID: In-Reply-To: BN8PR06MB53777153CD43A20A1A8C0AB5EB079@BN8PR06MB5377.namprd06.prod.outlook.com List-ID: To: spdk@lists.01.org --===============3191336308196889660== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable The dependencies are specified in mk/spdk.lib_deps.mk. The log isn't very clear on that, I've just pushed a patch out for review t= o fix it: https://review.spdk.io/gerrit/c/spdk/spdk/+/8499. -Jim =EF=BB=BFOn 6/24/21, 7:43 AM, "Rodriguez, Edwin" wrote: I'm stumped by the error here: https://ci.spdk.io/results/autotest-per-= patch/builds/50808/archive/autobuild-vg-autotest/build.log 00:07:23.879 ************************************ 00:07:23.879 START TEST confirm_makefile_deps 00:07:23.879 ************************************ 00:07:23.880 ---------------------------------------------------------= ------------ 00:07:29.634 there was a dependency mismatch in the library bdev_kv_nu= ll 00:07:29.634 The makefile lists: '' 00:07:29.634 readelf outputs : 'bdev jsonrpc json log nvme rpc threa= d util' 00:07:29.634 ---------------------------------------------------------= ------------ Where does the Makefile list dependencies? And which Makefile? ________________________________ From: Harris, James R Sent: Wednesday, June 23, 2021 5:33 PM To: Storage Performance Development Kit Subject: [SPDK] Re: ABI change NetApp Security WARNING: This is an external email. Do not click links = or open attachments unless you recognize the sender and know the content is= safe. Hi Ed, Neither. You would need to bump SO_VER and set SO_MINOR back to 0. Th= e spdk_nvme_print_command() change is ABI incompatible, requiring the SO_VE= R bump. We always set SO_MINOR back to 0 after bumping SO_VER. I would instead suggest a new spdk_nvme_print_command_csi() API, so tha= t you don't have to modify the spdk_nvme_print_command() API. Then you sho= uld no longer need any version changes, since SO_MINOR has already been bum= ped during this release cycle. -Jim On 6/23/21, 2:21 PM, "Rodriguez, Edwin" wro= te: I've submitted a change which fails with: https://ci.spdk.io/result= s/autotest-per-patch/builds/50670/archive/autobuild-vg-autotest/build.log 00:06:41.549 SONAME changed from 'libspdk_nvme.so.5.0' to 'libspdk= _nvme.so.5.1' 00:06:41.549 00:06:41.549 15 Added functions: 00:06:41.549 00:06:41.549 [A] 'function int spdk_kv_cmd_fmt_lower(const spdk_= nvme_kv_cmd*, char*, size_t)' {spdk_kv_cmd_fmt_lower} 00:06:41.549 [A] 'function int spdk_kv_key_fmt_lower(char*, size= _t, uint32_t, const uint8_t*)' {spdk_kv_key_fmt_lower} 00:06:41.549 [A] 'function bool spdk_nvme_ctrlr_is_fabrics(spdk_= nvme_ctrlr*)' {spdk_nvme_ctrlr_is_fabrics} 00:06:41.549 [A] 'function int spdk_nvme_kv_cmd_delete(spdk_nvme= _ns*, spdk_nvme_qpair*, spdk_nvme_kv_key_t*, spdk_nvme_cmd_cb, void*)' {= spdk_nvme_kv_cmd_delete} 00:06:41.549 [A] 'function int spdk_nvme_kv_cmd_exist(spdk_nvme_= ns*, spdk_nvme_qpair*, spdk_nvme_kv_key_t*, spdk_nvme_cmd_cb, void*)' {s= pdk_nvme_kv_cmd_exist} 00:06:41.549 [A] 'function void spdk_nvme_kv_cmd_get_key(const s= pdk_nvme_kv_cmd*, spdk_nvme_kv_key_t*)' {spdk_nvme_kv_cmd_get_key} 00:06:41.549 [A] 'function int spdk_nvme_kv_cmd_list(spdk_nvme_n= s*, spdk_nvme_qpair*, spdk_nvme_kv_key_t*, void*, uint32_t, spdk_nvme_cmd_c= b, void*)' {spdk_nvme_kv_cmd_list} 00:06:41.549 [A] 'function int spdk_nvme_kv_cmd_retrieve(spdk_nv= me_ns*, spdk_nvme_qpair*, spdk_nvme_kv_key_t*, void*, uint32_t, spdk_nvme_c= md_cb, void*, uint32_t)' {spdk_nvme_kv_cmd_retrieve} 00:06:41.549 [A] 'function void spdk_nvme_kv_cmd_set_key(const s= pdk_nvme_kv_key_t*, spdk_nvme_kv_cmd*)' {spdk_nvme_kv_cmd_set_key} 00:06:41.549 [A] 'function int spdk_nvme_kv_cmd_store(spdk_nvme_= ns*, spdk_nvme_qpair*, spdk_nvme_kv_key_t*, void*, uint32_t, spdk_nvme_cmd_= cb, void*, uint32_t)' {spdk_nvme_kv_cmd_store} 00:06:41.549 [A] 'function uint32_t spdk_nvme_kv_get_max_key_len= (spdk_nvme_ns*)' {spdk_nvme_kv_get_max_key_len} 00:06:41.549 [A] 'function uint32_t spdk_nvme_kv_get_max_num_key= s(spdk_nvme_ns*)' {spdk_nvme_kv_get_max_num_keys} 00:06:41.549 [A] 'function uint32_t spdk_nvme_kv_get_max_value_l= en(spdk_nvme_ns*)' {spdk_nvme_kv_get_max_value_len} 00:06:41.549 [A] 'function const spdk_nvme_kv_ns_data* spdk_nvme= _kv_ns_get_data(spdk_nvme_ns*)' {spdk_nvme_kv_ns_get_data} 00:06:41.549 [A] 'function int spdk_nvme_ns_cmd_copy(spdk_nvme_n= s*, spdk_nvme_qpair*, const spdk_nvme_scc_source_range*, uint16_t, uint64_t= , spdk_nvme_cmd_cb, void*)' {spdk_nvme_ns_cmd_copy} 00:06:41.549 00:06:41.549 1 function with some sub-type change: 00:06:41.549 00:06:41.549 [C] 'function void spdk_nvme_print_command(uint16_t= , spdk_nvme_cmd*)' at nvme_qpair.c:337:1 has some sub-type changes: 00:06:41.549 parameter 3 of type 'enum spdk_nvme_csi' was added Do I need to update both SO_VER and SO_MINOR for libnvme? Or will = just updating SO_MINOR suffice? _______________________________________________ SPDK mailing list -- spdk(a)lists.01.org To unsubscribe send an email to spdk-leave(a)lists.01.org _______________________________________________ SPDK mailing list -- spdk(a)lists.01.org To unsubscribe send an email to spdk-leave(a)lists.01.org _______________________________________________ SPDK mailing list -- spdk(a)lists.01.org To unsubscribe send an email to spdk-leave(a)lists.01.org --===============3191336308196889660==--