Closed Bug 1438120 Opened 3 years ago Closed 3 years ago

objdir/dom/bindings/AbortControllerBinding.cpp:29:58: error: 'OTHER' was not declared in this scope

Categories

(Core :: Gecko Profiler, defect)

Unspecified
FreeBSD
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla60
Tracking Status
firefox-esr52 --- unaffected
firefox58 --- unaffected
firefox59 --- unaffected
firefox60 --- fixed

People

(Reporter: jbeich, Assigned: jashank.jeremy)

References

Details

(Keywords: regression)

Attachments

(1 file)

$ c++ -v
FreeBSD clang version 6.0.0 (branches/release_60 324090) (based on LLVM 6.0.0)
Target: x86_64-unknown-freebsd12.0
Thread model: posix
InstalledDir: /usr/bin

$ echo "ac_add_options --disable-webrtc # bug 1437670 workaround" >>.mozconfig
$ ./mach build
[...]
gmake[1]: Entering directory 'obj-x86_64-unknown-freebsd12.0/dom/bindings'
c++ -o UnifiedBindings0.o -c -Iobj-x86_64-unknown-freebsd12.0/dist/stl_wrappers -Iobj-x86_64-unknown-freebsd12.0/dist/system_wrappers -include config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DOS_POSIX=1 -DOS_FREEBSD=1 -DOS_BSD=1 -DHAVE_SIDEBAR -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -Idom/bindings -Iobj-x86_64-unknown-freebsd12.0/dom/bindings -Iobj-x86_64-unknown-freebsd12.0/dist/include/mozilla/dom -Idom/base -Idom/battery -Idom/canvas -Idom/geolocation -Idom/html -Idom/indexedDB -Idom/media/webaudio -Idom/media/webspeech/recognition -Idom/svg -Idom/xbl -Idom/xml -Idom/xslt/base -Idom/xslt/xpath -Idom/xul -Ijs/xpconnect/src -Ijs/xpconnect/wrappers -Ilayout/generic -Ilayout/style -Ilayout/xul/tree -Imedia/mtransport -Imedia/webrtc -Imedia/webrtc/signaling/src/common/time_profiling -Imedia/webrtc/signaling/src/peerconnection -Imedia/webrtc/trunk -Iobj-x86_64-unknown-freebsd12.0/ipc/ipdl/_ipdlheaders -Iipc/chromium/src -Iipc/glue -Iobj-x86_64-unknown-freebsd12.0/dist/include -Iobj-x86_64-unknown-freebsd12.0/dist/include/nspr -Iobj-x86_64-unknown-freebsd12.0/dist/include/nss -fPIC -DMOZILLA_CLIENT -include obj-x86_64-unknown-freebsd12.0/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -I/usr/local/include -Qunused-arguments -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wloop-analysis -Wc++1z-compat -Wcomma -Wimplicit-fallthrough -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-exceptions -fno-strict-aliasing -fno-rtti -fno-exceptions -fno-math-errno -pipe -O -fno-omit-frame-pointer -Wno-error=shadow -Wno-maybe-uninitialized  -MD -MP -MF .deps/UnifiedBindings0.o.pp   obj-x86_64-unknown-freebsd12.0/dom/bindings/UnifiedBindings0.cpp
In file included from obj-x86_64-unknown-freebsd12.0/dom/bindings/UnifiedBindings0.cpp:14:
obj-x86_64-unknown-freebsd12.0/dom/bindings/AbortControllerBinding.cpp:29:58: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("get AbortController.signal", OTHER, cx);
                                                         ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AbortControllerBinding.cpp:61:53: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("AbortController.abort", OTHER, cx);
                                                    ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AbortControllerBinding.cpp:242:59: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("AbortController constructor", OTHER, cx);
                                                          ^
