Closed
Bug 1269251
Opened 9 years ago
Closed 9 years ago
Enable STL wrappers on Android
Categories
(Firefox Build System :: General, defect)
Tracking
(firefox49 fixed)
RESOLVED
FIXED
mozilla49
Tracking | Status | |
---|---|---|
firefox49 | --- | fixed |
People
(Reporter: jbeich, Unassigned)
References
Details
Attachments
(1 file, 1 obsolete file)
793 bytes,
patch
|
glandium
:
review+
|
Details | Diff | Splinter Review |
After Android switches to libc++ it can use the same code as Linux. This should also help Tier3 with libc++ from regressing build.
vanilla: https://treeherder.mozilla.org/#/jobs?repo=try&revision=e1ba1be3a634
bug 1269171: https://treeherder.mozilla.org/#/jobs?repo=try&revision=1fe4c1b1d1a6
bug 1259537: https://treeherder.mozilla.org/#/jobs?repo=try&revision=d1f6ad2262b7
Attachment #8747582 -
Flags: review?(mh+mozilla)
Attachment #8747582 -
Flags: feedback?(nfroyd)
This bug is mainly about dogfooding. For OS X one may need to investigate the relationship between -Idist/system_wrappers (bug 273336) and -Idist/stl_wrappers (bug 551254).
If there's no actual benefit I'll make Bitrig, FreeBSD and (unlikely) Linux with libc++ flee from STL wrappers as well. Tier3 has to follow Tier1 closely in order to survive: OS X and Android are soon to converge on libc++ but both don't use STL wrappers which sends a message (for new platforms) they're only supported with libstdc++.
![]() |
||
Comment 2•9 years ago
|
||
Comment on attachment 8747582 [details] [diff] [review]
v1
Review of attachment 8747582 [details] [diff] [review]:
-----------------------------------------------------------------
Sure.
Attachment #8747582 -
Flags: feedback?(nfroyd) → feedback+
Comment 3•9 years ago
|
||
Comment on attachment 8747582 [details] [diff] [review]
v1
Review of attachment 8747582 [details] [diff] [review]:
-----------------------------------------------------------------
::: old-configure.in
@@ +1672,5 @@
> esac
> fi # GNU_CC
>
> case "${OS_TARGET}" in
> +WINNT|Darwin)
We should probably enable it on OSX too. Note it's already enabled on Windows with MSVC, cf. the test for MOZ_MSVC_STL_WRAP_RAISE. I'm not sure why we're not enabling this for mingw GCC too...
Attachment #8747582 -
Flags: review?(mh+mozilla) → review+
Comment 4•9 years ago
|
||
Georg, was it you doing mingw GCC builds of Tor browser? If so, would you mind testing if removing the case for WINNT (see patch attached to this bug) works for you, and if not, report how it fails?
Flags: needinfo?(gk)
(In reply to Mike Hommey [:glandium] from comment #3)
> We should probably enable it on OSX too.
OS X needs more work. Bug 1269790 obsoleted bug 1246743, so I assume OS X uses libc++ now.
python2.7 /m-c/sccache/sccache.py /m-c/clang/bin/clang++ -arch x86_64 -std=gnu++11 -o TextureImageCGL.o -c -I/obj/dist/stl_wrappers -fvisibility=hidden -fvisibility-inlines-hidden -DNDEBUG=1 -DTRIMMED=1 -DOS_POSIX=1 -DOS_MACOSX=1 -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/m-c/gfx/gl -I/obj/gfx/gl -I/obj/ipc/ipdl/_ipdlheaders -I/m-c/ipc/chromium/src -I/m-c/ipc/glue -I/m-c/gfx/skia -I/m-c/gfx/skia/skia/include/config -I/m-c/gfx/skia/skia/include/core -I/m-c/gfx/skia/skia/include/gpu -I/m-c/gfx/skia/skia/include/utils -I/obj/dist/include -I/obj/dist/include/nspr -I/obj/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /obj/mozilla-config.h -MD -MP -MF .deps/TextureImageCGL.o.pp -Qunused-arguments -Qunused-arguments -Wall -Wc++11-compat -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wc++11-compat-pedantic -Wc++14-compat -Wc++14-compat-pedantic -Wc++1z-compat -Wclass-varargs -Wimplicit-fallthrough -Wloop-analysis -Werror=non-literal-null-conversion -Wthread-safety -Wno-invalid-offsetof -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-unknown-warning-option -Wno-return-type-c-linkage -isysroot /Developer/SDKs/MacOSX10.7.sdk -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -O3 -fno-omit-frame-pointer -Werror -I/obj/dist/include/cairo -Wshadow -fobjc-exceptions /m-c/gfx/gl/TextureImageCGL.mm
In file included from /m-c/gfx/gl/GLContextProviderCGL.mm:6:
In file included from /m-c/gfx/gl/GLContextProvider.h:13:
In file included from /obj/dist/include/nsSize.h:11:
In file included from /obj/dist/include/mozilla/gfx/Point.h:13:
In file included from /obj/dist/include/mozilla/gfx/BasePoint.h:10:
/obj/dist/stl_wrappers/ostream:14:4: error: "STL code can only be used with -fno-exceptions"
# error "STL code can only be used with -fno-exceptions"
^
https://treeherder.mozilla.org/#/jobs?repo=try&revision=7a8ded113b94
Comment 6•9 years ago
|
||
(In reply to Mike Hommey [:glandium] from comment #4)
> Georg, was it you doing mingw GCC builds of Tor browser? If so, would you
> mind testing if removing the case for WINNT (see patch attached to this bug)
> works for you, and if not, report how it fails?
Yes and, yes, I can do that. I put it on my ToDo list for next week.
Flags: needinfo?(gk)
Comment 7•9 years ago
|
||
(In reply to Georg Koppen from comment #6)
> (In reply to Mike Hommey [:glandium] from comment #4)
> > Georg, was it you doing mingw GCC builds of Tor browser? If so, would you
> > mind testing if removing the case for WINNT (see patch attached to this bug)
> > works for you, and if not, report how it fails?
>
> Yes and, yes, I can do that. I put it on my ToDo list for next week.
Removing "WINNT|" still allows me to cross-compile with mingw-w64/GCC.
Fresh Try build after bug 1269171 (different version):
https://treeherder.mozilla.org/#/jobs?repo=try&revision=082bc67b662b
Attachment #8747582 -
Attachment is obsolete: true
Attachment #8753646 -
Flags: review?(mh+mozilla)
Comment 10•9 years ago
|
||
Comment on attachment 8753646 [details] [diff] [review]
v2 (android + windows/mingw)
Review of attachment 8753646 [details] [diff] [review]:
-----------------------------------------------------------------
Can you file a followup for OSX, possibly with a copy/paste of the errors that show up when trying that?
Attachment #8753646 -
Flags: review?(mh+mozilla) → review+
Keywords: checkin-needed
Comment 11•9 years ago
|
||
Keywords: checkin-needed
Comment 12•9 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla49
Comment 13•9 years ago
|
||
(In reply to Georg Koppen from comment #7)
> (In reply to Georg Koppen from comment #6)
> > (In reply to Mike Hommey [:glandium] from comment #4)
> > > Georg, was it you doing mingw GCC builds of Tor browser? If so, would you
> > > mind testing if removing the case for WINNT (see patch attached to this bug)
> > > works for you, and if not, report how it fails?
> >
> > Yes and, yes, I can do that. I put it on my ToDo list for next week.
>
> Removing "WINNT|" still allows me to cross-compile with mingw-w64/GCC.
I get following errors
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `std::__throw_bad_exception()':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/src/c++11/../../../../../libstdc++-v3/src/c++11/functexcept.cc:55: multiple definition of `std::__throw_bad_exception()'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt21__throw_bad_exceptionv[_ZSt21__throw_bad_exceptionv]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_bad_alloc()'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt17__throw_bad_allocv[_ZSt17__throw_bad_allocv]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_bad_cast()'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt16__throw_bad_castv[_ZSt16__throw_bad_castv]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_bad_typeid()'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt18__throw_bad_typeidv[_ZSt18__throw_bad_typeidv]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_logic_error(char const*)'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt19__throw_logic_errorPKc[_ZSt19__throw_logic_errorPKc]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_domain_error(char const*)'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt20__throw_domain_errorPKc[_ZSt20__throw_domain_errorPKc]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_invalid_argument(char const*)'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt24__throw_invalid_argumentPKc[_ZSt24__throw_invalid_argumentPKc]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_length_error(char const*)'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt20__throw_length_errorPKc[_ZSt20__throw_length_errorPKc]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_out_of_range(char const*)'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt20__throw_out_of_rangePKc[_ZSt20__throw_out_of_rangePKc]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_runtime_error(char const*)'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt21__throw_runtime_errorPKc[_ZSt21__throw_runtime_errorPKc]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_range_error(char const*)'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt19__throw_range_errorPKc[_ZSt19__throw_range_errorPKc]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_overflow_error(char const*)'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt22__throw_overflow_errorPKc[_ZSt22__throw_overflow_errorPKc]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_underflow_error(char const*)'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt23__throw_underflow_errorPKc[_ZSt23__throw_underflow_errorPKc]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_ios_failure(char const*)'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt19__throw_ios_failurePKc[_ZSt19__throw_ios_failurePKc]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_system_error(int)'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt20__throw_system_errori[_ZSt20__throw_system_errori]+0x0): first defined here
/usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libstdc++.a(functexcept.o): In function `__exchange_and_add':
/builddir/build/BUILD/gcc-4.9.3/build_win64/x86_64-w64-mingw32/libstdc++-v3/include/ext/atomicity.h:49: multiple definition of `std::__throw_bad_function_call()'
../misc/TimeStamp.o:TimeStamp.cpp:(.text$_ZSt25__throw_bad_function_callv[_ZSt25__throw_bad_function_callv]+0x0): first defined here
Updated•7 years ago
|
Product: Core → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•