From: Roberto Oliveira <robertoguimaraes8@gmail.com>
Date: Tue, 4 Apr 2017 16:46:50 +0000
Subject: [PATCH] Fix build with musl on ppc64le
mosh was breaking when building in ppc64le using musl, because ioctl() is defined
as ioctl(int, int) in musl and mosh is using TIOCSWINSZ macro as parameter. This was
triggering a gcc warning and make the build fail.
This patch does an explicit integer conversion in TIOCSWINSZ, as no bits get
lost.
--- a/src/frontend/mosh-server.cc
+++ b/src/frontend/mosh-server.cc
@@ -714,7 +714,12 @@
}
window_size.ws_col = res->width;
window_size.ws_row = res->height;
- if ( ioctl( host_fd, TIOCSWINSZ, &window_size ) < 0 ) {
+
+ #if defined(__powerpc64__) && (!defined(__GLIBC__) && !defined(__UCLIBC__))
+ if ( ioctl( host_fd, (int) TIOCSWINSZ, &window_size ) < 0 ) {
+ #else
+ if ( ioctl( host_fd, TIOCSWINSZ, &window_size ) < 0 ) {
+ #endif
perror( "ioctl TIOCSWINSZ" );
network.start_shutdown();
}
--- a/src/examples/termemu.cc
+++ a/src/examples/termemu.cc
@@ -226,7 +226,11 @@
}
/* tell child process */
+ #if defined(__powerpc64__) && (!defined(__GLIBC__) && !defined(__UCLIBC__))
+ if ( ioctl( fd, (int) TIOCSWINSZ, &window_size ) < 0 ) {
+ #else
if ( ioctl( fd, TIOCSWINSZ, &window_size ) < 0 ) {
+ #endif
perror( "ioctl TIOCSWINSZ" );
return;
}
@@ -306,7 +310,11 @@
complete.act( &r );
/* tell child process */
+ #if defined(__powerpc64__) && (!defined(__GLIBC__) && !defined(__UCLIBC__))
+ if ( ioctl( fd, (int) TIOCSWINSZ, &window_size ) < 0 ) {
+ #else
if ( ioctl( fd, TIOCSWINSZ, &window_size ) < 0 ) {
+ #endif
perror( "ioctl TIOCSWINSZ" );
return;
}