erichkeane wrote: > This is breaking our Linux CI. Looks to me like there's some assumptions > about what's in the sysroot headers, and how macros are allowed/expected to > be defined? Standard clang builds haven't had this issue, so I'm guessing you > lack coverage on intentionally old sysroots or there's some bit of the build > config that isn't well tested across all the various cmake options. > > Bot: > https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket/8667324817978802465/+/u/clang/build/stdout > > CMake: > https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket/8667324817978802465/+/u/clang/configure/l_execution_details > > Logs: > https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket/8667324817978802465/+/u/clang/build/stdout > > Error: > > ``` > [6310/6623](26) Building CXX object > tools/clang/lib/CIR/Dialect/IR/CMakeFiles/obj.MLIRCIR.dir/CIRAttrs.cpp.o > FAILED: > tools/clang/lib/CIR/Dialect/IR/CMakeFiles/obj.MLIRCIR.dir/CIRAttrs.cpp.o > /b/s/w/ir/x/w/rc/cxx-rbecv4cts5q/reclient-cxx-wrapper.sh > /b/s/w/ir/x/w/cipd/bin/clang++ --sysroot=/b/s/w/ir/x/w/cipd/linux > -DCLANG_EXPORTS > -DCLANG_REPOSITORY_STRING=\"https://llvm.googlesource.com/llvm-project\" > -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE > -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE > -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS > -I/b/s/w/ir/x/w/llvm_build/tools/clang/lib/CIR/Dialect/IR > -I/b/s/w/ir/x/w/llvm-llvm-project/clang/lib/CIR/Dialect/IR > -I/b/s/w/ir/x/w/llvm-llvm-project/clang/include > -I/b/s/w/ir/x/w/llvm_build/tools/clang/include > -I/b/s/w/ir/x/w/llvm_build/include > -I/b/s/w/ir/x/w/llvm-llvm-project/llvm/include > -I/b/s/w/ir/x/w/llvm-llvm-project/llvm/../mlir/include > -I/b/s/w/ir/x/w/llvm_build/tools/mlir/include > -I/b/s/w/ir/x/w/install-zlib-x86_64-linux-gnu/include > -I/b/s/w/ir/x/w/install-zstd-x86_64-linux-gnu/include -stdlib=libc++ -fPIC > -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time > -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter > -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic > -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough > -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor > -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion > -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported > -fdiagnostics-color -ffunction-sections -fdata-sections -Xclang > -fno-pch-timestamp -ffat-lto-objects > -ffile-prefix-map=/b/s/w/ir/x/w/llvm_build=../llvm-llvm-project > -ffile-prefix-map=/b/s/w/ir/x/w/llvm-llvm-project/= -no-canonical-prefixes > -fno-common -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17 > -fvisibility=default -UNDEBUG -fno-exceptions -fno-unwind-tables > -fno-asynchronous-unwind-tables -fno-rtti -Winvalid-pch -Xclang -include-pch > -Xclang > /b/s/w/ir/x/w/llvm_build/tools/clang/lib/AST/CMakeFiles/obj.clangAST.dir/cmake_pch.hxx.pch > -Xclang -include -Xclang > /b/s/w/ir/x/w/llvm_build/tools/clang/lib/AST/CMakeFiles/obj.clangAST.dir/cmake_pch.hxx > -MD -MT > tools/clang/lib/CIR/Dialect/IR/CMakeFiles/obj.MLIRCIR.dir/CIRAttrs.cpp.o -MF > tools/clang/lib/CIR/Dialect/IR/CMakeFiles/obj.MLIRCIR.dir/CIRAttrs.cpp.o.d -o > tools/clang/lib/CIR/Dialect/IR/CMakeFiles/obj.MLIRCIR.dir/CIRAttrs.cpp.o -c > /b/s/w/ir/x/w/llvm-llvm-project/clang/lib/CIR/Dialect/IR/CIRAttrs.cpp > In file included from > /b/s/w/ir/x/w/llvm-llvm-project/clang/lib/CIR/Dialect/IR/CIRAttrs.cpp:61: > /b/s/w/ir/x/w/llvm_build/tools/clang/include/clang/CIR/Dialect/IR/CIROpsAttributes.cpp.inc:8084:60: > error: member initializer 'gnu_dev_major' does not name a non-static data > member or base class > 8084 | OpenCLVersionAttrStorage(int32_t major, int32_t minor) : > major(std::move(major)), minor(std::move(minor)) {} > | > ^~~~~~~~~~~~~~~~~~~~~~~ > /b/s/w/ir/x/w/cipd/linux/usr/include/x86_64-linux-gnu/sys/sysmacros.h:61:20: > note: expanded from macro 'major' > 61 | #define major(dev) gnu_dev_major (dev) > | ^~~~~~~~~~~~~~~~~~~ > In file included from > /b/s/w/ir/x/w/llvm-llvm-project/clang/lib/CIR/Dialect/IR/CIRAttrs.cpp:61: > /b/s/w/ir/x/w/llvm_build/tools/clang/include/clang/CIR/Dialect/IR/CIROpsAttributes.cpp.inc:8084:85: > error: member initializer 'gnu_dev_minor' does not name a non-static data > member or base class > 8084 | OpenCLVersionAttrStorage(int32_t major, int32_t minor) : > major(std::move(major)), minor(std::move(minor)) {} > | > ^~~~~~~~~~~~~~~~~~~~~~~ > /b/s/w/ir/x/w/cipd/linux/usr/include/x86_64-linux-gnu/sys/sysmacros.h:62:20: > note: expanded from macro 'minor' > 62 | #define minor(dev) gnu_dev_minor (dev) > | ^~~~~~~~~~~~~~~~~~~ > 2 errors generated. > ```
Thanks for that! And yeah, I wasn't aware of that. IIRC GNU headers stopped doing those at one point but this is obviously an older-ish version of sysmacros.h. I fixed that here: https://github.com/llvm/llvm-project/commit/56dcf525fefd67bb42831e53193277680a1bbc13 https://github.com/llvm/llvm-project/pull/221291 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
