Build 32bit Linux bundles on 64bit systems
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.
- Show closed items
Activity
-
Newest first Oldest first
-
Show all activity Show comments only Show history only
- Author
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
toLDFLAGS
as glandium suggests in https://bugzilla.mozilla.org/show_bug.cgi?id=1401093.But probably sooner than later we have to bite that bullet.
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
- Author
Trac:
Priority: Medium to Very High
Parent: N/A to #26468 (moved)
Keywords: N/A deleted, TorBrowserTeam201901 added 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()':
- Author
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.
- Author
Moving tickets to February.
Trac:
Keywords: TorBrowserTeam201901 deleted, TorBrowserTeam201902 added 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 addingexport BINDGEN_CFLAGS='--gcc-toolchain=/var/tmp/dist/gcc'
tomozconfig-linux-i686
. Maybe we want to add it tomozconfig-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
- Author
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.
Trac:
Cc: N/A to dcfThe build of snowflake was failing with the error:
./rendezvous.go:77:43: undefined: webrtc.SessionDescription ./rendezvous.go:78:3: undefined: webrtc.SessionDescription ./rendezvous.go:119:16: undefined: webrtc.Configuration
This is fixed by adding an
export CGO_ENABLED=1
. It seems that cgo is enabled by default, except when cross-compiling, which is the case when we build for linux-i686 on linux-x86_64, so the build ofgo-webrtc
was missing the cgo parts.I am not sure if we should add this
export CGO_ENABLED=1
tovar/setup
inprojects/go/config
, so that it applies to all go projects, or add it only inprojects/go-webrtc/config
andprojects/snowflake/config
.Trac:
Cc: dcf to N/AReplying to boklm:
This is fixed by adding an
export CGO_ENABLED=1
. It seems that cgo is enabled by default, except when cross-compiling, which is the case when we build for linux-i686 on linux-x86_64, so the build ofgo-webrtc
was missing the cgo parts.I am not sure if we should add this
export CGO_ENABLED=1
tovar/setup
inprojects/go/config
, so that it applies to all go projects, or add it only inprojects/go-webrtc/config
andprojects/snowflake/config
.I think either way should work. It is probably sufficient to set
CGO_ENABLED=1
only in the projects that use Cgo, but I don't know any disadvantages to keeping to always set.Replying to dcf:
Replying to boklm:
This is fixed by adding an
export CGO_ENABLED=1
. It seems that cgo is enabled by default, except when cross-compiling, which is the case when we build for linux-i686 on linux-x86_64, so the build ofgo-webrtc
was missing the cgo parts.I am not sure if we should add this
export CGO_ENABLED=1
tovar/setup
inprojects/go/config
, so that it applies to all go projects, or add it only inprojects/go-webrtc/config
andprojects/snowflake/config
.I think either way should work. It is probably sufficient to set
CGO_ENABLED=1
only in the projects that use Cgo, but I don't know any disadvantages to keeping to always set.Thanks! If there is no known disadvantages to keeping it always set, then I think it's easier to just set it in one place.
There are two patches for review in branch
bug_26323_v7
: https://gitweb.torproject.org/user/boklm/tor-browser-build.git/commit/?h=bug_26323_v7&id=676f75ecb97484368b340ee5d355aa422c2b0a7cI think a possible improvement we can do after this, is to share the gcc and rust builds between linux32 and linux64.
Trac:
Status: new to needs_revision
Keywords: TorBrowserTeam201902 deleted, TorBrowserTeam201903R added- Author
Replying to boklm:
There are two patches for review in branch
bug_26323_v7
: https://gitweb.torproject.org/user/boklm/tor-browser-build.git/commit/?h=bug_26323_v7&id=676f75ecb97484368b340ee5d355aa422c2b0a7ctor
compilation for nightly builds breaks in this case withconfigure: error: TOR_RUST_TARGET must be specified when cross-compiling with Rust enabled.
I think a possible improvement we can do after this, is to share the gcc and rust builds between linux32 and linux64.
Hm, what is missing here? In particular, I wonder what the issue with GCC is as the build script at least should be the same (modulo the different hash in the bundle name that stems from somewhere else).
Trac:
Keywords: TorBrowserTeam201903R deleted, TorBrowserTeam201903 added - Author
Another thing I am wondering: I just merged the patches for #29194 (moved) and saw those for this bug contain some
apt-get install
incantations. Do they need adjustment (too) in light of the #29194 (moved) fixes? When are you going to build gmp, mpc, mpfr as Mozilla does?
Replying to gk:
Another thing I am wondering: I just merged the patches for #29194 (moved) and saw those for this bug contain some
apt-get install
incantations. Do they need adjustment (too) in light of the #29194 (moved) fixes?That's a good point, we should set
DEBIAN_FRONTEND=noninteractive
here too.Replying to gk:
Replying to boklm:
There are two patches for review in branch
bug_26323_v7
: https://gitweb.torproject.org/user/boklm/tor-browser-build.git/commit/?h=bug_26323_v7&id=676f75ecb97484368b340ee5d355aa422c2b0a7ctor
compilation for nightly builds breaks in this case with {{{ configure: error: TOR_RUST_TARGET must be specified when cross-compiling with Rust enabled. }}}Oh, I forgot to test the nightly target.
I think a possible improvement we can do after this, is to share the gcc and rust builds between linux32 and linux64.
Hm, what is missing here? In particular, I wonder what the issue with GCC is as the build script at least should be the same (modulo the different hash in the bundle name that stems from somewhere else).
Yes, GCC is built exactly in the same way in both cases, the only difference is the list of packages installed in the containers, and the
dpkg --add-architecture i386
we only run in the i686 case (which are causing the hash in the filename to differ).