digitalmars.D.learn - Definition of SIGRTMIN
- Andre (17/17) Aug 31 2015 Hi,
- Adam D. Ruppe (26/27) Sep 01 2015 Yeah, I think so. It is:
Hi, I cannot use the definition of SIGRTMIN on ubuntu. For following code I receive errors: import core.sys.posix.time, core.sys.posix.signal, core.sys.posix.stdlib, core.sys.posix.unistd; import std.stdio; alias SIG = SIGRTMIN; void main() { writeln("Establishing handler for signal %d\n", SIG); } source/app.d(77): Error: function core.sys.posix.signal.__libc_current_sigrtmin is not accessible from module app Is there s.th. wrong with the definition? Kind regards André
Aug 31 2015
On Tuesday, 1 September 2015 at 04:55:38 UTC, Andre wrote:Is there s.th. wrong with the definition?Yeah, I think so. It is: private extern (C) nothrow nogc { int __libc_current_sigrtmin(); int __libc_current_sigrtmax(); } alias __libc_current_sigrtmin SIGRTMIN; alias __libc_current_sigrtmax SIGRTMAX; So it is a public alias to a private function. I *think* that used to work... and perhaps still should... but your error indicates it isn't now, so either the definition should be updated or we have a compiler regression here, depending on what is supposed to happen (and idk what it should be). You can work around it by copy/pasting that definition to your own file and using it there. It might ask you to disambiguate with the full name from the one in the stdlib but you can do that and then it will work. Like maybe: public extern (C) nothrow nogc { int __libc_current_sigrtmin(); int __libc_current_sigrtmax(); } alias .__libc_current_sigrtmin My_SIGRTMIN; alias .__libc_current_sigrtmax My_SIGRTMAX; then fix up the My prefix later.
Sep 01 2015