Closed Bug 1269251 Opened 9 years ago Closed 9 years ago

Enable STL wrappers on Android

Categories

(Firefox Build System :: General, defect)

Unspecified
Android
defect
Not set
normal

Tracking

(firefox49 fixed)

RESOLVED FIXED
mozilla49
Tracking Status
firefox49 --- fixed

People

(Reporter: jbeich, Unassigned)

References

Details

Attachments

(1 file, 1 obsolete file)

Attached patch v1 (obsolete) — Splinter Review
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 on attachment 8747582 [details] [diff] [review] v1 Review of attachment 8747582 [details] [diff] [review]: ----------------------------------------------------------------- Sure.
Attachment #8747582 - Flags: feedback?(nfroyd) → feedback+
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+
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
(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)
(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.
Attachment #8747582 - Attachment is obsolete: true
Attachment #8753646 - Flags: review?(mh+mozilla)
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+
See Also: → 1274334
Keywords: checkin-needed
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla49
(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
Depends on: 1392604
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: