summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/libserial/0002-Don-t-use-high-baudrates-when-not-available.patch65
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
+
OpenPOWER on IntegriCloud