[PATCH] Fix building for Android
Jef Driesen
jef at libdivecomputer.org
Fri Mar 28 04:48:01 PDT 2014
On 2014-03-28 11:41, Anton Lundin wrote:
> On 28 March, 2014 - Jef Driesen wrote:
>
>> On 2014-03-27 20:44, Anton Lundin wrote:
>> >This makes libdivecomputer build via Android NDK. Its currently unusable
>> >due to the fact that Android usually doesn't provide any kernel serial
>> >drivers.
>>
>> I'll apply your patch, although with a slight modification. I prefer
>> the
>> tcdrain #ifdef right where the function is being called, rather than
>> redirecting one function to another. I find that confusing when
>> debugging.
>>
>> But the reason why I'm replying to you is actually the TIOCGSERIAL
>> part. Can
>> you tell me what's going wrong there? Is TIOCGSERIAL defined on
>> Android, but
>> not supported somehow? Maybe the serial_struct struct is missing in
>> bionic?
>
> Yepp, its the serial_struct struct thats missing from bionic.
Looks like my guess was right :-)
>> I have just pushed some changes related to the low latency stuff.
>> Those will probably need similar changes. So that's why I'm asking.
>
> So, after the low latency patch this fixes it:
>
> --- i/src/serial_posix.c
> +++ w/src/serial_posix.c
> @@ -523,7 +523,7 @@ serial_set_latency (serial_t *device, unsigned int
> milliseconds)
> if (device == NULL)
> return -1; // EINVAL (Invalid argument)
>
> -#if defined(TIOCGSERIAL) && defined(TIOCSSERIAL)
> +#if defined(TIOCGSERIAL) && defined(TIOCSSERIAL) &&
> !defined(__ANDROID__)
> // Get the current settings.
> struct serial_struct ss;
> if (ioctl (device->fd, TIOCGSERIAL, &ss) != 0 && NOPTY) {
>
>
> Just tell me if you would like me to redo the patch.
No need to redo. I already did it myself. Patch has been pushed.
Jef
More information about the devel
mailing list