Firefox building error: mman.h:29:17: error: 'long type-name' is invalid

Viewed 24

I'm new to the Firefox building, when I use clang++ (version 10.0.0) to compile the Firefox (./mach build), I met the following error:

In file included from /../Firefox/xpcom/glue/MemUtils.cpp:13:
In file included from /../Firefox/obj-x86_64-pc-linux-gnu/dist/system_wrappers/sys/mman.h:3:
.mozbuild/sysroot-x86_64-linux-gnu/usr/include/x86_64-linux-gnu/sys/mman.h:29:17: error: 'long type-name' is invalid
typedef __off_t off_t;
                ^
/home/yzhai003/Firefox/Firefox-HexType/obj-x86_64-pc-linux-gnu/mozilla-config.h:208:15: note: expanded from macro 'off_t'
#define off_t long
              ^
In file included from /../Firefox/xpcom/glue/MemUtils.cpp:13:
In file included from /../Firefox/obj-x86_64-pc-linux-gnu/dist/system_wrappers/sys/mman.h:3:
/../.mozbuild/sysroot-x86_64-linux-gnu/usr/include/x86_64-linux-gnu/sys/mman.h:37:18: error: cannot combine with previous 'type-name' declaration specifier
typedef __mode_t mode_t;
                 ^
/../Firefox/obj-x86_64-pc-linux-gnu/mozilla-config.h:207:16: note: expanded from macro 'mode_t'
#define mode_t int
               ^
2 errors generated.

The problematic command looks like:

clang++ --sysroot /../.mozbuild/sysroot-x86_64-linux-gnu -std=gnu++17 -o MemUtils.o -c  -I/../Firefox/obj-x86_64-pc-linux-gnu/dist/system_wrappers -include /../Firefox/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DNDEBUG=1 -DTRIMMED=1 -DXPCOM_GLUE -I/../Firefox/xpcom/glue/standalone -I/../Firefox/obj-x86_64-pc-linux-gnu/xpcom/glue/standalone -I/../Firefox/xpcom/build -I/../Firefox/xpcom/threads -I/../Firefox/obj-x86_64-pc-linux-gnu/dist/include -I/../Firefox/obj-x86_64-pc-linux-gnu/dist/include/nspr -I/../Firefox/obj-x86_64-pc-linux-gnu/dist/include/nss -DMOZILLA_CLIENT -include /../Firefox/obj-x86_64-pc-linux-gnu/mozilla-config.h -Qunused-arguments -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wdeprecated-this-capture -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wc++2a-compat -Wenum-compare-conditional -Wno-ambiguous-reversed-operator -Wno-error=deprecated -Wno-error=deprecated-anon-enum-enum-conversion -Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated-enum-float-conversion -Wno-error=deprecated-this-capture -Wno-error=deprecated-volatile -Wcomma -Wimplicit-fallthrough -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wno-error=deprecated-copy -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wthread-safety -Wno-unknown-warning-option -fno-sized-deallocation -fno-aligned-new -fno-exceptions -fPIC -fno-rtti -fno-exceptions -fno-math-errno -pthread -pipe -lstdc++ -gdwarf-4 -O2 -fno-omit-frame-pointer -funwind-tables -I/../.mozbuild/sysroot-x86_64-linux-gnu/usr/include/glib-2.0 -I/../.mozbuild/sysroot-x86_64-linux-gnu/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/../.mozbuild/sysroot-x86_64-linux-gnu/usr/include -fexperimental-new-pass-manager -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/MemUtils.o.pp   /../Firefox/xpcom/glue/MemUtils.cpp

Anyone has hint to fix this problem?

0 Answers
Related