diff options
author | Alper Ak <alperyasinak1@gmail.com> | 2025-07-24 11:50:41 +0300 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2025-07-24 08:40:45 -0700 |
commit | a74ff6dda10d6f68f07cfd342bcd93789b56a5be (patch) | |
tree | 3c34f8caf33ca70d7b70f9ca04abba096f2868fc | |
parent | 7e3b4725c92a1c3cabdc6e2467acbce376d03085 (diff) | |
download | meta-openembedded-a74ff6dda10d6f68f07cfd342bcd93789b56a5be.tar.gz |
avro-c++: Fix build for 32-bit targets
Building avro-c++ for 32-bit targets currently fails due to the following warnings being treated as errors:
- `useless-cast` in Symbol.cc
- `conversion` in FileStream.cc
These are promoted to errors because of `-Werror` in the project's build flags.
Fix:
lib32-avro-c++/1.12/sources/avro-c++-1.12/lang/c++/impl/parsing/Symbol.cc:91:27:
error: useless cast to type 'int' [-Werror=useless-cast]
91 | adj.push_back(static_cast(it - rs.begin()));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
lib32-avro-c++/1.12/sources/avro-c++-1.12/lang/c++/impl/FileStream.cc:208:41:
error: conversion from 'int64_t' {aka 'long long int'} to 'size_t' {aka 'unsigned int'} may change value [-Werror=conversion]
208 | in_->seek(position - byteCount_ - available_);
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
lib32-avro-c++/1.12/sources/avro-c++-1.12/lang/c++/impl/FileStream.cc:209:22:
error: conversion from 'int64_t' {aka 'long long int'} to 'size_t'
{aka 'unsigned int'} may change value [-Werror=conversion]
209 | byteCount_ = position;
| ^~~~~~~~
cc1plus: all warnings being treated as errors
Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | meta-oe/recipes-support/avro/avro-c++_1.12.bb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/avro/avro-c++_1.12.bb b/meta-oe/recipes-support/avro/avro-c++_1.12.bb index 726a861bc9..61aef88e13 100644 --- a/meta-oe/recipes-support/avro/avro-c++_1.12.bb +++ b/meta-oe/recipes-support/avro/avro-c++_1.12.bb | |||
@@ -26,4 +26,16 @@ do_configure:prepend() { | |||
26 | cp -r ${UNPACKDIR}/_deps/fmt-src ${B}/_deps/ | 26 | cp -r ${UNPACKDIR}/_deps/fmt-src ${B}/_deps/ |
27 | } | 27 | } |
28 | 28 | ||
29 | # Workaround for 32-bit build failures due to -Werror: | ||
30 | # 'useless-cast' in Symbol.cc and 'conversion' in FileStream.cc | ||
31 | # | ||
32 | # A patch has been submitted upstream: https://github.com/apache/avro/pull/3433 | ||
33 | # Once this or an equivalent fix is merged and the recipe upgraded, this can be removed. | ||
34 | # | ||
35 | # These errors don't occur when using Clang accordingly to upstream configuration and | ||
36 | # the workaround flags aren't recognized by Clang either. | ||
37 | # To avoid unnecessary warnings and keep the build clean across toolchains, the flags are conditionally added | ||
38 | # using the toolchain-gcc override. This makes it unnecessary to override anything for Clang. | ||
39 | CXXFLAGS:append:toolchain-gcc = " -Wno-error=useless-cast -Wno-error=conversion" | ||
40 | |||
29 | BBCLASSEXTEND = "native nativesdk" | 41 | BBCLASSEXTEND = "native nativesdk" |