From: Roberto Oliveira 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; }