diff --git a/src/template/netbsd b/src/template/netbsd index aaa560cd92..550e8f0973 100644 --- a/src/template/netbsd +++ b/src/template/netbsd @@ -2,3 +2,12 @@ # Extra CFLAGS for code that will go into a shared library CFLAGS_SL="-fPIC -DPIC" + +# We must resolve all dynamic linking in the core server at program start. +# Otherwise the postmaster can self-deadlock due to signals interrupting +# resolution of calls, since NetBSD's linker takes a lock while doing that and +# some postmaster signal handlers do things that will also acquire that lock. +# As long as we need "-z now", might as well specify "-z relro" too. +# While there's not a hard reason to adopt these settings for our other +# executables, there's also little reason not to, so just add them to LDFLAGS. +LDFLAGS="$LDFLAGS -Wl,-z,now -Wl,-z,relro"