diff options
-rw-r--r-- | package/libserial/0002-Don-t-use-high-baudrates-when-not-available.patch | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/package/libserial/0002-Don-t-use-high-baudrates-when-not-available.patch b/package/libserial/0002-Don-t-use-high-baudrates-when-not-available.patch new file mode 100644 index 0000000000..f2ad61ae7d --- /dev/null +++ b/package/libserial/0002-Don-t-use-high-baudrates-when-not-available.patch @@ -0,0 +1,65 @@ +From 47ca0621ccd2100e4ba0d7f4e2a861d14f05f63c Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Tue, 17 Nov 2015 23:50:14 +0100 +Subject: [PATCH] Don't use high baudrates when not available + +On certain architectures (namely Sparc), the maximum baud rate exposed +by the kernel headers is B2000000. Therefore, the current libserial +code doesn't build for the Sparc and Sparc64 architectures due to +this. + +In order to address this problem, this patch tests the value of +__MAX_BAUD. If it's higher than B2000000 then we assume we're on an +architecture that supports all baud rates up to B4000000. Otherwise, +we simply don't support the baud rates above B2000000. + +Fixes build failures such as: + +./SerialPort.h:88:24: error: 'B2500000' was not declared in this scope + BAUD_2500000 = B2500000, + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + src/SerialPort.h | 2 ++ + src/SerialStreamBuf.h | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/src/SerialPort.h b/src/SerialPort.h +index 6c0baaa..0b1af4c 100644 +--- a/src/SerialPort.h ++++ b/src/SerialPort.h +@@ -85,11 +85,13 @@ public: + BAUD_1152000 = B1152000, + BAUD_1500000 = B1500000, + BAUD_2000000 = B2000000, ++#if __MAX_BAUD > B2000000 + BAUD_2500000 = B2500000, + BAUD_3000000 = B3000000, + BAUD_3500000 = B3500000, + BAUD_4000000 = B4000000, + #endif ++#endif /* __linux__ */ + BAUD_DEFAULT = BAUD_57600 + } ; + +diff --git a/src/SerialStreamBuf.h b/src/SerialStreamBuf.h +index ccbb996..174f31c 100644 +--- a/src/SerialStreamBuf.h ++++ b/src/SerialStreamBuf.h +@@ -85,11 +85,13 @@ extern "C++" + BAUD_1152000 = SerialPort::BAUD_1152000, + BAUD_1500000 = SerialPort::BAUD_1500000, + BAUD_2000000 = SerialPort::BAUD_2000000, ++#if __MAX_BAUD > B2000000 + BAUD_2500000 = SerialPort::BAUD_2500000, + BAUD_3000000 = SerialPort::BAUD_3000000, + BAUD_3500000 = SerialPort::BAUD_3500000, + BAUD_4000000 = SerialPort::BAUD_4000000, + #endif ++#endif /* __linux__ */ + BAUD_DEFAULT = SerialPort::BAUD_DEFAULT, + BAUD_INVALID = -1 + } ; +-- +2.6.3 + |