Do not use the -fno-pie or -no-pie compiler flags.
The -fno-pie and -no-pie compiler flags disable creating position-independent code. At the time they were added they were needed to enable getting line numbers in the backtrace (addr2line() could not handle the random offsets that position-independent code would produce). That problem has since been fixed. So at least on modern systems we no longer need these flags. On the other hand, position-dependent code is now considered to be a security risk, so is increasingly difficult to produce. Most notably Macs with ARM processors no longer support position-dependent code at all. So the prudent thing is to remove these flags everywhere. That may (partially) break the backtrace on old systems, but since that is not mission critical, that is OK.