> The program finishes building and can be installed > > $ ncspot --version > ncspot 1.2.1 > > But it immediately crashes with a segmentation fault > > $ gdb ncspot ncspot.core GNU gdb 6.3
old gdb in base is too outdated to deal with modern llvm/C++/Rust/... It's generally better to pkg_add gdb and use egdb instead (doesn't really matter here, though). This part of your output is one reason: > Reading symbols from /usr/libexec/ld.so...Error while reading shared > library symbols: Dwarf Error: wrong version in compilation unit header > (is 4, should be 2) [in module /usr/libexec/ld.so] #0 And as I said, it's due to missing landing pads in the s2n assembly: > 0x00000d254ec7c563 in curve25519_x25519base_byte () from (this is likely during the key exchange in a TLS connection to spotify) The definition of this symbol is at the link below and you can see that there are no _CET_ENDBR or similar. The way the S2N_BN_SYMBOL macro is formed, there's no easy way to hook into there, unfortunately, so it's another whack-a-mole set of patches needed. I'll take a closer look when I get a chance. https://github.com/aws/aws-lc/blob/066c7008c1a95ca149b890da22146d1dadfe475c/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S#L340