libserial: fix build on sparc
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Tue, 15 Jan 2019 19:38:20 +0000 (20:38 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Wed, 16 Jan 2019 15:01:59 +0000 (16:01 +0100)
commit6f179a5a9f258c4a97d96e44e0e65549e1de6b51
tree2b6a39bd29de63ccbc02a4d182cc2f502b1f3eb5
parent97474bf24cb1b6c770df636b33bfa82d0e1bfa25
libserial: fix build on sparc

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.cpp: In member function 'int LibSerial::SerialPort::Implementation::GetBitRate(const LibSerial::BaudRate&) const':
SerialPort.cpp:1226:14: error: 'BAUD_2000000' is not a member of 'LibSerial::BaudRate'
         case BaudRate::BAUD_2000000:

Fixes:
 - http://autobuild.buildroot.org/results/63ba95b6786464fa8e75af64593010df84530079

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/libserial/0002-SerialPort.cpp-don-t-use-high-baudrates-when-not-ava.patch [new file with mode: 0644]