Skip to content

FluentBit5.0.9対応 - #1230

Open
n-kawauchi wants to merge 1 commit into
OpenRTM:masterfrom
n-kawauchi:update_devel_rtm
Open

FluentBit5.0.9対応#1230
n-kawauchi wants to merge 1 commit into
OpenRTM:masterfrom
n-kawauchi:update_devel_rtm

Conversation

@n-kawauchi

Copy link
Copy Markdown

close #1229

Identify the Bug

Link to #1229

Description of the Change

  • FluentBitを利用するOpenRTM-aistのビルド時のエラーの多くは、#include <fluent-bit.h> を通じて読み込まれた
    ヘッダー内のC言語特有の記述(void* の暗黙の型変換)がC++として不正であると判定されて発生している
  • OpenRTMのfluentbit_stream/FluentBit.cppで、FluentBitのAPIを直接叩いている箇所は多くないので、
    これらを「C++の厳しい型チェック」から隠すためにラッパーファイル(flb_api_wrapper.cとflb_api_wrapper.h)として
    分離させ、これでビルドエラーが解消するように整えた
  • Ubuntu環境用ビルドは、FluentBitがソースからインストールされているdockerイメージ(openrtm/deve-rtm)を利用するので、Dockerfile.devel-rtmも更新する
  • 主な修正内容
    • C言語ラッパーの独立ターゲット化 (CMakeLists.txt)
      • flb_api_wrapper.cをC++ ターゲット(FluentBit)から分離し、独立したスタティックライブラリ flb_wrapper として定義
      • これにより、親プロジェクトの C++ 用コンパイルフラグが C ファイルへ誤って伝播するのを防いでいる
      • OS ごとに適切なインクルードパスおよびコンパイルオプションを設定
        • Linux (GCC):「-std=gnu11」「_GNU_SOURCE」を明示
        • Windows (MSVC):警告抑制オプション (/wd..., /WX-) を適用
    • mk_list_entry マクロの安全な再定義 (flb_api_wrapper.c)
      • fluent-bit.h のインクルード前に <monkey/mk_core.h> を先行ロードし、問題の原因となっていた 「container_of」「mk_list_entry」マクロを「stddef.h」のoffsetofを用いた標準的なポインタ計算式に安全に再定義(#undef & #define)した
      • これにより、コンパイラの言語モードや GCC/Clang のバージョンに依存せず安定してビルドが可能になった
  • 今回の修正で、debパッケージ作成ビルド時のdpkg-buildpackageコマンドのオプションに-bを加え、ソースパッケージ(*.tar.gz)を生成しないようにした
    • ソースはGitHubのRelease tagからダウンロードできるため

Verification

  • 以下の環境でビルドが通ることを確認
    • Ubuntu22.04, 24.04:dockerイメージ(openrtm/deve-rtm:ubuntu22.04、openrtm/deve-rtm:ubuntu24.04)を利用したDockerコンテナ環境
    • Windows:FluentBitをソースから任意のディレクトリにインストールした環境(vs2019使用)
  • Windows環境でのOpenRTM2.1.0版ビルド時は、このラッパーファイル定義のソースをFluentBit v4.2.2でビルドしていたが、
    今回FluentBit v5.0.9利用に変更したところ、問題なくビルドが通った
  • Did you succeed the build?
  • No warnings for the build?
  • Have you passed the unit tests?

@n-kawauchi
n-kawauchi requested a review from n-ando August 5, 2026 01:58
@n-kawauchi n-kawauchi self-assigned this Aug 5, 2026
@n-kawauchi n-kawauchi changed the title FluentBit5.0.9対応Supported for FluentBit builds without creating patches. FluentBit5.0.9対応 Aug 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

FluentBit5.0.9対応

1 participant