Skip to content

Instantly share code, notes, and snippets.

@tanabarr
Created July 10, 2019 10:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tanabarr/5eefcf5a7de8727ceb102d1f1954dd62 to your computer and use it in GitHub Desktop.
Save tanabarr/5eefcf5a7de8727ceb102d1f1954dd62 to your computer and use it in GitHub Desktop.
attempting to build and link to spdk library
[tanabarr@wolf-71 go-spdk]$ export CGO_LDFLAGS="-L/home/tanabarr/projects/daos_m/install/lib"
[tanabarr@wolf-71 go-spdk]$ export CGO_CFLAGS="-I/home/tanabarr/projects/daos_m/install/include"
[tanabarr@wolf-71 go-spdk]$ bin/./task main-task
rm -f *.o *.so
gcc ${CGO_LDFLAGS} ${CGO_CFLAGS} -Werror -g -Wshadow -Wall -Wno-missing-braces -c -fpic -Iinclude src/*.c -lspdk
gcc ${CGO_LDFLAGS} ${CGO_CFLAGS} -shared -o libnvme_control.so *.o
go test -v
# _/home/tanabarr/projects/daos_m/src/control/vendor/github.com/daos-stack/go-spdk/spdk
/tmp/go-build011208827/b046/_x003.o: In function `_cgo_dc3fa52d99f9_Cfunc_spdk_env_init':
spdk.cgo2.c:(.text+0x5e): undefined reference to `spdk_env_init'
/tmp/go-build011208827/b046/_x003.o: In function `_cgo_dc3fa52d99f9_Cfunc_spdk_env_opts_init':
spdk.cgo2.c:(.text+0x9e): undefined reference to `spdk_env_opts_init'
/home/tanabarr/projects/daos_m/install/lib/libnvme_control.a(nvme_control.o): In function `get_controller':
./src/nvme_control.c:350: undefined reference to `spdk_pci_addr_parse'
./src/nvme_control.c:368: undefined reference to `spdk_pci_device_get_addr'
./src/nvme_control.c:370: undefined reference to `spdk_pci_addr_compare'
/home/tanabarr/projects/daos_m/install/lib/libnvme_control.a(nvme_control.o): In function `set_pci_addr':
./src/nvme_control.c:168: undefined reference to `spdk_pci_device_get_addr'
./src/nvme_control.c:169: undefined reference to `spdk_pci_addr_fmt'
/home/tanabarr/projects/daos_m/install/lib/libnvme_control.a(nvme_control.o): In function `nvme_fwupdate':
./src/nvme_control.c:432: undefined reference to `spdk_dma_zmalloc'
./src/nvme_control.c:443: undefined reference to `spdk_dma_free'
./src/nvme_control.c:461: undefined reference to `spdk_dma_free'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_pci_device_cfg_write32'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_get_ticks_hz'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_pci_device_cfg_read32'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_zmalloc'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_memzone_reserve'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_delay_us'
/home/tanabarr/projects/daos_m/install/lib/libspdk_util.so: undefined reference to `crc16_t10dif'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_pci_device_unmap_bar'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_memzone_free'
/home/tanabarr/projects/daos_m/install/lib/libspdk_util.so: undefined reference to `crc16_t10dif_copy'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_get_ticks'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_pci_device_is_removed'
/home/tanabarr/projects/daos_m/install/lib/libspdk_util.so: undefined reference to `spdk_realloc'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_free'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_pci_device_map_bar'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_mem_unregister'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_process_is_primary'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_mem_register'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_pci_device_get_id'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_pci_device_detach'
/home/tanabarr/projects/daos_m/install/lib/libspdk_util.so: undefined reference to `crc32_iscsi'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_vtophys'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_pci_enumerate'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_pci_device_claim'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_pci_nvme_get_driver'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_memzone_lookup'
/home/tanabarr/projects/daos_m/install/lib/libspdk_nvme.so: undefined reference to `spdk_pci_device_attach'
collect2: error: ld returned 1 exit status
FAIL _/home/tanabarr/projects/daos_m/src/control/vendor/github.com/daos-stack/go-spdk/spdk [build failed]
task: Failed to run task "main-task": task: Failed to run task "run-unit-tests": exit status 2
[tanabarr@wolf-71 go-spdk]$
@Jin10Dong
Copy link

hi, when build DAOS, I met this error too, Could you show me how to fix it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment