Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fails on musl libc systems because function 'rexec' is missing. #11

Open
finnoleary opened this issue Sep 17, 2019 · 4 comments
Open

Fails on musl libc systems because function 'rexec' is missing. #11

finnoleary opened this issue Sep 17, 2019 · 4 comments

Comments

@finnoleary
Copy link

finnoleary commented Sep 17, 2019

Likely just a package error, but more and more systems are not packaging rexec these days, so it might be worth your attention.

@finnoleary finnoleary changed the title Fails on alpine linux because function 'rexec' is missing. Fails on musl libc systems because function 'rexec' is missing. Sep 17, 2019
@larsbrinkhoff
Copy link
Member

Thanks.

Is there a preprocessor symbol to identify this system, or compiler, or library?

@finnoleary
Copy link
Author

finnoleary commented Sep 22, 2019

Apologies for not responding sooner, my git folder got piled with random clutter.

Unfortunately musl libc does not have a __MUSL__ macro or anything of the kind (which was news to me!).

It seems it should be possible to deduce a MUSL system by the lack of __GLIBC__, but it's probably better to just have a compile check for if rexec is undefined, instead?

@reitraced
Copy link

sorry for adding to an old issue but im also having this issue on openbsd, is there a solution to this?

@ams
Copy link

ams commented Mar 24, 2020

It is strange that you get this on OpenBSD, seeing that is special cased to not use rexec(3) specifically on that platform? I just compiled it on OpenBSD 6.6-snapshot, and there I do not have any issues whatsoever.

As a quick hack, you could simply kill the following lines:

itstar/tapeio.c

Lines 226 to 232 in 47c628c

#if !defined(__APPLE__) && !defined(__OpenBSD__)
if((tapefd=rexec(&p,htons(512),user,NULL,"/etc/rmt",
(int *)NULL))<0) {
perror("?Connection failed");
exit(1);
}
#endif

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants