Index: build/premake/extern_libs5.lua =================================================================== --- build/premake/extern_libs5.lua +++ build/premake/extern_libs5.lua @@ -534,9 +534,9 @@ }, spidermonkey = { compile_settings = function() - if _OPTIONS["with-system-mozjs45"] then + if _OPTIONS["with-system-mozjs52"] then if not _OPTIONS["android"] then - pkgconfig.add_includes("mozjs-45") + pkgconfig.add_includes("mozjs-52") end else if os.istarget("windows") then @@ -554,22 +554,27 @@ end end, link_settings = function() - if _OPTIONS["with-system-mozjs45"] then + if _OPTIONS["with-system-mozjs52"] then if _OPTIONS["android"] then - links { "mozjs-45" } + links { "mozjs-52" } else - pkgconfig.add_links("mozjs-45") + pkgconfig.add_links("mozjs-52") end else filter { "Debug", "action:vs2015" } - links { "mozjs45-ps-debug-vc140" } + links { "mozjs52-ps-debug-vc140" } filter { "Release", "action:vs2015" } - links { "mozjs45-ps-release-vc140" } + links { "mozjs52-ps-release-vc140" } filter { "Debug", "action:not vs*" } - links { "mozjs45-ps-debug" } + links { "mozjs52-ps-debug" } filter { "Release", "action:not vs*" } - links { "mozjs45-ps-release" } + links { "mozjs52-ps-release" } filter { } + + if os.istarget("macosx") then + links { "mozglue" } + end + add_source_lib_paths("spidermonkey") end end, Index: build/premake/premake5.lua =================================================================== --- build/premake/premake5.lua +++ build/premake/premake5.lua @@ -6,7 +6,7 @@ newoption { trigger = "jenkins-tests", description = "Configure CxxTest to use the XmlPrinter runner which produces Jenkins-compatible output" } newoption { trigger = "minimal-flags", description = "Only set compiler/linker flags that are really needed. Has no effect on Windows builds" } newoption { trigger = "outpath", description = "Location for generated project files" } -newoption { trigger = "with-system-mozjs45", description = "Search standard paths for libmozjs45, instead of using bundled copy" } +newoption { trigger = "with-system-mozjs52", description = "Search standard paths for libmozjs52, instead of using bundled copy" } newoption { trigger = "with-system-nvtt", description = "Search standard paths for nvidia-texture-tools library, instead of using bundled copy" } newoption { trigger = "without-audio", description = "Disable use of OpenAL/Ogg/Vorbis APIs" } newoption { trigger = "without-lobby", description = "Disable the use of gloox and the multiplayer lobby" } Index: libraries/osx/build-osx-libs.sh =================================================================== --- libraries/osx/build-osx-libs.sh +++ libraries/osx/build-osx-libs.sh @@ -48,12 +48,12 @@ SODIUM_VERSION="libsodium-1.0.18" # -------------------------------------------------------------- # Bundled with the game: -# * SpiderMonkey 45 +# * SpiderMonkey 52 # * NVTT # * FCollada # -------------------------------------------------------------- # We use suffixes here in order to force rebuilding when patching these libs -SPIDERMONKEY_VERSION="mozjs-45.0.2+wildfiregames.2" +SPIDERMONKEY_VERSION="mozjs-52.9.1+wildfiregames.1" NVTT_VERSION="nvtt-2.1.1+wildfiregames.1" FCOLLADA_VERSION="fcollada-3.05+wildfiregames.1" # -------------------------------------------------------------- @@ -925,7 +925,7 @@ echo -e "Building SpiderMonkey..." LIB_VERSION="${SPIDERMONKEY_VERSION}" -LIB_DIRECTORY="mozjs-45.0.2" +LIB_DIRECTORY="mozjs-52.9.1pre1" LIB_ARCHIVE="$LIB_DIRECTORY.tar.bz2" pushd ../source/spidermonkey/ > /dev/null @@ -956,8 +956,6 @@ --disable-shared-js --disable-jemalloc --without-intl-api" - # Change the default location where the tracelogger should store its output, which is /tmp/ on OSX. - TLCXXFLAGS='-DTRACE_LOG_DIR="\"../../source/tools/tracelogger/\""' if [[ $MIN_OSX_VERSION && ${MIN_OSX_VERSION-_} ]]; then CONF_OPTS="$CONF_OPTS --enable-macos-target=$MIN_OSX_VERSION" fi @@ -966,14 +964,13 @@ fi # We want separate debug/release versions of the library, so change their install name in the Makefile - perl -i.bak -pe 's/(^STATIC_LIBRARY_NAME\s+=).*/$1'\''mozjs45-ps-debug'\''/' moz.build + perl -i.bak -pe 's/(^STATIC_LIBRARY_NAME\s+=).*/$1'\''mozjs52-ps-debug'\''/' moz.build mkdir -p build-debug pushd build-debug - (CC="clang" CXX="clang++" CXXFLAGS="${TLCXXFLAGS}" AR=ar CROSS_COMPILE=1 \ + (CC="clang" CXX="clang++" AR=ar CROSS_COMPILE=1 \ ../configure $CONF_OPTS \ --enable-debug \ --disable-optimize \ - --enable-js-diagnostics \ --enable-gczeal \ && make ${JOBS}) || die "SpiderMonkey build failed" # js-config.h is different for debug and release builds, so we need different include directories for both @@ -984,10 +981,10 @@ popd mv moz.build.bak moz.build - perl -i.bak -pe 's/(^STATIC_LIBRARY_NAME\s+=).*/$1'\''mozjs45-ps-release'\''/' moz.build + perl -i.bak -pe 's/(^STATIC_LIBRARY_NAME\s+=).*/$1'\''mozjs52-ps-release'\''/' moz.build mkdir -p build-release pushd build-release - (CC="clang" CXX="clang++" CXXFLAGS="${TLCXXFLAGS}" AR=ar CROSS_COMPILE=1 \ + (CC="clang" CXX="clang++" AR=ar CROSS_COMPILE=1 \ ../configure $CONF_OPTS \ --enable-optimize \ && make ${JOBS}) || die "SpiderMonkey build failed" @@ -998,7 +995,7 @@ cp js/src/*.a $INSTALL_DIR/lib popd mv moz.build.bak moz.build - + popd echo "$LIB_VERSION" > .already-built else Index: libraries/source/spidermonkey/DisableGCC9WerrorFormat.diff =================================================================== --- /dev/null +++ libraries/source/spidermonkey/DisableGCC9WerrorFormat.diff @@ -0,0 +1,26 @@ +diff --git a/js/src/moz.build b/js/src/moz.build +--- a/js/src/moz.build 2020-07-16 11:42:39.578932510 +0200 ++++ b/js/src/moz.build 2020-07-16 11:45:18.937079912 +0200 +@@ -785,7 +785,7 @@ + DEFINES['FFI_BUILDING'] = True + + if CONFIG['GNU_CXX']: +- CXXFLAGS += ['-Wno-shadow', '-Werror=format'] ++ CXXFLAGS += ['-Wno-shadow'] + + # Suppress warnings in third-party code. + if CONFIG['CLANG_CXX']: +diff --git a/js/src/shell/moz.build b/js/src/shell/moz.build +--- a/js/src/shell/moz.build 2020-07-16 11:46:16.786621311 +0200 ++++ b/js/src/shell/moz.build 2020-07-16 11:46:35.616493037 +0200 +@@ -51,7 +51,7 @@ + ] + + if CONFIG['GNU_CXX']: +- CXXFLAGS += ['-Wno-shadow', '-Werror=format'] ++ CXXFLAGS += ['-Wno-shadow'] + + # This is intended as a temporary workaround to enable VS2015. + if CONFIG['_MSC_VER']: + + Index: libraries/source/spidermonkey/ExportJSPropertyDescriptor.diff =================================================================== --- libraries/source/spidermonkey/ExportJSPropertyDescriptor.diff +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/js/src/jsapi.h b/js/src/jsapi.h -index 29406243..2370457f 100644 ---- a/js/src/jsapi.h -+++ b/js/src/jsapi.h -@@ -2399,7 +2399,7 @@ JS_FreezeObject(JSContext* cx, JS::Handle obj); - - /*** Property descriptors ************************************************************************/ - --struct JSPropertyDescriptor : public JS::Traceable { -+struct JS_PUBLIC_API(JSPropertyDescriptor) : public JS::Traceable { - JSObject* obj; - unsigned attrs; - JSGetterOp getter; -diff --git a/js/src/jspubtd.h b/js/src/jspubtd.h -index ba592525..3c185527 100644 ---- a/js/src/jspubtd.h -+++ b/js/src/jspubtd.h -@@ -97,7 +97,7 @@ struct JSFunctionSpec; - struct JSLocaleCallbacks; - struct JSObjectMap; - struct JSPrincipals; --struct JSPropertyDescriptor; -+struct JS_PUBLIC_API(JSPropertyDescriptor); - struct JSPropertyName; - struct JSPropertySpec; - struct JSRuntime; Index: libraries/source/spidermonkey/FixLinking.diff =================================================================== --- libraries/source/spidermonkey/FixLinking.diff +++ /dev/null @@ -1,49 +0,0 @@ -From dcf520da15d940c900d7e8ffd5a9b05427c54dc8 Mon Sep 17 00:00:00 2001 -From: Philip Chimento -Date: Wed, 5 Jul 2017 22:47:44 -0700 -Subject: [PATCH 4/9] headers: Fix symbols visibility - -Some symbols that need to be public are not marked as such. ---- - js/public/Utility.h | 2 +- - js/src/jsalloc.h | 4 +++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/js/public/Utility.h b/js/public/Utility.h -index 75214c32..f50fd8dd 100644 ---- a/js/public/Utility.h -+++ b/js/public/Utility.h -@@ -77,7 +77,7 @@ enum ThreadType { - # if defined(DEBUG) || defined(JS_OOM_BREAKPOINT) - extern bool InitThreadType(void); - extern void SetThreadType(ThreadType); --extern uint32_t GetThreadType(void); -+extern JS_FRIEND_API(uint32_t) GetThreadType(void); - # else - inline bool InitThreadType(void) { return true; } - inline void SetThreadType(ThreadType t) {}; -diff --git a/js/src/jsalloc.h b/js/src/jsalloc.h -index b9ae5190..234ea9dc 100644 ---- a/js/src/jsalloc.h -+++ b/js/src/jsalloc.h -@@ -17,6 +17,8 @@ - #include "js/TypeDecls.h" - #include "js/Utility.h" - -+extern JS_PUBLIC_API(void) JS_ReportOutOfMemory(JSContext* cx); -+ - namespace js { - - enum class AllocFunction { -@@ -130,7 +132,7 @@ class TempAllocPolicy - - bool checkSimulatedOOM() const { - if (js::oom::ShouldFailWithOOM()) { -- js::ReportOutOfMemory(reinterpret_cast(cx_)); -+ JS_ReportOutOfMemory(reinterpret_cast(cx_)); - return false; - } - --- -2.11.0 (Apple Git-81) - Index: libraries/source/spidermonkey/FixMSVCBuild.diff =================================================================== --- /dev/null +++ libraries/source/spidermonkey/FixMSVCBuild.diff @@ -0,0 +1,447 @@ + +# HG changeset patch +# User Vladimir Vukicevic +# Date 1479240485 21600 +# Node ID 9822e0525b82bcca19078eab6532c8972977a156 +# Parent 07fa89dfac8390c8529181cbf818b6e5c1a75bf1 +Bug 1300925 - Change Intl.cpp stubs to an anonymous namespace. r=Waldo + +MozReview-Commit-ID: 9Ed1gglWsby + +diff --git a/js/src/builtin/Intl.cpp b/js/src/builtin/Intl.cpp +--- a/js/src/builtin/Intl.cpp ++++ b/js/src/builtin/Intl.cpp +@@ -69,26 +69,28 @@ using mozilla::PodCopy; + * against ICU. However, we still want to compile this code in order to prevent + * bit rot. The following stub implementations for ICU functions make this + * possible. The functions using them should never be called, so they assert + * and return error codes. Signatures adapted from ICU header files locid.h, + * numsys.h, ucal.h, ucol.h, udat.h, udatpg.h, uenum.h, unum.h; see the ICU + * directory for license. + */ + ++namespace { ++ + typedef bool UBool; + typedef char16_t UChar; + typedef double UDate; + + enum UErrorCode { + U_ZERO_ERROR, + U_BUFFER_OVERFLOW_ERROR, + }; + +-static inline UBool ++inline UBool + U_FAILURE(UErrorCode code) + { + MOZ_CRASH("U_FAILURE: Intl API disabled"); + } + + inline const UChar* + Char16ToUChar(const char16_t* chars) + { +@@ -96,37 +98,37 @@ Char16ToUChar(const char16_t* chars) + } + + inline UChar* + Char16ToUChar(char16_t* chars) + { + MOZ_CRASH("Char16ToUChar: Intl API disabled"); + } + +-static int32_t ++int32_t + u_strlen(const UChar* s) + { + MOZ_CRASH("u_strlen: Intl API disabled"); + } + + struct UEnumeration; + +-static int32_t ++int32_t + uenum_count(UEnumeration* en, UErrorCode* status) + { + MOZ_CRASH("uenum_count: Intl API disabled"); + } + +-static const char* ++const char* + uenum_next(UEnumeration* en, int32_t* resultLength, UErrorCode* status) + { + MOZ_CRASH("uenum_next: Intl API disabled"); + } + +-static void ++void + uenum_close(UEnumeration* en) + { + MOZ_CRASH("uenum_close: Intl API disabled"); + } + + struct UCollator; + + enum UColAttribute { +@@ -151,54 +153,54 @@ enum UColAttributeValue { + }; + + enum UCollationResult { + UCOL_EQUAL = 0, + UCOL_GREATER = 1, + UCOL_LESS = -1 + }; + +-static int32_t ++int32_t + ucol_countAvailable() + { + MOZ_CRASH("ucol_countAvailable: Intl API disabled"); + } + +-static const char* ++const char* + ucol_getAvailable(int32_t localeIndex) + { + MOZ_CRASH("ucol_getAvailable: Intl API disabled"); + } + +-static UCollator* ++UCollator* + ucol_open(const char* loc, UErrorCode* status) + { + MOZ_CRASH("ucol_open: Intl API disabled"); + } + +-static void ++void + ucol_setAttribute(UCollator* coll, UColAttribute attr, UColAttributeValue value, UErrorCode* status) + { + MOZ_CRASH("ucol_setAttribute: Intl API disabled"); + } + +-static UCollationResult ++UCollationResult + ucol_strcoll(const UCollator* coll, const UChar* source, int32_t sourceLength, + const UChar* target, int32_t targetLength) + { + MOZ_CRASH("ucol_strcoll: Intl API disabled"); + } + +-static void ++void + ucol_close(UCollator* coll) + { + MOZ_CRASH("ucol_close: Intl API disabled"); + } + +-static UEnumeration* ++UEnumeration* + ucol_getKeywordValuesForLocale(const char* key, const char* locale, UBool commonlyUsed, + UErrorCode* status) + { + MOZ_CRASH("ucol_getKeywordValuesForLocale: Intl API disabled"); + } + + struct UParseError; + struct UFieldPosition; +@@ -227,76 +229,76 @@ enum UNumberFormatAttribute { + UNUM_MIN_SIGNIFICANT_DIGITS, + UNUM_MAX_SIGNIFICANT_DIGITS, + }; + + enum UNumberFormatTextAttribute { + UNUM_CURRENCY_CODE, + }; + +-static int32_t ++int32_t + unum_countAvailable() + { + MOZ_CRASH("unum_countAvailable: Intl API disabled"); + } + +-static const char* ++const char* + unum_getAvailable(int32_t localeIndex) + { + MOZ_CRASH("unum_getAvailable: Intl API disabled"); + } + +-static UNumberFormat* ++UNumberFormat* + unum_open(UNumberFormatStyle style, const UChar* pattern, int32_t patternLength, + const char* locale, UParseError* parseErr, UErrorCode* status) + { + MOZ_CRASH("unum_open: Intl API disabled"); + } + +-static void ++void + unum_setAttribute(UNumberFormat* fmt, UNumberFormatAttribute attr, int32_t newValue) + { + MOZ_CRASH("unum_setAttribute: Intl API disabled"); + } + +-static int32_t ++int32_t + unum_formatDouble(const UNumberFormat* fmt, double number, UChar* result, + int32_t resultLength, UFieldPosition* pos, UErrorCode* status) + { + MOZ_CRASH("unum_formatDouble: Intl API disabled"); + } + +-static void ++void + unum_close(UNumberFormat* fmt) + { + MOZ_CRASH("unum_close: Intl API disabled"); + } + +-static void ++void + unum_setTextAttribute(UNumberFormat* fmt, UNumberFormatTextAttribute tag, const UChar* newValue, + int32_t newValueLength, UErrorCode* status) + { + MOZ_CRASH("unum_setTextAttribute: Intl API disabled"); + } + + typedef void* UNumberingSystem; + +-static UNumberingSystem* ++UNumberingSystem* + unumsys_open(const char* locale, UErrorCode* status) + { + MOZ_CRASH("unumsys_open: Intl API disabled"); + } + +-static const char* ++const char* + unumsys_getName(const UNumberingSystem* unumsys) + { + MOZ_CRASH("unumsys_getName: Intl API disabled"); + } + +-static void ++void + unumsys_close(UNumberingSystem* unumsys) + { + MOZ_CRASH("unumsys_close: Intl API disabled"); + } + + typedef void* UCalendar; + + enum UCalendarType { +@@ -350,97 +352,97 @@ enum UCalendarDateFields { + UCAL_EXTENDED_YEAR, + UCAL_JULIAN_DAY, + UCAL_MILLISECONDS_IN_DAY, + UCAL_IS_LEAP_MONTH, + UCAL_FIELD_COUNT, + UCAL_DAY_OF_MONTH = UCAL_DATE + }; + +-static UCalendar* ++UCalendar* + ucal_open(const UChar* zoneID, int32_t len, const char* locale, + UCalendarType type, UErrorCode* status) + { + MOZ_CRASH("ucal_open: Intl API disabled"); + } + +-static const char* ++const char* + ucal_getType(const UCalendar* cal, UErrorCode* status) + { + MOZ_CRASH("ucal_getType: Intl API disabled"); + } + +-static UEnumeration* ++UEnumeration* + ucal_getKeywordValuesForLocale(const char* key, const char* locale, + UBool commonlyUsed, UErrorCode* status) + { + MOZ_CRASH("ucal_getKeywordValuesForLocale: Intl API disabled"); + } + +-static void ++void + ucal_close(UCalendar* cal) + { + MOZ_CRASH("ucal_close: Intl API disabled"); + } + +-static UCalendarWeekdayType ++UCalendarWeekdayType + ucal_getDayOfWeekType(const UCalendar *cal, UCalendarDaysOfWeek dayOfWeek, UErrorCode* status) + { + MOZ_CRASH("ucal_getDayOfWeekType: Intl API disabled"); + } + +-static int32_t ++int32_t + ucal_getAttribute(const UCalendar* cal, + UCalendarAttribute attr) + { + MOZ_CRASH("ucal_getAttribute: Intl API disabled"); + } + +-static int32_t ++int32_t + ucal_get(const UCalendar *cal, UCalendarDateFields field, UErrorCode *status) + { + MOZ_CRASH("ucal_get: Intl API disabled"); + } + +-static UEnumeration* ++UEnumeration* + ucal_openTimeZones(UErrorCode* status) + { + MOZ_CRASH("ucal_openTimeZones: Intl API disabled"); + } + +-static int32_t ++int32_t + ucal_getCanonicalTimeZoneID(const UChar* id, int32_t len, UChar* result, int32_t resultCapacity, + UBool* isSystemID, UErrorCode* status) + { + MOZ_CRASH("ucal_getCanonicalTimeZoneID: Intl API disabled"); + } + +-static int32_t ++int32_t + ucal_getDefaultTimeZone(UChar* result, int32_t resultCapacity, UErrorCode* status) + { + MOZ_CRASH("ucal_getDefaultTimeZone: Intl API disabled"); + } + + typedef void* UDateTimePatternGenerator; + +-static UDateTimePatternGenerator* ++UDateTimePatternGenerator* + udatpg_open(const char* locale, UErrorCode* pErrorCode) + { + MOZ_CRASH("udatpg_open: Intl API disabled"); + } + +-static int32_t ++int32_t + udatpg_getBestPattern(UDateTimePatternGenerator* dtpg, const UChar* skeleton, + int32_t length, UChar* bestPattern, int32_t capacity, + UErrorCode* pErrorCode) + { + MOZ_CRASH("udatpg_getBestPattern: Intl API disabled"); + } + +-static void ++void + udatpg_close(UDateTimePatternGenerator* dtpg) + { + MOZ_CRASH("udatpg_close: Intl API disabled"); + } + + typedef void* UCalendar; + typedef void* UDateFormat; + +@@ -486,87 +488,89 @@ enum UDateFormatField { + UDAT_FIELD_COUNT = 38 + }; + + enum UDateFormatStyle { + UDAT_PATTERN = -2, + UDAT_IGNORE = UDAT_PATTERN + }; + +-static int32_t ++int32_t + udat_countAvailable() + { + MOZ_CRASH("udat_countAvailable: Intl API disabled"); + } + +-static const char* ++const char* + udat_getAvailable(int32_t localeIndex) + { + MOZ_CRASH("udat_getAvailable: Intl API disabled"); + } + +-static UDateFormat* ++UDateFormat* + udat_open(UDateFormatStyle timeStyle, UDateFormatStyle dateStyle, const char* locale, + const UChar* tzID, int32_t tzIDLength, const UChar* pattern, + int32_t patternLength, UErrorCode* status) + { + MOZ_CRASH("udat_open: Intl API disabled"); + } + +-static const UCalendar* ++const UCalendar* + udat_getCalendar(const UDateFormat* fmt) + { + MOZ_CRASH("udat_getCalendar: Intl API disabled"); + } + +-static void ++void + ucal_setGregorianChange(UCalendar* cal, UDate date, UErrorCode* pErrorCode) + { + MOZ_CRASH("ucal_setGregorianChange: Intl API disabled"); + } + +-static int32_t ++int32_t + udat_format(const UDateFormat* format, UDate dateToFormat, UChar* result, + int32_t resultLength, UFieldPosition* position, UErrorCode* status) + { + MOZ_CRASH("udat_format: Intl API disabled"); + } + +-static int32_t ++int32_t + udat_formatForFields(const UDateFormat* format, UDate dateToFormat, + UChar* result, int32_t resultLength, UFieldPositionIterator* fpositer, + UErrorCode* status) + { + MOZ_CRASH("udat_formatForFields: Intl API disabled"); + } + +-static UFieldPositionIterator* ++UFieldPositionIterator* + ufieldpositer_open(UErrorCode* status) + { + MOZ_CRASH("ufieldpositer_open: Intl API disabled"); + } + +-static void ++void + ufieldpositer_close(UFieldPositionIterator* fpositer) + { + MOZ_CRASH("ufieldpositer_close: Intl API disabled"); + } + +-static int32_t ++int32_t + ufieldpositer_next(UFieldPositionIterator* fpositer, int32_t* beginIndex, int32_t* endIndex) + { + MOZ_CRASH("ufieldpositer_next: Intl API disabled"); + } + +-static void ++void + udat_close(UDateFormat* format) + { + MOZ_CRASH("udat_close: Intl API disabled"); + } + ++} // anonymous namespace ++ + #endif + + + /******************** Common to Intl constructors ********************/ + + static bool + IntlInitialize(JSContext* cx, HandleObject obj, Handle initializer, + HandleValue locales, HandleValue options) + Index: libraries/source/spidermonkey/FixMozglueStatic.diff =================================================================== --- libraries/source/spidermonkey/FixMozglueStatic.diff +++ libraries/source/spidermonkey/FixMozglueStatic.diff @@ -1,20 +1,68 @@ +From 4de4b45ff25690aabd5797928b66005555379ffa Mon Sep 17 00:00:00 2001 +From: Till Schneidereit +Date: Thu, 1 Oct 2015 12:59:09 +0200 +Subject: [PATCH 5/9] Disable MOZ_GLUE_IN_PROGRAM in stand-alone builds on all + platforms + +Otherwise, build fails not being able to find HashBytes. + +Patch ported forward to mozjs52 by Philip Chimento +. + +https://bugzilla.mozilla.org/show_bug.cgi?id=1176787 +--- + js/src/old-configure.in | 23 ++++++++++++++--------- + mozglue/build/moz.build | 2 +- + 2 files changed, 15 insertions(+), 10 deletions(-) + +diff --git a/js/src/old-configure.in b/js/src/old-configure.in +index c40eb962..336e1aa7 100644 +--- a/js/src/old-configure.in ++++ b/js/src/old-configure.in +@@ -1620,16 +1620,21 @@ dnl ======================================================== + dnl = Enable jemalloc + dnl ======================================================== + +-case "${OS_TARGET}" in +-Android|WINNT|Darwin) ++dnl In stand-alone builds we always only want to link executables against mozglue. ++if test "$JS_STANDALONE"; then + MOZ_GLUE_IN_PROGRAM= +- ;; +-*) +- dnl On !Android !Windows !OSX, we only want to link executables against mozglue +- MOZ_GLUE_IN_PROGRAM=1 +- AC_DEFINE(MOZ_GLUE_IN_PROGRAM) +- ;; +-esac ++else ++ case "${OS_TARGET}" in ++ Android|WINNT|Darwin) ++ MOZ_GLUE_IN_PROGRAM= ++ ;; ++ *) ++ dnl On !Android !Windows !OSX, we only want to link executables against mozglue ++ MOZ_GLUE_IN_PROGRAM=1 ++ AC_DEFINE(MOZ_GLUE_IN_PROGRAM) ++ ;; ++ esac ++fi + + if test "$MOZ_MEMORY"; then + if test "x$MOZ_DEBUG" = "x1"; then diff --git a/mozglue/build/moz.build b/mozglue/build/moz.build -index 58e2db6..1cfb504 100644 +index d2897477..e3be5a2b 100644 --- a/mozglue/build/moz.build +++ b/mozglue/build/moz.build -@@ -4,12 +4,9 @@ - # 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/. +@@ -6,7 +6,7 @@ --# Build mozglue as a shared lib on Windows, OSX and Android. --# If this is ever changed, update MOZ_SHARED_MOZGLUE in browser/installer/Makefile.in + # Build mozglue as a shared lib on Windows, OSX and Android. + # If this is ever changed, update MOZ_SHARED_MOZGLUE in browser/installer/Makefile.in -if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android'): -- SharedLibrary('mozglue') --else: -- Library('mozglue') -+# Build mozglue as a static lib into js for 0 A.D. -+Library('mozglue') -+FINAL_LIBRARY = 'js' - - if not CONFIG['MOZ_CRT']: - SDK_LIBRARY = True ++if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android') and not CONFIG['JS_STANDALONE']: + SharedLibrary('mozglue') + else: + Library('mozglue') +-- +2.11.0 (Apple Git-81) + Index: libraries/source/spidermonkey/FixNonx86.diff =================================================================== --- libraries/source/spidermonkey/FixNonx86.diff +++ /dev/null @@ -1,229 +0,0 @@ -diff --git a/js/src/gc/Memory.cpp b/js/src/gc/Memory.cpp ---- a/js/src/gc/Memory.cpp -+++ b/js/src/gc/Memory.cpp -@@ -430,17 +430,17 @@ InitMemorySubsystem() - if (pageSize == 0) - pageSize = allocGranularity = size_t(sysconf(_SC_PAGESIZE)); - } - - static inline void* - MapMemoryAt(void* desired, size_t length, int prot = PROT_READ | PROT_WRITE, - int flags = MAP_PRIVATE | MAP_ANON, int fd = -1, off_t offset = 0) - { --#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) -+#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) || defined(__aarch64__) - MOZ_ASSERT(0xffff800000000000ULL & (uintptr_t(desired) + length - 1) == 0); - #endif - void* region = mmap(desired, length, prot, flags, fd, offset); - if (region == MAP_FAILED) - return nullptr; - /* - * mmap treats the given address as a hint unless the MAP_FIXED flag is - * used (which isn't usually what you want, as this overrides existing -@@ -480,16 +480,51 @@ MapMemory(size_t length, int prot = PROT - * as out of memory. - */ - if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) { - if (munmap(region, length)) - MOZ_ASSERT(errno == ENOMEM); - return nullptr; - } - return region; -+#elif defined(__aarch64__) -+ /* -+ * There might be similar virtual address issue on arm64 which depends on -+ * hardware and kernel configurations. But the work around is slightly -+ * different due to the different mmap behavior. -+ * -+ * TODO: Merge with the above code block if this implementation works for -+ * ia64 and sparc64. -+ */ -+ const uintptr_t start = UINT64_C(0x0000070000000000); -+ const uintptr_t end = UINT64_C(0x0000800000000000); -+ const uintptr_t step = js::gc::ChunkSize; -+ /* -+ * Optimization options if there are too many retries in practice: -+ * 1. Examine /proc/self/maps to find an available address. This file is -+ * not always available, however. In addition, even if we examine -+ * /proc/self/maps, we may still need to retry several times due to -+ * racing with other threads. -+ * 2. Use a global/static variable with lock to track the addresses we have -+ * allocated or tried. -+ */ -+ uintptr_t hint; -+ void* region = MAP_FAILED; -+ for (hint = start; region == MAP_FAILED && hint + length <= end; hint += step) { -+ region = mmap((void*)hint, length, prot, flags, fd, offset); -+ if (region != MAP_FAILED) { -+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) { -+ if (munmap(region, length)) { -+ MOZ_ASSERT(errno == ENOMEM); -+ } -+ region = MAP_FAILED; -+ } -+ } -+ } -+ return region == MAP_FAILED ? nullptr : region; - #else - void* region = MozTaggedAnonymousMmap(nullptr, length, prot, flags, fd, offset, "js-gc-heap"); - if (region == MAP_FAILED) - return nullptr; - return region; - #endif - } - -diff --git a/js/src/jit/none/MacroAssembler-none.h b/js/src/jit/none/MacroAssembler-none.h ---- a/js/src/jit/none/MacroAssembler-none.h -+++ b/js/src/jit/none/MacroAssembler-none.h -@@ -254,16 +254,18 @@ class MacroAssemblerNone : public Assemb - template void branchSub32(Condition, T, S, Label*) { MOZ_CRASH(); } - template void branchPtr(Condition, T, S, Label*) { MOZ_CRASH(); } - template void branchTestPtr(Condition, T, S, Label*) { MOZ_CRASH(); } - template void branchDouble(DoubleCondition, T, S, Label*) { MOZ_CRASH(); } - template void branchFloat(DoubleCondition, T, S, Label*) { MOZ_CRASH(); } - template void branchPrivatePtr(Condition, T, S, Label*) { MOZ_CRASH(); } - template void decBranchPtr(Condition, T, S, Label*) { MOZ_CRASH(); } - template void branchTest64(Condition, T, T, S, Label*) { MOZ_CRASH(); } -+ template void branch64(Condition, T, S, Label*) { MOZ_CRASH(); } -+ template void branch64(Condition, T, T, S, Label*) { MOZ_CRASH(); } - template void mov(T, S) { MOZ_CRASH(); } - template void movq(T, S) { MOZ_CRASH(); } - template void movePtr(T, S) { MOZ_CRASH(); } - template void move32(T, S) { MOZ_CRASH(); } - template void moveFloat32(T, S) { MOZ_CRASH(); } - template void moveDouble(T, S) { MOZ_CRASH(); } - template void move64(T, S) { MOZ_CRASH(); } - template CodeOffset movWithPatch(T, Register) { MOZ_CRASH(); } - -diff --git a/js/src/jsapi-tests/testGCAllocator.cpp b/js/src/jsapi-tests/testGCAllocator.cpp ---- a/js/src/jsapi-tests/testGCAllocator.cpp -+++ b/js/src/jsapi-tests/testGCAllocator.cpp -@@ -307,48 +307,72 @@ void* mapMemoryAt(void* desired, size_t - void* mapMemory(size_t length) { return nullptr; } - void unmapPages(void* p, size_t size) { } - - #elif defined(XP_UNIX) - - void* - mapMemoryAt(void* desired, size_t length) - { --#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) -+#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) || defined(__aarch64__) - MOZ_RELEASE_ASSERT(0xffff800000000000ULL & (uintptr_t(desired) + length - 1) == 0); - #endif - void* region = mmap(desired, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); - if (region == MAP_FAILED) - return nullptr; - if (region != desired) { - if (munmap(region, length)) - MOZ_RELEASE_ASSERT(errno == ENOMEM); - return nullptr; - } - return region; - } - - void* - mapMemory(size_t length) - { -- void* hint = nullptr; -+ int prot = PROT_READ | PROT_WRITE; -+ int flags = MAP_PRIVATE | MAP_ANON; -+ int fd = -1; -+ off_t offset = 0; -+ // The test code must be aligned with the implementation in gc/Memory.cpp. - #if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) -- hint = (void*)0x0000070000000000ULL; --#endif -- void* region = mmap(hint, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); -+ void* region = mmap((void*)0x0000070000000000, length, prot, flags, fd, offset); - if (region == MAP_FAILED) - return nullptr; --#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) -- if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000ULL) { -+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) { - if (munmap(region, length)) - MOZ_RELEASE_ASSERT(errno == ENOMEM); - return nullptr; - } -+ return region; -+#elif defined(__aarch64__) -+ const uintptr_t start = UINT64_C(0x0000070000000000); -+ const uintptr_t end = UINT64_C(0x0000800000000000); -+ const uintptr_t step = js::gc::ChunkSize; -+ uintptr_t hint; -+ void* region = MAP_FAILED; -+ for (hint = start; region == MAP_FAILED && hint + length <= end; hint += step) { -+ region = mmap((void*)hint, length, prot, flags, fd, offset); -+ if (region != MAP_FAILED) { -+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) { -+ if (munmap(region, length)) { -+ MOZ_RELEASE_ASSERT(errno == ENOMEM); -+ } -+ region = MAP_FAILED; -+ } -+ } -+ } -+ return region == MAP_FAILED ? nullptr : region; -+#else -+ void* region = mmap(nullptr, length, prot, flags, fd, offset); -+ if (region == MAP_FAILED) -+ return nullptr; -+ return region; - #endif -- return region; - } - - void - unmapPages(void* p, size_t size) - { - if (munmap(p, size)) - MOZ_RELEASE_ASSERT(errno == ENOMEM); - } - -diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h -index 8606a18..60af775 100644 ---- a/js/src/jit/AtomicOperations.h -+++ b/js/src/jit/AtomicOperations.h -@@ -302,7 +302,9 @@ AtomicOperations::isLockfree(int32_t size) - # include "jit/mips-shared/AtomicOperations-mips-shared.h" - #elif defined(__ppc64__) || defined(__PPC64_) \ - || defined(__ppc64le__) || defined(__PPC64LE__) \ -- || defined(__ppc__) || defined(__PPC__) -+ || defined(__ppc__) || defined(__PPC__) \ -+ || defined(__aarch64__) || defined(__arm__) \ -+ || defined(__s390x__) || defined(__mips__) - # include "jit/none/AtomicOperations-ppc.h" - #elif defined(JS_CODEGEN_NONE) - # include "jit/none/AtomicOperations-none.h" - -diff --git a/js/src/tests/js1_5/Array/regress-157652.js b/js/src/tests/js1_5/Array/regress-157652.js -index 0bdba8f..9d77802 100644 ---- a/js/src/tests/js1_5/Array/regress-157652.js -+++ b/js/src/tests/js1_5/Array/regress-157652.js -@@ -1,4 +1,4 @@ --// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64/)||Android) -- No test results -+// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64|aarch64|ppc64|ppc64le|s390x/)||Android) -- No test results - /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ - /* 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 -diff --git a/js/src/tests/js1_5/Array/regress-330812.js b/js/src/tests/js1_5/Array/regress-330812.js -index 3a39297..c48f4c8 100644 ---- a/js/src/tests/js1_5/Array/regress-330812.js -+++ b/js/src/tests/js1_5/Array/regress-330812.js -@@ -1,4 +1,4 @@ --// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64/)||Android) -- No test results -+// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64|aarch64|ppc64|ppc64le|s390x/)||Android) -- No test results - /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ - /* 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 -diff --git a/js/src/tests/js1_5/Regress/regress-422348.js b/js/src/tests/js1_5/Regress/regress-422348.js -index f2443c2..7ae83f4 100644 ---- a/js/src/tests/js1_5/Regress/regress-422348.js -+++ b/js/src/tests/js1_5/Regress/regress-422348.js -@@ -1,4 +1,4 @@ --// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64/)) -- On 64-bit, takes forever rather than throwing -+// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64|aarch64|ppc64|ppc64le|s390x/)) -- On 64-bit, takes forever rather than throwing - /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ - /* 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 - Index: libraries/source/spidermonkey/FixTracelogger.diff =================================================================== --- libraries/source/spidermonkey/FixTracelogger.diff +++ /dev/null @@ -1,223 +0,0 @@ -diff --git a/js/src/jit-test/tests/tracelogger/bug1266649.js b/js/src/jit-test/tests/tracelogger/bug1266649.js -new file mode 100644 -index 0000000..2878e0c ---- /dev/null -+++ b/js/src/jit-test/tests/tracelogger/bug1266649.js -@@ -0,0 +1,8 @@ -+ -+var du = new Debugger(); -+if (typeof du.setupTraceLogger === "function") { -+ du.setupTraceLogger({ -+ Scripts: true -+ }) -+ oomTest(() => function(){}); -+} -diff --git a/js/src/vm/TraceLogging.cpp b/js/src/vm/TraceLogging.cpp -index ce7acc6..8f8aca4 100644 ---- a/js/src/vm/TraceLogging.cpp -+++ b/js/src/vm/TraceLogging.cpp -@@ -393,14 +393,14 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text) - return nullptr; - } - -- if (!pointerMap.add(p, text, payload)) -- return nullptr; -- - if (graph.get()) - graph->addTextId(textId, str); - - nextTextId++; - -+ if (!pointerMap.add(p, text, payload)) -+ return nullptr; -+ - return payload; - } - -@@ -420,10 +420,13 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f - if (!traceLoggerState->isTextIdEnabled(type)) - return getOrCreateEventPayload(type); - -- PointerHashMap::AddPtr p = pointerMap.lookupForAdd(ptr); -- if (p) { -- MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check. -- return p->value(); -+ PointerHashMap::AddPtr p; -+ if (ptr) { -+ p = pointerMap.lookupForAdd(ptr); -+ if (p) { -+ MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check. -+ return p->value(); -+ } - } - - // Compute the length of the string to create. -@@ -455,14 +458,16 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f - return nullptr; - } - -- if (!pointerMap.add(p, ptr, payload)) -- return nullptr; -- - if (graph.get()) - graph->addTextId(textId, str); - - nextTextId++; - -+ if (ptr) { -+ if (!pointerMap.add(p, ptr, payload)) -+ return nullptr; -+ } -+ - return payload; - } - -@@ -477,7 +482,7 @@ TraceLoggerEventPayload* - TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, - const JS::ReadOnlyCompileOptions& script) - { -- return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, &script); -+ return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, nullptr); - } - - void -@@ -550,19 +555,42 @@ TraceLoggerThread::log(uint32_t id) - return; - - MOZ_ASSERT(traceLoggerState); -- if (!events.ensureSpaceBeforeAdd()) { -+ if (!events.hasSpaceForAdd(3)) { - uint64_t start = rdtsc() - traceLoggerState->startupTime; - -- if (graph.get()) -- graph->log(events); -+ if (!events.ensureSpaceBeforeAdd(3)) { -+ if (graph.get()) -+ graph->log(events); - -- iteration_++; -- events.clear(); -+ iteration_++; -+ events.clear(); -+ -+ // Remove the item in the pointerMap for which the payloads -+ // have no uses anymore -+ for (PointerHashMap::Enum e(pointerMap); !e.empty(); e.popFront()) { -+ if (e.front().value()->uses() != 0) -+ continue; -+ -+ TextIdHashMap::Ptr p = textIdPayloads.lookup(e.front().value()->textId()); -+ MOZ_ASSERT(p); -+ textIdPayloads.remove(p); -+ -+ e.removeFront(); -+ } -+ -+ // Free all payloads that have no uses anymore. -+ for (TextIdHashMap::Enum e(textIdPayloads); !e.empty(); e.popFront()) { -+ if (e.front().value()->uses() == 0) { -+ js_delete(e.front().value()); -+ e.removeFront(); -+ } -+ } -+ } - - // Log the time it took to flush the events as being from the - // Tracelogger. - if (graph.get()) { -- MOZ_ASSERT(events.capacity() > 2); -+ MOZ_ASSERT(events.capacity() - events.size() > 2); - EventEntry& entryStart = events.pushUninitialized(); - entryStart.time = start; - entryStart.textId = TraceLogger_Internal; -@@ -572,26 +600,6 @@ TraceLoggerThread::log(uint32_t id) - entryStop.textId = TraceLogger_Stop; - } - -- // Remove the item in the pointerMap for which the payloads -- // have no uses anymore -- for (PointerHashMap::Enum e(pointerMap); !e.empty(); e.popFront()) { -- if (e.front().value()->uses() != 0) -- continue; -- -- TextIdHashMap::Ptr p = textIdPayloads.lookup(e.front().value()->textId()); -- MOZ_ASSERT(p); -- textIdPayloads.remove(p); -- -- e.removeFront(); -- } -- -- // Free all payloads that have no uses anymore. -- for (TextIdHashMap::Enum e(textIdPayloads); !e.empty(); e.popFront()) { -- if (e.front().value()->uses() == 0) { -- js_delete(e.front().value()); -- e.removeFront(); -- } -- } - } - - uint64_t time = rdtsc() - traceLoggerState->startupTime; -diff --git a/js/src/vm/TraceLogging.h b/js/src/vm/TraceLogging.h -index 270478c..313950e 100644 ---- a/js/src/vm/TraceLogging.h -+++ b/js/src/vm/TraceLogging.h -@@ -242,7 +242,7 @@ class TraceLoggerThread - - // If we are in a consecutive iteration we are only sure we didn't lose any events, - // when the lastSize equals the maximum size 'events' can get. -- if (lastIteration == iteration_ - 1 && lastSize == CONTINUOUSSPACE_LIMIT) -+ if (lastIteration == iteration_ - 1 && lastSize == events.max_items()) - return false; - - return true; -diff --git a/js/src/vm/TraceLoggingTypes.h b/js/src/vm/TraceLoggingTypes.h -index bb8ccc7..1d98bf6 100644 ---- a/js/src/vm/TraceLoggingTypes.h -+++ b/js/src/vm/TraceLoggingTypes.h -@@ -130,15 +130,15 @@ TLTextIdIsTreeEvent(uint32_t id) - id >= TraceLogger_Last; - } - --// The maximum amount of ram memory a continuous space structure can take (in bytes). --static const uint32_t CONTINUOUSSPACE_LIMIT = 200 * 1024 * 1024; -- - template - class ContinuousSpace { - T* data_; - uint32_t size_; - uint32_t capacity_; - -+ // The maximum amount of ram memory a continuous space structure can take (in bytes). -+ static const uint32_t LIMIT = 200 * 1024 * 1024; -+ - public: - ContinuousSpace () - : data_(nullptr) -@@ -160,6 +160,10 @@ class ContinuousSpace { - data_ = nullptr; - } - -+ uint32_t max_items() { -+ return LIMIT / sizeof(T); -+ } -+ - T* data() { - return data_; - } -@@ -197,11 +201,14 @@ class ContinuousSpace { - return true; - - uint32_t nCapacity = capacity_ * 2; -- if (size_ + count > nCapacity || nCapacity * sizeof(T) > CONTINUOUSSPACE_LIMIT) { -+ if (size_ + count > nCapacity) - nCapacity = size_ + count; - -+ if (nCapacity > max_items()) { -+ nCapacity = max_items(); -+ - // Limit the size of a continuous buffer. -- if (nCapacity * sizeof(T) > CONTINUOUSSPACE_LIMIT) -+ if (size_ + count > nCapacity) - return false; - } - Index: libraries/source/spidermonkey/FixZLibMozBuild.diff =================================================================== --- libraries/source/spidermonkey/FixZLibMozBuild.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- a/config/external/zlib/moz.build -+++ b/config/external/zlib/moz.build -@@ -15,7 +15,7 @@ - # USE_LIBS += [ - # 'mozglue' - # ] - pass - DIRS += [ -- '../../../modules/zlib', -+ '../../../modules/src', - ] Index: libraries/source/spidermonkey/README.txt =================================================================== --- libraries/source/spidermonkey/README.txt +++ libraries/source/spidermonkey/README.txt @@ -1,15 +1,15 @@ Important notice: ----------------- This version of SpiderMonkey comes from -https://ftp.mozilla.org/pub/spidermonkey/releases/45.0.2/mozjs-45.0.2.tar.bz2 +https://ftp.mozilla.org/pub/spidermonkey/prereleases/52/pre1/mozjs-52.9.1pre1.tar.bz2 -The game must be compiled with precisely this version since SpiderMonkey -does not guarantee API stability and may have behavioural changes that +The game must be compiled with precisely this version since SpiderMonkey +does not guarantee API stability and may have behavioural changes that cause subtle bugs or network out-of-sync errors. A standard system-provided version of the library may only be used if it's -exactly the same version or if it's another minor release that does not +exactly the same version or if it's another minor release that does not change the behaviour of the scripts executed by SpiderMonkey. Also it's -crucial that "--enable-gcgenerational" was used for building the system +crucial that "--enable-gcgenerational" was used for building the system provided libraries and that exact stack rooting was not disabled. Using different settings for compiling SpiderMonkey and 0 A.D. causes incompatibilities on the ABI (binary) level and can lead to @@ -33,23 +33,25 @@ Setting up the build environment: 1. Get https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Windows_Prerequisites#MozillaBuild +2. Download both an older version (2.x) which uses the old Mozilla build system, for NSPR; and the latest version to build + SpiderMonkey. Install them to different locations. Building NSPR: -1. Get nspr. We are using nspr-4.12 which was the newest version when SM45.0.2 was out. +1. Get nspr. We are using nspr-4.26 which was the newest version when this was written. Newer versions should probably work too. Download link: https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/ -2. Run mozillabuild (start-shell-msvc2015.bat) as administrator +2. Run MozillaBuild 2.x (start-shell-msvc2015.bat) 3. Extract nspr to libraries/source/spidermonkey - tar -xzvf nspr-4.12.tar.gz - cd nspr-4.12 + tar -xzvf nspr-4.26.tar.gz + cd nspr-4.26 cd nspr -4. Patch nspr with https://bugzilla.mozilla.org/show_bug.cgi?id=1238154#c7 +4. Patch nspr with https://bugzilla.mozilla.org/show_bug.cgi?id=1238154#c15 5. Call configure. I've used this command: ./configure --disable-debug --enable-optimize --enable-win32-target=WIN95 6. Call make Building SpiderMonkey: 1. Adjust the absolute paths to nspr in the build.sh file to match your environment. -2. Run mozillabuild (start-shell-msvc2015.bat) as administrator and run ./build.sh. +2. Run MozillaBuild 3.x (start-shell.bat) and run ./build.sh. Index: libraries/source/spidermonkey/RemoveNSPRDependency.diff =================================================================== --- libraries/source/spidermonkey/RemoveNSPRDependency.diff +++ /dev/null @@ -1,51 +0,0 @@ - -# HG changeset patch -# User Philip Chimento -# Date 1501017350 25200 -# Node ID 5d95b2833b30582ab3df4e28373d749ddbf7c04e -# Parent c24e6fc9f689aeb32de0bf7916b1d0098d4a2bb9 -Bug 1379539 - Remove unnecessary NSPR dependency. r=glandium, a=jcristau - -diff --git a/build/autoconf/nspr-build.m4 b/build/autoconf/nspr-build.m4 -index 970e1e7..66d96b1 100644 ---- a/build/autoconf/nspr-build.m4 -+++ b/build/autoconf/nspr-build.m4 -@@ -167,11 +167,8 @@ fi - - AC_SUBST_LIST(NSPR_CFLAGS) - --NSPR_PKGCONF_CHECK="nspr" -+PKGCONF_REQUIRES_PRIVATE="Requires.private: nspr" - if test -n "$MOZ_NATIVE_NSPR"; then -- # piggy back on $MOZ_NATIVE_NSPR to set a variable for the nspr check for js.pc -- NSPR_PKGCONF_CHECK="nspr >= $NSPR_MINVER" -- - _SAVE_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $NSPR_CFLAGS" - AC_TRY_COMPILE([#include "prlog.h"], -@@ -181,8 +178,12 @@ if test -n "$MOZ_NATIVE_NSPR"; then - , - AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT])) - CFLAGS=$_SAVE_CFLAGS -+ # piggy back on $MOZ_NATIVE_NSPR to set a variable for the nspr check for js.pc -+ PKGCONF_REQUIRES_PRIVATE="Requires.private: nspr >= $NSPR_MINVER" -+elif test -n "$JS_POSIX_NSPR"; then -+ PKGCONF_REQUIRES_PRIVATE= - fi --AC_SUBST(NSPR_PKGCONF_CHECK) -+AC_SUBST([PKGCONF_REQUIRES_PRIVATE]) - - fi # _IS_OUTER_CONFIGURE - -diff --git a/js/src/js.pc.in b/js/src/js.pc.in -index 1efea33..2eae393 100644 ---- a/js/src/js.pc.in -+++ b/js/src/js.pc.in -@@ -6,6 +6,6 @@ includedir=@includedir@ - Name: SpiderMonkey @MOZILLA_VERSION@ - Description: The Mozilla library for JavaScript - Version: @MOZILLA_VERSION@ --Requires.private: @NSPR_PKGCONF_CHECK@ -+@PKGCONF_REQUIRES_PRIVATE@ - Libs: -L${libdir} -l@JS_LIBRARY_NAME@ - Cflags: -include ${includedir}/@JS_LIBRARY_NAME@/js/RequiredDefines.h -I${includedir}/@JS_LIBRARY_NAME@ Index: libraries/source/spidermonkey/build.sh =================================================================== --- libraries/source/spidermonkey/build.sh +++ libraries/source/spidermonkey/build.sh @@ -27,37 +27,17 @@ MAKE_OPTS="${JOBS}" -# jemalloc is outdated on SM45, do not use it +# Standalone SpiderMonkey can not use jemalloc (see https://bugzilla.mozilla.org/show_bug.cgi?id=1465038) CONF_OPTS="--disable-tests --disable-jemalloc --enable-shared-js --without-intl-api" -# Bug 1269319 -# When compiled with GCC 6 (or later), SpiderMonkey 45 (and versions up to 49) is -# subject to segfaults. Disabling a few optimizations fixes that. -# See also #4053 -if [ "${OS}" != "Windows_NT" ] -then - if [ "`${CXX:=g++} -dumpversion | cut -f1 -d.`" -ge "6" ] - then - CXXFLAGS="${CXXFLAGS} -fno-schedule-insns2 -fno-delete-null-pointer-checks" - fi -fi - -# Change the default location where the tracelogger should store its output. -# The default location is . on Windows and /tmp/ on *nix. -TLCXXFLAGS='-DTRACE_LOG_DIR="\"../../source/tools/tracelogger/\""' - # NSPR is needed on Windows for POSIX emulation. -# If you want to build on Windows, check README.txt and edit the absolute paths +# If you want to build on Windows, check README.txt and edit the absolute paths # to match your environment. if [ "${OS}" = "Windows_NT" ] then - NSPR_INCLUDES="-ID:/nspr-4.12/nspr/dist/include/nspr" - NSPR_LIBS=" \ - D:/nspr-4.12/nspr/dist/lib/nspr4 \ - D:/nspr-4.12/nspr/dist/lib/plds4 \ - D:/nspr-4.12/nspr/dist/lib/plc4" + NSPR_PREFIX="D:/nspr-4.21/nspr/" else - CONF_OPTS="${CONF_OPTS} --enable-posix-nspr-emulation" + CONF_OPTS="${CONF_OPTS} --enable-posix-nspr-emulation" fi # If Valgrind looks like it's installed, then set up SM to support it @@ -76,11 +56,11 @@ echo "SpiderMonkey build options: ${CONF_OPTS}" echo ${CONF_OPTS} -FOLDER=mozjs-45.0.2 +FOLDER=mozjs-52.9.1pre1 # Delete the existing directory to avoid conflicts and extract the tarball rm -rf $FOLDER -tar xjf mozjs-45.0.2.tar.bz2 +tar xjf mozjs-52.9.1pre1.tar.bz2 # Clean up header files that may be left over by earlier versions of SpiderMonkey rm -rf include-unix-* @@ -100,39 +80,37 @@ # the LIBRARY_NAME for each build. # (We use perl instead of sed so that it works with MozillaBuild on Windows, # which has an ancient sed.) -perl -i.bak -pe 's/(SHARED_LIBRARY_NAME\s+=).*/$1 '\''mozjs45-ps-debug'\''/' moz.build +perl -i.bak -pe 's/(SHARED_LIBRARY_NAME\s+=).*/$1 '\''mozjs52-ps-debug'\''/' moz.build mkdir -p build-debug cd build-debug if [ "${OS}" = "Windows_NT" ] then - CXXFLAGS="${CXXFLAGS} ${TLCXXFLAGS}" ../configure ${CONF_OPTS} \ - --with-nspr-cflags="${NSPR_INCLUDES}" --with-nspr-libs="${NSPR_LIBS}" \ + CXXFLAGS="${CXXFLAGS}" ../configure ${CONF_OPTS} \ + --with-nspr-prefix="{NSPR_PREFIX}" \ --enable-debug \ --disable-optimize \ - --enable-js-diagnostics \ --enable-gczeal else - CXXFLAGS="${CXXFLAGS} ${TLCXXFLAGS}" ../configure ${CONF_OPTS} \ + CXXFLAGS="${CXXFLAGS}" ../configure ${CONF_OPTS} \ --enable-debug \ --disable-optimize \ - --enable-js-diagnostics \ --enable-gczeal fi ${MAKE} ${MAKE_OPTS} cd .. -perl -i.bak -pe 's/(SHARED_LIBRARY_NAME\s+=).*/$1 '\''mozjs45-ps-release'\''/' moz.build +perl -i.bak -pe 's/(SHARED_LIBRARY_NAME\s+=).*/$1 '\''mozjs52-ps-release'\''/' moz.build mkdir -p build-release cd build-release if [ "${OS}" = "Windows_NT" ] then - CXXFLAGS="${CXXFLAGS} ${TLCXXFLAGS}" ../configure ${CONF_OPTS} \ - --with-nspr-cflags="${NSPR_INCLUDES}" --with-nspr-libs="${NSPR_LIBS}" \ + CXXFLAGS="${CXXFLAGS}" ../configure ${CONF_OPTS} \ + --with-nspr-prefix="${NSPR_PREFIX}" \ --enable-optimize \ #--enable-gczeal \ #--enable-debug-symbols else - CXXFLAGS="${CXXFLAGS} ${TLCXXFLAGS}" ../configure ${CONF_OPTS} \ + CXXFLAGS="${CXXFLAGS}" ../configure ${CONF_OPTS} \ --enable-optimize \ #--enable-gczeal \ #--enable-debug-symbols @@ -190,16 +168,16 @@ cp -R -L ${FOLDER}/js/src/build-debug/dist/include/* ${INCLUDE_DIR_DEBUG}/ mkdir -p lib/ -cp -L ${FOLDER}/js/src/build-debug/dist/sdk/lib/${LIB_PREFIX}mozjs45-ps-debug${LIB_SRC_SUFFIX} lib/${LIB_PREFIX}mozjs45-ps-debug${LIB_DST_SUFFIX} -cp -L ${FOLDER}/js/src/build-release/dist/sdk/lib/${LIB_PREFIX}mozjs45-ps-release${LIB_SRC_SUFFIX} lib/${LIB_PREFIX}mozjs45-ps-release${LIB_DST_SUFFIX} -cp -L ${FOLDER}/js/src/build-debug/dist/bin/${LIB_PREFIX}mozjs45-ps-debug${DLL_SRC_SUFFIX} ../../../binaries/system/${LIB_PREFIX}mozjs45-ps-debug${DLL_DST_SUFFIX} -cp -L ${FOLDER}/js/src/build-release/dist/bin/${LIB_PREFIX}mozjs45-ps-release${DLL_SRC_SUFFIX} ../../../binaries/system/${LIB_PREFIX}mozjs45-ps-release${DLL_DST_SUFFIX} +cp -L ${FOLDER}/js/src/build-debug/dist/sdk/lib/${LIB_PREFIX}mozjs52-ps-debug${LIB_SRC_SUFFIX} lib/${LIB_PREFIX}mozjs52-ps-debug${LIB_DST_SUFFIX} +cp -L ${FOLDER}/js/src/build-release/dist/sdk/lib/${LIB_PREFIX}mozjs52-ps-release${LIB_SRC_SUFFIX} lib/${LIB_PREFIX}mozjs52-ps-release${LIB_DST_SUFFIX} +cp -L ${FOLDER}/js/src/build-debug/dist/bin/${LIB_PREFIX}mozjs52-ps-debug${DLL_SRC_SUFFIX} ../../../binaries/system/${LIB_PREFIX}mozjs52-ps-debug${DLL_DST_SUFFIX} +cp -L ${FOLDER}/js/src/build-release/dist/bin/${LIB_PREFIX}mozjs52-ps-release${DLL_SRC_SUFFIX} ../../../binaries/system/${LIB_PREFIX}mozjs52-ps-release${DLL_DST_SUFFIX} # On Windows, also copy debugging symbols files if [ "${OS}" = "Windows_NT" ] then - cp -L ${FOLDER}/js/src/build-debug/js/src/${LIB_PREFIX}mozjs45-ps-debug-vc140.pdb ../../../binaries/system/${LIB_PREFIX}mozjs45-ps-debug-vc140.pdb - cp -L ${FOLDER}/js/src/build-release/js/src/${LIB_PREFIX}mozjs45-ps-release-vc140.pdb ../../../binaries/system/${LIB_PREFIX}mozjs45-ps-release-vc140.pdb + cp -L ${FOLDER}/js/src/build-debug/js/src/${LIB_PREFIX}mozjs52-ps-debug.pdb binaries/system/${LIB_PREFIX}mozjs52-ps-debug.pdb + cp -L ${FOLDER}/js/src/build-release/js/src/${LIB_PREFIX}mozjs52-ps-release.pdb binaries/system/${LIB_PREFIX}mozjs52-ps-release.pdb fi # Flag that it's already been built successfully so we can skip it next time Index: libraries/source/spidermonkey/patch.sh =================================================================== --- libraries/source/spidermonkey/patch.sh +++ libraries/source/spidermonkey/patch.sh @@ -2,59 +2,27 @@ # Apply patches if needed # This script gets called from build-osx-libs.sh and build.sh. -# Remove the unnecessary NSPR dependency. -# Will be included in SM52. -# https://bugzilla.mozilla.org/show_bug.cgi?id=1379539 -patch -p1 < ../RemoveNSPRDependency.diff - -# Fix the path to the moz.build file in the zlib module -patch -p1 < ../FixZLibMozBuild.diff - -# === Fix the SM45 tracelogger === -# This patch is a squashed version of several patches that were adapted -# to fix failing hunks. -# -# Applied in the following order, they are: -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1266649 -# Handle failing to add to pointermap gracefully. -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1280648 -# Don't cache based on pointers to movable GC things. -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1255766 -# Also mark resizing of memory. -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1259403 -# Only increase capacity by multiples of 2. -# Always make sure there are 3 free slots for events. -# === -patch -p1 < ../FixTracelogger.diff - # Patch embedded python psutil to work with FreeBSD 12 after revision 315662 # Based on: https://svnweb.freebsd.org/ports/head/sysutils/py-psutil121/files/patch-_psutil_bsd.c?revision=436575&view=markup # psutil will be upgraded in SM60: https://bugzilla.mozilla.org/show_bug.cgi?id=1436857 patch -p0 < ../FixpsutilFreeBSD.diff -# Patch some parts of the code to support extra processor architectures -# Includes: -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1143022 (for arm64) -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1277742 (for aarch64) -# * https://bugzilla.mozilla.org/show_bug.cgi?id=1266366 (for ppc64) -patch -p1 < ../FixNonx86.diff - # Always link mozglue into the shared library when building standalone. -# Will be included in SM60. Custom version of the patch for SM45, which doesn't have the same build system. +# Will be included in SM60. # https://bugzilla.mozilla.org/show_bug.cgi?id=1176787 patch -p1 < ../FixMozglueStatic.diff +cp ../patched-old-configure js/src/old-configure +cp ../patched-configure js/src/configure -# JSPropertyDescriptor is not public in SM45. -# Will be fixed in SM52. -# https://bugzilla.mozilla.org/show_bug.cgi?id=1316079 -patch -p1 < ../ExportJSPropertyDescriptor.diff +# After https://bugzilla.mozilla.org/show_bug.cgi?id=1289934 landed in +# Firefox 51, MSVC compilation has been broken due to bug +# https://developercommunity.visualstudio.com/content/problem/25334/error-code-c2971-when-specifying-a-function-as-the.html +# (resolved in Visual Studio 2017). The following fix was applied +# to not drop compiler support and will be included in SM 60. +# https://bugzilla.mozilla.org/show_bug.cgi?id=1300925 +patch -p1 < ../FixMSVCBuild.diff -# When trying to link pyrogenesis, js::oom::GetThreadType() and js::ReportOutOfMemory() -# are marked as unresolved symbols. -# Will be included in SM52. -# https://bugzilla.mozilla.org/show_bug.cgi?id=1379538 -patch -p1 < ../FixLinking.diff +# GCC 9 and 10 fail to build with -Werror=format, so disable it. +# https://bugs.gentoo.org/693556 +patch -p1 < ../DisableGCC9WerrorFormat.diff -# Allow the use of JS::PersistentRootedSymbol in debug builds. -# This check will be removed in SM52. -patch -p1 < ../FixPersistentRootedSymbol.diff Index: libraries/source/spidermonkey/patched-configure =================================================================== --- /dev/null +++ libraries/source/spidermonkey/patched-configure @@ -0,0 +1,9 @@ +#!/bin/sh + +SRCDIR=$(dirname $0) +TOPSRCDIR="$SRCDIR"/../.. +export OLD_CONFIGURE="$SRCDIR"/old-configure + +set -- "$@" --enable-project=js + +which python2.7 > /dev/null && exec python2.7 "$TOPSRCDIR/configure.py" "$@" || exec python "$TOPSRCDIR/configure.py" "$@" Index: libraries/source/spidermonkey/patched-old-configure =================================================================== --- /dev/null +++ libraries/source/spidermonkey/patched-old-configure @@ -0,0 +1,10946 @@ +#! /bin/sh + +if test `uname -s | grep -c MINGW 2>/dev/null` != "0"; then + msyshost=1 +fi + +. ./old-configure.vars + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-release Build with more conservative, release engineering-oriented options. + This may slow down builds." +ac_help="$ac_help + --with-android-cxx-stl=VALUE + use the specified C++ STL (libstdc++, libc++)" +ac_help="$ac_help + --with-ios-sdk=TYPE + Type of iOS SDK to use (iphonesimulator, iphoneos) + and optionally version (like iphoneos8.2)" +ac_help="$ac_help + --enable-ios-target=VER (default=8.0) + Set the minimum iOS version needed at runtime" +ac_help="$ac_help + --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)" +ac_help="$ac_help + --with-x use the X Window System" +ac_help="$ac_help + --with-arch=[[type|toolchain-default]] + Use specific CPU features (-march=type). Resets + thumb, fpu, float-abi, etc. defaults when set" +ac_help="$ac_help + --with-thumb[[=yes|no|toolchain-default]] + Use Thumb instruction set (-mthumb)" +ac_help="$ac_help + --with-thumb-interwork[[=yes|no|toolchain-default]] + Use Thumb/ARM instuctions interwork (-mthumb-interwork)" +ac_help="$ac_help + --with-fpu=[[type|toolchain-default]] + Use specific FPU type (-mfpu=type)" +ac_help="$ac_help + --with-float-abi=[[type|toolchain-default]] + Use specific arm float ABI (-mfloat-abi=type)" +ac_help="$ac_help + --with-soft-float[[=yes|no|toolchain-default]] + Use soft float library (-msoft-float)" +ac_help="$ac_help + --enable-address-sanitizer Enable Address Sanitizer (default=no)" +ac_help="$ac_help + --enable-memory-sanitizer Enable Memory Sanitizer (default=no)" +ac_help="$ac_help + --enable-thread-sanitizer Enable Thread Sanitizer (default=no)" +ac_help="$ac_help + --enable-llvm-hacks Enable workarounds required for several LLVM instrumentations (default=no)" +ac_help="$ac_help + --disable-ion Disable use of the IonMonkey JIT" +ac_help="$ac_help + --with-debug-label=LABELS + Define DEBUG_ for each comma-separated + value given." +ac_help="$ac_help + --enable-cpp-rtti Enable C++ RTTI " +ac_help="$ac_help + --enable-gold Enable GNU Gold Linker when it is not already the default" +ac_help="$ac_help + --disable-icf Disable Identical Code Folding" +ac_help="$ac_help + --enable-pie Enable Position Independent Executables" +ac_help="$ac_help + --enable-dtrace build with dtrace support if available (default=no)" +ac_help="$ac_help + --with-pthreads Force use of system pthread library with NSPR " +ac_help="$ac_help + --with-nspr-cflags=FLAGS + Pass FLAGS to CC when building code that uses NSPR. + Use this when there's no accurate nspr-config + script available. This is the case when building + SpiderMonkey as part of the Mozilla tree: the + top-level configure script computes NSPR flags + that accomodate the quirks of that environment." +ac_help="$ac_help + --with-nspr-libs=LIBS Pass LIBS to LD when linking code that uses NSPR. + See --with-nspr-cflags for more details." +ac_help="$ac_help + --enable-nspr-build Build NSPR from source tree" +ac_help="$ac_help + --with-system-nspr Use an NSPR that is already built and installed. + Use the 'nspr-config' script in the current path, + or look for the script in the directories given with + --with-nspr-exec-prefix or --with-nspr-prefix. + (Those flags are only checked if you specify + --with-system-nspr.)" +ac_help="$ac_help + --enable-posix-nspr-emulation + Enable emulation of NSPR for POSIX systems" +ac_help="$ac_help + --with-nspr-prefix=PFX Prefix where NSPR is installed" +ac_help="$ac_help + --with-nspr-exec-prefix=PFX + Exec prefix where NSPR is installed" +ac_help="$ac_help + --with-system-zlib[=PFX] + Use system libz [installed at prefix PFX]" +ac_help="$ac_help + --enable-ui-locale=ab-CD + Select the user interface locale (default: en-US)" +ac_help="$ac_help + --disable-optimize Disable compiler optimization + --enable-optimize=[OPT] Specify compiler optimization flags [OPT=-O]" +ac_help="$ac_help + --disable-trace-logging Disable trace logging" +ac_help="$ac_help + --enable-small-chunk-size Allocate memory for JS GC things in smaller chunks" +ac_help="$ac_help + --enable-valgrind Enable Valgrind integration hooks (default=no)" +ac_help="$ac_help + --enable-simulator=ARCH + Enable a JIT code simulator for the specified arch. + (arm, arm64, mips32, mips64)." +ac_help="$ac_help + --enable-jitspew Enable the Jit spew and IONFLAGS." +ac_help="$ac_help + --enable-gczeal Enable zealous GCing" +ac_help="$ac_help + --enable-oom-breakpoint + Enable a breakpoint function for artificial OOMs" +ac_help="$ac_help + --enable-clang-plugin Enable building with the mozilla clang plugin " +ac_help="$ac_help + --with-sixgill=path/to/sixgill + Enable static checking of code using sixgill" +ac_help="$ac_help + --enable-strip Enable stripping of libs & executables " +ac_help="$ac_help + --enable-install-strip Enable stripping of libs & executables when packaging " +ac_help="$ac_help + --jitreport-granularity=N + Default granularity at which to report JIT code + to external tools + 0 - no info + 1 - code ranges for whole functions only + 2 - per-line information + 3 - per-op information" +ac_help="$ac_help + --enable-readline Link js shell to system readline library" +ac_help="$ac_help + --with-qemu-exe=path Use path as an arm emulator on host platforms" +ac_help="$ac_help + --with-cross-lib=dir Use dir as the location for arm libraries" +ac_help="$ac_help + --with-system-icu + Use system ICU (located with pkgconfig)" +ac_help="$ac_help + --with-intl-api, --with-intl-api=build, --without-intl-api + Determine the status of the ECMAScript Internationalization API. The first + (or lack of any of these) builds and exposes the API. The second builds it + but doesn't use ICU or expose the API to script. The third doesn't build + ICU at all." + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; echo "configure: error: $ac_feature: invalid feature name" 1>&5; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; echo "configure: error: $ac_feature: invalid feature name" 1>&5; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; echo "configure: error: $ac_package: invalid package name" 1>&5; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; echo "configure: error: $ac_package: invalid package name" 1>&5; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&5; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; echo "configure: error: can only configure for one host and one target at a time" 1>&5; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&5; exit 1; } +fi + +if test -z "$srcdir"; then + srcdir=`dirname "$0"` +fi +srcdir="$srcdir/../.." +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=js/src/jsapi.h + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; echo "configure: error: can not find sources in $ac_confdir or .." 1>&5; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; echo "configure: error: can not find sources in $srcdir" 1>&5; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +> subconfigures +> skip_subconfigures + + +ac_aux_dir= +for ac_dir in ${srcdir}/build/autoconf $srcdir/${srcdir}/build/autoconf; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ${srcdir}/build/autoconf $srcdir/${srcdir}/build/autoconf" 1>&2; echo "configure: error: can not find install-sh or install.sh in ${srcdir}/build/autoconf $srcdir/${srcdir}/build/autoconf" 1>&5; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Do some error checking and defaulting for the host and target type. +# The inputs are: +# configure --host=HOST --target=TARGET --build=BUILD NONOPT +# +# The rules are: +# 1. You are not allowed to specify --host, --target, and nonopt at the +# same time. +# 2. Host defaults to nonopt. +# 3. If nonopt is not specified, then host defaults to the current host, +# as determined by config.guess. +# 4. Target and build default to nonopt. +# 5. If nonopt is not specified, then target and build default to host. + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +case $host---$target---$nonopt in +NONE---*---* | *---NONE---* | *---*---NONE) ;; +*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; echo "configure: error: can only configure for one host and one target at a time" 1>&5; exit 1; } ;; +esac + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; echo "configure: error: can not run $ac_config_sub" 1>&5; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:739: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; echo "configure: error: can not guess host type; you must specify one" 1>&5; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + +echo $ac_n "checking target system type""... $ac_c" 1>&6 +echo "configure:760: checking target system type" >&5 + +target_alias=$target +case "$target_alias" in +NONE) + case $nonopt in + NONE) target_alias=$host_alias ;; + *) target_alias=$nonopt ;; + esac ;; +esac + +target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` +target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$target" 1>&6 + +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:778: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + +test "$host_alias" != "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + + +CFLAGS="${CFLAGS=}" +CPPFLAGS="${CPPFLAGS=}" +CXXFLAGS="${CXXFLAGS=}" +LDFLAGS="${LDFLAGS=}" +HOST_CFLAGS="${HOST_CFLAGS=}" +HOST_CXXFLAGS="${HOST_CXXFLAGS=}" +HOST_LDFLAGS="${HOST_LDFLAGS=}" + +_SUBDIR_CC="$CC" +_SUBDIR_CXX="$CXX" +_SUBDIR_CFLAGS="$CFLAGS" +_SUBDIR_CPPFLAGS="$CPPFLAGS" +_SUBDIR_CXXFLAGS="$CXXFLAGS" +_SUBDIR_LDFLAGS="$LDFLAGS" +_SUBDIR_HOST_CC="$HOST_CC" +_SUBDIR_HOST_CFLAGS="$HOST_CFLAGS" +_SUBDIR_HOST_CXXFLAGS="$HOST_CXXFLAGS" +_SUBDIR_HOST_LDFLAGS="$HOST_LDFLAGS" +_SUBDIR_CONFIG_ARGS="$ac_configure_args" + +NSPR_VERSION=4 +NSPR_MINVER=4.9.2 + +WINDRES_VERSION=2.14.90 +W32API_VERSION=3.14 + +MISSING_X= + +USE_PTHREADS= +_PTHREAD_LDFLAGS="" + +_topsrcdir=`cd $srcdir; pwd -W 2>/dev/null || pwd -P` +_objdir=`pwd -P` + +MOZ_BUILD_ROOT=`pwd -W 2>/dev/null || pwd -P` + + + if test -z "$MOZILLA_OFFICIAL"; then + DEVELOPER_OPTIONS=1 + fi + # Check whether --enable-release or --disable-release was given. +if test "${enable_release+set}" = set; then + enableval="$enable_release" + if test "$enableval" = "yes"; then + DEVELOPER_OPTIONS= + elif test "$enableval" = "no"; then + DEVELOPER_OPTIONS=1 + else + { echo "configure: error: Option, release, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, release, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + +if test -z "$CROSS_COMPILE"; then +case "$target" in +*-mingw*) + if test -z "$CPP"; then CPP="$CC -E -nologo"; fi + if test -z "$CXXCPP"; then CXXCPP="$CXX -TP -E -nologo"; ac_cv_prog_CXXCPP="$CXXCPP"; fi + if test -z "$AS"; then + case "${target_cpu}" in + i*86) + AS=ml; + ;; + x86_64) + AS=ml64; + ;; + esac + fi + if test -z "$MIDL"; then MIDL=midl; fi + + # need override this flag since we don't use $(LDFLAGS) for this. + if test -z "$HOST_LDFLAGS" ; then + HOST_LDFLAGS=" " + fi + ;; +esac +fi + + +if test -z "$JS_STANDALONE"; then + autoconfmk=autoconf-js.mk + #DIST is exported from top-level configure +else + DIST="$MOZ_BUILD_ROOT/dist" +fi + + + + +# Check whether --with-android-cxx-stl or --without-android-cxx-stl was given. +if test "${with_android_cxx_stl+set}" = set; then + withval="$with_android_cxx_stl" + android_cxx_stl=$withval +else + android_cxx_stl=libc++ +fi + + +case "$target" in +*-android*|*-linuxandroid*) + CPPFLAGS="-idirafter $android_platform/usr/include $CPPFLAGS" + CFLAGS="-fno-short-enums -fno-exceptions $CFLAGS" + CXXFLAGS="-fno-short-enums -fno-exceptions $CXXFLAGS" + ASFLAGS="-idirafter $android_platform/usr/include -DANDROID $ASFLAGS" + + LDFLAGS="-L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform -Wl,--allow-shlib-undefined $LDFLAGS" + LIBS="-llog $LIBS" + ANDROID_PLATFORM="${android_platform}" + + cat >> confdefs.pytmp <<\EOF + (''' ANDROID ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define ANDROID 1 +EOF + + + + ;; +esac + + + +if test -n "$gonkdir" ; then + LDFLAGS="-L$gonkdir/out/target/product/$GONK_PRODUCT/obj/lib -Wl,-rpath-link=$gonkdir/out/target/product/$GONK_PRODUCT/obj/lib --sysroot=$gonkdir/out/target/product/$GONK_PRODUCT/obj/ -llog $LDFLAGS" +fi + +case "$target" in +*-apple-darwin*) + + +# Check whether --with-ios-sdk or --without-ios-sdk was given. +if test "${with_ios_sdk+set}" = set; then + withval="$with_ios_sdk" + ios_sdk=$withval +fi + + +# Check whether --enable-ios-target or --disable-ios-target was given. +if test "${enable_ios_target+set}" = set; then + enableval="$enable_ios_target" + _IOS_TARGET=$enableval +fi + +_IOS_TARGET_DEFAULT=8.0 + +case "$target" in +arm*-apple-darwin*) + if test -z "$ios_sdk" -o "$ios_sdk" = "yes"; then + ios_sdk=iphoneos + fi + case "$ios_sdk" in + iphoneos*) + ios_target_arg="-miphoneos-version-min" + ;; + *) + { echo "configure: error: Only 'iphoneos' SDKs are valid when targeting iOS device, don't know what to do with '$ios_sdk'." 1>&2; echo "configure: error: Only 'iphoneos' SDKs are valid when targeting iOS device, don't know what to do with '$ios_sdk'." 1>&5; exit 1; } + ;; + esac + ;; +*-apple-darwin*) + ios_target_arg="-mios-simulator-version-min" + case "$ios_sdk" in + # Empty SDK is okay, this might be an OS X desktop build. + ""|iphonesimulator*) + ;; + # Default to iphonesimulator + yes) + ios_sdk=iphonesimulator + ;; + *) + { echo "configure: error: Only 'iphonesimulator' SDKs are valid when targeting iOS simulator." 1>&2; echo "configure: error: Only 'iphonesimulator' SDKs are valid when targeting iOS simulator." 1>&5; exit 1; } + ;; + esac + ;; +esac + + +if test -n "$ios_sdk"; then + if test -z "$_IOS_TARGET"; then + _IOS_TARGET=$_IOS_TARGET_DEFAULT + ios_target_arg="${ios_target_arg}=${_IOS_TARGET}" + fi + # Ensure that xcrun knows where this SDK is. + ios_sdk_path=`xcrun --sdk $ios_sdk --show-sdk-path 2>/dev/null` + _ret=$? + if test $_ret -ne 0; then + { echo "configure: error: iOS SDK '$ios_sdk' could not be found." 1>&2; echo "configure: error: iOS SDK '$ios_sdk' could not be found." 1>&5; exit 1; } + fi + MOZ_IOS=1 + export HOST_CC=clang + export HOST_CXX=clang++ + # Add isysroot, arch, and ios target arguments + case "$target_cpu" in + arm*) + ARGS="-arch armv7" + ;; + *) + # Unfortunately simulator builds need this. + export CROSS_COMPILE=1 + ;; + esac + ARGS=" $ARGS -isysroot $ios_sdk_path $ios_target_arg" + # Now find our tools + + +_prog_name=clang + +echo $ac_n "checking for $_prog_name in iOS SDK""... $ac_c" 1>&6 +echo "configure:1010: checking for $_prog_name in iOS SDK" >&5 +if eval "test \"`echo '$''{'ac_cv_ios_path_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +_path=`xcrun --sdk $ios_sdk --find $_prog_name 2>/dev/null` +_res=$? +if test $_res -ne 0; then + { echo "configure: error: Could not find '$_prog_name' in the iOS SDK" 1>&2; echo "configure: error: Could not find '$_prog_name' in the iOS SDK" 1>&5; exit 1; } +fi +ac_cv_ios_path_CC=$_path + +fi + +echo "$ac_t""$ac_cv_ios_path_CC" 1>&6 +CC="${ac_cv_ios_path_CC}$ARGS" + + + +_prog_name=clang++ + +echo $ac_n "checking for $_prog_name in iOS SDK""... $ac_c" 1>&6 +echo "configure:1032: checking for $_prog_name in iOS SDK" >&5 +if eval "test \"`echo '$''{'ac_cv_ios_path_CXX'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +_path=`xcrun --sdk $ios_sdk --find $_prog_name 2>/dev/null` +_res=$? +if test $_res -ne 0; then + { echo "configure: error: Could not find '$_prog_name' in the iOS SDK" 1>&2; echo "configure: error: Could not find '$_prog_name' in the iOS SDK" 1>&5; exit 1; } +fi +ac_cv_ios_path_CXX=$_path + +fi + +echo "$ac_t""$ac_cv_ios_path_CXX" 1>&6 +CXX="${ac_cv_ios_path_CXX}$ARGS" + + export CPP="$CC -E" + export LD="$CXX" + + +_prog_name=`echo AR | tr "[:upper:]" "[:lower:]"` + +echo $ac_n "checking for $_prog_name in iOS SDK""... $ac_c" 1>&6 +echo "configure:1056: checking for $_prog_name in iOS SDK" >&5 +if eval "test \"`echo '$''{'ac_cv_ios_path_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +_path=`xcrun --sdk $ios_sdk --find $_prog_name 2>/dev/null` +_res=$? +if test $_res -ne 0; then + { echo "configure: error: Could not find '$_prog_name' in the iOS SDK" 1>&2; echo "configure: error: Could not find '$_prog_name' in the iOS SDK" 1>&5; exit 1; } +fi +ac_cv_ios_path_AR=$_path + +fi + +echo "$ac_t""$ac_cv_ios_path_AR" 1>&6 +AR="${ac_cv_ios_path_AR}" + + + +_prog_name=as + +echo $ac_n "checking for $_prog_name in iOS SDK""... $ac_c" 1>&6 +echo "configure:1078: checking for $_prog_name in iOS SDK" >&5 +if eval "test \"`echo '$''{'ac_cv_ios_path_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +_path=`xcrun --sdk $ios_sdk --find $_prog_name 2>/dev/null` +_res=$? +if test $_res -ne 0; then + { echo "configure: error: Could not find '$_prog_name' in the iOS SDK" 1>&2; echo "configure: error: Could not find '$_prog_name' in the iOS SDK" 1>&5; exit 1; } +fi +ac_cv_ios_path_AS=$_path + +fi + +echo "$ac_t""$ac_cv_ios_path_AS" 1>&6 +AS="${ac_cv_ios_path_AS}$ARGS" + + + +_prog_name=`echo OTOOL | tr "[:upper:]" "[:lower:]"` + +echo $ac_n "checking for $_prog_name in iOS SDK""... $ac_c" 1>&6 +echo "configure:1100: checking for $_prog_name in iOS SDK" >&5 +if eval "test \"`echo '$''{'ac_cv_ios_path_OTOOL'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +_path=`xcrun --sdk $ios_sdk --find $_prog_name 2>/dev/null` +_res=$? +if test $_res -ne 0; then + { echo "configure: error: Could not find '$_prog_name' in the iOS SDK" 1>&2; echo "configure: error: Could not find '$_prog_name' in the iOS SDK" 1>&5; exit 1; } +fi +ac_cv_ios_path_OTOOL=$_path + +fi + +echo "$ac_t""$ac_cv_ios_path_OTOOL" 1>&6 +OTOOL="${ac_cv_ios_path_OTOOL}" + + + +_prog_name=`echo STRIP | tr "[:upper:]" "[:lower:]"` + +echo $ac_n "checking for $_prog_name in iOS SDK""... $ac_c" 1>&6 +echo "configure:1122: checking for $_prog_name in iOS SDK" >&5 +if eval "test \"`echo '$''{'ac_cv_ios_path_STRIP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +_path=`xcrun --sdk $ios_sdk --find $_prog_name 2>/dev/null` +_res=$? +if test $_res -ne 0; then + { echo "configure: error: Could not find '$_prog_name' in the iOS SDK" 1>&2; echo "configure: error: Could not find '$_prog_name' in the iOS SDK" 1>&5; exit 1; } +fi +ac_cv_ios_path_STRIP=$_path + +fi + +echo "$ac_t""$ac_cv_ios_path_STRIP" 1>&6 +STRIP="${ac_cv_ios_path_STRIP}" + + export PKG_CONFIG_PATH=${ios_sdk_path}/usr/lib/pkgconfig/ +fi + + + + ;; +esac + + +AR_FLAGS='crs $@' + +if test "$COMPILE_ENVIRONMENT"; then + +# Note: +# In Mozilla, we use the names $target, $host and $build incorrectly, but are +# too far gone to back out now. See Bug 475488: +# - When we say $target, we mean $host, that is, the system on which +# Mozilla will be run. +# - When we say $host, we mean $build, that is, the system on which Mozilla +# is built. +# - $target (in its correct usage) is for compilers who generate code for a +# different platform than $host, so it would not be used by Mozilla. +if test "$target" != "$host"; then + +echo "cross compiling from $host to $target" + +if test -z "$HOST_AR_FLAGS"; then + HOST_AR_FLAGS="$AR_FLAGS" +fi +for ac_prog in $HOST_RANLIB ranlib +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1173: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_HOST_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$HOST_RANLIB"; then + ac_cv_prog_HOST_RANLIB="$HOST_RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy=":" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_HOST_RANLIB="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +HOST_RANLIB="$ac_cv_prog_HOST_RANLIB" +if test -n "$HOST_RANLIB"; then + echo "$ac_t""$HOST_RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$HOST_RANLIB" && break +done +test -n "$HOST_RANLIB" || HOST_RANLIB="ranlib" + +for ac_prog in $HOST_AR ar +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1208: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_HOST_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$HOST_AR"; then + ac_cv_prog_HOST_AR="$HOST_AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy=":" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_HOST_AR="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +HOST_AR="$ac_cv_prog_HOST_AR" +if test -n "$HOST_AR"; then + echo "$ac_t""$HOST_AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$HOST_AR" && break +done +test -n "$HOST_AR" || HOST_AR="ar" + + +_SAVE_PATH=$PATH +case "${TOOLCHAIN_PREFIX}" in +/*) + PATH="/:$PATH" + ;; +esac +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1248: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1278: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1329: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; echo "configure: error: no acceptable cc found in \$PATH" 1>&5; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:1361: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 1372 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:1377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&5; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:1403: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1408: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1436: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi + +for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1472: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CXX="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CXX="$ac_cv_prog_CXX" +if test -n "$CXX"; then + echo "$ac_t""$CXX" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$CXX" && break +done +test -n "$CXX" || CXX="gcc" + + +echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:1504: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + +cat > conftest.$ac_ext << EOF + +#line 1515 "configure" +#include "confdefs.h" + +int main(){return(0);} +EOF +if { (eval echo configure:1520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cxx_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cxx_cross=no + else + ac_cv_prog_cxx_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cxx_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6 +if test $ac_cv_prog_cxx_works = no; then + { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&5; exit 1; } +fi +echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:1546: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 +cross_compiling=$ac_cv_prog_cxx_cross + +echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 +echo "configure:1551: checking whether we are using GNU C++" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.C <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gxx=yes +else + ac_cv_prog_gxx=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gxx" 1>&6 + +if test $ac_cv_prog_gxx = yes; then + GXX=yes +else + GXX= +fi + +ac_test_CXXFLAGS="${CXXFLAGS+set}" +ac_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS= +echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 +echo "configure:1579: checking whether ${CXX-g++} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.cc +if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then + ac_cv_prog_cxx_g=yes +else + ac_cv_prog_cxx_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS="$ac_save_CXXFLAGS" +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi + + +for ac_prog in "${TOOLCHAIN_PREFIX}ranlib" +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1616: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$RANLIB" && break +done +test -n "$RANLIB" || RANLIB=":" + +for ac_prog in "${TOOLCHAIN_PREFIX}ar" +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1651: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$AR" && break +done +test -n "$AR" || AR=":" + +for ac_prog in "${TOOLCHAIN_PREFIX}as" +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1686: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$AS" && break +done +test -n "$AS" || AS=":" + +for ac_prog in "${TOOLCHAIN_PREFIX}ld" +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1721: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$LD"; then + ac_cv_prog_LD="$LD" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_LD="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +LD="$ac_cv_prog_LD" +if test -n "$LD"; then + echo "$ac_t""$LD" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$LD" && break +done +test -n "$LD" || LD=":" + +for ac_prog in "${TOOLCHAIN_PREFIX}lipo" +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1756: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_LIPO'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_LIPO="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +LIPO="$ac_cv_prog_LIPO" +if test -n "$LIPO"; then + echo "$ac_t""$LIPO" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$LIPO" && break +done +test -n "$LIPO" || LIPO=":" + +for ac_prog in "${TOOLCHAIN_PREFIX}strip" +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1791: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_STRIP="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +STRIP="$ac_cv_prog_STRIP" +if test -n "$STRIP"; then + echo "$ac_t""$STRIP" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$STRIP" && break +done +test -n "$STRIP" || STRIP=":" + +for ac_prog in "${TOOLCHAIN_PREFIX}windres" +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1826: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$WINDRES"; then + ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_WINDRES="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +WINDRES="$ac_cv_prog_WINDRES" +if test -n "$WINDRES"; then + echo "$ac_t""$WINDRES" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$WINDRES" && break +done +test -n "$WINDRES" || WINDRES=":" + +for ac_prog in "${TOOLCHAIN_PREFIX}otool" +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1861: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_OTOOL'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_OTOOL="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +OTOOL="$ac_cv_prog_OTOOL" +if test -n "$OTOOL"; then + echo "$ac_t""$OTOOL" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$OTOOL" && break +done +test -n "$OTOOL" || OTOOL=":" + +for ac_prog in "${TOOLCHAIN_PREFIX}objcopy" +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1896: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$OBJCOPY"; then + ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_OBJCOPY="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +OBJCOPY="$ac_cv_prog_OBJCOPY" +if test -n "$OBJCOPY"; then + echo "$ac_t""$OBJCOPY" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$OBJCOPY" && break +done +test -n "$OBJCOPY" || OBJCOPY=":" + +PATH=$_SAVE_PATH + +else + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1932: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1962: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2013: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; echo "configure: error: no acceptable cc found in \$PATH" 1>&5; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:2045: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 2056 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:2061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&5; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:2087: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:2092: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:2120: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi + + for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2156: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CXX="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CXX="$ac_cv_prog_CXX" +if test -n "$CXX"; then + echo "$ac_t""$CXX" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$CXX" && break +done +test -n "$CXX" || CXX="gcc" + + +echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:2188: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + +cat > conftest.$ac_ext << EOF + +#line 2199 "configure" +#include "confdefs.h" + +int main(){return(0);} +EOF +if { (eval echo configure:2204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cxx_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cxx_cross=no + else + ac_cv_prog_cxx_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cxx_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6 +if test $ac_cv_prog_cxx_works = no; then + { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&5; exit 1; } +fi +echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:2230: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 +cross_compiling=$ac_cv_prog_cxx_cross + +echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 +echo "configure:2235: checking whether we are using GNU C++" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.C <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gxx=yes +else + ac_cv_prog_gxx=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gxx" 1>&6 + +if test $ac_cv_prog_gxx = yes; then + GXX=yes +else + GXX= +fi + +ac_test_CXXFLAGS="${CXXFLAGS+set}" +ac_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS= +echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 +echo "configure:2263: checking whether ${CXX-g++} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.cc +if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then + ac_cv_prog_cxx_g=yes +else + ac_cv_prog_cxx_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS="$ac_save_CXXFLAGS" +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi + + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2297: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + for ac_prog in $AS as +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2329: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$AS" in + /*) + ac_cv_path_AS="$AS" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_AS="$AS" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_AS="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +AS="$ac_cv_path_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$AS" && break +done +test -n "$AS" || AS="$CC" + + if test "$msyshost"; then + case "$AS" in + /*) + tmp_DIRNAME=`dirname "$AS"` + tmp_BASENAME=`basename "$AS"` + tmp_PWD=`cd "$tmp_DIRNAME" && pwd -W` + AS="$tmp_PWD/$tmp_BASENAME" + if test -e "$AS.exe"; then + AS="$AS.exe" + fi + esac + fi + + for ac_prog in ar +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2383: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$AR" && break +done +test -n "$AR" || AR=":" + + for ac_prog in ld +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2418: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$LD"; then + ac_cv_prog_LD="$LD" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_LD="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +LD="$ac_cv_prog_LD" +if test -n "$LD"; then + echo "$ac_t""$LD" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$LD" && break +done +test -n "$LD" || LD=":" + + for ac_prog in strip +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2453: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_STRIP="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +STRIP="$ac_cv_prog_STRIP" +if test -n "$STRIP"; then + echo "$ac_t""$STRIP" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$STRIP" && break +done +test -n "$STRIP" || STRIP=":" + + for ac_prog in windres +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2488: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$WINDRES"; then + ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_WINDRES="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +WINDRES="$ac_cv_prog_WINDRES" +if test -n "$WINDRES"; then + echo "$ac_t""$WINDRES" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$WINDRES" && break +done +test -n "$WINDRES" || WINDRES=":" + + if test -z "$HOST_CC"; then + HOST_CC='$(CC)' + fi + if test -z "$HOST_CXX"; then + HOST_CXX='$(CXX)' + fi + if test -z "$HOST_RANLIB"; then + HOST_RANLIB='$(RANLIB)' + fi + if test -z "$HOST_AR"; then + HOST_AR='$(AR)' + fi + if test -z "$HOST_AR_FLAGS"; then + HOST_AR_FLAGS='$(AR_FLAGS)' + fi +fi + + +GNU_AS= +GNU_LD= + +GNU_CC= +GNU_CXX= +if test "$CC_TYPE" = "gcc"; then + GNU_CC=1 + GNU_CXX=1 +fi + +if test "`echo | $AS -o conftest.out -v 2>&1 | grep -c GNU`" != "0"; then + GNU_AS=1 +fi +rm -f conftest.out +if test "`echo | $LD -v 2>&1 | grep -c GNU`" != "0"; then + GNU_LD=1 +fi + +CLANG_CC= +CLANG_CXX= +CLANG_CL= +if test "$CC_TYPE" = "clang"; then + GNU_CC=1 + GNU_CXX=1 + CLANG_CC=1 + CLANG_CXX=1 +fi +if test "$CC_TYPE" = "clang-cl"; then + CLANG_CL=1 +fi + +if test "$GNU_CC"; then + if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then + GCC_USE_GNU_LD=1 + fi +fi + + + + + + +# Target the Windows 8.1 SDK by default +WINVER=502 + +case "$target" in +*-mingw*) + if test "$GCC" != "yes"; then + # Check to see if we are really running in a msvc environemnt + _WIN32_MSVC=1 + + # Make sure compilers are valid + CFLAGS="$CFLAGS -TC -nologo" + CXXFLAGS="$CXXFLAGS -TP -nologo" + if test -z "$CLANG_CL"; then + CFLAGS="$CFLAGS -utf-8" + CXXFLAGS="$CXXFLAGS -utf-8" + fi + # MSVC warning C4345 warns of newly conformant behavior as of VS2003. + # MSVC warning C4351 warns of newly conformant behavior as of VS2005. + # MSVC warning C4800 warns when a value is implicitly cast to bool, + # because this also forces narrowing to a single byte, which can be a + # perf hit. But this matters so little in practice (and often we want + # that behavior) that it's better to turn it off. + # _CRT_SECURE_NO_WARNINGS disables warnings about using MSVC-specific + # secure CRT functions. + # MSVC warning wd4595 warns non-member operator new or delete functions + # may not be declared inline, as of VS2015 Update 2. + CXXFLAGS="$CXXFLAGS -wd4345 -wd4351 -wd4800 -wd4595 -D_CRT_SECURE_NO_WARNINGS" + + ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + cat > conftest.$ac_ext < +int main() { + printf("Hello World\n"); +; return 0; } +EOF +if { (eval echo configure:2621: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + { echo "configure: error: \$(CC) test failed. You must have MS VC++ in your path to build." 1>&2; echo "configure: error: \$(CC) test failed. You must have MS VC++ in your path to build." 1>&5; exit 1; } +fi +rm -f conftest* + + ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + + cat > conftest.$ac_ext < +int main() { + unsigned *test = new unsigned(42); +; return 0; } +EOF +if { (eval echo configure:2646: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + { echo "configure: error: \$(CXX) test failed. You must have MS VC++ in your path to build." 1>&2; echo "configure: error: \$(CXX) test failed. You must have MS VC++ in your path to build." 1>&5; exit 1; } +fi +rm -f conftest* + ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + + + _MSVC_VER_FILTER='s|.*[^!-~]([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?).*|\1|p' + + + _MSC_VER=`echo ${CC_VERSION} | cut -c 1-2,4-5` + + cat >> confdefs.pytmp <<\EOF + (''' _CRT_SECURE_NO_WARNINGS ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define _CRT_SECURE_NO_WARNINGS 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' _CRT_NONSTDC_NO_WARNINGS ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define _CRT_NONSTDC_NO_WARNINGS 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' _USE_MATH_DEFINES ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define _USE_MATH_DEFINES 1 +EOF + # Otherwise MSVC's math.h doesn't #define M_PI. + + case "$CC_VERSION" in + 19*) + _CC_SUITE=14 + MSVS_VERSION=2015 + MSVC_C_RUNTIME_DLL=vcruntime140.dll + MSVC_CXX_RUNTIME_DLL=msvcp140.dll + + # C5026: move constructor was implicitly defined as deleted + CXXFLAGS="$CXXFLAGS -wd5026" + + # C5027: move assignment operator was implicitly defined as deleted + CXXFLAGS="$CXXFLAGS -wd5027" + + # -Zc:sizedDealloc- disables C++14 global sized deallocation (see bug 1160146) + CXXFLAGS="$CXXFLAGS -Zc:sizedDealloc-" + + # Disable C++11 thread-safe statics due to crashes on XP (bug 1204752) + # See https://connect.microsoft.com/VisualStudio/feedback/details/1789709/visual-c-2015-runtime-broken-on-windows-server-2003-c-11-magic-statics + CXXFLAGS="$CXXFLAGS -Zc:threadSafeInit-" + ;; + esac + + + + + # Check linker version + _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"` + _LD_MAJOR_VERSION=`echo ${_LD_FULL_VERSION} | $AWK -F\. '{ print $1 }'` + if test "$_LD_MAJOR_VERSION" != "$_CC_SUITE"; then + { echo "configure: error: The linker major version, $_LD_FULL_VERSION, does not match the compiler suite version, $_CC_SUITE." 1>&2; echo "configure: error: The linker major version, $_LD_FULL_VERSION, does not match the compiler suite version, $_CC_SUITE." 1>&5; exit 1; } + fi + + INCREMENTAL_LINKER=1 + + unset _MSVC_VER_FILTER + + CFLAGS="$CFLAGS -D_HAS_EXCEPTIONS=0" + CXXFLAGS="$CXXFLAGS -D_HAS_EXCEPTIONS=0" + else + # Check w32api version + _W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'` + _W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'` + echo $ac_n "checking for w32api version >= $W32API_VERSION""... $ac_c" 1>&6 +echo "configure:2734: checking for w32api version >= $W32API_VERSION" >&5 + cat > conftest.$ac_ext < +int main() { +#if (__W32API_MAJOR_VERSION < $_W32API_MAJOR_VERSION) || \ + (__W32API_MAJOR_VERSION == $_W32API_MAJOR_VERSION && \ + __W32API_MINOR_VERSION < $_W32API_MINOR_VERSION) + #error "test failed." + #endif + +; return 0; } +EOF +if { (eval echo configure:2748: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + res=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + res=no +fi +rm -f conftest* + echo "$ac_t""$res" 1>&6 + if test "$res" != "yes"; then + { echo "configure: error: w32api version $W32API_VERSION or higher required." 1>&2; echo "configure: error: w32api version $W32API_VERSION or higher required." 1>&5; exit 1; } + fi + # Check windres version + echo $ac_n "checking for windres version >= $WINDRES_VERSION""... $ac_c" 1>&6 +echo "configure:2764: checking for windres version >= $WINDRES_VERSION" >&5 + _WINDRES_VERSION=`${WINDRES} --version 2>&1 | grep -i windres 2>/dev/null | $AWK '{ print $3 }'` + echo "$ac_t""$_WINDRES_VERSION" 1>&6 + _WINDRES_MAJOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $1 }'` + _WINDRES_MINOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $2 }'` + _WINDRES_RELEASE_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $3 }'` + WINDRES_MAJOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $1 }'` + WINDRES_MINOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $2 }'` + WINDRES_RELEASE_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $3 }'` + if test "$_WINDRES_MAJOR_VERSION" -lt "$WINDRES_MAJOR_VERSION" -o \ + "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \ + "$_WINDRES_MINOR_VERSION" -lt "$WINDRES_MINOR_VERSION" -o \ + "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \ + "$_WINDRES_MINOR_VERSION" -eq "$WINDRES_MINOR_VERSION" -a \ + "$_WINDRES_RELEASE_VERSION" -lt "$WINDRES_RELEASE_VERSION" + then + { echo "configure: error: windres version $WINDRES_VERSION or higher is required to build." 1>&2; echo "configure: error: windres version $WINDRES_VERSION or higher is required to build." 1>&5; exit 1; } + fi + fi # !GNU_CC + + cat >> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <<\EOF + (''' HAVE_LOCALECONV ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_LOCALECONV 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' HAVE_HYPOT ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_HYPOT 1 +EOF + + for ac_func in _getc_nolock +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2837: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#undef $ac_func +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.pytmp <> confdefs.h <&6 +fi +done + +fi + +fi # COMPILE_ENVIRONMENT + +# Check to see if we are running in a broken QEMU scratchbox. +# We know that anything below 1.0.16 is broken. +for ac_prog in sb-conf ve +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2907: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_SBCONF'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$SBCONF"; then + ac_cv_prog_SBCONF="$SBCONF" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_SBCONF="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +SBCONF="$ac_cv_prog_SBCONF" +if test -n "$SBCONF"; then + echo "$ac_t""$SBCONF" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$SBCONF" && break +done +test -n "$SBCONF" || SBCONF="""" + +if test -n "$SBCONF"; then + _sb_version=`$SBCONF ve` + _sb_version_major=`echo $_sb_version | cut -f1 -d.` + _sb_version_minor=`echo $_sb_version | cut -f2 -d.` + _sb_version_point=`echo $_sb_version | cut -f3 -d.` + if test $_sb_version_major -eq 1 -a $_sb_version_minor -eq 0 -a $_sb_version_point -le 16; then + QEMU_CANT_RUN_JS_SHELL=1 + fi +fi + + + + + + + + + +if test "$COMPILE_ENVIRONMENT"; then + + + + +MACOS_SDK_DIR= +# Check whether --with-macos-sdk or --without-macos-sdk was given. +if test "${with_macos_sdk+set}" = set; then + withval="$with_macos_sdk" + MACOS_SDK_DIR=$withval +fi + + + + +if test "$MACOS_SDK_DIR"; then + + if test ! -d "$MACOS_SDK_DIR"; then + { echo "configure: error: SDK not found. When using --with-macos-sdk, you must +specify a valid SDK. SDKs are installed when the optional cross-development +tools are selected during the Xcode/Developer Tools installation." 1>&2; echo "configure: error: SDK not found. When using --with-macos-sdk, you must +specify a valid SDK. SDKs are installed when the optional cross-development +tools are selected during the Xcode/Developer Tools installation." 1>&5; exit 1; } + fi + + CFLAGS="$CFLAGS -isysroot ${MACOS_SDK_DIR}" + CXXFLAGS="$CXXFLAGS -isysroot ${MACOS_SDK_DIR}" + + CPP="$CPP -isysroot ${MACOS_SDK_DIR}" + CXXCPP="$CXXCPP -isysroot ${MACOS_SDK_DIR}" + + + echo $ac_n "checking for valid compiler/Mac OS X SDK combination""... $ac_c" 1>&6 +echo "configure:2988: checking for valid compiler/Mac OS X SDK combination" >&5 + ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + + cat > conftest.$ac_ext < + int main() { return 0; } +int main() { +result=yes +; return 0; } +EOF +if { (eval echo configure:3005: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + result=no +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 +fi +rm -f conftest* + ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + echo "$ac_t""$result" 1>&6 + + if test "$result" = "no" ; then + { echo "configure: error: The selected compiler and Mac OS X SDK are incompatible." 1>&2; echo "configure: error: The selected compiler and Mac OS X SDK are incompatible." 1>&5; exit 1; } + fi +fi + + + +# If we find X, set shell vars x_includes and x_libraries to the +# paths, otherwise set no_x=yes. +# Uses ac_ vars as temps to allow command line to override cache and checks. +# --without-x overrides everything else, but does not touch the cache. +echo $ac_n "checking for X""... $ac_c" 1>&6 +echo "configure:3034: checking for X" >&5 + +# Check whether --with-x or --without-x was given. +if test "${with_x+set}" = set; then + withval="$with_x" + : +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then + # Both variables are already set. + have_x=yes + else +if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=NO ac_x_libraries=NO +rm -fr conftestdir +if mkdir conftestdir; then + cd conftestdir + # Make sure to not put "make" in the Imakefile rules, since we grep it out. + cat > Imakefile <<'EOF' +acfindx: + @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' +EOF + if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl; do + if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && + test -f $ac_im_libdir/libX11.$ac_extension; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case "$ac_im_incroot" in + /usr/include) ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;; + esac + case "$ac_im_usrlibdir" in + /usr/lib | /lib) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;; + esac + fi + cd .. + rm -fr conftestdir +fi + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:3101: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + # We can compile using X headers with no special include directory. +ac_x_includes= +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + # Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done +fi +rm -f conftest* +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries= +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \ + /usr/X11/lib \ + /usr/X11R6/lib \ + /usr/X11R5/lib \ + /usr/X11R4/lib \ + \ + /usr/lib/X11 \ + /usr/lib/X11R6 \ + /usr/lib/X11R5 \ + /usr/lib/X11R4 \ + \ + /usr/local/X11/lib \ + /usr/local/X11R6/lib \ + /usr/local/X11R5/lib \ + /usr/local/X11R4/lib \ + \ + /usr/local/lib/X11 \ + /usr/local/lib/X11R6 \ + /usr/local/lib/X11R5 \ + /usr/local/lib/X11R4 \ + \ + /usr/X386/lib \ + /usr/x386/lib \ + /usr/XFree86/lib/X11 \ + \ + /usr/lib \ + /usr/local/lib \ + /usr/unsupported/lib \ + /usr/athena/lib \ + /usr/local/x11r5/lib \ + /usr/lpp/Xamples/lib \ + /lib/usr/lib/X11 \ + \ + /usr/openwin/lib \ + /usr/openwin/share/lib \ + ; \ +do + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f conftest* +fi # $ac_x_libraries = NO + +if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then + # Didn't find X anywhere. Cache the known absence of X. + ac_cv_have_x="have_x=no" +else + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" +fi +fi + fi + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + echo "$ac_t""$have_x" 1>&6 + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$x_includes ac_x_libraries=$x_libraries" + echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6 +fi + +if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + cat >> confdefs.pytmp <<\EOF + (''' X_DISPLAY_MISSING ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define X_DISPLAY_MISSING 1 +EOF + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + case "`(uname -sr) 2>/dev/null`" in + "SunOS 5"*) + echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 +echo "configure:3286: checking whether -R must be followed by a space" >&5 + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_R_nospace=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_R_nospace=no +fi +rm -f conftest* + if test $ac_R_nospace = yes; then + echo "$ac_t""no" 1>&6 + X_LIBS="$X_LIBS -R$x_libraries" + else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_R_space=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_R_space=no +fi +rm -f conftest* + if test $ac_R_space = yes; then + echo "$ac_t""yes" 1>&6 + X_LIBS="$X_LIBS -R $x_libraries" + else + echo "$ac_t""neither works" 1>&6 + fi + fi + LIBS="$ac_xsave_LIBS" + esac + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And karl@cs.umb.edu says + # the Alpha needs dnet_stub (dnet does not exist). + echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 +echo "configure:3351: checking for dnet_ntoa in -ldnet" >&5 +ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldnet $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 +echo "configure:3392: checking for dnet_ntoa in -ldnet_stub" >&5 +ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldnet_stub $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to dickey@clark.net. + echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 +echo "configure:3440: checking for gethostbyname" >&5 +if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#undef gethostbyname +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname) +choke me +#else +gethostbyname(); +#endif + +; return 0; } +EOF +if { (eval echo configure:3472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_gethostbyname=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_gethostbyname=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_gethostbyname = no; then + echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 +echo "configure:3493: checking for gethostbyname in -lnsl" >&5 +ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lnsl $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says simon@lia.di.epfl.ch: it contains + # gethostby* variants that don't use the nameserver (or something). + # -lsocket must be given before -lnsl if both are needed. + # We assume that if connect needs -lnsl, so does gethostbyname. + echo $ac_n "checking for connect""... $ac_c" 1>&6 +echo "configure:3542: checking for connect" >&5 +if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#undef connect +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char connect(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_connect) || defined (__stub___connect) +choke me +#else +connect(); +#endif + +; return 0; } +EOF +if { (eval echo configure:3574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_connect=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_connect=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_connect = no; then + echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 +echo "configure:3595: checking for connect in -lsocket" >&5 +ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. + echo $ac_n "checking for remove""... $ac_c" 1>&6 +echo "configure:3638: checking for remove" >&5 +if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#undef remove +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char remove(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_remove) || defined (__stub___remove) +choke me +#else +remove(); +#endif + +; return 0; } +EOF +if { (eval echo configure:3670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_remove=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_remove=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_remove = no; then + echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 +echo "configure:3691: checking for remove in -lposix" >&5 +ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lposix $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + echo $ac_n "checking for shmat""... $ac_c" 1>&6 +echo "configure:3734: checking for shmat" >&5 +if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#undef shmat +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shmat(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_shmat) || defined (__stub___shmat) +choke me +#else +shmat(); +#endif + +; return 0; } +EOF +if { (eval echo configure:3766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_shmat=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_shmat=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_shmat = no; then + echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 +echo "configure:3787: checking for shmat in -lipc" >&5 +ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lipc $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +else + echo "$ac_t""no" 1>&6 +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS="$LDFLAGS" + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. + echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 +echo "configure:3839: checking for IceConnectionNumber in -lICE" >&5 +ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +else + echo "$ac_t""no" 1>&6 +fi + + LDFLAGS="$ac_save_LDFLAGS" + +fi + + +XCFLAGS="$X_CFLAGS" + +fi # COMPILE_ENVIRONMENT + +MOZILLA_VERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir` +MOZILLA_UAVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --uaversion` +MOZILLA_SYMBOLVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --symbolversion` +if test -z "$MOZILLA_VERSION"; then + { echo "configure: error: failed to read version info from milestone file" 1>&2; echo "configure: error: failed to read version info from milestone file" 1>&5; exit 1; } +fi + +cat >> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <> confdefs.h <&2; echo "configure: error: --with-arch is not supported on non-GNU toolchains" 1>&5; exit 1; } + fi + MOZ_ARCH=$withval +fi + + +if test -z "$MOZ_ARCH"; then + case "${CPU_ARCH}-${OS_TARGET}" in + arm-Android) + MOZ_THUMB=yes + MOZ_ARCH=armv7-a + MOZ_FPU=vfp + MOZ_FLOAT_ABI=softfp + MOZ_ALIGN=no + ;; + arm-Darwin) + MOZ_ARCH=toolchain-default + ;; + esac +fi + +if test "$MOZ_ARCH" = "armv6" -a "$OS_TARGET" = "Android"; then + MOZ_FPU=vfp + MOZ_FLOAT_ABI=softfp +fi + +# Check whether --with-thumb or --without-thumb was given. +if test "${with_thumb+set}" = set; then + withval="$with_thumb" + if test -z "$GNU_CC"; then + { echo "configure: error: --with-thumb is not supported on non-GNU toolchains" 1>&2; echo "configure: error: --with-thumb is not supported on non-GNU toolchains" 1>&5; exit 1; } + fi + MOZ_THUMB=$withval +fi + + +# Check whether --with-thumb-interwork or --without-thumb-interwork was given. +if test "${with_thumb_interwork+set}" = set; then + withval="$with_thumb_interwork" + if test -z "$GNU_CC"; then + { echo "configure: error: --with-thumb-interwork is not supported on non-GNU toolchains" 1>&2; echo "configure: error: --with-thumb-interwork is not supported on non-GNU toolchains" 1>&5; exit 1; } + fi + MOZ_THUMB_INTERWORK=$withval +fi + + +# Check whether --with-fpu or --without-fpu was given. +if test "${with_fpu+set}" = set; then + withval="$with_fpu" + if test -z "$GNU_CC"; then + { echo "configure: error: --with-fpu is not supported on non-GNU toolchains" 1>&2; echo "configure: error: --with-fpu is not supported on non-GNU toolchains" 1>&5; exit 1; } + fi + MOZ_FPU=$withval +fi + + +# Check whether --with-float-abi or --without-float-abi was given. +if test "${with_float_abi+set}" = set; then + withval="$with_float_abi" + if test -z "$GNU_CC"; then + { echo "configure: error: --with-float-abi is not supported on non-GNU toolchains" 1>&2; echo "configure: error: --with-float-abi is not supported on non-GNU toolchains" 1>&5; exit 1; } + fi + MOZ_FLOAT_ABI=$withval +fi + + +# Check whether --with-soft-float or --without-soft-float was given. +if test "${with_soft_float+set}" = set; then + withval="$with_soft_float" + if test -z "$GNU_CC"; then + { echo "configure: error: --with-soft-float is not supported on non-GNU toolchains" 1>&2; echo "configure: error: --with-soft-float is not supported on non-GNU toolchains" 1>&5; exit 1; } + fi + MOZ_SOFT_FLOAT=$withval +fi + + +case "$MOZ_ARCH" in +toolchain-default|"") + arch_flag="" + ;; +*) + arch_flag="-march=$MOZ_ARCH" + ;; +esac + +case "$MOZ_THUMB" in +yes) + MOZ_THUMB2=1 + thumb_flag="-mthumb" + ;; +no) + MOZ_THUMB2= + thumb_flag="-marm" + ;; +*) + _SAVE_CFLAGS="$CFLAGS" + CFLAGS="$arch_flag" + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + MOZ_THUMB2=1 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + MOZ_THUMB2= +fi +rm -f conftest* + CFLAGS="$_SAVE_CFLAGS" + thumb_flag="" + ;; +esac + +if test "$MOZ_THUMB2" = 1; then + cat >> confdefs.pytmp <<\EOF + (''' MOZ_THUMB2 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define MOZ_THUMB2 1 +EOF + +fi + +case "$MOZ_THUMB_INTERWORK" in +yes) + thumb_interwork_flag="-mthumb-interwork" + ;; +no) + thumb_interwork_flag="-mno-thumb-interwork" + ;; +*) # toolchain-default + thumb_interwork_flag="" + ;; +esac + +case "$MOZ_FPU" in +toolchain-default|"") + fpu_flag="" + ;; +*) + fpu_flag="-mfpu=$MOZ_FPU" + ;; +esac + +case "$MOZ_FLOAT_ABI" in +toolchain-default|"") + float_abi_flag="" + ;; +*) + float_abi_flag="-mfloat-abi=$MOZ_FLOAT_ABI" + ;; +esac + +case "$MOZ_SOFT_FLOAT" in +yes) + soft_float_flag="-msoft-float" + ;; +no) + soft_float_flag="-mno-soft-float" + ;; +*) # toolchain-default + soft_float_flag="" + ;; +esac + +case "$MOZ_ALIGN" in +no) + align_flag="-mno-unaligned-access" + ;; +yes) + align_flag="-munaligned-access" + ;; +*) + align_flag="" + ;; +esac + +if test -n "$align_flag"; then + _SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $align_flag" + echo $ac_n "checking whether alignment flag ($align_flag) is supported""... $ac_c" 1>&6 +echo "configure:4172: checking whether alignment flag ($align_flag) is supported" >&5 + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + align_flag="" +fi +rm -f conftest* + CFLAGS="$_SAVE_CFLAGS" +fi + +all_flags=`echo $arch_flag $thumb_flag $thumb_interwork_flag $fpu_flag $float_abi_flag $soft_float_flag $align_flag` +if test -n "$all_flags"; then + _SAVE_CFLAGS="$CFLAGS" + CFLAGS="$all_flags" + echo $ac_n "checking whether the chosen combination of compiler flags ($all_flags) works""... $ac_c" 1>&6 +echo "configure:4198: checking whether the chosen combination of compiler flags ($all_flags) works" >&5 + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + { echo "configure: error: no" 1>&2; echo "configure: error: no" 1>&5; exit 1; } +fi +rm -f conftest* + + CFLAGS="$_SAVE_CFLAGS $all_flags" + CXXFLAGS="$CXXFLAGS $all_flags" + ASFLAGS="$ASFLAGS $all_flags" + if test -n "$thumb_flag"; then + LDFLAGS="$LDFLAGS $thumb_flag" + fi +fi + + + +if test "$CPU_ARCH" = "arm"; then + NEON_FLAGS="-mfpu=neon" + echo $ac_n "checking for ARM SIMD support in compiler""... $ac_c" 1>&6 +echo "configure:4231: checking for ARM SIMD support in compiler" >&5 + # We try to link so that this also fails when + # building with LTO. + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + result="yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + result="no" +fi +rm -f conftest* + echo "$ac_t"""$result"" 1>&6 + if test "$result" = "yes"; then + cat >> confdefs.pytmp <<\EOF + (''' HAVE_ARM_SIMD ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_ARM_SIMD 1 +EOF + + HAVE_ARM_SIMD=1 + fi + + echo $ac_n "checking ARM version support in compiler""... $ac_c" 1>&6 +echo "configure:4265: checking ARM version support in compiler" >&5 + ARM_ARCH=`${CC-cc} ${CFLAGS} -dM -E - < /dev/null | sed -n 's/.*__ARM_ARCH_\([0-9][0-9]*\).*/\1/p'` + echo "$ac_t"""$ARM_ARCH"" 1>&6 + + echo $ac_n "checking for ARM NEON support in compiler""... $ac_c" 1>&6 +echo "configure:4270: checking for ARM NEON support in compiler" >&5 + # We try to link so that this also fails when + # building with LTO. + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + result="yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + result="no" +fi +rm -f conftest* + echo "$ac_t"""$result"" 1>&6 + if test "$result" = "yes"; then + cat >> confdefs.pytmp <<\EOF + (''' HAVE_ARM_NEON ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_ARM_NEON 1 +EOF + + HAVE_ARM_NEON=1 + + if test -n "$ARM_ARCH"; then + if test "$ARM_ARCH" -lt 7; then + BUILD_ARM_NEON= + else + cat >> confdefs.pytmp <<\EOF + (''' BUILD_ARM_NEON ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define BUILD_ARM_NEON 1 +EOF + + BUILD_ARM_NEON=1 + fi + fi + fi + +fi # CPU_ARCH = arm + + + + + + + + + + + + +if test "$OS_TARGET" = "Android"; then + case "${CPU_ARCH}-${MOZ_ARCH}" in + arm-armv7*) + ANDROID_CPU_ARCH=armeabi-v7a + ;; + arm-*) + ANDROID_CPU_ARCH=armeabi + ;; + x86-*) + ANDROID_CPU_ARCH=x86 + ;; + mips32-*) # When target_cpu is mipsel, CPU_ARCH is mips32 + ANDROID_CPU_ARCH=mips + ;; + aarch64-*) + ANDROID_CPU_ARCH=arm64-v8a + ;; + esac + + +fi + + + +if test "$OS_TARGET" = "Android"; then + cpu_arch_dir="$ANDROID_CPU_ARCH" + # NDK r12 removed the arm/thumb library split and just made everything + # thumb by default. Attempt to compensate. + if test "$MOZ_THUMB2" = 1 -a -d "$cpu_arch_dir/thumb"; then + cpu_arch_dir="$cpu_arch_dir/thumb" + fi + + if test -z "$STLPORT_CPPFLAGS$STLPORT_LIBS"; then + case "$android_cxx_stl" in + libstdc++) + # android-ndk-r8b and later + ndk_base="$android_ndk/sources/cxx-stl/gnu-libstdc++/$android_gnu_compiler_version" + ndk_libs_include="$ndk_base/libs/$ANDROID_CPU_ARCH" + ndk_libs="$ndk_base/libs/$cpu_arch_dir" + ndk_include="$ndk_base/include" + + if ! test -e "$ndk_libs/libgnustl_static.a"; then + { echo "configure: error: Couldn't find path to gnu-libstdc++ in the android ndk" 1>&2; echo "configure: error: Couldn't find path to gnu-libstdc++ in the android ndk" 1>&5; exit 1; } + fi + + STLPORT_LIBS="-L$ndk_libs -lgnustl_static" + STLPORT_CPPFLAGS="-I$ndk_include -I$ndk_include/backward -I$ndk_libs_include/include" + ;; + libc++) + # android-ndk-r8b and later + ndk_base="$android_ndk/sources/cxx-stl" + cxx_base="$ndk_base/llvm-libc++" + cxx_libs="$cxx_base/libs/$cpu_arch_dir" + cxx_include="$cxx_base/libcxx/include" + cxxabi_base="$ndk_base/llvm-libc++abi" + cxxabi_include="$cxxabi_base/libcxxabi/include" + + if ! test -e "$cxx_libs/libc++_static.a"; then + { echo "configure: error: Couldn't find path to llvm-libc++ in the android ndk" 1>&2; echo "configure: error: Couldn't find path to llvm-libc++ in the android ndk" 1>&5; exit 1; } + fi + + STLPORT_LIBS="-L$cxx_libs -lc++_static" + # NDK r12 split the libc++ runtime libraries into pieces. + for lib in c++abi unwind android_support; do + if test -e "$cxx_libs/lib${lib}.a"; then + STLPORT_LIBS="$STLPORT_LIBS -l${lib}" + fi + done + # Add android/support/include/ for prototyping long double math + # functions, locale-specific C library functions, multibyte support, + # etc. + STLPORT_CPPFLAGS="-I$android_ndk/sources/android/support/include -I$cxx_include -I$cxxabi_include" + ;; + *) + { echo "configure: error: Bad value for --enable-android-cxx-stl" 1>&2; echo "configure: error: Bad value for --enable-android-cxx-stl" 1>&5; exit 1; } + ;; + esac + fi + CXXFLAGS="$CXXFLAGS $STLPORT_CPPFLAGS" +fi +MOZ_ANDROID_CXX_STL=$android_cxx_stl + + + + + +if test -n "${CLANG_CC}${CLANG_CL}"; then + _WARNINGS_CFLAGS="-Qunused-arguments ${_WARNINGS_CFLAGS}" + CPPFLAGS="-Qunused-arguments ${CPPFLAGS}" +fi +if test -n "${CLANG_CXX}${CLANG_CL}"; then + _WARNINGS_CXXFLAGS="-Qunused-arguments ${_WARNINGS_CXXFLAGS}" +fi + + + +# Check whether --enable-address-sanitizer or --disable-address-sanitizer was given. +if test "${enable_address_sanitizer+set}" = set; then + enableval="$enable_address_sanitizer" + if test "$enableval" = "yes"; then + MOZ_ASAN=1 + elif test "$enableval" = "no"; then + MOZ_ASAN= + else + { echo "configure: error: Option, address-sanitizer, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, address-sanitizer, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + +if test -n "$MOZ_ASAN"; then + MOZ_LLVM_HACKS=1 + if test -n "$CLANG_CL"; then + # Look for the ASan runtime binary + if test "$CPU_ARCH" = "x86_64"; then + MOZ_CLANG_RT_ASAN_LIB=clang_rt.asan_dynamic-x86_64.dll + else + MOZ_CLANG_RT_ASAN_LIB=clang_rt.asan_dynamic-i386.dll + fi + # We use MOZ_PATH_PROG in order to get a Windows style path. + # Extract the first word of "$MOZ_CLANG_RT_ASAN_LIB", so it can be a program name with args. +set dummy $MOZ_CLANG_RT_ASAN_LIB; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:4452: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_MOZ_CLANG_RT_ASAN_LIB_PATH'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$MOZ_CLANG_RT_ASAN_LIB_PATH" in + /*) + ac_cv_path_MOZ_CLANG_RT_ASAN_LIB_PATH="$MOZ_CLANG_RT_ASAN_LIB_PATH" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_MOZ_CLANG_RT_ASAN_LIB_PATH="$MOZ_CLANG_RT_ASAN_LIB_PATH" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_MOZ_CLANG_RT_ASAN_LIB_PATH="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +MOZ_CLANG_RT_ASAN_LIB_PATH="$ac_cv_path_MOZ_CLANG_RT_ASAN_LIB_PATH" +if test -n "$MOZ_CLANG_RT_ASAN_LIB_PATH"; then + echo "$ac_t""$MOZ_CLANG_RT_ASAN_LIB_PATH" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test "$msyshost"; then + case "$MOZ_CLANG_RT_ASAN_LIB_PATH" in + /*) + tmp_DIRNAME=`dirname "$MOZ_CLANG_RT_ASAN_LIB_PATH"` + tmp_BASENAME=`basename "$MOZ_CLANG_RT_ASAN_LIB_PATH"` + tmp_PWD=`cd "$tmp_DIRNAME" && pwd -W` + MOZ_CLANG_RT_ASAN_LIB_PATH="$tmp_PWD/$tmp_BASENAME" + if test -e "$MOZ_CLANG_RT_ASAN_LIB_PATH.exe"; then + MOZ_CLANG_RT_ASAN_LIB_PATH="$MOZ_CLANG_RT_ASAN_LIB_PATH.exe" + fi + esac + fi + + if test -z "$MOZ_CLANG_RT_ASAN_LIB_PATH"; then + { echo "configure: error: Couldn't find $MOZ_CLANG_RT_ASAN_LIB. It should be available in the same location as clang-cl." 1>&2; echo "configure: error: Couldn't find $MOZ_CLANG_RT_ASAN_LIB. It should be available in the same location as clang-cl." 1>&5; exit 1; } + fi + + # Suppressing errors in recompiled code. + if test "$OS_ARCH" = "WINNT"; then + CFLAGS="-fsanitize-blacklist=$_topsrcdir/build/sanitizers/asan_blacklist_win.txt $CFLAGS" + CXXFLAGS="-fsanitize-blacklist=$_topsrcdir/build/sanitizers/asan_blacklist_win.txt $CXXFLAGS" + fi + fi + CFLAGS="-fsanitize=address $CFLAGS" + CXXFLAGS="-fsanitize=address $CXXFLAGS" + if test -z "$CLANG_CL"; then + LDFLAGS="-fsanitize=address $LDFLAGS" + fi + cat >> confdefs.pytmp <<\EOF + (''' MOZ_ASAN ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define MOZ_ASAN 1 +EOF + + # Extract the first word of "llvm-symbolizer", so it can be a program name with args. +set dummy llvm-symbolizer; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:4522: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_LLVM_SYMBOLIZER'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$LLVM_SYMBOLIZER" in + /*) + ac_cv_path_LLVM_SYMBOLIZER="$LLVM_SYMBOLIZER" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_LLVM_SYMBOLIZER="$LLVM_SYMBOLIZER" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_LLVM_SYMBOLIZER="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +LLVM_SYMBOLIZER="$ac_cv_path_LLVM_SYMBOLIZER" +if test -n "$LLVM_SYMBOLIZER"; then + echo "$ac_t""$LLVM_SYMBOLIZER" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test "$msyshost"; then + case "$LLVM_SYMBOLIZER" in + /*) + tmp_DIRNAME=`dirname "$LLVM_SYMBOLIZER"` + tmp_BASENAME=`basename "$LLVM_SYMBOLIZER"` + tmp_PWD=`cd "$tmp_DIRNAME" && pwd -W` + LLVM_SYMBOLIZER="$tmp_PWD/$tmp_BASENAME" + if test -e "$LLVM_SYMBOLIZER.exe"; then + LLVM_SYMBOLIZER="$LLVM_SYMBOLIZER.exe" + fi + esac + fi + +fi + + +# Check whether --enable-memory-sanitizer or --disable-memory-sanitizer was given. +if test "${enable_memory_sanitizer+set}" = set; then + enableval="$enable_memory_sanitizer" + if test "$enableval" = "yes"; then + MOZ_MSAN=1 + elif test "$enableval" = "no"; then + MOZ_MSAN= + else + { echo "configure: error: Option, memory-sanitizer, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, memory-sanitizer, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + +if test -n "$MOZ_MSAN"; then + MOZ_LLVM_HACKS=1 + CFLAGS="-fsanitize=memory -fsanitize-memory-track-origins $CFLAGS" + CXXFLAGS="-fsanitize=memory -fsanitize-memory-track-origins $CXXFLAGS" + if test -z "$CLANG_CL"; then + LDFLAGS="-fsanitize=memory -fsanitize-memory-track-origins $LDFLAGS" + fi + cat >> confdefs.pytmp <<\EOF + (''' MOZ_MSAN ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define MOZ_MSAN 1 +EOF + + # Extract the first word of "llvm-symbolizer", so it can be a program name with args. +set dummy llvm-symbolizer; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:4599: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_LLVM_SYMBOLIZER'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$LLVM_SYMBOLIZER" in + /*) + ac_cv_path_LLVM_SYMBOLIZER="$LLVM_SYMBOLIZER" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_LLVM_SYMBOLIZER="$LLVM_SYMBOLIZER" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_LLVM_SYMBOLIZER="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +LLVM_SYMBOLIZER="$ac_cv_path_LLVM_SYMBOLIZER" +if test -n "$LLVM_SYMBOLIZER"; then + echo "$ac_t""$LLVM_SYMBOLIZER" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test "$msyshost"; then + case "$LLVM_SYMBOLIZER" in + /*) + tmp_DIRNAME=`dirname "$LLVM_SYMBOLIZER"` + tmp_BASENAME=`basename "$LLVM_SYMBOLIZER"` + tmp_PWD=`cd "$tmp_DIRNAME" && pwd -W` + LLVM_SYMBOLIZER="$tmp_PWD/$tmp_BASENAME" + if test -e "$LLVM_SYMBOLIZER.exe"; then + LLVM_SYMBOLIZER="$LLVM_SYMBOLIZER.exe" + fi + esac + fi + +fi + + +# Check whether --enable-thread-sanitizer or --disable-thread-sanitizer was given. +if test "${enable_thread_sanitizer+set}" = set; then + enableval="$enable_thread_sanitizer" + if test "$enableval" = "yes"; then + MOZ_TSAN=1 + elif test "$enableval" = "no"; then + MOZ_TSAN= + else + { echo "configure: error: Option, thread-sanitizer, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, thread-sanitizer, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + +if test -n "$MOZ_TSAN"; then + MOZ_LLVM_HACKS=1 + CFLAGS="-fsanitize=thread $CFLAGS" + CXXFLAGS="-fsanitize=thread $CXXFLAGS" + if test -z "$CLANG_CL"; then + LDFLAGS="-fsanitize=thread $LDFLAGS" + fi + cat >> confdefs.pytmp <<\EOF + (''' MOZ_TSAN ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define MOZ_TSAN 1 +EOF + + # Extract the first word of "llvm-symbolizer", so it can be a program name with args. +set dummy llvm-symbolizer; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:4676: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_LLVM_SYMBOLIZER'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$LLVM_SYMBOLIZER" in + /*) + ac_cv_path_LLVM_SYMBOLIZER="$LLVM_SYMBOLIZER" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_LLVM_SYMBOLIZER="$LLVM_SYMBOLIZER" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_LLVM_SYMBOLIZER="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +LLVM_SYMBOLIZER="$ac_cv_path_LLVM_SYMBOLIZER" +if test -n "$LLVM_SYMBOLIZER"; then + echo "$ac_t""$LLVM_SYMBOLIZER" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test "$msyshost"; then + case "$LLVM_SYMBOLIZER" in + /*) + tmp_DIRNAME=`dirname "$LLVM_SYMBOLIZER"` + tmp_BASENAME=`basename "$LLVM_SYMBOLIZER"` + tmp_PWD=`cd "$tmp_DIRNAME" && pwd -W` + LLVM_SYMBOLIZER="$tmp_PWD/$tmp_BASENAME" + if test -e "$LLVM_SYMBOLIZER.exe"; then + LLVM_SYMBOLIZER="$LLVM_SYMBOLIZER.exe" + fi + esac + fi + +fi + + +# The LLVM symbolizer is used by all sanitizers + + +# Check whether --enable-llvm-hacks or --disable-llvm-hacks was given. +if test "${enable_llvm_hacks+set}" = set; then + enableval="$enable_llvm_hacks" + if test "$enableval" = "yes"; then + MOZ_LLVM_HACKS=1 + elif test "$enableval" = "no"; then + MOZ_LLVM_HACKS= + else + { echo "configure: error: Option, llvm-hacks, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, llvm-hacks, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + +if test -n "$MOZ_LLVM_HACKS"; then + MOZ_NO_WLZDEFS=1 + MOZ_CFLAGS_NSS=1 +fi + + + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + { echo "configure: error: compiler is incompatible with sanitize options" 1>&2; echo "configure: error: compiler is incompatible with sanitize options" 1>&5; exit 1; } +fi +rm -f conftest* + + + +if test "$GNU_CC"; then + MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$(DSO_SONAME) -o $@' + MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$(DSO_SONAME) -o $@' + DSO_LDOPTS='-shared' + if test "$GCC_USE_GNU_LD"; then + # Some tools like ASan use a runtime library that is only + # linked against executables, so we must allow undefined + # symbols for shared objects in some cases. + if test -z "$MOZ_NO_WLZDEFS"; then + # Don't allow undefined symbols in libraries + DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs" + fi + fi + WARNINGS_AS_ERRORS='-Werror' + DSO_CFLAGS='' + DSO_PIC_CFLAGS='-fPIC' + ASFLAGS="$ASFLAGS -fPIC" + echo $ac_n "checking for --noexecstack option to as""... $ac_c" 1>&6 +echo "configure:4784: checking for --noexecstack option to as" >&5 + _SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Wa,--noexecstack" + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 + ASFLAGS="$ASFLAGS -Wa,--noexecstack" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6 +fi +rm -f conftest* + CFLAGS=$_SAVE_CFLAGS + echo $ac_n "checking for -z noexecstack option to ld""... $ac_c" 1>&6 +echo "configure:4808: checking for -z noexecstack option to ld" >&5 + _SAVE_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-z,noexecstack" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6 + LDFLAGS=$_SAVE_LDFLAGS +fi +rm -f conftest* + + echo $ac_n "checking for -z text option to ld""... $ac_c" 1>&6 +echo "configure:4832: checking for -z text option to ld" >&5 + _SAVE_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-z,text" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 + NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,-z,text" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6 + LDFLAGS=$_SAVE_LDFLAGS +fi +rm -f conftest* + + echo $ac_n "checking for --build-id option to ld""... $ac_c" 1>&6 +echo "configure:4857: checking for --build-id option to ld" >&5 + _SAVE_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,--build-id" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 + NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,--build-id" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6 + LDFLAGS=$_SAVE_LDFLAGS +fi +rm -f conftest* + + _DEFINES_CFLAGS='-include $(topobjdir)/js/src/js-confdefs.h -DMOZILLA_CLIENT' + _USE_CPP_INCLUDE_FLAG=1 + +else + MKSHLIB='$(LD) $(DSO_LDOPTS) -h $(DSO_SONAME) -o $@' + MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $(DSO_SONAME) -o $@' + + DSO_LDOPTS='-shared' + if test "$GNU_LD"; then + # Don't allow undefined symbols in libraries + DSO_LDOPTS="$DSO_LDOPTS -z defs" + fi + + DSO_CFLAGS='' + DSO_PIC_CFLAGS='-KPIC' + _DEFINES_CFLAGS='$(ACDEFINES) -D_JS_CONFDEFS_H_ -DMOZILLA_CLIENT' +fi + +if test "$GNU_CXX"; then + _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(topobjdir)/js/src/js-confdefs.h' + _USE_CPP_INCLUDE_FLAG=1 + +else + _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_JS_CONFDEFS_H_ $(ACDEFINES)' +fi + +case "$host" in +*mingw*) + if test -n "$_WIN32_MSVC"; then + HOST_AR=lib + HOST_AR_FLAGS='-NOLOGO -OUT:$@' + HOST_CFLAGS="$HOST_CFLAGS -TC -nologo" + HOST_RANLIB='echo ranlib' + else + HOST_CFLAGS="$HOST_CFLAGS -mwindows" + fi + HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN32 -DXP_WIN -DWIN32 -D_WIN32 -D_CRT_SECURE_NO_WARNINGS" + HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}" + HOST_BIN_SUFFIX=.exe + + case "${host_cpu}" in + i*86) + if test -n "$_WIN32_MSVC"; then + HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X86" + fi + ;; + x86_64) + if test -n "$_WIN32_MSVC"; then + HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X64" + fi + HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_" + ;; + esac + ;; + +*-darwin*) + HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX" + HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" + ;; + +*-linux*|*-kfreebsd*-gnu|*-gnu*) + HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" + HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" + ;; + +*) + HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" + HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}" + ;; +esac + + + cat > conftest.c </dev/null 2>&1; then + if grep '^target triple =' conftest.s; then + lto_is_enabled=yes + fi + fi + rm -f conftest.cs + + + +case "$target" in +*-darwin*) + MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' + MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' + MOZ_OPTIMIZE_FLAGS="-O3 -fno-stack-protector" + CFLAGS="$CFLAGS -fno-common" + CXXFLAGS="$CXXFLAGS -fno-common -stdlib=libc++" + DLL_SUFFIX=".dylib" + DSO_LDOPTS='' + STRIP="$STRIP -x -S" + LDFLAGS="$LDFLAGS -lobjc" + # The ExceptionHandling framework is needed for Objective-C exception + # logging code in nsObjCExceptions.h. Currently we only use that in debug + # builds. + _SAVE_LDFLAGS=$LDFLAGS + echo $ac_n "checking for -framework ExceptionHandling""... $ac_c" 1>&6 +echo "configure:4982: checking for -framework ExceptionHandling" >&5 + LDFLAGS="$LDFLAGS -framework ExceptionHandling" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_have_framework_exceptionhandling="yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_have_framework_exceptionhandling="no" +fi +rm -f conftest* + echo "$ac_t""$ac_cv_have_framework_exceptionhandling" 1>&6 + if test "$ac_cv_have_framework_exceptionhandling" = "yes"; then + MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -framework ExceptionHandling"; + fi + LDFLAGS=$_SAVE_LDFLAGS + + if test "x$lto_is_enabled" = "xyes"; then + echo "Skipping -dead_strip because lto is enabled." + elif test "x$enable_dtrace" = "xyes"; then + echo "Skipping -dead_strip because DTrace is enabled. See bug 403132." + else + echo $ac_n "checking for -dead_strip option to ld""... $ac_c" 1>&6 +echo "configure:5014: checking for -dead_strip option to ld" >&5 + _SAVE_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-dead_strip" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + _HAVE_DEAD_STRIP=1 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + _HAVE_DEAD_STRIP= +fi +rm -f conftest* + if test -n "$_HAVE_DEAD_STRIP" ; then + echo "$ac_t""yes" 1>&6 + MOZ_OPTIMIZE_LDFLAGS="-Wl,-dead_strip" + else + echo "$ac_t""no" 1>&6 + fi + + LDFLAGS=$_SAVE_LDFLAGS + fi + MOZ_FIX_LINK_PATHS="-Wl,-executable_path,${DIST}/bin" + ;; + +*-android*|*-linuxandroid*) + cat >> confdefs.pytmp <<\EOF + (''' NO_PW_GECOS ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define NO_PW_GECOS 1 +EOF + + MOZ_GFX_OPTIMIZE_MOBILE=1 + MOZ_OPTIMIZE_FLAGS="-O3" + if test -z "$CLANG_CC"; then + MOZ_OPTIMIZE_FLAGS="-freorder-blocks -fno-reorder-functions $MOZ_OPTIMIZE_FLAGS" + fi + ;; + +*-*linux*) + if test "$GNU_CC" -o "$GNU_CXX"; then + MOZ_PGO_OPTIMIZE_FLAGS="-O3" + MOZ_OPTIMIZE_FLAGS="-O3" + if test -z "$CLANG_CC"; then + MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS" + fi + fi + + case "${target_cpu}" in + alpha*) + CFLAGS="$CFLAGS -mieee" + CXXFLAGS="$CXXFLAGS -mieee" + ;; + esac + ;; + +*-mingw*) + DSO_CFLAGS= + DSO_PIC_CFLAGS= + DLL_SUFFIX=.dll + RC=rc.exe + if test -n "$GNU_CC" -o -n "$CLANG_CC"; then + CC="$CC -mwindows" + CXX="$CXX -mwindows" + CPP="$CPP -mwindows" + CFLAGS="$CFLAGS -mms-bitfields" + CXXFLAGS="$CXXFLAGS -mms-bitfields" + DSO_LDOPTS='-shared' + MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@' + MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@' + RC='$(WINDRES)' + # Use static libgcc and libstdc++ + LDFLAGS="$LDFLAGS -static" + # Use temp file for windres (bug 213281) + RCFLAGS='-O coff --use-temp-file' + # mingw doesn't require kernel32, user32, and advapi32 explicitly + LIBS="$LIBS -lgdi32 -lwinmm -lwsock32 -lpsapi" + MOZ_FIX_LINK_PATHS= + DLL_PREFIX= + IMPORT_LIB_SUFFIX=a + + WIN32_CONSOLE_EXE_LDFLAGS=-mconsole + WIN32_GUI_EXE_LDFLAGS=-mwindows + else + TARGET_COMPILER_ABI=msvc + HOST_CC='$(CC)' + HOST_CXX='$(CXX)' + HOST_LD='$(LD)' + if test "$AS_BIN"; then + AS="$(basename "$AS_BIN")" + fi + AR='lib' + AR_FLAGS='-NOLOGO -OUT:$@' + AR_EXTRACT= + RANLIB='echo not_ranlib' + STRIP='echo not_strip' + PKG_SKIP_STRIP=1 + OBJ_SUFFIX=obj + LIB_SUFFIX=lib + DLL_PREFIX= + LIB_PREFIX= + IMPORT_LIB_SUFFIX=lib + MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)' + MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)' + if test "$CPU_ARCH" = "x86"; then + WIN32_SUBSYSTEM_VERSION=5.01 + else + WIN32_SUBSYSTEM_VERSION=6.01 + fi + WIN32_CONSOLE_EXE_LDFLAGS=-SUBSYSTEM:CONSOLE,$WIN32_SUBSYSTEM_VERSION + WIN32_GUI_EXE_LDFLAGS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION + DSO_LDOPTS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION + _USE_CPP_INCLUDE_FLAG=1 + _DEFINES_CFLAGS='-FI $(topobjdir)/js/src/js-confdefs.h -DMOZILLA_CLIENT' + _DEFINES_CXXFLAGS='-FI $(topobjdir)/js/src/js-confdefs.h -DMOZILLA_CLIENT' + CFLAGS="$CFLAGS -W3 -Gy -Zc:inline" + CXXFLAGS="$CXXFLAGS -W3 -Gy -Zc:inline" + if test "$CPU_ARCH" = "x86";then + if test -z `echo $CFLAGS | grep -i -/arch:` ; then + CFLAGS="$CFLAGS -arch:SSE2" + fi + if test -z `echo $CXXFLAGS | grep -i -/arch:` ; then + CXXFLAGS="$CXXFLAGS -arch:SSE2" + fi + fi + CFLAGS="$CFLAGS -FS" + CXXFLAGS="$CXXFLAGS -FS" + if test -z "$MOZ_ASAN"; then + CFLAGS="$CFLAGS -Gw" + CXXFLAGS="$CXXFLAGS -Gw" + fi + # khuey says we can safely ignore MSVC warning C4251 + # MSVC warning C4244 (implicit type conversion may lose data) warns + # and requires workarounds for perfectly valid code. Also, GCC/clang + # don't warn about it by default. So for consistency/sanity, we turn + # it off on MSVC, too. + # MSVC warning C4267 warns for narrowing type conversions from size_t + # to 32-bit integer types on 64-bit platforms. Since this is virtually + # the same thing as C4244, we disable C4267, too. + CFLAGS="$CFLAGS -wd4244 -wd4267" + CXXFLAGS="$CXXFLAGS -wd4244 -wd4267 -wd4251" + if test -n "$CLANG_CL"; then + # XXX We should combine some of these with our generic GCC-style + # warning checks. + # + # Suppress the clang-cl warning for the inline 'new' and 'delete' in mozalloc + CXXFLAGS="$CXXFLAGS -Wno-inline-new-delete" + # We use offsetof on non-POD objects all the time. + # We also suppress this warning on other platforms. + CXXFLAGS="$CXXFLAGS -Wno-invalid-offsetof" + # MFBT thinks clang-cl supports constexpr, which it does, but + # not everything in Windows C++ headers supports constexpr + # as we might expect until MSVC 2015, so turn off this warning + # for now. + CXXFLAGS="$CXXFLAGS -Wno-invalid-constexpr" + # This warns for reasonable things like: + # enum { X = 0xffffffffU }; + # which is annoying for IDL headers. + CXXFLAGS="$CXXFLAGS -Wno-microsoft-enum-value" + # This warns for cases that would be reached by the Microsoft + # #include rules, but also currently warns on cases that would + # *also* be reached by standard C++ include rules. That + # behavior doesn't seem useful, so we turn it off. + CXXFLAGS="$CXXFLAGS -Wno-microsoft-include" + # We normally error out on unknown pragmas, but since clang-cl + # claims to be MSVC, it would be difficult to add + # #if defined(_MSC_VER) && !defined(__clang__) everywhere we + # use such pragmas, so just ignore them. + CFLAGS="$CFLAGS -Wno-unknown-pragmas" + CXXFLAGS="$CXXFLAGS -Wno-unknown-pragmas" + # We get errors about various #pragma intrinsic directives from + # clang-cl, and we don't need to hear about those. + CFLAGS="$CFLAGS -Wno-ignored-pragmas" + CXXFLAGS="$CXXFLAGS -Wno-ignored-pragmas" + # clang-cl's Intrin.h marks things like _ReadWriteBarrier + # as __attribute((__deprecated__)). This is nice to know, + # but since we don't get the equivalent warning from MSVC, + # let's just ignore it. + CFLAGS="$CFLAGS -Wno-deprecated-declarations" + CXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations" + # We use a function like: + # __declspec(noreturn) __inline void f() {} + # which -Winvalid-noreturn complains about. Again, MSVC seems + # OK with it, so let's silence the warning. + CFLAGS="$CFLAGS -Wno-invalid-noreturn" + CXXFLAGS="$CXXFLAGS -Wno-invalid-noreturn" + # Missing |override| on virtual function declarations isn't + # something that MSVC currently warns about. + CXXFLAGS="$CXXFLAGS -Wno-inconsistent-missing-override" + # We use -DHAS_EXCEPTIONS=0, which removes the |throw()| + # declaration on |operator delete(void*)|. However, clang-cl + # must internally declare |operator delete(void*)| differently, + # which causes this warning for virtually every file in the + # tree. clang-cl doesn't support -fno-exceptions or equivalent, + # so there doesn't seem to be any way to convince clang-cl to + # declare |delete| differently. Therefore, suppress this + # warning. + CXXFLAGS="$CXXFLAGS -Wno-implicit-exception-spec-mismatch" + # At least one MSVC header and several headers in-tree have + # unused typedefs, so turn this on. + CXXFLAGS="$CXXFLAGS -Wno-unused-local-typedef" + # Several JS engine header files use __declspec(dllimport) on + # classes, and clang-cl helpfully warns about its non-support + # for such cases. We're not particularly worried about that, + # so ignore that warning. + CXXFLAGS="$CXXFLAGS -Wno-ignored-attributes" + fi + # make 'foo == bar;' error out + CFLAGS="$CFLAGS -we4553" + CXXFLAGS="$CXXFLAGS -we4553" + LIBS="$LIBS kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib" + MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV' + WARNINGS_AS_ERRORS='-WX' + MOZ_OPTIMIZE_FLAGS="-O2" + MOZ_FIX_LINK_PATHS= + LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE -NXCOMPAT" + if test -z "$DEVELOPER_OPTIONS"; then + LDFLAGS="$LDFLAGS -RELEASE" + fi + PROFILE_GEN_CFLAGS="-GL" + PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT" + PROFILE_USE_CFLAGS="-GL -wd4624 -wd4952" + PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE" + LDFLAGS="$LDFLAGS -DYNAMICBASE" + RCFLAGS="-nologo" + fi + cat >> confdefs.pytmp <<\EOF + (''' HAVE__MSIZE ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE__MSIZE 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' WIN32_LEAN_AND_MEAN ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define WIN32_LEAN_AND_MEAN 1 +EOF + + BIN_SUFFIX='.exe' + MOZ_USER_DIR="Mozilla" + + case "$host_os" in + cygwin*|msvc*|mks*) + { echo "configure: error: Using a Cygwin build environment is unsupported. Configure cannot check for presence of necessary headers. Please upgrade to MozillaBuild; see https://developer.mozilla.org/en/Windows_Build_Prerequisites." 1>&2; echo "configure: error: Using a Cygwin build environment is unsupported. Configure cannot check for presence of necessary headers. Please upgrade to MozillaBuild; see https://developer.mozilla.org/en/Windows_Build_Prerequisites." 1>&5; exit 1; } + ;; + esac + + case "$target" in + i*86-*) + if test -n "$GNU_CC"; then + CFLAGS="$CFLAGS -mstackrealign -fno-keep-inline-dllexport" + CXXFLAGS="$CXXFLAGS -mstackrealign -fno-keep-inline-dllexport" + LDFLAGS="$LDFLAGS -Wl,--large-address-aware" + else + DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86" + LDFLAGS="$LDFLAGS -SAFESEH" + fi + + cat >> confdefs.pytmp <<\EOF + (''' _X86_ ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define _X86_ 1 +EOF + + ;; + x86_64-*) + if test -n "$_WIN32_MSVC"; then + DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X64" + fi + cat >> confdefs.pytmp <<\EOF + (''' _AMD64_ ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define _AMD64_ 1 +EOF + + ;; + *) + cat >> confdefs.pytmp <<\EOF + (''' _CPU_ARCH_NOT_DEFINED ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define _CPU_ARCH_NOT_DEFINED 1 +EOF + + ;; + esac + ;; + +*-netbsd*) + DSO_CFLAGS='' + CFLAGS="$CFLAGS -Dunix" + CXXFLAGS="$CXXFLAGS -Dunix" + if $CC -E - -dM /dev/null; then + DLL_SUFFIX=".so" + DSO_PIC_CFLAGS='-fPIC -DPIC' + DSO_LDOPTS='-shared' + BIN_FLAGS='-Wl,--export-dynamic' + else + DSO_PIC_CFLAGS='-fPIC -DPIC' + DLL_SUFFIX=".so.1.0" + DSO_LDOPTS='-shared' + fi + # This will fail on a.out systems prior to 1.5.1_ALPHA. + if test "$LIBRUNPATH"; then + DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS" + fi + MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$(DSO_SONAME) -o $@' + MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$(DSO_SONAME) -o $@' + ;; + +*-openbsd*) + DLL_SUFFIX=".so.1.0" + DSO_CFLAGS='' + DSO_PIC_CFLAGS='-fPIC' + DSO_LDOPTS='-shared -fPIC' + if test "$LIBRUNPATH"; then + DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS" + fi + ;; + +esac + +cat >> confdefs.pytmp <> confdefs.h <> confdefs.pytmp <<\EOF + (''' JS_CPU_X86 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CPU_X86 1 +EOF + + ;; +x86_64*-*) + ENABLE_ION=1 + cat >> confdefs.pytmp <<\EOF + (''' JS_CPU_X64 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CPU_X64 1 +EOF + + ;; +arm*-*) + ENABLE_ION=1 + cat >> confdefs.pytmp <<\EOF + (''' JS_CPU_ARM ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CPU_ARM 1 +EOF + + ;; +sparc-*) + cat >> confdefs.pytmp <<\EOF + (''' JS_CPU_SPARC ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CPU_SPARC 1 +EOF + + ;; +mips*-*) + ENABLE_ION=1 + cat >> confdefs.pytmp <<\EOF + (''' JS_CPU_MIPS ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CPU_MIPS 1 +EOF + + ;; +esac + +if test "$HAVE_64BIT_BUILD" ; then + cat >> confdefs.pytmp <<\EOF + (''' JS_PUNBOX64 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_PUNBOX64 1 +EOF + +else + cat >> confdefs.pytmp <<\EOF + (''' JS_NUNBOX32 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_NUNBOX32 1 +EOF + +fi + +# Check whether --enable-ion or --disable-ion was given. +if test "${enable_ion+set}" = set; then + enableval="$enable_ion" + if test "$enableval" = "no"; then + ENABLE_ION= + elif test "$enableval" = "yes"; then + : + else + { echo "configure: error: Option, ion, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, ion, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + + + +if test -n "$COMPILE_ENVIRONMENT"; then + + + +if test -z "$MOZ_DEBUG" -o -n "$MOZ_ASAN"; then + MOZ_NO_DEBUG_RTL=1 +fi + + + +MOZ_DEBUG_ENABLE_DEFS="DEBUG TRACING" +# Check whether --with-debug-label or --without-debug-label was given. +if test "${with_debug_label+set}" = set; then + withval="$with_debug_label" + for option in `echo $withval | sed 's/,/ /g'`; do + MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS DEBUG_${option}" +done +fi + + +if test -n "$MOZ_DEBUG"; then + if test -n "$COMPILE_ENVIRONMENT"; then + echo $ac_n "checking for valid debug flags""... $ac_c" 1>&6 +echo "configure:5471: checking for valid debug flags" >&5 + _SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS" + cat > conftest.$ac_ext < +int main() { +printf("Hello World\n"); +; return 0; } +EOF +if { (eval echo configure:5482: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + _results=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + _results=no +fi +rm -f conftest* + echo "$ac_t""$_results" 1>&6 + if test "$_results" = "no"; then + { echo "configure: error: These compiler flags are invalid: $MOZ_DEBUG_FLAGS" 1>&2; echo "configure: error: These compiler flags are invalid: $MOZ_DEBUG_FLAGS" 1>&5; exit 1; } + fi + CFLAGS=$_SAVE_CFLAGS + fi + + MOZ_DEBUG_DEFINES="$MOZ_DEBUG_ENABLE_DEFS" +else + MOZ_DEBUG_DEFINES="NDEBUG TRIMMED" +fi + + + + + +# Check whether --enable-cpp-rtti or --disable-cpp-rtti was given. +if test "${enable_cpp_rtti+set}" = set; then + enableval="$enable_cpp_rtti" + if test "$enableval" = "yes"; then + _MOZ_USE_RTTI=1 + elif test "$enableval" = "no"; then + _MOZ_USE_RTTI= + else + { echo "configure: error: Option, cpp-rtti, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, cpp-rtti, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + +if test -z "$_MOZ_USE_RTTI"; then + if test "$GNU_CC"; then + CXXFLAGS="$CXXFLAGS -fno-rtti" + else + case "$target" in + *-mingw*) + CXXFLAGS="$CXXFLAGS -GR-" + esac + fi +fi + +if test "$CLANG_CXX"; then + ## We disable return-type-c-linkage because jsval is defined as a C++ type but is + ## returned by C functions. This is possible because we use knowledge about the ABI + ## to typedef it to a C type with the same layout when the headers are included + ## from C. + _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-unknown-warning-option -Wno-return-type-c-linkage" +fi + +if test -n "$DEVELOPER_OPTIONS"; then + MOZ_FORCE_GOLD=1 +fi + +# Check whether --enable-gold or --disable-gold was given. +if test "${enable_gold+set}" = set; then + enableval="$enable_gold" + if test "$enableval" = "yes"; then + MOZ_FORCE_GOLD=1 + elif test "$enableval" = "no"; then + MOZ_FORCE_GOLD= + + else + { echo "configure: error: Option, gold, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, gold, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + +if test "$GNU_CC" -a -n "$MOZ_FORCE_GOLD"; then + if $CC -Wl,--version 2>&1 | grep -q "GNU ld"; then + GOLD=$($CC -print-prog-name=ld.gold) + case "$GOLD" in + /*) + ;; + *) + GOLD=$(which $GOLD) + ;; + esac + if test -n "$GOLD"; then + mkdir -p $_objdir/build/unix/gold + rm -f $_objdir/build/unix/gold/ld + ln -s "$GOLD" $_objdir/build/unix/gold/ld + if $CC -B $_objdir/build/unix/gold -Wl,--version 2>&1 | grep -q "GNU gold"; then + LDFLAGS="$LDFLAGS -B $_objdir/build/unix/gold" + else + rm -rf $_objdir/build/unix/gold + fi + fi + fi +fi +if test "$GNU_CC"; then + if $CC $LDFLAGS -Wl,--version 2>&1 | grep -q "GNU ld"; then + LD_IS_BFD=1 + fi +fi + + + +if test "$GNU_CC"; then + if test -z "$DEVELOPER_OPTIONS"; then + CFLAGS="$CFLAGS -ffunction-sections -fdata-sections" + CXXFLAGS="$CXXFLAGS -ffunction-sections -fdata-sections" + fi + CFLAGS="$CFLAGS -fno-math-errno" + CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-math-errno" + + if test -z "$CLANG_CC"; then + case "$CC_VERSION" in + 4.*) + ;; + *) + # Lifetime Dead Store Elimination level 2 (default in GCC6+) breaks Gecko. + # Ideally, we'd use -flifetime-dse=1, but that means we'd forcefully + # enable it on optimization levels where it would otherwise not be enabled. + # So we disable it entirely. But since that would mean inconsistency with + # GCC5, which has level 1 depending on optimization level, disable it on + # GCC5 as well, because better safe than sorry. + # Add it first so that a mozconfig can override by setting CFLAGS/CXXFLAGS. + CFLAGS="-fno-lifetime-dse $CFLAGS" + CXXFLAGS="-fno-lifetime-dse $CXXFLAGS" + ;; + esac + fi +fi + + +# Check whether --enable-icf or --disable-icf was given. +if test "${enable_icf+set}" = set; then + enableval="$enable_icf" + if test "$enableval" = "no"; then + MOZ_DISABLE_ICF=1 + elif test "$enableval" = "yes"; then + MOZ_DISABLE_ICF= + else + { echo "configure: error: Option, icf, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, icf, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + +if test "$GNU_CC" -a "$GCC_USE_GNU_LD" -a -z "$MOZ_DISABLE_ICF" -a -z "$DEVELOPER_OPTIONS"; then + echo $ac_n "checking whether the linker supports Identical Code Folding""... $ac_c" 1>&6 +echo "configure:5631: checking whether the linker supports Identical Code Folding" >&5 +if eval "test \"`echo '$''{'LD_SUPPORTS_ICF'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'int foo() {return 42;}' \ + 'int bar() {return 42;}' \ + 'int main() {return foo() - bar();}' > conftest.${ac_ext} + # If the linker supports ICF, foo and bar symbols will have + # the same address + if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS -Wl,--icf=safe -ffunction-sections conftest.${ac_ext} $LIBS 1>&2'; { (eval echo configure:5640: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && + test -s conftest${ac_exeext} && + objdump -t conftest${ac_exeext} | awk '{a[$6] = $1} END {if (a["foo"] && (a["foo"] != a["bar"])) { exit 1 }}'; then + LD_SUPPORTS_ICF=yes + else + LD_SUPPORTS_ICF=no + fi + rm -rf conftest* +fi + +echo "$ac_t""$LD_SUPPORTS_ICF" 1>&6 + if test "$LD_SUPPORTS_ICF" = yes; then + _SAVE_LDFLAGS="$LDFLAGS -Wl,--icf=safe" + LDFLAGS="$LDFLAGS -Wl,--icf=safe -Wl,--print-icf-sections" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + LD_PRINT_ICF_SECTIONS=-Wl,--print-icf-sections +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + LD_PRINT_ICF_SECTIONS= +fi +rm -f conftest* + + LDFLAGS="$_SAVE_LDFLAGS" + fi +fi + + +if test "$GNU_CC" -a "$GCC_USE_GNU_LD" -a -z "$DEVELOPER_OPTIONS"; then + if test -n "$MOZ_DEBUG_FLAGS"; then + echo $ac_n "checking whether removing dead symbols breaks debugging""... $ac_c" 1>&6 +echo "configure:5681: checking whether removing dead symbols breaks debugging" >&5 +if eval "test \"`echo '$''{'GC_SECTIONS_BREAKS_DEBUG_RANGES'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'int foo() {return 42;}' \ + 'int bar() {return 1;}' \ + 'int main() {return foo();}' > conftest.${ac_ext} + if { ac_try='${CC-cc} -o conftest.${ac_objext} $CFLAGS $MOZ_DEBUG_FLAGS -c conftest.${ac_ext} 1>&2'; { (eval echo configure:5688: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && + { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS $MOZ_DEBUG_FLAGS -Wl,--gc-sections conftest.${ac_objext} $LIBS 1>&2'; { (eval echo configure:5689: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && + test -s conftest${ac_exeext} -a -s conftest.${ac_objext}; then + if test "`$PYTHON -m mozbuild.configure.check_debug_ranges conftest.${ac_objext} conftest.${ac_ext}`" = \ + "`$PYTHON -m mozbuild.configure.check_debug_ranges conftest${ac_exeext} conftest.${ac_ext}`"; then + GC_SECTIONS_BREAKS_DEBUG_RANGES=no + else + GC_SECTIONS_BREAKS_DEBUG_RANGES=yes + fi + else + GC_SECTIONS_BREAKS_DEBUG_RANGES="no, but it's broken in some other way" + fi + rm -rf conftest* +fi + +echo "$ac_t""$GC_SECTIONS_BREAKS_DEBUG_RANGES" 1>&6 + if test "$GC_SECTIONS_BREAKS_DEBUG_RANGES" = no; then + DSO_LDOPTS="$DSO_LDOPTS -Wl,--gc-sections" + fi + else + DSO_LDOPTS="$DSO_LDOPTS -Wl,--gc-sections" + fi +fi + +# bionic in Android < 4.1 doesn't support PIE +# On OSX, the linker defaults to building PIE programs when targetting OSX 10.7+, +# but not when targetting OSX < 10.7. OSX < 10.7 doesn't support running PIE +# programs, so as long as support for OSX 10.6 is kept, we can't build PIE. +# Even after dropping 10.6 support, MOZ_PIE would not be useful since it's the +# default (and clang says the -pie option is not used). +# On other Unix systems, some file managers (Nautilus) can't start PIE programs +if test -n "$gonkdir" && test "$ANDROID_VERSION" -ge 16; then + MOZ_PIE=1 +else + MOZ_PIE= +fi + +# Check whether --enable-pie or --disable-pie was given. +if test "${enable_pie+set}" = set; then + enableval="$enable_pie" + if test "$enableval" = "yes"; then + MOZ_PIE=1 + elif test "$enableval" = "no"; then + MOZ_PIE= + else + { echo "configure: error: Option, pie, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, pie, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + +if test "$GNU_CC" -a -n "$MOZ_PIE"; then + echo $ac_n "checking for PIE support""... $ac_c" 1>&6 +echo "configure:5740: checking for PIE support" >&5 + _SAVE_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $DSO_PIC_CFLAGS -pie" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 + MOZ_PROGRAM_LDFLAGS="$MOZ_PROGRAM_LDFLAGS -pie" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6 + { echo "configure: error: --enable-pie requires PIE support from the linker." 1>&2; echo "configure: error: --enable-pie requires PIE support from the linker." 1>&5; exit 1; } +fi +rm -f conftest* + LDFLAGS=$_SAVE_LDFLAGS +fi + + + +if test -n "$GCC_USE_GNU_LD"; then + case "$LDFLAGS" in + *-fsanitize=address*) + LDFLAGS="$LDFLAGS -Wl,-Bsymbolic" + ;; + esac +fi + + +fi + +if test -z "$SKIP_COMPILER_CHECKS"; then +echo $ac_n "checking for working const""... $ac_c" 1>&6 +echo "configure:5781: checking for working const" >&5 +if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <j = 5; +} +{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; +} + +; return 0; } +EOF +if { (eval echo configure:5835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_const=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_c_const=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_c_const" 1>&6 +if test $ac_cv_c_const = no; then + cat >> confdefs.pytmp <<\EOF + (''' const ''', r''' ''') +EOF +cat >> confdefs.h <<\EOF +#define const +EOF + +fi + + + +echo $ac_n "checking for mode_t""... $ac_c" 1>&6 +echo "configure:5861: checking for mode_t" >&5 +if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#if STDC_HEADERS +#include +#include +#endif +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "(^|[^a-zA-Z_0-9])mode_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_type_mode_t=yes +else + rm -rf conftest* + ac_cv_type_mode_t=no +fi +rm -f conftest* + +fi +echo "$ac_t""$ac_cv_type_mode_t" 1>&6 +if test $ac_cv_type_mode_t = no; then + cat >> confdefs.pytmp <<\EOF + (''' mode_t ''', r''' int ''') +EOF +cat >> confdefs.h <<\EOF +#define mode_t int +EOF + +fi + + + +echo $ac_n "checking for off_t""... $ac_c" 1>&6 +echo "configure:5899: checking for off_t" >&5 +if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#if STDC_HEADERS +#include +#include +#endif +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_type_off_t=yes +else + rm -rf conftest* + ac_cv_type_off_t=no +fi +rm -f conftest* + +fi +echo "$ac_t""$ac_cv_type_off_t" 1>&6 +if test $ac_cv_type_off_t = no; then + cat >> confdefs.pytmp <<\EOF + (''' off_t ''', r''' long ''') +EOF +cat >> confdefs.h <<\EOF +#define off_t long +EOF + +fi + + + +echo $ac_n "checking for pid_t""... $ac_c" 1>&6 +echo "configure:5937: checking for pid_t" >&5 +if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#if STDC_HEADERS +#include +#include +#endif +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "(^|[^a-zA-Z_0-9])pid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_type_pid_t=yes +else + rm -rf conftest* + ac_cv_type_pid_t=no +fi +rm -f conftest* + +fi +echo "$ac_t""$ac_cv_type_pid_t" 1>&6 +if test $ac_cv_type_pid_t = no; then + cat >> confdefs.pytmp <<\EOF + (''' pid_t ''', r''' int ''') +EOF +cat >> confdefs.h <<\EOF +#define pid_t int +EOF + +fi + + + +echo $ac_n "checking for size_t""... $ac_c" 1>&6 +echo "configure:5975: checking for size_t" >&5 +if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#if STDC_HEADERS +#include +#include +#endif +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_type_size_t=yes +else + rm -rf conftest* + ac_cv_type_size_t=no +fi +rm -f conftest* + +fi +echo "$ac_t""$ac_cv_type_size_t" 1>&6 +if test $ac_cv_type_size_t = no; then + cat >> confdefs.pytmp <<\EOF + (''' size_t ''', r''' unsigned ''') +EOF +cat >> confdefs.h <<\EOF +#define size_t unsigned +EOF + +fi + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 +echo "configure:6025: checking for ssize_t" >&5 +if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < + #include +int main() { +ssize_t foo = 0; +; return 0; } +EOF +if { (eval echo configure:6038: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_type_ssize_t=true +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_type_ssize_t=false +fi +rm -f conftest* +fi + +if test "$ac_cv_type_ssize_t" = true ; then + cat >> confdefs.pytmp <<\EOF + (''' HAVE_SSIZE_T ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_SSIZE_T 1 +EOF + + echo "$ac_t""yes" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + + + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + +if test "$GNU_CXX"; then + echo $ac_n "checking whether 64-bits std::atomic requires -latomic""... $ac_c" 1>&6 +echo "configure:6081: checking whether 64-bits std::atomic requires -latomic" >&5 +if eval "test \"`echo '$''{'ac_cv_needs_atomic'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < + #include +int main() { + std::atomic foo; foo = 1; +; return 0; } +EOF +if { (eval echo configure:6094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_needs_atomic=no +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + _SAVE_LIBS="$LIBS" + LIBS="$LIBS -latomic" + cat > conftest.$ac_ext < + #include +int main() { + std::atomic foo; foo = 1; +; return 0; } +EOF +if { (eval echo configure:6112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_needs_atomic=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_needs_atomic="do not know; assuming no" +fi +rm -f conftest* + LIBS="$_SAVE_LIBS" + +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_needs_atomic" 1>&6 + if test "$ac_cv_needs_atomic" = yes; then + MOZ_NEEDS_LIBATOMIC=1 + else + MOZ_NEEDS_LIBATOMIC= + fi + +fi +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + + +case "${OS_TARGET}" in +WINNT|Darwin|Android) + ;; +*) + STL_FLAGS="-I${DIST}/stl_wrappers" + WRAP_STL_INCLUDES=1 + ;; +esac + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 +echo "configure:6160: checking for $ac_hdr that defines DIR" >&5 +if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include <$ac_hdr> +int main() { +DIR *dirp = 0; +; return 0; } +EOF +if { (eval echo configure:6173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "ac_cv_header_dirent_$ac_safe=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_dirent_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.pytmp <> confdefs.h <&6 +fi +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then +echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 +echo "configure:6201: checking for opendir in -ldir" >&5 +ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldir $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="$LIBS -ldir" +else + echo "$ac_t""no" 1>&6 +fi + +else +echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 +echo "configure:6242: checking for opendir in -lx" >&5 +ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lx $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="$LIBS -lx" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +case "$target_os" in +freebsd*) +# for stuff like -lXshm + CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}" + ;; +esac + +# Check whether --enable-dtrace or --disable-dtrace was given. +if test "${enable_dtrace+set}" = set; then + enableval="$enable_dtrace" + if test "$enableval" = "yes"; then + enable_dtrace="yes" + elif test "$enableval" = "no"; then + : + else + { echo "configure: error: Option, dtrace, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, dtrace, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + +if test "x$enable_dtrace" = "xyes"; then + ac_safe=`echo "sys/sdt.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for sys/sdt.h""... $ac_c" 1>&6 +echo "configure:6305: checking for sys/sdt.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { + +; return 0; } +EOF +if { (eval echo configure:6318: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi + + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + HAVE_DTRACE=1 + else + echo "$ac_t""no" 1>&6 + + fi + + if test -n "$HAVE_DTRACE"; then + cat >> confdefs.pytmp <<\EOF + (''' INCLUDE_MOZILLA_DTRACE ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define INCLUDE_MOZILLA_DTRACE 1 +EOF + + else + { echo "configure: error: dtrace enabled but sys/sdt.h not found" 1>&2; echo "configure: error: dtrace enabled but sys/sdt.h not found" 1>&5; exit 1; }; + fi +fi + + +echo $ac_n "checking for gethostbyname_r in -lc_r""... $ac_c" 1>&6 +echo "configure:6353: checking for gethostbyname_r in -lc_r" >&5 +ac_lib_var=`echo c_r'_'gethostbyname_r | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lc_r $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo c_r | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.pytmp <> confdefs.h <&6 +fi + + +case $target in +*-darwin*) + ;; +*) + +echo $ac_n "checking for library containing dlopen""... $ac_c" 1>&6 +echo "configure:6409: checking for library containing dlopen" >&5 +if eval "test \"`echo '$''{'ac_cv_search_dlopen'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_func_search_save_LIBS="$LIBS" +ac_cv_search_dlopen="no" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_search_dlopen="none required" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 +fi +rm -f conftest* +test "$ac_cv_search_dlopen" = "no" && for i in dl; do +LIBS="-l$i $ac_func_search_save_LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_search_dlopen="-l$i" +break +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 +fi +rm -f conftest* +done +LIBS="$ac_func_search_save_LIBS" +fi + +echo "$ac_t""$ac_cv_search_dlopen" 1>&6 +if test "$ac_cv_search_dlopen" != "no"; then + test "$ac_cv_search_dlopen" = "none required" || LIBS="$ac_cv_search_dlopen $LIBS" + ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 +echo "configure:6467: checking for dlfcn.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { + +; return 0; } +EOF +if { (eval echo configure:6480: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi + + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.pytmp <<\EOF + (''' HAVE_DLOPEN ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_DLOPEN 1 +EOF + + else + echo "$ac_t""no" 1>&6 + + fi + +else : + +fi + ;; +esac + +if test ! "$GNU_CXX"; then + echo $ac_n "checking for demangle in -lC""... $ac_c" 1>&6 +echo "configure:6514: checking for demangle in -lC" >&5 +ac_lib_var=`echo C'_'demangle | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lC $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo C | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.pytmp <> confdefs.h <&6 +fi + +fi + +echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 +echo "configure:6566: checking for socket in -lsocket" >&5 +ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.pytmp <> confdefs.h <&6 +fi + + +case "$target_os" in +darwin*) + USE_PTHREADS=1 + ;; +*) + echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6 +echo "configure:6622: checking for pthread_create in -lpthreads" >&5 +ac_lib_var=`echo pthreads'_'pthread_create | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lpthreads $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads" +else + echo "$ac_t""no" 1>&6 +echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6 +echo "configure:6660: checking for pthread_create in -lpthread" >&5 +ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lpthread $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread" +else + echo "$ac_t""no" 1>&6 +echo $ac_n "checking for pthread_create in -lc_r""... $ac_c" 1>&6 +echo "configure:6698: checking for pthread_create in -lc_r" >&5 +ac_lib_var=`echo c_r'_'pthread_create | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lc_r $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r" +else + echo "$ac_t""no" 1>&6 +echo $ac_n "checking for pthread_create in -lc""... $ac_c" 1>&6 +echo "configure:6736: checking for pthread_create in -lc" >&5 +ac_lib_var=`echo c'_'pthread_create | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lc $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + USE_PTHREADS=1 + +else + echo "$ac_t""no" 1>&6 +fi + + +fi + + +fi + + +fi + + ;; +esac + +# Check whether --with-pthreads or --without-pthreads was given. +if test "${with_pthreads+set}" = set; then + withval="$with_pthreads" + if test "$withval" = "yes"; then + if test "$USE_PTHREADS"x = x; then + { echo "configure: error: --with-pthreads specified for a system without pthread support " 1>&2; echo "configure: error: --with-pthreads specified for a system without pthread support " 1>&5; exit 1; }; +fi + elif test "$withval" = "no"; then + USE_PTHREADS= + _PTHREAD_LDFLAGS= + + else + { echo "configure: error: Option, pthreads, does not take an argument ($withval)." 1>&2; echo "configure: error: Option, pthreads, does not take an argument ($withval)." 1>&5; exit 1; } + fi +fi + + +if test "$USE_PTHREADS"x != x +then + rm -f conftest* + ac_cv_have_dash_pthread=no + echo $ac_n "checking whether ${CC-cc} accepts -pthread""... $ac_c" 1>&6 +echo "configure:6810: checking whether ${CC-cc} accepts -pthread" >&5 + echo 'int main() { return 0; }' | cat > conftest.c + ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1 + if test $? -eq 0; then + if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then + ac_cv_have_dash_pthread=yes + case "$target_os" in + freebsd*) +# Freebsd doesn't use -pthread for compiles, it uses them for linking + ;; + *) + CFLAGS="$CFLAGS -pthread" + CXXFLAGS="$CXXFLAGS -pthread" + ;; + esac + fi + fi + rm -f conftest* + echo "$ac_t""$ac_cv_have_dash_pthread" 1>&6 + + ac_cv_have_dash_pthreads=no + if test "$ac_cv_have_dash_pthread" = "no"; then + echo $ac_n "checking whether ${CC-cc} accepts -pthreads""... $ac_c" 1>&6 +echo "configure:6833: checking whether ${CC-cc} accepts -pthreads" >&5 + echo 'int main() { return 0; }' | cat > conftest.c + ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1 + if test $? -eq 0; then + if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then + ac_cv_have_dash_pthreads=yes + CFLAGS="$CFLAGS -pthreads" + CXXFLAGS="$CXXFLAGS -pthreads" + fi + fi + rm -f conftest* + echo "$ac_t""$ac_cv_have_dash_pthreads" 1>&6 + fi + + case "$target" in + *-*-freebsd*) + cat >> confdefs.pytmp <<\EOF + (''' _REENTRANT ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define _REENTRANT 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' _THREAD_SAFE ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define _THREAD_SAFE 1 +EOF + + if test "$ac_cv_have_dash_pthread" = "yes"; then + _PTHREAD_LDFLAGS="-pthread" + fi + ;; + + *-*-openbsd*|*-*-bsdi*) + cat >> confdefs.pytmp <<\EOF + (''' _REENTRANT ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define _REENTRANT 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' _THREAD_SAFE ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define _THREAD_SAFE 1 +EOF + + if test "$ac_cv_have_dash_pthread" = "yes"; then + _PTHREAD_LDFLAGS="-pthread" + fi + ;; + + *-*-linux*|*-*-kfreebsd*-gnu|*-*-gnu*) + cat >> confdefs.pytmp <<\EOF + (''' _REENTRANT ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define _REENTRANT 1 +EOF + + ;; + + esac + LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}" +fi + + + + + +if test $ac_cv_prog_gcc = yes; then + echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 +echo "configure:6908: checking whether ${CC-cc} needs -traditional" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_pattern="Autoconf.*'x'" + cat > conftest.$ac_ext < +Autoconf TIOCGETP +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "$ac_pattern" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_prog_gcc_traditional=yes +else + rm -rf conftest* + ac_cv_prog_gcc_traditional=no +fi +rm -f conftest* + + + if test $ac_cv_prog_gcc_traditional = no; then + cat > conftest.$ac_ext < +Autoconf TCGETA +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "$ac_pattern" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_prog_gcc_traditional=yes +fi +rm -f conftest* + + fi +fi + +echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6 + if test $ac_cv_prog_gcc_traditional = yes; then + CC="$CC -traditional" + fi +fi + +echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 +echo "configure:6954: checking for 8-bit clean memcmp" >&5 +if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_memcmp_clean=no +else + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + ac_cv_func_memcmp_clean=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_func_memcmp_clean=no +fi +rm -fr conftest* +fi + +fi + +echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 +test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" + +for ac_func in getc_unlocked _getc_nolock gmtime_r localtime_r pthread_getname_np +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:6992: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#undef $ac_func +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:7024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.pytmp <> confdefs.h <&6 +fi +done + + +case "$OS_TARGET" in +Darwin) + ;; +*) + echo $ac_n "checking for clock_gettime(CLOCK_MONOTONIC)""... $ac_c" 1>&6 +echo "configure:7057: checking for clock_gettime(CLOCK_MONOTONIC)" >&5 +if eval "test \"`echo '$''{'ac_cv_clock_monotonic'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + for libs in "" -lrt; do + _SAVE_LIBS="$LIBS" + LIBS="$LIBS $libs" + cat > conftest.$ac_ext < +int main() { + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); +; return 0; } +EOF +if { (eval echo configure:7073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_clock_monotonic=$libs + LIBS="$_SAVE_LIBS" + break +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_clock_monotonic=no +fi +rm -f conftest* + LIBS="$_SAVE_LIBS" + done +fi + +echo "$ac_t""$ac_cv_clock_monotonic" 1>&6 + if test "$ac_cv_clock_monotonic" != "no"; then + HAVE_CLOCK_MONOTONIC=1 + REALTIME_LIBS=$ac_cv_clock_monotonic + cat >> confdefs.pytmp <<\EOF + (''' HAVE_CLOCK_MONOTONIC ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_CLOCK_MONOTONIC 1 +EOF + + + + fi + ;; +esac + +echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 +echo "configure:7107: checking for sin in -lm" >&5 +ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lm $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.pytmp <> confdefs.h <&6 +fi + +echo $ac_n "checking for sincos in -lm""... $ac_c" 1>&6 +echo "configure:7157: checking for sincos in -lm" >&5 +ac_lib_var=`echo m'_'sincos | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lm $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.pytmp <<\EOF + (''' HAVE_SINCOS ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_SINCOS 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi + +echo $ac_n "checking for __sincos in -lm""... $ac_c" 1>&6 +echo "configure:7203: checking for __sincos in -lm" >&5 +ac_lib_var=`echo m'_'__sincos | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lm $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.pytmp <<\EOF + (''' HAVE___SINCOS ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE___SINCOS 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi + + + +if test -z "$MACOS_DEPLOYMENT_TARGET" || test "$MACOS_DEPLOYMENT_TARGET" -ge "100300"; then + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + +echo $ac_n "checking for wcrtomb""... $ac_c" 1>&6 +echo "configure:7260: checking for wcrtomb" >&5 +if eval "test \"`echo '$''{'ac_cv_have_wcrtomb'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { +mbstate_t ps={0};wcrtomb(0,'f',&ps); +; return 0; } +EOF +if { (eval echo configure:7272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_have_wcrtomb="yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_have_wcrtomb="no" +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_have_wcrtomb" 1>&6 +if test "$ac_cv_have_wcrtomb" = "yes"; then + cat >> confdefs.pytmp <<\EOF + (''' HAVE_WCRTOMB ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_WCRTOMB 1 +EOF + +fi +echo $ac_n "checking for mbrtowc""... $ac_c" 1>&6 +echo "configure:7295: checking for mbrtowc" >&5 +if eval "test \"`echo '$''{'ac_cv_have_mbrtowc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { +mbstate_t ps={0};mbrtowc(0,0,0,&ps); +; return 0; } +EOF +if { (eval echo configure:7307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_have_mbrtowc="yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_have_mbrtowc="no" +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_have_mbrtowc" 1>&6 +if test "$ac_cv_have_mbrtowc" = "yes"; then + cat >> confdefs.pytmp <<\EOF + (''' HAVE_MBRTOWC ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_MBRTOWC 1 +EOF + +fi +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +fi + +echo $ac_n "checking for res_ninit()""... $ac_c" 1>&6 +echo "configure:7339: checking for res_ninit()" >&5 +if eval "test \"`echo '$''{'ac_cv_func_res_ninit'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$OS_TARGET" = NetBSD -o "$OS_TARGET" = OpenBSD; then + ac_cv_func_res_ninit=no + else + cat > conftest.$ac_ext < + #include + #include + #include + +int main() { +int foo = res_ninit(&_res); +; return 0; } +EOF +if { (eval echo configure:7362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_func_res_ninit=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_func_res_ninit=no +fi +rm -f conftest* + fi + +fi + +echo "$ac_t""$ac_cv_func_res_ninit" 1>&6 + +if test "$ac_cv_func_res_ninit" = "yes"; then + cat >> confdefs.pytmp <<\EOF + (''' HAVE_RES_NINIT ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_RES_NINIT 1 +EOF + +fi + + + echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6 +echo "configure:7390: checking for nl_langinfo and CODESET" >&5 +if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { +char* cs = nl_langinfo(CODESET); +; return 0; } +EOF +if { (eval echo configure:7402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + am_cv_langinfo_codeset=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + am_cv_langinfo_codeset=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$am_cv_langinfo_codeset" 1>&6 + if test $am_cv_langinfo_codeset = yes; then + cat >> confdefs.pytmp <<\EOF + (''' HAVE_LANGINFO_CODESET ''', r''' 1 ''') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_LANGINFO_CODESET 1 +EOF + + HAVE_LANGINFO_CODESET=1 + fi + + + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + +echo $ac_n "checking for an implementation of va_copy()""... $ac_c" 1>&6 +echo "configure:7438: checking for an implementation of va_copy()" >&5 +if eval "test \"`echo '$''{'ac_cv_va_copy'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < + #include + void f (int i, ...) { + va_list args1, args2; + va_start (args1, i); + va_copy (args2, args1); + if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) + exit (1); + va_end (args1); va_end (args2); + } +int main() { +f(0, 42); return 0 +; return 0; } +EOF +if { (eval echo configure:7459: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_va_copy=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_va_copy=no + +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_va_copy" 1>&6 +echo $ac_n "checking whether va_list can be copied by value""... $ac_c" 1>&6 +echo "configure:7475: checking whether va_list can be copied by value" >&5 +if eval "test \"`echo '$''{'ac_cv_va_val_copy'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < + #include + void f (int i, ...) { + va_list args1, args2; + va_start (args1, i); + args2 = args1; + if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) + exit (1); + va_end (args1); va_end (args2); + } +int main() { +f(0, 42); return 0 +; return 0; } +EOF +if { (eval echo configure:7496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_va_val_copy=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_va_val_copy=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_va_val_copy" 1>&6 +if test "x$ac_cv_va_copy" = "xyes"; then + cat >> confdefs.pytmp <<\EOF + (''' VA_COPY ''', r''' va_copy ''') +EOF +cat >> confdefs.h <<\EOF +#define VA_COPY va_copy +EOF + + cat >> confdefs.pytmp <<\EOF + (''' HAVE_VA_COPY ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_VA_COPY 1 +EOF + +fi + +if test "x$ac_cv_va_val_copy" = "xno"; then + cat >> confdefs.pytmp <<\EOF + (''' HAVE_VA_LIST_AS_ARRAY ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_VA_LIST_AS_ARRAY 1 +EOF + +fi + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + + +ARM_ABI_PREFIX= +if test "$GNU_CC"; then + if test "$CPU_ARCH" = "arm" ; then + echo $ac_n "checking for ARM EABI""... $ac_c" 1>&6 +echo "configure:7549: checking for ARM EABI" >&5 +if eval "test \"`echo '$''{'ac_cv_gcc_arm_eabi'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_gcc_arm_eabi="yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_gcc_arm_eabi="no" +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_gcc_arm_eabi" 1>&6 + if test "$ac_cv_gcc_arm_eabi" = "yes"; then + HAVE_ARM_EABI=1 + ARM_ABI_PREFIX=eabi- + else + ARM_ABI_PREFIX=oabi- + fi + fi + + TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc3}" +fi + +echo $ac_n "checking whether the C++ \"using\" keyword resolves ambiguity""... $ac_c" 1>&6 +echo "configure:7592: checking whether the C++ \"using\" keyword resolves ambiguity" >&5 +if eval "test \"`echo '$''{'ac_cv_cpp_ambiguity_resolving_using'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cpp_ambiguity_resolving_using=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cpp_ambiguity_resolving_using=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cpp_ambiguity_resolving_using" 1>&6 +if test "$ac_cv_cpp_ambiguity_resolving_using" = yes ; then + cat >> confdefs.pytmp <<\EOF + (''' HAVE_CPP_AMBIGUITY_RESOLVING_USING ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_CPP_AMBIGUITY_RESOLVING_USING 1 +EOF + +fi + +echo $ac_n "checking for C++ dynamic_cast to void*""... $ac_c" 1>&6 +echo "configure:7637: checking for C++ dynamic_cast to void*" >&5 +if eval "test \"`echo '$''{'ac_cv_cpp_dynamic_cast_void_ptr'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$cross_compiling" = yes; then + ac_cv_cpp_dynamic_cast_void_ptr=no +else + cat > conftest.$ac_ext <(subx))) || + (((void*)&mdo != (void*)suby) && + ((void*)&mdo == dynamic_cast(suby)))); + } +EOF +if { (eval echo configure:7664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + ac_cv_cpp_dynamic_cast_void_ptr=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_cpp_dynamic_cast_void_ptr=no +fi +rm -fr conftest* +fi + +fi + +echo "$ac_t""$ac_cv_cpp_dynamic_cast_void_ptr" 1>&6 +if test "$ac_cv_cpp_dynamic_cast_void_ptr" = yes ; then + cat >> confdefs.pytmp <<\EOF + (''' HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1 +EOF + +fi + + +# try harder, when checking for __thread support, see bug 521750 comment #33 and below +# We pass MOZ_OPTIMIZE_LDFLAGS to the linker because if dead_strip is +# enabled, the linker in xcode 4.1 will crash. Without this it would crash when +# linking XUL. +_SAVE_LDFLAGS=$LDFLAGS +LDFLAGS="$LDFLAGS $DSO_PIC_CFLAGS $DSO_LDOPTS $MOZ_OPTIMIZE_LDFLAGS" +echo $ac_n "checking for __thread keyword for TLS variables""... $ac_c" 1>&6 +echo "configure:7697: checking for __thread keyword for TLS variables" >&5 +if eval "test \"`echo '$''{'ac_cv_thread_keyword'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_thread_keyword=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_thread_keyword=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_thread_keyword" 1>&6 +LDFLAGS=$_SAVE_LDFLAGS +if test "$ac_cv_thread_keyword" = yes; then + # mips builds fail with TLS variables because of a binutils bug. + # See bug 528687 + case "${target}" in + mips*-*) + : + ;; + *-android*|*-linuxandroid*) + : + ;; + *) + cat >> confdefs.pytmp <<\EOF + (''' HAVE_THREAD_TLS_KEYWORD ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_THREAD_TLS_KEYWORD 1 +EOF + + ;; + esac +fi + + +echo $ac_n "checking for __attribute__((always_inline))""... $ac_c" 1>&6 +echo "configure:7747: checking for __attribute__((always_inline))" >&5 +if eval "test \"`echo '$''{'ac_cv_attribute_always_inline'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_attribute_always_inline=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_attribute_always_inline=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_attribute_always_inline" 1>&6 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + + +echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 +echo "configure:7783: checking for LC_MESSAGES" >&5 +if eval "test \"`echo '$''{'ac_cv_i18n_lc_messages'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { +int category = LC_MESSAGES; +; return 0; } +EOF +if { (eval echo configure:7795: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_i18n_lc_messages=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_i18n_lc_messages=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_i18n_lc_messages" 1>&6 +if test "$ac_cv_i18n_lc_messages" = yes; then + cat >> confdefs.pytmp <<\EOF + (''' HAVE_I18N_LC_MESSAGES ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_I18N_LC_MESSAGES 1 +EOF + +fi + +for ac_func in localeconv +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:7821: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#undef $ac_func +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:7853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.pytmp <> confdefs.h <&6 +fi +done + +fi # ! SKIP_COMPILER_CHECKS + +TARGET_XPCOM_ABI= +if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then + TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}" +fi + + +if test -n "$SKIP_COMPILER_CHECKS"; then + cat >> confdefs.pytmp <<\EOF + (''' MALLOC_H ''', r''' ''') +EOF +cat >> confdefs.h <<\EOF +#define MALLOC_H +EOF + + cat >> confdefs.pytmp <<\EOF + (''' HAVE_FORCEINLINE ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_FORCEINLINE 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' HAVE_LOCALECONV ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_LOCALECONV 1 +EOF + +fi # SKIP_COMPILER_CHECKS + + +# External Packages + + + + + + +# Check whether --with-nspr-cflags or --without-nspr-cflags was given. +if test "${with_nspr_cflags+set}" = set; then + withval="$with_nspr_cflags" + NSPR_CFLAGS=$withval +fi + +# Check whether --with-nspr-libs or --without-nspr-libs was given. +if test "${with_nspr_libs+set}" = set; then + withval="$with_nspr_libs" + NSPR_LIBS=$withval +fi + + + + # Check whether --enable-nspr-build or --disable-nspr-build was given. +if test "${enable_nspr_build+set}" = set; then + enableval="$enable_nspr_build" + if test "$enableval" = "yes"; then + MOZ_BUILD_NSPR=1 + elif test "$enableval" = "no"; then + MOZ_BUILD_NSPR= + else + { echo "configure: error: Option, nspr-build, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, nspr-build, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + + +if test "$MOZ_BUILD_APP" != js || test -n "$JS_STANDALONE"; then + _IS_OUTER_CONFIGURE=1 +fi + +# Check whether --with-system-nspr or --without-system-nspr was given. +if test "${with_system_nspr+set}" = set; then + withval="$with_system_nspr" + if test "$withval" = "yes"; then + _USE_SYSTEM_NSPR=1 + elif test "$withval" = "no"; then + : + else + { echo "configure: error: Option, system-nspr, does not take an argument ($withval)." 1>&2; echo "configure: error: Option, system-nspr, does not take an argument ($withval)." 1>&5; exit 1; } + fi +fi + + +JS_POSIX_NSPR=unset + + if test -n "$JS_STANDALONE"; then + case "$target" in + *linux*|*darwin*|*dragonfly*|*freebsd*|*netbsd*|*openbsd*) + if test -z "$_HAS_NSPR"; then + JS_POSIX_NSPR_DEFAULT=1 + fi + ;; + esac + fi + + # Check whether --enable-posix-nspr-emulation or --disable-posix-nspr-emulation was given. +if test "${enable_posix_nspr_emulation+set}" = set; then + enableval="$enable_posix_nspr_emulation" + if test "$enableval" = "yes"; then + JS_POSIX_NSPR=1 + elif test "$enableval" = "no"; then + JS_POSIX_NSPR= + else + { echo "configure: error: Option, posix-nspr-emulation, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, posix-nspr-emulation, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + + + +echo $ac_n "checking NSPR selection""... $ac_c" 1>&6 +echo "configure:7993: checking NSPR selection" >&5 +nspr_opts= +which_nspr=default +if test -n "$_USE_SYSTEM_NSPR"; then + nspr_opts="x$nspr_opts" + which_nspr="system" +fi +if test -n "$NSPR_CFLAGS" -o -n "$NSPR_LIBS"; then + nspr_opts="x$nspr_opts" + which_nspr="command-line" +fi +if test -n "$MOZ_BUILD_NSPR"; then + nspr_opts="x$nspr_opts" + which_nspr="source-tree" +fi +if test "$JS_POSIX_NSPR" = unset; then + JS_POSIX_NSPR= +else + nspr_opts="x$nspr_opts" + which_nspr="posix-wrapper" +fi + +if test -z "$nspr_opts"; then + if test "$MOZ_BUILD_APP" != js; then + MOZ_BUILD_NSPR=1 + which_nspr="source-tree" + else + JS_POSIX_NSPR="$JS_POSIX_NSPR_DEFAULT" + if test -z "$JS_POSIX_NSPR"; then + MOZ_BUILD_NSPR=1 + which_nspr="source-tree" + else + which_nspr="posix-wrapper" + fi + fi +fi + +if test -z "$nspr_opts" || test "$nspr_opts" = x; then + echo "$ac_t""$which_nspr" 1>&6 +else + { echo "configure: error: only one way of using NSPR may be selected. See 'configure --help'." 1>&2; echo "configure: error: only one way of using NSPR may be selected. See 'configure --help'." 1>&5; exit 1; } +fi + + + +if test "$MOZ_BUILD_APP" = js; then + if test "$JS_POSIX_NSPR" = 1; then + cat >> confdefs.pytmp <<\EOF + (''' JS_POSIX_NSPR ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_POSIX_NSPR 1 +EOF + + fi + +fi + +# A (sub)configure invoked by the toplevel configure will always receive +# --with-nspr-libs on the command line. It will never need to figure out +# anything itself. +if test -n "$_IS_OUTER_CONFIGURE"; then + +if test -n "$_USE_SYSTEM_NSPR"; then + +# Check whether --with-nspr-prefix or --without-nspr-prefix was given. +if test "${with_nspr_prefix+set}" = set; then + withval="$with_nspr_prefix" + nspr_config_prefix="$withval" +else + nspr_config_prefix="" +fi + + +# Check whether --with-nspr-exec-prefix or --without-nspr-exec-prefix was given. +if test "${with_nspr_exec_prefix+set}" = set; then + withval="$with_nspr_exec_prefix" + nspr_config_exec_prefix="$withval" +else + nspr_config_exec_prefix="" +fi + + + if test -n "$nspr_config_exec_prefix"; then + nspr_config_args="$nspr_config_args --exec-prefix=$nspr_config_exec_prefix" + if test -z "$NSPR_CONFIG"; then + NSPR_CONFIG=$nspr_config_exec_prefix/bin/nspr-config + fi + fi + if test -n "$nspr_config_prefix"; then + nspr_config_args="$nspr_config_args --prefix=$nspr_config_prefix" + if test -z "$NSPR_CONFIG"; then + NSPR_CONFIG=$nspr_config_prefix/bin/nspr-config + fi + fi + + unset ac_cv_path_NSPR_CONFIG + # Extract the first word of "nspr-config", so it can be a program name with args. +set dummy nspr-config; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:8093: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_NSPR_CONFIG'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$NSPR_CONFIG" in + /*) + ac_cv_path_NSPR_CONFIG="$NSPR_CONFIG" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_NSPR_CONFIG="$NSPR_CONFIG" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_NSPR_CONFIG="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_NSPR_CONFIG" && ac_cv_path_NSPR_CONFIG="no" + ;; +esac +fi +NSPR_CONFIG="$ac_cv_path_NSPR_CONFIG" +if test -n "$NSPR_CONFIG"; then + echo "$ac_t""$NSPR_CONFIG" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + min_nspr_version=$NSPR_MINVER + echo $ac_n "checking for NSPR - version >= $min_nspr_version""... $ac_c" 1>&6 +echo "configure:8128: checking for NSPR - version >= $min_nspr_version" >&5 + + no_nspr="" + if test "$NSPR_CONFIG" != "no"; then + NSPR_CFLAGS=`$NSPR_CONFIG $nspr_config_args --cflags` + NSPR_LIBS=`$NSPR_CONFIG $nspr_config_args --libs` + NSPR_VERSION_STRING=`$NSPR_CONFIG $nspr_config_args --version` + elif test -n "${NO_NSPR_CONFIG_SYSTEM_VERSION}"; then + NSPR_CFLAGS="${NO_NSPR_CONFIG_SYSTEM_CFLAGS}" + NSPR_LIBS="${NO_NSPR_CONFIG_SYSTEM_LDFLAGS}" + NSPR_VERSION_STRING="$NO_NSPR_CONFIG_SYSTEM_VERSION" + else + no_nspr="yes" + fi + + if test -z "$no_nspr"; then + nspr_config_major_version=`echo $NSPR_VERSION_STRING | \ + sed 's/\([0-9]*\)\.\([0-9]*\)\(\.\([0-9]*\)\)\{0,1\}/\1/'` + nspr_config_minor_version=`echo $NSPR_VERSION_STRING | \ + sed 's/\([0-9]*\)\.\([0-9]*\)\(\.\([0-9]*\)\)\{0,1\}/\2/'` + nspr_config_micro_version=`echo $NSPR_VERSION_STRING | \ + sed 's/\([0-9]*\)\.\([0-9]*\)\(\.\([0-9]*\)\)\{0,1\}/\4/'` + if test -z "$nspr_config_micro_version"; then + nspr_config_micro_version="0" + fi + + min_nspr_major_version=`echo $min_nspr_version | \ + sed 's/\([0-9]*\)\.\([0-9]*\)\(\.\([0-9]*\)\)\{0,1\}/\1/'` + min_nspr_minor_version=`echo $min_nspr_version | \ + sed 's/\([0-9]*\)\.\([0-9]*\)\(\.\([0-9]*\)\)\{0,1\}/\2/'` + min_nspr_micro_version=`echo $min_nspr_version | \ + sed 's/\([0-9]*\)\.\([0-9]*\)\(\.\([0-9]*\)\)\{0,1\}/\4/'` + if test -z "$min_nspr_micro_version"; then + min_nspr_micro_version="0" + fi + + if test "$nspr_config_major_version" -ne "$min_nspr_major_version"; then + no_nspr="yes" + elif test "$nspr_config_major_version" -eq "$min_nspr_major_version" && + test "$nspr_config_minor_version" -lt "$min_nspr_minor_version"; then + no_nspr="yes" + elif test "$nspr_config_major_version" -eq "$min_nspr_major_version" && + test "$nspr_config_minor_version" -eq "$min_nspr_minor_version" && + test "$nspr_config_micro_version" -lt "$min_nspr_micro_version"; then + no_nspr="yes" + fi + fi + + if test -z "$no_nspr"; then + echo "$ac_t""yes" 1>&6 + MOZ_SYSTEM_NSPR=1 + else + echo "$ac_t""no" 1>&6 + { echo "configure: error: you do not have NSPR installed or your version is older than $NSPR_MINVER." 1>&2; echo "configure: error: you do not have NSPR installed or your version is older than $NSPR_MINVER." 1>&5; exit 1; } + fi + + + + + + +fi + +if test -n "$MOZ_SYSTEM_NSPR" -o -n "$NSPR_CFLAGS" -o -n "$NSPR_LIBS"; then + _SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $NSPR_CFLAGS" + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + { echo "configure: error: system NSPR does not support PR_STATIC_ASSERT or including prtypes.h does not provide it" 1>&2; echo "configure: error: system NSPR does not support PR_STATIC_ASSERT or including prtypes.h does not provide it" 1>&5; exit 1; } +fi +rm -f conftest* + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + { echo "configure: error: system NSPR does not support PR_UINT64 or including prtypes.h does not provide it" 1>&2; echo "configure: error: system NSPR does not support PR_UINT64 or including prtypes.h does not provide it" 1>&5; exit 1; } +fi +rm -f conftest* + CFLAGS=$_SAVE_CFLAGS +elif test -z "$JS_POSIX_NSPR"; then + NSPR_INCLUDE_DIR="${DIST}/include/nspr" + NSPR_CFLAGS="-I${NSPR_INCLUDE_DIR}" + if test -n "$GNU_CC"; then + if test -n "$MOZ_FOLD_LIBS"; then + NSPR_LIB_DIR=${DIST}/lib + else + NSPR_LIB_DIR=${DIST}/bin + fi + NSPR_LIBS="-L${NSPR_LIB_DIR} -lnspr${NSPR_VERSION} -lplc${NSPR_VERSION} -lplds${NSPR_VERSION}" + else + # NSS needs actual static libs to link to, and this is where they are. + NSPR_LIBS="${DIST}/lib/nspr${NSPR_VERSION}.lib ${DIST}/lib/plc${NSPR_VERSION}.lib ${DIST}/lib/plds${NSPR_VERSION}.lib " + NSPR_LIB_DIR="${DIST}/lib" + fi +fi + + + + + +PKGCONF_REQUIRES_PRIVATE="Requires.private: nspr" +if test -n "$MOZ_SYSTEM_NSPR"; then + _SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $NSPR_CFLAGS" + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + { echo "configure: error: system NSPR does not support PR_STATIC_ASSERT" 1>&2; echo "configure: error: system NSPR does not support PR_STATIC_ASSERT" 1>&5; exit 1; } +fi +rm -f conftest* + CFLAGS=$_SAVE_CFLAGS + # piggy back on $MOZ_SYSTEM_NSPR to set a variable for the nspr check for js.pc + PKGCONF_REQUIRES_PRIVATE="Requires.private: nspr >= $NSPR_MINVER" +elif test -n "$JS_POSIX_NSPR"; then + PKGCONF_REQUIRES_PRIVATE= +fi + + +fi # _IS_OUTER_CONFIGURE + + + +if test -n "$JS_STANDALONE"; then + ZLIB_DIR=yes +fi + + + +MOZZLIB=1.2.3 + +# Check whether --with-system-zlib or --without-system-zlib was given. +if test "${with_system_zlib+set}" = set; then + withval="$with_system_zlib" + ZLIB_DIR=$withval +fi + + +if test -z "$MOZ_ZLIB_LIBS$MOZ_ZLIB_CFLAGS$SKIP_LIBRARY_CHECKS"; then + _SAVE_CFLAGS=$CFLAGS + _SAVE_LDFLAGS=$LDFLAGS + _SAVE_LIBS=$LIBS + + if test -n "${ZLIB_DIR}" -a "${ZLIB_DIR}" != "yes"; then + MOZ_ZLIB_CFLAGS="-I${ZLIB_DIR}/include" + MOZ_ZLIB_LIBS="-L${ZLIB_DIR}/lib" + CFLAGS="$MOZ_ZLIB_CFLAGS $CFLAGS" + LDFLAGS="$MOZ_ZLIB_LIBS $LDFLAGS" + fi + if test -z "$ZLIB_DIR" -o "$ZLIB_DIR" = no; then + MOZ_SYSTEM_ZLIB= + else + echo $ac_n "checking for gzread in -lz""... $ac_c" 1>&6 +echo "configure:8319: checking for gzread in -lz" >&5 +ac_lib_var=`echo z'_'gzread | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lz $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + MOZ_SYSTEM_ZLIB=1 MOZ_ZLIB_LIBS="$MOZ_ZLIB_LIBS -lz" +else + echo "$ac_t""no" 1>&6 +MOZ_SYSTEM_ZLIB= +fi + + if test "$MOZ_SYSTEM_ZLIB" = 1; then + MOZZLIBNUM=`echo $MOZZLIB | awk -F. '{printf "0x%x\n", ((($1 * 16 + $2) * 16) + $3) * 16 + $4}'` + cat > conftest.$ac_ext < + #include + #include +int main() { + #if ZLIB_VERNUM < $MOZZLIBNUM + #error "Insufficient zlib version ($MOZZLIBNUM required)." + #endif +; return 0; } +EOF +if { (eval echo configure:8373: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + MOZ_SYSTEM_ZLIB=1 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + { echo "configure: error: Insufficient zlib version for --with-system-zlib ($MOZZLIB required)" 1>&2; echo "configure: error: Insufficient zlib version for --with-system-zlib ($MOZZLIB required)" 1>&5; exit 1; } +fi +rm -f conftest* + fi + fi + CFLAGS=$_SAVE_CFLAGS + LDFLAGS=$_SAVE_LDFLAGS + LIBS=$_SAVE_LIBS +fi + + + + + + + +if test -n "$ZLIB_IN_MOZGLUE"; then + cat >> confdefs.pytmp <<\EOF + (''' ZLIB_IN_MOZGLUE ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define ZLIB_IN_MOZGLUE 1 +EOF + +fi + + + +# Application + +# Components and Features + +# Check whether --enable-ui-locale or --disable-ui-locale was given. +if test "${enable_ui_locale+set}" = set; then + enableval="$enable_ui_locale" + MOZ_UI_LOCALE=$enableval +fi + + + +# Individual module options + +# Debugging and Optimizations + +if test -z "$MOZ_OPTIMIZE_FLAGS"; then + MOZ_OPTIMIZE_FLAGS="-O" +fi + +# Check whether --enable-optimize or --disable-optimize was given. +if test "${enable_optimize+set}" = set; then + enableval="$enable_optimize" + if test "$enableval" != "no"; then + MOZ_OPTIMIZE=1 + if test -n "$enableval" -a "$enableval" != "yes"; then + MOZ_OPTIMIZE_FLAGS=`echo "$enableval" | sed -e 's|\\\ | |g'` + MOZ_OPTIMIZE=2 + fi +else + MOZ_OPTIMIZE= +fi +else + MOZ_OPTIMIZE=1 +fi + + + + case "$target" in + *android*) + unwind_tables="-funwind-tables" + ;; + esac + if test "$GNU_CC"; then + MOZ_ENABLE_FRAME_PTR="-fno-omit-frame-pointer $unwind_tables" + MOZ_DISABLE_FRAME_PTR="-fomit-frame-pointer" + if test "$CPU_ARCH" = arm; then + # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54398 + MOZ_ENABLE_FRAME_PTR="$unwind_tables" + fi + else + case "$target" in + *-mingw32*) + MOZ_ENABLE_FRAME_PTR="-Oy-" + MOZ_DISABLE_FRAME_PTR="-Oy" + ;; + esac + fi + + # If we are debugging, profiling, using sanitizers, or on win32 we want a + # frame pointer. + if test -z "$MOZ_OPTIMIZE" -o \ + -n "$MOZ_PROFILING" -o \ + -n "$MOZ_DEBUG" -o \ + -n "$MOZ_MSAN" -o \ + -n "$MOZ_ASAN" -o \ + "$OS_ARCH:$CPU_ARCH" = "WINNT:x86"; then + MOZ_FRAMEPTR_FLAGS="$MOZ_ENABLE_FRAME_PTR" + else + MOZ_FRAMEPTR_FLAGS="$MOZ_DISABLE_FRAME_PTR" + fi + + +if test "$COMPILE_ENVIRONMENT"; then +if test -n "$MOZ_OPTIMIZE"; then + echo $ac_n "checking for valid optimization flags""... $ac_c" 1>&6 +echo "configure:8484: checking for valid optimization flags" >&5 + _SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS" + cat > conftest.$ac_ext < +int main() { +printf("Hello World\n"); +; return 0; } +EOF +if { (eval echo configure:8495: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + _results=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + _results=no +fi +rm -f conftest* + echo "$ac_t""$_results" 1>&6 + if test "$_results" = "no"; then + { echo "configure: error: These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS" 1>&2; echo "configure: error: These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS" 1>&5; exit 1; } + fi + CFLAGS=$_SAVE_CFLAGS +fi +fi # COMPILE_ENVIRONMENT + + + + + + + +ENABLE_TRACE_LOGGING=1 +# Check whether --enable-trace-logging or --disable-trace-logging was given. +if test "${enable_trace_logging+set}" = set; then + enableval="$enable_trace_logging" + if test "$enableval" = "no"; then + ENABLE_TRACE_LOGGING= + elif test "$enableval" = "yes"; then + : + else + { echo "configure: error: Option, trace-logging, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, trace-logging, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + + + +if test -n "$ENABLE_TRACE_LOGGING"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_TRACE_LOGGING ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_TRACE_LOGGING 1 +EOF + +fi + +if test -z "$MOZ_ENABLE_WARNINGS_AS_ERRORS"; then + WARNINGS_AS_ERRORS='' +fi + + +if test "$JS_STANDALONE"; then + MOZ_GLUE_IN_PROGRAM= +else + case "${OS_TARGET}" in + Android|WINNT|Darwin) + MOZ_GLUE_IN_PROGRAM= + ;; + *) + MOZ_GLUE_IN_PROGRAM=1 + cat >> confdefs.pytmp <<\EOF + (''' MOZ_GLUE_IN_PROGRAM ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define MOZ_GLUE_IN_PROGRAM 1 +EOF + + ;; + esac +fi + +if test "$MOZ_MEMORY"; then + if test "x$MOZ_DEBUG" = "x1"; then + cat >> confdefs.pytmp <<\EOF + (''' MOZ_MEMORY_DEBUG ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define MOZ_MEMORY_DEBUG 1 +EOF + + fi + case "${target}" in + *-mingw*) + export MOZ_NO_DEBUG_RTL=1 + ;; + esac +fi + + + +# Check whether --enable-small-chunk-size or --disable-small-chunk-size was given. +if test "${enable_small_chunk_size+set}" = set; then + enableval="$enable_small_chunk_size" + if test "$enableval" = "yes"; then + JS_GC_SMALL_CHUNK_SIZE=1 + elif test "$enableval" = "no"; then + JS_GC_SMALL_CHUNK_SIZE= + else + { echo "configure: error: Option, small-chunk-size, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, small-chunk-size, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + +if test -n "$JS_GC_SMALL_CHUNK_SIZE"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_GC_SMALL_CHUNK_SIZE ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_GC_SMALL_CHUNK_SIZE 1 +EOF + +fi + +# Check whether --enable-valgrind or --disable-valgrind was given. +if test "${enable_valgrind+set}" = set; then + enableval="$enable_valgrind" + if test "$enableval" = "yes"; then + MOZ_VALGRIND=1 + elif test "$enableval" = "no"; then + MOZ_VALGRIND= + else + { echo "configure: error: Option, valgrind, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, valgrind, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + +if test -n "$MOZ_VALGRIND"; then + ac_safe=`echo "valgrind/valgrind.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for valgrind/valgrind.h""... $ac_c" 1>&6 +echo "configure:8626: checking for valgrind/valgrind.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { + +; return 0; } +EOF +if { (eval echo configure:8639: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi + + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : + else + echo "$ac_t""no" 1>&6 + { echo "configure: error: --enable-valgrind specified but Valgrind is not installed" 1>&2; echo "configure: error: --enable-valgrind specified but Valgrind is not installed" 1>&5; exit 1; } + fi + + cat >> confdefs.pytmp <<\EOF + (''' MOZ_VALGRIND ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define MOZ_VALGRIND 1 +EOF + + MOZ_VALGRIND=1 +fi + + +# Check whether --enable-simulator or --disable-simulator was given. +if test "${enable_simulator+set}" = set; then + enableval="$enable_simulator" + JS_SIMULATOR="$enableval" +fi + + +if test -n "$JS_SIMULATOR"; then + case "$JS_SIMULATOR" in + arm|arm64|mips32|mips64) ;; + no) + JS_SIMULATOR= + ;; + *) { echo "configure: error: Invalid simulator. Valid simulators are: arm, arm64, mips32, mips64." 1>&2; echo "configure: error: Invalid simulator. Valid simulators are: arm, arm64, mips32, mips64." 1>&5; exit 1; } ;; + esac +fi + +if test -z "$ENABLE_ION"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_CODEGEN_NONE ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CODEGEN_NONE 1 +EOF + + JS_CODEGEN_NONE=1 +elif test "$JS_SIMULATOR" = arm; then + if test "$CPU_ARCH" != "x86"; then + { echo "configure: error: The ARM simulator only works on x86." 1>&2; echo "configure: error: The ARM simulator only works on x86." 1>&5; exit 1; } + fi + cat >> confdefs.pytmp <<\EOF + (''' JS_SIMULATOR ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_SIMULATOR 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' JS_SIMULATOR_ARM ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_SIMULATOR_ARM 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' JS_DISASM_ARM ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_DISASM_ARM 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' JS_CODEGEN_ARM ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CODEGEN_ARM 1 +EOF + + JS_SIMULATOR_ARM=1 + JS_DISASM_ARM=1 + JS_CODEGEN_ARM=1 +elif test "$JS_SIMULATOR" = arm64; then + if test "$CPU_ARCH" != "x86_64"; then + { echo "configure: error: The ARM64 simulator only works on x86_64." 1>&2; echo "configure: error: The ARM64 simulator only works on x86_64." 1>&5; exit 1; } + fi + cat >> confdefs.pytmp <<\EOF + (''' JS_SIMULATOR ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_SIMULATOR 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' JS_SIMULATOR_ARM64 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_SIMULATOR_ARM64 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' JS_CODEGEN_ARM64 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CODEGEN_ARM64 1 +EOF + + JS_SIMULATOR_ARM64=1 + JS_CODEGEN_ARM64=1 +elif test "$JS_SIMULATOR" = mips32; then + if test "$CPU_ARCH" != "x86"; then + { echo "configure: error: The MIPS32 simulator only works on x86." 1>&2; echo "configure: error: The MIPS32 simulator only works on x86." 1>&5; exit 1; } + fi + cat >> confdefs.pytmp <<\EOF + (''' JS_SIMULATOR ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_SIMULATOR 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' JS_SIMULATOR_MIPS32 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_SIMULATOR_MIPS32 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' JS_CODEGEN_MIPS32 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CODEGEN_MIPS32 1 +EOF + + JS_SIMULATOR_MIPS32=1 + JS_CODEGEN_MIPS32=1 +elif test "$JS_SIMULATOR" = mips64; then + if test "$CPU_ARCH" != "x86_64"; then + { echo "configure: error: The MIPS64 simulator only works on x86_64." 1>&2; echo "configure: error: The MIPS64 simulator only works on x86_64." 1>&5; exit 1; } + fi + cat >> confdefs.pytmp <<\EOF + (''' JS_SIMULATOR ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_SIMULATOR 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' JS_SIMULATOR_MIPS64 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_SIMULATOR_MIPS64 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' JS_CODEGEN_MIPS64 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CODEGEN_MIPS64 1 +EOF + + JS_SIMULATOR_MIPS64=1 + JS_CODEGEN_MIPS64=1 +elif test "$CPU_ARCH" = "x86"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_CODEGEN_X86 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CODEGEN_X86 1 +EOF + + JS_CODEGEN_X86=1 +elif test "$CPU_ARCH" = "x86_64"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_CODEGEN_X64 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CODEGEN_X64 1 +EOF + + JS_CODEGEN_X64=1 +elif test "$CPU_ARCH" = "arm"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_CODEGEN_ARM ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CODEGEN_ARM 1 +EOF + + JS_CODEGEN_ARM=1 + if test -n "$MOZ_DEBUG"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_DISASM_ARM ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_DISASM_ARM 1 +EOF + + JS_DISASM_ARM=1 + fi + + elif test "$CPU_ARCH" = "mips32"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_CODEGEN_MIPS32 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CODEGEN_MIPS32 1 +EOF + + JS_CODEGEN_MIPS32=1 +elif test "$CPU_ARCH" = "mips64"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_CODEGEN_MIPS64 ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_CODEGEN_MIPS64 1 +EOF + + JS_CODEGEN_MIPS64=1 +fi + + + + + + + + + + + + + + + +if test -n "$MOZ_INSTRUMENTS"; then + LIBS="$LIBS -framework CoreFoundation" +fi + +# Check whether --enable-jitspew or --disable-jitspew was given. +if test "${enable_jitspew+set}" = set; then + enableval="$enable_jitspew" + if test "$enableval" = "yes"; then + JS_JITSPEW=1 + elif test "$enableval" = "no"; then + JS_JITSPEW= + else + { echo "configure: error: Option, jitspew, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, jitspew, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + +if test -n "$JS_JITSPEW" -o -n "$MOZ_DEBUG"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_JITSPEW ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_JITSPEW 1 +EOF + +fi + + + +if test -n "$MOZ_DEBUG"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_DEBUG ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_DEBUG 1 +EOF + +fi + +# Check whether --enable-gczeal or --disable-gczeal was given. +if test "${enable_gczeal+set}" = set; then + enableval="$enable_gczeal" + if test "$enableval" = "yes"; then + JS_GC_ZEAL=1 + elif test "$enableval" = "no"; then + JS_GC_ZEAL= + else + { echo "configure: error: Option, gczeal, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, gczeal, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + +if test -n "$JS_GC_ZEAL" -o -n "$MOZ_DEBUG"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_GC_ZEAL ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_GC_ZEAL 1 +EOF + +fi + +# Check whether --enable-oom-breakpoint or --disable-oom-breakpoint was given. +if test "${enable_oom_breakpoint+set}" = set; then + enableval="$enable_oom_breakpoint" + if test "$enableval" = "yes"; then + JS_OOM_BREAKPOINT=1 + elif test "$enableval" = "no"; then + JS_OOM_BREAKPOINT= + else + { echo "configure: error: Option, oom-breakpoint, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, oom-breakpoint, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + +if test -n "$JS_OOM_BREAKPOINT"; then + cat >> confdefs.pytmp <<\EOF + (''' JS_OOM_BREAKPOINT ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define JS_OOM_BREAKPOINT 1 +EOF + +fi + + + + +# Check whether --enable-clang-plugin or --disable-clang-plugin was given. +if test "${enable_clang_plugin+set}" = set; then + enableval="$enable_clang_plugin" + if test "$enableval" = "yes"; then + ENABLE_CLANG_PLUGIN=1 + elif test "$enableval" = "no"; then + ENABLE_CLANG_PLUGIN= + else + { echo "configure: error: Option, clang-plugin, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, clang-plugin, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + +if test -n "$ENABLE_CLANG_PLUGIN"; then + if test -z "${CLANG_CC}${CLANG_CL}"; then + { echo "configure: error: Can't use clang plugin without clang." 1>&2; echo "configure: error: Can't use clang plugin without clang." 1>&5; exit 1; } + fi + + echo $ac_n "checking for llvm-config""... $ac_c" 1>&6 +echo "configure:8988: checking for llvm-config" >&5 + if test -z "$LLVMCONFIG"; then + if test -n "$CLANG_CL"; then + CXX_COMPILER="$(dirname "$CXX")/clang" + else + CXX_COMPILER="${CXX}" + fi + LLVMCONFIG=`$CXX_COMPILER -print-prog-name=llvm-config` + fi + + if test -z "$LLVMCONFIG"; then + LLVMCONFIG=`which llvm-config` + fi + + if test ! -x "$LLVMCONFIG"; then + echo "$ac_t""not found" 1>&6 + { echo "configure: error: Cannot find an llvm-config binary for building a clang plugin" 1>&2; echo "configure: error: Cannot find an llvm-config binary for building a clang plugin" 1>&5; exit 1; } + fi + + echo "$ac_t""$LLVMCONFIG" 1>&6 + + if test -z "$LLVMCONFIG"; then + { echo "configure: error: Cannot find an llvm-config binary for building a clang plugin" 1>&2; echo "configure: error: Cannot find an llvm-config binary for building a clang plugin" 1>&5; exit 1; } + fi + LLVM_CXXFLAGS=`$LLVMCONFIG --cxxflags | sed -e 's/-isysroot [^ ]*//'` + + LLVM_LDFLAGS=`$LLVMCONFIG --ldflags | tr '\n' ' '` + + if test "${HOST_OS_ARCH}" = "Darwin"; then + CLANG_LDFLAGS="-Wl,-flat_namespace -Wl,-undefined,suppress -lclangASTMatchers" + elif test "${HOST_OS_ARCH}" = "WINNT"; then + CLANG_LDFLAGS="clangASTMatchers.lib" + else + CLANG_LDFLAGS="-lclangASTMatchers" + fi + + if test -n "$CLANG_CL"; then + LLVM_REPLACE_CXXFLAGS='' + for arg in $LLVM_CXXFLAGS; do + arg=`echo "$arg"|sed -e 's/^\//-/' -e 's/\\\\/\//g'` + LLVM_REPLACE_CXXFLAGS="$LLVM_REPLACE_CXXFLAGS $arg" + done + LLVM_CXXFLAGS="$LLVM_REPLACE_CXXFLAGS" + + LLVM_REPLACE_LDFLAGS='' + for arg in $LLVM_LDFLAGS; do + arg=`echo "$arg"|sed -e 's/^\//-/' -e 's/\\\\/\//g'` + LLVM_REPLACE_LDFLAGS="$LLVM_REPLACE_LDFLAGS $arg" + done + LLVM_LDFLAGS="$LLVM_REPLACE_LDFLAGS" + + CLANG_REPLACE_LDFLAGS='' + for arg in $CLANG_LDFLAGS; do + arg=`echo "$arg"|sed -e 's/^\//-/' -e 's/\\\\/\//g'` + CLANG_REPLACE_LDFLAGS="$CLANG_REPLACE_LDFLAGS $arg" + done + CLANG_LDFLAGS="$CLANG_REPLACE_LDFLAGS" + fi + + echo $ac_n "checking for new ASTMatcher API""... $ac_c" 1>&6 +echo "configure:9048: checking for new ASTMatcher API" >&5 +if eval "test \"`echo '$''{'ac_cv_have_new_ASTMatcher_api'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + + + ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + + _SAVE_CXXFLAGS="$CXXFLAGS" + _SAVE_CXX="$CXX" + _SAVE_MACOSX_DEPLOYMENT_TARGET="$MACOSX_DEPLOYMENT_TARGET" + unset MACOSX_DEPLOYMENT_TARGET + CXXFLAGS="${LLVM_CXXFLAGS}" + CXX="${HOST_CXX}" + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_have_new_ASTMatcher_names="yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_have_new_ASTMatcher_names="no" +fi +rm -f conftest* + CXX="$_SAVE_CXX" + CXXFLAGS="$_SAVE_CXXFLAGS" + export MACOSX_DEPLOYMENT_TARGET="$_SAVE_MACOSX_DEPLOYMENT_TARGET" + ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + +fi + +echo "$ac_t""$ac_cv_have_new_ASTMatcher_api" 1>&6 + if test "$ac_cv_have_new_ASTMatcher_names" = "yes"; then + LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DHAVE_NEW_ASTMATCHER_NAMES" + fi + + echo $ac_n "checking for has with ignoringParenImpCasts""... $ac_c" 1>&6 +echo "configure:9104: checking for has with ignoringParenImpCasts" >&5 +if eval "test \"`echo '$''{'ac_cv_has_accepts_ignoringParenImpCasts'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + + + ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + + _SAVE_CXXFLAGS="$CXXFLAGS" + _SAVE_CXX="$CXX" + _SAVE_MACOSX_DEPLOYMENT_TARGET="$MACOSX_DEPLOYMENT_TARGET" + unset MACOSX_DEPLOYMENT_TARGET + CXXFLAGS="${LLVM_CXXFLAGS}" + CXX="${HOST_CXX}" + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_has_accepts_ignoringParenImpCasts="yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_has_accepts_ignoringParenImpCasts="no" +fi +rm -f conftest* + CXX="$_SAVE_CXX" + CXXFLAGS="$_SAVE_CXXFLAGS" + export MACOSX_DEPLOYMENT_TARGET="$_SAVE_MACOSX_DEPLOYMENT_TARGET" + ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + +fi + +echo "$ac_t""$ac_cv_has_accepts_ignoringParenImpCasts" 1>&6 + if test "$ac_cv_has_accepts_ignoringParenImpCasts" = "yes"; then + LLVM_CXXFLAGS="$LLVM_CXXFLAGS -DHAS_ACCEPTS_IGNORINGPARENIMPCASTS" + fi + + cat >> confdefs.pytmp <<\EOF + (''' MOZ_CLANG_PLUGIN ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define MOZ_CLANG_PLUGIN 1 +EOF + +fi + + + + + + + + + + +# Check whether --with-sixgill or --without-sixgill was given. +if test "${with_sixgill+set}" = set; then + withval="$with_sixgill" + SIXGILL_PATH=$withval +else + SIXGILL_PATH= +fi + + +if test -n "$SIXGILL_PATH"; then + if test ! -x "$SIXGILL_PATH/bin/xdbfind" || test ! -f "$SIXGILL_PATH/gcc/xgill.so" || test ! -x "$SIXGILL_PATH/scripts/wrap_gcc/g++"; then + { echo "configure: error: The sixgill plugin and binaries are not at the specified path." 1>&2; echo "configure: error: The sixgill plugin and binaries are not at the specified path." 1>&5; exit 1; } + fi +fi + + +# Check whether --enable-strip or --disable-strip was given. +if test "${enable_strip+set}" = set; then + enableval="$enable_strip" + if test "$enableval" = "yes"; then + ENABLE_STRIP=1 + elif test "$enableval" = "no"; then + ENABLE_STRIP= + else + { echo "configure: error: Option, strip, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, strip, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + +# Check whether --enable-install-strip or --disable-install-strip was given. +if test "${enable_install_strip+set}" = set; then + enableval="$enable_install_strip" + if test "$enableval" = "yes"; then + PKG_SKIP_STRIP= + elif test "$enableval" = "no"; then + PKG_SKIP_STRIP=1 + else + { echo "configure: error: Option, install-strip, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, install-strip, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + +# Profiling and Instrumenting + +if test -z "$SKIP_LIBRARY_CHECKS"; then + + ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + + for ac_func in __cxa_demangle +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:9235: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#undef $ac_func +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:9270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.pytmp <> confdefs.h <&6 +HAVE_DEMANGLE= +fi +done + + ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +fi + + +# Check whether --with-jitreport-granularity or --without-jitreport-granularity was given. +if test "${with_jitreport_granularity+set}" = set; then + withval="$with_jitreport_granularity" + JITREPORT_GRANULARITY=$withval +else + JITREPORT_GRANULARITY=3 +fi + + +cat >> confdefs.pytmp <> confdefs.h <&6 +echo "configure:9331: checking for -pipe support" >&5 +if test -n "$GNU_CC" -a -n "$GNU_CXX"; then + CFLAGS="$CFLAGS -pipe" + CXXFLAGS="$CXXFLAGS -pipe" + echo "$ac_t""yes" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +_SAVE_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction" + +echo $ac_n "checking whether C compiler supports -fprofile-generate""... $ac_c" 1>&6 +echo "configure:9345: checking whether C compiler supports -fprofile-generate" >&5 +cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + PROFILE_GEN_CFLAGS="-fprofile-generate" + result="yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + result="no" +fi +rm -f conftest* +echo "$ac_t""$result" 1>&6 + +if test $result = "yes"; then + PROFILE_GEN_LDFLAGS="-fprofile-generate" + PROFILE_USE_CFLAGS="-fprofile-use -fprofile-correction -Wcoverage-mismatch" + PROFILE_USE_LDFLAGS="-fprofile-use" +fi + +CFLAGS="$_SAVE_CFLAGS" + + + + + + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + + +echo $ac_n "checking for tm_zone tm_gmtoff in struct tm""... $ac_c" 1>&6 +echo "configure:9389: checking for tm_zone tm_gmtoff in struct tm" >&5 +if eval "test \"`echo '$''{'ac_cv_struct_tm_zone_tm_gmtoff'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { +struct tm tm; tm.tm_zone = 0; tm.tm_gmtoff = 1; +; return 0; } +EOF +if { (eval echo configure:9401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_struct_tm_zone_tm_gmtoff="yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_struct_tm_zone_tm_gmtoff="no" +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_struct_tm_zone_tm_gmtoff" 1>&6 +if test "$ac_cv_struct_tm_zone_tm_gmtoff" = "yes" ; then + cat >> confdefs.pytmp <<\EOF + (''' HAVE_TM_ZONE_TM_GMTOFF ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_TM_ZONE_TM_GMTOFF 1 +EOF + +fi +fi # ! SKIP_COMPILER_CHECKS + +cat >> confdefs.pytmp <<\EOF + (''' CPP_THROW_NEW ''', r''' throw() ''') +EOF +cat >> confdefs.h <<\EOF +#define CPP_THROW_NEW throw() +EOF + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + + + + +echo $ac_n "checking what kind of list files are supported by the linker""... $ac_c" 1>&6 +echo "configure:9443: checking what kind of list files are supported by the linker" >&5 +if eval "test \"`echo '$''{'EXPAND_LIBS_LIST_STYLE'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo "int main() {return 0;}" > conftest.${ac_ext} + if { ac_try='${CC-cc} -o conftest.${OBJ_SUFFIX} -c $CFLAGS $CPPFLAGS conftest.${ac_ext} 1>&5'; { (eval echo configure:9448: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.${OBJ_SUFFIX}; then + echo "INPUT(conftest.${OBJ_SUFFIX})" > conftest.list + if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS conftest.list $LIBS 1>&5'; { (eval echo configure:9450: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then + EXPAND_LIBS_LIST_STYLE=linkerscript + else + echo "conftest.${OBJ_SUFFIX}" > conftest.list + if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS -Wl,-filelist,conftest.list $LIBS 1>&5'; { (eval echo configure:9454: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then + EXPAND_LIBS_LIST_STYLE=filelist + elif { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS @conftest.list $LIBS 1>&5'; { (eval echo configure:9456: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then + EXPAND_LIBS_LIST_STYLE=list + else + EXPAND_LIBS_LIST_STYLE=none + fi + fi + else + { echo "configure: error: couldn't compile a simple C file" 1>&2; echo "configure: error: couldn't compile a simple C file" 1>&5; exit 1; } + fi + rm -rf conftest* +fi + +echo "$ac_t""$EXPAND_LIBS_LIST_STYLE" 1>&6 + +LIBS_DESC_SUFFIX=desc + + + +if test "$GCC_USE_GNU_LD"; then + echo $ac_n "checking what kind of ordering can be done with the linker""... $ac_c" 1>&6 +echo "configure:9476: checking what kind of ordering can be done with the linker" >&5 +if eval "test \"`echo '$''{'EXPAND_LIBS_ORDER_STYLE'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + > conftest.order + _SAVE_LDFLAGS="$LDFLAGS" + LDFLAGS="${LDFLAGS} -Wl,--section-ordering-file,conftest.order" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + EXPAND_LIBS_ORDER_STYLE=section-ordering-file +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + EXPAND_LIBS_ORDER_STYLE= +fi +rm -f conftest* + LDFLAGS="$_SAVE_LDFLAGS" + if test -z "$EXPAND_LIBS_ORDER_STYLE"; then + if { ac_try='${CC-cc} ${DSO_LDOPTS} ${LDFLAGS} -o ${DLL_PREFIX}conftest${DLL_SUFFIX} -Wl'; { (eval echo configure:9503: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + EXPAND_LIBS_ORDER_STYLE=linkerscript + else + EXPAND_LIBS_ORDER_STYLE=none + fi + rm -f ${DLL_PREFIX}conftest${DLL_SUFFIX} + fi +fi + +echo "$ac_t""$EXPAND_LIBS_ORDER_STYLE" 1>&6 +fi + + + + +# Build dependencies + +if test "$GNU_CC" -a "$GNU_CXX"; then + _DEPEND_CFLAGS='-MD -MP -MF $(MDDEPDIR)/$(@F).pp' +else + if test -z "$_WIN32_MSVC"; then + _USE_CPP_INCLUDE_FLAG= + _DEFINES_CFLAGS='$(ACDEFINES) -D_JS_CONFDEFS_H_ -DMOZILLA_CLIENT' + _DEFINES_CXXFLAGS='$(ACDEFINES) -D_JS_CONFDEFS_H_ -DMOZILLA_CLIENT' + else + echo '#include ' > dummy-hello.c + + _CL_PREFIX_REGEX="^\([^:]*:.*[ :] \)\(.*\\\stdio.h\)$" + CL_INCLUDES_PREFIX=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/'"$_CL_PREFIX_REGEX"'/\1/p'` + _CL_STDIO_PATH=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/'"$_CL_PREFIX_REGEX"'/\2/p'` + + if ! test -e "$_CL_STDIO_PATH"; then + { echo "configure: error: Unable to parse cl -showIncludes prefix. This compiler's locale has an unsupported formatting." 1>&2; echo "configure: error: Unable to parse cl -showIncludes prefix. This compiler's locale has an unsupported formatting." 1>&5; exit 1; } + fi + if test -z "$CL_INCLUDES_PREFIX"; then + { echo "configure: error: Cannot find cl -showIncludes prefix." 1>&2; echo "configure: error: Cannot find cl -showIncludes prefix." 1>&5; exit 1; } + fi + + rm -f dummy-hello.c + + NONASCII=$'\241\241' + + fi +fi + +# Check whether --enable-readline or --disable-readline was given. +if test "${enable_readline+set}" = set; then + enableval="$enable_readline" + if test "$enableval" = "yes"; then + JS_WANT_READLINE=1 + elif test "$enableval" = "no"; then + JS_WANT_READLINE= + else + { echo "configure: error: Option, readline, does not take an argument ($enableval)." 1>&2; echo "configure: error: Option, readline, does not take an argument ($enableval)." 1>&5; exit 1; } + fi +fi + + +JS_BUNDLED_EDITLINE= +EDITLINE_LIBS= + +case "$target" in +*-mingw*) + NO_EDITLINE=1 + ;; +*) + ;; +esac + +if test -z "$SKIP_LIBRARY_CHECKS" -a -z "$NO_EDITLINE"; then + if test -n "$JS_WANT_READLINE"; then + echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6 +echo "configure:9575: checking for readline in -lreadline" >&5 +ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lreadline $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + EDITLINE_LIBS="-lreadline" +else + echo "$ac_t""no" 1>&6 +{ echo "configure: error: No system readline library found." 1>&2; echo "configure: error: No system readline library found." 1>&5; exit 1; } +fi + + else + JS_BUNDLED_EDITLINE=1 + fi + + cat >> confdefs.pytmp <<\EOF + (''' EDITLINE ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define EDITLINE 1 +EOF + +fi + + + +# Standalone module options (Not for building Mozilla) + +if test "$JS_HAS_CTYPES"; then + if test -n "$_MSC_VER" -a \( "$AS" != "ml.exe" -a "$AS" != "ml64.exe" \); then + { echo "configure: error: \"$AS\" is not a suitable assembler to build js-ctypes. If you are building with MS Visual Studio 8 Express, you may download the MASM 8.0 package, upgrade to Visual Studio 9 Express, or install the Vista SDK. Or do not use --enable-ctypes." 1>&2; echo "configure: error: \"$AS\" is not a suitable assembler to build js-ctypes. If you are building with MS Visual Studio 8 Express, you may download the MASM 8.0 package, upgrade to Visual Studio 9 Express, or install the Vista SDK. Or do not use --enable-ctypes." 1>&5; exit 1; } + fi +fi + + +# Check whether --with-qemu-exe or --without-qemu-exe was given. +if test "${with_qemu_exe+set}" = set; then + withval="$with_qemu_exe" + QEMU_EXE=$withval +fi + + +# Check whether --with-cross-lib or --without-cross-lib was given. +if test "${with_cross_lib+set}" = set; then + withval="$with_cross_lib" + CROSS_LIB=$withval +else + CROSS_LIB=/usr/$target +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +_INTL_API=yes + + + +ICU_LIB_NAMES= +MOZ_SYSTEM_ICU= +# Check whether --with-system-icu or --without-system-icu was given. +if test "${with_system_icu+set}" = set; then + withval="$with_system_icu" + if test "$withval" = "yes"; then + MOZ_SYSTEM_ICU=1 + elif test "$withval" = "no"; then + : + else + { echo "configure: error: Option, system-icu, does not take an argument ($withval)." 1>&2; echo "configure: error: Option, system-icu, does not take an argument ($withval)." 1>&5; exit 1; } + fi +fi + + +if test -n "$MOZ_SYSTEM_ICU"; then + succeeded=no + + if test -z "$PKG_CONFIG"; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + echo $ac_n "checking for icu-i18n >= 58.1""... $ac_c" 1>&6 +echo "configure:9722: checking for icu-i18n >= 58.1" >&5 + + if $PKG_CONFIG --exists "icu-i18n >= 58.1" ; then + echo "$ac_t""yes" 1>&6 + succeeded=yes + + echo $ac_n "checking MOZ_ICU_CFLAGS""... $ac_c" 1>&6 +echo "configure:9729: checking MOZ_ICU_CFLAGS" >&5 + MOZ_ICU_CFLAGS=`$PKG_CONFIG --cflags "icu-i18n >= 58.1"` + echo "$ac_t""$MOZ_ICU_CFLAGS" 1>&6 + + echo $ac_n "checking MOZ_ICU_LIBS""... $ac_c" 1>&6 +echo "configure:9734: checking MOZ_ICU_LIBS" >&5 + ## Remove evil flags like -Wl,--export-dynamic + MOZ_ICU_LIBS="`$PKG_CONFIG --libs \"icu-i18n >= 58.1\" |sed s/-Wl,--export-dynamic//g`" + echo "$ac_t""$MOZ_ICU_LIBS" 1>&6 + else + MOZ_ICU_CFLAGS="" + MOZ_ICU_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + MOZ_ICU_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "icu-i18n >= 58.1"` + echo $MOZ_ICU_PKG_ERRORS + fi + + + + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + : + else + if test "$COMPILE_ENVIRONMENT"; then + { echo "configure: error: Library requirements (icu-i18n >= 58.1) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." 1>&2; echo "configure: error: Library requirements (icu-i18n >= 58.1) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." 1>&5; exit 1; } + fi + fi + + CFLAGS="$CFLAGS $MOZ_ICU_CFLAGS" + CXXFLAGS="$CXXFLAGS $MOZ_ICU_CFLAGS" +fi + + + +# Check whether --with-intl-api or --without-intl-api was given. +if test "${with_intl_api+set}" = set; then + withval="$with_intl_api" + _INTL_API=$withval +fi + + +ENABLE_INTL_API= +EXPOSE_INTL_API= +case "$_INTL_API" in +no) + ;; +build) + ENABLE_INTL_API=1 + ;; +yes) + ENABLE_INTL_API=1 + EXPOSE_INTL_API=1 + ;; +*) + { echo "configure: error: Invalid value passed to --with-intl-api: $_INTL_API" 1>&2; echo "configure: error: Invalid value passed to --with-intl-api: $_INTL_API" 1>&5; exit 1; } + ;; +esac + +if test -n "$ENABLE_INTL_API"; then + USE_ICU=1 +fi + +if test -n "$EXPOSE_INTL_API"; then + cat >> confdefs.pytmp <<\EOF + (''' EXPOSE_INTL_API ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define EXPOSE_INTL_API 1 +EOF + +fi + +if test -n "$ENABLE_INTL_API"; then + cat >> confdefs.pytmp <<\EOF + (''' ENABLE_INTL_API ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define ENABLE_INTL_API 1 +EOF + +fi + +if test -n "$USE_ICU"; then + icudir="$_topsrcdir/intl/icu/source" + if test ! -d "$icudir"; then + icudir="$_topsrcdir/../../intl/icu/source" + if test ! -d "$icudir"; then + { echo "configure: error: Cannot find the ICU directory" 1>&2; echo "configure: error: Cannot find the ICU directory" 1>&5; exit 1; } + fi + fi + + version=`sed -n 's/^[[:space:]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"` + if test x"$version" = x; then + { echo "configure: error: cannot determine icu version number from uvernum.h header file $lineno" 1>&2; echo "configure: error: cannot determine icu version number from uvernum.h header file $lineno" 1>&5; exit 1; } + fi + MOZ_ICU_VERSION="$version" + + # TODO: the l is actually endian-dependent + # We could make this set as 'l' or 'b' for little or big, respectively, + # but we'd need to check in a big-endian version of the file. + ICU_DATA_FILE="icudt${version}l.dat" + + if test -z "$JS_STANDALONE" -a -z "$MOZ_SYSTEM_ICU" -a "$OS_TARGET" != WINNT -a "$MOZ_WIDGET_TOOLKIT" != "android"; then + MOZ_ICU_DATA_ARCHIVE=1 + else + MOZ_ICU_DATA_ARCHIVE= + fi +fi + + + + + + + +if test -n "$USE_ICU" -a -z "$MOZ_SYSTEM_ICU"; then + if test -z "$YASM" -a -z "$GNU_AS" -a "$COMPILE_ENVIRONMENT"; then + { echo "configure: error: Building ICU requires either yasm or a GNU assembler. If you do not have either of those available for this platform you must use --without-intl-api" 1>&2; echo "configure: error: Building ICU requires either yasm or a GNU assembler. If you do not have either of those available for this platform you must use --without-intl-api" 1>&5; exit 1; } + fi + cat >> confdefs.pytmp <<\EOF + (''' U_STATIC_IMPLEMENTATION ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define U_STATIC_IMPLEMENTATION 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' U_USING_ICU_NAMESPACE ''', r''' 0 ''') +EOF +cat >> confdefs.h <<\EOF +#define U_USING_ICU_NAMESPACE 0 +EOF + +fi + + +CFLAGS=`echo \ + $_WARNINGS_CFLAGS \ + $CFLAGS` + +CXXFLAGS=`echo \ + $_WARNINGS_CXXFLAGS \ + $CXXFLAGS` + +COMPILE_CFLAGS=`echo \ + $_DEFINES_CFLAGS \ + $COMPILE_CFLAGS` + +COMPILE_CXXFLAGS=`echo \ + $_DEFINES_CXXFLAGS \ + $COMPILE_CXXFLAGS` + +HOST_CFLAGS=`echo \ + $HOST_CFLAGS` + +HOST_CXXFLAGS=`echo \ + $HOST_CXXFLAGS` + + + + +OS_CFLAGS="$CFLAGS" +OS_CXXFLAGS="$CXXFLAGS" +OS_CPPFLAGS="$CPPFLAGS" +OS_COMPILE_CFLAGS="$COMPILE_CFLAGS" +OS_COMPILE_CXXFLAGS="$COMPILE_CXXFLAGS" +OS_LDFLAGS="$LDFLAGS" +OS_LIBS="$LIBS" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +cat >> confdefs.pytmp <> confdefs.h <&6 +echo "configure:9955: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#undef $ac_func +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:9987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.pytmp <> confdefs.h <&6 +fi +done + + + +if test "$MOZ_DEBUG"; then + cat >> confdefs.pytmp <<\EOF + (''' MOZ_REFLOW_PERF ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define MOZ_REFLOW_PERF 1 +EOF + + cat >> confdefs.pytmp <<\EOF + (''' MOZ_REFLOW_PERF_DSP ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define MOZ_REFLOW_PERF_DSP 1 +EOF + +fi + + +if test -z "$GNU_CC" -a "$OS_ARCH" = "WINNT"; then + PREPROCESS_OPTION="-P -Fi" +else + PREPROCESS_OPTION="-E -o " +fi + + + + + + + + +MALLOC_HEADERS="malloc.h malloc_np.h malloc/malloc.h sys/malloc.h" +MALLOC_H= + +for file in $MALLOC_HEADERS; do + ac_safe=`echo "$file" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $file""... $ac_c" 1>&6 +echo "configure:10053: checking for $file" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +int main() { + +; return 0; } +EOF +if { (eval echo configure:10066: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi + + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + MALLOC_H=$file + else + echo "$ac_t""no" 1>&6 + + fi + + if test "$MALLOC_H" != ""; then + cat >> confdefs.pytmp < ''') +EOF +cat >> confdefs.h < +EOF + + break + fi +done + +for ac_func in strndup posix_memalign memalign +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:10101: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#undef $ac_func +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:10133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.pytmp <> confdefs.h <&6 +fi +done + + +for ac_func in malloc_usable_size +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:10164: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#undef $ac_func +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:10196: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.pytmp <> confdefs.h <&6 +fi +done + +MALLOC_USABLE_SIZE_CONST_PTR=const +if test -n "$HAVE_MALLOC_H"; then + echo $ac_n "checking whether malloc_usable_size definition can use const argument""... $ac_c" 1>&6 +echo "configure:10226: checking whether malloc_usable_size definition can use const argument" >&5 + cat > conftest.$ac_ext < + #include + size_t malloc_usable_size(const void *ptr); +int main() { +return malloc_usable_size(0); +; return 0; } +EOF +if { (eval echo configure:10237: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6 + MALLOC_USABLE_SIZE_CONST_PTR= +fi +rm -f conftest* +fi +cat >> confdefs.pytmp <> confdefs.h <&6 +echo "configure:10259: checking for valloc in malloc.h" >&5 +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "valloc" >/dev/null 2>&1; then + rm -rf conftest* + cat >> confdefs.pytmp <<\EOF + (''' HAVE_VALLOC ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_VALLOC 1 +EOF + + echo "$ac_t""yes" 1>&6 +else + rm -rf conftest* + echo "$ac_t""no" 1>&6 +fi +rm -f conftest* + + +echo $ac_n "checking for valloc in unistd.h""... $ac_c" 1>&6 +echo "configure:10284: checking for valloc in unistd.h" >&5 +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "valloc" >/dev/null 2>&1; then + rm -rf conftest* + cat >> confdefs.pytmp <<\EOF + (''' HAVE_VALLOC ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define HAVE_VALLOC 1 +EOF + + echo "$ac_t""yes" 1>&6 +else + rm -rf conftest* + echo "$ac_t""no" 1>&6 +fi +rm -f conftest* + + + + + +for ac_func in setlocale localeconv +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:10314: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#undef $ac_func +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:10346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.pytmp <> confdefs.h <&6 +fi +done + + + + + + +if test -n "$JS_STANDALONE"; then +MOZ_APP_NAME="mozjs" +MOZ_APP_VERSION="$MOZILLA_SYMBOLVERSION" +JS_LIBRARY_NAME="mozjs-$MOZILLA_SYMBOLVERSION" +else +JS_LIBRARY_NAME="mozjs" +fi +JS_CONFIG_LIBS="$NSPR_LIBS $LIBS" +if test -n "$GNU_CC"; then +JS_CONFIG_MOZ_JS_LIBS='-L${libdir} -l${JS_LIBRARY_NAME}' +else +JS_CONFIG_MOZ_JS_LIBS='${libdir}/${JS_LIBRARY_NAME}.lib' +fi + + + + + + +if test "$MOZ_BUILD_APP" != js -o -n "$JS_STANDALONE"; then + + # Run jemalloc configure script + + if test -z "$MOZ_SYSTEM_JEMALLOC" -a "$MOZ_MEMORY" && test -n "$MOZ_JEMALLOC4" -o -n "$MOZ_REPLACE_MALLOC"; then + ac_configure_args="--build=$build --host=$target --enable-stats --with-jemalloc-prefix=je_ --disable-valgrind" + # We're using memalign for _aligned_malloc in memory/build/mozmemory_wrap.c + # on Windows, so just export memalign on all platforms. + ac_configure_args="$ac_configure_args ac_cv_func_memalign=yes" + if test -n "$MOZ_REPLACE_MALLOC"; then + # When using replace_malloc, we always want valloc exported from jemalloc. + ac_configure_args="$ac_configure_args ac_cv_func_valloc=yes" + if test "${OS_ARCH}" = Darwin; then + # We also need to enable pointer validation on Mac because jemalloc's + # zone allocator is not used. + ac_configure_args="$ac_configure_args --enable-ivsalloc" + fi + fi + if test -n "$MOZ_JEMALLOC4"; then + case "${OS_ARCH}" in + WINNT|Darwin) + # We want jemalloc functions to be kept hidden on both Mac and Windows + # See memory/build/mozmemory_wrap.h for details. + ac_configure_args="$ac_configure_args --without-export" + ;; + esac + if test "${OS_ARCH}" = WINNT; then + # Lazy lock initialization doesn't play well with lazy linking of + # mozglue.dll on Windows XP (leads to startup crash), so disable it. + ac_configure_args="$ac_configure_args --disable-lazy-lock" + + # 64-bit Windows builds require a minimum 16-byte alignment. + if test -n "$HAVE_64BIT_BUILD"; then + ac_configure_args="$ac_configure_args --with-lg-tiny-min=4" + fi + fi + elif test "${OS_ARCH}" = Darwin; then + # When building as a replace-malloc lib, disabling the zone allocator + # forces to use pthread_atfork. + ac_configure_args="$ac_configure_args --disable-zone-allocator" + fi + _MANGLE="malloc posix_memalign aligned_alloc calloc realloc free memalign valloc malloc_usable_size" + JEMALLOC_WRAPPER= + if test -z "$MOZ_REPLACE_MALLOC"; then + case "$OS_ARCH" in + Linux|DragonFly|FreeBSD|NetBSD|OpenBSD) + MANGLE=$_MANGLE + ;; + esac + elif test -z "$MOZ_JEMALLOC4"; then + MANGLE=$_MANGLE + JEMALLOC_WRAPPER=replace_ + fi + if test -n "$MANGLE"; then + MANGLED= + for mangle in ${MANGLE}; do + if test -n "$MANGLED"; then + MANGLED="$mangle:$JEMALLOC_WRAPPER$mangle,$MANGLED" + else + MANGLED="$mangle:$JEMALLOC_WRAPPER$mangle" + fi + done + ac_configure_args="$ac_configure_args --with-mangling=$MANGLED" + fi + unset CONFIG_FILES + if test -z "$MOZ_TLS"; then + ac_configure_args="$ac_configure_args --disable-tls" + fi + EXTRA_CFLAGS="$CFLAGS" + for var in AS CC CXX CPP LD AR RANLIB STRIP CPPFLAGS EXTRA_CFLAGS LDFLAGS; do + ac_configure_args="$ac_configure_args $var='`eval echo \\${${var}}`'" + done + + # jemalloc's configure assumes that if you have CFLAGS set at all, you set + # all the flags necessary to configure jemalloc, which is not likely to be + # the case on Windows if someone is building Firefox with flags set in + # their mozconfig. + if test "$_MSC_VER"; then + ac_configure_args="$ac_configure_args CFLAGS=" + fi + + # Force disable DSS support in jemalloc. + ac_configure_args="$ac_configure_args ac_cv_func_sbrk=false" + + # Make Linux builds munmap freed chunks instead of recycling them. + ac_configure_args="$ac_configure_args --enable-munmap" + + # Disable cache oblivious behavior that appears to have a performance + # impact on Firefox. + ac_configure_args="$ac_configure_args --disable-cache-oblivious" + + if ! test -e memory/jemalloc; then + mkdir -p memory/jemalloc + fi + + # jemalloc's configure runs git to determine the version. But when building + # from a gecko git clone, the git commands it uses is going to pick gecko's + # information, not jemalloc's, which is useless. So pretend we don't have git + # at all. That will make jemalloc's configure pick the in-tree VERSION file. + (PATH="$srcdir/memory/jemalloc/helper:$PATH"; + for moz_config_dir in memory/jemalloc/src; do + _CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + case "$moz_config_dir" in + *:*) + objdir=$(echo $moz_config_dir | awk -F: '{print $2}') + ;; + *) + objdir=$moz_config_dir + ;; + esac + echo $objdir >> subconfigures + + dumpenv="true | " + case "$host" in + *-mingw*) + _CONFIG_SHELL=$(cd $(dirname $_CONFIG_SHELL); pwd -W)/$(basename $_CONFIG_SHELL) + if test ! -e "$_CONFIG_SHELL" -a -e "${_CONFIG_SHELL}.exe"; then + _CONFIG_SHELL="${_CONFIG_SHELL}.exe" + fi + dumpenv="$PERL $_topsrcdir/build/win32/dumpenv4python.pl $ac_configure_args | " + ;; + esac + + eval $dumpenv $PYTHON $_topsrcdir/build/subconfigure.py --prepare "$srcdir" "$moz_config_dir" "$_CONFIG_SHELL" $ac_configure_args + + done + + ) || exit 1 + ac_configure_args="$_SUBDIR_CONFIG_ARGS" + fi + +fi + + + +# Avoid using obsolete NSPR features +cat >> confdefs.pytmp <<\EOF + (''' NO_NSPR_10_SUPPORT ''', ' 1 ') +EOF +cat >> confdefs.h <<\EOF +#define NO_NSPR_10_SUPPORT 1 +EOF + + +WIN_TOP_SRC= +case "$host_os" in +mingw*) + WIN_TOP_SRC=`cd $srcdir; pwd -W` + ;; +esac + + +top_srcdir=$srcdir + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 +: ${CONFIG_STATUS=./config.data} + +echo creating $CONFIG_STATUS + +cat > $CONFIG_STATUS <> $CONFIG_STATUS +rm confdefs.pytmp confdefs.h + +cat >> $CONFIG_STATUS <<\EOF +] + +substs = [ +EOF + +sed 's/$/,/' >> $CONFIG_STATUS <> $CONFIG_STATUS +done + +cat >> $CONFIG_STATUS <<\EOF +] + +non_global_defines = [ +EOF + +if test -n "$_NON_GLOBAL_ACDEFINES"; then + for var in $_NON_GLOBAL_ACDEFINES; do + echo " '$var'," >> $CONFIG_STATUS + done +fi + +cat >> $CONFIG_STATUS <