How to build without rpath?

The build I’m trying to port runs tests on each component as part of the make process. Every binary built is segfaulting. I can “fix” it by running patchelf --remove-rpath. The weird part is that has no effect on ldd output, but the program then works.

I presume there is some catch I’m missing. Is this common?

Running the binaries (any built binary) with LD_DEBUG=all I get:

     12798:	symbol=_dl_find_dso_for_object;  lookup in file=/nix/store/zl2fk7gbfkhzwvf9v5whnp22imbh8qcc-openenclave-sdk/tools/oeedger8r-cpp/oeedger8r [0]
     12798:	symbol=_dl_find_dso_for_object;  lookup in file=/nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libm.so.6 [0]
     12798:	symbol=_dl_find_dso_for_object;  lookup in file=/nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libgcc_s.so.1 [0]
     12798:	symbol=_dl_find_dso_for_object;  lookup in file=/nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libc.so.6 [0]
     12798:	symbol=_dl_find_dso_for_object;  lookup in file=/nix/store/lchl0p7ibazn2r4ka6prihbs4m9w9ljq-ld-linux-x86-64.so.2 [0]
     12798:	binding file /nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libc.so.6 [0] to /nix/store/lchl0p7ibazn2r4ka6prihbs4m9w9ljq-ld-linux-x86-64.so.2 [0]: normal symbol `_dl_find_dso_for_object' [GLIBC_PRIVATE]
     12798:	symbol=calloc;  lookup in file=/nix/store/zl2fk7gbfkhzwvf9v5whnp22imbh8qcc-openenclave-sdk/tools/oeedger8r-cpp/oeedger8r [0]
     12798:	symbol=calloc;  lookup in file=/nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libm.so.6 [0]
     12798:	symbol=calloc;  lookup in file=/nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libgcc_s.so.1 [0]
     12798:	symbol=calloc;  lookup in file=/nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libc.so.6 [0]
     12798:	binding file /nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libc.so.6 [0] to /nix/store/xg6ilb9g9zhi2zg1dpi4zcp288rhnvns-glibc-2.30/lib/libc.so.6 [0]: normal symbol `calloc' [GLIBC_2.2.5]

Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) where
#0  0x0000000000000000 in ?? ()
#1  0x00007fae6c596f07 in ?? ()
#2  0x0000000000000000 in ?? ()

OK. Apparently the remapped interpreter does some stuff that setting the interpreter on the linker command line messes up.