author | Mike Hommey <mh+mozilla@glandium.org> |
Wed, 29 Oct 2014 13:29:42 +0900 | |
changeset 212817 | afdcad4e027ea8cf14ee4e5ce4e0420e2c9cb2bf |
parent 212816 | 2afd2caa8f743b458dba4538ba57025128059541 |
child 212818 | 48e14dd621bcb55c8d0676d3515d3990de25992e |
push id | 27730 |
push user | cbook@mozilla.com |
push date | Wed, 29 Oct 2014 12:26:03 +0000 |
treeherder | mozilla-central@fe5c1cb8075a [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | mshal |
bugs | 1090107 |
milestone | 36.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/build/autoconf/android.m4 +++ b/build/autoconf/android.m4 @@ -235,17 +235,16 @@ if test "$OS_TARGET" = "Android" -a -z " # android-ndk-r5c, android-ndk-r6, android-ndk-r6b STLPORT_CPPFLAGS="-I$android_ndk/sources/cxx-stl/gnu-libstdc++/include -I$android_ndk/sources/cxx-stl/gnu-libstdc++/libs/$ANDROID_CPU_ARCH/include" STLPORT_LIBS="-L$android_ndk/sources/cxx-stl/gnu-libstdc++/libs/$ANDROID_CPU_ARCH/ -lstdc++" else AC_MSG_ERROR([Couldn't find path to gnu-libstdc++ in the android ndk]) fi else STLPORT_CPPFLAGS="-isystem $_topsrcdir/build/stlport/stlport -isystem $_topsrcdir/build/stlport/overrides -isystem $android_ndk/sources/cxx-stl/system/include" - STLPORT_LIBS="$_objdir/build/stlport/libstlport_static.a -static-libstdc++" fi fi CXXFLAGS="$CXXFLAGS $STLPORT_CPPFLAGS" fi AC_SUBST([MOZ_ANDROID_LIBSTDCXX]) AC_SUBST([STLPORT_LIBS]) ])
--- a/build/stlport/moz.build +++ b/build/stlport/moz.build @@ -1,15 +1,21 @@ # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- # vim: set filetype=python: # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -Library('stlport_static') +Library('stlport') +# Keep the same name as the NDK-provided library, while using a shorter +# name for the Library for convenience in moz.build. +STATIC_LIBRARY_NAME = 'stlport_static' + +if not CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk': + OS_LIBS += ['-static-libstdc++'] FORCE_STATIC_LIB = True SOURCES += [ 'src/allocators.cpp', 'src/bitset.cpp', 'src/codecvt.cpp', 'src/collate.cpp',
--- a/build/templates.mozbuild +++ b/build/templates.mozbuild @@ -1,68 +1,80 @@ # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- # vim: set filetype=python: # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. @template -def StdCppCompat(): - '''Template for libstdc++ compatibility for target binaries.''' +def Binary(): + '''Generic template for target binaries. Meant to be used by other + templates.''' if CONFIG['MOZ_LIBSTDCXX_TARGET_VERSION']: USE_LIBS += ['stdc++compat'] + # Ideally, we'd support not adding this to the LIB_IS_C_ONLY case, + # but that variable is actually only set in db/sqlite/src, which + # doesn't build a shared library on the relevant platforms anyways. + # Eventually, though, we should detect LIB_IS_C_ONLY based on the + # associated SOURCES (and there might actually be places where we + # haven't set it but should have). + if CONFIG['STLPORT_LIBS']: + OS_LIBS += [CONFIG['STLPORT_LIBS']] + elif CONFIG['OS_TARGET'] == 'Android': + USE_LIBS += ['stlport'] + @template def Program(name): '''Template for program executables.''' PROGRAM = name - StdCppCompat() + Binary() @template def SimplePrograms(names, ext='.cpp'): '''Template for simple program executables. Those have a single source with the same base name as the executable. ''' SIMPLE_PROGRAMS += names SOURCES += ['%s%s' % (name, ext) for name in names] - StdCppCompat() + Binary() @template def CppUnitTests(names, ext='.cpp'): '''Template for C++ unit tests. Those have a single source with the same base name as the executable. ''' CPP_UNIT_TESTS += names SOURCES += ['%s%s' % (name, ext) for name in names] - StdCppCompat() + Binary() @template def Library(name): '''Template for libraries.''' LIBRARY_NAME = name @template def SharedLibrary(name): '''Template for shared libraries.''' Library(name) FORCE_SHARED_LIB = True - StdCppCompat() + Binary() @template def Framework(name): '''Template for OSX Frameworks.''' SharedLibrary(name) IS_FRAMEWORK = True
--- a/config/rules.mk +++ b/config/rules.mk @@ -691,17 +691,17 @@ ifdef MSMANIFEST_TOOL fi endif # MSVC with manifest tool ifdef MOZ_PROFILE_GENERATE # touch it a few seconds into the future to work around FAT's # 2-second granularity touch -t `date +%Y%m%d%H%M.%S -d 'now+5seconds'` pgo.relink endif else # !WINNT || GNU_CC - $(EXPAND_CCC) -o $@ $(CXXFLAGS) $(PROGOBJS) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(WRAP_LDFLAGS) $(STATIC_LIBS) $(MOZ_PROGRAM_LDFLAGS) $(SHARED_LIBS) $(EXTRA_LIBS) $(OS_LIBS) $(BIN_FLAGS) $(EXE_DEF_FILE) $(STLPORT_LIBS) + $(EXPAND_CCC) -o $@ $(CXXFLAGS) $(PROGOBJS) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(WRAP_LDFLAGS) $(STATIC_LIBS) $(MOZ_PROGRAM_LDFLAGS) $(SHARED_LIBS) $(EXTRA_LIBS) $(OS_LIBS) $(BIN_FLAGS) $(EXE_DEF_FILE) $(call CHECK_BINARY,$@) endif # WINNT && !GNU_CC ifdef ENABLE_STRIP $(STRIP) $(STRIP_FLAGS) $@ endif ifdef MOZ_POST_PROGRAM_COMMAND $(MOZ_POST_PROGRAM_COMMAND) $@ @@ -747,17 +747,17 @@ ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH)) $(EXPAND_LD) -nologo -out:$@ -pdb:$(LINK_PDBFILE) $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(MOZ_PROGRAM_LDFLAGS) $(STATIC_LIBS) $(SHARED_LIBS) $(EXTRA_LIBS) $(OS_LIBS) ifdef MSMANIFEST_TOOL @if test -f $@.manifest; then \ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \ rm -f $@.manifest; \ fi endif # MSVC with manifest tool else - $(EXPAND_CCC) $(CXXFLAGS) -o $@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(WRAP_LDFLAGS) $(STATIC_LIBS) $(MOZ_PROGRAM_LDFLAGS) $(SHARED_LIBS) $(EXTRA_LIBS) $(OS_LIBS) $(BIN_FLAGS) $(STLPORT_LIBS) + $(EXPAND_CCC) $(CXXFLAGS) -o $@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(WRAP_LDFLAGS) $(STATIC_LIBS) $(MOZ_PROGRAM_LDFLAGS) $(SHARED_LIBS) $(EXTRA_LIBS) $(OS_LIBS) $(BIN_FLAGS) $(call CHECK_BINARY,$@) endif # WINNT && !GNU_CC ifdef ENABLE_STRIP $(STRIP) $(STRIP_FLAGS) $@ endif ifdef MOZ_POST_PROGRAM_COMMAND $(MOZ_POST_PROGRAM_COMMAND) $@ @@ -829,20 +829,20 @@ endif $(REPORT_BUILD) ifndef INCREMENTAL_LINKER $(RM) $@ endif ifdef DTRACE_LIB_DEPENDENT ifndef XP_MACOSX dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS)) endif - $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(MOZILLA_PROBE_LIBS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(STATIC_LIBS) $(SHARED_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(EXTRA_LIBS) $(OS_LIBS) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS)) + $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(MOZILLA_PROBE_LIBS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(STATIC_LIBS) $(SHARED_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(EXTRA_LIBS) $(OS_LIBS) $(SHLIB_LDENDFILE) @$(RM) $(DTRACE_PROBE_OBJ) else # ! DTRACE_LIB_DEPENDENT - $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(STATIC_LIBS) $(SHARED_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(EXTRA_LIBS) $(OS_LIBS) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS)) + $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(STATIC_LIBS) $(SHARED_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(EXTRA_LIBS) $(OS_LIBS) $(SHLIB_LDENDFILE) endif # DTRACE_LIB_DEPENDENT $(call CHECK_BINARY,$@) ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH)) ifdef MSMANIFEST_TOOL ifdef EMBED_MANIFEST_AT @if test -f $@.manifest; then \ mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;$(EMBED_MANIFEST_AT); \
--- a/configure.in +++ b/configure.in @@ -224,17 +224,16 @@ if test -n "$gonkdir" ; then RANLIB="$gonk_toolchain_prefix"ranlib STRIP="$gonk_toolchain_prefix"strip OBJCOPY="$gonk_toolchain_prefix"objcopy if ! test -e "$gonkdir/ndk/sources/cxx-stl/stlport/src/iostream.cpp"; then AC_MSG_ERROR([Couldn't find path to stlport sources in the gonk tree]) fi STLPORT_CPPFLAGS="-I$_topsrcdir/build/stlport/stlport -I$gonkdir/ndk/sources/cxx-stl/system/include" - STLPORT_LIBS="$_objdir/build/stlport/libstlport_static.a" case "$target_cpu" in arm) ARCH_DIR=arch-arm ;; i?86) ARCH_DIR=arch-x86 ;; @@ -9055,18 +9054,16 @@ HAVE_STATVFS HAVE_STATFS64 HAVE_STATFS HAVE_SYS_STATVFS_H HAVE_SYS_STATFS_H HAVE_SYS_VFS_H HAVE_SYS_MOUNT_H " -AC_SUBST(STLPORT_LIBS) - dnl ======================================================== dnl ICU Support dnl ======================================================== # Internationalization isn't built or exposed by default in non-desktop # builds. Bugs to enable: # # Android: bug 864843
--- a/python/mozbuild/mozbuild/backend/recursivemake.py +++ b/python/mozbuild/mozbuild/backend/recursivemake.py @@ -1161,23 +1161,16 @@ INSTALL_TARGETS += %(prefix)s build_target != 'mozglue/build/target' and \ not obj.config.substs.get('JS_STANDALONE') and \ (not isinstance(obj, SharedLibrary) or obj.basename != 'clang-plugin'): self._compile_graph[build_target].add('mozglue/build/target') if obj.config.substs.get('MOZ_MEMORY'): self._compile_graph[build_target].add('memory/build/target') - # Until STLPORT_LIBS are properly handled in moz.build world, assume - # any program or shared library we build depends on it. - if obj.KIND == 'target' and not isinstance(obj, StaticLibrary) and \ - build_target != 'build/stlport/target' and \ - 'stlport' in obj.config.substs.get('STLPORT_LIBS'): - self._compile_graph[build_target].add('build/stlport/target') - for lib in obj.linked_libraries: if not isinstance(lib, ExternalLibrary): self._compile_graph[build_target].add( self._build_target_for_obj(lib)) relpath = pretty_relpath(lib) if isinstance(obj, Library): if isinstance(lib, StaticLibrary): backend_file.write_once('STATIC_LIBS += %s/%s\n'