Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a70439d authored by Hsin-chen Chuang's avatar Hsin-chen Chuang
Browse files

Uprev Floss linux build env to Debian 13 (trixie) for C++20 support

A patch for libchrome/BUILD.gn to remove `-Xclang-only=` is needed in
the trixie (clang 16) environment because that's not supported in the
public. In bookworm (clang 14) the flag only generates a warning rather
than failing the build.

Bug: 378773945
Tag: #floss
Test: mmm packages/modules/Bluetooth
Test: ./container-build-image.py && ./build-in-container.py with
      https://r.android.com/3345590
Flag: EXEMPT, Floss-only change
Change-Id: Ie461dcde5a2b1efed245d0cce70bb6e6992b4e97
parent e1acd8fb
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -5,8 +5,8 @@

# Inherit from a recent Debian version. The slim version is a smaller variant
# meant for containers.
# This digest is taken from the tag debian:bookworm-slim (if you want to update)
FROM debian@sha256:b66f66d473ef3128436ba2812198edcae86c268eb530dff44ff6ae26f9a2ee30
# This digest is taken from the tag debian:trixie-slim (if you want to update)
FROM debian@sha256:711e115ddeee4722199c82fb5aa189693f473a14999180ae6112ab2da5664ce5

# First install all required apt packages.
RUN apt-get update && \
@@ -37,20 +37,21 @@ RUN apt-get update && \
    libgtest-dev \
    libgmock-dev \
    liblc3-dev \
    liblz4-tool \
    libncurses5 \
    libncurses6 \
    libnss3-dev \
    libprotobuf-dev \
    libre2-9 \
    libre2-11 \
    libre2-dev \
    libssl-dev \
    libtinyxml2-dev \
    libx11-dev \
    libxml2-utils \
    lz4 \
    ninja-build \
    openssl \
    protobuf-compiler \
    python3 \
    python3-six \
    unzip \
    x11proto-core-dev \
    xsltproc \
@@ -77,7 +78,7 @@ RUN cargo install --git https://android.googlesource.com/platform/build --rev 8f
# Rename llvm packages. By default, they are named 11vm-ar-13, etc. which won't
# work properly with the build.
ADD llvm-rename.sh /tmp
RUN /tmp/llvm-rename.sh 14
RUN /tmp/llvm-rename.sh 16

# At this point, the base container is ready. Now we need to build and install
# both libchrome and modp-b64. If you ran this via `docker-build-image.py`, this
+15 −0
Original line number Diff line number Diff line
Remove `-Xclang-only=` as that's not supported in the Debian LLVM
toolchain. Since clang is specified in the ../rules file, we don't need
to worry about the compatibility with other compilers.

--- a/libchrome/BUILD.gn
+++ b/libchrome/BUILD.gn
@@ -82,7 +82,7 @@ config("libchrome_config") {
     "-Wno-narrowing",
     "-Wno-unreachable-code-return",
     "-Wno-unused-local-typedefs",
-    "-Xclang-only=-Wno-char-subscripts",
+    "-Wno-char-subscripts",
   ]
 
   # Address sanitizer + coverage builds do not support -z,defs.
+1 −0
Original line number Diff line number Diff line
@@ -2,3 +2,4 @@
0001-Add-missing-includes.patch
0001-rebase_path-for-write_args.patch
0001-Perfetto-instance-hack.patch
0001-remove-xclang-only.patch
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@
#include <stdbool.h>
#include <stddef.h>

#include <cstdint>
#include <string>

#include "device_iot_conf_defs.h"
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

#pragma once

#include <cstdint>
#include <set>

namespace bluetooth {