Repository navigation
feat(pkg): add LibSerial 1.0.0 compat package - #511
Merged
Merged
Conversation
Add compat.libserial, a Linux-only C++-source compat package for LibSerial 1.0.0 (SerialPort / SerialStream), built from upstream's LIBSERIAL_SOURCES three translation units and exposing the public headers under libserial/ the way upstream's install does. The headers open with <termios.h> and every TU reaches <linux/serial.h>, so the descriptor declares only the linux platform and consumers gate it with [target.'cfg(linux)'.dependencies] (same shape as compat.libaio). Upstream's SerialPortConstants.h uses uint8_t without including <cstdint>; a generated_files shim supplies it and #include_next's the real header. The test opens on the libserial header first of all, so the shim is compile-time asserted, and asserts the rest over a real openpty() pair. No CN mirror (no mcpp-res write access): plain-string upstream url per docs/cn-mirror.md.
合并 main 时 openkal-llvm-runtime 0.15.4 与 openkal-linux 0.16.1 / openkal-musl 0.20.1 两条被 libserial 条目覆盖;按 main 恢复,libserial 条目另起一条(并补充 libc++ 修复与 CN 镜像)。
…esult_t;加 CN 镜像
SerialPort.h 的公开模板 call_with_retry 用了 C++20 移除的 std::result_of。
libstdc++ 仍保留,libc++ 没有,linux llvm 腿三个 TU 全部编译失败,且消费者
TU 同样会坏。shim 改不了头内模板,_LIBCPP_ENABLE_CXX20_REMOVED_TYPE_TRAITS
又必须先于每个 TU 的第一个 libc++ 头,故由 install() 把两处改写为等价的
std::invoke_result_t<Fn, Args...> 并补 <type_traits>,匹配次数不符即安装失败。
- url 改为 { GLOBAL, CN },CN 为 mcpp-res/libserial(逐字节一致)
- 本地 gcc 16.1.0 / llvm 22.1.8 / llvm 23.1.3 均 1 passed
Member
|
Maintainer follow-up, appended as commits on top of your branch (history unchanged):
Verified locally on gcc 16.1.0, llvm 22.1.8 and llvm 23.1.3, and CI is all green. Details are appended to |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add compat.libserial, a Linux-only C++-source compat package for LibSerial 1.0.0 (SerialPort / SerialStream), built from upstream's LIBSERIAL_SOURCES three translation units and exposing the public headers under libserial/ the way upstream's install does.
The headers open with <termios.h> and every TU reaches <linux/serial.h>, so the descriptor declares only the linux platform and consumers gate it with [target.'cfg(linux)'.dependencies] (same shape as compat.libaio).
Upstream's SerialPortConstants.h uses uint8_t without including ; a generated_files shim supplies it and #include_next's the real header. The test opens on the libserial header first of all, so the shim is compile-time asserted, and asserts the rest over a real openpty() pair.
No CN mirror (no mcpp-res write access): plain-string upstream url per docs/cn-mirror.md.