https://bugzilla.redhat.com/show_bug.cgi?id=1148604
--- Comment #4 from Peter Lemenkov lemenkov@gmail.com --- (In reply to John Eckersberg from comment #2)
OK, what really is happening is that the sd_notify_drv.so is not linked against libsystem-daemon. This used to work previously because something else in the erlang runtime was linked against libsystemd-daemon, so the symbol was already mapped into the process and loading the sd_notify module would work.
However the newer erlang builds don't link with libsystemd-daemon necessarily, which is what happens here.
I'm updating erlang-sd_notify to explicitly carry that link-time dependency.
Sadly but Ive made a mistake. I didn't even used -lsystemd while building:
https://github.com/lemenkov/erlang-sd_notify
In fact this was just a coincidence that my code is worked somehow (erlang already mapped some systemd functions as you found out). In order to fix this I believe that erlang-sd_notify requires rebar.config file with something like this:
https://github.com/basho/ebloom/blob/develop/rebar.config
This would tell rebar what libraries should this application be linked against. Also it's possible to setup some other variables here (CFLAGS, CXXFLAGS, etc).