In file included from obj-x86_64-unknown-freebsd12.0/dom/bindings/UnifiedBindings0.cpp:26:
obj-x86_64-unknown-freebsd12.0/dom/bindings/AbortSignalBinding.cpp:35:55: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("get AbortSignal.aborted", OTHER, cx);
                                                      ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AbortSignalBinding.cpp:64:55: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("get AbortSignal.onabort", OTHER, cx);
                                                      ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AbortSignalBinding.cpp:83:55: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("set AbortSignal.onabort", OTHER, cx);
                                                      ^
In file included from obj-x86_64-unknown-freebsd12.0/dom/bindings/UnifiedBindings0.cpp:50:
obj-x86_64-unknown-freebsd12.0/dom/bindings/AccessibleNodeBinding.cpp:33:55: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("get AccessibleNode.role", OTHER, cx);
                                                      ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AccessibleNodeBinding.cpp:65:57: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("get AccessibleNode.states", OTHER, cx);
                                                        ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AccessibleNodeBinding.cpp:164:61: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("get AccessibleNode.attributes", OTHER, cx);
                                                            ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AccessibleNodeBinding.cpp:263:58: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("get AccessibleNode.DOMNode", OTHER, cx);
                                                         ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AccessibleNodeBinding.cpp:299:49: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("AccessibleNode.is", OTHER, cx);
                                                ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AccessibleNodeBinding.cpp:341:50: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("AccessibleNode.has", OTHER, cx);
                                                 ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AccessibleNodeBinding.cpp:383:50: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("AccessibleNode.get", OTHER, cx);
                                                 ^
In file included from obj-x86_64-unknown-freebsd12.0/dom/bindings/UnifiedBindings0.cpp:74:
obj-x86_64-unknown-freebsd12.0/dom/bindings/AddonEventBinding.cpp:227:49: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("get AddonEvent.id", OTHER, cx);
                                                ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AddonEventBinding.cpp:259:59: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("get AddonEvent.needsRestart", OTHER, cx);
                                                          ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AddonEventBinding.cpp:288:56: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("get AddonEvent.isTrusted", OTHER, cx);
                                                       ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AddonEventBinding.cpp:470:54: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("AddonEvent constructor", OTHER, cx);
                                                     ^
In file included from obj-x86_64-unknown-freebsd12.0/dom/bindings/UnifiedBindings0.cpp:86:
obj-x86_64-unknown-freebsd12.0/dom/bindings/AddonManagerBinding.cpp:222:44: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("get Addon.id", OTHER, cx);
                                           ^
obj-x86_64-unknown-freebsd12.0/dom/bindings/AddonManagerBinding.cpp:269:49: error: use of
      undeclared identifier 'OTHER'
  AUTO_PROFILER_LABEL_FAST("get Addon.version", OTHER, cx);
                                                ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]

Bisecting led to mozilla-central changeset 1236752bf224
Is OTHER actually js::ProfileEntry::Category::OTHER ?
https://searchfox.org/mozilla-central/rev/d03ad8843e3b/js/public/ProfilingStack.h#166
It looks like rev d2dea7eb260f introduced macro `AUTO_PROFILER_LABEL_FAST' to GeckoProfiler.h, which becomes valid code only when the Gecko profiler is enabled.  When it is not, it doesn't expand to the no-op that all the other `AUTO_PROFILER_LABEL' variants become.  Adding that no-op lets dom/bindings build for me.
Comment on attachment 8951496 [details] [diff] [review]
bz1438120-add-missing-profiler-symbol.patch

Thanks! This is the change that my patch was missing.
Attachment #8951496 - Flags: review+
Pushed by mstange@themasta.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/bf6a4f1f64c1
Fix non-MOZ_GECKO_PROFILER build by adding the missing AUTO_PROFILER_LABEL_FAST declaration. r=mstange
Assignee: nobody → jashank.jeremy
Status: NEW → ASSIGNED
Comment on attachment 8951496 [details] [diff] [review]
bz1438120-add-missing-profiler-symbol.patch

Kinda late but I confirm it fixed FreeBSD build.
Attachment #8951496 - Flags: feedback+
https://hg.mozilla.org/mozilla-central/rev/bf6a4f1f64c1
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla60
You need to log in before you can comment on or make changes to this bug.