Opened 9 months ago

Last modified 10 days ago

#26323 new task

Build 32bit Linux bundles on 64bit systems

Reported by: gk Owned by: tbb-team
Priority: Very High Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: tbb-rbm, TorBrowserTeam201902
Cc: Actual Points:
Parent ID: #26468 Points:
Reviewer: Sponsor:

Description

As indicated in comment:2:ticket:25220 we might run into memory limitations when building 32bit Linux bundles on 32bit Linux systems. While this does not seem to be the case for a vanilla Tor Browser build yet, adding selfrando to the mix triggers this problem:

40:59.43 collect2: fatal error: ld terminated with signal 6 [Aborted]
40:59.43 compilation terminated.
40:59.43 /var/tmp/dist/binutils/bin/ld.gold.real: fatal error: libxul.so: mmap: failed to allocate 1457011852 bytes for output file: Cannot allocate memory
40:59.43 Linker execution failed, status: 1

We should move our compilation for 32bit Linux to a 64bit host.

Child Tickets

Change History (8)

comment:1 Changed 8 months ago by gk

https://convolv.es/blog/2017/08/25/building-firefox-for-linux-32-bit/ has some information, although it eventually got a chroot approach used.

FWIW: We might actually not need that for the ESR 60 cycle and could get away with adding -Wl,--reduce-memory-overheads and -Wl,--no-keep-memory to LDFLAGS as glandium suggests in https://bugzilla.mozilla.org/show_bug.cgi?id=1401093.

But probably sooner than later we have to bite that bullet.

comment:2 Changed 5 months ago by traumschule

I learned it's a compiler bug so more RAM does not help, debuginfo=1 (instead of --disable-debug-symbols) might however be a progress.

Conditionally disable Rust debug symbols

https://bugzilla.mozilla.org/show_bug.cgi?id=1409680#c2

Downstream FreeBSD keeps non-debug symbols for profiling (dtrace, pmcstat) and quick stacktraces. Since Rust dependency was introduced libxul.so grew in size for no good reason (Firefox is mostly C++). And Stylo will bump the size even more.

stylo doesnt build on 32-bits

https://bugzilla.mozilla.org/show_bug.cgi?id=1401093#c15

it *might* be a rust-bindgen issue (related to the clang version we're using, 5.0 here ? doubt it as successfull builds of m-b are done with ports clang, and failing builds from the packaging infra are done with ports clang too..) - he linked me to https://github.com/rust-lang-nursery/rust-bindgen/issues/340.

https://bugzilla.mozilla.org/show_bug.cgi?id=1401093#c18

TL;DR, the clang-sys library is passing structs where libclang expects integers. This is fine everywhere but linux32 (or similar ABIs), so we need to fix it... I proposed a fix for clang-sys, and will update bindgen in mozilla-central once it lands.

https://bugzilla.mozilla.org/show_bug.cgi?id=1401093#c36

So the original problem is a rustc compiler bug: on FreeBSD, when compiling the Rust part, the generated asm code expects struct from stack (it follows SysV/i386 convention); but the C compiler has generated asm code to return it from registers (the other convention, similar to OpenBSD), resulting stack corruption.

https://bugzilla.mozilla.org/show_bug.cgi?id=1401093#c44

If it is necessary for all native builds on 32-bits (whatever the platform), why not detecting it directly in the rust code where your patch is ? i suppose rust has a way to know the architecture of the build host...

https://github.com/servo/servo/pull/18935 (and yeah, target_pointer_width in a build script is actually host pointer width, fun)

Run bindgen sequentially if we're on a 32-bit host

build symbols missing on macOS/OS X, unhelpful crash signatures like [@ XUL + 0xddb7c]

https://bugzilla.mozilla.org/show_bug.cgi?id=1380381#c22

Please mention in the commit message that debuginfo=1 still means there's enough info for stack traces, although it lacks line info (so we'll know that something crashed in $function, but not at what specific line it did). debuginfo=2 also adds variable information, useful for debugging, but is irrelevant to crash reports.
The workaround has my approval. It is unfortunate that we lose temporarily lose line-level debugging info for Rust. But it's that, a big unknown and PITA reverting cross-compiling, keeping the trees closed, or no reliable debug symbols at all on OS X. This seems like the least bad option.

Restore full Rust debug symbols / address dsymutil crashes

https://bugzilla.mozilla.org/show_bug.cgi?id=1381043#c17

Backport llvm r313872 to 3.9 to avoid llvm-dsymutil crashing on bad rust DWARF data.

https://hg.mozilla.org/mozilla-central/rev/a3225b6f6193
https://hg.mozilla.org/mozilla-central/rev/95555b11aaaf

comment:3 Changed 4 weeks ago by gk

Keywords: TorBrowserTeam201901 added
Parent ID: #26468
Priority: MediumVery High

comment:4 Changed 2 weeks ago by boklm

I have started working on a patch for this:
https://gitweb.torproject.org/user/boklm/tor-browser-build.git/commit/?h=bug_26323_v2&id=dab50487c24bf04deb5fd3243ba407a6e2697f20

Currently it fails to build rust, with many undefined reference errors, such as:

