I downloaded the most recent SPI library, checked with 1.2.2 and it was fine.
I used menuconfig and changed the settings as per your recommendations.
I then did a build but the linker failed
C:\esp\nina-fw-master>idf.py build
Checking Python dependencies...
Python requirements from C:\esp\requirements.txt are satisfied.
Executing action: all (aliases: build)
Running ninja in directory c:\esp\nina-fw-master\build
Executing "ninja all"...
[0/1] Re-running CMake...
-- mconf-idf version mconf-v4.6.0.0-idf-20190628-win32
-- Project version: v4.0-dirty
-- Building ESP-IDF components for target esp32
-- Could NOT find Perl (missing: PERL_EXECUTABLE)
-- Adding linker script C:/esp/nina-fw-master/build/esp-idf/esp32/esp32_out.ld
-- Adding linker script C:/esp/components/esp32/ld/esp32.project.ld.in
-- Adding linker script C:/esp/components/esp32/ld/esp32.peripherals.ld
-- Adding linker script C:/esp/components/esp_rom/esp32/ld/esp32.rom.ld
-- Adding linker script C:/esp/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
-- Adding linker script C:/esp/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld
-- Adding linker script C:/esp/components/esp_rom/esp32/ld/esp32.rom.newlib-data.ld
-- Adding linker script C:/esp/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
-- Components: app_trace app_update asio bootloader bootloader_support bt coap console cxx driver efuse esp-tls esp32 esp_adc_cal esp_common esp_eth esp_event esp_gdbstub esp_http_client esp_http_server esp_https_ota esp_https_server esp_local_ctrl esp_ringbuf esp_rom esp_websocket_client esp_wifi espcoredump esptool_py expat fatfs freemodbus freertos heap idf_test jsmn json libsodium log lwip mbedtls mdns mqtt newlib nghttp nvs_flash openssl partition_table protobuf-c protocomm pthread sdmmc soc spi_flash spiffs tcp_transport tcpip_adapter ulp unity vfs wear_levelling wifi_provisioning wpa_supplicant xtensa
-- Component paths: C:/esp/components/app_trace C:/esp/components/app_update C:/esp/components/asio C:/esp/components/bootloader C:/esp/components/bootloader_support C:/esp/components/bt C:/esp/components/coap C:/esp/components/console C:/esp/components/cxx C:/esp/components/driver C:/esp/components/efuse C:/esp/components/esp-tls C:/esp/components/esp32 C:/esp/components/esp_adc_cal C:/esp/components/esp_common C:/esp/components/esp_eth C:/esp/components/esp_event C:/esp/components/esp_gdbstub C:/esp/components/esp_http_client C:/esp/components/esp_http_server C:/esp/components/esp_https_ota C:/esp/components/esp_https_server C:/esp/components/esp_local_ctrl C:/esp/components/esp_ringbuf C:/esp/components/esp_rom C:/esp/components/esp_websocket_client C:/esp/components/esp_wifi C:/esp/components/espcoredump C:/esp/components/esptool_py C:/esp/components/expat C:/esp/components/fatfs C:/esp/components/freemodbus C:/esp/components/freertos C:/esp/components/heap C:/esp/components/idf_test C:/esp/components/jsmn C:/esp/components/json C:/esp/components/libsodium C:/esp/components/log C:/esp/components/lwip C:/esp/components/mbedtls C:/esp/components/mdns C:/esp/components/mqtt C:/esp/components/newlib C:/esp/components/nghttp C:/esp/components/nvs_flash C:/esp/components/openssl C:/esp/components/partition_table C:/esp/components/protobuf-c C:/esp/components/protocomm C:/esp/components/pthread C:/esp/components/sdmmc C:/esp/components/soc C:/esp/components/spi_flash C:/esp/components/spiffs C:/esp/components/tcp_transport C:/esp/components/tcpip_adapter C:/esp/components/ulp C:/esp/components/unity C:/esp/components/vfs C:/esp/components/wear_levelling C:/esp/components/wifi_provisioning C:/esp/components/wpa_supplicant C:/esp/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: C:/esp/nina-fw-master/build
[408/838] Performing configure step for 'bootloader'
-- Found Git: C:/Program Files/Git/cmd/git.exe (found version "2.23.0.windows.1")
-- mconf-idf version mconf-v4.6.0.0-idf-20190628-win32
-- The C compiler identification is GNU 8.2.0
-- The CXX compiler identification is GNU 8.2.0
-- The ASM compiler identification is GNU
-- Found assembler: C:/Users/georg/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe
-- Check for working C compiler: C:/Users/georg/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe
-- Check for working C compiler: C:/Users/georg/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Users/georg/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++.exe
-- Check for working CXX compiler: C:/Users/georg/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Project version: v4.0-dirty
-- Building ESP-IDF components for target esp32
-- Adding linker script C:/esp/components/esp32/ld/esp32.peripherals.ld
-- Adding linker script C:/esp/components/esp_rom/esp32/ld/esp32.rom.ld
-- Adding linker script C:/esp/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
-- Adding linker script C:/esp/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
-- Adding linker script C:/esp/components/bootloader/subproject/main/esp32.bootloader.ld
-- Adding linker script C:/esp/components/bootloader/subproject/main/esp32.bootloader.rom.ld
-- Components: bootloader bootloader_support efuse esp32 esp_common esp_rom esptool_py log main micro-ecc partition_table soc spi_flash xtensa
-- Component paths: C:/esp/components/bootloader C:/esp/components/bootloader_support C:/esp/components/efuse C:/esp/components/esp32 C:/esp/components/esp_common C:/esp/components/esp_rom C:/esp/components/esptool_py C:/esp/components/log C:/esp/components/bootloader/subproject/main C:/esp/components/bootloader/subproject/components/micro-ecc C:/esp/components/partition_table C:/esp/components/soc C:/esp/components/spi_flash C:/esp/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: C:/esp/nina-fw-master/build/bootloader
[512/838] Performing build step for 'bootloader'
[1/62] Generating project_elf_src.c
[2/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rtc_periph.c.obj
[3/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rtc_wdt.c.obj
[4/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdio_slave_periph.c.obj
[5/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/cpu_util.c.obj
[6/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdmmc_periph.c.obj
[7/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/gpio_periph.c.obj
[8/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rtc_pm.c.obj
[9/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rtc_time.c.obj
[10/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rtc_clk_init.c.obj
[11/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rtc_init.c.obj
[12/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/src/memory_layout_utils.c.obj
[13/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/spi_periph.c.obj
[14/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/src/lldesc.c.obj
[15/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rtc_clk.c.obj
[16/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rtc_sleep.c.obj
[17/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/soc_memory_layout.c.obj
[18/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/src/soc_include_legacy_warn.c.obj
[19/62] Building C object esp-idf/xtensa/CMakeFiles/__idf_xtensa.dir/eri.c.obj
[20/62] Building C object CMakeFiles/bootloader.elf.dir/project_elf_src.c.obj
[21/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/src/hal/spi_slave_hal.c.obj
[22/62] Building ASM object esp-idf/xtensa/CMakeFiles/__idf_xtensa.dir/debug_helpers_asm.S.obj
[23/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/src/hal/spi_flash_hal.c.obj
[24/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/src/hal/spi_hal_iram.c.obj
[25/62] Building C object esp-idf/xtensa/CMakeFiles/__idf_xtensa.dir/trax.c.obj
[26/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/src/hal/spi_hal.c.obj
[27/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/src/hal/spi_slave_hal_iram.c.obj
[28/62] Building C object esp-idf/xtensa/CMakeFiles/__idf_xtensa.dir/debug_helpers.c.obj
[29/62] Building C object esp-idf/log/CMakeFiles/__idf_log.dir/log.c.obj
[30/62] Building C object esp-idf/spi_flash/CMakeFiles/__idf_spi_flash.dir/spi_flash_rom_patch.c.obj
[31/62] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/src/hal/spi_flash_hal_iram.c.obj
[32/62] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32/esp_efuse_table.c.obj
[33/62] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_api.c.obj
[34/62] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_fields.c.obj
[35/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_flash_config.c.obj
[36/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_common.c.obj[37/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_flash.c.obj
[38/62] Building C object esp-idf/micro-ecc/CMakeFiles/__idf_micro-ecc.dir/micro-ecc/uECC.c.obj
[39/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_clock.c.obj
[40/62] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_utility.c.obj
[41/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_encrypt.c.obj
[42/62] Linking C static library esp-idf\log\liblog.a
[43/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_partitions.c.obj
[44/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_random.c.obj[45/62] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/bootloader_start.c.obj
[46/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/bootloader_sha.c.obj
[47/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_utility.c.obj
[48/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp_image_format.c.obj
[49/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/secure_boot_signatures.c.obj
[50/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_qio_mode.c.obj
[51/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/secure_boot.c.obj[52/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/flash_encrypt.c.obj
[53/62] Linking C static library esp-idf\xtensa\libxtensa.a
[54/62] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_init.c.obj
[55/62] Linking C static library esp-idf\soc\libsoc.a
[56/62] Linking C static library esp-idf\micro-ecc\libmicro-ecc.a
[57/62] Linking C static library esp-idf\bootloader_support\libbootloader_support.a
[58/62] Linking C static library esp-idf\efuse\libefuse.a
[59/62] Linking C static library esp-idf\spi_flash\libspi_flash.a
[60/62] Linking C static library esp-idf\main\libmain.a
[61/62] Linking C executable bootloader.elf
[62/62] Generating binary image from built executable
esptool.py v2.8
Generated C:/esp/nina-fw-master/build/bootloader/bootloader.bin
[837/838] Linking CXX executable nina-fw-master.elf
FAILED: nina-fw-master.elf
cmd.exe /C "cd . && C:\Users\georg\.espressif\tools\xtensa-esp32-elf\esp-2019r2-8.2.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-g++.exe -mlongcalls -Wno-frame-address -nostdlib @CMakeFiles\nina-fw-master.elf.rsp -o nina-fw-master.elf && cd ."
c:/users/georg/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/esp32/libesp32.a(cpu_start.c.obj)
.literal.main_task+0x18): undefined reference to `app_main'
c:/users/georg/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/esp32/libesp32.a(cpu_start.c.obj): in function `main_task':
C:/esp/components/esp32/cpu_start.c:540: undefined reference to `app_main'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
ninja failed with exit code 1