Open Bug 1619147 Opened 6 years ago Updated 3 years ago

Cross-compile configure AttributeError: symbols_link_arg

Categories

(Firefox Build System :: General, defect, P3)

68 Branch
defect

Tracking

(Not tracked)

UNCONFIRMED

People

(Reporter: mdenber, Unassigned)

Details

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:73.0) Gecko/20100101 Firefox/73.0

Steps to reproduce:

Cross-compiling in x64 Ubuntu for a SPARC Solaris target:

build$ ../configure --target=sparcv9-sun-solaris

Actual results:

...
js/src> creating ./config.data
js/src> Creating config.status
Creating config.status
Reticulating splines...
0:03.40 File already read. Skipping: /home/michele/mozilla-central/gfx/angle/targets/angle_common/moz.build
Traceback (most recent call last):
File "../configure.py", line 170, in <module>
sys.exit(main(sys.argv))
File "../configure.py", line 51, in main
return config_status(config)
File "../configure.py", line 165, in config_status
return config_status(args=[], **normalize(sanitized_config))
File "/home/michele/mozilla-central/python/mozbuild/mozbuild/config_status.py", line 145, in config_status
the_backend.consume(definitions)
File "/home/michele/mozilla-central/python/mozbuild/mozbuild/backend/base.py", line 128, in consume
if (not self.consume_object(obj) and
File "/home/michele/mozilla-central/python/mozbuild/mozbuild/backend/recursivemake.py", line 646, in consume_object
self._process_shared_library(obj, backend_file)
File "/home/michele/mozilla-central/python/mozbuild/mozbuild/backend/recursivemake.py", line 1293, in _process_shared_library
if libdef.symbols_link_arg:
AttributeError: symbols_link_arg

Expected results:

Expected configure to complete without error. This may be operator error but I know of no other way to get help. Questions posed in the Google groups forum went unanswered and the Mozilla IRC channel seems to be gone.

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: Untriaged → General
Product: Firefox → Firefox Build System

Upon further review, it appears I may have hit Bug 1548563, https://bugzilla.mozilla.org/show_bug.cgi?id=1548563 which (I think) affects pre-69 releases. If this is true, I may be better off just trying to cross-compile 69.0a1 than patching the 68 I have. Confirmation would be appreciated. I don't want to discover that there's some reason this cross-compile (x64 Ubuntu -> Solaris SPARC) won't work in 69.

Hmm, while waiting to hear from anyone I decided to try building 69.0.3 but configure failed in the same spot with the same error. So I just went into python/mozbuild/mozbuild/backend/recursivemake.py and commented out line 693,

self._process_shared_library(obj, backend_file)

Then I got a clean configure. But then gmake failed like this:

...
cargo:rerun-if-changed=/home/michele/firefox-69.0.3/layout/style/ServoBindings.toml

--- stderr
/home/michele/firefox-69.0.3/build/dist/include/mozilla/Compiler.h:43:12: fatal error: 'cstddef' file not found
/home/michele/firefox-69.0.3/build/dist/include/mozilla/Compiler.h:43:12: fatal error: 'cstddef' file not found, err: true
thread 'main' panicked at 'Failed to generate bindings
...
stack backtrace:
0: 0x55981252bd33 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h072fa8efbc8d5cea
1: 0x55981254b20c - core::fmt::write::h8841fc1357c356e9
2: 0x55981252ba72 - std::io::Write::write_fmt::h31c4a2b49ecd1b20
3: 0x55981251d165 - std::panicking::default_hook::{{closure}}::hef2db186ebbbc64c
4: 0x55981251ce46 - std::panicking::default_hook::h9dca7f8bd402d45e
5: 0x55981251d7b2 - std::panicking::rust_panic_with_hook::h4feeeabe73093052
6: 0x55981251d39b - rust_begin_unwind
7: 0x55981251d30b - std::panicking::begin_panic_fmt::hf1e976a917925265
8: 0x5598123765f1 - build_script_build::build_gecko::bindings::generate_structs::h14b7fcf2ea59a041
9: 0x5598123781b1 - build_script_build::main::hbaef9be7761fa24a
10: 0x55981235eca3 - std::rt::lang_start::{{closure}}::hbbb680e685196bb2
11: 0x55981251d283 - std::panicking::try::do_call::h1047e5a2ca1ebb02
12: 0x5598125329d7 - __rust_maybe_catch_panic
13: 0x559812520337 - std::rt::lang_start_internal::h32699bba052bb90f
14: 0x559812378be2 - main
15: 0x7f44b1b541e3 - __libc_start_main
16: 0x55981235c1ee - _start
17: 0x0 - <unknown>

warning: build failed, waiting for other jobs to finish...
error: build failed
gmake[3]: *** [/home/michele/firefox-69.0.3/config/makefiles/rust.mk:241: force-cargo-library-build] Error 10

So at this point, I am officially stuck. I don't know if the make failure is due to the line I removed and I don't know what that was supposed to accomplish. I could really use some help here. If there's a better place to ask, I'd love to hear about that too. Anyone?

You probably need to figure out how to set symbols_link_arg hereish:

https://searchfox.org/mozilla-central/source/python/mozbuild/mozbuild/frontend/data.py#827-837

for sparc-solaris. I would have expected it to hit the GCC_USE_GNU_LD path, so if you're not hitting that, that's the part that should probably get fixed. What does $OBJDIR/config.status say with an unpatched tree after configure fails?

"for sparc-solaris. I would have expected it to hit the GCC_USE_GNU_LD path"
Sure looks that way. And that might be a problem:

michele@michele-VirtualBox:~/firefox-69.0.3/build$ echo $GCC_USE_GNU_LD

michele@michele-VirtualBox:~/firefox-69.0.3/build$ 

It's not set to anything. What should it be? "TRUE", or "1", or something else?
"What does $OBJDIR/config.status say "

This (sorry it's long - I tried to upload it as an attachment but it said it was unable to):

#!/home/michele/firefox-69.0.3/build/_virtualenvs/init/bin/python
# coding=utf-8
from __future__ import unicode_literals
from mozbuild.util import encode
encoding = 'utf-8'
topobjdir = encode('/home/michele/firefox-69.0.3/build', encoding)
mozconfig = encode(None, encoding)
topsrcdir = encode('/home/michele/firefox-69.0.3', encoding)
non_global_defines = encode([
    'NECKO_COOKIES',
    'CPP_THROW_NEW',
    'HAVE_GETPAGESIZE',
    'HAVE_STATVFS64',
    'HAVE_STATVFS',
    'HAVE_STATFS64',
    'HAVE_STATFS',
    'HAVE_SYS_STATVFS_H',
    'HAVE_SYS_STATFS_H',
    'HAVE_SYS_VFS_H',
    'HAVE_SYS_MOUNT_H',
], encoding)
substs = encode({
    'A11Y_LOG': '',
    'ACCEPTED_MAR_CHANNEL_IDS': 'firefox-mozilla-release',
    'ACCESSIBILITY': '1',
    'ANDROID_CPU_ARCH': '',
    'ANDROID_PACKAGE_NAME': 'org.mozilla.firefox',
    'ANDROID_PLATFORM': '',
    'ANDROID_SOURCE': '',
    'AR': '/usr/bin/ar',
    'AR_FLAGS': [
        'crs',
        '$@',
    ],
    'AS': '/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc -std=gnu99',
    'ASFLAGS': [
        '-fPIC',
        '-Wa,--noexecstack',
        '-include',
        '/home/michele/firefox-69.0.3/build/mozilla-config.h',
        '-DMOZILLA_CLIENT',
    ],
    'ASOUTOPTION': '-o ',
    'AS_DASH_C_FLAG': '-c',
    'AUTOCONF': '/usr/bin/autoconf2.13',
    'AWK': '/usr/bin/mawk',
    'BINDGEN_SYSTEM_FLAGS': '-x c++ -fno-sized-deallocation -DTRACING=1 -DIMPL_LIBXUL -DMOZILLA_INTERNAL_API -DRUST_BINDGEN -DOS_POSIX=1 -DOS_SOLARIS=1 --target=sparcv9-solaris2 -I/home/michele/firefox-69.0.3/build/dist/include/nspr  -I/home/michele/firefox-69.0.3/build/dist/include/nss  -I/home/michele/firefox-69.0.3/build/dist/include/cairo',
    'BINDGEN_SYSTEM_TOML_FLAGS': '\'-x\', \'c++\', \'-fno-sized-deallocation\', \'-DTRACING=1\', \'-DIMPL_LIBXUL\', \'-DMOZILLA_INTERNAL_API\', \'-DRUST_BINDGEN\', \'-DOS_POSIX=1\', \'-DOS_SOLARIS=1\', \'--target=sparcv9-solaris2\', \'-I/home/michele/firefox-69.0.3/build/dist/include/nspr\', \'-I/home/michele/firefox-69.0.3/build/dist/include/nss\', \'-I/home/michele/firefox-69.0.3/build/dist/include/cairo\'',
    'BIN_SUFFIX': '',
    'BUILD_BACKENDS': [
        'RecursiveMake',
        'FasterMake',
    ],
    'BUILD_CTYPES': '1',
    'CAIRO_FT_CFLAGS': [
        '-I/usr/include/freetype2',
        '-I/usr/include/libpng14',
        '-I/usr/include/freetype2',
        '-I/usr/include/libpng14',
    ],
    'CARGO': b'/home/michele/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo',
    'CBINDGEN': '/usr/bin/cbindgen',
    'CC': '/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc -std=gnu99',
    'CC_BASE_FLAGS': [
        '-std=gnu99',
    ],
    'CC_TYPE': 'gcc',
    'CC_VERSION': '7.3.0',
    'CLANG_CL': '',
    'CLANG_CXX': '',
    'CLANG_LDFLAGS': [
    ],
    'CLANG_PLUGIN_FLAGS': [
    ],
    'COLOR_CFLAGS': '-fdiagnostics-color',
    'COMPILE_ENVIRONMENT': '1',
    'CPP': [
        '/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc',
        '-E',
        '-std=gnu99',
    ],
    'CPU_ARCH': 'sparc64',
    'CROSS_COMPILE': '1',
    'CXX': '/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-g++',
    'CXXCPP': [
        '/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-g++',
        '-E',
    ],
    'CXX_BASE_FLAGS': [
    ],
    'DEBUG_JS_MODULES': '',
    'DIRECTFB_SURFACE_FEATURE': '',
    'DIST': '/home/michele/firefox-69.0.3/build/dist',
    'DLL_PREFIX': 'lib',
    'DLL_SUFFIX': '.so',
    'DMG_TOOL': '',
    'DSO_CFLAGS': [
    ],
    'DSO_LDOPTS': '-shared',
    'DSO_PIC_CFLAGS': [
        '-fPIC',
    ],
    'EARLY_BETA_OR_EARLIER': '',
    'ENABLE_CLANG_PLUGIN': '',
    'ENABLE_GECKODRIVER': '1',
    'ENABLE_INTL_API': '1',
    'ENABLE_MARIONETTE': '1',
    'ENABLE_MOZSEARCH_PLUGIN': '',
    'ENABLE_REMOTE_AGENT': '1',
    'ENABLE_STRIP': '',
    'ENABLE_TESTS': '1',
    'EXPAND_LIBS_LIST_STYLE': 'linkerscript',
    'FC_FONT_FEATURE': '#define CAIRO_HAS_FC_FONT 1',
    'FFVPX_ASFLAGS': [
    ],
    'FILTER': '',
    'FT2_LIBS': [
        '-lfreetype',
        '-lfontconfig',
        '-lfreetype',
    ],
    'FT_FONT_FEATURE': '#define CAIRO_HAS_FT_FONT 1',
    'GLIB_CFLAGS': [
        '-I/usr/include/glib-2.0',
        '-I/usr/lib/glib-2.0/include',
        '-I/usr/include/pcre',
    ],
    'GLIB_GMODULE_LIBS': [
    ],
    'GLIB_LIBS': [
        '-lgobject-2.0',
        '-lglib-2.0',
    ],
    'GMAKE': '/usr/bin/gmake',
    'GN': ':',
    'GNU_AS': '1',
    'GNU_CC': '1',
    'GNU_CXX': '1',
    'GRE_MILESTONE': b'69.0.3',
    'HAVE_64BIT_BUILD': '1',
    'HAVE_ALTIVEC': '',
    'HAVE_CLOCK_MONOTONIC': '1',
    'HAVE_DTRACE': '',
    'HAVE_INTTYPES_H': '1',
    'HAVE_LIBFUZZER_FLAG_FUZZER_NO_LINK': '',
    'HAVE_TOOLCHAIN_SUPPORT_MSSE4_1': '',
    'HAVE_TOOLCHAIN_SUPPORT_MSSSE3': '',
    'HAVE_X86_AVX2': '',
    'HOST_BIN_SUFFIX': '',
    'HOST_CC': '/usr/bin/gcc -std=gnu99',
    'HOST_CC_BASE_FLAGS': [
        '-std=gnu99',
    ],
    'HOST_CC_TYPE': 'gcc',
    'HOST_CC_VERSION': '9.2.1',
    'HOST_CFLAGS': [
        '-DXP_UNIX',
    ],
    'HOST_CMFLAGS': '-x objective-c -fobjc-exceptions',
    'HOST_CMMFLAGS': '-x objective-c++ -fobjc-exceptions',
    'HOST_CPPFLAGS': [
    ],
    'HOST_CPU_ARCH': 'x86_64',
    'HOST_CXX': '/usr/bin/g++',
    'HOST_CXXFLAGS': [
    ],
    'HOST_CXX_BASE_FLAGS': [
    ],
    'HOST_DLL_PREFIX': 'lib',
    'HOST_DLL_SUFFIX': '.so',
    'HOST_LDFLAGS': '',
    'HOST_MAJOR_VERSION': '',
    'HOST_OPTIMIZE_FLAGS': [
        '-O3',
    ],
    'HOST_OS_ARCH': 'Linux',
    'ICU_DATA_FILE': 'icudt64l.dat',
    'IMPLIB': '',
    'IMPORT_LIB_SUFFIX': '',
    'INCREMENTAL_LINKER': '',
    'INSTALL_NAME_TOOL': ':',
    'IPDL_ROOT': '/home/michele/firefox-69.0.3/build/ipc/ipdl',
    'JS_BINARY': '',
    'JS_CODEGEN_NONE': '1',
    'JS_DISABLE_SHELL': '1',
    'JS_WITHOUT_NSPR': '',
    'L10NBASEDIR': '/home/michele/.mozbuild/l10n-central',
    'LD_PRINT_ICF_SECTIONS': '',
    'LIBFUZZER_FLAGS': [
        '-fsanitize-coverage=trace-pc-guard,trace-cmp',
    ],
    'LIBJPEG_TURBO_ASFLAGS': [
    ],
    'LIB_PREFIX': 'lib',
    'LIB_SUFFIX': 'a',
    'LIPO': ':',
    'LLVM_CXXFLAGS': [
    ],
    'LLVM_LDFLAGS': [
    ],
    'LLVM_OBJDUMP': b'/usr/lib/llvm-9/bin/llvm-objdump',
    'LLVM_PROFDATA': ':',
    'LLVM_SYMBOLIZER': '',
    'MAKENSISU_FLAGS': '-nocd',
    'MAR_CHANNEL_ID': 'firefox-mozilla-release',
    'MKCSHLIB': [
        '$(CC)',
        '$(COMPUTED_C_LDFLAGS)',
        '$(PGO_CFLAGS)',
        '$(DSO_PIC_CFLAGS)',
        '$(DSO_LDOPTS)',
        '-Wl,-h,$(DSO_SONAME)',
        '-o',
        '$@',
    ],
    'MKSHLIB': [
        '$(CXX)',
        '$(COMPUTED_CXX_LDFLAGS)',
        '$(PGO_CFLAGS)',
        '$(DSO_PIC_CFLAGS)',
        '$(DSO_LDOPTS)',
        '-Wl,-h,$(DSO_SONAME)',
        '-o',
        '$@',
    ],
    'MMX_FLAGS': [
        '-mmmx',
    ],
    'MOC': '',
    'MOZILLA_SYMBOLVERSION': '69',
    'MOZILLA_VERSION': b'69.0.3',
    'MOZ_ADJUST_SDK_KEY': 'no-adjust-sdk-key',
    'MOZ_ANDROID_ANR_REPORTER': '',
    'MOZ_ANDROID_APPLICATION_CLASS': '',
    'MOZ_ANDROID_BROWSER_INTENT_CLASS': '',
    'MOZ_ANDROID_DISTRIBUTION_DIRECTORY': '',
    'MOZ_ANDROID_GCM_SENDERID': '',
    'MOZ_ANDROID_MAX_SDK_VERSION': '',
    'MOZ_ANDROID_MIN_SDK_VERSION': '',
    'MOZ_ANDROID_SHARED_ID': 'org.mozilla.firefox.sharedID',
    'MOZ_APP_ANDROID_VERSION_CODE': '',
    'MOZ_APP_BASENAME': 'Firefox',
    'MOZ_APP_DISPLAYNAME': 'Nightly',
    'MOZ_APP_ID': '{ec8030f7-c20a-464f-9b0e-13a3a9e97384}',
    'MOZ_APP_MAXVERSION': '69.*',
    'MOZ_APP_NAME': 'firefox',
    'MOZ_APP_PROFILE': '',
    'MOZ_APP_REMOTINGNAME': 'firefox',
    'MOZ_APP_UA_NAME': '',
    'MOZ_APP_VENDOR': 'Mozilla',
    'MOZ_APP_VERSION': b'69.0.3',
    'MOZ_APP_VERSION_DISPLAY': b'69.0.3',
    'MOZ_ASAN': '',
    'MOZ_AUTH_EXTENSION': '1',
    'MOZ_AV1': '1',
    'MOZ_BING_API_CLIENTID': 'no-bing-api-clientid',
    'MOZ_BING_API_KEY': 'no-bing-api-key',
    'MOZ_BLOCK_PROFILE_DOWNGRADE': '1',
    'MOZ_BRANDING_DIRECTORY': 'browser/branding/unofficial',
    'MOZ_BUILD_APP': 'browser',
    'MOZ_BUILD_NSPR': '1',
    'MOZ_BUILD_ROOT': '/home/michele/firefox-69.0.3/build',
    'MOZ_CAIRO_CFLAGS': [
        '-I/home/michele/firefox-69.0.3/build/dist/include/cairo',
    ],
    'MOZ_CAIRO_LIBS': [
    ],
    'MOZ_CAIRO_OSLIBS': [
        '-lXrender',
    ],
    'MOZ_CHILD_PROCESS_BUNDLE': 'plugin-container.app/Contents/MacOS/',
    'MOZ_CHILD_PROCESS_BUNDLENAME': 'NightlyCP',
    'MOZ_CHILD_PROCESS_NAME': 'plugin-container',
    'MOZ_CLANG_PATH': '/usr/bin/clang++',
    'MOZ_CLANG_RT_ASAN_LIB_PATH': '',
    'MOZ_CONFIGURE_OPTIONS': '--target=sparcv9-sun-solaris CC=/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc CXX=/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-g++',
    'MOZ_CRASHREPORTER': '',
    'MOZ_CRASHREPORTER_INJECTOR': '',
    'MOZ_DATA_REPORTING': '1',
    'MOZ_DBUS_CFLAGS': [
        '-I/usr/include/dbus-1.0',
        '-I/usr/lib/dbus-1.0/include',
    ],
    'MOZ_DBUS_GLIB_CFLAGS': [
        '-I/usr/include/dbus-1.0',
        '-I/usr/lib/dbus-1.0/include',
        '-I/usr/include/glib-2.0',
        '-I/usr/lib/glib-2.0/include',
        '-I/usr/include/pcre',
    ],
    'MOZ_DBUS_GLIB_LIBS': [
        '-ldbus-glib-1',
        '-ldbus-1',
        '-lgobject-2.0',
        '-lglib-2.0',
    ],
    'MOZ_DBUS_LIBS': [
        '-ldbus-1',
    ],
    'MOZ_DEBUG_DEFINES': [
        'NDEBUG',
        'TRIMMED',
    ],
    'MOZ_DEBUG_FLAGS': '-g',
    'MOZ_DEBUG_LDFLAGS': [
    ],
    'MOZ_DEBUG_SYMBOLS': '1',
    'MOZ_DEDICATED_PROFILES': '1',
    'MOZ_DEMANGLE_SYMBOLS': '',
    'MOZ_DEVTOOLS': 'all',
    'MOZ_DEV_EDITION': '',
    'MOZ_DISABLE_PARENTAL_CONTROLS': '',
    'MOZ_DISABLE_STARTUPCACHE': '',
    'MOZ_DISTRIBUTION_ID': 'org.mozilla',
    'MOZ_EME_MODULES': [
    ],
    'MOZ_ENABLE_CAIRO_FT': '1',
    'MOZ_ENABLE_D3D10_LAYER': '',
    'MOZ_ENABLE_DBUS': '1',
    'MOZ_ENABLE_LIBPROXY': '',
    'MOZ_ENABLE_SIGNMAR': '1',
    'MOZ_ENABLE_SKIA': '1',
    'MOZ_ENABLE_STARTUP_NOTIFICATION': '',
    'MOZ_EXCLUDE_HYPHENATION_DICTIONARIES': '',
    'MOZ_EXTENSIONS': [
    ],
    'MOZ_FFI_CFLAGS': [
        b'-DFFI_NO_RAW_API',
        b'-I/usr/lib/libffi-3.2.1/include',
    ],
    'MOZ_FFI_LIBS': [
        '-lffi',
    ],
    'MOZ_FFMPEG': '1',
    'MOZ_FIX_LINK_PATHS': [
        '-L/home/michele/firefox-69.0.3/build/dist/bin',
    ],
    'MOZ_FMP4': '1',
    'MOZ_FOLD_LIBS': '',
    'MOZ_FOLD_LIBS_FLAGS': [
    ],
    'MOZ_FRAMEPTR_FLAGS': [
        '-fomit-frame-pointer',
        '-funwind-tables',
    ],
    'MOZ_FS_LAYOUT': 'unix',
    'MOZ_GFX_OPTIMIZE_MOBILE': '',
    'MOZ_GLUE_IN_PROGRAM': '1',
    'MOZ_GL_DEFAULT_PROVIDER': 'GLX',
    'MOZ_GOOGLE_LOCATION_SERVICE_API_KEY': 'no-google-location-service-api-key',
    'MOZ_GOOGLE_SAFEBROWSING_API_KEY': 'no-google-safebrowsing-api-key',
    'MOZ_GTHREAD_CFLAGS': [
    ],
    'MOZ_GTHREAD_LIBS': [
    ],
    'MOZ_GTK2_CFLAGS': [
        '-I/home/michele/firefox-69.0.3/widget/gtk/compat',
        '-D_REENTRANT',
        '-D_POSIX_PTHREAD_SEMANTICS',
        '-D_REENTRANT',
        '-I/usr/include/gtk-2.0',
        '-I/usr/include/gtk-unix-print-2.0',
        '-I/usr/include/gtk-2.0',
        '-I/usr/include/atk-1.0',
        '-I/usr/include/gio-unix-2.0/',
        '-I/usr/include/gtk-2.0',
        '-I/usr/lib/gtk-2.0/include',
        '-I/usr/include/pango-1.0',
        '-I/usr/include/harfbuzz',
        '-I/usr/include/pango-1.0',
        '-I/usr/include/cairo',
        '-I/usr/include/pixman-1',
        '-I/usr/include/freetype2',
        '-I/usr/include/libdrm',
        '-I/usr/include/libpng14',
        '-I/usr/include/gdk-pixbuf-2.0',
        '-I/usr/include/libpng14',
        '-I/usr/include/glib-2.0',
        '-I/usr/lib/glib-2.0/include',
        '-I/usr/include/pcre',
    ],
    'MOZ_GTK2_LIBS': [
        '-lgtk-x11-2.0',
        '-latk-1.0',
        '-lpangoft2-1.0',
        '-lfontconfig',
        '-lfreetype',
        '-lgio-2.0',
        '-lgdk-x11-2.0',
        '-lpangocairo-1.0',
        '-lpango-1.0',
        '-lcairo',
        '-lgdk_pixbuf-2.0',
        '-lgobject-2.0',
        '-lglib-2.0',
    ],
    'MOZ_GTK3_CFLAGS': [
        '-I/home/michele/firefox-69.0.3/widget/gtk/compat-gtk3',
        '-D_REENTRANT',
        '-D_POSIX_PTHREAD_SEMANTICS',
        '-D_REENTRANT',
        '-I/usr/include/gtk-3.0/unix-print',
        '-I/usr/include/gtk-3.0',
        '-I/usr/include/at-spi2-atk/2.0',
        '-I/usr/include/at-spi-2.0',
        '-I/usr/include/dbus-1.0',
        '-I/usr/lib/dbus-1.0/include',
        '-I/usr/include/gtk-3.0',
        '-I/usr/include/cairo',
        '-I/usr/include/pango-1.0',
        '-I/usr/include/harfbuzz',
        '-I/usr/include/pango-1.0',
        '-I/usr/include/atk-1.0',
        '-I/usr/include/cairo',
        '-I/usr/include/pixman-1',
        '-I/usr/include/freetype2',
        '-I/usr/include/libdrm',
        '-I/usr/include/libpng14',
        '-I/usr/include/gdk-pixbuf-2.0',
        '-I/usr/include/libpng14',
        '-I/usr/include/gio-unix-2.0/',
        '-I/usr/include/glib-2.0',
        '-I/usr/lib/glib-2.0/include',
        '-I/usr/include/pcre',
    ],
    'MOZ_GTK3_LIBS': [
        '-lgtk-3',
        '-lgdk-3',
        '-lpangocairo-1.0',
        '-lpango-1.0',
        '-latk-1.0',
        '-lcairo-gobject',
        '-lcairo',
        '-lgdk_pixbuf-2.0',
        '-lgio-2.0',
        '-lgobject-2.0',
        '-lglib-2.0',
    ],
    'MOZ_HAS_REMOTE': '1',
    'MOZ_ICU_CFLAGS': [
    ],
    'MOZ_ICU_LIBS': [
    ],
    'MOZ_ICU_VERSION': '64',
    'MOZ_INCLUDE_SOURCE_INFO': '',
    'MOZ_INSTRUMENT_EVENT_LOOP': '1',
    'MOZ_IOS': '',
    'MOZ_JAR_MAKER_FILE_FORMAT': 'symlink',
    'MOZ_LEANPLUM_SDK_CLIENTID': 'no-leanplum-sdk-clientid',
    'MOZ_LEANPLUM_SDK_KEY': 'no-leanplum-sdk-key',
    'MOZ_LIBCLANG_PATH': '/usr/lib/llvm-9/lib',
    'MOZ_LIBEVENT_CFLAGS': [
    ],
    'MOZ_LIBEVENT_LIBS': [
    ],
    'MOZ_LIBPROXY_CFLAGS': [
    ],
    'MOZ_LIBPROXY_LIBS': [
    ],
    'MOZ_LINKER': '',
    'MOZ_LINKER_EXTRACT': '',
    'MOZ_LINUX_32_SSE2_STARTUP_ERROR': '',
    'MOZ_LTO_CFLAGS': [
    ],
    'MOZ_LTO_LDFLAGS': [
    ],
    'MOZ_LTO_RUST': '',
    'MOZ_MACBUNDLE_ID': 'org.mozilla.nightly',
    'MOZ_MACBUNDLE_NAME': 'Nightly.app',
    'MOZ_MMA_GCM_SENDERID': '',
    'MOZ_MOZILLA_API_KEY': 'no-mozilla-api-key',
    'MOZ_MSAN': '',
    'MOZ_NEEDS_LIBATOMIC': '',
    'MOZ_NO_DEBUG_RTL': '1',
    'MOZ_NO_SMART_CARDS': '',
    'MOZ_OFFICIAL_BRANDING': '',
    'MOZ_OPTIMIZE': '1',
    'MOZ_OPTIMIZE_FLAGS': [
        '-O',
    ],
    'MOZ_OPTIMIZE_LDFLAGS': [
    ],
    'MOZ_PACKAGER_FORMAT': 'omni',
    'MOZ_PACKAGE_JSSHELL': '',
    'MOZ_PANGO_CFLAGS': [
        b'-D_REENTRANT',
        b'-D_POSIX_PTHREAD_SEMANTICS',
        b'-I/usr/include/pango-1.0',
        b'-I/usr/include/harfbuzz',
        b'-I/usr/include/pango-1.0',
        b'-I/usr/include/cairo',
        b'-I/usr/include/glib-2.0',
        b'-I/usr/lib/glib-2.0/include',
        b'-I/usr/include/pcre',
        b'-I/usr/include/pixman-1',
        b'-I/usr/include/freetype2',
        b'-I/usr/include/libdrm',
        b'-I/usr/include/libpng14',
    ],
    'MOZ_PANGO_LIBS': [
        '-lpangoft2-1.0',
        '-lfontconfig',
        '-lfreetype',
        '-lpangocairo-1.0',
        '-lpango-1.0',
        '-lgobject-2.0',
        '-lglib-2.0',
        '-lcairo',
    ],
    'MOZ_PDF_PRINTING': '1',
    'MOZ_PGO': '',
    'MOZ_PGO_OPTIMIZE_FLAGS': [
    ],
    'MOZ_PHOENIX': '1',
    'MOZ_PIXMAN_CFLAGS': [
    ],
    'MOZ_PIXMAN_LIBS': [
    ],
    'MOZ_PKG_SPECIAL': '',
    'MOZ_PLACES': '1',
    'MOZ_PNG_CFLAGS': [
    ],
    'MOZ_PNG_LIBS': [
    ],
    'MOZ_POCKET_API_KEY': 'no-pocket-api-key',
    'MOZ_POST_PROGRAM_COMMAND': '',
    'MOZ_PREF_EXTENSIONS': '1',
    'MOZ_PROFILE_MIGRATOR': '1',
    'MOZ_PROGRAM_LDFLAGS': ' -pie',
    'MOZ_PULSEAUDIO': '1',
    'MOZ_PULSEAUDIO_CFLAGS': [
        b'-D_REENTRANT',
    ],
    'MOZ_PULSEAUDIO_LIBS': [
        '-lpulse',
    ],
    'MOZ_REQUIRE_SIGNING': '',
    'MOZ_RUST_DEFAULT_FLAGS': [
        '-C',
        'opt-level=2',
        '-C',
        'debuginfo=2',
        '--cap-lints',
        'warn',
    ],
    'MOZ_RUST_TESTS': '',
    'MOZ_SAMPLE_TYPE_FLOAT32': '1',
    'MOZ_SANDBOX': '',
    'MOZ_SERVICES_HEALTHREPORT': '1',
    'MOZ_SERVICES_SYNC': '1',
    'MOZ_SIGNED_OVERFLOW_SANITIZE': '',
    'MOZ_SIMPLE_PACKAGE_NAME': '',
    'MOZ_SOURCE_CHANGESET': '',
    'MOZ_SOURCE_REPO': '',
    'MOZ_SPELLCHECK': '1',
    'MOZ_STARTUP_NOTIFICATION_CFLAGS': [
    ],
    'MOZ_STARTUP_NOTIFICATION_LIBS': [
    ],
    'MOZ_STUB_INSTALLER': '',
    'MOZ_SYNTH_SPEECHD': '1',
    'MOZ_SYSTEM_FFI': '1',
    'MOZ_SYSTEM_ICU': '',
    'MOZ_SYSTEM_LIBEVENT': '',
    'MOZ_SYSTEM_NSPR': '',
    'MOZ_SYSTEM_NSS': '',
    'MOZ_SYSTEM_PNG': '',
    'MOZ_SYSTEM_SQLITE': '',
    'MOZ_SYSTEM_ZLIB': '',
    'MOZ_TREE_CAIRO': '1',
    'MOZ_TREE_PIXMAN': '1',
    'MOZ_TSAN': '',
    'MOZ_UA_OS_AGNOSTIC': '',
    'MOZ_UBSAN': '',
    'MOZ_UI_LOCALE': [
        'en-US',
    ],
    'MOZ_UNIVERSALCHARDET': '1',
    'MOZ_UNSIGNED_OVERFLOW_SANITIZE': '',
    'MOZ_UPDATER': '1',
    'MOZ_UPDATE_CHANNEL': 'default',
    'MOZ_USE_PTHREADS': '1',
    'MOZ_VERIFY_MAR_SIGNATURE': '1',
    'MOZ_VORBIS': '1',
    'MOZ_WEBM_ENCODER': '1',
    'MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI': '',
    'MOZ_WEBRTC_X11_LIBS': [
    ],
    'MOZ_WEBSPEECH': '1',
    'MOZ_WEBSPEECH_TEST_BACKEND': '1',
    'MOZ_WIDGET_TOOLKIT': 'gtk3',
    'MOZ_X11': '1',
    'MOZ_XUL': '1',
    'MOZ_ZIPWRITER': '1',
    'MOZ_ZLIB_CFLAGS': [
    ],
    'MOZ_ZLIB_LIBS': [
    ],
    'MSVC_CXX_RUNTIME_DLL': '',
    'MSVC_C_RUNTIME_DLL': '',
    'MSVS_VERSION': '',
    'NASM': '/usr/bin/nasm',
    'NASM_MAJOR_VERSION': '2',
    'NASM_MINOR_VERSION': '14',
    'NECKO_COOKIES': '1',
    'NECKO_WIFI': '',
    'NECKO_WIFI_DBUS': '',
    'NM': '',
    'NODEJS': b'/usr/bin/nodejs',
    'NSPR_CFLAGS': [
        '-I/home/michele/firefox-69.0.3/build/dist/include/nspr',
    ],
    'NSPR_CONFIG': '',
    'NSPR_INCLUDE_DIR': '/home/michele/firefox-69.0.3/build/dist/include/nspr',
    'NSPR_LIBS': [
        '-L/home/michele/firefox-69.0.3/build/dist/bin',
        '-lnspr4',
        '-lplc4',
        '-lplds4',
    ],
    'NSPR_LIB_DIR': '/home/michele/firefox-69.0.3/build/dist/bin',
    'NSS_CFLAGS': [
        '-I/home/michele/firefox-69.0.3/build/dist/include/nss',
    ],
    'NSS_CONFIG': '',
    'NSS_DISABLE_DBM': '',
    'NSS_EXTRA_SYMBOLS_FILE': '',
    'NSS_LIBS': [
    ],
    'NS_ENABLE_TSF': '',
    'NS_PRINTING': '1',
    'OBJCOPY': 'objcopy',
    'OBJ_SUFFIX': 'o',
    'OMNIJAR_NAME': 'omni.ja',
    'OS2_SURFACE_FEATURE': '',
    'OS_ARCH': 'SunOS',
    'OS_CFLAGS': [
        '-U_FORTIFY_SOURCE',
        '-D_FORTIFY_SOURCE=2',
        '-fstack-protector-strong',
        '-fno-strict-aliasing',
        '-ffunction-sections',
        '-fdata-sections',
        '-fno-math-errno',
        '-pthread',
        '-pipe',
    ],
    'OS_COMPILE_CFLAGS': [
        '-include',
        '/home/michele/firefox-69.0.3/build/mozilla-config.h',
        '-DMOZILLA_CLIENT',
    ],
    'OS_COMPILE_CMFLAGS': '-x objective-c -fobjc-exceptions',
    'OS_COMPILE_CMMFLAGS': '-x objective-c++ -fobjc-exceptions',
    'OS_COMPILE_CXXFLAGS': [
        '-DMOZILLA_CLIENT',
        '-include',
        '/home/michele/firefox-69.0.3/build/mozilla-config.h',
    ],
    'OS_CPPFLAGS': [
        '-U_FORTIFY_SOURCE',
        '-D_FORTIFY_SOURCE=2',
        '-fstack-protector-strong',
    ],
    'OS_CXXFLAGS': [
        '-Wall',
        '-Wempty-body',
        '-Wignored-qualifiers',
        '-Woverloaded-virtual',
        '-Wpointer-arith',
        '-Wsign-compare',
        '-Wtype-limits',
        '-Wunreachable-code',
        '-Wwrite-strings',
        '-Wno-invalid-offsetof',
        '-Wc++1z-compat',
        '-Wduplicated-cond',
        '-Wimplicit-fallthrough',
        '-Wno-error=maybe-uninitialized',
        '-Wno-error=deprecated-declarations',
        '-Wno-error=array-bounds',
        '-Wno-error=coverage-mismatch',
        '-Wno-error=free-nonheap-object',
        '-Wformat',
        '-Wformat-overflow=2',
        '-fno-sized-deallocation',
        '-U_FORTIFY_SOURCE',
        '-D_FORTIFY_SOURCE=2',
        '-fstack-protector-strong',
        '-fno-exceptions',
        '-fno-strict-aliasing',
        '-fno-rtti',
        '-ffunction-sections',
        '-fdata-sections',
        '-fno-exceptions',
        '-fno-math-errno',
        '-pthread',
        '-pipe',
    ],
    'OS_LDFLAGS': [
        '-lpthread',
        '-fstack-protector-strong',
        '-Wl,-z,noexecstack',
        '-Wl,-z,text',
        '-Wl,-z,relro',
        '-Wl,-z,nocopyreloc',
        '-Wl,-Bsymbolic-functions',
        '-Wl,--build-id=sha1',
    ],
    'OS_LIBS': '-lsocket ',
    'OS_TARGET': 'SunOS',
    'OTOOL': ':',
    'PATH': '/usr/local/bin:home/michele/.cargo/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/sparcv9-solaris/solaris/cross/bin:/home/michele/.cargo/bin:/home/michele/.mozbuild/clang/bin:/home/michele/.mozbuild/cbindgen:/home/michele/.mozbuild/nasm',
    'PDF_SURFACE_FEATURE': '#define CAIRO_HAS_PDF_SURFACE 1',
    'PERL': '/usr/bin/perl',
    'PKGCONF_REQUIRES_PRIVATE': 'Requires.private: nspr',
    'PKG_CONFIG': '/usr/bin/pkg-config',
    'PKG_SKIP_STRIP': '',
    'PNG_FUNCTIONS_FEATURE': '',
    'PREPROCESS_OPTION': '-E -o ',
    'PROFILE_GEN_CFLAGS': [
        '-fprofile-generate',
    ],
    'PROFILE_GEN_LDFLAGS': [
        '-fprofile-generate',
    ],
    'PROFILE_USE_CFLAGS': [
        '-fprofile-use',
        '-fprofile-correction',
        '-Wcoverage-mismatch',
    ],
    'PROFILE_USE_LDFLAGS': [
        '-fprofile-use',
    ],
    'PS_SURFACE_FEATURE': '#define CAIRO_HAS_PS_SURFACE 1',
    'PYTHON': '/home/michele/firefox-69.0.3/build/_virtualenvs/init/bin/python',
    'PYTHON3': '/usr/bin/python3',
    'PYTHON3_VERSION': '3.7.5',
    'QT_SURFACE_FEATURE': '',
    'QUARTZ_FONT_FEATURE': '',
    'QUARTZ_IMAGE_SURFACE_FEATURE': '',
    'QUARTZ_SURFACE_FEATURE': '',
    'RANLIB': 'ranlib',
    'RCC': '',
    'RCFLAGS': '',
    'REALTIME_LIBS': [
    ],
    'RELEASE_OR_BETA': '1',
    'RUSTC': '/usr/local/bin/rustc',
    'RUSTC_COMMIT': 'unknown',
    'RUSTC_VERSION': '1.42.0-dev',
    'RUSTDOC': '/usr/local/bin/rustdoc',
    'RUSTFLAGS': [
    ],
    'RUSTFMT': '/home/michele/.cargo/bin/rustfmt',
    'RUST_HOST_TARGET': b'x86_64-unknown-linux-gnu',
    'RUST_LIB_PREFIX': 'lib',
    'RUST_LIB_SUFFIX': 'a',
    'RUST_TARGET': b'sparcv9-sun-solaris',
    'SFNTLY_INCLUDES': [
    ],
    'SHELL': '/bin/sh',
    'SKIA_INCLUDES': [
        '/gfx/skia',
        '/gfx/skia/skia/include/config',
        '/gfx/skia/skia/include/core',
        '/gfx/skia/skia/include/docs',
        '/gfx/skia/skia/include/gpu',
        '/gfx/skia/skia/include/utils',
    ],
    'SQLITE_CFLAGS': [
    ],
    'SQLITE_LIBS': [
    ],
    'SSE2_FLAGS': [
        '-msse2',
    ],
    'SSE_FLAGS': [
        '-msse',
    ],
    'SSSE3_FLAGS': [
        '-mssse3',
    ],
    'STLPORT_LIBS': [
    ],
    'STL_FLAGS': [
        '-I/home/michele/firefox-69.0.3/build/dist/stl_wrappers',
    ],
    'STRIP': 'strip',
    'STRIP_FLAGS': '',
    'SVG_SURFACE_FEATURE': '',
    'TAR': '/usr/bin/tar',
    'TARGET_CPU': 'sparcv9',
    'TARGET_ENDIANNESS': 'big',
    'TARGET_OS': 'solaris2',
    'TARGET_XPCOM_ABI': 'sparc64-gcc3',
    'TEE_SURFACE_FEATURE': '#define CAIRO_HAS_TEE_SURFACE 1',
    'TK_CFLAGS': [
        '-I/home/michele/firefox-69.0.3/widget/gtk/compat-gtk3',
        '-D_REENTRANT',
        '-D_POSIX_PTHREAD_SEMANTICS',
        '-D_REENTRANT',
        '-I/usr/include/gtk-3.0/unix-print',
        '-I/usr/include/gtk-3.0',
        '-I/usr/include/at-spi2-atk/2.0',
        '-I/usr/include/at-spi-2.0',
        '-I/usr/include/dbus-1.0',
        '-I/usr/lib/dbus-1.0/include',
        '-I/usr/include/gtk-3.0',
        '-I/usr/include/cairo',
        '-I/usr/include/pango-1.0',
        '-I/usr/include/harfbuzz',
        '-I/usr/include/pango-1.0',
        '-I/usr/include/atk-1.0',
        '-I/usr/include/cairo',
        '-I/usr/include/pixman-1',
        '-I/usr/include/freetype2',
        '-I/usr/include/libdrm',
        '-I/usr/include/libpng14',
        '-I/usr/include/gdk-pixbuf-2.0',
        '-I/usr/include/libpng14',
        '-I/usr/include/gio-unix-2.0/',
        '-I/usr/include/glib-2.0',
        '-I/usr/lib/glib-2.0/include',
        '-I/usr/include/pcre',
    ],
    'TK_LIBS': [
        '-lgtk-3',
        '-lgdk-3',
        '-lpangocairo-1.0',
        '-lpango-1.0',
        '-latk-1.0',
        '-lcairo-gobject',
        '-lcairo',
        '-lgdk_pixbuf-2.0',
        '-lgio-2.0',
        '-lgobject-2.0',
        '-lglib-2.0',
    ],
    'UNZIP': '/usr/bin/unzip',
    'USE_ICU': '1',
    'USE_N32': '',
    'VISIBILITY_FLAGS': [
        '-I/home/michele/firefox-69.0.3/build/dist/system_wrappers',
        '-include',
        '/home/michele/firefox-69.0.3/config/gcc_hidden.h',
    ],
    'VPX_ASFLAGS': [
    ],
    'WARNINGS_AS_ERRORS': '',
    'WARNINGS_CFLAGS': [
        '-Wall',
        '-Wempty-body',
        '-Wignored-qualifiers',
        '-Wpointer-arith',
        '-Wsign-compare',
        '-Wtype-limits',
        '-Wunreachable-code',
        '-Wduplicated-cond',
        '-Wno-error=maybe-uninitialized',
        '-Wno-error=deprecated-declarations',
        '-Wno-error=array-bounds',
        '-Wno-error=coverage-mismatch',
        '-Wno-error=free-nonheap-object',
        '-Wformat',
        '-Wformat-overflow=2',
    ],
    'WEBIDL_ROOT': '/home/michele/firefox-69.0.3/build/dom/bindings',
    'WGET': 'wget',
    'WIN32_CONSOLE_EXE_LDFLAGS': '',
    'WIN32_DWRITE_FONT_FEATURE': '',
    'WIN32_FONT_FEATURE': '',
    'WIN32_GUI_EXE_LDFLAGS': '',
    'WIN32_REDIST_DIR': '',
    'WIN32_SURFACE_FEATURE': '',
    'WIN_UCRT_REDIST_DIR': '',
    'WRAP_STL_INCLUDES': '1',
    'WRAP_SYSTEM_INCLUDES': '1',
    'XARGS': '/usr/bin/xargs',
    'XCFLAGS': [
    ],
    'XEXT_LIBS': [
        '-lXext',
    ],
    'XLDFLAGS': [
    ],
    'XLIBS': [
        '-lX11-xcb',
        '-lxcb-shm',
        '-lxcb',
        '-lX11',
    ],
    'XLIB_SURFACE_FEATURE': '#define CAIRO_HAS_XLIB_SURFACE 1',
    'XLIB_XRENDER_SURFACE_FEATURE': '#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1',
    'XPCOM_ROOT': '/home/michele/firefox-69.0.3/build/xpcom/components',
    'XT_LIBS': [
        '-lXt',
    ],
    'XZ': '',
    'X_CFLAGS': '',
    'X_EXTRA_LIBS': '',
    'X_LIBS': '',
    'X_PRE_LIBS': ' -lSM -lICE',
    'YASM': '/usr/bin/yasm',
    'YASM_HAS_AVX2': '1',
    'ZIP': '/usr/bin/zip',
    'ZLIB_IN_MOZGLUE': '',
    '_AS': '/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc',
    '_CARGO': '/home/michele/.cargo/bin/cargo',
    '_CC': '/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc',
    '_CXX': '/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-g++',
    '_DEPEND_CFLAGS': [
        '-MD',
        '-MP',
        '-MF $(MDDEPDIR)/$(@F).pp',
    ],
    '_FONTCONFIG_CFLAGS': [
        b'-I/usr/include/freetype2',
        b'-I/usr/include/libpng14',
    ],
    '_FONTCONFIG_LIBS': [
        '-lfontconfig',
        '-lfreetype',
    ],
    '_FT2_CFLAGS': [
        b'-I/usr/include/freetype2',
        b'-I/usr/include/libpng14',
    ],
    '_FT2_LIBS': [
        '-lfreetype',
    ],
    '_HOST_CC': '/usr/bin/gcc',
    '_HOST_CXX': '/usr/bin/g++',
    '_RUSTC': '/usr/local/bin/rustc',
    'bindir': '${exec_prefix}/bin',
    'build': 'x86_64-pc-linux-gnu',
    'build_alias': 'x86_64-pc-linux-gnu',
    'build_cpu': 'x86_64',
    'build_os': 'linux-gnu',
    'build_vendor': 'pc',
    'datadir': '${prefix}/share',
    'exec_prefix': '${prefix}',
    'host': 'x86_64-pc-linux-gnu',
    'host_alias': 'x86_64-pc-linux-gnu',
    'host_cpu': 'x86_64',
    'host_os': 'linux-gnu',
    'host_vendor': 'pc',
    'includedir': '${prefix}/include',
    'infodir': '${prefix}/info',
    'libdir': '${exec_prefix}/lib',
    'libexecdir': '${exec_prefix}/libexec',
    'localstatedir': '${prefix}/var',
    'mandir': '${prefix}/man',
    'oldincludedir': '/usr/include',
    'prefix': '/usr/local',
    'program_transform_name': 's,x,x,',
    'sbindir': '${exec_prefix}/sbin',
    'sharedstatedir': '${prefix}/com',
    'sysconfdir': '${prefix}/etc',
    'target': 'sparcv9-sun-solaris2',
    'target_alias': 'sparcv9-sun-solaris2',
    'target_cpu': 'sparcv9',
    'target_os': 'solaris2',
    'target_vendor': 'sun',
    'top_srcdir': '/home/michele/firefox-69.0.3',
}, encoding)
defines = encode({
    'ACCESSIBILITY': '1',
    'ATK_MAJOR_VERSION': '2',
    'ATK_MINOR_VERSION': '24',
    'ATK_REV_VERSION': '0',
    'BROWSER_CHROME_URL': 'chrome://browser/content/browser.xhtml',
    'BROWSER_CHROME_URL_QUOTED': '"chrome://browser/content/browser.xhtml"',
    'BUILD_CTYPES': '1',
    'CPP_THROW_NEW': 'throw()',
    'CROSS_COMPILE': '1',
    'ENABLE_INTL_API': '1',
    'ENABLE_REMOTE_AGENT': '1',
    'ENABLE_SYSTEM_EXTENSION_DIRS': '1',
    'ENABLE_TESTS': '1',
    'EXPOSE_INTL_API': '1',
    'FORCE_PR_LOG': '1',
    'FUNCPROTO': '15',
    'GDK_VERSION_MAX_ALLOWED': 'GDK_VERSION_3_4',
    'GLIB_VERSION_MAX_ALLOWED': 'GLIB_VERSION_2_32',
    'GLIB_VERSION_MIN_REQUIRED': 'GLIB_VERSION_2_26',
    'GL_PROVIDER_GLX': '1',
    'GTEST_HAS_RTTI': '0',
    'HAVE_64BIT_BUILD': '1',
    'HAVE_ALLOCA_H': '1',
    'HAVE_ARC4RANDOM': '1',
    'HAVE_ARC4RANDOM_BUF': '1',
    'HAVE_CLOCK_MONOTONIC': '1',
    'HAVE_DIRENT_H': '1',
    'HAVE_DLADDR': '1',
    'HAVE_DLOPEN': '1',
    'HAVE_FONTCONFIG_FCFREETYPE_H': '1',
    'HAVE_FT_BITMAP_SIZE_Y_PPEM': '1',
    'HAVE_FT_GLYPHSLOT_EMBOLDEN': '1',
    'HAVE_FT_LOAD_SFNT_TABLE': '1',
    'HAVE_GETOPT_H': '1',
    'HAVE_GETPAGESIZE': '1',
    'HAVE_GMTIME_R': '1',
    'HAVE_INTTYPES_H': '1',
    'HAVE_LCHOWN': '1',
    'HAVE_LIBSOCKET': '1',
    'HAVE_LOCALECONV': '1',
    'HAVE_LOCALTIME_R': '1',
    'HAVE_MALLOC_H': '1',
    'HAVE_MEMALIGN': '1',
    'HAVE_MEMMEM': '1',
    'HAVE_NETINET_IN_H': '1',
    'HAVE_NL_TYPES_H': '1',
    'HAVE_POSIX_FADVISE': '1',
    'HAVE_POSIX_FALLOCATE': '1',
    'HAVE_POSIX_MEMALIGN': '1',
    'HAVE_PTHREAD_H': '1',
    'HAVE_SETPRIORITY': '1',
    'HAVE_STATFS': '1',
    'HAVE_STATVFS': '1',
    'HAVE_STDINT_H': '1',
    'HAVE_STRERROR': '1',
    'HAVE_STRNDUP': '1',
    'HAVE_SYSCALL': '1',
    'HAVE_SYS_BYTEORDER_H': '1',
    'HAVE_SYS_MOUNT_H': '1',
    'HAVE_SYS_QUEUE_H': '1',
    'HAVE_SYS_STATFS_H': '1',
    'HAVE_SYS_STATVFS_H': '1',
    'HAVE_SYS_TYPES_H': '1',
    'HAVE_SYS_VFS_H': '1',
    'HAVE_THREAD_TLS_KEYWORD': '1',
    'HAVE_UNISTD_H': '1',
    'HAVE_VA_COPY': '1',
    'HAVE_VISIBILITY_ATTRIBUTE': '1',
    'HAVE_VISIBILITY_HIDDEN_ATTRIBUTE': '1',
    'HAVE__UNWIND_BACKTRACE': '1',
    'HAVE___CXA_DEMANGLE': '1',
    'JS_64BIT': '1',
    'JS_CODEGEN_NONE': '1',
    'JS_DEFAULT_JITREPORT_GRANULARITY': '3',
    'JS_PUNBOX64': '1',
    'MALLOC_H': '<malloc.h>',
    'MALLOC_USABLE_SIZE_CONST_PTR': 'const',
    'MOZILLA_UAVERSION': '"69.0"',
    'MOZILLA_VERSION': '"69.0.3"',
    'MOZILLA_VERSION_U': b'69.0.3',
    'MOZ_ACCESSIBILITY_ATK': '1',
    'MOZ_APP_UA_NAME': '""',
    'MOZ_APP_UA_VERSION': '"69.0.3"',
    'MOZ_AV1': '1',
    'MOZ_BLOCK_PROFILE_DOWNGRADE': '1',
    'MOZ_BUILD_APP': 'browser',
    'MOZ_DATA_REPORTING': '1',
    'MOZ_DEDICATED_PROFILES': '1',
    'MOZ_DISTRIBUTION_ID': '"org.mozilla"',
    'MOZ_DLL_PREFIX': '"lib"',
    'MOZ_DLL_SUFFIX': '".so"',
    'MOZ_ENABLE_DBUS': '1',
    'MOZ_ENABLE_SIGNMAR': '1',
    'MOZ_ENABLE_SKIA': '1',
    'MOZ_FFMPEG': '1',
    'MOZ_FMP4': '1',
    'MOZ_GLUE_IN_PROGRAM': '1',
    'MOZ_HAS_REMOTE': '1',
    'MOZ_INSTRUMENT_EVENT_LOOP': '1',
    'MOZ_LOGGING': '1',
    'MOZ_MACBUNDLE_ID': 'org.mozilla.nightly',
    'MOZ_PHOENIX': '1',
    'MOZ_PLACES': '1',
    'MOZ_PULSEAUDIO': '1',
    'MOZ_SAMPLE_TYPE_FLOAT32': '1',
    'MOZ_SERVICES_HEALTHREPORT': '1',
    'MOZ_STATIC_JS': '1',
    'MOZ_TREE_CAIRO': '1',
    'MOZ_TREE_PIXMAN': '1',
    'MOZ_UPDATER': '1',
    'MOZ_UPDATE_CHANNEL': 'default',
    'MOZ_USER_DIR': '".mozilla"',
    'MOZ_VERIFY_MAR_SIGNATURE': '1',
    'MOZ_VORBIS': '1',
    'MOZ_WEBM_ENCODER': '1',
    'MOZ_WEBSPEECH': '1',
    'MOZ_WEBSPEECH_TEST_BACKEND': '1',
    'MOZ_WIDGET_GTK': '1',
    'MOZ_X11': '1',
    'MOZ_XUL': '1',
    'NECKO_COOKIES': '1',
    'NO_NSPR_10_SUPPORT': '1',
    'NS_PRINTING': '1',
    'NS_PRINT_PREVIEW': '1',
    'RELEASE_OR_BETA': '1',
    'SPARC64': '1',
    'STATIC_JS_API': '1',
    'STDC_HEADERS': '1',
    'TARGET_XPCOM_ABI': '"sparc64-gcc3"',
    'USE_SKIA': '1',
    'U_STATIC_IMPLEMENTATION': '1',
    'U_USING_ICU_NAMESPACE': '0',
    'VA_COPY': 'va_copy',
    'XP_SOLARIS': '1',
    'XP_UNIX': '1',
}, encoding)
__all__ = ['topobjdir', 'topsrcdir', 'defines', 'non_global_defines', 'substs', 'mozconfig']
if __name__ == '__main__':
    from mozbuild.util import patch_main
    patch_main()
    from mozbuild.config_status import config_status
    args = dict([(name, globals()[name]) for name in __all__])
    config_status(**args)

What linker is your cross gcc using? (/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc -Wl, --version)

Priority: -- → P3

Well one problem seems to be this fragment:

[style 0.0.1] cargo:rerun-if-changed=build_gecko.rs
[style 0.0.1] cargo:rerun-if-changed=/home/michele/firefox-69.0.3/build/layout/style/bindgen.toml
[style 0.0.1] cargo:rerun-if-changed=/home/michele/firefox-69.0.3/layout/style/ServoBindings.toml
[style 0.0.1] /home/michele/firefox-69.0.3/build/dist/include/mozilla/Compiler.h:43:12: fatal error: 'cstddef' file not found

There's a bug 1412983 that claims this could be fixed by setting

$ HOST_CC=clang
$ HOST_CXX=clang++

but that was two years ago and for MacOS anyway. And I tried it and it didn't help.

Any ideas?

(In reply to Nathan Froyd [:froydnj] from comment #6)

What linker is your cross gcc using? (/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc -Wl, --version)
It says:
michele@michele-VirtualBox:~/firefox-69.0.3/build$ /usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc -Wl, --version
sparcv9-solaris2.11-gcc (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

michele@michele-VirtualBox:~/firefox-69.0.3/build$

Well while waiting for some more help I thought I'd take a look at why cstddef isn't found. I did a find cstddef on the entire directory and discovered there was one instance of it: /home/michele/firefox-69.0.3/build/dist/system_wrappers/cstddef. The file throwing the error is build/dist/include/Mozilla/Compiler.h where it's just asking for # include <cstddef>. So I changed that to

include "/home/michele/firefox-69.0.3/build/dist/system_wrappers/cstddef"

and reran make. It did indeed go further this time but now it's stopping with this:

...
[style 0.0.1] cargo:rerun-if-changed=/home/michele/firefox-69.0.3/layout/style/ServoBindings.toml
[style 0.0.1] /home/michele/firefox-69.0.3/build/dist/system_wrappers/cstddef:3:15: error: #include nested too deeply
[style 0.0.1] /usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not found
[style 0.0.1] /home/michele/firefox-69.0.3/build/dist/system_wrappers/cstddef:3:15: error: #include nested too deeply, err: true
[style 0.0.1] /usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not found, err: true

Looking for libc-header-start.h shows it is indeed nowhere to be found. I'm beginning to wonder if this project is going to work. That neste-include error doesn't look good.

That cstddef header is wrapping the real <cstddef> header, which the clang configure finds should know how to locate. If the clang doesn't know how to find it, that'd be a problem.

So you're saying clang can't find cstddef.h? Is there some other env variable I should be setting? cstddef does appear in several other places in /usr. Which one does it want? Should I just undo the change I made to Compiler.h?

FWIW, $ clang hello.c does work correctly.

And I don't know why that include line in my previous post came out in giant font bold. I didn't specify that.

(In reply to mdenber from comment #11)

So you're saying clang can't find cstddef.h? Is there some other env variable I should be setting? cstddef does appear in several other places in /usr. Which one does it want? Should I just undo the change I made to Compiler.h?

You should absolutely undo the change to Compiler.h

FWIW, $ clang hello.c does work correctly.

Does clang --target=sparcv9-solaris hello.c (or whatever the appropriate --target flag is) work correctly? Is that clang the same clang that Firefox's configure is finding?

If it doesn't work correctly, you're going to need to fix your cross-compiling setup.

And I don't know why that include line in my previous post came out in giant font bold. I didn't specify that.

Bugzilla comments are translated as Markdown: https://guides.github.com/features/mastering-markdown/ So your #include "/home/michele..." got interpreted as a header, which is presented in a larger, bold font.

"Does clang --target=sparcv9-solaris hello.c (or whatever the appropriate --target flag is) work correctly?"

Indeed it does not:

michele@michele-VirtualBox:~$ clang --target=sparcv9-sun-solaris hello.c
In file included from hello.c:1:
/usr/include/stdio.h:27:10: fatal error: 'bits/libc-header-start.h' file not found
#include <bits/libc-header-start.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

However, this does work (and generates working SPARC code):

michele@michele-VirtualBox:$ /usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc helloworld.c -o hello
michele@michele-VirtualBox:
$

I'm guessing that "clang" invokes the Ubuntu C compiler. I further guess that the Firefox build needs some way to know that the C compiler it should be using is "/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc" rather than just "clang". If so can you tell me how to accomplish that? There's nothing about that in the cross-compiler guide page (such as it is). I'm willing to believe my cross-compiling setup is in need of fixing but I don't know how to do that. Perhaps

HOST_CC=/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc ??

Meanwhile I've returned Compiler.h to its original state. And thank you very much for all your help so far.

The configure process you showed above is, I believe, already picking the correct C/C++ compiler (your cross gcc).

The build process, however, needs a clang that knows how to generate code for your target machine as well. So you need to get that working first.

OK that's another clue. I didn't even know that I needed clang at all. I thought that with Firefox now being written i Rust, a Rust cross-compiler (which I have) would be all that was needed. I found a pretty good guide here: https://clang.llvm.org/docs/CrossCompilation.org. So I tried:

michele@michele-VirtualBox:~$ clang -target sparcv9-sun-solaris -I /usr/sparcv9-solaris/solaris/usr/include -L /usr/sparcv9-solaris/solaris/usr/lib -fuse-ld=/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld hello.c
/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: unrecognized option '-C'
/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: use the --help option for usage information
clang: error: linker command failed with exit code 1 (use -v to see invocation)
michele@michele-VirtualBox:~$

It appears that it is either ignoring my fuse-ld option and using the Ubuntu x64 linker or the linker I'm passing is still wrong. I guess it wants a SPARC linker? (-C is a SPARC option but not an x64 option).

Checking the ld I'm passing shows:

michele@michele-VirtualBox:/usr/sparcv9-solaris/solaris/cross/bin$ file sparcv9-solaris2.11-ld
sparcv9-solaris2.11-ld: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=312aee5ff5614039e530e03820191a7e1e396f78, for GNU/Linux 3.2.0, with debug_info, not stripped

but I'm not sure what that means. It's an LSB executable which I guess is right since this program is executing on x64 hardware. Or do I need the actual Sun ld copied over from my SPARC machine?

Upon further reflection, I'm not sure playing with clang is the answer. I have a working gcc cross-compiler, so can't I use that? After resetting CC and CXX back to that, it compiled 295 out of the 306 things in the Build progress meter and then stopped at the same spot with the same "cstddef not found" error. This seems to be coming from Rust anyway, not gcc.

In my rust directory I have something called

/home/michele/rust/src/llvm-project/libcxx/include/cstddef

It looks like a .h file even though it doesn't end in .h. So I tried saying

~/firefox-69.0.3/build/build$ make -I /home/michele/rust/src/llvm-project/libcxx/include

This time I got

...
make[2]: Entering directory '/home/michele/firefox-69.0.3/build/build/unix'
make[2]: Nothing to be done for 'misc'.
make[2]: Leaving directory '/home/michele/firefox-69.0.3/build/build/unix'
make[1]: Leaving directory '/home/michele/firefox-69.0.3/build/build'
make[1]: Entering directory '/home/michele/firefox-69.0.3/build/build'
make[2]: Entering directory '/home/michele/firefox-69.0.3/build/build/unix'
make[2]: Nothing to be done for 'libs'.
make[2]: Leaving directory '/home/michele/firefox-69.0.3/build/build/unix'
make[1]: Leaving directory '/home/michele/firefox-69.0.3/build/build'
make[1]: Entering directory '/home/michele/firefox-69.0.3/build/build'
make[2]: Entering directory '/home/michele/firefox-69.0.3/build/build/unix'
make[2]: Nothing to be done for 'tools'.
make[2]: Leaving directory '/home/michele/firefox-69.0.3/build/build/unix'
make[1]: Leaving directory '/home/michele/firefox-69.0.3/build/build'
michele@michele-VirtualBox:~/firefox-69.0.3/build/build$

which sure looks like a successful conclusion to me. So if I may ask a dumb question now, (if this really did finally work) where is the executable?

make -I /arg searches /arg for included makefiles. It's not actually telling anything where to find cstddef, especially not the clang process that gets invoked during the build process. It also looks like you're running make from inside the build directory in the object directory, and not actually the toplevel. So your build succeeded, but only because it didn't try running any of the failing steps from earlier.

Oops - never mind. I completely missed that I was running make in build/build. When I popped back up to build/ and ran that make, it failed in the same way - "cstddef not found". So so much for that theory. I wish it was possible to retract comments here.

"the clang process that gets invoked during the build process"

Am I even using clang if I have CC=/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc ?

(In reply to mdenber from comment #19)

"the clang process that gets invoked during the build process"

Am I even using clang if I have CC=/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-gcc ?

Yes. (Or, rather, clang is used in addition to the GCC binary you've specified as CC; clang is used for doing things other than compiling C/C++.)

OK, so then I guess we're back to this question. Why is this failing? What linker does it want?

clang -target sparcv9-sun-solaris -I /usr/sparcv9-solaris/solaris/usr/include -L /usr/sparcv9-solaris/solaris/usr/lib -fuse-ld=/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld hello.c
/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: unrecognized option '-C'
/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: use the --help option for usage information
clang: error: linker command failed with exit code 1 (use -v to see invocation)

(Running --help just reports all the available options and says

/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: supported targets: elf32-sparc-sol2 elf64-sparc-sol2 elf64-little elf64-big elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex plugin
/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: supported emulations: elf64_sparc_sol2 elf64_sparc elf32_sparc_sol2 elf32_sparc
/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: e)

And here's something that may be relevant. In config.status there's a line

'CARGO': b'/home/michele/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo'
which is the native x64 Ubuntu cargo, not the one in my rust cross-compiler. That doesn't seem right (though it might be - who knows). So I tried adding

CARGO=/home/michele/rust/src/tools/cargo/src/bin/cargo

to my mozconfig file and then reran ./configure. But config.status shows that didn't get picked up. It still reports the old file. How do I get configure to use my specified cargo?

(In reply to mdenber from comment #21)

OK, so then I guess we're back to this question. Why is this failing? What linker does it want?

clang -target sparcv9-sun-solaris -I /usr/sparcv9-solaris/solaris/usr/include -L /usr/sparcv9-solaris/solaris/usr/lib -fuse-ld=/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld hello.c
/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: unrecognized option '-C'
/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: use the --help option for usage information
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Please run it with -v and comment with that output.

michele@michele-VirtualBox:~$ clang -v -target sparcv9-sun-solaris -I /usr/sparcv9-solaris/solaris/usr/include -L /usr/sparcv9-solaris/solaris/usr/lib -fuse-ld=/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld hello.c
clang version 9.0.0-2 (tags/RELEASE_900/final)
Target: sparcv9-sun-solaris
Thread model: posix
InstalledDir: /usr/bin
 "/usr/lib/llvm-9/bin/clang" -cc1 -triple sparcv9-sun-solaris -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name hello.c -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -mfloat-abi hard -dwarf-column-info -debugger-tuning=gdb -v -resource-dir /usr/lib/llvm-9/lib/clang/9.0.0 -I /usr/sparcv9-solaris/solaris/usr/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/llvm-9/lib/clang/9.0.0/include -internal-externc-isystem /usr/include -fdebug-compilation-dir /home/michele -ferror-limit 19 -fmessage-length 0 -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -faddrsig -o /tmp/hello-1bf484.o -x c hello.c
clang -cc1 version 9.0.0 based upon LLVM 9.0.0 default target x86_64-pc-linux-gnu
#include "..." search starts here:
#include <...> search starts here:
 /usr/sparcv9-solaris/solaris/usr/include
 /usr/local/include
 /usr/lib/llvm-9/lib/clang/9.0.0/include
 /usr/include
End of search list.
 "/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld" -C -e _start -Bdynamic -o a.out crt1.o crti.o values-Xa.o crtbegin.o -L/usr/lib/llvm-9/bin/../lib -L/usr/sparcv9-solaris/solaris/usr/lib /tmp/hello-1bf484.o -lgcc_s -lc -lgcc -lm crtend.o crtn.o
/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: unrecognized option '-C'
/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: use the --help option for usage information
clang: error: linker command failed with exit code 1 (use -v to see invocation)
michele@michele-VirtualBox:~$ 

It looks like the clang driver automatically adds -C to demangle C++ symbol names when linking:

https://github.com/llvm/llvm-project/blob/b8a2cf6b5b9e2dfac4c1b6c5683664ca2c4cf700/clang/lib/Driver/ToolChains/Solaris.cpp#L54-L55

So presumably that's something that the Solaris ld supports that GNU ld does not; GNU ld has a similar option called --demangle.

I think it's not worth worrying about...I don't think we call clang to do actual linking, so this problem shouldn't manifest in practice. We only care that clang can compile things for the target machine.

OK good. So then that just leaves us back to the previous problem:

$ /home/michele/firefox-69.0.3/build/dist/include/mozilla/Compiler.h:43:12: fatal error: 'cstddef' file not found

You need to teach clang --target sparcv9-sun-solaris where your SPARC sysroot is.

OK, so

michele@michele-VirtualBox:~$ clang -v -target sparcv9-sun-solaris -I /usr/sparcv9-solaris/solaris/usr/include -L /usr/sparcv9-solaris/solaris/usr/lib -fuse-ld=/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld --sysroot=/usr/sparcv9-solaris/solaris/cross/sysroot hello.c
clang version 9.0.0-2 (tags/RELEASE_900/final)
Target: sparcv9-sun-solaris
Thread model: posix
InstalledDir: /usr/bin
 "/usr/lib/llvm-9/bin/clang" -cc1 -triple sparcv9-sun-solaris -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name hello.c -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -mfloat-abi hard -dwarf-column-info -debugger-tuning=gdb -v -resource-dir /usr/lib/llvm-9/lib/clang/9.0.0 -I /usr/sparcv9-solaris/solaris/usr/include -isysroot /usr/sparcv9-solaris/solaris/cross/sysroot -internal-isystem /usr/sparcv9-solaris/solaris/cross/sysroot/usr/local/include -internal-isystem /usr/lib/llvm-9/lib/clang/9.0.0/include -internal-externc-isystem /usr/sparcv9-solaris/solaris/cross/sysroot/usr/include -fdebug-compilation-dir /home/michele -ferror-limit 19 -fmessage-length 0 -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -faddrsig -o /tmp/hello-c212a1.o -x c hello.c
clang -cc1 version 9.0.0 based upon LLVM 9.0.0 default target x86_64-pc-linux-gnu
#include "..." search starts here:
#include <...> search starts here:
 /usr/sparcv9-solaris/solaris/usr/include
 /usr/sparcv9-solaris/solaris/cross/sysroot/usr/local/include
 /usr/lib/llvm-9/lib/clang/9.0.0/include
 /usr/sparcv9-solaris/solaris/cross/sysroot/usr/include
End of search list.
 "/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld" -C -e _start -Bdynamic -o a.out /usr/sparcv9-solaris/solaris/cross/sysroot/usr/lib/sparcv9/crt1.o /usr/sparcv9-solaris/solaris/cross/sysroot/usr/lib/sparcv9/crti.o /usr/sparcv9-solaris/solaris/cross/sysroot/usr/lib/sparcv9/values-Xa.o crtbegin.o -L/usr/sparcv9-solaris/solaris/cross/sysroot/usr/lib/sparcv9 -L/usr/sparcv9-solaris/solaris/usr/lib /tmp/hello-c212a1.o -lgcc_s -lc -lgcc -lm crtend.o /usr/sparcv9-solaris/solaris/cross/sysroot/usr/lib/sparcv9/crtn.o
/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: unrecognized option '-C'
/usr/sparcv9-solaris/solaris/cross/bin/sparcv9-solaris2.11-ld: use the --help option for usage information
clang: error: linker command failed with exit code 1 (use -v to see invocation)
michele@michele-VirtualBox:~$ 

I'll mention that if I compile hello.c using the gcc in sysroot, it works, proucing a SPARC executable.

Then I added
mk_add_options SYSROOT=/usr/sparcv9-solaris/solaris/cross/sysroot
to my mozconfig file (I don't know if that's the right way to do it) and reran ../config and make in the FF build directory. Failed in the same spot as before:
home/michele/firefox-69.0.3/build/dist/include/mozilla/Compiler.h:43:12: fatal error: 'cstddef' file not found

Try something like:

export BINDGEN_CFLAGS="--sysroot=/usr/sparcv9-solaris/solaris/cross/sysroot"

in your mozconfig.

OK, now mozconfig looks like this:

 Build configuration script
#
# See http://www.mozilla.org/build/unix.html for build instructions.
#
CROSS_COMPILE=1
FORCE_GCC=
GCC_USE_GNU_LD=
CARGO=/home/michele/rust/src/tools/cargo/src/bin/cargo
SYSROOT=/usr/sparcv9-solaris/solaris/cross/sysroot
PKG_CONFIG_PATH=/usr/sparcv9-solaris/solaris/cross/sysroot/usr/lib/pkgconfig
export BINDGEN_CFLAGS="--sysroot=/usr/sparcv9-solaris/solaris/cross/sysroot"

ac_add_options --prefix=/usr/sparcv9-solaris/solaris/cross/sysroot/usr/lib
ac_add_options --target=sparcv9-sun-solaris

# Options for 'configure' (same as command-line options). 
# all are listed so that one can manually tweak this config file.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-release
mk_add_options SYSROOT=/usr/sparcv9-solaris/solaris/cross/sysroot
ac_add_options --enable-application=browser
# ac_add_options --enable-tests
ac_add_options --disable-jemalloc
ac_add_options --enable-dtrace
ac_add_options --disable-debug
ac_add_options --enable-optimize
ac_add_options --disable-ipc
ac_add_options --disable-crashreporter
ac_add_options --disable-verify-mar

Reran ../configure and build/make:

...
cargo:rerun-if-changed=/home/michele/firefox-69.0.3/layout/style/ServoBindings.toml

--- stderr
/home/michele/firefox-69.0.3/build/dist/include/mozilla/Compiler.h:43:12: fatal error: 'cstddef' file not found
/home/michele/firefox-69.0.3/build/dist/include/mozilla/Compiler.h:43:12: fatal error: 'cstddef' file not found, err: true
thread 'main' panicked at 'Failed to generate bindings,
...
backtrace:
   0:     0x55e06f8011d4 - backtrace::backtrace::libunwind::trace::h65597d255cb1398b
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
   1:     0x55e06f8011d4 - backtrace::backtrace::trace_unsynchronized::hd4f479d7150ec4a0
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
   2:     0x55e06f8011d4 - std::sys_common::backtrace::_print_fmt::h015072984a2b172c
                               at src/libstd/sys_common/backtrace.rs:77
   3:     0x55e06f8011d4 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6df05d3335f32194
                               at src/libstd/sys_common/backtrace.rs:61
   4:     0x55e06f826d8c - core::fmt::write::h1f444f4312eb6c27
                               at src/libcore/fmt/mod.rs:1028
   5:     0x55e06f7fda77 - std::io::Write::write_fmt::h8d147888220078ef
                               at src/libstd/io/mod.rs:1412
   6:     0x55e06f80397e - std::sys_common::backtrace::_print::h8a6df0fa81d6af62
                               at src/libstd/sys_common/backtrace.rs:65
   7:     0x55e06f80397e - std::sys_common::backtrace::print::h6f05b4733407e509
                               at src/libstd/sys_common/backtrace.rs:50
   8:     0x55e06f80397e - std::panicking::default_hook::{{closure}}::h0d0a23bd02315dd8
                               at src/libstd/panicking.rs:188
   9:     0x55e06f803671 - std::panicking::default_hook::h8d15a9aecb4efac6
                               at src/libstd/panicking.rs:205
  10:     0x55e06f80407b - std::panicking::rust_panic_with_hook::hbe174577402a475d
                               at src/libstd/panicking.rs:464
  11:     0x55e06f803c1e - std::panicking::continue_panic_fmt::h4d855dad868accf3
                               at src/libstd/panicking.rs:373
  12:     0x55e06f803b5f - std::panicking::begin_panic_fmt::ha0f013e3301a9528
                               at src/libstd/panicking.rs:328
  13:     0x55e06f652088 - build_script_build::build_gecko::bindings::generate_structs::h4df1f9239008b81e
  14:     0x55e06f653c22 - build_script_build::main::h592c2632ee035748
  15:     0x55e06f63ad73 - std::rt::lang_start::{{closure}}::he119add682212c26
  16:     0x55e06f803aa3 - std::rt::lang_start_internal::{{closure}}::h6ea535ec5c50fc3e
                               at src/libstd/rt.rs:48
  17:     0x55e06f803aa3 - std::panicking::try::do_call::h631c6408dfccc6f5
                               at src/libstd/panicking.rs:287
  18:     0x55e06f80be8a - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:78
  19:     0x55e06f80461d - std::panicking::try::hab539b2d1255d635
                               at src/libstd/panicking.rs:265
  20:     0x55e06f80461d - std::panic::catch_unwind::hd5e0a26424bd7f34
                               at src/libstd/panic.rs:396
  21:     0x55e06f80461d - std::rt::lang_start_internal::h3bdc4c7d98181bf9
                               at src/libstd/rt.rs:47
  22:     0x55e06f6546a2 - main
  23:     0x7f327d1231e3 - __libc_start_main
  24:     0x55e06f6381be - _start
  25:                0x0 - <unknown>

warning: build failed, waiting for other jobs to finish...
error: build failed
make[3]: *** [/home/michele/firefox-69.0.3/config/makefiles/rust.mk:242: force-cargo-library-build] Error 101
make[3]: Leaving directory '/home/michele/firefox-69.0.3/build/toolkit/library/rust'
make[2]: *** [/home/michele/firefox-69.0.3/config/recurse.mk:74: toolkit/library/rust/target] Error 2
make[2]: Leaving directory '/home/michele/firefox-69.0.3/build'
make[1]: *** [/home/michele/firefox-69.0.3/config/recurse.mk:34: compile] Error 2
make[1]: Leaving directory '/home/michele/firefox-69.0.3/build'
make: *** [/home/michele/firefox-69.0.3/config/rules.mk:391: default] Error 2
michele@michele-VirtualBox:~/firefox-69.0.3/build$

Hey, does this look right (from config.status)??

    'CARGO': b'/home/michele/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo',
    'CBINDGEN': '/usr/bin/cbindgen',
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.