[ 16%] Building CXX object utils/yaml-bench/CMakeFiles/yaml-bench.dir/YAMLBench.cpp.o
[ 16%] Linking CXX executable ../../bin/not
../../lib/libLLVMSupport.a(CommandLine.cpp.o): In function `_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag.isra.226':
CommandLine.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag.isra.226+0x6b): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
../../lib/libLLVMSupport.a(CommandLine.cpp.o): In function `_ZN12_GLOBAL__N_114VersionPrinter5printEv.isra.261':
CommandLine.cpp:(.text._ZN12_GLOBAL__N_114VersionPrinter5printEv.isra.261+0xad): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const'
CommandLine.cpp:(.text._ZN12_GLOBAL__N_114VersionPrinter5printEv.isra.261+0x1f0): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)'
../../lib/libLLVMSupport.a(raw_ostream.cpp.o): In function `llvm::raw_fd_ostream::write_impl(char const*, unsigned long)':
raw_ostream.cpp:(.text._ZN4llvm14raw_fd_ostream10write_implEPKcm+0x60): undefined reference to `std::_V2::generic_category()'
../../lib/libLLVMSupport.a(raw_ostream.cpp.o): In function `llvm::raw_string_ostream::write_impl(char const*, unsigned long)':
raw_ostream.cpp:(.text._ZN4llvm18raw_string_ostream10write_implEPKcm+0x18): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)'
../../lib/libLLVMSupport.a(raw_ostream.cpp.o): In function `llvm::raw_fd_ostream::~raw_fd_ostream()':
raw_ostream.cpp:(.text._ZN4llvm14raw_fd_ostreamD2Ev+0xbe): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)'
../../lib/libLLVMSupport.a(raw_ostream.cpp.o): In function `llvm::raw_fd_ostream::raw_fd_ostream(int, bool, bool)':
raw_ostream.cpp:(.text._ZN4llvm14raw_fd_ostreamC2Eibb+0x48): undefined reference to `std::_V2::system_category()'
../../lib/libLLVMSupport.a(raw_ostream.cpp.o): In function `llvm::raw_fd_ostream::raw_fd_ostream(llvm::StringRef, std::error_code&, llvm::sys::fs::OpenFlags)':
raw_ostream.cpp:(.text._ZN4llvm14raw_fd_ostreamC2ENS_9StringRefERSt10error_codeNS_3sys2fs9OpenFlagsE+0x86): undefined reference to `std::_V2::system_category()'
../../lib/libLLVMSupport.a(raw_ostream.cpp.o): In function `llvm::raw_fd_ostream::seek(unsigned long)':
raw_ostream.cpp:(.text._ZN4llvm14raw_fd_ostream4seekEm+0x3c): undefined reference to `std::_V2::generic_category()'
../../lib/libLLVMSupport.a(raw_ostream.cpp.o): In function `llvm::outs()':

comment:5 Changed 2 weeks ago by gk

Are you trying to cross-compile the clang that Rust needs? We should just compile the 64bit version of it as we do in the 64bit build. Clang should be capable of compiling 32bit code later then if needed.

comment:6 Changed 12 days ago by gk

Keywords: TorBrowserTeam201902 added; TorBrowserTeam201901 removed

Moving tickets to February.

comment:7 Changed 10 days ago by boklm

When building firefox I had this error:

14:25.92 error: failed to run custom build command for `style v0.0.1 (file:///var/tmp/build/firefox-4d0f9fa5fdd5/servo/components/style)`
14:25.92 process didn't exit successfully: `/var/tmp/build/firefox-4d0f9fa5fdd5/obj-i686-linux-gnu/toolkit/library/release/build/style-944c8c05b96e6d43/build-script-build` (exit code: 101)
[...]
14:26.02 --- stderr
14:26.02 /var/tmp/build/firefox-4d0f9fa5fdd5/obj-i686-linux-gnu/dist/include/mozilla/Compiler.h:49:10: fatal error: 'cstddef' file not found
14:26.02 /var/tmp/build/firefox-4d0f9fa5fdd5/obj-i686-linux-gnu/dist/include/mozilla/Compiler.h:49:10: fatal error: 'cstddef' file not found, err: true
14:26.04 thread '<unnamed>' panicked at 'Failed to generate bindings, flags: ["/var/tmp/build/firefox-4d0f9fa5fdd5/obj-i686-linux-gnu/dist/include/mozilla/ServoBindings.h", "--rust-target", "1.0", "--blacklist-type", "nsACString_internal", "--blacklist-type", "nsAString_internal", "--blacklist-type", "ServoStyleContextBorrowed", "--blacklist-type", "ServoStyleContextBorrowedOrNull", "--blacklist-type", "mozilla::css::GridTemplateAreasValue", "--blacklist-type", "mozilla::css::ErrorReporter", "--blacklist-type", "mozilla::css::ImageValue", "--blacklist-type", "mozilla::css::URLValue", "--blacklist-type", "mozilla::css::URLValueData", "--blacklist-type", "mozilla::dom::CallerType", "--blacklist-type", "mozilla::AnonymousCounterStyle", "--blacklist-type", "mozilla::AtomArray", "--blacklist-type", "mozilla::CORSMode", "--blacklist-type", "mozilla::MallocSizeOf", "--blacklist-type", "mozilla::OriginFlags", "--blacklist-type", "mozilla::UniquePtr", "--blacklist-type", "ServoRawOffsetArc", "--blacklist-type", "nsIContent", "--blacklist-type", "nsIDocument", "--blacklist-type", "nsIDocument_DocumentTheme", "--blacklist-type", "nsSimpleContentList", "--blacklist-type", "MediumFeaturesChangedResult", "--blacklist-type", "RawGeckoAnimationPropertySegment", "--blacklist-type", "RawGeckoComputedTiming", "--blacklist-type", "RawGeckoCSSPropertyIDList", "--blacklist-type", "RawGeckoDocument", "--blacklist-type", "RawGeckoElement", "--blacklist-type", "Element", "--blacklist-type", "RawGeckoKeyframeList", "--blacklist-type", "RawGeckoPropertyValuePairList", "--blacklist-type", "RawGeckoComputedKeyframeValuesList", "--blacklist-type", "RawGeckoFontFaceRuleList", "--blacklist-type", "RawGeckoNode", "--blacklist-type", "RawServoAnimationValue", "--blacklist-type", "RawGeckoServoAnimationValueList", "--blacklist-type", "RawServoMediaList", "--blacklist-type", "RawServoStyleSheetContents", "--blacklist-type", "RawServoDeclarationBlock", "--blacklist-type", "RawServoStyleRule", "--blacklist-type", "RawGeckoPresContext", "--blacklist-type", "RawGeckoPresContextOwned", "--blacklist-type", "RawGeckoStyleAnimationList", "--blacklist-type", "RawGeckoStyleChildrenIterator", "--blacklist-type", "RawGeckoServoStyleRuleList", "--blacklist-type", "RawGeckoURLExtraData", "--blacklist-type", "RawGeckoXBLBinding", "--blacklist-type", "RawServoSelectorList", "--blacklist-type", "RawServoSourceSizeList", "--blacklist-type", "RefPtr", "--blacklist-type", "RustString", "--blacklist-type", "CSSPseudoClassType", "--blacklist-type", "CSSPseudoElementType", "--blacklist-type", "ServoTraversalFlags", "--blacklist-type", "ComputedTimingFunction_BeforeFlag", "--blacklist-type", "CounterStylePtr", "--blacklist-type", "FontFamilyType", "--blacklist-type", "FontSizePrefs", "--blacklist-type", "GeckoFontMetrics", "--blacklist-type", "IterationCompositeOperation", "--blacklist-type", "Keyframe", "--blacklist-type", "PropertyValuePair", "--blacklist-type", "SeenPtrs", "--blacklist-type", "ServoBundledURI", "--blacklist-type", "ServoElementSnapshot", "--blacklist-type", "ServoElementSnapshotTable", "--blacklist-type", "ServoStyleSetSizes", "--blacklist-type", "SheetParsingMode", "--blacklist-type", "StyleBasicShapeType", "--blacklist-type", "StyleShapeSource", "--blacklist-type", "StyleTransition", "--blacklist-type", "gfxFontFeatureValueSet", "--blacklist-type", "nsCSSCounterDesc", "--blacklist-type", "nsCSSCounterStyleRule", "--blacklist-type", "nsCSSFontDesc", "--blacklist-type", "nsCSSFontFaceRule", "--blacklist-type", "nsCSSKeyword", "--blacklist-type", "nsCSSPropertyID", "--blacklist-type", "nsCSSPropertyIDSet", "--blacklist-type", "nsCSSRect", "--blacklist-type", "nsCSSShadowArray", "--blacklist-type", "nsCSSUnit", "--blacklist-type", "nsCSSValue", "--blacklist-type", "nsCSSValueSharedList", "--blacklist-type", "nsChangeHint", "--blacklist-type", "nsCursorImage", "--blacklist-type", "nsFont", "--blacklist-type", "nsAtom", "--blacklist-type", "nsIURI", "--blacklist-type", "nsCompatibility", "--blacklist-type", "nsRestyleHint", "--blacklist-type", "nsStyleBackground", "--blacklist-type", "nsStyleBorder", "--blacklist-type", "nsStyleColor", "--blacklist-type", "nsStyleColumn", "--blacklist-type", "nsStyleContent", "--blacklist-type", "nsStyleContentData", "--blacklist-type", "nsStyleContentData_CounterFunction", "--blacklist-type", "nsStyleContentType", "--blacklist-type", "nsStyleContext", "--blacklist-type", "nsStyleCoord", "--blacklist-type", "nsStyleCoord_Calc", "--blacklist-type", "nsStyleCoord_CalcValue", "--blacklist-type", "nsStyleDisplay", "--blacklist-type", "nsStyleEffects", "--blacklist-type", "nsStyleFilter", "--blacklist-type", "nsStyleFont", "--blacklist-type", "nsStyleGradient", "--blacklist-type", "nsStyleGradientStop", "--blacklist-type", "nsStyleGridTemplate", "--blacklist-type", "nsStyleImage", "--blacklist-type", "nsStyleImageLayers", "--blacklist-type", "nsStyleImageLayers_Layer", "--blacklist-type", "nsStyleImageLayers_LayerType", "--blacklist-type", "nsStyleImageRequest", "--blacklist-type", "nsStyleList", "--blacklist-type", "nsStyleMargin", "--blacklist-type", "nsStyleOutline", "--blacklist-type", "nsStylePadding", "--blacklist-type", "nsStylePosition", "--blacklist-type", "nsStyleQuoteValues", "--blacklist-type", "nsStyleSVG", "--blacklist-type", "nsStyleSVGOpacitySource", "--blacklist-type", "nsStyleSVGPaint", "--blacklist-type", "nsStyleSVGReset", "--blacklist-type", "nsStyleTable", "--blacklist-type", "nsStyleTableBorder", "--blacklist-type", "nsStyleText", "--blacklist-type", "nsStyleTextReset", "--blacklist-type", "nsStyleUIReset", "--blacklist-type", "nsStyleUnion", "--blacklist-type", "nsStyleUnit", "--blacklist-type", "nsStyleUserInterface", "--blacklist-type", "nsStyleVariables", "--blacklist-type", "nsStyleVisibility", "--blacklist-type", "nsStyleXUL", "--blacklist-type", "nsTimingFunction", "--blacklist-type", "nscolor", "--blacklist-type", "nscoord", "--blacklist-type", "nsresult", "--blacklist-type", "Loader", "--blacklist-type", "LoaderReusableStyleSheets", "--blacklist-type", "SheetLoadData", "--blacklist-type", "ServoStyleSheet", "--blacklist-type", "ServoComputedData", "--blacklist-type", "ServoStyleContext", "--blacklist-type", "ServoStyleContextStrong", "--blacklist-type", "EffectCompositor_CascadeLevel", "--blacklist-type", "UpdateAnimationsTasks", "--blacklist-type", "ParsingMode", "--blacklist-type", "InheritTarget", "--blacklist-type", "URLMatchingFunction", "--blacklist-type", "StyleAnimation", "--blacklist-type", "StyleRuleInclusion", "--blacklist-type", "nsStyleTransformMatrix::MatrixTransformOperator", "--blacklist-type", "RawGeckoGfxMatrix4x4", "--blacklist-type", "FontFamilyName", "--blacklist-type", "mozilla::SharedFontList", "--blacklist-type", "RawServoStyleSetOwned", "--blacklist-type", "RawServoStyleSetOwnedOrNull", "--blacklist-type", "RawServoStyleSetBorrowed", "--blacklist-type", "RawServoStyleSetBorrowedOrNull", "--blacklist-type", "RawServoStyleSetBorrowedMut", "--blacklist-type", "RawServoStyleSetBorrowedMutOrNull", "--blacklist-type", "RawServoStyleSet", "--blacklist-type", "RawServoAuthorStylesOwned", "--blacklist-type", "RawServoAuthorStylesOwnedOrNull", "--blacklist-type", "RawServoAuthorStylesBorrowed", "--blacklist-type", "RawServoAuthorStylesBorrowedOrNull", "--blacklist-type", "RawServoAuthorStylesBorrowedMut", "--blacklist-type", "RawServoAuthorStylesBorrowedMutOrNull", "--blacklist-type", "RawServoAuthorStyles", "--blacklist-type", "RawServoSelectorListOwned", "--blacklist-type", "RawServoSelectorListOwnedOrNull", "--blacklist-type", "RawServoSelectorListBorrowed", "--blacklist-type", "RawServoSelectorListBorrowedOrNull", "--blacklist-type", "RawServoSelectorListBorrowedMut", "--blacklist-type", "RawServoSelectorListBorrowedMutOrNull", "--blacklist-type", "RawServoSourceSizeListOwned", "--blacklist-type", "RawServoSourceSizeListOwnedOrNull", "--blacklist-type", "RawServoSourceSizeListBorrowed", "--blacklist-type", "RawServoSourceSizeListBorrowedOrNull", "--blacklist-type", "RawServoSourceSizeListBorrowedMut", "--blacklist-type", "RawServoSourceSizeListBorrowedMutOrNull", "--blacklist-type", "ServoElementSnapshotOwned", "--blacklist-type", "ServoElementSnapshotOwnedOrNull", "--blacklist-type", "ServoElementSnapshotBorrowed", "--blacklist-type", "ServoElementSnapshotBorrowedOrNull", "--blacklist-type", "ServoElementSnapshotBorrowedMut", "--blacklist-type", "ServoElementSnapshotBorrowedMutOrNull", "--blacklist-type", "RawServoAnimationValueMapOwned", "--blacklist-type", "RawServoAnimationValueMapOwnedOrNull", "--blacklist-type", "RawServoAnimationValueMapBorrowed", "--blacklist-type", "RawServoAnimationValueMapBorrowedOrNull", "--blacklist-type", "RawServoAnimationValueMapBorrowedMut", "--blacklist-type", "RawServoAnimationValueMapBorrowedMutOrNull", "--blacklist-type", "RawServoAnimationValueMap", "--blacklist-type", "RawGeckoNodeBorrowed", "--blacklist-type", "RawGeckoNodeBorrowedOrNull", "--blacklist-type", "RawGeckoElementBorrowed", "--blacklist-type", "RawGeckoElementBorrowedOrNull", "--blacklist-type", "RawGeckoDocumentBorrowed", "--blacklist-type", "RawGeckoDocumentBorrowedOrNull", "--blacklist-type", "RawServoDeclarationBlockStrongBorrowed", "--blacklist-type", "RawServoDeclarationBlockStrongBorrowedOrNull", "--blacklist-type", "RawGeckoPresContextBorrowed", "--blacklist-type", "RawGeckoPresContextBorrowedOrNull", "--blacklist-type", "RawGeckoXBLBindingBorrowed", "--blacklist-type", "RawGeckoXBLBindingBorrowedOrNull", "--blacklist-type", "nsCSSPropertyIDSetBorrowed", "--blacklist-type", "nsCSSPropertyIDSetBorrowedOrNull", "--blacklist-type", "nsCSSPropertyIDSetBorrowedMut", "--blacklist-type", "nsCSSPropertyIDSetBorrowedMutOrNull", "--blacklist-type", "nsCSSValueBorrowed", "--blacklist-type", "nsCSSValueBorrowedOrNull", "--blacklist-type", "nsCSSValueBorrowedMut", "--blacklist-type", "nsCSSValueBorrowedMutOrNull", "--blacklist-type", "nsTimingFunctionBorrowed", "--blacklist-type", "nsTimingFunctionBorrowedOrNull", "--blacklist-type", "nsTimingFunctionBorrowedMut", "--blacklist-type", "nsTimingFunctionBorrowedMutOrNull", "--blacklist-type", "RawGeckoAnimationPropertySegmentBorrowed", "--blacklist-type", "RawGeckoAnimationPropertySegmentBorrowedOrNull", "--blacklist-type", "RawGeckoAnimationPropertySegmentBorrowedMut", "--blacklist-type", "RawGeckoAnimationPropertySegmentBorrowedMutOrNull", "--blacklist-type", "RawGeckoComputedTimingBorrowed", "--blacklist-type", "RawGeckoComputedTimingBorrowedOrNull", "--blacklist-type", "RawGeckoComputedTimingBorrowedMut", "--blacklist-type", "RawGeckoComputedTimingBorrowedMutOrNull", "--blacklist-type", "RawGeckoCSSPropertyIDListBorrowed", "--blacklist-type", "RawGeckoCSSPropertyIDListBorrowedOrNull", "--blacklist-type", "RawGeckoCSSPropertyIDListBorrowedMut", "--blacklist-type", "RawGeckoCSSPropertyIDListBorrowedMutOrNull", "--blacklist-type", "RawGeckoKeyframeListBorrowed", "--blacklist-type", "RawGeckoKeyframeListBorrowedOrNull", "--blacklist-type", "RawGeckoKeyframeListBorrowedMut", "--blacklist-type", "RawGeckoKeyframeListBorrowedMutOrNull", "--blacklist-type", "RawGeckoPropertyValuePairListBorrowed", "--blacklist-type", "RawGeckoPropertyValuePairListBorrowedOrNull", "--blacklist-type", "RawGeckoPropertyValuePairListBorrowedMut", "--blacklist-type", "RawGeckoPropertyValuePairListBorrowedMutOrNull", "--blacklist-type", "RawGeckoComputedKeyframeValuesListBorrowed", "--blacklist-type", "RawGeckoComputedKeyframeValuesListBorrowedOrNull", "--blacklist-type", "RawGeckoComputedKeyframeValuesListBorrowedMut", "--blacklist-type", "RawGeckoComputedKeyframeValuesListBorrowedMutOrNull", "--blacklist-type", "RawGeckoFontFaceRuleListBorrowed", "--blacklist-type", "RawGeckoFontFaceRuleListBorrowedOrNull", "--blacklist-type", "RawGeckoFontFaceRuleListBorrowedMut", "--blacklist-type", "RawGeckoFontFaceRuleListBorrowedMutOrNull", "--blacklist-type", "RawGeckoServoStyleRuleListBorrowed", "--blacklist-type", "RawGeckoServoStyleRuleListBorrowedOrNull", "--blacklist-type", "RawGeckoServoStyleRuleListBorrowedMut", "--blacklist-type", "RawGeckoServoStyleRuleListBorrowedMutOrNull", "--blacklist-type", "RawGeckoServoAnimationValueListBorrowed", "--blacklist-type", "RawGeckoServoAnimationValueListBorrowedOrNull", "--blacklist-type", "RawGeckoServoAnimationValueListBorrowedMut", "--blacklist-type", "RawGeckoServoAnimationValueListBorrowedMutOrNull", "--blacklist-type", "RawGeckoStyleAnimationListBorrowed", "--blacklist-type", "RawGeckoStyleAnimationListBorrowedOrNull", "--blacklist-type", "RawGeckoStyleAnimationListBorrowedMut", "--blacklist-type", "RawGeckoStyleAnimationListBorrowedMutOrNull", "--blacklist-type", "RawGeckoStyleChildrenIteratorBorrowed", "--blacklist-type", "RawGeckoStyleChildrenIteratorBorrowedOrNull", "--blacklist-type", "RawGeckoStyleChildrenIteratorBorrowedMut", "--blacklist-type", "RawGeckoStyleChildrenIteratorBorrowedMutOrNull", "--blacklist-type", "ServoCssRulesStrong", "--blacklist-type", "ServoCssRulesBorrowed", "--blacklist-type", "ServoCssRulesBorrowedOrNull", "--blacklist-type", "ServoCssRules", "--blacklist-type", "RawServoStyleSheetContentsStrong", "--blacklist-type", "RawServoStyleSheetContentsBorrowed", "--blacklist-type", "RawServoStyleSheetContentsBorrowedOrNull", "--blacklist-type", "RawServoDeclarationBlockStrong", "--blacklist-type", "RawServoDeclarationBlockBorrowed", "--blacklist-type", "RawServoDeclarationBlockBorrowedOrNull", "--blacklist-type", "RawServoStyleRuleStrong", "--blacklist-type", "RawServoStyleRuleBorrowed", "--blacklist-type", "RawServoStyleRuleBorrowedOrNull", "--blacklist-type", "RawServoImportRuleStrong", "--blacklist-type", "RawServoImportRuleBorrowed", "--blacklist-type", "RawServoImportRuleBorrowedOrNull", "--blacklist-type", "RawServoImportRule", "--blacklist-type", "RawServoAnimationValueStrong", "--blacklist-type", "RawServoAnimationValueBorrowed", "--blacklist-type", "RawServoAnimationValueBorrowedOrNull", "--blacklist-type", "RawServoKeyframeStrong", "--blacklist-type", "RawServoKeyframeBorrowed", "--blacklist-type", "RawServoKeyframeBorrowedOrNull", "--blacklist-type", "RawServoKeyframe", "--blacklist-type", "RawServoKeyframesRuleStrong", "--blacklist-type", "RawServoKeyframesRuleBorrowed", "--blacklist-type", "RawServoKeyframesRuleBorrowedOrNull", "--blacklist-type", "RawServoKeyframesRule", "--blacklist-type", "RawServoMediaListStrong", "--blacklist-type", "RawServoMediaListBorrowed", "--blacklist-type", "RawServoMediaListBorrowedOrNull", "--blacklist-type", "RawServoMediaRuleStrong", "--blacklist-type", "RawServoMediaRuleBorrowed", "--blacklist-type", "RawServoMediaRuleBorrowedOrNull", "--blacklist-type", "RawServoMediaRule", "--blacklist-type", "RawServoNamespaceRuleStrong", "--blacklist-type", "RawServoNamespaceRuleBorrowed", "--blacklist-type", "RawServoNamespaceRuleBorrowedOrNull", "--blacklist-type", "RawServoNamespaceRule", "--blacklist-type", "RawServoPageRuleStrong", "--blacklist-type", "RawServoPageRuleBorrowed", "--blacklist-type", "RawServoPageRuleBorrowedOrNull", "--blacklist-type", "RawServoPageRule", "--blacklist-type", "RawServoSupportsRuleStrong", "--blacklist-type", "RawServoSupportsRuleBorrowed", "--blacklist-type", "RawServoSupportsRuleBorrowedOrNull", "--blacklist-type", "RawServoSupportsRule", "--blacklist-type", "RawServoDocumentRuleStrong", "--blacklist-type", "RawServoDocumentRuleBorrowed", "--blacklist-type", "RawServoDocumentRuleBorrowedOrNull", "--blacklist-type", "RawServoDocumentRule", "--blacklist-type", "RawServoFontFeatureValuesRuleStrong", "--blacklist-type", "RawServoFontFeatureValuesRuleBorrowed", "--blacklist-type", "RawServoFontFeatureValuesRuleBorrowedOrNull", "--blacklist-type", "RawServoFontFeatureValuesRule", "--blacklist-type", "RawServoRuleNodeStrong", "--blacklist-type", "RawServoRuleNodeBorrowed", "--blacklist-type", "RawServoRuleNodeBorrowedOrNull", "--blacklist-type", "RawServoRuleNode", "--no-derive-default", "--disable-name-namespacing", "--generate", "function", "--ignore-methods", "--raw-line", "pub use nsstring::{nsACString, nsAString, nsString, nsStringRepr};", "--raw-line", "use gecko_bindings::structs::nsStyleTransformMatrix;", "--raw-line", "use gecko_bindings::structs::nsTArray;", "--raw-line", "type nsACString_internal = nsACString;", "--raw-line", "type nsAString_internal = nsAString;", "--raw-line", "pub type ServoStyleContextBorrowed<\'a> = &\'a ::properties::ComputedValues;", "--raw-line", "pub type ServoStyleContextBorrowedOrNull<\'a> = Option<&\'a ::properties::ComputedValues>;", "--raw-line", "pub type ServoComputedDataBorrowed<\'a> = &\'a ServoComputedData;", "--raw-line", "pub type RawServoAnimationValueTableBorrowed<\'a> = &\'a ();", "--raw-line", "use gecko_bindings::structs::mozilla::css::GridTemplateAreasValue;", "--raw-line", "use gecko_bindings::structs::mozilla::css::ErrorReporter;", "--raw-line", "use gecko_bindings::structs::mozilla::css::ImageValue;", "--raw-line", "use gecko_bindings::structs::mozilla::css::URLValue;", "--raw-line", "use gecko_bindings::structs::mozilla::css::URLValueData;", "--raw-line", "use gecko_bindings::structs::mozilla::dom::CallerType;", "--raw-line", "use gecko_bindings::structs::mozilla::AnonymousCounterStyle;", "--raw-line", "use gecko_bindings::structs::mozilla::AtomArray;", "--raw-line", "use gecko_bindings::structs::mozilla::CORSMode;", "--raw-line", "use gecko_bindings::structs::mozilla::MallocSizeOf;", "--raw-line", "use gecko_bindings::structs::mozilla::OriginFlags;", "--raw-line", "use gecko_bindings::structs::mozilla::UniquePtr;", "--raw-line", "use gecko_bindings::structs::ServoRawOffsetArc;", "--raw-line", "use gecko_bindings::structs::nsIContent;", "--raw-line", "use gecko_bindings::structs::nsIDocument;", "--raw-line", "use gecko_bindings::structs::nsIDocument_DocumentTheme;", "--raw-line", "use gecko_bindings::structs::nsSimpleContentList;", "--raw-line", "use gecko_bindings::structs::MediumFeaturesChangedResult;", "--raw-line", "use gecko_bindings::structs::RawGeckoAnimationPropertySegment;", "--raw-line", "use gecko_bindings::structs::RawGeckoComputedTiming;", "--raw-line", "use gecko_bindings::structs::RawGeckoCSSPropertyIDList;", "--raw-line", "use gecko_bindings::structs::RawGeckoDocument;", "--raw-line", "use gecko_bindings::structs::RawGeckoElement;", "--raw-line", "use gecko_bindings::structs::Element;", "--raw-line", "use gecko_bindings::structs::RawGeckoKeyframeList;", "--raw-line", "use gecko_bindings::structs::RawGeckoPropertyValuePairList;", "--raw-line", "use gecko_bindings::structs::RawGeckoComputedKeyframeValuesList;", "--raw-line", "use gecko_bindings::structs::RawGeckoFontFaceRuleList;", "--raw-line", "use gecko_bindings::structs::RawGeckoNode;", "--raw-line", "use gecko_bindings::structs::RawServoAnimationValue;", "--raw-line", "use gecko_bindings::structs::RawGeckoServoAnimationValueList;", "--raw-line", "use gecko_bindings::structs::RawServoMediaList;", "--raw-line", "use gecko_bindings::structs::RawServoStyleSheetContents;", "--raw-line", "use gecko_bindings::structs::RawServoDeclarationBlock;", "--raw-line", "use gecko_bindings::structs::RawServoStyleRule;", "--raw-line", "use gecko_bindings::structs::RawGeckoPresContext;", "--raw-line", "use gecko_bindings::structs::RawGeckoPresContextOwned;", "--raw-line", "use gecko_bindings::structs::RawGeckoStyleAnimationList;", "--raw-line", "use gecko_bindings::structs::RawGeckoStyleChildrenIterator;", "--raw-line", "use gecko_bindings::structs::RawGeckoServoStyleRuleList;", "--raw-line", "use gecko_bindings::structs::RawGeckoURLExtraData;", "--raw-line", "use gecko_bindings::structs::RawGeckoXBLBinding;", "--raw-line", "use gecko_bindings::structs::RawServoSelectorList;", "--raw-line", "use gecko_bindings::structs::RawServoSourceSizeList;", "--raw-line", "use gecko_bindings::structs::RefPtr;", "--raw-line", "use gecko_bindings::structs::RustString;", "--raw-line", "use gecko_bindings::structs::CSSPseudoClassType;", "--raw-line", "use gecko_bindings::structs::CSSPseudoElementType;", "--raw-line", "use gecko_bindings::structs::ServoTraversalFlags;", "--raw-line", "use gecko_bindings::structs::ComputedTimingFunction_BeforeFlag;", "--raw-line", "use gecko_bindings::structs::CounterStylePtr;", "--raw-line", "use gecko_bindings::structs::FontFamilyType;", "--raw-line", "use gecko_bindings::structs::FontSizePrefs;", "--raw-line", "use gecko_bindings::structs::GeckoFontMetrics;", "--raw-line", "use gecko_bindings::structs::IterationCompositeOperation;", "--raw-line", "use gecko_bindings::structs::Keyframe;", "--raw-line", "use gecko_bindings::structs::PropertyValuePair;", "--raw-line", "use gecko_bindings::structs::SeenPtrs;", "--raw-line", "use gecko_bindings::structs::ServoBundledURI;", "--raw-line", "use gecko_bindings::structs::ServoElementSnapshot;", "--raw-line", "use gecko_bindings::structs::ServoElementSnapshotTable;", "--raw-line", "use gecko_bindings::structs::ServoStyleSetSizes;", "--raw-line", "use gecko_bindings::structs::SheetParsingMode;", "--raw-line", "use gecko_bindings::structs::StyleBasicShapeType;", "--raw-line", "use gecko_bindings::structs::StyleShapeSource;", "--raw-line", "use gecko_bindings::structs::StyleTransition;", "--raw-line", "use gecko_bindings::structs::gfxFontFeatureValueSet;", "--raw-line", "use gecko_bindings::structs::nsCSSCounterDesc;", "--raw-line", "use gecko_bindings::structs::nsCSSCounterStyleRule;", "--raw-line", "use gecko_bindings::structs::nsCSSFontDesc;", "--raw-line", "use gecko_bindings::structs::nsCSSFontFaceRule;", "--raw-line", "use gecko_bindings::structs::nsCSSKeyword;", "--raw-line", "use gecko_bindings::structs::nsCSSPropertyID;", "--raw-line", "use gecko_bindings::structs::nsCSSPropertyIDSet;", "--raw-line", "use gecko_bindings::structs::nsCSSRect;", "--raw-line", "use gecko_bindings::structs::nsCSSShadowArray;", "--raw-line", "use gecko_bindings::structs::nsCSSUnit;", "--raw-line", "use gecko_bindings::structs::nsCSSValue;", "--raw-line", "use gecko_bindings::structs::nsCSSValueSharedList;", "--raw-line", "use gecko_bindings::structs::nsChangeHint;", "--raw-line", "use gecko_bindings::structs::nsCursorImage;", "--raw-line", "use gecko_bindings::structs::nsFont;", "--raw-line", "use gecko_bindings::structs::nsAtom;", "--raw-line", "use gecko_bindings::structs::nsIURI;", "--raw-line", "use gecko_bindings::structs::nsCompatibility;", "--raw-line", "use gecko_bindings::structs::nsRestyleHint;", "--raw-line", "use gecko_bindings::structs::nsStyleBackground;", "--raw-line", "unsafe impl Send for nsStyleBackground {}", "--raw-line", "unsafe impl Sync for nsStyleBackground {}", "--raw-line", "use gecko_bindings::structs::nsStyleBorder;", "--raw-line", "unsafe impl Send for nsStyleBorder {}", "--raw-line", "unsafe impl Sync for nsStyleBorder {}", "--raw-line", "use gecko_bindings::structs::nsStyleColor;", "--raw-line", "unsafe impl Send for nsStyleColor {}", "--raw-line", "unsafe impl Sync for nsStyleColor {}", "--raw-line", "use gecko_bindings::structs::nsStyleColumn;", "--raw-line", "unsafe impl Send for nsStyleColumn {}", "--raw-line", "unsafe impl Sync for nsStyleColumn {}", "--raw-line", "use gecko_bindings::structs::nsStyleContent;", "--raw-line", "unsafe impl Send for nsStyleContent {}", "--raw-line", "unsafe impl Sync for nsStyleContent {}", "--raw-line", "use gecko_bindings::structs::nsStyleContentData;", "--raw-line", "unsafe impl Send for nsStyleContentData {}", "--raw-line", "unsafe impl Sync for nsStyleContentData {}", "--raw-line", "use gecko_bindings::structs::nsStyleContentData_CounterFunction;", "--raw-line", "unsafe impl Send for nsStyleContentData_CounterFunction {}", "--raw-line", "unsafe impl Sync for nsStyleContentData_CounterFunction {}", "--raw-line", "use gecko_bindings::structs::nsStyleContentType;", "--raw-line", "unsafe impl Send for nsStyleContentType {}", "--raw-line", "unsafe impl Sync for nsStyleContentType {}", "--raw-line", "use gecko_bindings::structs::nsStyleContext;", "--raw-line", "unsafe impl Send for nsStyleContext {}", "--raw-line", "unsafe impl Sync for nsStyleContext {}", "--raw-line", "use gecko_bindings::structs::nsStyleCoord;", "--raw-line", "unsafe impl Send for nsStyleCoord {}", "--raw-line", "unsafe impl Sync for nsStyleCoord {}", "--raw-line", "use gecko_bindings::structs::nsStyleCoord_Calc;", "--raw-line", "unsafe impl Send for nsStyleCoord_Calc {}", "--raw-line", "unsafe impl Sync for nsStyleCoord_Calc {}", "--raw-line", "use gecko_bindings::structs::nsStyleCoord_CalcValue;", "--raw-line", "unsafe impl Send for nsStyleCoord_CalcValue {}", "--raw-line", "unsafe impl Sync for nsStyleCoord_CalcValue {}", "--raw-line", "use gecko_bindings::structs::nsStyleDisplay;", "--raw-line", "unsafe impl Send for nsStyleDisplay {}", "--raw-line", "unsafe impl Sync for nsStyleDisplay {}", "--raw-line", "use gecko_bindings::structs::nsStyleEffects;", "--raw-line", "unsafe impl Send for nsStyleEffects {}", "--raw-line", "unsafe impl Sync for nsStyleEffects {}", "--raw-line", "use gecko_bindings::structs::nsStyleFilter;", "--raw-line", "unsafe impl Send for nsStyleFilter {}", "--raw-line", "unsafe impl Sync for nsStyleFilter {}", "--raw-line", "use gecko_bindings::structs::nsStyleFont;", "--raw-line", "unsafe impl Send for nsStyleFont {}", "--raw-line", "unsafe impl Sync for nsStyleFont {}", "--raw-line", "use gecko_bindings::structs::nsStyleGradient;", "--raw-line", "unsafe impl Send for nsStyleGradient {}", "--raw-line", "unsafe impl Sync for nsStyleGradient {}", "--raw-line", "use gecko_bindings::structs::nsStyleGradientStop;", "--raw-line", "unsafe impl Send for nsStyleGradientStop {}", "--raw-line", "unsafe impl Sync for nsStyleGradientStop {}", "--raw-line", "use gecko_bindings::structs::nsStyleGridTemplate;", "--raw-line", "unsafe impl Send for nsStyleGridTemplate {}", "--raw-line", "unsafe impl Sync for nsStyleGridTemplate {}", "--raw-line", "use gecko_bindings::structs::nsStyleImage;", "--raw-line", "unsafe impl Send for nsStyleImage {}", "--raw-line", "unsafe impl Sync for nsStyleImage {}", "--raw-line", "use gecko_bindings::structs::nsStyleImageLayers;", "--raw-line", "unsafe impl Send for nsStyleImageLayers {}", "--raw-line", "unsafe impl Sync for nsStyleImageLayers {}", "--raw-line", "use gecko_bindings::structs::nsStyleImageLayers_Layer;", "--raw-line", "unsafe impl Send for nsStyleImageLayers_Layer {}", "--raw-line", "unsafe impl Sync for nsStyleImageLayers_Layer {}", "--raw-line", "use gecko_bindings::structs::nsStyleImageLayers_LayerType;", "--raw-line", "unsafe impl Send for nsStyleImageLayers_LayerType {}", "--raw-line", "unsafe impl Sync for nsStyleImageLayers_LayerType {}", "--raw-line", "use gecko_bindings::structs::nsStyleImageRequest;", "--raw-line", "unsafe impl Send for nsStyleImageRequest {}", "--raw-line", "unsafe impl Sync for nsStyleImageRequest {}", "--raw-line", "use gecko_bindings::structs::nsStyleList;", "--raw-line", "unsafe impl Send for nsStyleList {}", "--raw-line", "unsafe impl Sync for nsStyleList {}", "--raw-line", "use gecko_bindings::structs::nsStyleMargin;", "--raw-line", "unsafe impl Send for nsStyleMargin {}", "--raw-line", "unsafe impl Sync for nsStyleMargin {}", "--raw-line", "use gecko_bindings::structs::nsStyleOutline;", "--raw-line", "unsafe impl Send for nsStyleOutline {}", "--raw-line", "unsafe impl Sync for nsStyleOutline {}", "--raw-line", "use gecko_bindings::structs::nsStylePadding;", "--raw-line", "unsafe impl Send for nsStylePadding {}", "--raw-line", "unsafe impl Sync for nsStylePadding {}", "--raw-line", "use gecko_bindings::structs::nsStylePosition;", "--raw-line", "unsafe impl Send for nsStylePosition {}", "--raw-line", "unsafe impl Sync for nsStylePosition {}", "--raw-line", "use gecko_bindings::structs::nsStyleQuoteValues;", "--raw-line", "unsafe impl Send for nsStyleQuoteValues {}", "--raw-line", "unsafe impl Sync for nsStyleQuoteValues {}", "--raw-line", "use gecko_bindings::structs::nsStyleSVG;", "--raw-line", "unsafe impl Send for nsStyleSVG {}", "--raw-line", "unsafe impl Sync for nsStyleSVG {}", "--raw-line", "use gecko_bindings::structs::nsStyleSVGOpacitySource;", "--raw-line", "unsafe impl Send for nsStyleSVGOpacitySource {}", "--raw-line", "unsafe impl Sync for nsStyleSVGOpacitySource {}", "--raw-line", "use gecko_bindings::structs::nsStyleSVGPaint;", "--raw-line", "unsafe impl Send for nsStyleSVGPaint {}", "--raw-line", "unsafe impl Sync for nsStyleSVGPaint {}", "--raw-line", "use gecko_bindings::structs::nsStyleSVGReset;", "--raw-line", "unsafe impl Send for nsStyleSVGReset {}", "--raw-line", "unsafe impl Sync for nsStyleSVGReset {}", "--raw-line", "use gecko_bindings::structs::nsStyleTable;", "--raw-line", "unsafe impl Send for nsStyleTable {}", "--raw-line", "unsafe impl Sync for nsStyleTable {}", "--raw-line", "use gecko_bindings::structs::nsStyleTableBorder;", "--raw-line", "unsafe impl Send for nsStyleTableBorder {}", "--raw-line", "unsafe impl Sync for nsStyleTableBorder {}", "--raw-line", "use gecko_bindings::structs::nsStyleText;", "--raw-line", "unsafe impl Send for nsStyleText {}", "--raw-line", "unsafe impl Sync for nsStyleText {}", "--raw-line", "use gecko_bindings::structs::nsStyleTextReset;", "--raw-line", "unsafe impl Send for nsStyleTextReset {}", "--raw-line", "unsafe impl Sync for nsStyleTextReset {}", "--raw-line", "use gecko_bindings::structs::nsStyleUIReset;", "--raw-line", "unsafe impl Send for nsStyleUIReset {}", "--raw-line", "unsafe impl Sync for nsStyleUIReset {}", "--raw-line", "use gecko_bindings::structs::nsStyleUnion;", "--raw-line", "unsafe impl Send for nsStyleUnion {}", "--raw-line", "unsafe impl Sync for nsStyleUnion {}", "--raw-line", "use gecko_bindings::structs::nsStyleUnit;", "--raw-line", "unsafe impl Send for nsStyleUnit {}", "--raw-line", "unsafe impl Sync for nsStyleUnit {}", "--raw-line", "use gecko_bindings::structs::nsStyleUserInterface;", "--raw-line", "unsafe impl Send for nsStyleUserInterface {}", "--raw-line", "unsafe impl Sync for nsStyleUserInterface {}", "--raw-line", "use gecko_bindings::structs::nsStyleVariables;", "--raw-line", "unsafe impl Send for nsStyleVariables {}", "--raw-line", "unsafe impl Sync for nsStyleVariables {}", "--raw-line", "use gecko_bindings::structs::nsStyleVisibility;", "--raw-line", "unsafe impl Send for nsStyleVisibility {}", "--raw-line", "unsafe impl Sync for nsStyleVisibility {}", "--raw-line", "use gecko_bindings::structs::nsStyleXUL;", "--raw-line", "unsafe impl Send for nsStyleXUL {}", "--raw-line", "unsafe impl Sync for nsStyleXUL {}", "--raw-line", "use gecko_bindings::structs::nsTimingFunction;", "--raw-line", "use gecko_bindings::structs::nscolor;", "--raw-line", "use gecko_bindings::structs::nscoord;", "--raw-line", "use gecko_bindings::structs::nsresult;", "--raw-line", "use gecko_bindings::structs::Loader;", "--raw-line", "use gecko_bindings::structs::LoaderReusableStyleSheets;", "--raw-line", "use gecko_bindings::structs::SheetLoadData;", "--raw-line", "use gecko_bindings::structs::ServoStyleSheet;", "--raw-line", "use gecko_bindings::structs::ServoComputedData;", "--raw-line", "use gecko_bindings::structs::ServoStyleContext;", "--raw-line", "use gecko_bindings::structs::ServoStyleContextStrong;", "--raw-line", "use gecko_bindings::structs::EffectCompositor_CascadeLevel;", "--raw-line", "use gecko_bindings::structs::UpdateAnimationsTasks;", "--raw-line", "use gecko_bindings::structs::ParsingMode;", "--raw-line", "use gecko_bindings::structs::InheritTarget;", "--raw-line", "use gecko_bindings::structs::URLMatchingFunction;", "--raw-line", "use gecko_bindings::structs::StyleAnimation;", "--raw-line", "use gecko_bindings::structs::StyleRuleInclusion;", "--raw-line", "use gecko_bindings::structs::nsStyleTransformMatrix::MatrixTransformOperator;", "--raw-line", "unsafe impl Send for nsStyleTransformMatrix::MatrixTransformOperator {}", "--raw-line", "unsafe impl Sync for nsStyleTransformMatrix::MatrixTransformOperator {}", "--raw-line", "use gecko_bindings::structs::RawGeckoGfxMatrix4x4;", "--raw-line", "use gecko_bindings::structs::FontFamilyName;", "--raw-line", "use gecko_bindings::structs::mozilla::SharedFontList;", "--raw-line", "pub type nsTArrayBorrowed_uintptr_t<\'a> = &\'a mut ::gecko_bindings::structs::nsTArray<usize>;", "--raw-line", "pub type RawServoStyleSetOwned = ::gecko_bindings::sugar::ownership::Owned<RawServoStyleSet>;", "--raw-line", "pub type RawServoStyleSetOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<RawServoStyleSet>;", "--raw-line", "pub type RawServoStyleSetBorrowed<\'a> = &\'a RawServoStyleSet;", "--raw-line", "pub type RawServoStyleSetBorrowedOrNull<\'a> = Option<&\'a RawServoStyleSet>;", "--raw-line", "pub type RawServoStyleSetBorrowedMut<\'a> = &\'a mut RawServoStyleSet;", "--raw-line", "pub type RawServoStyleSetBorrowedMutOrNull<\'a> = Option<&\'a mut RawServoStyleSet>;", "--raw-line", "enum RawServoStyleSetVoid { }", "--raw-line", "pub struct RawServoStyleSet(RawServoStyleSetVoid);", "--raw-line", "pub type RawServoAuthorStylesOwned = ::gecko_bindings::sugar::ownership::Owned<RawServoAuthorStyles>;", "--raw-line", "pub type RawServoAuthorStylesOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<RawServoAuthorStyles>;", "--raw-line", "pub type RawServoAuthorStylesBorrowed<\'a> = &\'a RawServoAuthorStyles;", "--raw-line", "pub type RawServoAuthorStylesBorrowedOrNull<\'a> = Option<&\'a RawServoAuthorStyles>;", "--raw-line", "pub type RawServoAuthorStylesBorrowedMut<\'a> = &\'a mut RawServoAuthorStyles;", "--raw-line", "pub type RawServoAuthorStylesBorrowedMutOrNull<\'a> = Option<&\'a mut RawServoAuthorStyles>;", "--raw-line", "enum RawServoAuthorStylesVoid { }", "--raw-line", "pub struct RawServoAuthorStyles(RawServoAuthorStylesVoid);", "--raw-line", "pub type RawServoSelectorListOwned = ::gecko_bindings::sugar::ownership::Owned<RawServoSelectorList>;", "--raw-line", "pub type RawServoSelectorListOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<RawServoSelectorList>;", "--raw-line", "pub type RawServoSelectorListBorrowed<\'a> = &\'a RawServoSelectorList;", "--raw-line", "pub type RawServoSelectorListBorrowedOrNull<\'a> = Option<&\'a RawServoSelectorList>;", "--raw-line", "pub type RawServoSelectorListBorrowedMut<\'a> = &\'a mut RawServoSelectorList;", "--raw-line", "pub type RawServoSelectorListBorrowedMutOrNull<\'a> = Option<&\'a mut RawServoSelectorList>;", "--raw-line", "pub type RawServoSourceSizeListOwned = ::gecko_bindings::sugar::ownership::Owned<RawServoSourceSizeList>;", "--raw-line", "pub type RawServoSourceSizeListOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<RawServoSourceSizeList>;", "--raw-line", "pub type RawServoSourceSizeListBorrowed<\'a> = &\'a RawServoSourceSizeList;", "--raw-line", "pub type RawServoSourceSizeListBorrowedOrNull<\'a> = Option<&\'a RawServoSourceSizeList>;", "--raw-line", "pub type RawServoSourceSizeListBorrowedMut<\'a> = &\'a mut RawServoSourceSizeList;", "--raw-line", "pub type RawServoSourceSizeListBorrowedMutOrNull<\'a> = Option<&\'a mut RawServoSourceSizeList>;", "--raw-line", "pub type ServoElementSnapshotOwned = ::gecko_bindings::sugar::ownership::Owned<ServoElementSnapshot>;", "--raw-line", "pub type ServoElementSnapshotOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<ServoElementSnapshot>;", "--raw-line", "pub type ServoElementSnapshotBorrowed<\'a> = &\'a ServoElementSnapshot;", "--raw-line", "pub type ServoElementSnapshotBorrowedOrNull<\'a> = Option<&\'a ServoElementSnapshot>;", "--raw-line", "pub type ServoElementSnapshotBorrowedMut<\'a> = &\'a mut ServoElementSnapshot;", "--raw-line", "pub type ServoElementSnapshotBorrowedMutOrNull<\'a> = Option<&\'a mut ServoElementSnapshot>;", "--raw-line", "pub type RawServoAnimationValueMapOwned = ::gecko_bindings::sugar::ownership::Owned<RawServoAnimationValueMap>;", "--raw-line", "pub type RawServoAnimationValueMapOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<RawServoAnimationValueMap>;", "--raw-line", "pub type RawServoAnimationValueMapBorrowed<\'a> = &\'a RawServoAnimationValueMap;", "--raw-line", "pub type RawServoAnimationValueMapBorrowedOrNull<\'a> = Option<&\'a RawServoAnimationValueMap>;", "--raw-line", "pub type RawServoAnimationValueMapBorrowedMut<\'a> = &\'a mut RawServoAnimationValueMap;", "--raw-line", "pub type RawServoAnimationValueMapBorrowedMutOrNull<\'a> = Option<&\'a mut RawServoAnimationValueMap>;", "--raw-line", "enum RawServoAnimationValueMapVoid { }", "--raw-line", "pub struct RawServoAnimationValueMap(RawServoAnimationValueMapVoid);", "--raw-line", "pub type RawGeckoNodeBorrowed<\'a> = &\'a RawGeckoNode;", "--raw-line", "pub type RawGeckoNodeBorrowedOrNull<\'a> = Option<&\'a RawGeckoNode>;", "--raw-line", "pub type RawGeckoElementBorrowed<\'a> = &\'a RawGeckoElement;", "--raw-line", "pub type RawGeckoElementBorrowedOrNull<\'a> = Option<&\'a RawGeckoElement>;", "--raw-line", "pub type RawGeckoDocumentBorrowed<\'a> = &\'a RawGeckoDocument;", "--raw-line", "pub type RawGeckoDocumentBorrowedOrNull<\'a> = Option<&\'a RawGeckoDocument>;", "--raw-line", "pub type RawServoDeclarationBlockStrongBorrowed<\'a> = &\'a RawServoDeclarationBlockStrong;", "--raw-line", "pub type RawServoDeclarationBlockStrongBorrowedOrNull<\'a> = Option<&\'a RawServoDeclarationBlockStrong>;", "--raw-line", "pub type RawGeckoPresContextBorrowed<\'a> = &\'a RawGeckoPresContext;", "--raw-line", "pub type RawGeckoPresContextBorrowedOrNull<\'a> = Option<&\'a RawGeckoPresContext>;", "--raw-line", "pub type RawGeckoXBLBindingBorrowed<\'a> = &\'a RawGeckoXBLBinding;", "--raw-line", "pub type RawGeckoXBLBindingBorrowedOrNull<\'a> = Option<&\'a RawGeckoXBLBinding>;", "--raw-line", "pub type nsCSSPropertyIDSetBorrowed<\'a> = &\'a nsCSSPropertyIDSet;", "--raw-line", "pub type nsCSSPropertyIDSetBorrowedOrNull<\'a> = Option<&\'a nsCSSPropertyIDSet>;", "--raw-line", "pub type nsCSSPropertyIDSetBorrowedMut<\'a> = &\'a mut nsCSSPropertyIDSet;", "--raw-line", "pub type nsCSSPropertyIDSetBorrowedMutOrNull<\'a> = Option<&\'a mut nsCSSPropertyIDSet>;", "--raw-line", "pub type nsCSSValueBorrowed<\'a> = &\'a nsCSSValue;", "--raw-line", "pub type nsCSSValueBorrowedOrNull<\'a> = Option<&\'a nsCSSValue>;", "--raw-line", "pub type nsCSSValueBorrowedMut<\'a> = &\'a mut nsCSSValue;", "--raw-line", "pub type nsCSSValueBorrowedMutOrNull<\'a> = Option<&\'a mut nsCSSValue>;", "--raw-line", "pub type nsTimingFunctionBorrowed<\'a> = &\'a nsTimingFunction;", "--raw-line", "pub type nsTimingFunctionBorrowedOrNull<\'a> = Option<&\'a nsTimingFunction>;", "--raw-line", "pub type nsTimingFunctionBorrowedMut<\'a> = &\'a mut nsTimingFunction;", "--raw-line", "pub type nsTimingFunctionBorrowedMutOrNull<\'a> = Option<&\'a mut nsTimingFunction>;", "--raw-line", "pub type RawGeckoAnimationPropertySegmentBorrowed<\'a> = &\'a RawGeckoAnimationPropertySegment;", "--raw-line", "pub type RawGeckoAnimationPropertySegmentBorrowedOrNull<\'a> = Option<&\'a RawGeckoAnimationPropertySegment>;", "--raw-line", "pub type RawGeckoAnimationPropertySegmentBorrowedMut<\'a> = &\'a mut RawGeckoAnimationPropertySegment;", "--raw-line", "pub type RawGeckoAnimationPropertySegmentBorrowedMutOrNull<\'a> = Option<&\'a mut RawGeckoAnimationPropertySegment>;", "--raw-line", "pub type RawGeckoComputedTimingBorrowed<\'a> = &\'a RawGeckoComputedTiming;", "--raw-line", "pub type RawGeckoComputedTimingBorrowedOrNull<\'a> = Option<&\'a RawGeckoComputedTiming>;", "--raw-line", "pub type RawGeckoComputedTimingBorrowedMut<\'a> = &\'a mut RawGeckoComputedTiming;", "--raw-line", "pub type RawGeckoComputedTimingBorrowedMutOrNull<\'a> = Option<&\'a mut RawGeckoComputedTiming>;", "--raw-line", "pub type RawGeckoCSSPropertyIDListBorrowed<\'a> = &\'a RawGeckoCSSPropertyIDList;", "--raw-line", "pub type RawGeckoCSSPropertyIDListBorrowedOrNull<\'a> = Option<&\'a RawGeckoCSSPropertyIDList>;", "--raw-line", "pub type RawGeckoCSSPropertyIDListBorrowedMut<\'a> = &\'a mut RawGeckoCSSPropertyIDList;", "--raw-line", "pub type RawGeckoCSSPropertyIDListBorrowedMutOrNull<\'a> = Option<&\'a mut RawGeckoCSSPropertyIDList>;", "--raw-line", "pub type RawGeckoKeyframeListBorrowed<\'a> = &\'a RawGeckoKeyframeList;", "--raw-line", "pub type RawGeckoKeyframeListBorrowedOrNull<\'a> = Option<&\'a RawGeckoKeyframeList>;", "--raw-line", "pub type RawGeckoKeyframeListBorrowedMut<\'a> = &\'a mut RawGeckoKeyframeList;", "--raw-line", "pub type RawGeckoKeyframeListBorrowedMutOrNull<\'a> = Option<&\'a mut RawGeckoKeyframeList>;", "--raw-line", "pub type RawGeckoPropertyValuePairListBorrowed<\'a> = &\'a RawGeckoPropertyValuePairList;", "--raw-line", "pub type RawGeckoPropertyValuePairListBorrowedOrNull<\'a> = Option<&\'a RawGeckoPropertyValuePairList>;", "--raw-line", "pub type RawGeckoPropertyValuePairListBorrowedMut<\'a> = &\'a mut RawGeckoPropertyValuePairList;", "--raw-line", "pub type RawGeckoPropertyValuePairListBorrowedMutOrNull<\'a> = Option<&\'a mut RawGeckoPropertyValuePairList>;", "--raw-line", "pub type RawGeckoComputedKeyframeValuesListBorrowed<\'a> = &\'a RawGeckoComputedKeyframeValuesList;", "--raw-line", "pub type RawGeckoComputedKeyframeValuesListBorrowedOrNull<\'a> = Option<&\'a RawGeckoComputedKeyframeValuesList>;", "--raw-line", "pub type RawGeckoComputedKeyframeValuesListBorrowedMut<\'a> = &\'a mut RawGeckoComputedKeyframeValuesList;", "--raw-line", "pub type RawGeckoComputedKeyframeValuesListBorrowedMutOrNull<\'a> = Option<&\'a mut RawGeckoComputedKeyframeValuesList>;", "--raw-line", "pub type RawGeckoFontFaceRuleListBorrowed<\'a> = &\'a RawGeckoFontFaceRuleList;", "--raw-line", "pub type RawGeckoFontFaceRuleListBorrowedOrNull<\'a> = Option<&\'a RawGeckoFontFaceRuleList>;", "--raw-line", "pub type RawGeckoFontFaceRuleListBorrowedMut<\'a> = &\'a mut RawGeckoFontFaceRuleList;", "--raw-line", "pub type RawGeckoFontFaceRuleListBorrowedMutOrNull<\'a> = Option<&\'a mut RawGeckoFontFaceRuleList>;", "--raw-line", "pub type RawGeckoServoStyleRuleListBorrowed<\'a> = &\'a RawGeckoServoStyleRuleList;", "--raw-line", "pub type RawGeckoServoStyleRuleListBorrowedOrNull<\'a> = Option<&\'a RawGeckoServoStyleRuleList>;", "--raw-line", "pub type RawGeckoServoStyleRuleListBorrowedMut<\'a> = &\'a mut RawGeckoServoStyleRuleList;", "--raw-line", "pub type RawGeckoServoStyleRuleListBorrowedMutOrNull<\'a> = Option<&\'a mut RawGeckoServoStyleRuleList>;", "--raw-line", "pub type RawGeckoServoAnimationValueListBorrowed<\'a> = &\'a RawGeckoServoAnimationValueList;", "--raw-line", "pub type RawGeckoServoAnimationValueListBorrowedOrNull<\'a> = Option<&\'a RawGeckoServoAnimationValueList>;", "--raw-line", "pub type RawGeckoServoAnimationValueListBorrowedMut<\'a> = &\'a mut RawGeckoServoAnimationValueList;", "--raw-line", "pub type RawGeckoServoAnimationValueListBorrowedMutOrNull<\'a> = Option<&\'a mut RawGeckoServoAnimationValueList>;", "--raw-line", "pub type RawGeckoStyleAnimationListBorrowed<\'a> = &\'a RawGeckoStyleAnimationList;", "--raw-line", "pub type RawGeckoStyleAnimationListBorrowedOrNull<\'a> = Option<&\'a RawGeckoStyleAnimationList>;", "--raw-line", "pub type RawGeckoStyleAnimationListBorrowedMut<\'a> = &\'a mut RawGeckoStyleAnimationList;", "--raw-line", "pub type RawGeckoStyleAnimationListBorrowedMutOrNull<\'a> = Option<&\'a mut RawGeckoStyleAnimationList>;", "--raw-line", "pub type RawGeckoStyleChildrenIteratorBorrowed<\'a> = &\'a RawGeckoStyleChildrenIterator;", "--raw-line", "pub type RawGeckoStyleChildrenIteratorBorrowedOrNull<\'a> = Option<&\'a RawGeckoStyleChildrenIterator>;", "--raw-line", "pub type RawGeckoStyleChildrenIteratorBorrowedMut<\'a> = &\'a mut RawGeckoStyleChildrenIterator;", "--raw-line", "pub type RawGeckoStyleChildrenIteratorBorrowedMutOrNull<\'a> = Option<&\'a mut RawGeckoStyleChildrenIterator>;", "--raw-line", "pub type ServoCssRulesStrong = ::gecko_bindings::sugar::ownership::Strong<ServoCssRules>;", "--raw-line", "pub type ServoCssRulesBorrowed<\'a> = &\'a ServoCssRules;", "--raw-line", "pub type ServoCssRulesBorrowedOrNull<\'a> = Option<&\'a ServoCssRules>;", "--raw-line", "enum ServoCssRulesVoid { }", "--raw-line", "pub struct ServoCssRules(ServoCssRulesVoid);", "--raw-line", "pub type RawServoStyleSheetContentsStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoStyleSheetContents>;", "--raw-line", "pub type RawServoStyleSheetContentsBorrowed<\'a> = &\'a RawServoStyleSheetContents;", "--raw-line", "pub type RawServoStyleSheetContentsBorrowedOrNull<\'a> = Option<&\'a RawServoStyleSheetContents>;", "--raw-line", "pub type RawServoDeclarationBlockStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoDeclarationBlock>;", "--raw-line", "pub type RawServoDeclarationBlockBorrowed<\'a> = &\'a RawServoDeclarationBlock;", "--raw-line", "pub type RawServoDeclarationBlockBorrowedOrNull<\'a> = Option<&\'a RawServoDeclarationBlock>;", "--raw-line", "pub type RawServoStyleRuleStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoStyleRule>;", "--raw-line", "pub type RawServoStyleRuleBorrowed<\'a> = &\'a RawServoStyleRule;", "--raw-line", "pub type RawServoStyleRuleBorrowedOrNull<\'a> = Option<&\'a RawServoStyleRule>;", "--raw-line", "pub type RawServoImportRuleStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoImportRule>;", "--raw-line", "pub type RawServoImportRuleBorrowed<\'a> = &\'a RawServoImportRule;", "--raw-line", "pub type RawServoImportRuleBorrowedOrNull<\'a> = Option<&\'a RawServoImportRule>;", "--raw-line", "enum RawServoImportRuleVoid { }", "--raw-line", "pub struct RawServoImportRule(RawServoImportRuleVoid);", "--raw-line", "pub type RawServoAnimationValueStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoAnimationValue>;", "--raw-line", "pub type RawServoAnimationValueBorrowed<\'a> = &\'a RawServoAnimationValue;", "--raw-line", "pub type RawServoAnimationValueBorrowedOrNull<\'a> = Option<&\'a RawServoAnimationValue>;", "--raw-line", "pub type RawServoKeyframeStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoKeyframe>;", "--raw-line", "pub type RawServoKeyframeBorrowed<\'a> = &\'a RawServoKeyframe;", "--raw-line", "pub type RawServoKeyframeBorrowedOrNull<\'a> = Option<&\'a RawServoKeyframe>;", "--raw-line", "enum RawServoKeyframeVoid { }", "--raw-line", "pub struct RawServoKeyframe(RawServoKeyframeVoid);", "--raw-line", "pub type RawServoKeyframesRuleStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoKeyframesRule>;", "--raw-line", "pub type RawServoKeyframesRuleBorrowed<\'a> = &\'a RawServoKeyframesRule;", "--raw-line", "pub type RawServoKeyframesRuleBorrowedOrNull<\'a> = Option<&\'a RawServoKeyframesRule>;", "--raw-line", "enum RawServoKeyframesRuleVoid { }", "--raw-line", "pub struct RawServoKeyframesRule(RawServoKeyframesRuleVoid);", "--raw-line", "pub type RawServoMediaListStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoMediaList>;", "--raw-line", "pub type RawServoMediaListBorrowed<\'a> = &\'a RawServoMediaList;", "--raw-line", "pub type RawServoMediaListBorrowedOrNull<\'a> = Option<&\'a RawServoMediaList>;", "--raw-line", "pub type RawServoMediaRuleStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoMediaRule>;", "--raw-line", "pub type RawServoMediaRuleBorrowed<\'a> = &\'a RawServoMediaRule;", "--raw-line", "pub type RawServoMediaRuleBorrowedOrNull<\'a> = Option<&\'a RawServoMediaRule>;", "--raw-line", "enum RawServoMediaRuleVoid { }", "--raw-line", "pub struct RawServoMediaRule(RawServoMediaRuleVoid);", "--raw-line", "pub type RawServoNamespaceRuleStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoNamespaceRule>;", "--raw-line", "pub type RawServoNamespaceRuleBorrowed<\'a> = &\'a RawServoNamespaceRule;", "--raw-line", "pub type RawServoNamespaceRuleBorrowedOrNull<\'a> = Option<&\'a RawServoNamespaceRule>;", "--raw-line", "enum RawServoNamespaceRuleVoid { }", "--raw-line", "pub struct RawServoNamespaceRule(RawServoNamespaceRuleVoid);", "--raw-line", "pub type RawServoPageRuleStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoPageRule>;", "--raw-line", "pub type RawServoPageRuleBorrowed<\'a> = &\'a RawServoPageRule;", "--raw-line", "pub type RawServoPageRuleBorrowedOrNull<\'a> = Option<&\'a RawServoPageRule>;", "--raw-line", "enum RawServoPageRuleVoid { }", "--raw-line", "pub struct RawServoPageRule(RawServoPageRuleVoid);", "--raw-line", "pub type RawServoSupportsRuleStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoSupportsRule>;", "--raw-line", "pub type RawServoSupportsRuleBorrowed<\'a> = &\'a RawServoSupportsRule;", "--raw-line", "pub type RawServoSupportsRuleBorrowedOrNull<\'a> = Option<&\'a RawServoSupportsRule>;", "--raw-line", "enum RawServoSupportsRuleVoid { }", "--raw-line", "pub struct RawServoSupportsRule(RawServoSupportsRuleVoid);", "--raw-line", "pub type RawServoDocumentRuleStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoDocumentRule>;", "--raw-line", "pub type RawServoDocumentRuleBorrowed<\'a> = &\'a RawServoDocumentRule;", "--raw-line", "pub type RawServoDocumentRuleBorrowedOrNull<\'a> = Option<&\'a RawServoDocumentRule>;", "--raw-line", "enum RawServoDocumentRuleVoid { }", "--raw-line", "pub struct RawServoDocumentRule(RawServoDocumentRuleVoid);", "--raw-line", "pub type RawServoFontFeatureValuesRuleStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoFontFeatureValuesRule>;", "--raw-line", "pub type RawServoFontFeatureValuesRuleBorrowed<\'a> = &\'a RawServoFontFeatureValuesRule;", "--raw-line", "pub type RawServoFontFeatureValuesRuleBorrowedOrNull<\'a> = Option<&\'a RawServoFontFeatureValuesRule>;", "--raw-line", "enum RawServoFontFeatureValuesRuleVoid { }", "--raw-line", "pub struct RawServoFontFeatureValuesRule(RawServoFontFeatureValuesRuleVoid);", "--raw-line", "pub type RawServoRuleNodeStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoRuleNode>;", "--raw-line", "pub type RawServoRuleNodeBorrowed<\'a> = &\'a RawServoRuleNode;", "--raw-line", "pub type RawServoRuleNodeBorrowedOrNull<\'a> = Option<&\'a RawServoRuleNode>;", "--raw-line", "enum RawServoRuleNodeVoid { }", "--raw-line", "pub struct RawServoRuleNode(RawServoRuleNodeVoid);", "--whitelist-function", "Servo_.*", "--whitelist-function", "Gecko_.*", "--", "-I", "/var/tmp/build/firefox-4d0f9fa5fdd5/obj-i686-linux-gnu/dist/include", "-I", "/var/tmp/build/firefox-4d0f9fa5fdd5/obj-i686-linux-gnu/dist/include/nspr", "-include", "/var/tmp/build/firefox-4d0f9fa5fdd5/obj-i686-linux-gnu/dist/include/mozilla-config.h", "-x", "c++", "-std=c++14", "-fno-sized-deallocation", "-DTRACING=1", "-DIMPL_LIBXUL", "-DMOZ_STYLO_BINDINGS=1", "-DMOZILLA_INTERNAL_API", "-DRUST_BINDGEN", "-DMOZ_STYLO", "-DOS_POSIX=1", "-m32", "-DOS_LINUX=1", "-I/var/tmp/build/firefox-4d0f9fa5fdd5/obj-i686-linux-gnu/dist/include/nspr", "-I/var/tmp/build/firefox-4d0f9fa5fdd5/obj-i686-linux-gnu/dist/include/nss", "-I/var/tmp/build/firefox-4d0f9fa5fdd5/obj-i686-linux-gnu/dist/include/cairo", "--no-rustfmt-bindings"]', servo/components/style/build_gecko.rs:296:17
14:26.04 stack backtrace:

When running clang with -v I found that it is using some includes from /usr/lib/gcc when called with -m64, but not with -m32. Adding the argument --gcc-toolchain=/var/tmp/dist/gcc makes it use the includes from our build of gcc. So the the build issue can be solved by adding export BINDGEN_CFLAGS='--gcc-toolchain=/var/tmp/dist/gcc' to mozconfig-linux-i686. Maybe we want to add it to mozconfig-linux-x86_64 too, so that we use the includes from our build of gcc instead of the ones from /usr/lib/gcc.

I am not sure how it works for Mozilla, but it seems they copy the gcc includes directory to their clang directory:
https://dxr.mozilla.org/mozilla-esr60/source/build/build-clang/build-clang.py#114

comment:8 in reply to:  7 Changed 10 days ago by gk

Replying to boklm:

Maybe we want to add it to mozconfig-linux-x86_64 too, so that we use the includes from our build of gcc instead of the ones from /usr/lib/gcc.

That's a good idea. Let's do that while fixing this bug.

Note: See TracTickets for help on using tickets.