Closed
Bug 1347672
Opened 9 years ago
Closed 7 years ago
GCC 6: gfx/harfbuzz fails to build: memory/mozalloc/throw_gcc.h:137:74: error: 'snprintf' was not declared in this scope
Categories
(Core :: Memory Allocator, defect, P5)
Tracking
()
RESOLVED
DUPLICATE
of bug 1434447
| Tracking | Status | |
|---|---|---|
| firefox55 | --- | affected |
People
(Reporter: jbeich, Unassigned)
References
Details
Attachments
(1 file)
|
59 bytes,
text/x-review-board-request
|
Details |
harfbuzz has "#define _POSIX_C_SOURCE 199309L" which hides snprintf() declaration resulting in an error on POSIXly correct systems. libc++ manages to avoid it by not bootlegging <cstdlib> (thus "mozilla/throw_gcc.h") via <stdlib.h> in "hb-private.hh".
/usr/local/bin/g++6 -std=gnu++11 -o hb-blob.o -c -Iobjdir/dist/stl_wrappers -Iobjdir/dist/system_wrappers-include config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 '-DPACKAGE_VERSION="moz"' '-DPACKAGE_BUGREPORT="http://bugzilla.mozilla.org/"' -DHAVE_OT=1 -DHB_NO_MT -DHB_NO_UNICODE_FUNCS -UDEBUG -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -Igfx/harfbuzz/src -Iobjdir/gfx/harfbuzz/src -Iobjdir/dist/include -Iobjdir/dist/include/nspr -Iobjdir/dist/include/nss -fPIC -DMOZILLA_CLIENT -include objdir/mozilla-config.h -MD -MP -MF .deps/hb-blob.o.pp -Wall -Wc++11-compat -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++14-compat -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wformat -fno-exceptions -fno-strict-aliasing -fno-rtti -fno-exceptions -fno-math-errno -pipe -O -fno-omit-frame-pointer -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include gfx/harfbuzz/src/hb-blob.cc
In file included from objdir/dist/stl_wrappers/cstdlib:66:0,
from /usr/local/lib/gcc6/include/c++/stdlib.h:36,
from objdir/dist/system_wrappers/stdlib.h:3,
from gfx/harfbuzz/src/hb-private.hh:43,
from gfx/harfbuzz/src/hb-blob.cc:32:
objdir/dist/include/mozilla/throw_gcc.h: In function 'void std::__throw_system_error(int)':
objdir/dist/include/mozilla/throw_gcc.h:137:74: error: 'snprintf' was not declared in this scope
"fatal: STL threw system_error: %s (%d)", strerror(err), err);
^
Also affects GCC 7.0.1 but not 5.4.0, 4.9.4, 4.8.5, 4.7.4, 4.6.4.
Blocks: 1316555
Summary: gfx/harfbuzz fails to build: memory/mozalloc/throw_gcc.h:137:74: error: 'snprintf' was not declared in this scope → GCC 6: gfx/harfbuzz fails to build: memory/mozalloc/throw_gcc.h:137:74: error: 'snprintf' was not declared in this scope
Oops, bug 1316555 is tracking runtime.
No longer blocks: 1316555
| Comment hidden (mozreview-request) |
Comment 4•9 years ago
|
||
| mozreview-review | ||
Comment on attachment 8847773 [details]
Bug 1347672 - Unbreak build on FreeBSD with GCC 6 or later.
https://reviewboard.mozilla.org/r/120692/#review127076
I'd rather move the snprintf call to mozalloc_abort.cpp.
Attachment #8847773 -
Flags: review?(mh+mozilla)
Comment on attachment 8847773 [details]
Bug 1347672 - Unbreak build on FreeBSD with GCC 6 or later.
https://reviewboard.mozilla.org/r/120692/#review127076
snprintf requires mutable char[] but mozalloc_abort has const argument. Do you mean to change the prototype, pass error code as string only to turn it back into an integer or drop integer representation?
| Comment hidden (mozreview-request) |
Comment 7•9 years ago
|
||
| mozreview-review | ||
Comment on attachment 8847773 [details]
Bug 1347672 - Unbreak build on FreeBSD with GCC 6 or later.
https://reviewboard.mozilla.org/r/120692/#review129666
::: memory/mozalloc/mozalloc_abort.cpp:25
(Diff revision 2)
>
> void
> mozalloc_abort(const char* const msg)
> {
> + char error[128];
> + snprintf(error, sizeof(error)-1, "fatal: STL threw system_error: %s", msg);
You're changing the output for other uses of mozalloc_abort. Add a new function that takes two strings. While here, also check the return value from snprintf and just output the strerror in that case.
Attachment #8847773 -
Flags: review?(mh+mozilla)
Comment 8•9 years ago
|
||
Also please change the commit message to describe what the change is.
| Reporter | ||
Comment 10•7 years ago
|
||
No. Builds fine with GCC 9.1.0.
https://github.com/harfbuzz/harfbuzz/commit/e3a15d0c6d08
Status: NEW → RESOLVED
Closed: 7 years ago
Flags: needinfo?(jbeich)
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•