From 9e7797c4eab742f7a2f4c3579fe5ae1563e93ca1 Mon Sep 17 00:00:00 2001 From: Matt Madia Date: Sun, 24 Nov 2013 12:18:41 -0500 Subject: [PATCH] Removed obsolete files from mozilla firefox port. The repository now exists at https://github.com/mmadia/bezilla --- www-client/mozilla_firefox/TinnyTim.sh | 199 - .../bezilla-patches-2009-07-07.diff | 17329 --------------- www-client/mozilla_firefox/bookmarks.html | 43 - www-client/mozilla_firefox/classic.jar | Bin 624084 -> 0 bytes .../browser/app/apprunner-beos.rdef | 125 - .../base/content/dynamic-bebook-v1.html | 32 - .../base/content/dynamic-bebook-v2.html | 56 - .../base/content/dynamic-userguide-v1.html | 32 - .../base/content/dynamic-userguide-v2.html | 56 - .../base/content/dynamic-welcome-v1.html | 32 - .../base/content/dynamic-welcome-v2.html | 56 - .../browser/installer/beos/packages-static | 369 - .../calendar/sunbird/app/apprunner-beos.rdef | 125 - .../calendar/sunbird/app/apprunner-beos.rsrc | Bin 4200 -> 0 bytes .../mail/app/apprunner-beos.rdef | 126 - .../xpfe/bootstrap/apprunner-beos.rdef | 136 - .../hvif-icons/BeZilla-Browser-l | Bin 33861 -> 0 bytes .../hvif-icons/BeZilla-Browser-r | Bin 33861 -> 0 bytes .../hvif-icons/BeZilla-MailNews | Bin 34381 -> 0 bytes .../hvif-icons/BeZilla-MailNews-r | Bin 34381 -> 0 bytes .../hvif-icons/BeZilla-Suite-l | Bin 35605 -> 0 bytes .../hvif-icons/BeZilla-Suite-r | Bin 35605 -> 0 bytes .../hvif-icons/BeZilla-calendar-l | Bin 34685 -> 0 bytes .../hvif-icons/BeZilla-calendar-r | Bin 34685 -> 0 bytes .../mozilla_firefox/hvif-icons/bezilla-1 copy | Bin 31597 -> 0 bytes .../hvif-icons/icon_copyright/copyleft.txt | 180 - .../icon_copyright/copyright_info.txt | 1 - .../mozilla_firefox/old-patches/allO1.patch | 204 - .../mozilla_firefox/old-patches/allO3.patch | 204 - .../configure-sunbird-nspr-reorder.diff | 17848 ---------------- .../old-patches/firstrun-default-page.diff | 36 - .../old-patches/forReorderPatches-browser.zip | Bin 4540 -> 0 bytes .../old-patches/greyMenuSelection.patch | 28 - .../old-patches/launch-kill-dowhile.patch | 406 - .../old-patches/mozilla-rdefs.zip | Bin 18176 -> 0 bytes .../old-patches/nsAppRunner.patch | 25 - .../old-patches/prpolevt-fix.patch | 32 - .../sunbird-makefile-apprunner-rsrc.zip | Bin 2140 -> 0 bytes .../2009-09-27/bezilla.step-by-step.txt | 18 - .../patches/2009-09-27/r01-config-star.patch | 5296 ----- ...configure-in-withGCC4andCrossCompile.patch | 362 - .../patches/2009-09-27/r03a-makefile-in.patch | 375 - .../patches/2009-09-27/r03b-starmk.patch | 115 - .../r04a-rdef-support-in-Makefile.patch | 140 - .../r04b-just-rdefs-no-Makefile.patch | 532 - .../2009-09-27/r05-fix-shlibsign.README | 66 - .../2009-09-27/r05-fix-shlibsign.patch | 16 - .../patches/2009-09-27/r06-nss-gcc4.patch | 55 - .../r07-working-nspr-from-haikuports.patch | 5411 ----- .../patches/2009-09-27/r08-misc.patch | 410 - .../2009-09-27/r09-sunbird-options-fix.patch | 18 - .../2009-09-27/r10-grey-menu-color.patch | 15 - .../patches/2009-09-27/r11-bookmarks-v2.patch | 428 - .../patches/2009-09-27/r12-releasenotes.patch | 19 - www-client/mozilla_firefox/persdict.dat | 65 - .../browser-debug.mozconfig | 70 - .../select-a-mozconfig/browser.mozconfig | 80 - .../select-a-mozconfig/calendar.mozconfig | 81 - .../select-a-mozconfig/mailnews.mozconfig | 81 - .../select-a-mozconfig/suite-debug.mozconfig | 70 - .../suite-just-browser.mozconfig | 89 - .../select-a-mozconfig/suite.mozconfig | 80 - 62 files changed, 51572 deletions(-) delete mode 100755 www-client/mozilla_firefox/TinnyTim.sh delete mode 100644 www-client/mozilla_firefox/bezilla-patches-2009-07-07.diff delete mode 100644 www-client/mozilla_firefox/bookmarks.html delete mode 100644 www-client/mozilla_firefox/classic.jar delete mode 100644 www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/app/apprunner-beos.rdef delete mode 100644 www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v1.html delete mode 100644 www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v2.html delete mode 100644 www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v1.html delete mode 100644 www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v2.html delete mode 100644 www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v1.html delete mode 100644 www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v2.html delete mode 100644 www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/installer/beos/packages-static delete mode 100644 www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rdef delete mode 100644 www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rsrc delete mode 100644 www-client/mozilla_firefox/copy-to-mozilla-src-dir/mail/app/apprunner-beos.rdef delete mode 100644 www-client/mozilla_firefox/copy-to-mozilla-src-dir/xpfe/bootstrap/apprunner-beos.rdef delete mode 100644 www-client/mozilla_firefox/hvif-icons/BeZilla-Browser-l delete mode 100644 www-client/mozilla_firefox/hvif-icons/BeZilla-Browser-r delete mode 100644 www-client/mozilla_firefox/hvif-icons/BeZilla-MailNews delete mode 100644 www-client/mozilla_firefox/hvif-icons/BeZilla-MailNews-r delete mode 100644 www-client/mozilla_firefox/hvif-icons/BeZilla-Suite-l delete mode 100644 www-client/mozilla_firefox/hvif-icons/BeZilla-Suite-r delete mode 100644 www-client/mozilla_firefox/hvif-icons/BeZilla-calendar-l delete mode 100644 www-client/mozilla_firefox/hvif-icons/BeZilla-calendar-r delete mode 100644 www-client/mozilla_firefox/hvif-icons/bezilla-1 copy delete mode 100644 www-client/mozilla_firefox/hvif-icons/icon_copyright/copyleft.txt delete mode 100644 www-client/mozilla_firefox/hvif-icons/icon_copyright/copyright_info.txt delete mode 100644 www-client/mozilla_firefox/old-patches/allO1.patch delete mode 100644 www-client/mozilla_firefox/old-patches/allO3.patch delete mode 100644 www-client/mozilla_firefox/old-patches/configure-sunbird-nspr-reorder.diff delete mode 100644 www-client/mozilla_firefox/old-patches/firstrun-default-page.diff delete mode 100644 www-client/mozilla_firefox/old-patches/forReorderPatches-browser.zip delete mode 100644 www-client/mozilla_firefox/old-patches/greyMenuSelection.patch delete mode 100644 www-client/mozilla_firefox/old-patches/launch-kill-dowhile.patch delete mode 100644 www-client/mozilla_firefox/old-patches/mozilla-rdefs.zip delete mode 100644 www-client/mozilla_firefox/old-patches/nsAppRunner.patch delete mode 100644 www-client/mozilla_firefox/old-patches/prpolevt-fix.patch delete mode 100644 www-client/mozilla_firefox/old-patches/sunbird-makefile-apprunner-rsrc.zip delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/bezilla.step-by-step.txt delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r01-config-star.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r02-configure-in-withGCC4andCrossCompile.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r03a-makefile-in.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r03b-starmk.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r04a-rdef-support-in-Makefile.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r04b-just-rdefs-no-Makefile.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.README delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r06-nss-gcc4.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r07-working-nspr-from-haikuports.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r08-misc.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r09-sunbird-options-fix.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r10-grey-menu-color.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r11-bookmarks-v2.patch delete mode 100644 www-client/mozilla_firefox/patches/2009-09-27/r12-releasenotes.patch delete mode 100644 www-client/mozilla_firefox/persdict.dat delete mode 100644 www-client/mozilla_firefox/select-a-mozconfig/browser-debug.mozconfig delete mode 100644 www-client/mozilla_firefox/select-a-mozconfig/browser.mozconfig delete mode 100644 www-client/mozilla_firefox/select-a-mozconfig/calendar.mozconfig delete mode 100644 www-client/mozilla_firefox/select-a-mozconfig/mailnews.mozconfig delete mode 100644 www-client/mozilla_firefox/select-a-mozconfig/suite-debug.mozconfig delete mode 100644 www-client/mozilla_firefox/select-a-mozconfig/suite-just-browser.mozconfig delete mode 100644 www-client/mozilla_firefox/select-a-mozconfig/suite.mozconfig diff --git a/www-client/mozilla_firefox/TinnyTim.sh b/www-client/mozilla_firefox/TinnyTim.sh deleted file mode 100755 index 744afa0d3..000000000 --- a/www-client/mozilla_firefox/TinnyTim.sh +++ /dev/null @@ -1,199 +0,0 @@ -#!/bin/sh -# -# -CWD=`pwd` -DOWNLOADS="$CWD/downloads" -DEPS="$CWD/dependencies" -DIRECTORIES=( "$DOWNLOADS" "$DEPS") -WGET_CMD='wget --quiet' -DEP_URLS=( \ -'http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=build-aux/config.guess' \ -'http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=build-aux/config.sub' \ -'http://ports.haiku-files.org/svn/haikuports/trunk/dev-libs/glib/pkgconfig_glib-1.2.10-installable.diff' \ -'http://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz' \ -'http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz' \ -'http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/source/libIDL-0.6.8.tar.gz' ) -# #### -# NOTE: currently andrewtv.org is down -#'http://andrewtv.org/static/libIDL/libIDL-0.6.8.tar.gz' \ - -AUTOCONF_CMD="/boot/common/bin/autoconf-2.13" -# --macro-dir=/boot/apps/autoconf-2.13/share/autoconf" - -PREFIX=--prefix=/boot/common - -# ################################# -# create_dirs () -# -function create_dirs () -{ -echo "Creating directory structure ... " -for dir in ${DIRECTORIES[@]} -do - if ! [ -d "$dir" ] ; then - mkdir -p "$dir" - fi -done -} # function create_dirs () - - -# ################################# -# download_deps () -# -function download_deps () -{ -echo "Downloading necessary dependency source archives ... " - -for url in ${DEP_URLS[@]} -do - filename=${url##*/} - if ! [ -e "$DOWNLOADS/$filename" ]; then - echo " $filename ..." - $WGET_CMD --output-document="$DOWNLOADS/$filename" "$url" - fi -done -} # function download_deps () - - -# ################################# -# unpack_deps () -# -function unpack_deps () -{ - -echo "Expanding dependency source archives ... " - -for archive in "$DOWNLOADS"/* -do -ext=${archive##*.} -file=${archive##*/} - -if [ "$ext" = "gz" ]; then - cd "$DEPS" - if ! [ -f "$file"-expanded ]; then - tar xvf "$archive" - touch "$file"-expanded - fi - cd "$CWD" - -fi -done -} # function unpack_deps () - - -# ################################# -# copy_config_sub () -# -function copy_config_guess () -{ -cd "$DEPS" -echo "Updating dependencies' config.guess ..." -for result in `find -name config.guess` -do - echo "$result" - cp -f "$DOWNLOADS/config.guess" "$result" -done -cd "$CWD" -} # function copy_config_guess () - - -# ################################# -# copy_config_sub () -# -function copy_config_sub () -{ - -cd "$DEPS" -echo "Updating dependencies' config.sub ..." -for result in `find -name config.sub` -do - echo "$result" - cp -f "$DOWNLOADS/config.sub" "$result" -done -cd "$CWD" -} # function copy_config_sub () - - -# ################################# -# build_autoconf213 () -# -function build_autoconf213 () -{ -cd "$CWD"'/dependencies/autoconf-2.13' -echo "`pwd`" -./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -make -make install -cd "$CWD" -} # function build_autoconf213 () - - - -# ################################# -# build_glib () -# -# NOTE : TODO : re-do patch, as it does not include configure.in changes -function build_glib () -{ -cd "$CWD"/dependencies/pkg-config-0.23/ -echo "`pwd`" -patch -p0 -N -i "$DOWNLOADS"/pkgconfig_glib-1.2.10-installable.diff -cd glib-1.2.10 -libtoolize --force --copy -aclocal -automake -autoconf -./configure "$PREFIX" -make -make check -make install -cd "$CWD" -} # function build_glib () - - -# ################################# -# build_libidl () -# -function build_libidl () -{ -cd "$CWD"/dependencies -cd libIDL-0.6.8 -$AUTOCONF_CMD -./configure "$PREFIX" -make -make install -cd "$CWD" -} # function build_libidl () - - -# ################################# -# print_mozconfig_message () -# -function print_mozconfig_message () -{ -cat <>$(EXE_DEF_FILE) - @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) - @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) - - LDFLAGS += -Zlinker /NOE - endif - endif - --ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT BeOS Haiku,$(OS_ARCH))) - - firefox:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.mozilla/firefox|" \ - -e "s|%MREDIR%|$(mredir)|" > $@ - chmod +x $@ - - libs:: firefox -Index: mozilla/browser/app/firefox-branding.js -=================================================================== -RCS file: /cvsroot/mozilla/browser/app/firefox-branding.js,v -retrieving revision 1.1.2.2 -diff -u -8 -p -w -r1.1.2.2 firefox-branding.js ---- mozilla/browser/app/firefox-branding.js 12 Sep 2006 15:50:19 -0000 1.1.2.2 -+++ mozilla/browser/app/firefox-branding.js 8 Jul 2009 21:49:35 -0000 -@@ -1,16 +1,15 @@ - pref("startup.homepage_override_url","http://www.mozilla.org/projects/%APP%/%VERSION%/whatsnew/"); --pref("startup.homepage_welcome_url","http://www.mozilla.org/projects/%APP%/%VERSION%/firstrun/"); - // URL user can browse to manually if for some reason all update installation - // attempts fail. - pref("app.update.url.manual", "http://www.mozilla.org/products/%APP%/"); - // A default value for the "More information about this update" link - // supplied in the "An update is available" page of the update wizard. - pref("app.update.url.details", "http://www.mozilla.org/projects/%APP%/"); - - // Release notes URL --pref("app.releaseNotesURL", "http://www.mozilla.org/projects/%APP%/%VERSION%/releasenotes/"); -+pref("app.releaseNotesURL", "about:buildconfig"); - - // Search codes belong only in builds with official branding - pref("browser.search.param.yahoo-fr", ""); - pref("browser.search.param.yahoo-fr-cjkt", ""); - pref("browser.search.param.yahoo-f-CN", ""); -Index: mozilla/browser/base/jar.mn -=================================================================== -RCS file: /cvsroot/mozilla/browser/base/jar.mn,v -retrieving revision 1.95.2.13 -diff -u -8 -p -w -r1.95.2.13 jar.mn ---- mozilla/browser/base/jar.mn 13 Sep 2006 23:10:10 -0000 1.95.2.13 -+++ mozilla/browser/base/jar.mn 8 Jul 2009 21:49:35 -0000 -@@ -11,16 +11,22 @@ browser.jar: - % overlay chrome://global/content/viewPartialSource.xul chrome://browser/content/viewSourceOverlay.xul - * content/browser/aboutDialog.xul (content/aboutDialog.xul) - * content/browser/aboutDialog.js (content/aboutDialog.js) - content/browser/aboutDialog.css (content/aboutDialog.css) - * content/browser/browser.css (content/browser.css) - * content/browser/browser.js (content/browser.js) - * content/browser/browser.xul (content/browser.xul) - * content/browser/credits.xhtml (content/credits.xhtml) -+* content/browser/dynamic-welcome-v1.html (content/dynamic-welcome-v1.html) -+* content/browser/dynamic-welcome-v2.html (content/dynamic-welcome-v2.html) -+* content/browser/dynamic-bebook-v1.html (content/dynamic-bebook-v1.html) -+* content/browser/dynamic-bebook-v2.html (content/dynamic-bebook-v2.html) -+* content/browser/dynamic-userguide-v1.html (content/dynamic-userguide-v1.html) -+* content/browser/dynamic-userguide-v2.html (content/dynamic-userguide-v2.html) - * content/browser/EULA.js (content/EULA.js) - * content/browser/EULA.xhtml (content/EULA.xhtml) - * content/browser/EULA.xul (content/EULA.xul) - * content/browser/metaData.js (content/metaData.js) - * content/browser/metaData.xul (content/metaData.xul) - content/browser/monitor.png (content/monitor.png) - * content/browser/openLocation.js (content/openLocation.js) - * content/browser/openLocation.xul (content/openLocation.xul) -Index: mozilla/browser/base/content/browserconfig.properties -=================================================================== -RCS file: /cvsroot/mozilla/browser/base/content/browserconfig.properties,v -retrieving revision 1.4.4.1 -diff -u -8 -p -w -r1.4.4.1 browserconfig.properties ---- mozilla/browser/base/content/browserconfig.properties 17 Mar 2006 04:17:56 -0000 1.4.4.1 -+++ mozilla/browser/base/content/browserconfig.properties 8 Jul 2009 21:49:35 -0000 -@@ -1,2 +1,2 @@ - # Do NOT localize or otherwise change these values --browser.startup.homepage=http://www.mozilla.org/projects/bonecho/ -+browser.startup.homepage=chrome://browser/content/dynamic-welcome-v1.html -Index: mozilla/browser/components/migration/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/browser/components/migration/src/Makefile.in,v -retrieving revision 1.20.2.2 -diff -u -8 -p -w -r1.20.2.2 Makefile.in ---- mozilla/browser/components/migration/src/Makefile.in 27 Jan 2006 02:19:00 -0000 1.20.2.2 -+++ mozilla/browser/components/migration/src/Makefile.in 8 Jul 2009 21:49:37 -0000 -@@ -73,20 +73,23 @@ endif - - CPPSRCS = nsProfileMigrator.cpp \ - nsBrowserProfileMigratorUtils.cpp \ - nsNetscapeProfileMigratorBase.cpp \ - nsSeamonkeyProfileMigrator.cpp \ - nsPhoenixProfileMigrator.cpp \ - $(NULL) - --ifneq ($(OS_ARCH),BeOS) -+ifneq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsDogbertProfileMigrator.cpp - endif - -+ -+ -+ - ifneq ($(OS_ARCH),OS2) - CPPSRCS += nsOperaProfileMigrator.cpp - endif - - ifeq ($(OS_ARCH)_$(GNU_CXX),WINNT_) - DEFINES += -DPSTOREC_DLL=\"$(subst \,\\,$(WINDIR))\\system32\\pstorec.dll\" - - CPPSRCS += nsIEProfileMigrator.cpp \ -Index: mozilla/browser/installer/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/browser/installer/Makefile.in,v -retrieving revision 1.19.4.4 -diff -u -8 -p -w -r1.19.4.4 Makefile.in ---- mozilla/browser/installer/Makefile.in 6 Jun 2006 15:35:00 -0000 1.19.4.4 -+++ mozilla/browser/installer/Makefile.in 8 Jul 2009 21:49:39 -0000 -@@ -57,19 +57,23 @@ include $(topsrcdir)/config/rules.mk - - MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in - - ifdef BUILD_STATIC_LIBS - ifeq (WINNT,$(OS_ARCH)) - MOZ_PKG_MANIFEST_P = $(srcdir)/windows/packages-static - else - ifneq (,$(filter-out OS2 Darwin,$(OS_ARCH))) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+MOZ_PKG_MANIFEST_P = $(srcdir)/beos/packages-static -+else - MOZ_PKG_MANIFEST_P = $(srcdir)/unix/packages-static - endif - endif -+endif - else - $(error you need a "--enable-static --disable-shared" build to create an installer) - endif - - MOZ_NONLOCALIZED_PKG_LIST = \ - xpcom \ - browser \ - $(NULL) -Index: mozilla/browser/locales/en-US/profile/bookmarks.html -=================================================================== -RCS file: /cvsroot/mozilla/browser/locales/en-US/profile/bookmarks.html,v -retrieving revision 1.4.8.13 -diff -u -8 -p -w -r1.4.8.13 bookmarks.html ---- mozilla/browser/locales/en-US/profile/bookmarks.html 19 Aug 2006 06:04:11 -0000 1.4.8.13 -+++ mozilla/browser/locales/en-US/profile/bookmarks.html 8 Jul 2009 21:49:40 -0000 -@@ -7,20 +7,37 @@ -

Bookmarks

- -

-

Get Bookmark Add-ons -
-

Bookmarks Toolbar Folder

-
Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar -

--

Getting Started --
Latest Headlines -+
Haiku WebSite -+
Nightly Builds -

-


--

Mozilla Firefox

-+

BeZilla Browser

-

--

Help and Tutorials --
Customize Firefox --
Get Involved --
About Us -+
BeZilla Blog -+
Report an Issue -+
View Known Issues -

-+

Haiku Bookmarks

-+

-+

Nightly Builds -+
Optional Packages -+
Bug Tracker -+
Haiku User Guide -+
BeBook -+
Welcome -+

-+

Software for Haiku

-+

-+

OSDrawer.net -+
HaikuWare -+
Zeta-Games -+
BeBits -+

-+

Haiku WebSite -+ -

-Index: mozilla/build/autoconf/config.guess -=================================================================== -RCS file: /cvsroot/mozilla/build/autoconf/config.guess,v -retrieving revision 1.19 -diff -u -8 -p -w -r1.19 config.guess ---- mozilla/build/autoconf/config.guess 18 Apr 2003 10:20:15 -0000 1.19 -+++ mozilla/build/autoconf/config.guess 8 Jul 2009 21:49:46 -0000 -@@ -1,34 +1,37 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-08' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or - # (at your option) any later version. - # - # This program is distributed in the hope that it will be useful, but - # WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # -@@ -48,34 +51,34 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) -@@ -99,35 +102,36 @@ trap 'exit 1' 1 2 15 - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -@@ -152,16 +156,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -190,60 +195,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; -@@ -271,147 +258,163 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { -@@ -425,145 +428,150 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else - echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -@@ -615,31 +623,41 @@ EOF - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); -@@ -657,181 +675,224 @@ EOF - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -@@ -839,62 +900,78 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g -@@ -902,99 +979,113 @@ EOF - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -+ exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -@@ -1002,214 +1093,248 @@ EOF - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi -- exit 0 ;; -+ exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -- exit 0 ;; -+ exit ;; - paragon:*:*:*) - echo i860-intel-osf1 -- exit 0 ;; -+ exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ exit ;; -+ BeMac:Haiku:*:*) -+ echo powerpc-apple-haiku -+ exit ;; -+ BePC:Haiku:*:*) -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c </dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - -Index: mozilla/build/autoconf/config.sub -=================================================================== -RCS file: /cvsroot/mozilla/build/autoconf/config.sub,v -retrieving revision 1.20 -diff -u -8 -p -w -r1.20 config.sub ---- mozilla/build/autoconf/config.sub 18 Apr 2003 10:20:15 -0000 1.20 -+++ mozilla/build/autoconf/config.sub 8 Jul 2009 21:49:49 -0000 -@@ -1,14 +1,15 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-16' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or -@@ -16,24 +17,25 @@ timestamp='2003-02-22' - # - # This program is distributed in the hope that it will be useful, - # but WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - # GNU General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -@@ -65,46 +67,46 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 -@@ -113,17 +115,19 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi -@@ -139,17 +143,17 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) -@@ -164,32 +168,40 @@ case $os in - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) -@@ -219,171 +231,196 @@ case $os in - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) -@@ -405,16 +442,24 @@ case $basic_machine in - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; -@@ -433,22 +478,37 @@ case $basic_machine in - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec -@@ -461,16 +521,20 @@ case $basic_machine in - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; -@@ -611,66 +675,71 @@ case $basic_machine in - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; -@@ -729,30 +798,29 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff -+ ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k -@@ -760,43 +828,63 @@ case $basic_machine in - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -@@ -819,16 +907,20 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) -@@ -845,23 +937,37 @@ case $basic_machine in - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; -@@ -926,45 +1032,49 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; -@@ -998,16 +1108,20 @@ case $basic_machine in - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) -@@ -1028,39 +1142,39 @@ case $basic_machine in - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; -@@ -1116,40 +1230,40 @@ case $os in - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1157,34 +1271,40 @@ case $os in - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1196,16 +1316,19 @@ case $os in - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova -@@ -1218,16 +1341,19 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 -@@ -1254,16 +1380,19 @@ case $os in - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1276,25 +1405,34 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) -@@ -1310,16 +1448,19 @@ case $basic_machine in - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff -@@ -1328,19 +1469,25 @@ case $basic_machine in - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf -@@ -1463,19 +1610,25 @@ case $basic_machine in - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi -@@ -1490,16 +1643,16 @@ case $basic_machine in - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: -Index: mozilla/calendar/base/content/preferences/preferences.xul -=================================================================== -RCS file: /cvsroot/mozilla/calendar/base/content/preferences/preferences.xul,v -retrieving revision 1.1.2.6 -diff -u -8 -p -w -r1.1.2.6 preferences.xul ---- mozilla/calendar/base/content/preferences/preferences.xul 14 Mar 2007 09:08:19 -0000 1.1.2.6 -+++ mozilla/calendar/base/content/preferences/preferences.xul 8 Jul 2009 21:49:51 -0000 -@@ -66,17 +66,22 @@ - #ifdef XP_UNIX - #ifdef XP_MACOSX - style="&prefWindow.styleMac;"> - #else - title="&prefWindow.titleGNOME;" - style="&prefWindow.styleGNOME;"> - #endif - #endif -+#ifdef XP_BEOS -+ title="&prefWindow.titleGNOME;" -+ style="&prefWindow.styleGNOME;"> - #endif -+#endif -+ - - - - - -Index: mozilla/calendar/libical/src/libical/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/calendar/libical/src/libical/Makefile.in,v -retrieving revision 1.3.6.1 -diff -u -8 -p -w -r1.3.6.1 Makefile.in ---- mozilla/calendar/libical/src/libical/Makefile.in 27 Dec 2007 10:03:57 -0000 1.3.6.1 -+++ mozilla/calendar/libical/src/libical/Makefile.in 8 Jul 2009 21:49:54 -0000 -@@ -84,17 +84,17 @@ CSRCS = \ - $(NULL) - - ifeq (,$(filter -DHAVE_SNPRINTF=1,$(ACDEFINES))) - CSRCS += vsnprintf.c - endif - - DEFINES += -DHAVE_CONFIG_H - --ifneq (,$(filter BeOS Darwin OpenVMS NetBSD FreeBSD,$(OS_ARCH))) -+ifneq (,$(filter BeOS Haiku Darwin OpenVMS NetBSD FreeBSD,$(OS_ARCH))) - DEFINES += -D__USE_BSD=1 - endif - - LOCAL_INCLUDES = -I$(srcdir)/../.. -I$(srcdir) -I. - - SRCS_IN_OBJDIR = 1 - - include $(topsrcdir)/config/rules.mk -Index: mozilla/calendar/sunbird/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/calendar/sunbird/app/Makefile.in,v -retrieving revision 1.21.2.23 -diff -u -8 -p -w -r1.21.2.23 Makefile.in ---- mozilla/calendar/sunbird/app/Makefile.in 4 May 2008 01:32:07 -0000 1.21.2.23 -+++ mozilla/calendar/sunbird/app/Makefile.in 8 Jul 2009 21:50:01 -0000 -@@ -79,18 +79,22 @@ include $(topsrcdir)/config/rules.mk - else - # Build a binary bootstrapping with XRE_main - - MOZILLA_INTERNAL_API = 1 - - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = sunbird$(BIN_SUFFIX) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+PROGRAM = BeZillaCalendar$(BIN_SUFFIX) -+else - PROGRAM = sunbird-bin$(BIN_SUFFIX) - endif -+endif - - REQUIRES = \ - appshell \ - string \ - xpcom \ - xulapp \ - $(NULL) - -@@ -189,17 +193,21 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif -+BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res - RCFLAGS += -DMOZ_SUNBIRD -@@ -261,17 +269,17 @@ $(EXE_DEF_FILE): - @echo WinQueryProperty = PMMERGE.5450 >>$(EXE_DEF_FILE) - @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) - @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) - - LDFLAGS += -Zlinker /NOE - endif - endif - --ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT BeOS Haiku,$(OS_ARCH))) - - sunbird:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.mozilla/sunbird|" \ - -e "s|%MREDIR%|$(mredir)|" > $@ - chmod +x $@ - - libs:: sunbird -Index: mozilla/config/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/config/config.mk,v -retrieving revision 3.337.2.12 -diff -u -8 -p -w -r3.337.2.12 config.mk ---- mozilla/config/config.mk 23 Nov 2007 21:12:26 -0000 3.337.2.12 -+++ mozilla/config/config.mk 8 Jul 2009 21:50:14 -0000 -@@ -105,19 +105,16 @@ AUTOCONF_TOOLS = $(topsrcdir)/build/auto - - ifeq ($(OS_ARCH),QNX) - ifeq ($(OS_TARGET),NTO) - LD := qcc -Vgcc_ntox86 -nostdlib - else - LD := $(CC) - endif - endif --ifeq ($(OS_ARCH),BeOS) --BEOS_ADDON_WORKAROUND = 1 --endif - - # - # Strip off the excessively long version numbers on these platforms, - # but save the version to allow multiple versions of the same base - # platform to be built in the same tree. - # - ifneq (,$(filter FreeBSD HP-UX IRIX Linux NetBSD OpenBSD OSF1 SunOS,$(OS_ARCH))) - OS_RELEASE := $(basename $(OS_RELEASE)) -Index: mozilla/config/rules.mk -=================================================================== -RCS file: /cvsroot/mozilla/config/rules.mk,v -retrieving revision 3.487.2.9 -diff -u -8 -p -w -r3.487.2.9 rules.mk ---- mozilla/config/rules.mk 18 Dec 2007 21:33:08 -0000 3.487.2.9 -+++ mozilla/config/rules.mk 8 Jul 2009 21:50:19 -0000 -@@ -512,17 +512,17 @@ ifeq ($(OS_ARCH),Linux) - ifdef IS_COMPONENT - EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic - endif - endif - - # - # BeOS: add -Bsymbolic flag for components - # --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter BeOS Haiku,$(OS_ARCH))) - ifdef IS_COMPONENT - EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic - endif - endif - - # - # MINGW32 - # -@@ -672,19 +672,23 @@ ifdef BEOS_ADDON_WORKAROUND - ( cd $(FINAL_TARGET)/components && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) ) - endif - else # ! IS_COMPONENT - ifneq (,$(filter OS2 WINNT WINCE,$(OS_ARCH))) - $(INSTALL) $(IFLAGS2) $(IMPORT_LIBRARY) $(DIST)/lib - else - $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(DIST)/lib - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(FINAL_TARGET)/lib -+else - $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(FINAL_TARGET) -+endif - ifdef BEOS_ADDON_WORKAROUND -- ( cd $(FINAL_TARGET) && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) ) -+ ( cd $(FINAL_TARGET)/lib && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) ) - endif - endif # IS_COMPONENT - endif # SHARED_LIBRARY - ifdef PROGRAM - $(INSTALL) $(IFLAGS2) $(PROGRAM) $(FINAL_TARGET) - endif - ifdef SIMPLE_PROGRAMS - $(INSTALL) $(IFLAGS2) $(SIMPLE_PROGRAMS) $(FINAL_TARGET) -@@ -822,17 +826,20 @@ endif # OS2 - endif # WINCE - - ifdef ENABLE_STRIP - $(STRIP) $@ - endif - ifdef MOZ_POST_PROGRAM_COMMAND - $(MOZ_POST_PROGRAM_COMMAND) $@ - endif --ifeq ($(OS_ARCH),BeOS) -+ifneq (,$(filter BeOS Haiku,$(OS_ARCH))) -+ifdef BEOS_PROGRAM_RDEF -+ rc -o $(BEOS_PROGRAM_RESOURCE) $(BEOS_PROGRAM_RDEF) -+endif - ifdef BEOS_PROGRAM_RESOURCE - xres -o $@ $(BEOS_PROGRAM_RESOURCE) - mimeset $@ - endif - endif # BeOS - - $(HOST_PROGRAM): $(HOST_PROGOBJS) $(HOST_LIBS_DEPS) $(HOST_EXTRA_DEPS) Makefile Makefile.in - ifeq ($(MOZ_OS2_TOOLS),VACPP) -Index: mozilla/directory/c-sdk/build.mk -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/build.mk,v -retrieving revision 5.0.2.15.4.1 -diff -u -8 -p -w -r5.0.2.15.4.1 build.mk ---- mozilla/directory/c-sdk/build.mk 3 Feb 2006 14:44:29 -0000 5.0.2.15.4.1 -+++ mozilla/directory/c-sdk/build.mk 8 Jul 2009 21:50:28 -0000 -@@ -437,17 +437,17 @@ endif #!os2 - - ifeq ($(OS_ARCH), OSF1) - # The linker on OSF/1 gets confused if it finds an so_locations file - # that doesn't meet its expectations, so we arrange to remove it before - # linking. - SO_FILES_TO_REMOVE=so_locations - endif - --ifneq (,$(filter BeOS Darwin NetBSD,$(OS_ARCH))) -+ifneq (,$(filter BeOS Haiku Darwin NetBSD,$(OS_ARCH))) - LINK_DLL = $(MKSHLIB) $(OBJS) - endif - - ifeq ($(OS_ARCH), HP-UX) - # On HPUX, we need a couple of changes: - # 1) Use the C++ compiler for linking, which will pass the +eh flag on down to the - # linker so the correct exception-handling-aware libC gets used (libnshttpd.sl - # needs this). -Index: mozilla/directory/c-sdk/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/configure.in,v -retrieving revision 5.0.2.34.4.3 -diff -u -8 -p -w -r5.0.2.34.4.3 configure.in ---- mozilla/directory/c-sdk/configure.in 11 Jul 2007 20:43:19 -0000 5.0.2.34.4.3 -+++ mozilla/directory/c-sdk/configure.in 8 Jul 2009 21:50:33 -0000 -@@ -355,17 +355,17 @@ fi - if test -z "$SKIP_PATH_CHECKS"; then - AC_PATH_PROG(WHOAMI, $WHOAMI whoami, echo not_whoami) - fi - - if test -n "$MOZ_DEBUG"; then - AC_DEFINE(DEBUG) - DEFINES="$DEFINES -UNDEBUG" - case "${target_os}" in -- beos*) -+ beos*|haiku*) - DEFINES="$DEFINES -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*) - DEFINES="$DEFINES -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`" - ;; - *) - DEFINES="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`$WHOAMI`" - ;; -@@ -728,17 +728,17 @@ case "$host" in - *-cygwin*|*-msvc*|*-mks*) - CYGWIN_WRAPPER='sh $(topsrcdir)/config/cygwin-wrapper' - NSINSTALL='$(CYGWIN_WRAPPER) nsinstall' - if test "`${PERL} -v | grep -c cygwin 2>/dev/null`" = 0; then - PERL='$(CYGWIN_WRAPPER) perl' - fi - WIN_TOP_SRC=`cygpath -a -w $srcdir | sed -e 's|\\\\|/|g'` - ;; --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" - ;; - *os2*) - ;; - *) - HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" - ;; - esac -@@ -807,34 +807,52 @@ case "$target" in - else - MDCPUCFG_H=_aix32.cfg - fi - fi - PR_MD_CSRCS=aix.c - RESOLVE_LINK_SYMBOLS=1 - ;; - --*-beos*) -+*-beos*|*-haiku*) - AC_DEFINE(XP_BEOS) - AC_DEFINE(BeOS) - AC_DEFINE(BEOS) - AC_DEFINE(_POSIX_SOURCE) -+ DSO_CFLAGS=-fPIC - DSO_LDOPTS=-nostart -+ - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 -+ -+ _HAIKU_BUILD=0 -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ if test "$_HAIKU_BUILD" = 1; then -+ OS_LIBS="$OS_LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ fi -+ -+ -+ - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -- _DEBUG_FLAGS='-gdwarf-2 -O0' -+ AC_DEFINE(i586) -+ CPU_ARCH=i586 -+ _OPTIMIZE_FLAGS=-O3 -+ _DEBUG_FLAGS='-gdwarf-2 -O0 -fno-inline' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' -- AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) -+ AC_DEFINE(ppc) -+ CPU_ARCH=ppc - CC=mwcc - CCC=mwcc - LD=mwld - DSO_LDOPTS='-xms -export pragma -init _init_routine_ -term _term_routine_ -lroot -lnet /boot/develop/lib/ppc/glue-noinit.a /boot/develop/lib/ppc/init_term_dyn.o /boot/develop/lib/ppc/start_dyn.o' - _OPTIMIZE_FLAGS=-O2 - _DEBUG_FLAGS='-g -O0' - ;; - esac -@@ -2090,17 +2108,17 @@ AC_ARG_ENABLE(nspr-threads, - [ --enable-nspr-threads Build using classic nspr threads], - [ if test "$enableval" = "yes"; then - USE_PTHREADS= - USE_USER_PTHREADS= - USE_NSPR_THREADS=1 - fi]) - - case "$target" in --*-beos*) -+*-beos*|*-haiku*) - AC_ARG_WITH(bthreads, - [ --with-bthreads Use system bthreads library as thread subsystem (BeOS only)], - [ if test "$withval" = "yes"; then - USE_BTHREADS=1 - USE_USER_PTHREADS= - USE_PTHREADS= - fi]) - ;; -Index: mozilla/directory/c-sdk/config/autoconf/config.guess -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/config/autoconf/config.guess,v -retrieving revision 5.0.2.2 -diff -u -8 -p -w -r5.0.2.2 config.guess ---- mozilla/directory/c-sdk/config/autoconf/config.guess 18 Apr 2003 10:20:22 -0000 5.0.2.2 -+++ mozilla/directory/c-sdk/config/autoconf/config.guess 8 Jul 2009 21:50:37 -0000 -@@ -1,34 +1,37 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-08' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or - # (at your option) any later version. - # - # This program is distributed in the hope that it will be useful, but - # WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # -@@ -48,34 +51,34 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) -@@ -99,35 +102,36 @@ trap 'exit 1' 1 2 15 - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -@@ -152,16 +156,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -190,60 +195,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; -@@ -271,147 +258,163 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { -@@ -425,145 +428,150 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else - echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -@@ -615,31 +623,41 @@ EOF - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); -@@ -657,181 +675,224 @@ EOF - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -@@ -839,62 +900,78 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g -@@ -902,99 +979,113 @@ EOF - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -+ exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -@@ -1002,214 +1093,248 @@ EOF - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi -- exit 0 ;; -+ exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -- exit 0 ;; -+ exit ;; - paragon:*:*:*) - echo i860-intel-osf1 -- exit 0 ;; -+ exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ exit ;; -+ BeMac:Haiku:*:*) -+ echo powerpc-apple-haiku -+ exit ;; -+ BePC:Haiku:*:*) -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c </dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - -Index: mozilla/directory/c-sdk/config/autoconf/config.sub -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/config/autoconf/config.sub,v -retrieving revision 5.0.2.3 -diff -u -8 -p -w -r5.0.2.3 config.sub ---- mozilla/directory/c-sdk/config/autoconf/config.sub 18 Apr 2003 10:20:22 -0000 5.0.2.3 -+++ mozilla/directory/c-sdk/config/autoconf/config.sub 8 Jul 2009 21:50:40 -0000 -@@ -1,14 +1,15 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-16' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or -@@ -16,24 +17,25 @@ timestamp='2003-02-22' - # - # This program is distributed in the hope that it will be useful, - # but WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - # GNU General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -@@ -65,46 +67,46 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 -@@ -113,17 +115,19 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi -@@ -139,17 +143,17 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) -@@ -164,32 +168,40 @@ case $os in - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) -@@ -219,171 +231,196 @@ case $os in - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) -@@ -405,16 +442,24 @@ case $basic_machine in - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; -@@ -433,22 +478,37 @@ case $basic_machine in - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec -@@ -461,16 +521,20 @@ case $basic_machine in - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; -@@ -611,66 +675,71 @@ case $basic_machine in - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; -@@ -729,30 +798,29 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff -+ ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k -@@ -760,43 +828,63 @@ case $basic_machine in - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -@@ -819,16 +907,20 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) -@@ -845,23 +937,37 @@ case $basic_machine in - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; -@@ -926,45 +1032,49 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; -@@ -998,16 +1108,20 @@ case $basic_machine in - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) -@@ -1028,39 +1142,39 @@ case $basic_machine in - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; -@@ -1116,40 +1230,40 @@ case $os in - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1157,34 +1271,40 @@ case $os in - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1196,16 +1316,19 @@ case $os in - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova -@@ -1218,16 +1341,19 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 -@@ -1254,16 +1380,19 @@ case $os in - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1276,25 +1405,34 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) -@@ -1310,16 +1448,19 @@ case $basic_machine in - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff -@@ -1328,19 +1469,25 @@ case $basic_machine in - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf -@@ -1463,19 +1610,25 @@ case $basic_machine in - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi -@@ -1490,16 +1643,16 @@ case $basic_machine in - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: -Index: mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in,v -retrieving revision 5.0.2.21.4.1 -diff -u -8 -p -w -r5.0.2.21.4.1 Makefile.in ---- mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in 3 Feb 2006 14:44:42 -0000 5.0.2.21.4.1 -+++ mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in 8 Jul 2009 21:50:42 -0000 -@@ -232,17 +232,17 @@ ifeq ($(OS_ARCH), Darwin) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) - endif - - ifeq ($(OS_ARCH), OpenVMS) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) $(OS_LIBS) - SHARED_LIBRARY_LIBS = $(dist_libdir)/lib$(LBER_LIBNAME).a - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) -lbe - endif - - ifeq ($(OS_ARCH), NetBSD) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) - endif - - ifeq ($(OS_ARCH), OpenBSD) -@@ -297,17 +297,17 @@ ltest:: $(LIBLDAP) test.o - $(LIBDIR): - $(MKDIR) $(LIBDIR) - - $(LIBLDAP): $(OBJS) $(LIBDIR) $(LDAP_EXPORT_DEFS) - @echo ======= making $(LIBLDAP) - ifdef SO_FILES_TO_REMOVE - -$(RM) $(SO_FILES_TO_REMOVE) - endif --ifneq (,$(filter AIX Linux HP-UX Darwin BeOS QNX NetBSD OSF1 OpenBSD, $(OS_ARCH))) -+ifneq (,$(filter AIX Linux HP-UX Darwin BeOS Haiku QNX NetBSD OSF1 OpenBSD, $(OS_ARCH))) - $(LINK_LIB) ../liblber/$(OBJDIR_NAME)/*.a - else - ifeq ($(OS_ARCH),OS2) - # create import library for OS/2 - rm -f $@ - $(IMPLIB) $@ $(LDAP_EXPORT_DEFS) - else - $(LINK_LIB) $(EXTRA_LIBS) -@@ -336,15 +336,19 @@ ifeq ($(LD),link) - EXPDEPS2 = $(DLLLDAP) - endif - endif - - export:: $(EXPDEPS2) - ifdef MKSHLIB - $(INSTALL) -m 444 $(LIBLDAP) $(dist_libdir) - $(INSTALL) -m 444 $(DLLLDAP) $(dist_libdir) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(DLLLDAP) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(DLLLDAP) $(dist_bindir) - endif -+endif - ifeq ($(OS_ARCH), WINNT) - $(INSTALL) -m 444 $(LIBLDAP) $(dist_libdir) - $(INSTALL) -m 444 $(DLLLDAP) $(dist_libdir) - endif - $(INSTALL) -m 444 $(ETCFILES) $(ETCDIR) -Index: mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in,v -retrieving revision 5.0.2.18.4.1 -diff -u -8 -p -w -r5.0.2.18.4.1 Makefile.in ---- mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in 3 Feb 2006 14:44:49 -0000 5.0.2.18.4.1 -+++ mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in 8 Jul 2009 21:50:43 -0000 -@@ -160,17 +160,18 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_L - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - - ifeq ($(OS_ARCH), OpenVMS) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - --ifeq ($(OS_ARCH), BeOS) -+ -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - - OBJDEST = $(OBJDIR_NAME) - - ########################################################################### - -@@ -250,10 +251,14 @@ ifeq ($(OS_ARCH), WINNT) - $(INSTALL) -m 555 $(LIBPRLDAP) $(dist_libdir) - $(INSTALL) -m 555 $(DLLPRLDAP) $(dist_libdir) - endif - ifeq ($(OS_ARCH),OS2) - $(INSTALL) -m 444 $(LIBPRLDAP) $(dist_libdir) - endif - ifdef MKSHLIB - $(INSTALL) -m 555 $(DLLPRLDAP) $(dist_libdir) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(DLLPRLDAP) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(DLLPRLDAP) $(dist_bindir) - endif -+endif -Index: mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libssldap/Attic/Makefile,v -retrieving revision 5.0.2.8 -diff -u -8 -p -w -r5.0.2.8 Makefile ---- mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile 25 Aug 2004 23:02:30 -0000 5.0.2.8 -+++ mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile 8 Jul 2009 21:50:43 -0000 -@@ -162,17 +162,17 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_L - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME) - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif -Index: mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in,v -retrieving revision 5.0.2.9.4.1 -diff -u -8 -p -w -r5.0.2.9.4.1 Makefile.in ---- mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in 3 Feb 2006 14:44:49 -0000 5.0.2.9.4.1 -+++ mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in 8 Jul 2009 21:50:44 -0000 -@@ -177,17 +177,17 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_L - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME) - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif -Index: mozilla/embedding/componentlib/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/embedding/componentlib/Makefile.in,v -retrieving revision 1.3 -diff -u -8 -p -w -r1.3 Makefile.in ---- mozilla/embedding/componentlib/Makefile.in 18 Apr 2004 22:00:41 -0000 1.3 -+++ mozilla/embedding/componentlib/Makefile.in 8 Jul 2009 21:50:58 -0000 -@@ -147,17 +147,17 @@ OS_LIBS := -lstdc++ $(OS_LIBS) - SHLIB_LDENDFILE = -lgcc - - endif # darwin - - ifeq ($(OS_ARCH),WINNT) - OS_LIBS += ole32.lib shell32.lib - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS += -ltracker - endif - - GARBAGE += $(CPPSRCS) - - ifdef _NO_AUTO_VARS - _TARGET = $(srcdir)/$(@F) - GARBAGE += $(addprefix $(srcdir)/,$(CPPSRCS)) -Index: mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp -=================================================================== -RCS file: /cvsroot/mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp,v -retrieving revision 1.40.12.5 -diff -u -8 -p -w -r1.40.12.5 nsFontMetricsBeOS.cpp ---- mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp 27 Sep 2007 21:36:00 -0000 1.40.12.5 -+++ mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp 8 Jul 2009 21:51:31 -0000 -@@ -123,22 +123,22 @@ NS_IMETHODIMP nsFontMetricsBeOS::Init(co - nsString *fam = param.family.StringAt(i); - PRBool isgeneric = ( param.isgeneric[i] ) ? PR_TRUE: PR_FALSE; - NS_ConvertUTF16toUTF8 family(*fam); - // Fallback - isfixed = family.Equals("monospace") || family.Equals("fixed"); - if (!isgeneric) - { - // non-generic font -- if (count_font_styles((font_family)family.get()) <= 0) -+ if (count_font_styles((char *) family.get()) <= 0) - { - // the specified font does not exist on this computer. - continue; - } -- mFontHandle.SetFamilyAndStyle( (font_family)family.get(), NULL ); -+ mFontHandle.SetFamilyAndStyle( (char *)family.get(), NULL ); - fontfound = PR_TRUE; - break; - } - else - { - // family is generic string like - // "serif" "sans-serif" "cursive" "fantasy" "monospace" "-moz-fixed" - // so look up preferences and get real family name -@@ -153,19 +153,19 @@ NS_IMETHODIMP nsFontMetricsBeOS::Init(co - //NS_WITH_SERVICE( nsIPref, prefs, kPrefCID, &res ); - nsCOMPtr prefs = do_GetService( NS_PREFSERVICE_CONTRACTID, &res ); - if (NS_SUCCEEDED(res)) - { - nsCOMPtr branch; - prefs->GetBranch("font.name.", getter_AddRefs(branch)); - branch->GetCharPref(prop, getter_Copies(real_family)); - -- if (!real_family.IsEmpty() && real_family.Length() <= B_FONT_FAMILY_LENGTH && count_font_styles((font_family)real_family.get()) > 0) -+ if (!real_family.IsEmpty() && real_family.Length() <= B_FONT_FAMILY_LENGTH && count_font_styles((char *)real_family.get()) > 0) - { -- mFontHandle.SetFamilyAndStyle( (font_family)real_family.get(), NULL ); -+ mFontHandle.SetFamilyAndStyle( (char *)real_family.get(), NULL ); - fontfound = PR_TRUE; - break; - } - } - // not successful. use system font. - if (isfixed) - mFontHandle = BFont(be_fixed_font); - else -@@ -409,18 +409,18 @@ NS_IMETHODIMP nsFontMetricsBeOS::GetFon - aHandle = (nsFontHandle)&mFontHandle; - return NS_OK; - } - - nsresult - nsFontMetricsBeOS::FamilyExists(const nsString& aName) - { - NS_ConvertUTF16toUTF8 family(aName); -- printf("exists? %s", (font_family)family.get()); -- return (count_font_styles((font_family)family.get()) > 0) ? NS_OK : NS_ERROR_FAILURE; -+ printf("exists? %s", (char *)family.get()); -+ return (count_font_styles((char *)family.get()) > 0) ? NS_OK : NS_ERROR_FAILURE; - } - - // useful UTF-8 utility - inline uint32 utf8_char_len(uchar byte) - { - return (((0xE5000000 >> ((byte >> 3) & 0x1E)) & 3) + 1); - } - -Index: mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp -=================================================================== -RCS file: /cvsroot/mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp,v -retrieving revision 1.51.12.8 -diff -u -8 -p -w -r1.51.12.8 nsRenderingContextBeOS.cpp ---- mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp 18 Dec 2007 07:17:21 -0000 1.51.12.8 -+++ mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp 8 Jul 2009 21:51:35 -0000 -@@ -346,18 +346,21 @@ bool nsRenderingContextBeOS::LockAndUpda - - // Intelligent lock - if (mSurface->LockDrawable()) - { - // if BFont wasn't set already - if (mCurrentBFont == nsnull) - { - if (mFontMetrics) -- mFontMetrics->GetFontHandle((nsFontHandle)mCurrentBFont); -- -+ { -+ nsFontHandle fontHandle; -+ mFontMetrics->GetFontHandle(fontHandle); -+ mCurrentBFont = (BFont *) fontHandle; -+ } - if (mCurrentBFont) - mView->SetFont(mCurrentBFont); - else - mView->SetFont(be_plain_font); // fallback - only for single call - } - - if (mClipRegion) - { -@@ -1122,17 +1125,17 @@ NS_IMETHODIMP nsRenderingContextBeOS::Ge - // and call (UTF-8) char* version of the method. - // It works well with current nsFontMetricsBeOS which is, again, simpler in comparison with - // other platforms, partly due to UTF-8 nature of BeOS, partly due unimplemented font fallbacks - // and other tricks. - - NS_IMETHODIMP nsRenderingContextBeOS::GetTextDimensions(const PRUnichar* aString, - PRInt32 aLength, PRInt32 aAvailWidth, PRInt32* aBreaks, PRInt32 aNumBreaks, - nsTextDimensions& aDimensions, PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, -- PRInt32* aFontID = nsnull) -+ PRInt32* aFontID) - { - nsresult ret_code = NS_ERROR_FAILURE; - uint8 utf8buf[1024]; - uint8* utf8str = nsnull; - // max UTF-8 string length - PRUint32 slength = aLength * 4 + 1; - // Allocating char* array rather from stack than from heap for speed. - // 1024 char array forms e.g. 256 == 32*8 frame for CJK glyphs, which may be -@@ -1155,17 +1158,17 @@ NS_IMETHODIMP nsRenderingContextBeOS::Ge - // deallocating if got from heap - if (utf8str != utf8buf) - delete [] utf8str; - return ret_code; - } - - NS_IMETHODIMP nsRenderingContextBeOS::GetTextDimensions(const char* aString, PRInt32 aLength, - PRInt32 aAvailWidth,PRInt32* aBreaks, PRInt32 aNumBreaks, nsTextDimensions& aDimensions, -- PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, PRInt32* aFontID = nsnull) -+ PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, PRInt32* aFontID) - { - // Code is borrowed from win32 implementation including comments. - // Minor changes are introduced due multibyte/utf-8 nature of char* strings handling in BeOS. - char * utf8ptr = (char *)aString; - PRInt32 *utf8pos =0; - PRInt32 num_of_glyphs = 0; // Number of glyphs isn't equal to number of bytes in case of UTF-8 - PRInt32 utf8posbuf[1025]; - if (aLength < 1025) -Index: mozilla/intl/uconv/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/intl/uconv/src/Makefile.in,v -retrieving revision 1.82.4.2 -diff -u -8 -p -w -r1.82.4.2 Makefile.in ---- mozilla/intl/uconv/src/Makefile.in 29 Jan 2006 16:51:01 -0000 1.82.4.2 -+++ mozilla/intl/uconv/src/Makefile.in 8 Jul 2009 21:51:42 -0000 -@@ -114,17 +114,17 @@ else - ifeq ($(MOZ_WIDGET_TOOLKIT),windows) - CPPSRCS += nsWinCharset.cpp - EXPORT_RESOURCE += wincharset.properties - else - ifneq (,$(filter cocoa mac, $(MOZ_WIDGET_TOOLKIT))) - CPPSRCS += nsMacCharset.cpp - EXPORT_RESOURCE += maccharset.properties - else --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsBeOSCharset.cpp - else - CPPSRCS += nsUNIXCharset.cpp - EXPORT_RESOURCE += unixcharset.properties - # add platform charset remapping properties files here if necessary - # (see unixcharset.sample.properties for an example file) - # eg: if we needed a charset remap for OSARCH=Linux then add the following line: - #EXPORT_RESOURCE += unixcharset.Linux.properties -Index: mozilla/ipc/ipcd/client/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/ipc/ipcd/client/src/Makefile.in,v -retrieving revision 1.7 -diff -u -8 -p -w -r1.7 Makefile.in ---- mozilla/ipc/ipcd/client/src/Makefile.in 9 Dec 2004 19:28:19 -0000 1.7 -+++ mozilla/ipc/ipcd/client/src/Makefile.in 8 Jul 2009 21:51:48 -0000 -@@ -59,17 +59,18 @@ CPPSRCS = \ - ipcdclient.cpp \ - ipcService.cpp \ - ipcModuleFactory.cpp \ - $(NULL) - - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += ipcConnectionWin.cpp - else --ifeq ($(OS_ARCH),BeOS) -+ -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += ipcConnectionStub.cpp - else - CPPSRCS += ipcConnectionUnix.cpp - endif - endif - - LOCAL_INCLUDES = \ - -I$(srcdir)/../../shared/src \ -Index: mozilla/ipc/ipcd/daemon/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/ipc/ipcd/daemon/src/Makefile.in,v -retrieving revision 1.3 -diff -u -8 -p -w -r1.3 Makefile.in ---- mozilla/ipc/ipcd/daemon/src/Makefile.in 28 Jan 2004 21:31:46 -0000 1.3 -+++ mozilla/ipc/ipcd/daemon/src/Makefile.in 8 Jul 2009 21:51:49 -0000 -@@ -54,17 +54,18 @@ CPPSRCS = \ - ipcd.cpp \ - ipcClient.cpp \ - ipcModuleReg.cpp \ - ipcCommandModule.cpp - - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += ipcdWin.cpp - else --ifeq ($(OS_ARCH),BeOS) -+ -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += ipcdStub.cpp - else - CPPSRCS += ipcdUnix.cpp - endif - endif - - PROGRAM = mozilla-ipcd$(BIN_SUFFIX) - -Index: mozilla/js/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/js/src/Makefile.in,v -retrieving revision 3.95.4.5 -diff -u -8 -p -w -r3.95.4.5 Makefile.in ---- mozilla/js/src/Makefile.in 27 Jul 2006 22:56:20 -0000 3.95.4.5 -+++ mozilla/js/src/Makefile.in 8 Jul 2009 21:51:51 -0000 -@@ -241,17 +241,17 @@ ifneq ($(findstring -L,$(NSPR_LIBS)),) - NSPR_STATIC_PATH = $(subst -L,,$(findstring -L,$(NSPR_LIBS))) - else - NSPR_STATIC_PATH = $(DIST)/lib - endif - - LDFLAGS += $(pathsubst -l%,$(NSPR_STATIC_PATH)/%.a,$(NSPR_LIBS)) - - # BeOS and HP-UX do not require the extra linking of "-lm" --ifeq (,$(filter BeOS HP-UX WINNT WINCE OpenVMS,$(OS_ARCH))) -+ifeq (,$(filter BeOS Haiku HP-UX WINNT WINCE OpenVMS,$(OS_ARCH))) - LDFLAGS += -lm - endif - - # Prevent floating point errors caused by VC++ optimizations - ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_) - ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER))) - CFLAGS += -Op - else -Index: mozilla/mail/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/mail/app/Makefile.in,v -retrieving revision 1.46.2.10 -diff -u -8 -p -w -r1.46.2.10 Makefile.in ---- mozilla/mail/app/Makefile.in 22 Oct 2008 21:04:53 -0000 1.46.2.10 -+++ mozilla/mail/app/Makefile.in 8 Jul 2009 21:52:18 -0000 -@@ -57,18 +57,22 @@ PREF_JS_EXPORTS = \ - - ifndef MOZ_BRANDING_DIRECTORY - PREF_JS_EXPORTS += $(srcdir)/thunderbird-branding.js - endif - - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = thunderbird$(BIN_SUFFIX) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+PROGRAM = BeZillaMailNews$(BIN_SUFFIX) -+else - PROGRAM = thunderbird-bin$(BIN_SUFFIX) - endif -+endif - - REQUIRES = \ - xpcom \ - $(NULL) - - LOCAL_INCLUDES = -I$(topsrcdir)/toolkit/xre - - CPPSRCS = nsMailApp.cpp -@@ -142,17 +146,20 @@ RCFLAGS += -DMOZ_THUNDERBIRD -I$(srcdir) - else - RCFLAGS += -DMOZ_THUNDERBIRD --include-dir $(srcdir) - endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res -@@ -257,17 +264,17 @@ ifneq (,$(filter gtk gtk2,$(MOZ_WIDGET_T - cp $(srcdir)/mozicon16.xpm $(DIST)/branding/mozicon16.xpm - cp $(srcdir)/mozicon50.xpm $(DIST)/branding/mozicon50.xpm - endif - ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) - cp $(srcdir)/default.xpm $(DIST)/branding/default.xpm - endif - endif - --ifneq (,$(filter-out OS2 WINNT Darwin,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT Darwin BeOS Haiku,$(OS_ARCH))) - thunderbird:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.thunderbird|" \ - -e "s|%MREDIR%|$(mredir)|" \ - -e "s|%MOZ_APP_DISPLAYNAME%|$(MOZ_APP_DISPLAYNAME)|" > $@ - chmod +x $@ - - libs:: thunderbird -Index: mozilla/modules/libpr0n/decoders/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/libpr0n/decoders/Makefile.in,v -retrieving revision 1.13.18.2 -diff -u -8 -p -w -r1.13.18.2 Makefile.in ---- mozilla/modules/libpr0n/decoders/Makefile.in 17 Feb 2006 19:03:47 -0000 1.13.18.2 -+++ mozilla/modules/libpr0n/decoders/Makefile.in 8 Jul 2009 21:52:37 -0000 -@@ -47,17 +47,17 @@ ifdef MOZ_ENABLE_GNOMEUI - TOOL_DIRS = icon/gtk icon - endif - ifneq (,$(filter WINCE WINNT,$(OS_ARCH))) - DIRS = icon/win icon - endif - ifeq ($(OS_ARCH),OS2) - DIRS = icon/os2 icon - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - DIRS = icon/beos icon - endif - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - DIRS = icon/mac icon - endif - endif # icon - - DIRS += $(filter-out icon,$(MOZ_IMG_DECODERS)) -Index: mozilla/modules/libpr0n/decoders/icon/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/libpr0n/decoders/icon/Makefile.in,v -retrieving revision 1.17.8.6 -diff -u -8 -p -w -r1.17.8.6 Makefile.in ---- mozilla/modules/libpr0n/decoders/icon/Makefile.in 30 May 2006 15:46:21 -0000 1.17.8.6 -+++ mozilla/modules/libpr0n/decoders/icon/Makefile.in 8 Jul 2009 21:52:37 -0000 -@@ -77,17 +77,17 @@ endif - ifeq ($(OS_ARCH),OS2) - PLATFORM = os2 - endif - - ifeq ($(OS_ARCH),Darwin) - PLATFORM = mac - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PLATFORM = beos - endif - - REQUIRES = xpcom \ - string \ - gfx \ - imglib2 \ - necko \ -@@ -97,17 +97,17 @@ CPPSRCS = \ - nsIconURI.cpp \ - nsIconModule.cpp \ - nsIconProtocolHandler.cpp \ - $(NULL) - - ifdef MOZ_ENABLE_GNOMEUI - USE_ICON_DECODER = 1 - endif --ifeq (,$(filter-out Darwin OS2 BeOS,$(OS_ARCH))) -+ifeq (,$(filter-out Darwin OS2 BeOS Haiku,$(OS_ARCH))) - USE_ICON_DECODER = 1 - endif - - ifdef USE_ICON_DECODER - CPPSRCS += nsIconDecoder.cpp - DEFINES += -DUSE_ICON_DECODER - endif - -Index: mozilla/modules/libreg/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/libreg/src/Makefile.in,v -retrieving revision 1.39 -diff -u -8 -p -w -r1.39 Makefile.in ---- mozilla/modules/libreg/src/Makefile.in 18 Apr 2004 22:00:45 -0000 1.39 -+++ mozilla/modules/libreg/src/Makefile.in 8 Jul 2009 21:52:38 -0000 -@@ -61,17 +61,17 @@ FORCE_STATIC_LIB = 1 - - # Force use of PIC - FORCE_USE_PIC = 1 - - include $(topsrcdir)/config/config.mk - - DEFINES += -DUSE_BUFFERED_REGISTRY_IO - # Memory mapped files are not supported under QNX, Neutrino, HP-UX and BeOS --#ifeq (,$(filter BeOS HP-UX QNX,$(OS_ARCH))) -+#ifeq (,$(filter BeOS Haiku HP-UX QNX,$(OS_ARCH))) - #CSRCS += mmapio.c - #DEFINES += -DUSE_MMAP_REGISTRY_IO - #endif - - include $(topsrcdir)/config/rules.mk - - R_%.o: %.c - $(CC) $(OUTOPTION)$@ -c $(COMPILE_CFLAGS) -DSTANDALONE_REGISTRY $< -Index: mozilla/modules/plugin/base/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/plugin/base/src/Makefile.in,v -retrieving revision 1.104 -diff -u -8 -p -w -r1.104 Makefile.in ---- mozilla/modules/plugin/base/src/Makefile.in 8 Jun 2005 16:48:43 -0000 1.104 -+++ mozilla/modules/plugin/base/src/Makefile.in 8 Jul 2009 21:52:43 -0000 -@@ -91,17 +91,17 @@ CPPSRCS = \ - ns4xPluginInstance.cpp \ - nsPluginHostImpl.cpp \ - nsPluginModule.cpp \ - nsPluginInstancePeer.cpp \ - nsPluginDirServiceProvider.cpp \ - nsJSNPRuntime.cpp \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsPluginsDirBeOS.cpp - CPPSRCS += nsPluginNativeWindow.cpp - else - ifneq (,$(filter WINNT WINCE,$(OS_ARCH))) - CPPSRCS += nsPluginsDirWin.cpp - CPPSRCS += nsPluginNativeWindowWin.cpp - else - ifeq ($(MOZ_WIDGET_TOOLKIT),os2) -Index: mozilla/nsprpub/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/configure.in,v -retrieving revision 1.199.2.17 -diff -u -8 -p -w -r1.199.2.17 configure.in ---- mozilla/nsprpub/configure.in 31 Oct 2007 18:07:38 -0000 1.199.2.17 -+++ mozilla/nsprpub/configure.in 8 Jul 2009 21:52:54 -0000 -@@ -358,17 +358,17 @@ if test -z "$SKIP_PATH_CHECKS"; then - AC_PATH_PROG(WHOAMI, $WHOAMI whoami, echo not_whoami) - fi - - if test -n "$MOZ_DEBUG"; then - AC_DEFINE(DEBUG) - DEFINES="$DEFINES -UNDEBUG" - - case "${target_os}" in -- beos*) -+ beos*|haiku*) - DEFINES="$DEFINES -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*) - DEFINES="$DEFINES -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`" - ;; - *) - DEFINES="$DEFINES -DDEBUG_`$WHOAMI`" - ;; -@@ -787,17 +787,17 @@ case "$host" in - NSINSTALL=nsinstall - ;; - *-cygwin*|*-msvc*|*-mks*) - NSINSTALL='$(CYGWIN_WRAPPER) nsinstall' - if test `echo "${PATH}" | grep -c \;` = 0; then - CYGWIN_WRAPPER='sh $(topsrcdir)/build/cygwin-wrapper' - fi - ;; --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" - ;; - *os2*) - ;; - *) - HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" - ;; - esac -@@ -862,34 +862,50 @@ case "$target" in - OBJECT_MODE=64 - else - MDCPUCFG_H=_aix32.cfg - fi - PR_MD_CSRCS=aix.c - RESOLVE_LINK_SYMBOLS=1 - ;; - --*-beos*) -+*-beos*|*-haiku*) - AC_DEFINE(XP_BEOS) - AC_DEFINE(BeOS) - AC_DEFINE(BEOS) - AC_DEFINE(_POSIX_SOURCE) -- DSO_LDOPTS=-nostart -+ DSO_CFLAGS=-fPIC -+ DSO_LDOPTS='-nostart' -+ - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 -+ -+ _HAIKU_BUILD=0 -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ if test "$_HAIKU_BUILD" = 1; then -+ OS_LIBS="$OS_LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ fi -+ - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -- _DEBUG_FLAGS='-gdwarf-2 -O0' -+ AC_DEFINE(i586) -+ CPU_ARCH=i586 -+ _OPTIMIZE_FLAGS=-O3 -+ _DEBUG_FLAGS='-gdwarf-2 -O0 -fno-inline' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' -- AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) -+ AC_DEFINE(ppc) -+ CPU_ARCH=ppc - CC=mwcc - CCC=mwcc - LD=mwld - DSO_LDOPTS='-xms -export pragma -init _init_routine_ -term _term_routine_ -lroot -lnet /boot/develop/lib/ppc/glue-noinit.a /boot/develop/lib/ppc/init_term_dyn.o /boot/develop/lib/ppc/start_dyn.o' - _OPTIMIZE_FLAGS=-O2 - _DEBUG_FLAGS='-g -O0' - ;; - esac -@@ -2164,16 +2180,18 @@ dnl AC_CHECK_LIB(vms_jackets, main) - - - dnl We don't want anything to link with libdl even if it's present on OS X, - dnl since it's not used and not part of the default installation. - - case $target in - *-darwin*) - ;; -+*-beos*|*-haiku*) -+ ;; - *) - AC_CHECK_LIB(dl, dlopen, - AC_CHECK_HEADER(dlfcn.h, - OS_LIBS="-ldl $OS_LIBS")) - ;; - esac - - -@@ -2352,17 +2370,17 @@ AC_ARG_ENABLE(nspr-threads, - [ --enable-nspr-threads Build using classic nspr threads], - [ if test "$enableval" = "yes"; then - USE_PTHREADS= - USE_USER_PTHREADS= - USE_NSPR_THREADS=1 - fi]) - - case "$target" in --*-beos*) -+*-beos*|*-haiku*) - AC_ARG_WITH(bthreads, - [ --with-bthreads Use system bthreads library as thread subsystem - (BeOS only)], - [ if test "$withval" = "yes"; then - USE_BTHREADS=1 - USE_USER_PTHREADS= - USE_PTHREADS= - fi]) -Index: mozilla/nsprpub/build/autoconf/config.guess -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/build/autoconf/config.guess,v -retrieving revision 1.15 -diff -u -8 -p -w -r1.15 config.guess ---- mozilla/nsprpub/build/autoconf/config.guess 18 Apr 2003 19:20:18 -0000 1.15 -+++ mozilla/nsprpub/build/autoconf/config.guess 8 Jul 2009 21:52:57 -0000 -@@ -1,34 +1,37 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-08' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or - # (at your option) any later version. - # - # This program is distributed in the hope that it will be useful, but - # WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # -@@ -48,34 +51,34 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) -@@ -99,35 +102,36 @@ trap 'exit 1' 1 2 15 - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -@@ -152,16 +156,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -190,60 +195,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; -@@ -271,147 +258,163 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { -@@ -425,145 +428,150 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else - echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -@@ -615,31 +623,41 @@ EOF - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); -@@ -657,181 +675,224 @@ EOF - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -@@ -839,62 +900,78 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g -@@ -902,99 +979,113 @@ EOF - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -+ exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -@@ -1002,214 +1093,248 @@ EOF - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi -- exit 0 ;; -+ exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -- exit 0 ;; -+ exit ;; - paragon:*:*:*) - echo i860-intel-osf1 -- exit 0 ;; -+ exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ exit ;; -+ BeMac:Haiku:*:*) -+ echo powerpc-apple-haiku -+ exit ;; -+ BePC:Haiku:*:*) -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c </dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - -Index: mozilla/nsprpub/build/autoconf/config.sub -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/build/autoconf/config.sub,v -retrieving revision 1.16 -diff -u -8 -p -w -r1.16 config.sub ---- mozilla/nsprpub/build/autoconf/config.sub 18 Apr 2003 19:20:18 -0000 1.16 -+++ mozilla/nsprpub/build/autoconf/config.sub 8 Jul 2009 21:52:59 -0000 -@@ -1,14 +1,15 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-16' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or -@@ -16,24 +17,25 @@ timestamp='2003-02-22' - # - # This program is distributed in the hope that it will be useful, - # but WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - # GNU General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -@@ -65,46 +67,46 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 -@@ -113,17 +115,19 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi -@@ -139,17 +143,17 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) -@@ -164,32 +168,40 @@ case $os in - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) -@@ -219,171 +231,196 @@ case $os in - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) -@@ -405,16 +442,24 @@ case $basic_machine in - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; -@@ -433,22 +478,37 @@ case $basic_machine in - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec -@@ -461,16 +521,20 @@ case $basic_machine in - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; -@@ -611,66 +675,71 @@ case $basic_machine in - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; -@@ -729,30 +798,29 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff -+ ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k -@@ -760,43 +828,63 @@ case $basic_machine in - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -@@ -819,16 +907,20 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) -@@ -845,23 +937,37 @@ case $basic_machine in - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; -@@ -926,45 +1032,49 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; -@@ -998,16 +1108,20 @@ case $basic_machine in - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) -@@ -1028,39 +1142,39 @@ case $basic_machine in - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; -@@ -1116,40 +1230,40 @@ case $os in - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1157,34 +1271,40 @@ case $os in - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1196,16 +1316,19 @@ case $os in - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova -@@ -1218,16 +1341,19 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 -@@ -1254,16 +1380,19 @@ case $os in - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1276,25 +1405,34 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) -@@ -1310,16 +1448,19 @@ case $basic_machine in - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff -@@ -1328,19 +1469,25 @@ case $basic_machine in - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf -@@ -1463,19 +1610,25 @@ case $basic_machine in - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi -@@ -1490,16 +1643,16 @@ case $basic_machine in - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: -Index: mozilla/nsprpub/lib/ds/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/lib/ds/Makefile.in,v -retrieving revision 1.35.2.1 -diff -u -8 -p -w -r1.35.2.1 Makefile.in ---- mozilla/nsprpub/lib/ds/Makefile.in 19 Oct 2006 00:39:28 -0000 1.35.2.1 -+++ mozilla/nsprpub/lib/ds/Makefile.in 8 Jul 2009 21:52:59 -0000 -@@ -180,18 +180,22 @@ endif - export:: $(TARGETS) - $(INSTALL) -m 444 $(HEADERS) $(dist_includedir) - $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) - ifdef SHARED_LIBRARY - ifeq ($(OS_ARCH),HP-UX) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) - endif - endif -+endif - ifeq ($(MOZ_BITS),16) - $(INSTALL) -m 444 $(HEADERS) $(MOZ_INCL) - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin - endif - - -Index: mozilla/nsprpub/lib/libc/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/lib/libc/src/Makefile.in,v -retrieving revision 1.31.2.1 -diff -u -8 -p -w -r1.31.2.1 Makefile.in ---- mozilla/nsprpub/lib/libc/src/Makefile.in 19 Oct 2006 00:39:28 -0000 1.31.2.1 -+++ mozilla/nsprpub/lib/libc/src/Makefile.in 8 Jul 2009 21:52:59 -0000 -@@ -182,16 +182,20 @@ endif - - export:: $(TARGETS) - $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) - ifdef SHARED_LIBRARY - ifeq ($(OS_ARCH),HP-UX) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) - endif - endif -+endif - ifeq ($(MOZ_BITS),16) - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin - endif - -Index: mozilla/nsprpub/lib/prstreams/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/lib/prstreams/Makefile.in,v -retrieving revision 1.21.2.1 -diff -u -8 -p -w -r1.21.2.1 Makefile.in ---- mozilla/nsprpub/lib/prstreams/Makefile.in 19 Oct 2006 00:39:28 -0000 1.21.2.1 -+++ mozilla/nsprpub/lib/prstreams/Makefile.in 8 Jul 2009 21:53:00 -0000 -@@ -64,17 +64,17 @@ ifeq ($(OS_ARCH),SunOS) - endif - - ifeq ($(OS_ARCH), IRIX) - ifneq ($(OS_RELEASE),5.3) - CCC_ONLY_FLAGS += -exceptions - endif - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CFLAGS += -frtti -fexceptions - endif - - INCLUDES = -I$(dist_includedir) - - HEADERS = $(wildcard $(srcdir)/*.h) - - CSRCS = \ -@@ -113,17 +113,17 @@ else - MKSHLIB = makeC++SharedLib_r -p 0 - endif - OS_LIBS += -ldl - endif - endif - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS = -lstdc++.r4 - endif - - ifeq ($(OS_ARCH), UNIXWARE) - OS_LIBS += -lC - endif - - EXTRA_LIBS = $(LIBNSPR) -Index: mozilla/nsprpub/pr/include/prio.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/prio.h,v -retrieving revision 3.40 -diff -u -8 -p -w -r3.40 prio.h ---- mozilla/nsprpub/pr/include/prio.h 25 Apr 2004 15:00:47 -0000 3.40 -+++ mozilla/nsprpub/pr/include/prio.h 8 Jul 2009 21:53:05 -0000 -@@ -169,38 +169,41 @@ struct PRIPv6Addr { - #define pr_s6_addr32 _S6_un._S6_u32 - #define pr_s6_addr64 _S6_un._S6_u64 - - typedef struct PRIPv6Addr PRIPv6Addr; - - union PRNetAddr { - struct { - PRUint16 family; /* address family (0x00ff maskable) */ --#ifdef XP_BEOS -- char data[10]; /* Be has a smaller structure */ --#else -+#ifndef XP_BEOS - char data[14]; /* raw address data */ -+#else -+ char data[30]; - #endif - } raw; - struct { - PRUint16 family; /* address family (AF_INET) */ - PRUint16 port; /* port number */ - PRUint32 ip; /* The actual 32 bits of address */ --#ifdef XP_BEOS -- char pad[4]; /* Be has a smaller structure */ --#else -+#ifndef XP_BEOS - char pad[8]; -+#else -+ char pad[24]; - #endif - } inet; - struct { - PRUint16 family; /* address family (AF_INET6) */ - PRUint16 port; /* port number */ - PRUint32 flowinfo; /* routing information */ - PRIPv6Addr ip; /* the actual 128 bits of address */ - PRUint32 scope_id; /* set of interfaces for a scope */ -+#ifdef XP_BEOS -+ char pad[4]; -+#endif - } ipv6; - #if defined(XP_UNIX) || defined(XP_OS2_EMX) - struct { /* Unix domain socket address */ - PRUint16 family; /* address family (AF_UNIX) */ - #ifdef XP_OS2 - char path[108]; /* null-terminated pathname */ - /* bind fails if size is not 108. */ - #else -Index: mozilla/nsprpub/pr/include/prtypes.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/prtypes.h,v -retrieving revision 3.30.2.2 -diff -u -8 -p -w -r3.30.2.2 prtypes.h ---- mozilla/nsprpub/pr/include/prtypes.h 5 Apr 2006 21:51:21 -0000 3.30.2.2 -+++ mozilla/nsprpub/pr/include/prtypes.h 8 Jul 2009 21:53:07 -0000 -@@ -93,29 +93,48 @@ - #define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type - - #define PR_CALLBACK - #define PR_CALLBACK_DECL - #define PR_STATIC_CALLBACK(__x) static __x - - #elif defined(XP_BEOS) - -+/* GCC 3.3 and later support the visibility attribute. */ -+#if (__GNUC__ >= 4) || \ -+ (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) -+#define PR_VISIBILITY_DEFAULT __attribute__((visibility("default"))) -+#define PR_EXPORT(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_EXPORT_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPORT(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPORT_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+ -+#define PR_EXTERN(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPLEMENT(__type) PR_VISIBILITY_DEFAULT __type -+#define PR_EXTERN_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPLEMENT_DATA(__type) PR_VISIBILITY_DEFAULT __type -+#define PR_CALLBACK -+#define PR_CALLBACK_DECL -+#define PR_STATIC_CALLBACK(__x) static __x -+ -+#else - #define PR_EXPORT(__type) extern __declspec(dllexport) __type - #define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type - #define PR_IMPORT(__type) extern __declspec(dllexport) __type - #define PR_IMPORT_DATA(__type) extern __declspec(dllexport) __type - - #define PR_EXTERN(__type) extern __declspec(dllexport) __type - #define PR_IMPLEMENT(__type) __declspec(dllexport) __type - #define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type - #define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type - - #define PR_CALLBACK - #define PR_CALLBACK_DECL - #define PR_STATIC_CALLBACK(__x) static __x -+#endif - - #elif defined(WIN16) - - #define PR_CALLBACK_DECL __cdecl - - #if defined(_WINDLL) - #define PR_EXPORT(__type) extern __type _cdecl _export _loadds - #define PR_IMPORT(__type) extern __type _cdecl _export _loadds -Index: mozilla/nsprpub/pr/include/md/_beos.cfg -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/md/_beos.cfg,v -retrieving revision 3.5.214.1 -diff -u -8 -p -w -r3.5.214.1 _beos.cfg ---- mozilla/nsprpub/pr/include/md/_beos.cfg 5 Apr 2006 22:00:45 -0000 3.5.214.1 -+++ mozilla/nsprpub/pr/include/md/_beos.cfg 8 Jul 2009 21:53:07 -0000 -@@ -15,16 +15,17 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your -@@ -35,33 +36,38 @@ - * - * ***** END LICENSE BLOCK ***** */ - - #ifndef nspr_cpucfg___ - #define nspr_cpucfg___ - - #ifndef XP_BEOS - #define XP_BEOS --#undef XP_UNIX - #endif - - #ifndef BEOS - #define BEOS - #endif - - #define PR_AF_INET6 5 /* same as AF_INET6 */ - - #ifdef __powerpc__ - #undef IS_LITTLE_ENDIAN - #define IS_BIG_ENDIAN 1 - #else - #define IS_LITTLE_ENDIAN 1 - #undef IS_BIG_ENDIAN - #endif - -+/* -+ * Fixme: Should be done according to arch -+ * Currently only x86/ia64. -+ */ -+#define PR_ALIGN_OF_WORD 4 -+ - #define PR_BYTES_PER_BYTE 1 - #define PR_BYTES_PER_SHORT 2 - #define PR_BYTES_PER_INT 4 - #define PR_BYTES_PER_INT64 8 - #define PR_BYTES_PER_LONG 4 - #define PR_BYTES_PER_FLOAT 4 - #define PR_BYTES_PER_DOUBLE 8 - #define PR_BYTES_PER_WORD 4 -Index: mozilla/nsprpub/pr/include/md/_beos.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/md/_beos.h,v -retrieving revision 3.23 -diff -u -8 -p -w -r3.23 _beos.h ---- mozilla/nsprpub/pr/include/md/_beos.h 17 Jan 2005 22:00:53 -0000 3.23 -+++ mozilla/nsprpub/pr/include/md/_beos.h 8 Jul 2009 21:53:08 -0000 -@@ -15,16 +15,17 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your -@@ -33,27 +34,26 @@ - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #ifndef nspr_beos_defs_h___ - #define nspr_beos_defs_h___ - --#include "prtypes.h" --#include "prio.h" --#include "prthread.h" --#include "prproces.h" --#include "prmem.h" --#include "obsolete/prsem.h" - #include -- --#include --#include - #include -+#include -+ -+/* -+ * Hack for Cross compile -+ */ -+#define FD_SETSIZE 1024 -+ -+#undef bool - - /* - * Internal configuration macros - */ - - #ifdef BONE_VERSION - #define _PR_HAVE_SOCKADDR_LEN - #endif -@@ -62,104 +62,66 @@ - #define _PR_SI_SYSNAME "BEOS" - #ifdef __powerpc__ - #define _PR_SI_ARCHITECTURE "ppc" - #else - #define _PR_SI_ARCHITECTURE "x86" - #endif - #define PR_DLL_SUFFIX ".so" - --#define _PR_VMBASE 0x30000000 --#define _PR_STACK_VMBASE 0x50000000 - #define _MD_DEFAULT_STACK_SIZE 65536L --#define _MD_MMAP_FLAGS MAP_PRIVATE - - #undef HAVE_STACK_GROWING_UP - #define HAVE_DLL --#define _PR_NO_CLOCK_TIMER - - /* - * The Atomic operations - */ - - #define _PR_HAVE_ATOMIC_OPS -+#ifdef __powerpc__ - #define _MD_INIT_ATOMIC _MD_AtomicInit -+#else -+#define _MD_INIT_ATOMIC() -+#endif - #define _MD_ATOMIC_INCREMENT _MD_AtomicIncrement - #define _MD_ATOMIC_ADD _MD_AtomicAdd - #define _MD_ATOMIC_DECREMENT _MD_AtomicDecrement - #define _MD_ATOMIC_SET _MD_AtomicSet - -+/* Makes sure to don't create cvar when creating sem */ - #define HAVE_CVAR_BUILT_ON_SEM -+ -+/* Not sure this is needed, but no harm. */ - #define _PR_GLOBAL_THREADS_ONLY -+ - #define _PR_BTHREADS --#define _PR_NEED_FAKE_POLL --#define _PR_HAVE_PEEK_BUFFER --#define _PR_PEEK_BUFFER_MAX (16 * 1024) --#define _PR_FD_NEED_EMULATE_MSG_PEEK(fd) 1 --#define _PR_CONNECT_DOES_NOT_BIND -+ - #define _PR_HAVE_O_APPEND - --/* Define threading functions and objects as native BeOS */ -+/* Define threading functions and objects as native BeOS -+ Used by bthreads. */ -+ - struct _MDThread { - thread_id tid; /* BeOS thread handle */ - sem_id joinSem; /* sems used to synchronzie joining */ - PRBool is_joining; /* TRUE if someone is currently waiting to - join this thread */ - }; - --struct _MDThreadStack { -- PRInt8 notused; --}; -- --/* -- * Lock and Semaphore related definitions -- */ -- --struct _MDLock { -- sem_id semaphoreID; -- int32 benaphoreCount; --}; -- --struct _MDCVar { -- sem_id sem1; -- sem_id sem2; -- int16 count; --}; -- --struct _MDSemaphore { -- sem_id sid; --}; -- --/* --** CPU-related definitions --*/ --struct _MDCPU { -- int8 unused; --}; -- - /* - ** Process-related definitions - */ - struct _MDProcess { - pid_t pid; - }; - --struct _MDSegment { -- PRInt8 notused; --}; -- - /* - ** File- and directory-related definitions - */ -- --#ifndef BONE_VERSION --#define BE_SOCK_SHUTDOWN_READ 0x01 --#define BE_SOCK_SHUTDOWN_WRITE 0x02 --#endif -- - struct _MDFileDesc { - PRInt32 osfd; - PRInt32 sock_state; - PRBool accepted_socket; - PRNetAddr peer_addr; - #ifndef BONE_VERSION - PRBool connectValueValid; - int connectReturnValue; -@@ -173,441 +135,114 @@ struct _MDDir { - - #define PR_DIRECTORY_SEPARATOR '/' - #define PR_DIRECTORY_SEPARATOR_STR "/" - #define PR_PATH_SEPARATOR ':' - #define PR_PATH_SEPARATOR_STR ":" - - #define GETTIMEOFDAY(tp) gettimeofday((tp), NULL) - --/* --- Memory-mapped files stuff --- not implemented on BeOS */ -- --struct _MDFileMap { -- PRInt8 unused; --}; - - /* - * Network related definitions. - */ - - #ifndef BONE_VERSION -+#define BE_SOCK_SHUTDOWN_READ 0x01 -+#define BE_SOCK_SHUTDOWN_WRITE 0x02 -+ - #define IPPROTO_IP 0 - #define AF_UNIX 2 - #define TCP_NODELAY SO_NONBLOCK - #define SO_LINGER -1 - #define SO_ERROR 4 --#endif -- --#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 - --#ifndef BONE_VERSION - /* these aren't actually used. if they are, we're screwed */ - struct protoent { - char *p_name; /* official protocol name */ - char **p_aliases; /* alias list */ - int p_proto; /* protocol # */ - }; - - struct protoent* getprotobyname(const char* name); - struct protoent* getprotobynumber(int number); - #endif - -+/* Used by bnet.c */ -+#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 -+ - /* - * malloc() related definitions. -+ * Avoids prmalloc.c's and prmem's code - */ -- - #undef _PR_OVERRIDE_MALLOC - - /* Miscellaneous */ - - #define _MD_ERRNO() (errno) - --#define _MD_CLEANUP_BEFORE_EXIT _MD_cleanup_before_exit --#define _MD_EXIT _MD_exit -+#define _MD_CLEANUP_BEFORE_EXIT() -+#define _MD_EXIT exit - - #define _MD_GET_ENV getenv - #define _MD_PUT_ENV putenv - --#define _MD_EARLY_INIT _MD_early_init --#define _MD_FINAL_INIT _MD_final_init -- --/* CPU Stuff */ -- --#define _MD_INIT_CPUS _MD_init_cpus --#define _MD_WAKEUP_CPUS _MD_wakeup_cpus --#define _MD_START_INTERRUPTS _MD_start_interrupts --#define _MD_STOP_INTERRUPTS _MD_stop_interrupts --#define _MD_DISABLE_CLOCK_INTERRUPTS _MD_disable_clock_interrupts --#define _MD_BLOCK_CLOCK_INTERRUPTS _MD_block_clock_interrupts --#define _MD_UNBLOCK_CLOCK_INTERRUPTS _MD_unblock_clock_interrupts --#define _MD_CLOCK_INTERRUPT _MD_clock_interrupt --#define _MD_INIT_STACK _MD_init_stack --#define _MD_CLEAR_STACK _MD_clear_stack --// #define _MD_GET_INTSOFF _MD_get_intsoff --// #define _MD_SET_INTSOFF _MD_set_intsoff --#define _MD_CURRENT_CPU _MD_current_cpu --#define _MD_SET_CURRENT_CPU _MD_set_current_cpu --#define _MD_INIT_RUNNING_CPU _MD_init_running_cpu --#define _MD_PAUSE_CPU _MD_pause_cpu -+#define _MD_EARLY_INIT() -+#ifdef BONE_VERSION -+#define _MD_FINAL_INIT() -+#else -+#define _MD_FINAL_INIT _MD_final_init_netserver -+#endif - - /* Thread stuff */ - - #define _MD_CURRENT_THREAD() PR_GetCurrentThread() --// #define _MD_GET_ATTACHED_THREAD _MD_get_attached_thread --#define _MD_LAST_THREAD _MD_last_thread --#define _MD_SET_CURRENT_THREAD _MD_set_current_THREAD --#define _MD_SET_LAST_THREAD _MD_set_last_thread --#define _MD_INIT_THREAD _MD_init_thread --#define _MD_EXIT_THREAD _MD_exit_thread --#define _MD_INIT_ATTACHED_THREAD _MD_init_attached_thread -- --#define _MD_SUSPEND_THREAD _MD_suspend_thread --#define _MD_RESUME_THREAD _MD_resume_thread --#define _MD_SUSPEND_CPU _MD_suspend_cpu --#define _MD_RESUME_CPU _MD_resume_cpu --#define _MD_BEGIN_SUSPEND_ALL _MD_begin_suspend_all --#define _MD_END_SUSPEND_ALL _MD_end_suspend_all --#define _MD_BEGIN_RESUME_ALL _MD_begin_resume_all --#define _MD_END_RESUME_ALL _MD_end_resume_all -- --#define _MD_GET_SP _MD_get_sp -- --#define _MD_CLEAN_THREAD _MD_clean_thread --#define _MD_CREATE_PRIMORDIAL_USER_THREAD _MD_create_primordial_user_thread --#define _MD_CREATE_USER_THREAD _MD_create_user_thread --#define _MD_INIT_PRIMORDIAL_THREAD _MD_init_primordial_thread --#define _MD_CREATE_THREAD _MD_create_thread --#define _MD_YIELD _MD_yield --#define _MD_SET_PRIORITY _MD_set_priority -- --#define _MD_SUSPENDALL _MD_suspendall --#define _MD_RESUMEALL _MD_resumeall -- --#define _MD_SWITCH_CONTEXT _MD_switch_context --#define _MD_RESTORE_CONTEXT _MD_restore_context -- --#define _MD_WAIT _MD_wait --#define _MD_WAKEUP_WAITER _MD_wakeup_waiter -- --#define _MD_SETTHREADAFFINITYMASK _MD_setthreadaffinitymask --#define _MD_GETTHREADAFFINITYMASK _MD_getthreadaffinitymask -- --/* Thread Synchronization */ -- --#define _MD_INIT_LOCKS _MD_init_locks --#define _MD_NEW_LOCK _MD_new_lock --#define _MD_FREE_LOCK _MD_free_lock --#define _MD_LOCK _MD_lock --#define _MD_TEST_AND_LOCK _MD_test_and_lock --#define _MD_UNLOCK _MD_unlock --#define _MD_IOQ_LOCK _MD_ioq_lock --#define _MD_IOQ_UNLOCK _MD_ioq_unlock --#define _MD_NEW_SEM _MD_new_sem --#define _MD_DESTROY_SEM _MD_destroy_sem --#define _MD_TIMED_WAIT_SEM _MD_timed_wait_sem --#define _MD_WAIT_SEM _MD_wait_sem --#define _MD_POST_SEM _MD_post_sem --// #define _MD_NEW_CV _MD_new_cv --// #define _MD_FREE_CV _MD_free_cv --// #define _MD_WAIT_CV _MD_wait_cv --// #define _MD_NOTIFY_CV _MD_notify_cv --// #define _MD_NOTIFYALL_CV _MD_notifyall_cv -+ - - /* File I/O */ - --/* don't need any I/O initializations */ --#define _MD_INIT_IO() --#define _MD_INIT_FILEDESC(fd) -- --#define _MD_OPEN_DIR _MD_open_dir --#define _MD_READ_DIR _MD_read_dir --#define _MD_CLOSE_DIR _MD_close_dir --#define _MD_MAKE_NONBLOCK _MD_make_nonblock --#define _MD_SET_FD_INHERITABLE _MD_set_fd_inheritable --#define _MD_INIT_FD_INHERITABLE _MD_init_fd_inheritable --#define _MD_QUERY_FD_INHERITABLE _MD_query_fd_inheritable --#define _MD_OPEN _MD_open --#define _MD_OPEN_FILE _MD_open --#define _MD_CLOSE_FILE _MD_close_file --#define _MD_READ _MD_read --#define _MD_WRITE _MD_write --#define _MD_WRITEV _MD_writev -+#define _PR_MD_WRITE -+ -+/* -+These are defined in primpl.h so that they are avail for all, but we -+have no calls, and pthreads doesn't either. - #define _MD_LSEEK _MD_lseek - #define _MD_LSEEK64 _MD_lseek64 --#define _MD_FSYNC _MD_fsync --#define _MD_DELETE _MD_delete -+ - #define _MD_GETFILEINFO _MD_getfileinfo - #define _MD_GETFILEINFO64 _MD_getfileinfo64 - #define _MD_GETOPENFILEINFO _MD_getopenfileinfo - #define _MD_GETOPENFILEINFO64 _MD_getopenfileinfo64 --#define _MD_RENAME _MD_rename --#define _MD_ACCESS _MD_access --#define _MD_STAT stat --#define _MD_MKDIR _MD_mkdir --#define _MD_MAKE_DIR _MD_mkdir --#define _MD_RMDIR _MD_rmdir --#define _MD_PR_POLL _MD_pr_poll -+*/ - - /* Network I/O */ - --#define _MD_CLOSE_SOCKET _MD_close_socket --#define _MD_CONNECT _MD_connect --#define _MD_ACCEPT _MD_accept --#define _MD_BIND _MD_bind --#define _MD_LISTEN _MD_listen --#define _MD_SHUTDOWN _MD_shutdown --#define _MD_RECV _MD_recv --#define _MD_SEND _MD_send --#define _MD_ACCEPT_READ _MD_accept_read --#define _MD_GETSOCKNAME _MD_getsockname --#define _MD_GETPEERNAME _MD_getpeername --#define _MD_GETSOCKOPT _MD_getsockopt --#define _MD_SETSOCKOPT _MD_setsockopt --#define _MD_RECVFROM _MD_recvfrom --#define _MD_SENDTO _MD_sendto --#define _MD_SOCKETPAIR _MD_socketpair --#define _MD_SOCKET _MD_socket --#define _MD_SOCKETAVAILABLE _MD_socketavailable --#define _MD_PIPEAVAILABLE _MD_socketavailable -- - #define _MD_GET_SOCKET_ERROR() (errno) - #define _MD_GETHOSTNAME _MD_gethostname - --#define _MD_SELECT select -- - /* Process management */ - - #define _MD_CREATE_PROCESS _MD_create_process - #define _MD_DETACH_PROCESS _MD_detach_process - #define _MD_WAIT_PROCESS _MD_wait_process - #define _MD_KILL_PROCESS _MD_kill_process - --/* Atomic data operations */ -- --// #define _MD_INIT_ATOMIC _MD_init_atomic --// #define _MD_ATOMIC_INCREMENT _MD_atomic_increment --// #define _MD_ATOMIC_DECREMENT _MD_atomic_decrement --// #define _MD_ATOMIC_SET _MD_atomic_set -- --/* memory management */ -- --#define _MD_INIT_SEGS _MD_init_segs --#define _MD_ALLOC_SEGMENT _MD_alloc_segment --#define _MD_FREE_SEGMENT _MD_free_segment -- - /* Memory mapped file I/O */ - - #define _MD_CREATE_FILE_MAP _MD_create_file_map - #define _MD_GET_MEM_MAP_ALIGNMENT _MD_get_mem_map_alignment - #define _MD_MEM_MAP _MD_mem_map - #define _MD_MEM_UNMAP _MD_mem_unmap - #define _MD_CLOSE_FILE_MAP _MD_close_file_map - - /* Time related */ - --#define _MD_NOW _MD_now --#define _MD_INTERVAL_INIT _MD_interval_init -+#define _MD_INTERVAL_INIT() - #define _MD_GET_INTERVAL _MD_get_interval - #define _MD_INTERVAL_PER_SEC _MD_interval_per_sec - - /* File locking */ - - #define _MD_LOCKFILE _MD_lockfile - #define _MD_TLOCKFILE _MD_tlockfile - #define _MD_UNLOCKFILE _MD_unlockfile - --/** -- * Prototypes for machine dependent function implementations. (Too bad -- * NSPR's MD system blows so much that we have to reiterate every stinking -- * thing we implement here in our MD header file.) -- */ -- --/* Miscellaneous */ -- --NSPR_API(void) _MD_cleanup_before_exit(void); --NSPR_API(void) _MD_exit(PRIntn status); -- --NSPR_API(char*) _MD_get_env(const char *name); --NSPR_API(PRIntn) _MD_put_env(const char *name); -- --NSPR_API(void) _MD_early_init(void); --NSPR_API(void) _MD_final_init(void); -- --/* CPU Stuff */ -- --NSPR_API(void) _MD_init_cpus(); --NSPR_API(void) _MD_wakeup_cpus(); --NSPR_API(void) _MD_start_interrupts(void); --NSPR_API(void) _MD_stop_interrupts(void); --NSPR_API(void) _MD_disable_clock_interrupts(void); --NSPR_API(void) _MD_block_clock_interrupts(void); --NSPR_API(void) _MD_unblock_clock_interrupts(void); --NSPR_API(void) _MD_clock_interrupt(void); --// NSPR_API(void) _MD_init_stack(PRThreadStack *ts, PRIntn redzone); --// NSPR_API(void) _MD_clear_stack(PRThreadStack* ts); --// NSPR_API(PRInt32) _MD_get_intsoff(void); --// NSPR_API(void) _MD_set_intsoff(PRInt32 _val); --// NSPR_API(_PRCPU*) _MD_current_cpu(void); --// NSPR_API(void) _MD_set_current_cpu(_PRCPU *cpu); --// NSPR_API(void) _MD_init_running_cpu(_PRCPU *cpu); --NSPR_API(PRInt32) _MD_pause_cpu(PRIntervalTime timeout); -- --/* Thread stuff */ -- --// NSPR_API(PRThread*) _MD_current_thread(void); --NSPR_API(PRThread*) _MD_get_attached_thread(void); --NSPR_API(PRThread*) _MD_last_thread(void); --NSPR_API(void) _MD_set_current_thread(PRThread *thread); --NSPR_API(void) _MD_set_last_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_init_thread(PRThread *thread); --NSPR_API(void) _MD_exit_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_init_attached_thread(PRThread *thread); -- --NSPR_API(void) _MD_suspend_thread(PRThread *thread); --NSPR_API(void) _MD_resume_thread(PRThread *thread); --// NSPR_API(void) _MD_suspend_cpu(_PRCPU *cpu); --// NSPR_API(void) _MD_resume_cpu(_PRCPU *cpu); --NSPR_API(void) _MD_begin_suspend_all(void); --NSPR_API(void) _MD_end_suspend_all(void); --NSPR_API(void) _MD_begin_resume_all(void); --NSPR_API(void) _MD_end_resume_all(void); -- --NSPR_API(void *) _MD_get_sp(PRThread *thread); -- --NSPR_API(void) _MD_clean_thread(PRThread *thread); --NSPR_API(void) _MD_create_primordial_user_thread(PRThread *); --NSPR_API(PRThread*) _MD_create_user_thread(PRUint32 stacksize, void (*start)(void *), void *arg); --NSPR_API(void) _MD_init_primordial_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_create_thread(PRThread *thread, void (*start)(void *), PRThreadPriority priority, PRThreadScope scope, PRThreadState state, PRUint32 stackSize); --NSPR_API(void) _MD_yield(void); --NSPR_API(void) _MD_set_priority(struct _MDThread *md, PRThreadPriority newPri); -- --NSPR_API(void) _MD_suspendall(void); --NSPR_API(void) _MD_resumeall(void); -- --NSPR_API(void) _MD_init_context(PRThread *thread, char *top, void (*start) (void), PRBool *status); --NSPR_API(void) _MD_switch_context(PRThread *thread); --NSPR_API(void) _MD_restore_context(PRThread *thread); -- --NSPR_API(PRStatus) _MD_wait(PRThread *, PRIntervalTime timeout); --NSPR_API(PRStatus) _MD_wakeup_waiter(PRThread *); -- --NSPR_API(PRInt32) _MD_setthreadaffinitymask(PRThread *thread, PRUint32 mask ); --NSPR_API(PRInt32) _MD_getthreadaffinitymask(PRThread *thread, PRUint32 *mask); -- --/* Thread Synchronization */ -- --NSPR_API(void) _MD_init_locks(void); --NSPR_API(PRStatus) _MD_new_lock(struct _MDLock *md); --NSPR_API(void) _MD_free_lock(struct _MDLock *md); --NSPR_API(void) _MD_lock(struct _MDLock *md); --NSPR_API(PRIntn) _MD_test_and_lock(struct _MDLock *md); --NSPR_API(void) _MD_unlock(struct _MDLock *md); --NSPR_API(void) _MD_ioq_lock(void); --NSPR_API(void) _MD_ioq_unlock(void); --NSPR_API(void) _MD_new_sem(struct _MDSemaphore *md, PRUintn value); --NSPR_API(void) _MD_destroy_sem(struct _MDSemaphore *md); --NSPR_API(PRStatus) _MD_timed_wait_sem(struct _MDSemaphore *md, PRIntervalTime timeout); --NSPR_API(PRStatus) _MD_wait_sem(struct _MDSemaphore *md); --NSPR_API(void) _MD_post_sem(struct _MDSemaphore *md); --// NSPR_API(PRInt32) _MD_new_cv(struct _MDCVar *md); --// NSPR_API(void) _MD_free_cv(struct _MDCVar *md); --// NSPR_API(void) _MD_wait_cv(struct _MDCVar *mdCVar, struct _MDLock *mdLock, PRIntervalTime timeout); --// NSPR_API(void) _MD_notify_cv(struct _MDCVar *md, struct _MDLock *lock); --// NSPR_API(void) _MD_notifyall_cv(struct _MDCVar *md, struct _MDLock *lock); -- --/* File I/O */ -- --// NSPR_API(void) _MD_init_io(void); --NSPR_API(PRStatus) _MD_open_dir(struct _MDDir *md,const char *name); --NSPR_API(char *) _MD_read_dir(struct _MDDir *md, PRIntn flags); --NSPR_API(PRInt32) _MD_close_dir(struct _MDDir *md); --NSPR_API(void) _MD_make_nonblock(PRFileDesc *fd); --NSPR_API(void) _MD_init_fd_inheritable(PRFileDesc *fd, PRBool imported); --NSPR_API(void) _MD_query_fd_inheritable(PRFileDesc *fd); --NSPR_API(PRInt32) _MD_open(const char *name, PRIntn osflags, PRIntn mode); --NSPR_API(PRInt32) _MD_close_file(PRInt32 osfd); --NSPR_API(PRInt32) _MD_read(PRFileDesc *fd, void *buf, PRInt32 amount); --NSPR_API(PRInt32) _MD_write(PRFileDesc *fd, const void *buf, PRInt32 amount); --NSPR_API(PRInt32) _MD_writev(PRFileDesc *fd, const PRIOVec *iov, PRInt32 iov_size, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_lseek(PRFileDesc *fd, PRInt32 offset, int whence); --NSPR_API(PRInt64) _MD_lseek64(PRFileDesc *fd, PRInt64 offset, int whence); --NSPR_API(PRInt32) _MD_fsync(PRFileDesc *fd); --NSPR_API(PRInt32) _MD_delete(const char *name); --NSPR_API(PRInt32) _MD_getfileinfo(const char *fn, PRFileInfo *info); --NSPR_API(PRInt32) _MD_getfileinfo64(const char *fn, PRFileInfo64 *info); --NSPR_API(PRInt32) _MD_getopenfileinfo(const PRFileDesc *fd, PRFileInfo *info); --NSPR_API(PRInt32) _MD_getopenfileinfo64(const PRFileDesc *fd, PRFileInfo64 *info); --NSPR_API(PRInt32) _MD_rename(const char *from, const char *to); --NSPR_API(PRInt32) _MD_access(const char *name, PRIntn how); --NSPR_API(PRInt32) _MD_stat(const char *name, struct stat *buf); --NSPR_API(PRInt32) _MD_mkdir(const char *name, PRIntn mode); --NSPR_API(PRInt32) _MD_rmdir(const char *name); --NSPR_API(PRInt32) _MD_pr_poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout); -- --/* Network I/O */ --NSPR_API(PRInt32) _MD_close_socket(PRInt32 osfd); --NSPR_API(PRInt32) _MD_connect(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_bind(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen); --NSPR_API(PRInt32) _MD_listen(PRFileDesc *fd, PRIntn backlog); --NSPR_API(PRInt32) _MD_shutdown(PRFileDesc *fd, PRIntn how); --NSPR_API(PRInt32) _MD_recv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_send(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_accept_read(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime timeout); --// NSPR_API(PRInt32) _MD_fast_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout, PRBool fast, _PR_AcceptTimeoutCallback callback, void *callbackArg); --// NSPR_API(PRInt32) _MD_fast_accept_read(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime timeout, PRBool fast, _PR_AcceptTimeoutCallback callback, void *callbackArg); --// NSPR_API(void) _MD_update_accept_context(PRInt32 s, PRInt32 ls); --NSPR_API(PRStatus) _MD_getsockname(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen); --NSPR_API(PRStatus) _MD_getpeername(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen); --NSPR_API(PRStatus) _MD_getsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, char* optval, PRInt32* optlen); --NSPR_API(PRStatus) _MD_setsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, const char* optval, PRInt32 optlen); --NSPR_API(PRInt32) _MD_recvfrom(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_sendto(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_socketpair(int af, int type, int flags, PRInt32 *osfd); --NSPR_API(PRInt32) _MD_socket(int af, int type, int flags); --NSPR_API(PRInt32) _MD_socketavailable(PRFileDesc *fd); -- --// NSPR_API(PRInt32) _MD_get_socket_error(void); --NSPR_API(PRStatus) _MD_gethostname(char *name, PRUint32 namelen); -- --/* Process management */ -- --NSPR_API(PRProcess *) _MD_create_process(const char *path, char *const *argv, char *const *envp, const PRProcessAttr *attr); --NSPR_API(PRStatus) _MD_detach_process(PRProcess *process); --NSPR_API(PRStatus) _MD_wait_process(PRProcess *process, PRInt32 *exitCode); --NSPR_API(PRStatus) _MD_kill_process(PRProcess *process); -- --/* Atomic data operations */ -- --// NSPR_API(void) _MD_init_atomic(void); --// NSPR_API(PRInt32) _MD_atomic_increment(PRInt32 *); --// NSPR_API(PRInt32) _MD_atomic_decrement(PRInt32 *); --// NSPR_API(PRInt32) _MD_atomic_set(PRInt32 *, PRInt32); -- --/* Memory management */ -- --NSPR_API(void) _MD_init_segs(void); --NSPR_API(PRStatus) _MD_alloc_segment(PRSegment *seg, PRUint32 size, void *vaddr); --NSPR_API(void) _MD_free_segment(PRSegment *seg); -- --/* Memory mapped file I/O */ -- --NSPR_API(PRStatus) _MD_create_file_map(PRFileMap *fmap, PRInt64 size); --NSPR_API(PRInt32) _MD_get_mem_map_alignment(void); --NSPR_API(void *) _MD_mem_map(PRFileMap *fmap, PRInt64 offset, PRUint32 len); --NSPR_API(PRStatus) _MD_mem_unmap(void *addr, PRUint32 size); --NSPR_API(PRStatus) _MD_close_file_map(PRFileMap *fmap); -- --/* Time related */ -- --NSPR_API(PRTime) _MD_now(void); --NSPR_API(void) _MD_interval_init(void); --NSPR_API(PRIntervalTime) _MD_get_interval(void); --NSPR_API(PRIntervalTime) _MD_interval_per_sec(void); -- --/* File locking */ -- --NSPR_API(PRStatus) _MD_lockfile(PRInt32 osfd); --NSPR_API(PRStatus) _MD_tlockfile(PRInt32 osfd); --NSPR_API(PRStatus) _MD_unlockfile(PRInt32 osfd); -- - #endif /* _nspr_beos_defs_h___*/ -Index: mozilla/nsprpub/pr/include/private/primpl.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/private/primpl.h,v -retrieving revision 3.84.2.2 -diff -u -8 -p -w -r3.84.2.2 primpl.h ---- mozilla/nsprpub/pr/include/private/primpl.h 25 Jul 2007 07:08:28 -0000 3.84.2.2 -+++ mozilla/nsprpub/pr/include/private/primpl.h 8 Jul 2009 21:53:12 -0000 -@@ -45,20 +45,16 @@ - * This macro causes chaos if signal.h gets included before pthread.h. - * To be safe, we include pthread.h first. - */ - - #if defined(_PR_PTHREADS) - #include - #endif - --#if defined(_PR_BTHREADS) --#include --#endif -- - #ifdef WINNT - /* Need to force service-pack 3 extensions to be defined by - ** setting _WIN32_WINNT to NT 4.0 for winsock.h, winbase.h, winnt.h. - */ - #ifndef _WIN32_WINNT - #define _WIN32_WINNT 0x0400 - #elif (_WIN32_WINNT < 0x0400) - #undef _WIN32_WINNT -@@ -223,16 +219,30 @@ typedef struct PTDebug - } PTDebug; - - #endif /* defined(DEBUG) */ - - NSPR_API(void) PT_FPrintStats(PRFileDesc *fd, const char *msg); - - #else /* defined(_PR_PTHREADS) */ - -+#ifdef _PR_BTHREADS -+#define _MD_GET_ATTACHED_THREAD() (_PR_MD_CURRENT_THREAD()) -+ -+#define _PR_IS_NATIVE_THREAD(thread) 1 -+#define _PR_IS_NATIVE_THREAD_SUPPORTED() 1 -+/* -+extern PRInt32 _PR_MD_WRITE(PRFileDesc *fd, const void *buf, PRInt32 amount); -+#define _PR_MD_WRITE _MD_WRITE -+*/ -+NSPR_API(PRThread*) _PR_MD_CURRENT_THREAD(void); -+#define _PR_MD_CURRENT_THREAD _MD_CURRENT_THREAD -+ -+#else /* defined(_PR_BTHREADS) */ -+ - NSPR_API(void) PT_FPrintStats(PRFileDesc *fd, const char *msg); - - /* - ** This section is contains those parts needed to implement NSPR on - ** platforms in general. One would assume that the pthreads implementation - ** included lots of the same types, at least conceptually. - */ - -@@ -1296,16 +1306,17 @@ extern PRStatus _PR_MD_SET_FD_INHERITABL - PR_SetError( PR_PENDING_INTERRUPT_ERROR, 0); \ - } else { \ - PR_SetError(PR_IO_TIMEOUT_ERROR, 0); \ - } - - extern void *_PR_MD_GET_SP(PRThread *thread); - #define _PR_MD_GET_SP _MD_GET_SP - -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - - /************************************************************************/ - /************************************************************************* - ** The remainder of the definitions are shared by pthreads and the classic - ** NSPR code. These too may be conditionalized. - *************************************************************************/ - /************************************************************************/ -@@ -1550,17 +1561,20 @@ struct PRThreadStack { - char *stackTop; /* top of stack from C's point of view */ - PRUint32 stackSize; /* size of usable portion of the stack */ - - PRSegment *seg; - PRThread* thr; /* back pointer to thread owning this stack */ - - #if defined(_PR_PTHREADS) - #else /* defined(_PR_PTHREADS) */ -+#if defined(_PR_BTHREADS) -+#else /* defined(_PR_BTHREADS) */ - _MDThreadStack md; -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - }; - - extern void _PR_DestroyThreadPrivate(PRThread*); - - typedef void (PR_CALLBACK *_PRStartFn)(void *); - - struct PRThread { -@@ -1603,19 +1617,16 @@ struct PRThread { - PRUint32 syspoll_count; /* number of elements in syspoll_list */ - #if defined(_PR_POLL_WITH_SELECT) - int *selectfd_list; /* Unix fd's that PR_Poll selects on */ - PRUint32 selectfd_count; /* number of elements in selectfd_list */ - #endif - #elif defined(_PR_BTHREADS) - PRUint32 flags; - _MDThread md; -- PRBool io_pending; -- PRInt32 io_fd; -- PRBool io_suspended; - #else /* not pthreads or Be threads */ - _MDLock threadLock; /* Lock to protect thread state variables. - * Protects the following fields: - * state - * priority - * links - * wait - * cpu -@@ -1689,17 +1700,19 @@ struct PRProcessAttr { - - struct PRProcess { - _MDProcess md; - }; - - struct PRFileMap { - PRFileDesc *fd; - PRFileMapProtect prot; -+#if !defined(XP_BEOS) - _MDFileMap md; -+#endif /* !defined(XP_BEOS) */ - }; - - /************************************************************************/ - - /* - ** File descriptors of the NSPR layer can be in one of the - ** following states (stored in the 'state' field of struct - ** PRFilePrivate): -@@ -1760,18 +1773,20 @@ struct PRDir { - #ifdef MOZ_UNICODE - struct PRDirUTF16 { - PRDirEntry d; - _MDDirUTF16 md; - }; - #endif /* MOZ_UNICODE */ - - extern void _PR_InitSegs(void); -+#if !defined(_PR_BTHREADS) - extern void _PR_InitStacks(void); - extern void _PR_InitTPD(void); -+#endif /* !defined(_PR_BTHREADS) */ - extern void _PR_InitMem(void); - extern void _PR_InitEnv(void); - extern void _PR_InitCMon(void); - extern void _PR_InitIO(void); - extern void _PR_InitLog(void); - extern void _PR_InitNet(void); - extern void _PR_InitClock(void); - extern void _PR_InitLinker(void); -@@ -1812,17 +1827,20 @@ extern PRBool _PR_Obsolete(const char *o - /************************************************************************/ - - struct PRSegment { - void *vaddr; - PRUint32 size; - PRUintn flags; - #if defined(_PR_PTHREADS) - #else /* defined(_PR_PTHREADS) */ -+#if defined(_PR_BTHREADS) -+#else /* defined(_PR_BTHREADS) */ - _MDSegment md; -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - }; - - /* PRSegment.flags */ - #define _PR_SEG_VM 0x1 - - /************************************************************************/ - -@@ -2109,28 +2127,28 @@ extern void _PR_MD_QUERY_FD_INHERITABLE( - /* --- PR_GetRandomNoise() related things --- */ - - extern PRSize _PR_MD_GetRandomNoise( void *buf, PRSize size ); - #define _PR_MD_GET_RANDOM_NOISE(buf,size) _PR_MD_GetRandomNoise((buf),(size)) - extern PRSize _pr_CopyLowBits( void *dest, PRSize dstlen, void *src, PRSize srclen ); - - /* end PR_GetRandomNoise() related */ - --#ifdef XP_BEOS -+#if defined(XP_BEOS) && !defined(BONE_VERSION) - - extern PRLock *_connectLock; - - typedef struct _ConnectListNode { - PRInt32 osfd; - PRNetAddr addr; - PRUint32 addrlen; - PRIntervalTime timeout; - } ConnectListNode; - - extern ConnectListNode connectList[64]; - - extern PRUint32 connectCount; - --#endif /* XP_BEOS */ -+#endif /* XP_BEOS && !BONE_VERSION */ - - PR_END_EXTERN_C - - #endif /* primpl_h___ */ -Index: mozilla/nsprpub/pr/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/Makefile.in,v -retrieving revision 1.40.2.2 -diff -u -8 -p -w -r1.40.2.2 Makefile.in ---- mozilla/nsprpub/pr/src/Makefile.in 19 Oct 2006 00:39:28 -0000 1.40.2.2 -+++ mozilla/nsprpub/pr/src/Makefile.in 8 Jul 2009 21:53:13 -0000 -@@ -270,36 +270,33 @@ endif - - ifdef USE_PTHREADS - OBJS += \ - pthreads/$(OBJDIR)/ptsynch.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptio.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptthread.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptmisc.$(OBJ_SUFFIX) - else -+ifndef USE_BTHREADS - OBJS += \ - io/$(OBJDIR)/prdir.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prfile.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prio.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prsocket.$(OBJ_SUFFIX) \ -- misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) -- --ifndef USE_BTHREADS --OBJS += \ -+ misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prcthr.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prdump.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prmon.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prsem.$(OBJ_SUFFIX) \ - threads/combined/$(OBJDIR)/prucpu.$(OBJ_SUFFIX) \ - threads/combined/$(OBJDIR)/prucv.$(OBJ_SUFFIX) \ - threads/combined/$(OBJDIR)/prulock.$(OBJ_SUFFIX) \ - threads/combined/$(OBJDIR)/prustack.$(OBJ_SUFFIX) \ - threads/combined/$(OBJDIR)/pruthr.$(OBJ_SUFFIX) - endif -- - endif - - ifeq ($(USE_CPLUS), 1) - OBJS += \ - cplus/$(OBJDIR)/rcbase.$(OBJ_SUFFIX) \ - cplus/$(OBJDIR)/rccv.$(OBJ_SUFFIX) \ - cplus/$(OBJDIR)/rcfileio.$(OBJ_SUFFIX) \ - cplus/$(OBJDIR)/rcinrval.$(OBJ_SUFFIX) \ -@@ -397,19 +394,23 @@ endif - - export:: $(TARGETS) - $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) - ifdef SHARED_LIBRARY - ifeq ($(OS_ARCH),HP-UX) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) - endif - endif -+endif - ifeq ($(MOZ_BITS),16) - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin - endif - - ifeq ($(BUILD_AIX_RTL_LIBC),1) - $(AIX_RTL_LIBC): /usr/ccs/lib/libc.a - rtl_enable -o $@ $< -Index: mozilla/nsprpub/pr/src/bthreads/bsrcs.mk -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/bsrcs.mk,v -retrieving revision 3.6 -diff -u -8 -p -w -r3.6 bsrcs.mk ---- mozilla/nsprpub/pr/src/bthreads/bsrcs.mk 25 Apr 2004 15:00:57 -0000 3.6 -+++ mozilla/nsprpub/pr/src/bthreads/bsrcs.mk 8 Jul 2009 21:53:13 -0000 -@@ -15,16 +15,17 @@ - # The Original Code is the Netscape Portable Runtime (NSPR). - # - # The Initial Developer of the Original Code is - # Netscape Communications Corporation. - # Portions created by the Initial Developer are Copyright (C) 1998-2000 - # the Initial Developer. All Rights Reserved. - # - # Contributor(s): -+# Fredrik Holmqvist - # - # Alternatively, the contents of this file may be used under the terms of - # either the GNU General Public License Version 2 or later (the "GPL"), or - # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - # in which case the provisions of the GPL or the LGPL are applicable instead - # of those above. If you wish to allow use of your version of this file only - # under the terms of either the GPL or the LGPL, and not to allow others to - # use your version of this file under the terms of the MPL, indicate your -@@ -41,9 +42,11 @@ - - BTCSRCS = \ - btthread.c \ - btlocks.c \ - btcvar.c \ - btmon.c \ - btsem.c \ - btmisc.c \ -+ btfile.c \ -+ btio.c \ - $(NULL) -Index: mozilla/nsprpub/pr/src/bthreads/btcvar.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btcvar.c,v -retrieving revision 3.9 -diff -u -8 -p -w -r3.9 btcvar.c ---- mozilla/nsprpub/pr/src/bthreads/btcvar.c 23 Feb 2005 17:43:13 -0000 3.9 -+++ mozilla/nsprpub/pr/src/bthreads/btcvar.c 8 Jul 2009 21:53:14 -0000 -@@ -15,33 +15,32 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - --#include -- - #include "primpl.h" - - /* - ** Create a new condition variable. - ** - ** "lock" is the lock used to protect the condition variable. - ** - ** Condition variables are synchronization objects that threads can use -@@ -125,63 +124,63 @@ PR_IMPLEMENT(PRStatus) - status_t err; - if( timeout == PR_INTERVAL_NO_WAIT ) - { - PR_Unlock( cvar->lock ); - PR_Lock( cvar->lock ); - return PR_SUCCESS; - } - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount ) > 1 ) - { - if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - cvar->nw += 1; -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - PR_Unlock( cvar->lock ); - if( timeout==PR_INTERVAL_NO_TIMEOUT ) - { - err = acquire_sem(cvar->sem); - } - else - { - err = acquire_sem_etc(cvar->sem, 1, B_RELATIVE_TIMEOUT, PR_IntervalToMicroseconds(timeout) ); - } - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount ) > 1 ) - { - while (acquire_sem(cvar->signalSem) == B_INTERRUPTED); - } - - if (cvar->ns > 0) - { - release_sem_etc(cvar->handshakeSem, 1, B_DO_NOT_RESCHEDULE); - cvar->ns -= 1; - } - cvar->nw -= 1; -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - PR_Lock( cvar->lock ); -- if(err!=B_NO_ERROR) -+ if(err==B_NO_ERROR || (err == B_TIMED_OUT && timeout!=PR_INTERVAL_NO_TIMEOUT)) - { -- return PR_FAILURE; -- } - return PR_SUCCESS; - } -+ return PR_FAILURE; -+} - - /* - ** Notify ONE thread that is currently waiting on 'cvar'. Which thread is - ** dependent on the implementation of the runtime. Common sense would dictate - ** that all threads waiting on a single condition have identical semantics, - ** therefore which one gets notified is not significant. - ** - ** The calling thead must hold the lock that protects the condition, as -@@ -190,41 +189,41 @@ PR_IMPLEMENT(PRStatus) - ** - ** Returns PR_FAILURE if the caller has not locked the lock associated - ** with the condition variable. - */ - PR_IMPLEMENT(PRStatus) - PR_NotifyCondVar (PRCondVar *cvar) - { - status_t err ; -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount) > 1 ) - { - if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - if (cvar->nw > cvar->ns) - { - cvar->ns += 1; - release_sem_etc(cvar->sem, 1, B_DO_NOT_RESCHEDULE); -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - while (acquire_sem(cvar->handshakeSem) == B_INTERRUPTED) - { - err = B_INTERRUPTED; - } - } - else - { -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - } - return PR_SUCCESS; - } - - /* -@@ -236,41 +235,41 @@ PR_IMPLEMENT(PRStatus) - ** with the condition variable. - */ - PR_IMPLEMENT(PRStatus) - PR_NotifyAllCondVar (PRCondVar *cvar) - { - int32 handshakes; - status_t err = B_OK; - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount) > 1 ) - { - if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - - if (cvar->nw > cvar->ns) - { - handshakes = cvar->nw - cvar->ns; - cvar->ns = cvar->nw; - release_sem_etc(cvar->sem, handshakes, B_DO_NOT_RESCHEDULE); -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - while (acquire_sem_etc(cvar->handshakeSem, handshakes, 0, 0) == B_INTERRUPTED) - { - err = B_INTERRUPTED; - } - } - else - { -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - } - return PR_SUCCESS; - } -Index: mozilla/nsprpub/pr/src/bthreads/btfile.c -=================================================================== -RCS file: mozilla/nsprpub/pr/src/bthreads/btfile.c -diff -N mozilla/nsprpub/pr/src/bthreads/btfile.c ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ mozilla/nsprpub/pr/src/bthreads/btfile.c 5 Nov 2008 20:51:44 -0000 -@@ -0,0 +1,994 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is the Netscape Portable Runtime (NSPR). -+ * -+ * The Initial Developer of the Original Code is -+ * Netscape Communications Corporation. -+ * Portions created by the Initial Developer are Copyright (C) 1998-2000 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * Roy Yokoyama -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "primpl.h" -+ -+static PRLock *_pr_flock_lock; /* For PR_LockFile() etc. */ -+static PRCondVar *_pr_flock_cv; /* For PR_LockFile() etc. */ -+ -+PRErrorCode -+map_default_error(int err) -+{ -+ switch (err) { -+ case EACCES: -+ return PR_NO_ACCESS_RIGHTS_ERROR; -+ case EADDRINUSE: -+ return PR_ADDRESS_IN_USE_ERROR; -+ case EADDRNOTAVAIL: -+ return PR_ADDRESS_NOT_AVAILABLE_ERROR; -+ case EAFNOSUPPORT: -+ return PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ /*Same as EWOULDBLOCK*/ -+ case EAGAIN: -+ return PR_WOULD_BLOCK_ERROR; -+#if EALREADY != EBUSY -+ case EALREADY: -+ return PR_ALREADY_INITIATED_ERROR; -+#endif -+ case EBADF: -+ return PR_BAD_DESCRIPTOR_ERROR; -+ case EBUSY: -+ return PR_FILESYSTEM_MOUNTED_ERROR; -+ case ECONNABORTED: -+ return PR_CONNECT_ABORTED_ERROR; -+ case ECONNREFUSED: -+ return PR_CONNECT_REFUSED_ERROR; -+ case EDEADLK: -+ return PR_DEADLOCK_ERROR; -+ case EEXIST: -+ return PR_FILE_EXISTS_ERROR; -+ case EFAULT: -+ return PR_ACCESS_FAULT_ERROR; -+ case EFBIG: -+ return PR_FILE_TOO_BIG_ERROR; -+ case EHOSTUNREACH: -+ return PR_HOST_UNREACHABLE_ERROR; -+ case EINPROGRESS: -+ return PR_IN_PROGRESS_ERROR; -+ case EINTR: -+ return PR_PENDING_INTERRUPT_ERROR; -+ case EINVAL: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case EIO: -+ return PR_IO_ERROR; -+ case EISCONN: -+ return PR_IS_CONNECTED_ERROR; -+ case EISDIR: -+ return PR_IS_DIRECTORY_ERROR; -+ case ELOOP: -+ return PR_LOOP_ERROR; -+ case EMFILE: -+ return PR_PROC_DESC_TABLE_FULL_ERROR; -+ case EMLINK: -+ return PR_MAX_DIRECTORY_ENTRIES_ERROR; -+ case EMSGSIZE: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case ENAMETOOLONG: -+ return PR_NAME_TOO_LONG_ERROR; -+ case ENETUNREACH: -+ return PR_NETWORK_UNREACHABLE_ERROR; -+ case ENFILE: -+ return PR_SYS_DESC_TABLE_FULL_ERROR; -+ case ENOBUFS: -+ return PR_INSUFFICIENT_RESOURCES_ERROR; -+ case ENODEV: -+ case ENOENT: -+ return PR_FILE_NOT_FOUND_ERROR; -+ case ENOLCK: -+ return PR_FILE_IS_LOCKED_ERROR; -+#if 0 -+ case ENOLINK: -+ return PR_REMOTE_FILE_ERROR; -+#endif -+ case ENOMEM: -+ return PR_OUT_OF_MEMORY_ERROR; -+ case ENOPROTOOPT: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case ENOSPC: -+ return PR_NO_DEVICE_SPACE_ERROR; -+ case ENOTCONN: -+ return PR_NOT_CONNECTED_ERROR; -+ case ENOTDIR: -+ return PR_NOT_DIRECTORY_ERROR; -+ case ENOTSOCK: -+ return PR_NOT_SOCKET_ERROR; -+ case ENXIO: -+ return PR_FILE_NOT_FOUND_ERROR; -+ case EOPNOTSUPP: -+ return PR_NOT_TCP_SOCKET_ERROR; -+ case EOVERFLOW: -+ return PR_BUFFER_OVERFLOW_ERROR; -+ case EPERM: -+ return PR_NO_ACCESS_RIGHTS_ERROR; -+ case EPIPE: -+ return PR_CONNECT_RESET_ERROR; -+ case EPROTONOSUPPORT: -+ return PR_PROTOCOL_NOT_SUPPORTED_ERROR; -+ case EPROTOTYPE: -+ return PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ case ERANGE: -+ return PR_INVALID_METHOD_ERROR; -+ case EROFS: -+ return PR_READ_ONLY_FILESYSTEM_ERROR; -+ case ESPIPE: -+ return PR_INVALID_METHOD_ERROR; -+ case ETIMEDOUT: -+ return PR_IO_TIMEOUT_ERROR; -+ case EXDEV: -+ return PR_NOT_SAME_DEVICE_ERROR; -+ default: -+ return PR_UNKNOWN_ERROR; -+ } -+} -+ -+ -+inline void -+set_open_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EAGAIN: -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ case EBUSY: -+ prError = PR_IO_ERROR; -+ break; -+ case ENODEV: -+ prError = PR_FILE_NOT_FOUND_ERROR; -+ break; -+ case EOVERFLOW: -+ prError = PR_FILE_TOO_BIG_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_rename_error(int err) -+{ -+ PR_SetError(err == EEXIST ? PR_DIRECTORY_NOT_EMPTY_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_unlink_error(int err) -+{ -+ PR_SetError(err == EPERM ? PR_IS_DIRECTORY_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_opendir_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_closedir_error(int err) -+{ -+ PR_SetError( err == EINVAL ? PR_BAD_DESCRIPTOR_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_readdir_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case 0: -+ case ENOENT: -+ prError = PR_NO_MORE_FILES_ERROR; -+ break; -+ case EOVERFLOW: -+ case EINVAL: -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_mkdir_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_rmdir_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case ENOTEMPTY: -+ case EEXIST: -+ case EINVAL: -+ prError = PR_DIRECTORY_NOT_EMPTY_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_close_error(int err) -+{ -+ PR_SetError( err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_read_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_INVALID_ARGUMENT_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_write_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_INVALID_ARGUMENT_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_lseek_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_fsync_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_fstat_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+/* TODO: using uint8 instead of bool due to code that uses bool as var name in hard to change places -+ therefore we had to undef it. Or we need to change Haiku's headers around so we can include -+ everything we need except the bool decl. */ -+PRFileDesc * bt_CreateFileDesc(PRIntn osfd, const PRIOMethods * methods, _PRTriStateBool inheritable, uint8 nonblocking) { -+ const int blocking = 1; -+ PRFileDesc *fd = _PR_Getfd(); -+ if (fd == NULL) -+ { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return NULL; -+ } -+ fd->secret->md.osfd = osfd; -+ fd->secret->state = _PR_FILEDESC_OPEN; -+ fd->secret->inheritable = inheritable; -+ fd->methods = methods; -+ if (nonblocking) -+ setsockopt(osfd, SOL_SOCKET, SO_NONBLOCK, &blocking, sizeof(blocking)); -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_GetSpecialFD(PRSpecialFD osfd) -+{ -+ PR_ASSERT(osfd >= PR_StandardInput && osfd <= PR_StandardError); -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ switch (osfd) -+ { -+ case PR_StandardInput: return _pr_stdin; -+ case PR_StandardOutput: return _pr_stdout; -+ case PR_StandardError: return _pr_stderr; -+ default: -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ } -+ return NULL; -+} /* PR_GetSpecialFD */ -+ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_Open(const char *name, PRIntn flags, PRIntn mode) -+{ -+ return PR_OpenFile(name, flags, mode); -+} /* PR_Open */ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_OpenFile(const char *name, PRIntn flags, PRIntn mode) -+{ -+ PRFileDesc *fd = NULL; -+ PRInt32 osflags; -+ PRInt32 osfd, err; -+ -+ if (flags & PR_RDWR) { -+ osflags = O_RDWR; -+ } else if (flags & PR_WRONLY) { -+ osflags = O_WRONLY; -+ } else { -+ osflags = O_RDONLY; -+ } -+ -+ if (flags & PR_EXCL) -+ osflags |= O_EXCL; -+ if (flags & PR_APPEND) -+ osflags |= O_APPEND; -+ if (flags & PR_TRUNCATE) -+ osflags |= O_TRUNC; -+ if (flags & PR_SYNC) { -+/* Ummmm. BeOS doesn't appear to -+ support sync in any way shape or -+ form. */ -+ return PR_NOT_IMPLEMENTED_ERROR; -+ } -+ -+ if (flags & PR_CREATE_FILE) -+ { -+ osflags |= O_CREAT; -+ } -+ -+ osfd = open(name, osflags, mode); -+ if (osfd < 0) { -+ err = _MD_ERRNO(); -+ set_open_error(err); -+ } -+ -+ if(osfd>=0) { -+ fd = bt_CreateFileDesc(osfd, PR_GetFileMethods(), _PR_TRI_TRUE, false); -+ if (fd == NULL) close(osfd); /* $$$ whoops! this is bad $$$ */ -+ } -+ return fd; -+} /* PR_OpenFile */ -+ -+/* -+** Import an existing OS file to NSPR -+*/ -+PR_IMPLEMENT(PRFileDesc*) PR_ImportFile(PRInt32 osfd) -+{ -+ PRFileDesc *fd = NULL; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ fd = bt_CreateFileDesc(osfd, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ if (NULL == fd) close(osfd); -+ return fd; -+} -+ -+/* -+** Import an existing OS pipe to NSPR -+*/ -+PR_IMPLEMENT(PRFileDesc*) PR_ImportPipe(PRInt32 osfd) -+{ -+ PRFileDesc *fd = NULL; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetPipeMethods(), _PR_TRI_UNKNOWN, true); -+ -+ if (NULL == fd) close(osfd); -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_Rename(const char *from, const char *to) -+{ -+ PRInt32 rv = -1, err; -+ -+ if (0 == access(to, F_OK)) -+ PR_SetError(PR_FILE_EXISTS_ERROR, 0); -+ else -+ { -+ rv = rename(from, to); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_rename_error(err); -+ } -+ } -+ if (rv < 0) { -+ return PR_FAILURE; -+ } else { -+ return PR_SUCCESS; -+ } -+} -+ -+PR_IMPLEMENT(PRStatus) PR_Delete(const char *name) -+{ -+ PRInt32 rv, err; -+ -+ rv = unlink(name); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_unlink_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRDir*) PR_OpenDir(const char *name) -+{ -+ PRDir *dir; -+ PRInt32 err; -+ -+ dir = PR_NEW(PRDir); -+ if (dir) { -+ dir->md.d = opendir(name); -+ if (NULL == dir->md.d) { -+ err = _MD_ERRNO(); -+ set_opendir_error(err); -+ PR_DELETE(dir); -+ return NULL; -+ } -+ } else { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ } -+ return dir; -+} -+ -+PR_IMPLEMENT(PRDirEntry*) PR_ReadDir(PRDir *dir, PRDirFlags flags) -+{ -+ PRInt32 err; -+ struct dirent *de; -+ for (;;) { -+ /* -+ * XXX: readdir() is not MT-safe -+ */ -+ _MD_ERRNO() = 0; -+ de = readdir(dir->md.d); -+ -+ if (!de) { -+ err = _MD_ERRNO(); -+ set_readdir_error(err); -+ return 0; -+ } -+ -+ if ((flags & PR_SKIP_DOT) && -+ (de->d_name[0] == '.') && (de->d_name[1] == 0)) -+ continue; -+ -+ if ((flags & PR_SKIP_DOT_DOT) && -+ (de->d_name[0] == '.') && (de->d_name[1] == '.') && -+ (de->d_name[2] == 0)) -+ continue; -+ -+ if ((flags & PR_SKIP_HIDDEN) && (de->d_name[1] == '.')) -+ continue; -+ -+ break; -+ } -+ -+ dir->d.name = de->d_name; -+ return de->d_name ? &dir->d : NULL; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_CloseDir(PRDir *dir) -+{ -+ PRInt32 rv, err; -+ -+ if (dir && dir->md.d) { -+ rv = closedir(dir->md.d); -+ PR_DELETE(dir); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_closedir_error(err); -+ return PR_FAILURE; -+ } -+ } -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_MkDir(const char *name, PRIntn mode) -+{ -+ status_t rv; -+ int err; -+ -+ rv = mkdir(name, mode); -+ -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_mkdir_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_MakeDir(const char *name, PRIntn mode) -+{ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ return PR_MkDir(name, mode); -+} -+ -+PR_IMPLEMENT(PRStatus) PR_RmDir(const char *name) -+{ -+ PRInt32 rv, err; -+ -+ rv = rmdir(name); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_rmdir_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRInt32) -+PR_FileDesc2NativeHandle(PRFileDesc *fd) -+{ -+ if (fd) { -+ fd = PR_GetIdentitiesLayer(fd, PR_NSPR_IO_LAYER); -+ } -+ if (!fd) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ -+ return fd->secret->md.osfd; -+} -+ -+#ifdef MOZ_UNICODE -+/* -+ * UTF16 Interface -+ */ -+PR_IMPLEMENT(PRDirUTF16*) PR_OpenDirUTF16(const PRUnichar *name) -+{ -+ PRDirUTF16 *dir; -+ PRStatus sts; -+ -+ dir = PR_NEW(PRDirUTF16); -+ if (dir) { -+ sts = _PR_MD_OPEN_DIR_UTF16(&dir->md,name); -+ if (sts != PR_SUCCESS) { -+ PR_DELETE(dir); -+ return NULL; -+ } -+ } else { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ } -+ return dir; -+} -+ -+PR_IMPLEMENT(PRDirEntryUTF16*) PR_ReadDirUTF16(PRDirUTF16 *dir, PRDirFlags flags) -+{ -+ /* -+ * _MD_READ_DIR_UTF16 return a PRUnichar* to the name; allocation in -+ * machine-dependent code -+ */ -+ PRUnichar* name = _PR_MD_READ_DIR_UTF16(&dir->md, flags); -+ dir->d.name = name; -+ return name ? &dir->d : NULL; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_CloseDirUTF16(PRDirUTF16 *dir) -+{ -+ PRInt32 rv; -+ -+ if (dir) { -+ rv = _PR_MD_CLOSE_DIR_UTF16(&dir->md); -+ PR_DELETE(dir); -+ if (rv < 0) -+ return PR_FAILURE; -+ else -+ return PR_SUCCESS; -+ } -+ return PR_SUCCESS; -+} -+ -+#endif /* MOZ_UNICODE */ -+ -+ -+static PRStatus PR_CALLBACK FileClose(PRFileDesc *fd) -+{ -+ PRInt32 err; -+ if (!fd || !fd->secret -+ || (fd->secret->state != _PR_FILEDESC_OPEN -+ && fd->secret->state != _PR_FILEDESC_CLOSED)) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (fd->secret->state == _PR_FILEDESC_OPEN) { -+ if (close(fd->secret->md.osfd) < 0) { -+ err = _MD_ERRNO(); -+ set_close_error(err); -+ return PR_FAILURE; -+ } -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ } -+ PR_ASSERT(fd); -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} -+ -+static PRInt32 PR_CALLBACK FileRead(PRFileDesc *fd, void *buf, PRInt32 amount) -+{ -+ PRInt32 rv,err = 0; -+ -+ rv = read(fd->secret->md.osfd, buf, amount); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_read_error(err); -+ PR_ASSERT(rv == -1); -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("read -> %d", rv)); -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK FileWrite(PRFileDesc *fd, const void *buf, PRInt32 amount) -+{ -+ PRInt32 rv,err = 0; -+ PRInt32 temp, count; -+ -+ count = 0; -+ while (amount > 0) { -+ temp = write(fd->secret->md.osfd, buf, amount); -+ if (temp < 0) { -+ err = _MD_ERRNO(); -+ set_write_error(err); -+ count = -1; -+ break; -+ } -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ amount -= temp; -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("write -> %d", count)); -+ return count; -+} -+ -+static PRInt32 PR_CALLBACK FileAvailable(PRFileDesc *fd) -+{ -+ PRInt32 result, cur, end, err; -+ -+ cur = lseek(fd->secret->md.osfd, 0, PR_SEEK_CUR); -+ -+ if (cur >= 0) -+ end = lseek(fd->secret->md.osfd, 0, PR_SEEK_END); -+ -+ if ((cur < 0) || (end < 0)) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ return -1; -+ } -+ -+ result = end - cur; -+ lseek(fd->secret->md.osfd, cur, PR_SEEK_SET); -+ -+ return result; -+} -+ -+static PRInt64 PR_CALLBACK FileAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 result, cur, end; -+ PRInt64 minus_one; -+ PRInt32 err; -+ -+ cur = lseek(fd->secret->md.osfd, LL_ZERO, PR_SEEK_CUR); -+ -+ if (LL_GE_ZERO(cur)) -+ end = lseek(fd->secret->md.osfd, LL_ZERO, PR_SEEK_END); -+ -+ if (!LL_GE_ZERO(cur) || !LL_GE_ZERO(end)) { -+ LL_I2L(minus_one, -1); -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ return minus_one; -+ } -+ LL_SUB(result, end, cur); -+ lseek(fd->secret->md.osfd, cur, PR_SEEK_SET); -+ return result; -+} -+ -+static PRStatus PR_CALLBACK FileSync(PRFileDesc *fd) -+{ -+ PRInt32 result, err; -+ result = fsync(fd->secret->md.osfd); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_fsync_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PROffset32 PR_CALLBACK FileSeek(PRFileDesc *fd, PROffset32 offset, PRSeekWhence whence) -+{ -+ PROffset32 result; -+ PRInt32 err; -+ result = lseek(fd->secret->md.osfd, offset, whence); -+ if(result<0) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ } -+ return result; -+} -+ -+static PROffset64 PR_CALLBACK FileSeek64(PRFileDesc *fd, PROffset64 offset, PRSeekWhence whence) -+{ -+ PROffset64 result; -+ PRInt32 err; -+ -+ result = lseek(fd->secret->md.osfd, offset, whence); -+ if(!LL_GE_ZERO(result)) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ } -+ return result; -+} -+ -+static PRStatus PR_CALLBACK FileGetInfo(PRFileDesc *fd, PRFileInfo *info) -+{ -+ struct stat sb; -+ PRInt64 s, s2us; -+ PRInt32 rv, err; -+ -+ rv = fstat(fd->secret->md.osfd, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_fstat_error(err); -+ return PR_FAILURE; -+ } -+ if(info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE ; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ /* Use lower 32 bits of file size */ -+ info->size = ( sb.st_size & 0xffffffff); -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK FileGetInfo64(PRFileDesc *fd, PRFileInfo64 *info) -+{ -+ struct stat sb; -+ PRInt64 s, s2us; -+ PRInt32 rv, err; -+ -+ rv = fstat(fd->secret->md.osfd, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_fstat_error(err); -+ return PR_FAILURE; -+ } -+ if(info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE ; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ info->size = sb.st_size; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRInt16 PR_CALLBACK FilePoll( -+ PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags) -+{ -+ *out_flags = 0; -+ return in_flags; -+} /* FilePoll */ -+ -+ -+static PRIOMethods _pr_fileMethods = { -+ PR_DESC_FILE, -+ FileClose, -+ FileRead, -+ FileWrite, -+ FileAvailable, -+ FileAvailable64, -+ FileSync, -+ FileSeek, -+ FileSeek64, -+ FileGetInfo, -+ FileGetInfo64, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ FilePoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetFileMethods(void) -+{ -+ return &_pr_fileMethods; -+} -+ -+ -+static PRInt32 PR_CALLBACK PipeAvailable(PRFileDesc *fd) -+{ -+ PRInt32 rv; -+ rv = _bt_socketavailable(fd); -+ return rv; -+} -+ -+static PRInt64 PR_CALLBACK PipeAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 rv; -+ LL_I2L(rv, _bt_socketavailable(fd)); -+ return rv; -+} -+ -+static PRStatus PR_CALLBACK PipeSync(PRFileDesc *fd) -+{ -+ return PR_SUCCESS; -+} -+ -+ -+static PRIOMethods _pr_pipeMethods = { -+ PR_DESC_PIPE, -+ FileClose, -+ FileRead, -+ FileWrite, -+ PipeAvailable, -+ PipeAvailable64, -+ PipeSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ FilePoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetPipeMethods(void) -+{ -+ return &_pr_pipeMethods; -+} -+ -+void _PR_InitIO(void) { -+ const PRIOMethods *methods = PR_GetFileMethods(); -+ _PR_InitFdCache(); -+ _pr_flock_lock = PR_NewLock(); -+ _pr_flock_cv = PR_NewCondVar(_pr_flock_lock); -+ _pr_stdin = bt_CreateFileDesc(0, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ _pr_stdout = bt_CreateFileDesc(1, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ _pr_stderr = bt_CreateFileDesc(2, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+} -+ -Index: mozilla/nsprpub/pr/src/bthreads/btio.c -=================================================================== -RCS file: mozilla/nsprpub/pr/src/bthreads/btio.c -diff -N mozilla/nsprpub/pr/src/bthreads/btio.c ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ mozilla/nsprpub/pr/src/bthreads/btio.c 5 Nov 2008 20:51:44 -0000 -@@ -0,0 +1,2424 @@ -+/* -*- Mode: C++; c-basic-offset: 4 -*- */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is the Netscape Portable Runtime (NSPR). -+ * -+ * The Initial Developer of the Original Code is -+ * Netscape Communications Corporation. -+ * Portions created by the Initial Developer are Copyright (C) 1998-2000 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "primpl.h" -+#include -+#include -+#include -+ -+#define READ_FD 1 -+#define WRITE_FD 2 -+ -+#ifdef BONE_VERSION -+inline int closesocket(int socket) { -+ return close(socket); -+} -+#endif -+ -+ -+inline void -+set_stat_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_access_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_select_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_writev_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_connect_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EACCES: -+ case ELOOP: -+ case ENOENT: -+ prError = PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+ -+} -+ -+inline void -+set_accept_error(int err) -+{ -+ PR_SetError(err == ENODEV ? PR_NOT_TCP_SOCKET_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_bind_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_SOCKET_ADDRESS_IS_BOUND_ERROR; -+ break; -+ case EIO: -+ case EISDIR: -+ case ELOOP: -+ case ENOENT: -+ case ENOTDIR: -+ case EROFS: -+ prError = PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+inline void -+set_listen_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_shutdown_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_socketpair_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_recv_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_recvfrom_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_send_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_sendto_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_getsockname_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_getpeername_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_getsockopt_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_BUFFER_OVERFLOW_ERROR; -+ break; -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+inline void -+set_setsockopt_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_BUFFER_OVERFLOW_ERROR; -+ break; -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_socket_error(int err) -+{ -+ PR_SetError( err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetFileInfo(const char *fn, PRFileInfo *info) -+{ -+ struct stat sb; -+ PRInt32 rv, err; -+ PRInt64 s, s2us; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ rv = stat(fn, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_stat_error(err); -+ return PR_FAILURE; -+ } -+ if (info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ -+ /* Use lower 32 bits of file size */ -+ info->size = sb.st_size & 0xffffffff; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetFileInfo64(const char *fn, PRFileInfo64 *info) -+{ -+ struct stat sb; -+ PRInt32 rv, err; -+ PRInt64 s, s2us; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ rv = stat(fn, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_stat_error(err); -+ return PR_FAILURE; -+ } -+ if (info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ -+ /* For the 64 bit version we can use -+ * the native st_size without modification -+ */ -+ info->size = sb.st_size; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_Access(const char *name, PRAccessHow how) -+{ -+ PRInt32 rv, err; -+ int checkFlags; -+ struct stat buf; -+ -+ switch (how) { -+ case PR_ACCESS_WRITE_OK: -+ checkFlags = S_IWUSR | S_IWGRP | S_IWOTH; -+ break; -+ -+ case PR_ACCESS_READ_OK: -+ checkFlags = S_IRUSR | S_IRGRP | S_IROTH; -+ break; -+ -+ case PR_ACCESS_EXISTS: -+ /* we don't need to examine st_mode. */ -+ break; -+ -+ default: { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return PR_FAILURE; -+ } -+ } -+ -+ rv = stat(name, &buf); -+ if (rv == 0 && how != PR_ACCESS_EXISTS && (!(buf.st_mode & checkFlags))) { -+ PR_SetError(PR_NO_ACCESS_RIGHTS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_access_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+ -+PRInt32 -+_bt_socketavailable (PRFileDesc *fd) -+{ -+#ifdef BONE_VERSION -+ PRInt32 result; -+ -+ if (ioctl(fd->secret->md.osfd, FIONREAD, &result) < 0) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, _MD_ERRNO()); -+ return -1; -+ } -+ return result; -+#else -+ return PR_NOT_IMPLEMENTED_ERROR; -+#endif -+} -+ -+ -+#if defined(DEBUG) -+ -+PRBool IsValidNetAddr(const PRNetAddr *addr) -+{ -+ if ((addr != NULL) -+ && (addr->raw.family != PR_AF_INET6) -+ && (addr->raw.family != PR_AF_INET)) { -+ return PR_FALSE; -+ } -+ return PR_TRUE; -+} -+ -+static PRBool IsValidNetAddrLen(const PRNetAddr *addr, PRInt32 addr_len) -+{ -+ /* -+ * The definition of the length of a Unix domain socket address -+ * is not uniform, so we don't check it. -+ */ -+ if ((addr != NULL) -+ && (PR_NETADDR_SIZE(addr) != addr_len)) { -+ return PR_FALSE; -+ } -+ return PR_TRUE; -+} -+ -+#endif /* DEBUG */ -+ -+static PRInt32 socket_io_wait(PRInt32 osfd, PRInt32 fd_type, -+ PRIntervalTime timeout) -+{ -+ PRInt32 rv = -1; -+ struct timeval tv; -+ PRIntervalTime epoch, now, elapsed, remaining; -+ PRBool wait_for_remaining; -+ PRInt32 syserror; -+ fd_set rd_wr; -+ -+ switch (timeout) { -+ case PR_INTERVAL_NO_WAIT: -+ PR_SetError(PR_IO_TIMEOUT_ERROR, 0); -+ break; -+ case PR_INTERVAL_NO_TIMEOUT: -+ /* -+ * This is a special case of the 'default' case below. -+ * Please see the comments there. -+ */ -+ tv.tv_sec = _PR_INTERRUPT_CHECK_INTERVAL_SECS; -+ tv.tv_usec = 0; -+ FD_ZERO(&rd_wr); -+ do { -+ FD_SET(osfd, &rd_wr); -+ if (fd_type == READ_FD) -+ rv = select(osfd + 1, &rd_wr, NULL, NULL, &tv); -+ else -+ rv = select(osfd + 1, NULL, &rd_wr, NULL, &tv); -+ if (rv == -1 && (syserror = _MD_ERRNO()) != EINTR) { -+#ifdef BONE_VERSION -+ set_select_error(syserror); -+#else -+ if (syserror == EBADF) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, EBADF); -+ } else { -+ PR_SetError(PR_UNKNOWN_ERROR, syserror); -+ } -+#endif -+ break; -+ } -+ } while (rv == 0 || (rv == -1 && syserror == EINTR)); -+ break; -+ default: -+ now = epoch = PR_IntervalNow(); -+ remaining = timeout; -+ FD_ZERO(&rd_wr); -+ do { -+ /* -+ * We block in select for at most -+ * _PR_INTERRUPT_CHECK_INTERVAL_SECS seconds, -+ * so that there is an upper limit on the delay -+ * before the interrupt bit is checked. -+ */ -+ wait_for_remaining = PR_TRUE; -+ tv.tv_sec = PR_IntervalToSeconds(remaining); -+ if (tv.tv_sec > _PR_INTERRUPT_CHECK_INTERVAL_SECS) { -+ wait_for_remaining = PR_FALSE; -+ tv.tv_sec = _PR_INTERRUPT_CHECK_INTERVAL_SECS; -+ tv.tv_usec = 0; -+ } else { -+ tv.tv_usec = PR_IntervalToMicroseconds( -+ remaining - -+ PR_SecondsToInterval(tv.tv_sec)); -+ } -+ FD_SET(osfd, &rd_wr); -+ if (fd_type == READ_FD) -+ rv = select(osfd + 1, &rd_wr, NULL, NULL, &tv); -+ else -+ rv = select(osfd + 1, NULL, &rd_wr, NULL, &tv); -+ /* -+ * we don't consider EINTR a real error -+ */ -+ if (rv == -1 && (syserror = _MD_ERRNO()) != EINTR) { -+#ifdef BONE_VERSION -+ set_select_error(syserror); -+#else -+ if (syserror == EBADF) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, EBADF); -+ } else { -+ PR_SetError(PR_UNKNOWN_ERROR, syserror); -+ } -+#endif -+ break; -+ } -+ /* -+ * We loop again if select timed out or got interrupted -+ * by a signal, and the timeout deadline has not passed yet. -+ */ -+ if (rv == 0 || (rv == -1 && syserror == EINTR)) { -+ /* -+ * If select timed out, we know how much time -+ * we spent in blocking, so we can avoid a -+ * PR_IntervalNow() call. -+ */ -+ if (rv == 0) { -+ if (wait_for_remaining) { -+ now += remaining; -+ } else { -+ now += PR_SecondsToInterval(tv.tv_sec) -+ + PR_MicrosecondsToInterval(tv.tv_usec); -+ } -+ } else { -+ now = PR_IntervalNow(); -+ } -+ elapsed = (PRIntervalTime) (now - epoch); -+ if (elapsed >= timeout) { -+ PR_SetError(PR_IO_TIMEOUT_ERROR, 0); -+ rv = -1; -+ break; -+ } else { -+ remaining = timeout - elapsed; -+ } -+ } -+ } while (rv == 0 || (rv == -1 && syserror == EINTR)); -+ break; -+ } -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketWritev(PRFileDesc *fd, const PRIOVec *iov, -+PRInt32 iov_size, PRIntervalTime timeout) -+{ -+#ifdef BONE_VERSION -+ int w, err = 0; -+ const PRIOVec *tmp_iov; -+#define LOCAL_MAXIOV 8 -+ PRIOVec local_iov[LOCAL_MAXIOV]; -+ PRIOVec *iov_copy = NULL; -+ int tmp_out; -+ int index, iov_cnt; -+ int count=0, sz = 0; /* 'count' is the return value. */ -+ int i, amount = 0; -+ -+ /* -+ * Assume the first writev will succeed. Copy iov's only on -+ * failure. -+ */ -+ tmp_iov = iov; -+ for (index = 0; index < iov_size; index++) -+ sz += iov[index].iov_len; -+ -+ iov_cnt = iov_size; -+ -+ while (sz > 0) { -+/* -+ /* -+ * Calculate the total number of bytes to be sent; needed for -+ * optimization later. -+ * We could avoid this if this number was passed in; but it is -+ * probably not a big deal because iov_size is usually small (less than -+ * 3) -+ */ -+ if (!fd->secret->nonblocking) { -+ for (i=0; isecret->md.osfd, (const struct iovec*)tmp_iov, iov_size)) == -1) { -+ err = _MD_ERRNO(); -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ if ((w = socket_io_wait(fd->secret->md.osfd, WRITE_FD, timeout))<0) -+ goto done; -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ /* -+ * optimization; if bytes sent is less than "amount" call -+ * select before returning. This is because it is likely that -+ * the next writev() call will return EWOULDBLOCK. -+ */ -+ if ((!fd->secret->nonblocking) && (w > 0) && (w < amount) -+ && (timeout != PR_INTERVAL_NO_WAIT)) { -+ if (socket_io_wait(fd->secret->md.osfd, WRITE_FD, timeout) < 0) { -+ w = -1; -+ goto done; -+ } -+ } -+ -+ if (w < 0) { -+ set_writev_error(err); -+ } -+done: -+ -+ -+ if (w < 0) { -+ count = -1; -+ break; -+ } -+ count += w; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ sz -= w; -+ -+ if (sz > 0) { -+ /* find the next unwritten vector */ -+ for ( index = 0, tmp_out = count; -+ tmp_out >= iov[index].iov_len; -+ tmp_out -= iov[index].iov_len, index++){;} /* nothing to execute */ -+ -+ if (tmp_iov == iov) { -+ /* -+ * The first writev failed so we -+ * must copy iov's around. -+ * Avoid calloc/free if there -+ * are few enough iov's. -+ */ -+ if (iov_size - index <= LOCAL_MAXIOV) -+ iov_copy = local_iov; -+ else if ((iov_copy = (PRIOVec *) PR_CALLOC((iov_size - index) * -+ sizeof *iov_copy)) == NULL) { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return -1; -+ } -+ tmp_iov = iov_copy; -+ } -+ -+ PR_ASSERT(tmp_iov == iov_copy); -+ -+ /* fill in the first partial read */ -+ iov_copy[0].iov_base = &(((char *)iov[index].iov_base)[tmp_out]); -+ iov_copy[0].iov_len = iov[index].iov_len - tmp_out; -+ index++; -+ -+ /* copy the remaining vectors */ -+ for (iov_cnt=1; indexsecret->md.osfd; -+ -+#ifndef BONE_VERSION -+ fd->secret->md.connectValueValid = PR_FALSE; -+#endif -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ PRNetAddr addrCopy; -+ -+ addrCopy = *addr; -+ ((struct sockaddr *) &addrCopy)->sa_len = addrlen; -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+#endif -+ -+ /* (Copied from unix.c) -+ * We initiate the connection setup by making a nonblocking connect() -+ * call. If the connect() call fails, there are two cases we handle -+ * specially: -+ * 1. The connect() call was interrupted by a signal. In this case -+ * we simply retry connect(). -+ * 2. The NSPR socket is nonblocking and connect() fails with -+ * EINPROGRESS. We first wait until the socket becomes writable. -+ * Then we try to find out whether the connection setup succeeded -+ * or failed. -+ */ -+ -+retry: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if ((rv = connect(osfd, (struct sockaddr *)&addrCopy, addrlen)) == -1) { -+#else -+ if ((rv = connect(osfd, (struct sockaddr *)addr, addrlen)) == -1) { -+#endif -+ err = _MD_ERRNO(); -+#ifndef BONE_VERSION -+ fd->secret->md.connectReturnValue = rv; -+ fd->secret->md.connectReturnError = err; -+ fd->secret->md.connectValueValid = PR_TRUE; -+#endif -+ if( err == EINTR ) { -+#ifndef BONE_VERSION -+ snooze( 100000L ); -+#endif -+ goto retry; -+ } -+ -+#ifndef BONE_VERSION -+ if(!fd->secret->nonblocking && ((err == EINPROGRESS) || (err==EAGAIN) || (err==EALREADY))) { -+ -+ /* -+ ** There's no timeout on this connect, but that's not -+ ** a big deal, since the connect times out anyways -+ ** after 30 seconds. Just sleep for 1/10th of a second -+ ** and retry until we go through or die. -+ */ -+ goto retry; -+ } -+ -+ if( fd->secret->nonblocking && ((err == EAGAIN) || (err == EINPROGRESS))) { -+ PR_Lock(_connectLock); -+ if (connectCount < sizeof(connectList)/sizeof(connectList[0])) { -+ connectList[connectCount].osfd = osfd; -+ memcpy(&connectList[connectCount].addr, addr, addrlen); -+ connectList[connectCount].addrlen = addrlen; -+ connectList[connectCount].timeout = timeout; -+ connectCount++; -+ PR_Unlock(_connectLock); -+ set_connect_error(err); -+ } else { -+ PR_Unlock(_connectLock); -+ PR_SetError(PR_INSUFFICIENT_RESOURCES_ERROR, 0); -+ } -+ return rv; -+ } -+#else /* BONE_VERSION */ -+ if(!fd->secret->nonblocking && (err == EINTR)) { -+ -+ rv = socket_io_wait(osfd, WRITE_FD, timeout); -+ if (rv == -1) { -+ return -1; -+ } -+ -+ PR_ASSERT(rv == 1); -+/* _MD_beos_get_nonblocking_connect_error always return PR_NOT_IMPLEMENTED.. -+ err = _MD_beos_get_nonblocking_connect_error(osfd); -+ if (err != 0) { -+ set_connect_error(err); -+ return -1; -+ } -+*/ -+ return 0; -+ } -+#endif -+ -+ set_connect_error(err); -+ } -+ -+ return rv; -+} -+ -+ -+static PRStatus PR_CALLBACK SocketConnect( -+ PRFileDesc *fd, const PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 rv; /* Return value of _PR_MD_CONNECT */ -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) -+ PRNetAddr addrCopy; -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+ rv = _bt_CONNECT(fd, addrp, PR_NETADDR_SIZE(addr), timeout); -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("connect -> %d", rv)); -+ if (rv == 0) -+ return PR_SUCCESS; -+ else -+ return PR_FAILURE; -+} -+ -+static PRStatus PR_CALLBACK SocketConnectContinue( -+ PRFileDesc *fd, PRInt16 out_flags) -+{ -+ PRInt32 osfd; -+ int err; -+ int rv; -+ -+ if (out_flags & PR_POLL_NVAL) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ if ((out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0) { -+ PR_ASSERT(out_flags == 0); -+ PR_SetError(PR_IN_PROGRESS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ osfd = fd->secret->md.osfd; -+ -+ -+#ifdef BONE_VERSION /* bug 122364 */ -+ /* temporary workaround until getsockopt(SO_ERROR) works in BONE */ -+ if (out_flags & PR_POLL_EXCEPT) { -+ PR_SetError(PR_CONNECT_REFUSED_ERROR, 0); -+ return PR_FAILURE; -+ } -+ PR_ASSERT(out_flags & PR_POLL_WRITE); -+ return PR_SUCCESS; -+#else -+ rv = recv(fd->secret->md.osfd, NULL, 0, 0); -+ PR_ASSERT(-1 == rv || 0 == rv); -+ -+ if (-1 == rv && 0 != errno && errno != EAGAIN && errno != EWOULDBLOCK ) { -+ set_connect_error(errno); -+ return PR_FAILURE; -+ } -+ else -+ return PR_SUCCESS; -+#endif -+} -+ -+PRInt32 -+_bt_accept (PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+ while ((rv = accept(osfd, (struct sockaddr *) addr, -+ (int *)addrlen)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ /* If it's SUPPOSED to be a blocking thread, wait -+ * a while to see if the triggering condition gets -+ * satisfied. -+ */ -+ /* Assume that we're always using a native thread */ -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ if (rv < 0) { -+ set_accept_error(err); -+ } else if (addr != NULL) { -+ /* bug 134099 */ -+ err = getpeername(rv, (struct sockaddr *) addr, (int *)addrlen); -+ } -+done: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (rv != -1) { -+ /* Mask off the first byte of struct sockaddr (the length field) */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ return(rv); -+} -+ -+ -+ -+static PRFileDesc* PR_CALLBACK SocketAccept(PRFileDesc *fd, PRNetAddr *addr, -+PRIntervalTime timeout) -+{ -+ PRInt32 osfd; -+ PRFileDesc *fd2; -+ PRUint32 al; -+ -+ al = sizeof(PRNetAddr); -+ osfd = _bt_accept(fd, addr, &al, timeout); -+ if (osfd == -1) -+ return 0; -+ fd2 = bt_CreateFileDesc(osfd, PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (!fd2) { -+ closesocket(osfd); -+ -+ return NULL; -+ } -+ -+ fd2->secret->nonblocking = fd->secret->nonblocking; -+ fd2->secret->inheritable = fd->secret->inheritable; -+ -+#ifdef _PR_INET6 -+ if (addr && (AF_INET6 == addr->raw.family)) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, al) == PR_TRUE); -+ -+ return fd2; -+} -+ -+ -+static PRStatus PR_CALLBACK SocketBind(PRFileDesc *fd, const PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) || defined(_PR_HAVE_SOCKADDR_LEN) -+ PRNetAddr addrCopy; -+#endif -+ -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+#if defined(_PR_INET6) -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ addrCopy = *addrp; -+ ((struct sockaddr *) &addrCopy)->sa_len = PR_NETADDR_SIZE(addrp); -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+ result = bind(fd->secret->md.osfd, (struct sockaddr *) &addrCopy, PR_NETADDR_SIZE(addrp)); -+#else -+ result = bind(fd->secret->md.osfd, (struct sockaddr *) addrp, PR_NETADDR_SIZE(addrp)); -+#endif -+ -+ -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_bind_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketListen(PRFileDesc *fd, PRIntn backlog) -+{ -+ PRInt32 result,err; -+#ifndef BONE_VERSION -+ /* Bug workaround! Setting listen to 0 on Be accepts no connections. -+ ** On most UN*Xes this sets the default. -+ */ -+ -+ if( backlog == 0 ) backlog = 5; -+#endif -+ result = listen(fd->secret->md.osfd, backlog); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_listen_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketShutdown(PRFileDesc *fd, PRIntn how) -+{ -+ PRInt32 result,err; -+#ifndef BONE_VERSION -+ if (how == PR_SHUTDOWN_SEND) -+ fd->secret->md.sock_state = BE_SOCK_SHUTDOWN_WRITE; -+ else if (how == PR_SHUTDOWN_RCV) -+ fd->secret->md.sock_state = BE_SOCK_SHUTDOWN_READ; -+ else if (how == PR_SHUTDOWN_BOTH) { -+ fd->secret->md.sock_state = (BE_SOCK_SHUTDOWN_WRITE | BE_SOCK_SHUTDOWN_READ); -+ } -+#else /* BONE_VERSION */ -+ result = shutdown(fd->secret->md.osfd, how); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_shutdown_error(err); -+ return PR_FAILURE; -+ } -+#endif -+ return PR_SUCCESS; -+} -+ -+PRInt32 -+_bt_recv (PRFileDesc *fd, void *buf, PRInt32 amount, PRInt32 flags, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifndef BONE_VERSION -+ if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_READ) { -+ set_recv_error(EPIPE); -+ return -1; -+ } -+#endif -+ -+#ifdef BONE_VERSION -+ /* -+ ** Gah, stupid hack. If reading a zero amount, instantly return success. -+ ** BONE beta 6 returns EINVAL for reads of zero bytes, which parts of -+ ** mozilla use to check for socket availability. -+ */ -+ -+ if( 0 == amount ) return(0); -+#endif -+ -+ while ((rv = recv(osfd, buf, amount, flags)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ /* If socket was supposed to be blocking, -+ wait a while for the condition to be -+ satisfied. */ -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ } else if (err == EINTR) { -+ continue; -+ } else -+ break; -+ } -+ -+ if (rv < 0) { -+ set_recv_error(err); -+ } -+ -+done: -+ return(rv); -+} -+ -+static PRInt32 PR_CALLBACK SocketRecv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, -+PRIntervalTime timeout) -+{ -+ PRInt32 rv; -+ -+ if ((flags != 0) && (flags != PR_MSG_PEEK)) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv: fd=%p osfd=%d buf=%p amount=%d flags=%d", -+ fd, fd->secret->md.osfd, buf, amount, flags)); -+ -+ -+ rv = _bt_recv(fd, buf, amount, flags, timeout); -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv -> %d, error = %d, os error = %d", -+ rv, PR_GetError(), PR_GetOSError())); -+ -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK SocketRead(PRFileDesc *fd, void *buf, PRInt32 amount) -+{ -+ return SocketRecv(fd, buf, amount, 0, PR_INTERVAL_NO_TIMEOUT); -+} -+ -+PRInt32 -+_bt_send (PRFileDesc *fd, const void *buf, PRInt32 amount, PRInt32 flags, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifndef BONE_VERSION -+ if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_WRITE) -+ { -+ set_send_error(EPIPE); -+ return -1; -+ } -+#endif -+ -+ while ((rv = send(osfd, buf, amount, flags)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ -+#ifndef BONE_VERSION -+ -+ /* in UNIX implementations, you could do a socket_io_wait here. -+ * but since BeOS doesn't yet support WRITE notification in select, -+ * you're spanked. -+ */ -+ snooze( 10000L ); -+ continue; -+#else /* BONE_VERSION */ -+ if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0) -+ goto done; -+#endif -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ -+#ifdef BONE_VERSION -+ /* -+ * optimization; if bytes sent is less than "amount" call -+ * select before returning. This is because it is likely that -+ * the next writev() call will return EWOULDBLOCK. -+ */ -+ if ((!fd->secret->nonblocking) && (rv > 0) && (rv < amount) -+ && (timeout != PR_INTERVAL_NO_WAIT)) { -+ if (socket_io_wait(osfd, WRITE_FD, timeout) < 0) { -+ rv = -1; -+ goto done; -+ } -+ } -+#endif /* BONE_VERSION */ -+ -+ if (rv < 0) { -+ set_send_error(err); -+ } -+ -+#ifdef BONE_VERSION -+done: -+#endif -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSend(PRFileDesc *fd, const void *buf, PRInt32 amount, -+PRIntn flags, PRIntervalTime timeout) -+{ -+ PRInt32 temp, count; -+ -+ count = 0; -+ while (amount > 0) { -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, -+ ("send: fd=%p osfd=%d buf=%p amount=%d", -+ fd, fd->secret->md.osfd, buf, amount)); -+ temp = _bt_send(fd, buf, amount, flags, timeout); -+ if (temp < 0) { -+ count = -1; -+ break; -+ } -+ -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ -+ amount -= temp; -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("send -> %d", count)); -+ return count; -+} -+ -+static PRInt32 PR_CALLBACK SocketWrite(PRFileDesc *fd, const void *buf, PRInt32 amount) -+{ -+ return SocketSend(fd, buf, amount, 0, PR_INTERVAL_NO_TIMEOUT); -+} -+ -+static PRStatus PR_CALLBACK SocketClose(PRFileDesc *fd) -+{ -+ if (!fd || !fd->secret -+ || (fd->secret->state != _PR_FILEDESC_OPEN -+ && fd->secret->state != _PR_FILEDESC_CLOSED)) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (fd->secret->state == _PR_FILEDESC_OPEN) { -+ if (closesocket(fd->secret->md.osfd) < 0) { -+ return PR_FAILURE; -+ } -+ -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ } -+ -+ PR_ASSERT(fd); -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} -+ -+static PRInt32 PR_CALLBACK SocketAvailable(PRFileDesc *fd) -+{ -+ PRInt32 rv; -+ rv = _bt_socketavailable(fd); -+ return rv; -+} -+ -+static PRInt64 PR_CALLBACK SocketAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 rv; -+ LL_I2L(rv, _bt_socketavailable(fd)); -+ return rv; -+} -+ -+static PRStatus PR_CALLBACK SocketSync(PRFileDesc *fd) -+{ -+ return PR_SUCCESS; -+} -+ -+PRInt32 -+_bt_sendto (PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, -+ const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ PRNetAddr addrCopy; -+ -+ addrCopy = *addr; -+ ((struct sockaddr *) &addrCopy)->sa_len = addrlen; -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+ -+ while ((rv = sendto(osfd, buf, amount, flags, -+ (struct sockaddr *) &addrCopy, addrlen)) == -1) { -+#else -+ while ((rv = sendto(osfd, buf, amount, flags, -+ (struct sockaddr *) addr, addrlen)) == -1) { -+#endif -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ -+#ifdef BONE_VERSION -+ if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0) -+ goto done; -+#endif -+ } else if (err == EINTR) { -+ continue; -+ -+ } else { -+ break; -+ } -+ } -+ -+ if (rv < 0) { -+ set_sendto_error(err); -+ } -+ -+#ifdef BONE_VERSION -+done: -+#endif -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSendTo( -+ PRFileDesc *fd, const void *buf, PRInt32 amount, -+ PRIntn flags, const PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 temp, count; -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) -+ PRNetAddr addrCopy; -+#endif -+ -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+#if defined(_PR_INET6) -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+ count = 0; -+ while (amount > 0) { -+ temp = _bt_sendto(fd, buf, amount, flags, -+ addrp, PR_NETADDR_SIZE(addr), timeout); -+ if (temp < 0) { -+ count = -1; -+ break; -+ } -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ amount -= temp; -+ } -+ return count; -+} -+ -+PRInt32 -+_bt_recvfrom (PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, -+ PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+ while ((*addrlen = PR_NETADDR_SIZE(addr)), -+ ((rv = recvfrom(osfd, buf, amount, flags, -+ (struct sockaddr *) addr, -+ (int *)addrlen)) == -1)) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ -+ if (rv < 0) { -+ set_recvfrom_error(err); -+ } -+ -+done: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (rv != -1) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ return(rv); -+} -+ -+ -+ -+static PRInt32 PR_CALLBACK SocketRecvFrom(PRFileDesc *fd, void *buf, PRInt32 amount, -+PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 rv; -+ PRUint32 al; -+ -+ al = sizeof(PRNetAddr); -+ rv = _bt_recvfrom(fd, buf, amount, flags, addr, &al, timeout); -+#ifdef _PR_INET6 -+ if (addr && (AF_INET6 == addr->raw.family)) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK SocketAcceptRead(PRFileDesc *sd, PRFileDesc **nd, -+PRNetAddr **raddr, void *buf, PRInt32 amount, -+PRIntervalTime timeout) -+{ -+ /* The socket must be in blocking mode. */ -+ if (sd->secret->nonblocking) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ *nd = NULL; -+ -+ return PR_EmulateAcceptRead(sd, nd, raddr, buf, amount, timeout); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSendFile( -+ PRFileDesc *sd, PRSendFileData *sfd, -+ PRTransmitFileFlags flags, PRIntervalTime timeout) -+{ -+ /* The socket must be in blocking mode. */ -+ if (sd->secret->nonblocking) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ return PR_EmulateSendFile(sd, sfd, flags, timeout); -+} -+ -+static PRInt32 PR_CALLBACK SocketTransmitFile(PRFileDesc *sd, PRFileDesc *fd, -+const void *headers, PRInt32 hlen, PRTransmitFileFlags flags, -+PRIntervalTime timeout) -+{ -+ PRSendFileData sfd; -+ -+ sfd.fd = fd; -+ sfd.file_offset = 0; -+ sfd.file_nbytes = 0; -+ sfd.header = headers; -+ sfd.hlen = hlen; -+ sfd.trailer = NULL; -+ sfd.tlen = 0; -+ -+ return(SocketSendFile(sd, &sfd, flags, timeout)); -+} -+ -+static PRStatus PR_CALLBACK SocketGetName(PRFileDesc *fd, PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ PRUint32 addrlen; -+ -+ addrlen = sizeof(PRNetAddr); -+ result = getsockname(fd->secret->md.osfd, (struct sockaddr *) addr, &addrlen); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_getsockname_error(err); -+ return PR_FAILURE; -+ } -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (result == 0) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ -+#ifdef _PR_INET6 -+ if (AF_INET6 == addr->raw.family) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, addrlen) == PR_TRUE); -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketGetPeerName(PRFileDesc *fd, PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ PRUint32 addrlen; -+ -+ addrlen = sizeof(PRNetAddr); -+ result = getpeername(fd->secret->md.osfd, (struct sockaddr *) addr, &addrlen); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_getpeername_error(err); -+ return PR_FAILURE; -+ } -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (result == 0) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ -+#ifdef _PR_INET6 -+ if (AF_INET6 == addr->raw.family) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, addrlen) == PR_TRUE); -+ return PR_SUCCESS; -+} -+ -+static PRInt16 PR_CALLBACK SocketPoll( -+ PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags) -+{ -+ *out_flags = 0; -+ return in_flags; -+} /* SocketPoll */ -+ -+ -+PRStatus PR_CALLBACK SocketGetOption(PRFileDesc *fd, PRSocketOptionData *data) -+{ -+ PRStatus rv; -+ PRInt32 level, name, length, err; -+ -+ /* -+ * PR_SockOpt_Nonblocking is a special case that does not -+ * translate to a getsockopt() call -+ */ -+ if (PR_SockOpt_Nonblocking == data->option) -+ { -+ data->value.non_blocking = fd->secret->nonblocking; -+ return PR_SUCCESS; -+ } -+ -+ rv = _PR_MapOptionName(data->option, &level, &name); -+ if (PR_SUCCESS != rv) return rv; -+ -+ switch (data->option) -+ { -+ case PR_SockOpt_Linger: -+ { -+#ifdef BONE_VERSION -+ struct linger linger; -+ length = sizeof(linger); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char *) &linger, &length)) -+ { -+ PR_ASSERT(sizeof(linger) == length); -+ data->value.linger.polarity = -+ (linger.l_onoff) ? PR_TRUE : PR_FALSE; -+ data->value.linger.linger = -+ PR_SecondsToInterval(linger.l_linger); -+ return PR_SUCCESS; -+ } -+ break; -+#else -+ PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -+ return PR_FAILURE; -+#endif -+ } -+ case PR_SockOpt_Reuseaddr: -+ case PR_SockOpt_Keepalive: -+ case PR_SockOpt_NoDelay: -+ case PR_SockOpt_Broadcast: -+ { -+ PRIntn value; -+ length = sizeof(value); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char *) &value, &length)) -+ { -+ data->value.reuse_addr = (0 == value) ? PR_FALSE : PR_TRUE; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_McastLoopback: -+ { -+ PRUint8 bool; -+ length = sizeof(bool); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&bool, &length)) -+ { -+ data->value.mcast_loopback = (0 == bool) ? PR_FALSE : PR_TRUE; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_RecvBufferSize: -+ case PR_SockOpt_SendBufferSize: -+ case PR_SockOpt_MaxSegment: -+ { -+ PRIntn value; -+ length = sizeof(value); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, &length)) -+ { -+ data->value.recv_buffer_size = value; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_IpTimeToLive: -+ case PR_SockOpt_IpTypeOfService: -+ { -+ /* These options should really be an int (or PRIntn). */ -+ length = sizeof(PRUintn); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.ip_ttl, &length)) -+ return PR_SUCCESS; -+ break; -+ } -+ case PR_SockOpt_McastTimeToLive: -+ { -+ PRUint8 ttl; -+ length = sizeof(ttl); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&ttl, &length)) -+ { -+ data->value.mcast_ttl = ttl; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+#ifdef IP_ADD_MEMBERSHIP -+ case PR_SockOpt_AddMember: -+ case PR_SockOpt_DropMember: -+ { -+ struct ip_mreq mreq; -+ length = sizeof(mreq); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&mreq, &length)) -+ { -+ data->value.add_member.mcaddr.inet.ip = -+ mreq.imr_multiaddr.s_addr; -+ data->value.add_member.ifaddr.inet.ip = -+ mreq.imr_interface.s_addr; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+#endif /* IP_ADD_MEMBERSHIP */ -+ case PR_SockOpt_McastInterface: -+ { -+ /* This option is a struct in_addr. */ -+ length = sizeof(data->value.mcast_if.inet.ip); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, -+ (char*)&data->value.mcast_if.inet.ip, &length)) -+ return PR_SUCCESS; -+ break; -+ } -+ default: -+ PR_NOT_REACHED("Unknown socket option"); -+ break; -+ } -+ err = _MD_ERRNO(); -+ set_getsockopt_error(err); -+ return PR_FAILURE; -+} /* SocketGetOption */ -+ -+PRStatus PR_CALLBACK SocketSetOption(PRFileDesc *fd, const PRSocketOptionData *data) -+{ -+ PRStatus rv; -+ PRInt32 level, name, result, err; -+ -+ /* -+ * PR_SockOpt_Nonblocking is a special case that does not -+ * translate to a setsockopt call. -+ */ -+ if (PR_SockOpt_Nonblocking == data->option) -+ { -+ fd->secret->nonblocking = data->value.non_blocking; -+ return PR_SUCCESS; -+ } -+ -+ rv = _PR_MapOptionName(data->option, &level, &name); -+ if (PR_SUCCESS != rv) return rv; -+ -+ switch (data->option) -+ { -+ case PR_SockOpt_Linger: -+ { -+#ifdef BONE_VERSION -+ struct linger linger; -+ linger.l_onoff = data->value.linger.polarity; -+ linger.l_linger = PR_IntervalToSeconds(data->value.linger.linger); -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&linger, sizeof(linger)); -+ break; -+#else -+ PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -+ return PR_FAILURE; -+#endif -+ } -+ case PR_SockOpt_Reuseaddr: -+ case PR_SockOpt_Keepalive: -+ case PR_SockOpt_NoDelay: -+ case PR_SockOpt_Broadcast: -+ { -+ PRIntn value; -+ value = (data->value.reuse_addr) ? 1 : 0; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, sizeof(value)); -+ break; -+ } -+ case PR_SockOpt_McastLoopback: -+ { -+ PRUint8 bool; -+ bool = data->value.mcast_loopback ? 1 : 0; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&bool, sizeof(bool)); -+ break; -+ } -+ case PR_SockOpt_RecvBufferSize: -+ case PR_SockOpt_SendBufferSize: -+ case PR_SockOpt_MaxSegment: -+ { -+ PRIntn value = data->value.recv_buffer_size; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, sizeof(value)); -+ break; -+ } -+ case PR_SockOpt_IpTimeToLive: -+ case PR_SockOpt_IpTypeOfService: -+ { -+ /* These options should really be an int (or PRIntn). */ -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.ip_ttl, sizeof(PRUintn)); -+ break; -+ } -+ case PR_SockOpt_McastTimeToLive: -+ { -+ PRUint8 ttl; -+ ttl = data->value.mcast_ttl; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&ttl, sizeof(ttl)); -+ break; -+ } -+#ifdef IP_ADD_MEMBERSHIP -+ case PR_SockOpt_AddMember: -+ case PR_SockOpt_DropMember: -+ { -+ struct ip_mreq mreq; -+ mreq.imr_multiaddr.s_addr = -+ data->value.add_member.mcaddr.inet.ip; -+ mreq.imr_interface.s_addr = -+ data->value.add_member.ifaddr.inet.ip; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&mreq, sizeof(mreq)); -+ break; -+ } -+#endif /* IP_ADD_MEMBERSHIP */ -+ case PR_SockOpt_McastInterface: -+ { -+ /* This option is a struct in_addr. */ -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.mcast_if.inet.ip, -+ sizeof(data->value.mcast_if.inet.ip)); -+ break; -+ } -+ default: -+ PR_NOT_REACHED("Unknown socket option"); -+ break; -+ } -+ if (0 == result) -+ return PR_SUCCESS; -+ err = _MD_ERRNO(); -+ set_setsockopt_error(err); -+ return PR_FAILURE; -+} /* SocketSetOption */ -+ -+ -+ -+static PRIOMethods tcpMethods = { -+ PR_DESC_SOCKET_TCP, -+ SocketClose, -+ SocketRead, -+ SocketWrite, -+ SocketAvailable, -+ SocketAvailable64, -+ SocketSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ SocketWritev, -+ SocketConnect, -+ SocketAccept, -+ SocketBind, -+ SocketListen, -+ SocketShutdown, -+ SocketRecv, -+ SocketSend, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ SocketAcceptRead, -+ SocketTransmitFile, -+ SocketGetName, -+ SocketGetPeerName, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ SocketGetOption, -+ SocketSetOption, -+ SocketSendFile, -+ SocketConnectContinue, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+static PRIOMethods udpMethods = { -+ PR_DESC_SOCKET_UDP, -+ SocketClose, -+ SocketRead, -+ SocketWrite, -+ SocketAvailable, -+ SocketAvailable64, -+ SocketSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ SocketWritev, -+ SocketConnect, -+ (PRAcceptFN)_PR_InvalidDesc, -+ SocketBind, -+ SocketListen, -+ SocketShutdown, -+ SocketRecv, -+ SocketSend, -+ SocketRecvFrom, -+ SocketSendTo, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ SocketGetName, -+ SocketGetPeerName, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ SocketGetOption, -+ SocketSetOption, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+ -+static PRIOMethods socketpollfdMethods = { -+ (PRDescType) 0, -+ (PRCloseFN)_PR_InvalidStatus, -+ (PRReadFN)_PR_InvalidInt, -+ (PRWriteFN)_PR_InvalidInt, -+ (PRAvailableFN)_PR_InvalidInt, -+ (PRAvailable64FN)_PR_InvalidInt64, -+ (PRFsyncFN)_PR_InvalidStatus, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+static PRIOMethods _pr_socketpollfd_methods = { -+ (PRDescType) 0, -+ (PRCloseFN)_PR_InvalidStatus, -+ (PRReadFN)_PR_InvalidInt, -+ (PRWriteFN)_PR_InvalidInt, -+ (PRAvailableFN)_PR_InvalidInt, -+ (PRAvailable64FN)_PR_InvalidInt64, -+ (PRFsyncFN)_PR_InvalidStatus, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetTCPMethods() -+{ -+ return &tcpMethods; -+} -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetUDPMethods() -+{ -+ return &udpMethods; -+} -+ -+static const PRIOMethods* PR_GetSocketPollFdMethods(void) -+{ -+ return &_pr_socketpollfd_methods; -+} /* PR_GetSocketPollFdMethods */ -+ -+PR_IMPLEMENT(PRInt32) PR_Poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout) -+{ -+ PRInt32 rv = 0; -+ /* -+ * This code is almost a duplicate of w32poll.c's _PR_MD_PR_POLL(). -+ */ -+ fd_set rd, wt, ex; -+ PRFileDesc *bottom; -+ PRPollDesc *pd, *epd; -+ PRInt32 maxfd = -1, ready, err; -+ PRIntervalTime remaining, elapsed, start; -+ -+ struct timeval tv, *tvp = NULL; -+ -+ if (0 == npds) { -+ PR_Sleep(timeout); -+ return rv; -+ } -+ -+ FD_ZERO(&rd); -+ FD_ZERO(&wt); -+ FD_ZERO(&ex); -+ -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ PRInt16 in_flags_read = 0, in_flags_write = 0; -+ PRInt16 out_flags_read = 0, out_flags_write = 0; -+ -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ if (pd->in_flags & PR_POLL_READ) -+ { -+ in_flags_read = (pd->fd->methods->poll)(pd->fd, pd->in_flags & ~PR_POLL_WRITE, &out_flags_read); -+ } -+ if (pd->in_flags & PR_POLL_WRITE) -+ { -+ in_flags_write = (pd->fd->methods->poll)(pd->fd, pd->in_flags & ~PR_POLL_READ, &out_flags_write); -+ } -+ if ((0 != (in_flags_read & out_flags_read)) -+ || (0 != (in_flags_write & out_flags_write))) -+ { -+ /* this one's ready right now */ -+ if (0 == ready) -+ { -+ /* -+ * We will have to return without calling the -+ * system poll/select function. So zero the -+ * out_flags fields of all the poll descriptors -+ * before this one. -+ */ -+ PRPollDesc *prev; -+ for (prev = pds; prev < pd; prev++) -+ { -+ prev->out_flags = 0; -+ } -+ } -+ ready += 1; -+ pd->out_flags = out_flags_read | out_flags_write; -+ } -+ else -+ { -+ pd->out_flags = 0; /* pre-condition */ -+ -+ /* make sure this is an NSPR supported stack */ -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ PR_ASSERT(NULL != bottom); /* what to do about that? */ -+ if ((NULL != bottom) -+ && (_PR_FILEDESC_OPEN == bottom->secret->state)) -+ { -+ if (0 == ready) -+ { -+ PRInt32 osfd = bottom->secret->md.osfd; -+ if (osfd > maxfd) maxfd = osfd; -+ if (in_flags_read & PR_POLL_READ) -+ { -+ pd->out_flags |= _PR_POLL_READ_SYS_READ; -+ FD_SET(osfd, &rd); -+ } -+ if (in_flags_read & PR_POLL_WRITE) -+ { -+ pd->out_flags |= _PR_POLL_READ_SYS_WRITE; -+ FD_SET(osfd, &wt); -+ } -+ if (in_flags_write & PR_POLL_READ) -+ { -+ pd->out_flags |= _PR_POLL_WRITE_SYS_READ; -+ FD_SET(osfd, &rd); -+ } -+ if (in_flags_write & PR_POLL_WRITE) -+ { -+ pd->out_flags |= _PR_POLL_WRITE_SYS_WRITE; -+ FD_SET(osfd, &wt); -+ } -+ if (pd->in_flags & PR_POLL_EXCEPT) FD_SET(osfd, &ex); -+ } -+ } -+ else -+ { -+ if (0 == ready) -+ { -+ PRPollDesc *prev; -+ for (prev = pds; prev < pd; prev++) -+ { -+ prev->out_flags = 0; -+ } -+ } -+ ready += 1; /* this will cause an abrupt return */ -+ pd->out_flags = PR_POLL_NVAL; /* bogii */ -+ } -+ } -+ } -+ else -+ { -+ pd->out_flags = 0; -+ } -+ } -+ -+ if (0 != ready) return ready; /* no need to block */ -+ -+ remaining = timeout; -+ start = PR_IntervalNow(); -+ -+ retry: -+ if (timeout != PR_INTERVAL_NO_TIMEOUT) -+ { -+ PRInt32 ticksPerSecond = PR_TicksPerSecond(); -+ tv.tv_sec = remaining / ticksPerSecond; -+ tv.tv_usec = PR_IntervalToMicroseconds( remaining % ticksPerSecond ); -+ tvp = &tv; -+ } -+ -+ ready = select(maxfd + 1, &rd, &wt, &ex, tvp); -+ -+ if (ready == -1 && errno == EINTR) -+ { -+ if (timeout == PR_INTERVAL_NO_TIMEOUT) goto retry; -+ else -+ { -+ elapsed = (PRIntervalTime) (PR_IntervalNow() - start); -+ if (elapsed > timeout) ready = 0; /* timed out */ -+ else -+ { -+ remaining = timeout - elapsed; -+ goto retry; -+ } -+ } -+ } -+ -+ /* -+ ** Now to unravel the select sets back into the client's poll -+ ** descriptor list. Is this possibly an area for pissing away -+ ** a few cycles or what? -+ */ -+ if (ready > 0) -+ { -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ PRInt16 out_flags = 0; -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ PRInt32 osfd; -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ PR_ASSERT(NULL != bottom); -+ -+ osfd = bottom->secret->md.osfd; -+ -+ if (FD_ISSET(osfd, &rd)) -+ { -+ if (pd->out_flags & _PR_POLL_READ_SYS_READ) -+ out_flags |= PR_POLL_READ; -+ if (pd->out_flags & _PR_POLL_WRITE_SYS_READ) -+ out_flags |= PR_POLL_WRITE; -+ } -+ if (FD_ISSET(osfd, &wt)) -+ { -+ if (pd->out_flags & _PR_POLL_READ_SYS_WRITE) -+ out_flags |= PR_POLL_READ; -+ if (pd->out_flags & _PR_POLL_WRITE_SYS_WRITE) -+ out_flags |= PR_POLL_WRITE; -+ } -+ if (FD_ISSET(osfd, &ex)) out_flags |= PR_POLL_EXCEPT; -+ -+/* Workaround for nonblocking connects under net_server */ -+#ifndef BONE_VERSION -+ if (out_flags) -+ { -+ /* check if it is a pending connect */ -+ int i = 0, j = 0; -+ PR_Lock( _connectLock ); -+ for( i = 0; i < connectCount; i++ ) -+ { -+ if(connectList[i].osfd == osfd) -+ { -+ int connectError; -+ int connectResult; -+ -+ connectResult = connect(connectList[i].osfd, -+ &connectList[i].addr, -+ connectList[i].addrlen); -+ connectError = errno; -+ -+ if(connectResult < 0 ) -+ { -+ if(connectError == EINTR || connectError == EWOULDBLOCK || -+ connectError == EINPROGRESS || connectError == EALREADY) -+ { -+ break; -+ } -+ } -+ -+ if(i == (connectCount - 1)) -+ { -+ connectList[i].osfd = -1; -+ } else { -+ for(j = i; j < connectCount; j++ ) -+ { -+ memcpy( &connectList[j], &connectList[j+1], -+ sizeof(connectList[j])); -+ } -+ } -+ connectCount--; -+ -+ bottom->secret->md.connectReturnValue = connectResult; -+ bottom->secret->md.connectReturnError = connectError; -+ bottom->secret->md.connectValueValid = PR_TRUE; -+ break; -+ } -+ } -+ PR_Unlock( _connectLock ); -+ } -+#endif -+ } -+ pd->out_flags = out_flags; -+ if (out_flags) ready++; -+ } -+ PR_ASSERT(ready > 0); -+ } -+ else if (ready < 0) -+ { -+ err = _MD_ERRNO(); -+ if (err == EBADF) -+ { -+ /* Find the bad fds */ -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ pd->out_flags = 0; -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ if (fcntl(bottom->secret->md.osfd, F_GETFL, 0) == -1) -+ { -+ pd->out_flags = PR_POLL_NVAL; -+ ready++; -+ } -+ } -+ } -+ PR_ASSERT(ready > 0); -+ } -+ else set_select_error(err); -+ } -+ -+ return ready; -+} /* PR_POLL */ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_CreateSocketPollFd(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ fd = _PR_Getfd(); -+ -+ if (fd == NULL) PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ else -+ { -+ fd->secret->md.osfd = osfd; -+ fd->secret->inheritable = _PR_TRI_FALSE; -+ fd->secret->state = _PR_FILEDESC_OPEN; -+ fd->methods = PR_GetSocketPollFdMethods(); -+ } -+ -+ return fd; -+} /* PR_CreateSocketPollFD */ -+ -+PR_IMPLEMENT(PRStatus) PR_DestroySocketPollFd(PRFileDesc *fd) -+{ -+ if (NULL == fd) -+ { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} /* PR_DestroySocketPollFd */ -+ -+ -+PR_IMPLEMENT(PRFileDesc *) PR_ImportTCPSocket(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetTCPMethods(), _PR_TRI_UNKNOWN, true); -+ if (fd == NULL) -+ closesocket(osfd); -+ return(fd); -+} -+ -+PR_IMPLEMENT(PRFileDesc *) PR_ImportUDPSocket(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetUDPMethods(), _PR_TRI_UNKNOWN, true); -+ if (fd == NULL) -+ closesocket(osfd); -+ return(fd); -+} -+ -+ -+#ifndef XP_HAIKU -+int socketpair (int family, int type, int protocol, int sv[2]) -+{ -+ int insock, outsock, acceptedsock; -+ struct sockaddr_in addrs[2]; -+ int alen; -+ /* that's really only so we can build... */ -+ /*fprintf(stderr, "socketpair(%d, %d, %d)\n", family, type, protocol);*/ -+ if (family != AF_INET) { -+ /*fatal*/fprintf(stderr, "socketpair(%d, %d, %d): family not supported\n", family, type, protocol); -+ errno = EPFNOSUPPORT; -+ return -1; -+ } -+ if (type != SOCK_DGRAM && type != SOCK_STREAM) { -+ errno = EPROTONOSUPPORT; -+ return -1; -+ } -+ addrs[0].sin_family = AF_INET; -+ addrs[0].sin_port = 0; -+ addrs[0].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ addrs[1].sin_family = AF_INET; -+ addrs[1].sin_port = 0; -+ addrs[1].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ alen = sizeof(struct sockaddr_in); -+ -+ insock = socket(family, type, protocol); -+ if (insock < 0) -+ goto err1; -+ if (bind(insock, (struct sockaddr *)&addrs[0], alen) < 0) -+ goto err2; -+ if (getsockname(insock, (struct sockaddr *)&addrs[0], &alen) < 0) -+ goto err2; -+ if (type == SOCK_STREAM) -+ listen(insock, 2); -+ -+ outsock = socket(family, type, protocol); -+ if (outsock < 0) -+ goto err2; -+ alen = sizeof(struct sockaddr_in); -+ if (bind(outsock, (struct sockaddr *)&addrs[1], alen) < 0) -+ goto err2; -+ if (getsockname(outsock, (struct sockaddr *)&addrs[1], &alen) < 0) -+ goto err3; -+ addrs[0].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ addrs[1].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ /*fprintf(stderr, "socketpair: %08lx:%d <-> %08lx:%d\n", -+ ((struct sockaddr_in *)&addrs[0])->sin_addr.s_addr, -+ ((struct sockaddr_in *)&addrs[0])->sin_port, -+ ((struct sockaddr_in *)&addrs[1])->sin_addr.s_addr, -+ ((struct sockaddr_in *)&addrs[1])->sin_port);*/ -+ -+ if (connect(outsock, (struct sockaddr *)&addrs[0], alen) < 0) -+ goto err3; -+ if (type == SOCK_DGRAM) { -+ if (connect(insock, (struct sockaddr *)&addrs[1], alen) < 0) -+ goto err3; -+ sv[0] = insock; -+ } else { -+ acceptedsock = accept(insock, (struct sockaddr *)&addrs[1], &alen); -+ if (acceptedsock < 0) -+ goto err3; -+ closesocket(insock); -+ sv[0] = acceptedsock; -+ } -+ sv[1] = outsock; -+ return 0; -+err3: -+ closesocket(outsock); -+err2: -+ closesocket(insock); -+err1: -+ fprintf(stderr,"socketpair: error 0x%08x\n", errno); -+ return -1; -+} -+#endif -+ -+PR_IMPLEMENT(PRStatus) PR_NewTCPSocketPair(PRFileDesc *f[]) -+{ -+ PRInt32 rv, osfd[2]; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+#ifdef XP_HAIKU -+ rv = socketpair(AF_UNIX, SOCK_STREAM, 0, osfd); -+#else -+ rv = socketpair(AF_INET, SOCK_STREAM, 0, osfd); -+#endif -+ if (rv == -1) { -+ return PR_FAILURE; -+ } -+ f[0] = bt_CreateFileDesc(osfd[0], PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (NULL == f[0]) { -+ closesocket(osfd[0]); -+ closesocket(osfd[1]); -+ /* PR_AllocFileDesc() has invoked PR_SetError(). */ -+ return PR_FAILURE; -+ } -+ f[1] = bt_CreateFileDesc(osfd[1], PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (NULL == f[1]) { -+ PR_Close(f[0]); -+ closesocket(osfd[1]); -+ /* PR_AllocFileDesc() has invoked PR_SetError(). */ -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetConnectStatus(const PRPollDesc *pd) { -+ PRInt32 osfd; -+#ifndef BONE_VERSION -+ int rv; -+#endif -+ PRFileDesc *bottom; -+ -+ if (pd->out_flags & PR_POLL_NVAL) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if ((pd->out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0) { -+ PR_ASSERT(pd->out_flags == 0); -+ PR_SetError(PR_IN_PROGRESS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ -+ /* Find the NSPR layer and invoke its connectcontinue method */ -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ if (NULL == bottom) -+ { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ osfd = bottom->secret->md.osfd; -+#ifdef BONE_VERSION /* bug 122364 */ -+ /* temporary workaround until getsockopt(SO_ERROR) works in BONE */ -+ if (pd->out_flags & PR_POLL_EXCEPT) { -+ PR_SetError(PR_CONNECT_REFUSED_ERROR, 0); -+ return PR_FAILURE; -+ } -+ PR_ASSERT(pd->out_flags & PR_POLL_WRITE); -+ return PR_SUCCESS; -+#else -+ rv = recv(bottom->secret->md.osfd, NULL, 0, 0); -+ PR_ASSERT(-1 == rv || 0 == rv); -+ -+ if (-1 == rv && 0 != errno && errno != EAGAIN && errno != EWOULDBLOCK ) { -+ set_connect_error(errno); -+ return PR_FAILURE; -+ } -+ else -+ return PR_SUCCESS; -+#endif /* BONE_VERSION */ -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_Socket(PRInt32 domain, PRInt32 type, PRInt32 proto) -+{ -+ PRInt32 osfd, err; -+ PRFileDesc *fd; -+ PRInt32 tmp_domain = domain; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ if (PR_AF_INET != domain -+ && PR_AF_INET6 != domain -+ ) { -+ PR_SetError(PR_ADDRESS_NOT_SUPPORTED_ERROR, 0); -+ return NULL; -+ } -+ if( type != SOCK_STREAM && type != SOCK_DGRAM ) -+ { -+ PR_SetError(PR_ADDRESS_NOT_SUPPORTED_ERROR, 0); -+ return NULL; -+ } -+ -+#if defined(_PR_INET6_PROBE) -+ if (PR_AF_INET6 == domain) { -+ if (_pr_ipv6_is_present == PR_FALSE) -+ domain = AF_INET; -+ else -+ domain = AF_INET6; -+ } -+#elif defined(_PR_INET6) -+ if (PR_AF_INET6 == domain) -+ domain = AF_INET6; -+#else -+ if (PR_AF_INET6 == domain) -+ domain = AF_INET; -+#endif /* _PR_INET6 */ -+#ifndef BONE_VERSION -+ osfd = socket(domain, type, 0); -+#else -+ osfd = socket(domain, type, proto); -+#endif -+ if (osfd == -1) { -+ err = _MD_ERRNO(); -+ set_socket_error(err); -+ return 0; -+ } -+ fd = bt_CreateFileDesc(osfd, SOCK_STREAM == type?PR_GetTCPMethods() : PR_GetUDPMethods(), _PR_TRI_TRUE, true); -+ -+ if (fd != NULL) { -+#if defined(_PR_INET6_PROBE) || !defined(_PR_INET6) -+ /* -+ * For platforms with no support for IPv6 -+ * create layered socket for IPv4-mapped IPv6 addresses -+ */ -+ if (PR_AF_INET6 == tmp_domain && PR_AF_INET == domain) { -+ if (PR_FAILURE == _pr_push_ipv6toipv4_layer(fd)) { -+ PR_Close(fd); -+ fd = NULL; -+ } -+ } -+#endif -+ } else -+ closesocket(osfd); -+ -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRFileDesc *) PR_NewTCPSocket(void) -+{ -+ return PR_Socket(AF_INET, SOCK_STREAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_NewUDPSocket(void) -+{ -+ return PR_Socket(AF_INET, SOCK_DGRAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc *) PR_OpenTCPSocket(PRIntn af) -+{ -+ return PR_Socket(af, SOCK_STREAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_OpenUDPSocket(PRIntn af) -+{ -+ return PR_Socket(af, SOCK_DGRAM, 0); -+} -+ -Index: mozilla/nsprpub/pr/src/bthreads/btlocks.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btlocks.c,v -retrieving revision 3.7 -diff -u -8 -p -w -r3.7 btlocks.c ---- mozilla/nsprpub/pr/src/bthreads/btlocks.c 23 Feb 2005 17:43:13 -0000 3.7 -+++ mozilla/nsprpub/pr/src/bthreads/btlocks.c 8 Jul 2009 21:53:14 -0000 -@@ -38,44 +38,38 @@ - /* - ** File: btlocks.c - ** Description: Implemenation for thread locks using bthreads - ** Exports: prlock.h - */ - - #include "primpl.h" - --#include --#include -- - void - _PR_InitLocks (void) - { - } - - PR_IMPLEMENT(PRLock*) - PR_NewLock (void) - { - PRLock *lock; - status_t semresult; - - if (!_pr_initialized) _PR_ImplicitInitialization(); - - lock = PR_NEWZAP(PRLock); - if (lock != NULL) { -- - lock->benaphoreCount = 0; - lock->semaphoreID = create_sem( 0, "nsprLockSem" ); - if( lock->semaphoreID < B_NO_ERROR ) { -- - PR_DELETE( lock ); - lock = NULL; - } - } -- - return lock; - } - - PR_IMPLEMENT(void) - PR_DestroyLock (PRLock* lock) - { - status_t result; - -@@ -83,34 +77,34 @@ PR_IMPLEMENT(void) - result = delete_sem(lock->semaphoreID); - PR_ASSERT(result == B_NO_ERROR); - PR_DELETE(lock); - } - - PR_IMPLEMENT(void) - PR_Lock (PRLock* lock) - { -- PR_ASSERT(lock != NULL); -- -- if( atomic_add( &lock->benaphoreCount, 1 ) > 0 ) { -+ status_t result; - -- if( acquire_sem(lock->semaphoreID ) != B_NO_ERROR ) { -+ PR_ASSERT(lock != NULL); - -- atomic_add( &lock->benaphoreCount, -1 ); -+ if( _MD_ATOMIC_INCREMENT( &lock->benaphoreCount) > 1 ) { -+ result = acquire_sem(lock->semaphoreID ); -+ PR_ASSERT(result == B_NO_ERROR); -+ if( result != B_NO_ERROR ) { -+ _MD_ATOMIC_DECREMENT( &lock->benaphoreCount); - return; - } - } -- - lock->owner = find_thread( NULL ); - } - - PR_IMPLEMENT(PRStatus) - PR_Unlock (PRLock* lock) - { - PR_ASSERT(lock != NULL); - lock->owner = NULL; -- if( atomic_add( &lock->benaphoreCount, -1 ) > 1 ) { -- -+ if( _MD_ATOMIC_DECREMENT( &lock->benaphoreCount ) > 0 ) { - release_sem_etc( lock->semaphoreID, 1, B_DO_NOT_RESCHEDULE ); - } - - return PR_SUCCESS; - } -Index: mozilla/nsprpub/pr/src/bthreads/btmisc.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btmisc.c,v -retrieving revision 3.5 -diff -u -8 -p -w -r3.5 btmisc.c ---- mozilla/nsprpub/pr/src/bthreads/btmisc.c 25 Apr 2004 15:00:57 -0000 3.5 -+++ mozilla/nsprpub/pr/src/bthreads/btmisc.c 8 Jul 2009 21:53:14 -0000 -@@ -15,16 +15,17 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your -@@ -33,72 +34,38 @@ - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" - #include - --// void _PR_InitCPUs(void) {PT_LOG("_PR_InitCPUs")} --// void _MD_StartInterrupts(void) {PT_LOG("_MD_StartInterrupts")} -- --/* this is a total hack.. */ -- -+/* this is a total hack.. -+ * It's needed for netserver to compile. -+ * See nsprpub/pr/include/prnetdb.h -+ */ -+#ifndef BONE_VERSION - struct protoent* getprotobyname(const char* name) - { - return 0; - } - - struct protoent* getprotobynumber(int number) - { - return 0; - } -- --/* this is needed by prinit for some reason */ --void --_PR_InitStacks (void) --{ --} -- --/* this is needed by prinit for some reason */ --void --_PR_InitTPD (void) --{ --} -- --/* --** Create extra virtual processor threads. Generally used with MP systems. --*/ --PR_IMPLEMENT(void) -- PR_SetConcurrency (PRUintn numCPUs) --{ --} -- --/* --** Set thread recycle mode to on (1) or off (0) --*/ --PR_IMPLEMENT(void) -- PR_SetThreadRecycleMode (PRUint32 flag) --{ --} -+#endif - - /* - ** Get context registers, return with error for now. - */ -- - PR_IMPLEMENT(PRWord *) - _MD_HomeGCRegisters( PRThread *t, int isCurrent, int *np ) - { - return 0; - } - --PR_IMPLEMENT(void *) --PR_GetSP( PRThread *t ) --{ -- return 0; --} -- - PR_IMPLEMENT(PRStatus) - PR_EnumerateThreads( PREnumerator func, void *arg ) - { - return PR_FAILURE; - } -Index: mozilla/nsprpub/pr/src/bthreads/btsem.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btsem.c,v -retrieving revision 3.7 -diff -u -8 -p -w -r3.7 btsem.c ---- mozilla/nsprpub/pr/src/bthreads/btsem.c 23 Feb 2005 17:43:13 -0000 3.7 -+++ mozilla/nsprpub/pr/src/bthreads/btsem.c 8 Jul 2009 21:53:14 -0000 -@@ -33,16 +33,17 @@ - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include - - #include "primpl.h" -+#include "obsolete/prsem.h" - - /* - ** Create a new semaphore object. - */ - PR_IMPLEMENT(PRSemaphore*) - PR_NewSem (PRUintn value) - { - PRSemaphore *semaphore; -Index: mozilla/nsprpub/pr/src/bthreads/btthread.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btthread.c,v -retrieving revision 3.8 -diff -u -8 -p -w -r3.8 btthread.c ---- mozilla/nsprpub/pr/src/bthreads/btthread.c 25 Apr 2004 15:00:57 -0000 3.8 -+++ mozilla/nsprpub/pr/src/bthreads/btthread.c 8 Jul 2009 21:53:16 -0000 -@@ -115,22 +115,19 @@ _PR_InitThreads (PRThreadType type, PRTh - - primordialThread->md.joinSem = B_ERROR; - - /* - ** Set the priority to the desired level. - */ - - beThreadPriority = _bt_MapNSPRToNativePriority( priority ); -- - set_thread_priority( find_thread( NULL ), beThreadPriority ); -- - primordialThread->priority = priority; - -- - /* set the thread's state - note that the thread is not joinable */ - primordialThread->state |= BT_THREAD_PRIMORD; - if (type == PR_SYSTEM_THREAD) - primordialThread->state |= BT_THREAD_SYSTEM; - - /* - ** Allocate a TLS slot for the PRThread structure (just using - ** native TLS, as opposed to NSPR TPD, will make PR_GetCurrentThread() -@@ -214,44 +211,38 @@ void _bt_CleanupThread(void *arg) - PR_Lock(joinSemLock); - - if (me->md.is_joining) - { - /* someone is already waiting to join us (they've - allocated a joinSem for us) - let them know we're - ready */ - delete_sem(me->md.joinSem); -- - PR_Unlock(joinSemLock); -- - } - else - { - /* noone is currently waiting for our demise - it - is our responsibility to allocate the joinSem - and block on it */ - me->md.joinSem = create_sem(0, "join sem"); -- - /* we're done accessing our joinSem */ - PR_Unlock(joinSemLock); -- - /* wait for someone to join us */ - while (acquire_sem(me->md.joinSem) == B_INTERRUPTED); - } - } - - /* if this is a user thread, we must update our books */ - if ((me->state & BT_THREAD_SYSTEM) == 0) - { - /* synchronize access to bt_book */ - PR_Lock( bt_book.ml ); -- - /* decrement the number of currently-alive user threads */ - bt_book.threadCount--; -- - if (bt_book.threadCount == 0 && bt_book.cleanUpSem != B_ERROR) { - /* we are the last user thread, and the primordial thread is - blocked in PR_Cleanup() waiting for us to finish - notify - it */ - delete_sem(bt_book.cleanUpSem); - } - - PR_Unlock( bt_book.ml ); -@@ -272,67 +263,60 @@ _bt_root (void* arg) - PRThread *thred = (PRThread*)arg; - PRIntn rv; - void *privData; - status_t result; - int i; - - /* save our PRThread object into our TLS */ - tls_set(tls_prThreadSlot, thred); -- - thred->startFunc(thred->arg); /* run the dang thing */ -- - /* clean up */ - _bt_CleanupThread(NULL); - - return 0; - } - - PR_IMPLEMENT(PRThread*) - PR_CreateThread (PRThreadType type, void (*start)(void* arg), void* arg, - PRThreadPriority priority, PRThreadScope scope, - PRThreadState state, PRUint32 stackSize) - { - PRUint32 bePriority; -- - PRThread* thred; - - if (!_pr_initialized) _PR_ImplicitInitialization(); - - thred = PR_NEWZAP(PRThread); - if (thred == NULL) - { - PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); - return NULL; - } - - thred->md.joinSem = B_ERROR; -- - thred->arg = arg; - thred->startFunc = start; - thred->priority = priority; - - if( state == PR_JOINABLE_THREAD ) - { - thred->state |= BT_THREAD_JOINABLE; - } - - /* keep some books */ -- - PR_Lock( bt_book.ml ); - - if (type == PR_USER_THREAD) - { - bt_book.threadCount++; - } - - PR_Unlock( bt_book.ml ); -- - bePriority = _bt_MapNSPRToNativePriority( priority ); -- - thred->md.tid = spawn_thread((thread_func)_bt_root, "moz-thread", - bePriority, thred); - if (thred->md.tid < B_OK) { - PR_SetError(PR_UNKNOWN_ERROR, thred->md.tid); - PR_DELETE(thred); - return NULL; - } - -@@ -428,16 +412,23 @@ PR_IMPLEMENT(PRThread*) - a native thread not created by the NSPR) - assimilate it */ - thred = _bt_AttachThread(); - } - PR_ASSERT(NULL != thred); - - return thred; - } - -+PR_IMPLEMENT(void*)PR_GetSP(PRThread *thred) -+{ -+ thread_info tInfo; -+ get_thread_info(thred->md.tid, &tInfo); -+ return tInfo.stack_base; /* or should it be _end? */ -+} -+ - PR_IMPLEMENT(PRThreadScope) - PR_GetThreadScope (const PRThread* thred) - { - PR_ASSERT(thred != NULL); - return PR_GLOBAL_THREAD; - } - - PR_IMPLEMENT(PRThreadType) -Index: mozilla/nsprpub/pr/src/io/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/Makefile.in,v -retrieving revision 1.13 -diff -u -8 -p -w -r1.13 Makefile.in ---- mozilla/nsprpub/pr/src/io/Makefile.in 25 Apr 2004 15:00:58 -0000 1.13 -+++ mozilla/nsprpub/pr/src/io/Makefile.in 8 Jul 2009 21:53:16 -0000 -@@ -64,23 +64,25 @@ CSRCS = \ - prmmap.c \ - prpolevt.c \ - prprf.c \ - prscanf.c \ - prstdio.c \ - $(NULL) - - ifndef USE_PTHREADS -+ifndef USE_BTHREADS - CSRCS += \ - prdir.c \ - prfile.c \ - prio.c \ - prsocket.c \ - $(NULL) - endif -+endif - - TARGETS = $(OBJS) - - INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private - - DEFINES += -D_NSPR_BUILD_ - - include $(topsrcdir)/config/rules.mk -Index: mozilla/nsprpub/pr/src/io/prmapopt.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prmapopt.c,v -retrieving revision 3.18 -diff -u -8 -p -w -r3.18 prmapopt.c ---- mozilla/nsprpub/pr/src/io/prmapopt.c 25 Apr 2004 15:00:58 -0000 3.18 -+++ mozilla/nsprpub/pr/src/io/prmapopt.c 8 Jul 2009 21:53:17 -0000 -@@ -69,17 +69,17 @@ - /* NEXTSTEP is special: this must come before netinet/tcp.h. */ - #include /* n_short, n_long, n_time */ - #endif - - #if defined(XP_UNIX) || defined(OS2) || (defined(XP_BEOS) && defined(BONE_VERSION)) - #include /* TCP_NODELAY, TCP_MAXSEG */ - #endif - --#ifndef _PR_PTHREADS -+#if !defined(_PR_PTHREADS) && !defined(_PR_BTHREADS) - - PRStatus PR_CALLBACK _PR_SocketGetSocketOption(PRFileDesc *fd, PRSocketOptionData *data) - { - PRStatus rv; - PRInt32 length; - PRInt32 level, name; - - /* -@@ -94,34 +94,29 @@ PRStatus PR_CALLBACK _PR_SocketGetSocket - - rv = _PR_MapOptionName(data->option, &level, &name); - if (PR_SUCCESS == rv) - { - switch (data->option) - { - case PR_SockOpt_Linger: - { --#if !defined(XP_BEOS) || defined(BONE_VERSION) - struct linger linger; - length = sizeof(linger); - rv = _PR_MD_GETSOCKOPT( - fd, level, name, (char *) &linger, &length); - if (PR_SUCCESS == rv) - { - PR_ASSERT(sizeof(linger) == length); - data->value.linger.polarity = - (linger.l_onoff) ? PR_TRUE : PR_FALSE; - data->value.linger.linger = - PR_SecondsToInterval(linger.l_linger); - } - break; --#else -- PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -- return PR_FAILURE; --#endif - } - case PR_SockOpt_Reuseaddr: - case PR_SockOpt_Keepalive: - case PR_SockOpt_NoDelay: - case PR_SockOpt_Broadcast: - { - #ifdef WIN32 /* Winsock */ - BOOL value; -@@ -252,27 +247,22 @@ PRStatus PR_CALLBACK _PR_SocketSetSocket - - rv = _PR_MapOptionName(data->option, &level, &name); - if (PR_SUCCESS == rv) - { - switch (data->option) - { - case PR_SockOpt_Linger: - { --#if !defined(XP_BEOS) || defined(BONE_VERSION) - struct linger linger; - linger.l_onoff = data->value.linger.polarity; - linger.l_linger = PR_IntervalToSeconds(data->value.linger.linger); - rv = _PR_MD_SETSOCKOPT( - fd, level, name, (char*)&linger, sizeof(linger)); - break; --#else -- PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -- return PR_FAILURE; --#endif - } - case PR_SockOpt_Reuseaddr: - case PR_SockOpt_Keepalive: - case PR_SockOpt_NoDelay: - case PR_SockOpt_Broadcast: - { - #ifdef WIN32 /* Winsock */ - BOOL value; -@@ -350,17 +340,17 @@ PRStatus PR_CALLBACK _PR_SocketSetSocket - default: - PR_NOT_REACHED("Unknown socket option"); - break; - } - } - return rv; - } /* _PR_SocketSetSocketOption */ - --#endif /* ! _PR_PTHREADS */ -+#endif /* ! _PR_PTHREADS && ! _PR_BTHREADS */ - - /* - ********************************************************************* - ********************************************************************* - ** - ** Make sure that the following is at the end of this file, - ** because we will be playing with macro redefines. - ** -Index: mozilla/nsprpub/pr/src/io/prpolevt.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prpolevt.c,v -retrieving revision 3.15 -diff -u -8 -p -w -r3.15 prpolevt.c ---- mozilla/nsprpub/pr/src/io/prpolevt.c 25 Apr 2004 15:00:58 -0000 3.15 -+++ mozilla/nsprpub/pr/src/io/prpolevt.c 8 Jul 2009 21:53:18 -0000 -@@ -443,20 +443,20 @@ PR_IMPLEMENT(PRFileDesc *) PR_NewPollabl - #else - if (PR_NewTCPSocketPair(fd) == PR_FAILURE) { - fd[0] = fd[1] = NULL; - goto errorExit; - } - /* - * set the TCP_NODELAY option to reduce notification latency - */ -- socket_opt.option = PR_SockOpt_NoDelay; -- socket_opt.value.no_delay = PR_TRUE; -- rv = PR_SetSocketOption(fd[1], &socket_opt); -- PR_ASSERT(PR_SUCCESS == rv); -+// socket_opt.option = PR_SockOpt_NoDelay; -+// socket_opt.value.no_delay = PR_TRUE; -+// rv = PR_SetSocketOption(fd[1], &socket_opt); -+// PR_ASSERT(PR_SUCCESS == rv); - #endif - - event->secret->writeEnd = fd[1]; - if (PR_PushIOLayer(fd[0], PR_TOP_IO_LAYER, event) == PR_FAILURE) { - goto errorExit; - } - - return fd[0]; -Index: mozilla/nsprpub/pr/src/io/prsocket.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prsocket.c,v -retrieving revision 3.57.2.2 -diff -u -8 -p -w -r3.57.2.2 prsocket.c ---- mozilla/nsprpub/pr/src/io/prsocket.c 7 Nov 2007 22:24:04 -0000 3.57.2.2 -+++ mozilla/nsprpub/pr/src/io/prsocket.c 8 Jul 2009 21:53:23 -0000 -@@ -59,17 +59,17 @@ PRBool IsValidNetAddr(const PRNetAddr *a - - static PRBool IsValidNetAddrLen(const PRNetAddr *addr, PRInt32 addr_len) - { - /* - * The definition of the length of a Unix domain socket address - * is not uniform, so we don't check it. - */ - if ((addr != NULL) --#if defined(XP_UNIX) || defined(XP_OS2_EMX) -+#if defined(XP_UNIX) || defined(XP_OS2_EMX) || defined(XP_BEOS) - && (addr->raw.family != AF_UNIX) - #endif - && (PR_NETADDR_SIZE(addr) != addr_len)) { - #if defined(LINUX) && __GLIBC__ == 2 && __GLIBC_MINOR__ == 1 - /* - * In glibc 2.1, struct sockaddr_in6 is 24 bytes. In glibc 2.2 - * and in the 2.4 kernel, struct sockaddr_in6 has the scope_id - * field and is 28 bytes. It is possible for socket functions -Index: mozilla/nsprpub/pr/src/linking/prlink.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/linking/prlink.c,v -retrieving revision 3.81.2.5 -diff -u -8 -p -w -r3.81.2.5 prlink.c ---- mozilla/nsprpub/pr/src/linking/prlink.c 6 Oct 2006 23:36:22 -0000 3.81.2.5 -+++ mozilla/nsprpub/pr/src/linking/prlink.c 8 Jul 2009 21:53:27 -0000 -@@ -194,18 +194,20 @@ struct PRLibrary { - NSModule dlh; - #else - void* dlh; - #endif - #endif - - #ifdef XP_BEOS - void* dlh; -+#ifndef XP_HAIKU - void* stub_dlh; - #endif -+#endif - }; - - static PRLibrary *pr_loadmap; - static PRLibrary *pr_exe_loadmap; - static PRMonitor *pr_linker_lock; - static char* _pr_currentLibPath = NULL; - - static PRLibrary *pr_LoadLibraryByPathname(const char *name, PRIntn flags); -@@ -844,16 +846,29 @@ pr_LoadLibraryByPathname(const char *nam - } - /* the list of loaded library names are always kept in UTF-8 - * on Win32 platforms */ - result = pr_UnlockedFindLibrary(utf8name); - #else - result = pr_UnlockedFindLibrary(name); - #endif - -+#ifdef XP_BEOS -+ /* Havn't seen this happen so far, but it doesn't slow anything -+ down so let's keep it */ -+ for (result = pr_loadmap; result != NULL; result = result->next) { -+ /* hopefully, our caller will always use the same string -+ to refer to the same library */ -+ if (strcmp(name, result->name) == 0) { -+ result->refCount++; -+ break; -+ } -+ } -+#endif -+ - if (result != NULL) goto unlock; - - lm = PR_NEWZAP(PRLibrary); - if (lm == NULL) { - oserr = _MD_ERRNO(); - goto unlock; - } - lm->staticTable = NULL; -@@ -997,39 +1012,24 @@ pr_LoadLibraryByPathname(const char *nam - lm->name = strdup(name); - lm->dlh = h; - lm->next = pr_loadmap; - pr_loadmap = lm; - } - #endif /* HAVE_DLL */ - #endif /* XP_UNIX */ - -- lm->refCount = 1; -- - #ifdef XP_BEOS -- { -- image_info info; -- int32 cookie = 0; -+ { /* Code block to allow variable inits. :/ */ -+ /* it appears the library isn't yet loaded - load it now */ -+#ifdef XP_HAIKU -+ image_id imageid = load_add_on(name); -+#else - image_id imageid = B_ERROR; - image_id stubid = B_ERROR; -- PRLibrary *p; -- -- for (p = pr_loadmap; p != NULL; p = p->next) { -- /* hopefully, our caller will always use the same string -- to refer to the same library */ -- if (strcmp(name, p->name) == 0) { -- /* we've already loaded this library */ -- imageid = info.id; -- lm->refCount++; -- break; -- } -- } -- -- if(imageid == B_ERROR) { -- /* it appears the library isn't yet loaded - load it now */ - char stubName [B_PATH_NAME_LENGTH + 1]; - - /* the following is a work-around to a "bug" in the beos - - the beos system loader allows only 32M (system-wide) - to be used by code loaded as "add-ons" (code loaded - through the 'load_add_on()' system call, which includes - mozilla components), but allows 256M to be used by - shared libraries. -@@ -1046,59 +1046,63 @@ pr_LoadLibraryByPathname(const char *nam - */ - - strcpy(stubName, name); - strcat(stubName, ".stub"); - - /* first, attempt to load the stub (thereby loading the - component as a shared library */ - if ((stubid = load_add_on(stubName)) > B_ERROR) { -+ -+ const char *endOfPassedName = strrchr(name, '/'); -+ image_info info; -+ int32 cookie = 0; -+ - /* the stub was loaded successfully. */ - imageid = B_FILE_NOT_FOUND; -+ if( 0 == endOfPassedName ) -+ endOfPassedName = name; -+ else -+ endOfPassedName++; - -- cookie = 0; - while (get_next_image_info(0, &cookie, &info) == B_OK) { - const char *endOfSystemName = strrchr(info.name, '/'); -- const char *endOfPassedName = strrchr(name, '/'); - if( 0 == endOfSystemName ) - endOfSystemName = info.name; - else - endOfSystemName++; -- if( 0 == endOfPassedName ) -- endOfPassedName = name; -- else -- endOfPassedName++; - if (strcmp(endOfSystemName, endOfPassedName) == 0) { - /* this is the actual component - remember it */ - imageid = info.id; - break; - } - } -- - } else { - /* we failed to load the "stub" - try to load the - component directly as an add-on */ - stubid = B_ERROR; - imageid = load_add_on(name); - } -- } -- -+#endif /* XP_HAIKU */ - if (imageid <= B_ERROR) { - oserr = imageid; - PR_DELETE( lm ); - goto unlock; - } - lm->name = strdup(name); - lm->dlh = (void*)imageid; -+#ifndef XP_HAIKU - lm->stub_dlh = (void*)stubid; -+#endif - lm->next = pr_loadmap; - pr_loadmap = lm; - } --#endif -+#endif /* XP_BEOS */ - -+ lm->refCount = 1; - result = lm; /* success */ - PR_LOG(_pr_linker_lm, PR_LOG_MIN, ("Loaded library %s (load lib)", lm->name)); - - unlock: - if (result == NULL) { - PR_SetError(PR_LOAD_LIBRARY_ERROR, oserr); - DLLErrorInternal(oserr); /* sets error text */ - } -@@ -1249,21 +1253,25 @@ PR_UnloadLibrary(PRLibrary *lib) - if (--lib->refCount > 0) { - PR_LOG(_pr_linker_lm, PR_LOG_MIN, - ("%s decr => %d", - lib->name, lib->refCount)); - goto done; - } - - #ifdef XP_BEOS -+#ifdef XP_HAIKU -+ unload_add_on( (image_id) lib->dlh ); -+#else - if(((image_id)lib->stub_dlh) == B_ERROR) - unload_add_on( (image_id) lib->dlh ); - else - unload_add_on( (image_id) lib->stub_dlh); --#endif -+#endif /* XP_HAIKU */ -+#endif /* XP_BEOS */ - - #ifdef XP_UNIX - #ifdef HAVE_DLL - #ifdef USE_DLFCN - result = dlclose(lib->dlh); - #elif defined(USE_HPSHL) - result = shl_unload(lib->dlh); - #elif defined(USE_MACH_DYLD) -Index: mozilla/nsprpub/pr/src/md/beos/beos.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/beos/beos.c,v -retrieving revision 3.5 -diff -u -8 -p -w -r3.5 beos.c ---- mozilla/nsprpub/pr/src/md/beos/beos.c 25 Apr 2004 15:00:59 -0000 3.5 -+++ mozilla/nsprpub/pr/src/md/beos/beos.c 8 Jul 2009 21:53:28 -0000 -@@ -32,233 +32,178 @@ - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" - --#include --#include --#include --#include --#include --#include - #include --#include --#include -- - /* - * Make sure _PRSockLen_t is 32-bit, because we will cast a PRUint32* or - * PRInt32* pointer to a _PRSockLen_t* pointer. - */ - #define _PRSockLen_t int - --/* --** Global lock variable used to bracket calls into rusty libraries that --** aren't thread safe (like libc, libX, etc). --*/ --static PRLock *_pr_rename_lock = NULL; --static PRMonitor *_pr_Xfe_mon = NULL; -+ -+#ifndef BONE_VERSION -+PRLock *_connectLock = NULL; -+ -+/* Workaround for nonblocking connects under net_server */ -+PRUint32 connectCount = 0; -+ConnectListNode connectList[64]; -+ -+void -+_MD_final_init_netserver(void) -+{ -+ _connectLock = PR_NewLock(); -+ PR_ASSERT(NULL != _connectLock); -+ /* Workaround for nonblocking connects under net_server */ -+ connectCount = 0; -+} -+#endif /* !BONE_VERSION */ -+ -+ -+#ifdef __powerpc__ -+static PRLock *monitor = NULL; -+ -+void -+_MD_AtomicInit(void) -+{ -+ if (monitor == NULL) { -+ monitor = PR_NewLock(); -+ } -+} -+#endif /* __powerpc__ */ - - /* -- * Variables used by the GC code, initialized in _MD_InitSegs(). -- * _pr_zero_fd should be a static variable. Unfortunately, there is -- * still some Unix-specific code left in function PR_GrowSegment() -- * in file memory/prseg.c that references it, so it needs -- * to be a global variable for now. -+** This is exceedingly messy. atomic_add returns the last value, NSPR -+** expects the new value. We just add or subtract 1 from the result. -+** The actual memory update is atomic. - */ --PRInt32 _pr_zero_fd = -1; --static PRLock *_pr_md_lock = NULL; - --sigset_t timer_set; -+PRInt32 -+_MD_AtomicAdd( PRInt32 *ptr, PRInt32 val ) -+{ -+ return atomic_add( (long *)ptr, val ) + val; -+} - --void _PR_UnixInit() -+PRInt32 -+_MD_AtomicIncrement( PRInt32 *val ) - { -- struct sigaction sigact; -- int rv; -+ return atomic_add( (long *)val, 1 ) + 1; -+} - -- sigemptyset(&timer_set); -+PRInt32 -+_MD_AtomicDecrement( PRInt32 *val ) -+{ -+ return atomic_add( (long *)val, -1 ) - 1; -+} - -- sigact.sa_handler = SIG_IGN; -- sigemptyset(&sigact.sa_mask); -- sigact.sa_flags = 0; -- rv = sigaction(SIGPIPE, &sigact, 0); -- PR_ASSERT(0 == rv); -+PRInt32 -+_MD_AtomicSet( PRInt32 *val, PRInt32 newval ) -+{ -+ PRInt32 result; -+#ifdef __powerpc__ -+ if (!_pr_initialized) { -+ _PR_ImplicitInitialization(); -+ } -+ PR_Lock(monitor); -+ result = *val; -+ *val = newval; -+ PR_Unlock(monitor); -+#else -+ asm volatile ("xchgl %0, %1" -+ : "=r"(result), "=m"(*val) -+ : "0"(newval), "m"(*val)); - -- _pr_rename_lock = PR_NewLock(); -- PR_ASSERT(NULL != _pr_rename_lock); -- _pr_Xfe_mon = PR_NewMonitor(); -- PR_ASSERT(NULL != _pr_Xfe_mon); -+#endif /* __powerpc__ */ -+ return result; - } - - /* - *----------------------------------------------------------------------- - * - * PR_Now -- - * - * Returns the current time in microseconds since the epoch. - * The epoch is midnight January 1, 1970 GMT. -- * The implementation is machine dependent. This is the Unix -- * implementation. -- * Cf. time_t time(time_t *tp) -+ * The implementation is machine dependent. - * - *----------------------------------------------------------------------- - */ - - PR_IMPLEMENT(PRTime) - PR_Now(void) - { -- struct timeval tv; -- PRInt64 s, us, s2us; -- -- GETTIMEOFDAY(&tv); -- LL_I2L(s2us, PR_USEC_PER_SEC); -- LL_I2L(s, tv.tv_sec); -- LL_I2L(us, tv.tv_usec); -- LL_MUL(s, s, s2us); -- LL_ADD(s, s, us); -- return s; -+ return (PRTime) real_time_clock_usecs(); - } - - PRIntervalTime --_PR_UNIX_GetInterval() -+_MD_get_interval(void) - { -- struct timeval time; -- PRIntervalTime ticks; -- -- (void)GETTIMEOFDAY(&time); /* fallicy of course */ -- ticks = (PRUint32)time.tv_sec * PR_MSEC_PER_SEC; /* that's in milliseconds */ -- ticks += (PRUint32)time.tv_usec / PR_USEC_PER_MSEC; /* so's that */ -- return ticks; --} /* _PR_SUNOS_GetInterval */ -- --PRIntervalTime _PR_UNIX_TicksPerSecond() --{ -- return 1000; /* this needs some work :) */ -+ return (PRIntervalTime) real_time_clock_usecs() / 10; - } - --/************************************************************************/ -- --/* --** Special hacks for xlib. Xlib/Xt/Xm is not re-entrant nor is it thread --** safe. Unfortunately, neither is mozilla. To make these programs work --** in a pre-emptive threaded environment, we need to use a lock. --*/ -- --void PR_XLock() --{ -- PR_EnterMonitor(_pr_Xfe_mon); --} -- --void PR_XUnlock() -+PRIntervalTime -+_MD_interval_per_sec(void) - { -- PR_ExitMonitor(_pr_Xfe_mon); -+ return 100000L; - } - --PRBool PR_XIsLocked() -+PRSize -+_PR_MD_GetRandomNoise( void *buf, PRSize size ) - { -- return (PR_InMonitor(_pr_Xfe_mon)) ? PR_TRUE : PR_FALSE; --} -+ struct timeval tv; -+ int n = 0; -+ int s; - --void PR_XWait(int ms) --{ -- PR_Wait(_pr_Xfe_mon, PR_MillisecondsToInterval(ms)); --} -+ GETTIMEOFDAY(&tv); - --void PR_XNotify(void) --{ -- PR_Notify(_pr_Xfe_mon); -+ if ( size >= 0 ) { -+ s = _pr_CopyLowBits((char*)buf+n, size, &tv.tv_usec, sizeof(tv.tv_usec)); -+ size -= s; -+ n += s; - } -- --void PR_XNotifyAll(void) --{ -- PR_NotifyAll(_pr_Xfe_mon); -+ if ( size >= 0 ) { -+ s = _pr_CopyLowBits((char*)buf+n, size, &tv.tv_sec, sizeof(tv.tv_sec)); -+ size -= s; -+ n += s; - } -+ return n; -+} /* end _PR_MD_GetRandomNoise() */ - --#if !defined(BEOS) --#ifdef HAVE_BSD_FLOCK - --#include -- --PR_IMPLEMENT(PRStatus) --_MD_LOCKFILE (PRInt32 f) -+/* Needed by prinit.c:612 */ -+void -+_PR_MD_QUERY_FD_INHERITABLE(PRFileDesc *fd) - { -- PRInt32 rv; -- rv = flock(f, LOCK_EX); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -+ int flags; - --PR_IMPLEMENT(PRStatus) --_MD_TLOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = flock(f, LOCK_EX|LOCK_NB); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ PR_ASSERT(_PR_TRI_UNKNOWN == fd->secret->inheritable); -+ flags = fcntl(fd->secret->md.osfd, F_GETFD, 0); -+ PR_ASSERT(-1 != flags); -+ fd->secret->inheritable = (flags & FD_CLOEXEC) ? -+ _PR_TRI_FALSE : _PR_TRI_TRUE; - } - --PR_IMPLEMENT(PRStatus) --_MD_UNLOCKFILE (PRInt32 f) -+PRStatus -+_MD_gethostname(char *name, PRUint32 namelen) - { -- PRInt32 rv; -- rv = flock(f, LOCK_UN); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} --#else -+ PRInt32 rv, err; - --PR_IMPLEMENT(PRStatus) --_MD_LOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = lockf(f, F_LOCK, 0); -+ rv = gethostname(name, namelen); - if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -- --PR_IMPLEMENT(PRStatus) --_MD_TLOCKFILE (PRInt32 f) - { -- PRInt32 rv; -- rv = lockf(f, F_TLOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ err = _MD_ERRNO(); -+ switch (err) { -+ case EFAULT: -+ PR_SetError(PR_ACCESS_FAULT_ERROR, err); -+ break; -+ default: -+ PR_SetError(PR_UNKNOWN_ERROR, err); -+ break; - } -- --PR_IMPLEMENT(PRStatus) --_MD_UNLOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = lockf(f, F_ULOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); - return PR_FAILURE; - } --#endif -- --PR_IMPLEMENT(PRStatus) -- _MD_GETHOSTNAME (char *name, PRUint32 namelen) --{ -- PRIntn rv; -- -- rv = gethostname(name, namelen); -- if (0 == rv) { - return PR_SUCCESS; - } -- _PR_MD_MAP_GETHOSTNAME_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -- --#endif -Index: mozilla/nsprpub/pr/src/md/beos/bproc.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/beos/bproc.c,v -retrieving revision 3.6 -diff -u -8 -p -w -r3.6 bproc.c ---- mozilla/nsprpub/pr/src/md/beos/bproc.c 25 Apr 2004 15:00:59 -0000 3.6 -+++ mozilla/nsprpub/pr/src/md/beos/bproc.c 8 Jul 2009 21:53:29 -0000 -@@ -31,18 +31,20 @@ - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" --#include -+#include - #include -+#include -+#include - - #define _PR_SIGNALED_EXITSTATUS 256 - - PRProcess* - _MD_create_process (const char *path, char *const *argv, - char *const *envp, const PRProcessAttr *attr) - { - PRProcess *process; -Index: mozilla/nsprpub/pr/src/md/beos/bsrcs.mk -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/beos/bsrcs.mk,v -retrieving revision 3.6 -diff -u -8 -p -w -r3.6 bsrcs.mk ---- mozilla/nsprpub/pr/src/md/beos/bsrcs.mk 25 Apr 2004 15:00:59 -0000 3.6 -+++ mozilla/nsprpub/pr/src/md/beos/bsrcs.mk 8 Jul 2009 21:53:29 -0000 -@@ -15,16 +15,17 @@ - # The Original Code is the Netscape Portable Runtime (NSPR). - # - # The Initial Developer of the Original Code is - # Netscape Communications Corporation. - # Portions created by the Initial Developer are Copyright (C) 1998-2000 - # the Initial Developer. All Rights Reserved. - # - # Contributor(s): -+# Fredrik Holmqvist - # - # Alternatively, the contents of this file may be used under the terms of - # either the GNU General Public License Version 2 or later (the "GPL"), or - # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - # in which case the provisions of the GPL or the LGPL are applicable instead - # of those above. If you wish to allow use of your version of this file only - # under the terms of either the GPL or the LGPL, and not to allow others to - # use your version of this file under the terms of the MPL, indicate your -@@ -37,18 +38,11 @@ - - - # this file lists the source files to be compiled (used in Makefile) and - # then enumerated as object files (in objs.mk) for inclusion in the NSPR - # shared library - - MDCSRCS = \ - beos.c \ -- beos_errors.c \ -- bfile.c \ -- bmisc.c \ -- bnet.c \ - bproc.c \ -- brng.c \ -- bseg.c \ -- btime.c \ - bmmap.c \ - $(NULL) -Index: mozilla/nsprpub/pr/src/memory/prseg.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/memory/prseg.c,v -retrieving revision 3.8 -diff -u -8 -p -w -r3.8 prseg.c ---- mozilla/nsprpub/pr/src/memory/prseg.c 25 Apr 2004 15:01:01 -0000 3.8 -+++ mozilla/nsprpub/pr/src/memory/prseg.c 8 Jul 2009 21:53:30 -0000 -@@ -32,26 +32,26 @@ - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" - --#if defined(_PR_PTHREADS) -+#if defined(_PR_PTHREADS) || defined(_PR_BTHREADS) - - /* - ** The pthreads version doesn't use these functions. - */ - void _PR_InitSegs(void) - { - } - --#else /* _PR_PTHREADS */ -+#else /* _PR_PTHREADS || defined(_PR_BTHREADS) */ - - void _PR_InitSegs(void) - { - _PR_MD_INIT_SEGS(); - } - - /* - ** Allocate a memory segment. The size value is rounded up to the native -@@ -85,9 +85,9 @@ PRSegment* _PR_NewSegment(PRUint32 size, - ** Free a memory segment. - */ - void _PR_DestroySegment(PRSegment *seg) - { - _PR_MD_FREE_SEGMENT(seg); - PR_DELETE(seg); - } - --#endif /* _PR_PTHREADS */ -+#endif /* _PR_PTHREADS || defined(_PR_BTHREADS) */ -Index: mozilla/nsprpub/pr/src/misc/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/Makefile.in,v -retrieving revision 1.19 -diff -u -8 -p -w -r1.19 Makefile.in ---- mozilla/nsprpub/pr/src/misc/Makefile.in 8 Nov 2004 02:52:56 -0000 1.19 -+++ mozilla/nsprpub/pr/src/misc/Makefile.in 8 Jul 2009 21:53:30 -0000 -@@ -66,20 +66,22 @@ CSRCS = \ - prsystem.c \ - prtime.c \ - prthinfo.c \ - prtpool.c \ - prtrace.c \ - $(NULL) - - ifndef USE_PTHREADS -+ifndef USE_BTHREADS - CSRCS += \ - pripcsem.c \ - $(NULL) - endif -+endif - - TARGETS = $(OBJS) - - INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private - - DEFINES += -D_NSPR_BUILD_ - - RELEASE_BINS = $(srcdir)/compile-et.pl $(srcdir)/prerr.properties -Index: mozilla/nsprpub/pr/src/misc/prinit.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/prinit.c,v -retrieving revision 3.43.2.1 -diff -u -8 -p -w -r3.43.2.1 prinit.c ---- mozilla/nsprpub/pr/src/misc/prinit.c 1 Dec 2006 00:34:11 -0000 3.43.2.1 -+++ mozilla/nsprpub/pr/src/misc/prinit.c 8 Jul 2009 21:53:33 -0000 -@@ -195,18 +195,20 @@ static void _PR_InitStuff(void) - _pr_shma_lm = PR_NewLogModule("shma"); - - /* NOTE: These init's cannot depend on _PR_MD_CURRENT_THREAD() */ - _PR_MD_EARLY_INIT(); - - _PR_InitLocks(); - _PR_InitAtomic(); - _PR_InitSegs(); -+#if !defined(_PR_BTHREADS) - _PR_InitStacks(); - _PR_InitTPD(); -+#endif /*!defined(_PR_BTHREADS) */ - _PR_InitEnv(); - _PR_InitLayerCache(); - _PR_InitClock(); - - _pr_sleeplock = PR_NewLock(); - PR_ASSERT(NULL != _pr_sleeplock); - - #ifdef GC_LEAK_DETECTOR -Index: mozilla/nsprpub/pr/src/misc/pripcsem.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/pripcsem.c,v -retrieving revision 3.5 -diff -u -8 -p -w -r3.5 pripcsem.c ---- mozilla/nsprpub/pr/src/misc/pripcsem.c 25 Apr 2004 15:01:01 -0000 3.5 -+++ mozilla/nsprpub/pr/src/misc/pripcsem.c 8 Jul 2009 21:53:33 -0000 -@@ -41,19 +41,19 @@ - * Description: implements the named semaphores API in prsemipc.h - * for classic NSPR. If _PR_HAVE_NAMED_SEMAPHORES is not defined, - * the named semaphore functions all fail with the error code - * PR_NOT_IMPLEMENTED_ERROR. - */ - - #include "primpl.h" - --#ifdef _PR_PTHREADS -+#if defined(_PR_PTHREADS) || defined(_PR_BTHREADS) - --#error "This file should not be compiled for the pthreads version" -+#error "This file should not be compiled for the pthreads or bthreads version" - - #else - - #ifndef _PR_HAVE_NAMED_SEMAPHORES - - PRSem * _PR_MD_OPEN_SEMAPHORE( - const char *osname, PRIntn flags, PRIntn mode, PRUintn value) - { -@@ -122,9 +122,9 @@ PR_IMPLEMENT(PRStatus) PR_DeleteSemaphor - if (!_pr_initialized) _PR_ImplicitInitialization(); - if (_PR_MakeNativeIPCName(name, osname, sizeof(osname), _PRIPCSem) - == PR_FAILURE) { - return PR_FAILURE; - } - return _PR_MD_DELETE_SEMAPHORE(osname); - } - --#endif /* _PR_PTHREADS */ -+#endif /* _PR_PTHREADS || _PR_BTHREADS */ -Index: mozilla/profile/defaults/bookmarks.html -=================================================================== -RCS file: /cvsroot/mozilla/profile/defaults/Attic/bookmarks.html,v -retrieving revision 1.18.4.1 -diff -u -8 -p -w -r1.18.4.1 bookmarks.html ---- mozilla/profile/defaults/bookmarks.html 28 Nov 2007 16:42:30 -0000 1.18.4.1 -+++ mozilla/profile/defaults/bookmarks.html 8 Jul 2009 21:53:43 -0000 -@@ -1,41 +1,40 @@ - - -+ DO NOT EDIT! --> - - Bookmarks -

Bookmarks

- -

--

Personal Toolbar Folder

--

--

mozilla.org --
mozillaZine --
mozdev.org --

--

Mozilla Project

--

--

mozilla.org

--

--

The Mozilla Organization --
SeaMonkey Project --
Mozilla Products --
Feedback --

--

Community & Support

-+
Get Bookmark Add-ons -+
-+

Bookmarks Toolbar Folder

-+
Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar -

--

mozillaZine --
SeaMonkey Support (mozillaZine) --
mozdev.org --
Mozilla Plug-in Information (mozdev) --
Mozilla Extensions (mozdev) --

-+

Haiku WebSite -+
Nightly Builds -

--

Search the Web

-+
-+

BeZilla Browser

-

--

Google --
Google Groups --
Google News -+
BeZilla Blog -+
Report an Issue -+
View Known Issues -+

-+

Haiku Bookmarks

-+

-+

Nightly Builds -+
Optional Packages -+
Bug Tracker -+

-+

Software for Haiku

-+

-+

OSDrawer.net -+
HaikuWare -+
Zeta-Games -+
BeBits -

--


-+
Haiku WebSite -+ -

-Index: mozilla/security/coreconf/BeOS.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/BeOS.mk,v -retrieving revision 1.2 -diff -u -8 -p -w -r1.2 BeOS.mk ---- mozilla/security/coreconf/BeOS.mk 25 Apr 2004 15:02:17 -0000 1.2 -+++ mozilla/security/coreconf/BeOS.mk 8 Jul 2009 21:53:45 -0000 -@@ -56,17 +56,17 @@ ifeq ($(OS_TEST),ppc) - CPU_ARCH = ppc - else - OS_REL_CFLAGS = -Di386 - CPU_ARCH = x86 - endif - - MKSHLIB = $(CC) -nostart -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) - ifdef BUILD_OPT -- OPTIMIZER = -O2 -+ OPTIMIZER = -O3 - endif - - OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -pipe - OS_LIBS = -lbe - - DEFINES += -DBEOS - - ifdef USE_PTHREADS -Index: mozilla/security/coreconf/arch.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/arch.mk,v -retrieving revision 1.19.2.1 -diff -u -8 -p -w -r1.19.2.1 arch.mk ---- mozilla/security/coreconf/arch.mk 14 Nov 2007 22:47:33 -0000 1.19.2.1 -+++ mozilla/security/coreconf/arch.mk 8 Jul 2009 21:53:46 -0000 -@@ -57,16 +57,17 @@ - ifeq ($(USE_64), 1) - 64BIT_TAG=_64 - else - 64BIT_TAG= - endif - - OS_ARCH := $(subst /,_,$(shell uname -s)) - -+ - # - # Attempt to differentiate between sparc and x86 Solaris - # - - OS_TEST := $(shell uname -m) - ifeq ($(OS_TEST),i86pc) - OS_RELEASE := $(shell uname -r)_$(OS_TEST) - else -Index: mozilla/security/coreconf/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/config.mk,v -retrieving revision 1.17.28.3 -diff -u -8 -p -w -r1.17.28.3 config.mk ---- mozilla/security/coreconf/config.mk 4 May 2007 06:54:05 -0000 1.17.28.3 -+++ mozilla/security/coreconf/config.mk 8 Jul 2009 21:53:47 -0000 -@@ -32,16 +32,17 @@ - # and other provisions required by the GPL or the LGPL. If you do not delete - # the provisions above, a recipient may use your version of this file under - # the terms of any one of the MPL, the GPL or the LGPL. - # - # ***** END LICENSE BLOCK ***** - - # Configuration information for building in the "Core Components" source module - -+ - ####################################################################### - # [1.0] Master "Core Components" source and release # - # tags # - ####################################################################### - ifndef MK_ARCH - include $(CORE_DEPTH)/coreconf/arch.mk - endif - -@@ -57,24 +58,30 @@ endif - # [3.0] Master "Core Components" -specific macros # - # (dependent upon tags) # - # # - # We are moving towards just having a $(OS_TARGET).mk file # - # as opposed to multiple $(OS_TARGET)$(OS_RELEASE).mk files, # - # one for each OS release. # - ####################################################################### - -+ -+ - TARGET_OSES = FreeBSD BSD_OS NetBSD OpenUNIX OS2 QNX Darwin BeOS OpenBSD \ - OpenVMS AIX - - ifeq (,$(filter-out $(TARGET_OSES),$(OS_TARGET))) - include $(CORE_DEPTH)/coreconf/$(OS_TARGET).mk - else -+ifeq ($(OS_ARCH), Haiku) -+include $(CORE_DEPTH)/coreconf/BeOS.mk -+else - include $(CORE_DEPTH)/coreconf/$(OS_TARGET)$(OS_RELEASE).mk - endif -+endif - - ####################################################################### - # [4.0] Master "Core Components" source and release tags # - # (dependent upon tags) # - ####################################################################### - PLATFORM = $(OBJDIR_NAME) - - ####################################################################### -Index: mozilla/security/manager/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/security/manager/Makefile.in,v -retrieving revision 1.57.4.6 -diff -u -8 -p -w -r1.57.4.6 Makefile.in ---- mozilla/security/manager/Makefile.in 23 May 2008 23:45:26 -0000 1.57.4.6 -+++ mozilla/security/manager/Makefile.in 8 Jul 2009 21:53:48 -0000 -@@ -257,30 +257,45 @@ ifndef MOZ_NATIVE_NSS - $(MAKE) -C $(topsrcdir)/security/nss-fips/lib/util $(DEFAULT_GMAKE_FLAGS) clean - # In NSS 3.11.8-3.11.9, lib/ssl/derive.c includes cmd/lib/secutil.h. - $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) export - $(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) DIRS="util base dev pki pki1 certdb certhigh pk11wrap cryptohi nss ssl pkcs12 pkcs7 smime crmf jar ckfw ckfw/builtins" - ifndef SKIP_CHK - $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) - $(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DIST)/bin/add-ons -+else - $(INSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DIST)/bin -+endif - ifndef SKIP_CHK - $(INSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(DIST)/bin - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 755 $(DIST)/lib/$(SOFTOKEN3_LIB) $(DIST)/bin/lib -+ $(INSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(DIST)/bin/lib -+ $(INSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(DIST)/bin/lib -+ $(INSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(DIST)/bin/lib -+else - $(INSTALL) -m 755 $(DIST)/lib/$(SOFTOKEN3_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(DIST)/bin -+endif - ifdef HAVE_FREEBL_LIBS - ifndef SKIP_CHK - $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_CHK) $(DIST)/bin - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_LIB) $(DIST)/bin/add-ons -+else - $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_LIB) $(DIST)/bin - endif -+endif - ifdef HAVE_FREEBL_LIBS_32 - ifndef SKIP_CHK - $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32INT_CHK) $(DIST)/bin - $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32FPU_CHK) $(DIST)/bin - endif - $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32INT_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32FPU_LIB) $(DIST)/bin - endif -Index: mozilla/security/nss/cmd/lib/secutil.h -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/cmd/lib/secutil.h,v -retrieving revision 1.18.24.1 -diff -u -8 -p -w -r1.18.24.1 secutil.h ---- mozilla/security/nss/cmd/lib/secutil.h 19 Jul 2006 00:25:03 -0000 1.18.24.1 -+++ mozilla/security/nss/cmd/lib/secutil.h 8 Jul 2009 21:53:54 -0000 -@@ -407,16 +407,16 @@ SECU_GetOptionArg(secuCommand *cmd, int - /* Return informative error string */ - char *SECU_ErrorString(int16 err); - - /* Return informative error string. Does not call XP_GetString */ - char *SECU_ErrorStringRaw(int16 err); - - void printflags(char *trusts, unsigned int flags); - --#ifndef XP_UNIX -+#if !defined(XP_UNIX) && !defined(XP_BEOS) - extern int ffs(unsigned int i); - #endif - - #include "secerr.h" - #include "sslerr.h" - - #endif /* _SEC_UTIL_H_ */ -Index: mozilla/security/nss/lib/dev/ckhelper.c -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/dev/ckhelper.c,v -retrieving revision 1.34.28.2 -diff -u -8 -p -w -r1.34.28.2 ckhelper.c ---- mozilla/security/nss/lib/dev/ckhelper.c 3 Dec 2008 04:52:53 -0000 1.34.28.2 -+++ mozilla/security/nss/lib/dev/ckhelper.c 8 Jul 2009 21:53:59 -0000 -@@ -225,33 +225,33 @@ NSS_IMPLEMENT PRBool - nssCKObject_IsAttributeTrue ( - CK_OBJECT_HANDLE object, - CK_ATTRIBUTE_TYPE attribute, - nssSession *session, - NSSSlot *slot, - PRStatus *rvStatus - ) - { -- CK_BBOOL bool; -+ CK_BBOOL boolval; - CK_ATTRIBUTE_PTR attr; - CK_ATTRIBUTE atemplate = { 0, NULL, 0 }; - CK_RV ckrv; - void *epv = nssSlot_GetCryptokiEPV(slot); - attr = &atemplate; -- NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, bool); -+ NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, boolval); - nssSession_EnterMonitor(session); - ckrv = CKAPI(epv)->C_GetAttributeValue(session->handle, object, - &atemplate, 1); - nssSession_ExitMonitor(session); - if (ckrv != CKR_OK) { - *rvStatus = PR_FAILURE; - return PR_FALSE; - } - *rvStatus = PR_SUCCESS; -- return (PRBool)(bool == CK_TRUE); -+ return (PRBool)(boolval == CK_TRUE); - } - - NSS_IMPLEMENT PRStatus - nssCKObject_SetAttributes ( - CK_OBJECT_HANDLE object, - CK_ATTRIBUTE_PTR obj_template, - CK_ULONG count, - nssSession *session, -Index: mozilla/security/nss/lib/freebl/unix_rand.c -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/unix_rand.c,v -retrieving revision 1.17.10.7 -diff -u -8 -p -w -r1.17.10.7 unix_rand.c ---- mozilla/security/nss/lib/freebl/unix_rand.c 25 Jul 2007 23:18:55 -0000 1.17.10.7 -+++ mozilla/security/nss/lib/freebl/unix_rand.c 8 Jul 2009 21:54:01 -0000 -@@ -662,17 +662,17 @@ GetHighResClock(void *buf, size_t maxbyt - - t = asm("rpcc %v0"); - return CopyLowBits(buf, maxbytes, &t, sizeof(t)); - } - - #endif /* VMS */ - - #ifdef BEOS --#include -+#include - - static size_t - GetHighResClock(void *buf, size_t maxbytes) - { - bigtime_t bigtime; /* Actually an int64 */ - - bigtime = real_time_clock_usecs(); - return CopyLowBits(buf, maxbytes, &bigtime, sizeof(bigtime)); -Index: mozilla/security/nss/lib/ssl/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/ssl/config.mk,v -retrieving revision 1.21.2.1 -diff -u -8 -p -w -r1.21.2.1 config.mk ---- mozilla/security/nss/lib/ssl/config.mk 1 May 2007 06:09:31 -0000 1.21.2.1 -+++ mozilla/security/nss/lib/ssl/config.mk 8 Jul 2009 21:54:03 -0000 -@@ -103,17 +103,17 @@ EXTRA_SHARED_LIBS += \ - -L$(DIST)/lib \ - -lnss3 \ - -L$(NSPR_LIB_DIR) \ - -lplc4 \ - -lplds4 \ - -lnspr4 \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_SHARED_LIBS += -lbe - endif - - ifeq ($(OS_ARCH), Darwin) - EXTRA_SHARED_LIBS += -dylib_file @executable_path/libsoftokn3.dylib:$(DIST)/lib/libsoftokn3.dylib - endif - - ifeq ($(OS_TARGET),SunOS) -Index: mozilla/security/nss-fips/lib/freebl/unix_rand.c -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/unix_rand.c,v -retrieving revision 1.17.10.5 -diff -u -8 -p -w -r1.17.10.5 unix_rand.c ---- mozilla/security/nss-fips/lib/freebl/unix_rand.c 12 Oct 2006 22:50:48 -0000 1.17.10.5 -+++ mozilla/security/nss-fips/lib/freebl/unix_rand.c 8 Jul 2009 21:54:10 -0000 -@@ -661,17 +661,17 @@ GetHighResClock(void *buf, size_t maxbyt - - t = asm("rpcc %v0"); - return CopyLowBits(buf, maxbytes, &t, sizeof(t)); - } - - #endif /* VMS */ - - #ifdef BEOS --#include -+#include - - static size_t - GetHighResClock(void *buf, size_t maxbytes) - { - bigtime_t bigtime; /* Actually an int64 */ - - bigtime = real_time_clock_usecs(); - return CopyLowBits(buf, maxbytes, &bigtime, sizeof(bigtime)); -Index: mozilla/security/nss-fips/lib/ssl/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/ssl/config.mk,v -retrieving revision 1.21 -diff -u -8 -p -w -r1.21 config.mk ---- mozilla/security/nss-fips/lib/ssl/config.mk 19 Oct 2005 01:04:16 -0000 1.21 -+++ mozilla/security/nss-fips/lib/ssl/config.mk 8 Jul 2009 21:54:11 -0000 -@@ -99,17 +99,17 @@ EXTRA_SHARED_LIBS += \ - -L$(DIST)/lib \ - -lnss3 \ - -L$(NSPR_LIB_DIR) \ - -lplc4 \ - -lplds4 \ - -lnspr4 \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_SHARED_LIBS += -lbe - endif - - ifeq ($(OS_ARCH), Darwin) - EXTRA_SHARED_LIBS += -dylib_file @executable_path/libsoftokn3.dylib:$(DIST)/lib/libsoftokn3.dylib - endif - - ifeq ($(OS_TARGET),SunOS) -Index: mozilla/toolkit/library/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/library/Makefile.in,v -retrieving revision 1.16.2.10 -diff -u -8 -p -w -r1.16.2.10 Makefile.in ---- mozilla/toolkit/library/Makefile.in 31 Aug 2007 02:40:21 -0000 1.16.2.10 -+++ mozilla/toolkit/library/Makefile.in 8 Jul 2009 21:54:23 -0000 -@@ -359,17 +359,17 @@ endif - ifdef MOZ_ENABLE_XPRINT - EXTRA_DSO_LDOPTS += $(MOZ_XPRINT_LDFLAGS) - endif - - ifdef MOZ_ENABLE_PANGO - EXTRA_DSO_LDOPTS += $(MOZ_PANGO_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - - ifeq ($(OS_ARCH),WINNT) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,shell32 ole32 uuid version winspool comdlg32) - ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC)) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,imagehlp) - endif -Index: mozilla/toolkit/mozapps/installer/package-name.mk -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/mozapps/installer/package-name.mk,v -retrieving revision 1.4.8.3 -diff -u -8 -p -w -r1.4.8.3 package-name.mk ---- mozilla/toolkit/mozapps/installer/package-name.mk 4 Apr 2008 09:21:26 -0000 1.4.8.3 -+++ mozilla/toolkit/mozapps/installer/package-name.mk 8 Jul 2009 21:54:24 -0000 -@@ -54,16 +54,19 @@ ifeq ($(OS_ARCH),Darwin) - MOZ_PKG_PLATFORM := mac - endif - ifeq ($(TARGET_OS),linux-gnu) - MOZ_PKG_PLATFORM := linux-$(TARGET_CPU) - endif - ifeq ($(OS_ARCH),OS2) - MOZ_PKG_PLATFORM := os2 - endif -+ifeq ($(OS_ARCH), Haiku) -+MOZ_PKG_PLATFORM := Haiku -+endif - ifeq ($(OS_ARCH), BeOS) - ifeq (,$(filter-out 6.%, $(OS_RELEASE))) - MOZ_PKG_PLATFORM := Zeta - else - ifeq (,$(filter-out 5.1, $(OS_RELEASE))) - MOZ_PKG_PLATFORM := BeOS-bone - else - ifeq (,$(filter-out 5.0.4, $(OS_RELEASE))) -Index: mozilla/toolkit/mozapps/installer/packager.mk -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/mozapps/installer/packager.mk,v -retrieving revision 1.16.2.18 -diff -u -8 -p -w -r1.16.2.18 packager.mk ---- mozilla/toolkit/mozapps/installer/packager.mk 4 Apr 2008 20:31:10 -0000 1.16.2.18 -+++ mozilla/toolkit/mozapps/installer/packager.mk 8 Jul 2009 21:54:25 -0000 -@@ -43,21 +43,24 @@ include $(topsrcdir)/toolkit/mozapps/ins - # This is how we create the Unix binary packages we release to the public. - # Currently the only format is tar.gz (TGZ), but it should be fairly easy - # to add .rpm (RPM) and .deb (DEB) later. - - ifndef MOZ_PKG_FORMAT - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - MOZ_PKG_FORMAT = DMG - else --ifeq (,$(filter-out OS2 WINNT BeOS, $(OS_ARCH))) -+ifeq (,$(filter-out OS2 WINNT BeOS Haiku, $(OS_ARCH))) - MOZ_PKG_FORMAT = ZIP - ifeq ($(OS_ARCH),OS2) - INSTALLER_DIR = os2 - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+INSTALLER_DIR = beos -+endif - ifeq ($(OS_ARCH), WINNT) - INSTALLER_DIR = windows - endif - endif - else - ifeq (,$(filter-out SunOS, $(OS_ARCH))) - MOZ_PKG_FORMAT = BZ2 - else -@@ -246,19 +249,19 @@ $(MOZ_PKG_REMOVALS_GEN): $(MOZ_PKG_REMOV - $(PERL) $(topsrcdir)/config/preprocessor.pl -Fsubstitution $(DEFINES) $(ACDEFINES) $(MOZ_PKG_REMOVALS) > $(MOZ_PKG_REMOVALS_GEN) - endif - - GARBAGE += $(DIST)/$(PACKAGE) $(PACKAGE) - - ifeq ($(OS_ARCH),IRIX) - STRIP_FLAGS = -f - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - STRIP_FLAGS = -g --PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)-bin" -+PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)" - endif - ifeq ($(OS_ARCH),OS2) - STRIP = $(srcdir)/os2/strip.cmd - STRIP_FLAGS = - PLATFORM_EXCLUDE_LIST = ! -name "*.ico" - endif - - ifneq (,$(filter WINNT OS2,$(OS_ARCH))) -Index: mozilla/toolkit/xre/nsAppRunner.cpp -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/xre/nsAppRunner.cpp,v -retrieving revision 1.113.2.24 -diff -u -8 -p -w -r1.113.2.24 nsAppRunner.cpp ---- mozilla/toolkit/xre/nsAppRunner.cpp 8 Nov 2007 11:56:25 -0000 1.113.2.24 -+++ mozilla/toolkit/xre/nsAppRunner.cpp 8 Jul 2009 21:54:34 -0000 -@@ -1356,19 +1356,20 @@ XRE_GetBinaryPath(const char* argv0, nsI - rv = NS_NewNativeLocalFile(nsDependentCString(exePath), PR_TRUE, - getter_AddRefs(lf)); - if (NS_FAILED(rv)) - return rv; - - #elif defined(XP_BEOS) - int32 cookie = 0; - image_info info; -- -+ do { - if(get_next_image_info(0, &cookie, &info) != B_OK) - return NS_ERROR_FAILURE; -+ } while(info.type != B_APP_IMAGE); - - rv = NS_NewNativeLocalFile(nsDependentCString(info.name), PR_TRUE, - getter_AddRefs(lf)); - if (NS_FAILED(rv)) - return rv; - - #elif - #error Oops, you need platform-specific code here -Index: mozilla/toolkit/xre/nsXREDirProvider.cpp -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/xre/nsXREDirProvider.cpp,v -retrieving revision 1.37.2.11 -diff -u -8 -p -w -r1.37.2.11 nsXREDirProvider.cpp ---- mozilla/toolkit/xre/nsXREDirProvider.cpp 8 May 2007 19:25:29 -0000 1.37.2.11 -+++ mozilla/toolkit/xre/nsXREDirProvider.cpp 8 Jul 2009 21:54:36 -0000 -@@ -71,17 +71,17 @@ - #ifndef CSIDL_PROGRAM_FILES - #define CSIDL_PROGRAM_FILES 0x0026 - #endif - #endif - #ifdef XP_MACOSX - #include "nsILocalFileMac.h" - #endif - #ifdef XP_BEOS --#include -+#include - #include - #endif - #ifdef XP_UNIX - #include - #endif - #ifdef XP_OS2 - #define INCL_DOS - #include -Index: mozilla/widget/src/beos/nsAppShell.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsAppShell.cpp,v -retrieving revision 1.29.8.2 -diff -u -8 -p -w -r1.29.8.2 nsAppShell.cpp ---- mozilla/widget/src/beos/nsAppShell.cpp 3 Jul 2007 09:33:54 -0000 1.29.8.2 -+++ mozilla/widget/src/beos/nsAppShell.cpp 8 Jul 2009 21:54:39 -0000 -@@ -113,20 +113,38 @@ nsAppShell::nsAppShell() - //------------------------------------------------------------------------- - - NS_IMETHODIMP nsAppShell::Create(int* argc, char ** argv) - { - // system wide unique names - // NOTE: this needs to be run from within the main application thread - char portname[64]; - char semname[64]; -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)); - PR_snprintf(semname, sizeof(semname), "sync%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - - #ifdef DEBUG - printf("nsAppShell::Create portname: %s, semname: %s\n", portname, semname); - #endif - /* - * Set up the port for communicating. As restarts thru execv may occur - * and ports survive those (with faulty events as result). Combined with the fact - * that plevent.c can setup the port ahead of us we need to take extra -@@ -337,18 +355,32 @@ NS_IMETHODIMP nsAppShell::GetNativeEvent - - return NS_OK; - } - - NS_IMETHODIMP nsAppShell::DispatchNativeEvent(PRBool aRealEvent, void *aEvent) - { - // should we check for eventport initialization ? - char portname[64]; -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)/*PR_GetCurrentThread()*/); -+ } while(iinfo.type != B_APP_IMAGE); - - if((eventport = find_port(portname)) < 0) - { - // not initialized - #ifdef DEBUG - printf("nsAppShell::DispatchNativeEvent() was called before init\n"); - #endif - fflush(stdout); -Index: mozilla/widget/src/beos/nsDragService.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsDragService.cpp,v -retrieving revision 1.13.28.5 -diff -u -8 -p -w -r1.13.28.5 nsDragService.cpp ---- mozilla/widget/src/beos/nsDragService.cpp 13 Aug 2008 12:41:28 -0000 1.13.28.5 -+++ mozilla/widget/src/beos/nsDragService.cpp 8 Jul 2009 21:54:41 -0000 -@@ -250,17 +250,17 @@ nsDragService::InvokeDragSession (nsIDOM - dragRect = view->Frame(); - // do we need to offset? - } - - PR_LOG(sDragLm, PR_LOG_DEBUG, ("invoking mDragView->DragMessage")); - bool noBitmap = true; - - //This is the code for image-dragging, currently disabled. See comments in beginning of file. --# ifdef 0 -+#if 0 - do - { - PRUint32 dataSize; - PRUint32 noItems; - mSourceDataItems->Count(&noItems); - if (noItems!=1) - { - PR_LOG(sDragLm, PR_LOG_DEBUG, ("Transferables are not ==1, no drag bitmap!")); -Index: mozilla/widget/src/beos/nsLookAndFeel.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsLookAndFeel.cpp,v -retrieving revision 1.27 -diff -u -8 -p -w -r1.27 nsLookAndFeel.cpp ---- mozilla/widget/src/beos/nsLookAndFeel.cpp 26 Oct 2004 01:45:26 -0000 1.27 -+++ mozilla/widget/src/beos/nsLookAndFeel.cpp 8 Jul 2009 21:54:42 -0000 -@@ -157,19 +157,17 @@ nsresult nsLookAndFeel::NativeGetColor(c - aColor = NS_RGB(0x00, 0x00, 0x00); - break; - case eColor_graytext: - aColor = NS_RGB(0x77, 0x77, 0x77); - break; - case eColor_highlight: - case eColor__moz_menuhover: - { -- // B_MENU_SELECTION_BACKGROUND_COLOR is used for text selection -- // this blue colors seems more suitable -- color = ui_color(B_KEYBOARD_NAVIGATION_COLOR); -+ color = ui_color(B_MENU_SELECTION_BACKGROUND_COLOR ); - aColor = NS_RGB(color.red, color.green, color.blue); - } - break; - case eColor_highlighttext: - case eColor__moz_menuhovertext: - { - color = ui_color(B_MENU_SELECTED_ITEM_TEXT_COLOR); - aColor = NS_RGB(color.red, color.green, color.blue); -Index: mozilla/widget/src/beos/nsToolkit.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsToolkit.cpp,v -retrieving revision 1.23.8.1 -diff -u -8 -p -w -r1.23.8.1 nsToolkit.cpp ---- mozilla/widget/src/beos/nsToolkit.cpp 3 Jul 2007 09:33:54 -0000 1.23.8.1 -+++ mozilla/widget/src/beos/nsToolkit.cpp 8 Jul 2009 21:54:42 -0000 -@@ -37,16 +37,17 @@ - - #include "nsToolkit.h" - #include "prmon.h" - #include "prtime.h" - #include "nsGUIEvent.h" - #include "nsSwitchToUIThread.h" - #include "plevent.h" - #include "prprf.h" -+#include - - // - // Static thread local storage index of the Toolkit - // object associated with a given thread... - // - static PRUintn gToolkitTLSIndex = 0; - - //------------------------------------------------------------------------- -@@ -84,20 +85,36 @@ void nsToolkit::RunPump(void* arg) - gThreadState = PR_TRUE; - - PR_Notify(info->monitor); - PR_ExitMonitor(info->monitor); - - delete info; - - // system wide unique names -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - -- port_id event = create_port(100, portname); -+ port_id event = create_port(200, portname); - - while(read_port(event, &code, &id, sizeof(id)) >= 0) - { - switch(code) - { - case WM_CALLMETHOD : - { - MethodInfo *mInfo = (MethodInfo *)id.data; -@@ -125,16 +142,17 @@ void nsToolkit::RunPump(void* arg) - // - // constructor - // - //------------------------------------------------------------------------- - nsToolkit::nsToolkit() - { - localthread = false; - mGuiThread = NULL; -+ mGUIThreadID = 0; - } - - - //------------------------------------------------------------------------- - // - // destructor - // - //------------------------------------------------------------------------- -@@ -183,16 +201,32 @@ void nsToolkit::CreateUIThread() - - // wait for the gui thread to start - while(gThreadState == PR_FALSE) - { - PR_Wait(monitor, PR_INTERVAL_NO_TIMEOUT); - } - } - -+ image_info iinfo; -+ int32 cookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ mGUIThreadID = find_thread(leaf); -+ } -+ else -+ { -+ mGUIThreadID = find_thread(0); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - // at this point the thread is running - PR_ExitMonitor(monitor); - PR_DestroyMonitor(monitor); - } - - - //------------------------------------------------------------------------- - // -@@ -213,28 +247,42 @@ NS_METHOD nsToolkit::Init(PRThread *aThr - { - localthread = true; - - // create a thread where the message pump will run - CreateUIThread(); - } - - cached = false; -- -+ image_info iinfo; -+ int32 cookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ mGUIThreadID = find_thread(leaf); -+ } -+ else -+ { -+ mGUIThreadID = find_thread(0); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - return NS_OK; - } - - void nsToolkit::GetInterface() - { - if(! cached) - { - char portname[64]; -- - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) mGuiThread); -+ (long unsigned) mGUIThreadID); - - eventport = find_port(portname); - - cached = true; - } - } - - void nsToolkit::CallMethod(MethodInfo *info) -Index: mozilla/widget/src/beos/nsToolkit.h -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsToolkit.h,v -retrieving revision 1.5.8.1 -diff -u -8 -p -w -r1.5.8.1 nsToolkit.h ---- mozilla/widget/src/beos/nsToolkit.h 3 Jul 2007 09:33:54 -0000 1.5.8.1 -+++ mozilla/widget/src/beos/nsToolkit.h 8 Jul 2009 21:54:42 -0000 -@@ -66,16 +66,17 @@ public: - void Kill(); - private: - virtual ~nsToolkit(); - void CreateUIThread(void); - - protected: - // Thread Id of the "main" Gui thread. - PRThread *mGuiThread; -+ thread_id mGUIThreadID; - static void RunPump(void* arg); - void GetInterface(); - bool cached; - bool localthread; - port_id eventport; - }; - - #endif // TOOLKIT_H -Index: mozilla/xpcom/build/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/build/Makefile.in,v -retrieving revision 1.90.2.3 -diff -u -8 -p -w -r1.90.2.3 Makefile.in ---- mozilla/xpcom/build/Makefile.in 29 Mar 2008 06:56:29 -0000 1.90.2.3 -+++ mozilla/xpcom/build/Makefile.in 8 Jul 2009 21:54:45 -0000 -@@ -168,17 +168,17 @@ ifdef GC_LEAK_DETECTOR - DEFINES += -DGC_LEAK_DETECTOR - endif - - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - CXXFLAGS += $(TK_CFLAGS) - EXTRA_DSO_LDOPTS += $(TK_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - - ifneq (,$(filter gtk2,$(MOZ_WIDGET_TOOLKIT))) - EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) - endif - - ifeq ($(OS_ARCH),WINNT) -Index: mozilla/xpcom/obsolete/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/obsolete/Makefile.in,v -retrieving revision 1.17 -diff -u -8 -p -w -r1.17 Makefile.in ---- mozilla/xpcom/obsolete/Makefile.in 30 Jan 2005 21:33:45 -0000 1.17 -+++ mozilla/xpcom/obsolete/Makefile.in 8 Jul 2009 21:54:47 -0000 -@@ -115,17 +115,17 @@ DEFINES += -D_IMPL_NS_COM_OBSOLETE - - EXTRA_DSO_LDOPTS += $(MOZ_COMPONENT_LIBS) - - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - CXXFLAGS += $(TK_CFLAGS) - EXTRA_DSO_LDOPTS += $(TK_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - - ifeq ($(OS_ARCH),WINNT) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME, shell32 ole32) - ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC)) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME, imagehlp) - endif -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v -retrieving revision 1.80.4.6 -diff -u -8 -p -w -r1.80.4.6 Makefile.in ---- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2008 21:11:34 -0000 1.80.4.6 -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 8 Jul 2009 21:54:49 -0000 -@@ -90,21 +90,23 @@ endif - # IA64 Linux - ifneq (,$(filter Linux,$(OS_ARCH))) - ifneq (,$(findstring ia64,$(OS_TEST))) - CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp - ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s - endif - endif - # --# BeOS/Intel (uses the same unixish_x86 code) -+# BeOS/Intel (uses the same as Linux, works well. Migrate others!) - # --ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -+#ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -+ifeq (,$(filter-out BeOSBePC HaikuBePC, $(OS_ARCH)$(OS_TEST))) - CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp - endif -+ - # - # Neutrino/Intel (uses the same unixish_x86 code) - # - ifeq ($(OS_TARGET),NTO) - ifeq ($(OS_TEST),x86) - CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp - endif - ifeq ($(OS_TEST),arm) -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h,v -retrieving revision 1.18.28.3 -diff -u -8 -p -w -r1.18.28.3 xptc_platforms_unixish_x86.h ---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h 9 Apr 2007 20:01:13 -0000 1.18.28.3 -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h 8 Jul 2009 21:54:49 -0000 -@@ -133,17 +133,22 @@ - /* Old gcc 2.7.x.x. What does gcc 2.8.x do?? */ - #define CFRONT_STYLE_THIS_ADJUST - #else - /* egcs and later */ - #define THUNK_BASED_THIS_ADJUST - #endif - - #elif defined(__BEOS__) -+#if (__GNUC__ == 2) - #define CFRONT_STYLE_THIS_ADJUST -+#else -+#define THUNK_BASED_THIS_ADJUST -+#endif -+ - - #elif defined(__sun__) || defined(__sun) - #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ - #define THUNK_BASED_THIS_ADJUST - #else - #define CFRONT_STYLE_THIS_ADJUST - #endif - -Index: mozilla/xpcom/threads/plevent.c -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/threads/Attic/plevent.c,v -retrieving revision 1.54.2.1 -diff -u -8 -p -w -r1.54.2.1 plevent.c ---- mozilla/xpcom/threads/plevent.c 26 Sep 2005 19:43:34 -0000 1.54.2.1 -+++ mozilla/xpcom/threads/plevent.c 8 Jul 2009 21:54:54 -0000 -@@ -61,16 +61,18 @@ - #if defined(XP_UNIX) - /* for fcntl */ - #include - #include - #endif - - #if defined(XP_BEOS) - #include -+#include -+#include - #endif - - #if defined(XP_MACOSX) - #if defined(MOZ_WIDGET_COCOA) - #include - #define MAC_USE_CFRUNLOOPSOURCE - #elif defined(TARGET_CARBON) - /* #include */ -@@ -903,20 +905,49 @@ failed: - * Otherwise we need to create the sem and the port, deleting any open ports before. - */ - - sem_info info; - int32 cookie = 0; - - char portname[64]; - char semname[64]; -+ -+struct _MDThread -+{ -+ thread_id tid; -+ sem_id joinSem; -+ PRBool is_joining; -+}; -+ struct _MDThread md; -+ -+ -+//#include "private/primpl.h" -+ image_info iinfo; -+ int32 icookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &icookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) self->handlerThread); -+ (long unsigned) find_thread(0)); - PR_snprintf(semname, sizeof(semname), "sync%lx", -- (long unsigned) self->handlerThread); -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - - self->eventport = find_port(portname); - while(get_next_sem_info(0, &cookie, &info) == B_OK) - { - if(strcmp(semname, info.name) != 0) { - continue; - } - -@@ -926,17 +957,17 @@ failed: - } - return PR_SUCCESS; - } - /* setup the port and semaphore */ - if(self->eventport >= 0) - { - delete_port( self->eventport ); - } -- self->eventport = create_port(200, portname); -+ self->eventport = create_port(512, portname); - /* We don't use the sem, but it has to be there - */ - create_sem(0, semname); - return PR_SUCCESS; - #else - return PR_SUCCESS; - #endif - } -@@ -1259,26 +1290,28 @@ _pl_NativeNotify(PLEventQueue* self) - - #if defined(XP_BEOS) - struct ThreadInterfaceData - { - void *data; - thread_id waitingThread; - }; - -+ - static PRStatus - _pl_NativeNotify(PLEventQueue* self) - { - struct ThreadInterfaceData id; - id.data = self; - id.waitingThread = 0; - write_port(self->eventport, 'natv', &id, sizeof(id)); - - return PR_SUCCESS; /* Is this correct? */ - } -+ - #endif /* XP_BEOS */ - - #if defined(XP_MACOSX) - static PRStatus - _pl_NativeNotify(PLEventQueue* self) - { - #if defined(MAC_USE_CFRUNLOOPSOURCE) - CFRunLoopSourceSignal(self->mRunLoopSource); -Index: mozilla/xpfe/bootstrap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpfe/bootstrap/Attic/Makefile.in,v -retrieving revision 1.283.2.6 -diff -u -8 -p -w -r1.283.2.6 Makefile.in ---- mozilla/xpfe/bootstrap/Makefile.in 29 Sep 2007 20:15:11 -0000 1.283.2.6 -+++ mozilla/xpfe/bootstrap/Makefile.in 8 Jul 2009 21:54:55 -0000 -@@ -113,18 +113,22 @@ ifdef MOZ_ENABLE_XREMOTE - REQUIRES += xremoteservice - endif - - include $(topsrcdir)/config/config.mk - - ifeq ($(USE_SHORT_LIBNAME),1) - PROGRAM = $(MOZ_APP_NAME)$(BIN_SUFFIX) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+PROGRAM = $(MOZ_APP_NAME)$(BIN_SUFFIX) -+else - PROGRAM = $(MOZ_APP_NAME)-bin$(BIN_SUFFIX) - endif -+endif - - # Force applications to be built non-statically - # when building the mozcomps meta component - ifneq (,$(filter mozcomps,$(MOZ_META_COMPONENTS))) - BUILD_STATIC_LIBS= - BUILD_SHARED_LIBS=1 - ifdef MOZ_COMPONENTLIB - DEFINES += -D_MOZCOMPS_SHARED_LIBRARY -D_BUILD_STATIC_BIN -@@ -215,16 +219,19 @@ ifdef GC_LEAK_DETECTOR - LIBS += -lboehm - endif - - ifdef WRAP_SYSTEM_INCLUDES - DEFINES += -DWRAP_SYSTEM_INCLUDES - endif - - ifeq ($(MOZ_WIDGET_TOOLKIT),beos) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - CPPSRCS += nsNativeAppSupportBeOS.cpp - CPPSRCS += nsNativeAppSupportBase.cpp - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - -@@ -406,17 +413,17 @@ ifndef GNU_CC - LDFLAGS += /HEAP:0x40000 - endif - endif - - CXXFLAGS += $(MOZ_TOOLKIT_REGISTRY_CFLAGS) - - LOCAL_INCLUDES += -I$(srcdir) -I. - --ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT BeOS Haiku,$(OS_ARCH))) - $(MOZ_APP_NAME).1: mozilla.man.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - @sed -e "s|\@bindir\@|$(bindir)|g" -e "s|\@mozappdir\@|$(mozappdir)|g" \ - -e "s|\@MOZ_APP_DISPLAYNAME\@|$(MOZ_APP_DISPLAYNAME)|g" \ - -e "s|\@MOZ_APP_NAME\@|$(MOZ_APP_NAME)|g" \ - -e "s|\@MOZ_APP_VERSION\@|${MOZ_APP_VERSION}|g" < $< > $@ - - libs:: $(MOZ_APP_NAME).1 - $(INSTALL) $< $(DIST)/man/man1 -Index: mozilla/xpfe/bootstrap/nsSigHandlers.cpp -=================================================================== -RCS file: /cvsroot/mozilla/xpfe/bootstrap/nsSigHandlers.cpp,v -retrieving revision 1.41.18.1 -diff -u -8 -p -w -r1.41.18.1 nsSigHandlers.cpp ---- mozilla/xpfe/bootstrap/nsSigHandlers.cpp 22 Jun 2006 22:31:13 -0000 1.41.18.1 -+++ mozilla/xpfe/bootstrap/nsSigHandlers.cpp 8 Jul 2009 21:54:56 -0000 -@@ -55,17 +55,18 @@ - #include // atoi - #endif - - #if defined(SOLARIS) - #include - #endif - - #ifdef XP_BEOS --#include -+#include -+#include - #include - #include "nsCOMPtr.h" - #include "nsIServiceManager.h" - #include "nsIAppStartup.h" - #include "nsXPFEComponentsCID.h" - #endif - - #ifdef MOZ_WIDGET_PHOTON -Index: mozilla/xpinstall/packager/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpinstall/packager/Attic/Makefile.in,v -retrieving revision 1.68.4.1 -diff -u -8 -p -w -r1.68.4.1 Makefile.in ---- mozilla/xpinstall/packager/Makefile.in 20 Feb 2006 17:42:11 -0000 1.68.4.1 -+++ mozilla/xpinstall/packager/Makefile.in 8 Jul 2009 21:55:03 -0000 -@@ -43,17 +43,17 @@ srcdir = @srcdir@ - VPATH = @srcdir@ - - include $(DEPTH)/config/autoconf.mk - - OSPACKAGE = unix - ifeq ($(OS_ARCH),IRIX) - STRIP_FLAGS = -f - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - STRIP_FLAGS = -g - PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)-bin" - endif - ifeq ($(OS_ARCH),OS2) - STRIP = $(srcdir)/os2/strip.cmd - STRIP_FLAGS = - OSPACKAGE = os2 - PLATFORM_EXCLUDE_LIST = ! -name "*.ico" -Index: mozilla/xulrunner/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xulrunner/app/Makefile.in,v -retrieving revision 1.23.2.4 -diff -u -8 -p -w -r1.23.2.4 Makefile.in ---- mozilla/xulrunner/app/Makefile.in 9 Apr 2008 06:50:54 -0000 1.23.2.4 -+++ mozilla/xulrunner/app/Makefile.in 8 Jul 2009 21:55:07 -0000 -@@ -54,17 +54,17 @@ DIRS = profile - PREF_JS_EXPORTS = $(srcdir)/xulrunner.js - GARBAGE += $(addprefix $(DIST)/bin/defaults/pref/,xulrunner.js) - - DEFINES += -DAB_CD=$(AB_CD) - - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = xulrunner$(BIN_SUFFIX) - else --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PROGRAM = xulrunner$(BIN_SUFFIX) - else - PROGRAM = xulrunner-bin$(BIN_SUFFIX) - endif - endif - - DEFINES += -DXULRUNNER_PROGNAME=\"xulrunner\" - -@@ -80,17 +80,17 @@ REQUIRES = \ - xulrunner \ - $(NULL) - - CPPSRCS = nsXULRunnerApp.cpp - - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += nsRegisterGREWin.cpp - else --ifneq (,$(filter OS2 Darwin,$(OS_ARCH))) -+ifneq (,$(filter OS2 Darwin BeOS Haiku,$(OS_ARCH))) - CPPSRCS += nsRegisterGREVoid.cpp - else - CPPSRCS += nsRegisterGREUnix.cpp - endif - endif - - LOCAL_INCLUDES += \ - -I$(topsrcdir)/toolkit/xre \ -@@ -169,17 +169,17 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS += -ltracker - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res - RCFLAGS += -DMOZ_XULRUNNER - ifdef BUILD_STATIC_LIBS - EXE_DEF_FILE = xulrunner.def -@@ -237,17 +237,17 @@ $(EXE_DEF_FILE): - @echo WinQueryProperty = PMMERGE.5450 >>$(EXE_DEF_FILE) - @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) - @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) - - LDFLAGS += -Zlinker /NOE - endif - endif - --ifneq (,$(filter-out OS2 WINNT Darwin BeOS,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT Darwin BeOS Haiku,$(OS_ARCH))) - - xulrunner:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.mozilla/xulrunner|" \ - -e "s|%MREDIR%|$(mredir)|" > $@ - chmod +x $@ - - libs:: xulrunner diff --git a/www-client/mozilla_firefox/bookmarks.html b/www-client/mozilla_firefox/bookmarks.html deleted file mode 100644 index ffe3c7264..000000000 --- a/www-client/mozilla_firefox/bookmarks.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -Bookmarks -

Bookmarks

- -

-

Get Bookmark Add-ons -
-

Bookmarks Toolbar Folder

-
Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar -

-

Haiku WebSite -
Nightly Builds -

-


-

BeZilla Browser

-

-

BeZilla Blog -
Report an Issue -
View Known Issues -

-

Haiku Bookmarks

-

-

Nightly Builds -
Optional Packages -
Bug Tracker -
Haiku User Guide -
BeBook -
Welcome -

-

Software for Haiku

-

-

OSDrawer.net -
HaikuWare -
Zeta-Games -
BeBits -

-

Haiku WebSite - -

diff --git a/www-client/mozilla_firefox/classic.jar b/www-client/mozilla_firefox/classic.jar deleted file mode 100644 index ee1180460b10929152de2267b2c35a8bacf3152f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624084 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%0A7FRorbPSE+eShGpqkNS0DU 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

C?!xW|ahl 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

K`J|{{2`UCKR^-?0yhQ>6vd1 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 diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/app/apprunner-beos.rdef b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/app/apprunner-beos.rdef deleted file mode 100644 index e69b16d2c..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/app/apprunner-beos.rdef +++ /dev/null @@ -1,125 +0,0 @@ -/* - * BeZillaBrowser.rdef - */ - -resource app_signature "application/x-vnd.Mozilla-Firefox"; - -resource app_flags B_SINGLE_LAUNCH; - -resource app_version { - /* - * We are using the source code version number - * for our program version. - * TODO : implement something better. - */ - major = 1, - middle = 8, - minor = 1, - - /* 0 = development 1 = alpha 2 = beta - 3 = gamma 4 = golden master 5 = final */ - variety = 0, - - internal = 21, - - short_info = "BeZillaBrowser", - long_info = "BeZillaBrowser is based on Mozilla's source code" -}; - -resource file_types message { - "types" = "application/x-vnd.Be.URL.file", - "types" = "application/x-vnd.Be.URL.ftp", - "types" = "application/x-vnd.Be.URL.http", - "types" = "application/x-vnd.Be.URL.https", - "types" = "text/html", - "types" = "image/gif", - "types" = "image/png" -}; - -resource vector_icon { - $"6E6369661F0500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" - $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" - $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" - $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" - $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" - $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" - $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" - $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" - $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" - $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" - $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" - $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" - $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" - $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" - $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" - $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" - $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" - $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" - $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" - $"000201060238CC87BD083D3DCC623981954609924A996B00FFB11BFFFFF9C727" - $"0633EEEBFFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0B478BFB4" - $"B450BFB7B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82B33EBBDB" - $"B3F2BBCEB4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45B50ABB45" - $"B50ABB44B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1EB58DBA12" - $"B593BA12B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975B5ECB974" - $"B5EDB918B626B918B626B917B626B8EDB642B893B681B887B689B86CB69CB7F2" - $"2AB7B5B72DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB4BB380BC" - $"3AB317BC7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54FBB03C7E8" - $"BAF4C7DBBAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4C760C888" - $"CA38C797C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34CCBC2C1EB" - $"CA78BF62C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17C999BCEA" - $"C857BA6BC720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DBC472B66F" - $"C405B613C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34C05A34C0" - $"5B34C05A34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5D3CB14C4" - $"7FC521B8CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE82B789BF" - $"00C251BCE5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C044C512C0" - $"5CCC1E0604EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87FB7A5BC0C" - $"B4F7B87FB7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50ABF40B5" - $"0ABD2DB521B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36B3F7BCF4" - $"B789BF00BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7A5BD7FBA" - $"63BC9BBC64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A04BC7AB8" - $"01BF99B6C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC30EB77BC2" - $"04B6CF0A05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B967C223B8" - $"A5C3F1BB51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3F1BB51C5" - $"B0BB5AC71A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC23C05CCC" - $"1EC044C512BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A04C9EA41" - $"C8C5BFF3CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7C1C4BED1" - $"C0BCBCE5C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7BCB1B7EC" - $"0A04BFE1B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69AC5B7B6C3" - $"C41AB8250A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3C9EA41CA" - $"07C060C8E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9EA41C8C5" - $"BFF3C80FBE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3B826C5B7" - $"B6C3C594B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187B3FFC068" - $"B5C6BF40B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9EB57CBC9E" - $"B57CBB34B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36B3F7BCF4" - $"B413C012B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044C512C05C" - $"CC1EC693C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302BB334EB8" - $"F2C3E4B99FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC38BF63BC" - $"91BF9DBC71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137BE10BC1A" - $"BE4BBC03BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58BF7BBB58" - $"BF8FBB45BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBFE7BBB2BF" - $"E7BB85BFE7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC80BEFCBC" - $"DBBE32BC45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC1DBE58BC" - $"27BE70BC1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB77BFB7BB" - $"5CBFA7BB66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBFDCBBEA06" - $"05BA02BC2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBBF5C7310A" - $"04BC7AB801BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C204B6CF0A" - $"05BCAAC670BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBDE5C88AC0" - $"4EC88BBDC9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60C971BD4F" - $"CB2BC054CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21BEE9BBBA" - $"C059BA770204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBCBB8FBFD9" - $"BBE8BFD9BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37ABBFAC2FD" - $"BAD1C336BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE00CC16C0" - $"49CC29C033C51CBFB5C4EA060DEE1FBF032F442B4F2B48294B244A2953235029" - $"532354295423542E58265A2E585C3030583058385A3B543B543554355335533B" - $"503A4A334F354B3348270A000100000A010101000A020102000A030103000A04" - $"0104000A050105000A060106000A070107000A080108000A090109000A0A010A" - $"000A0B010B000A0C010C000A0D010D000A0E010E000A0F010F000A100110000A" - $"110111000A120112000A130113000A140114000A150115000A1603161718000A" - $"170119000A18011A000A18011B000A18011C000A18011D000A18011E000A1801" - $"1F000A180120000A190121000A180122000A1A0123000A1B0124000A1C012500" - $"0A1D012638BFB3B32615FF01178400040A1D012638BFB3B32600150117860004" - $"0A1E012620BFB3B326" -}; - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v1.html b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v1.html deleted file mode 100644 index 615899ccd..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v1.html +++ /dev/null @@ -1,32 +0,0 @@ - - - Opening the welcome page... - - - - Opening the welcome page... - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v2.html b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v2.html deleted file mode 100644 index 40f023420..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-bebook-v2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -Welcome to Haiku! - - - - - - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v1.html b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v1.html deleted file mode 100644 index ac3001be7..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v1.html +++ /dev/null @@ -1,32 +0,0 @@ - - - Opening the welcome page... - - - - Opening the welcome page... - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v2.html b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v2.html deleted file mode 100644 index dd5770732..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-userguide-v2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -Welcome to Haiku! - - - - - - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v1.html b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v1.html deleted file mode 100644 index d2b44db9c..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v1.html +++ /dev/null @@ -1,32 +0,0 @@ - - - Opening the welcome page... - - - - Opening the welcome page... - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v2.html b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v2.html deleted file mode 100644 index 2a6ee035d..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/base/content/dynamic-welcome-v2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - -Welcome to Haiku! - - - - - - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/installer/beos/packages-static b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/installer/beos/packages-static deleted file mode 100644 index 63ab36105..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/browser/installer/beos/packages-static +++ /dev/null @@ -1,369 +0,0 @@ -; Package file for Linux static Firefox build. -; -; File format: -; -; [] designates a toplevel component. Example: [xpcom] -; - in front of a file specifies it to be removed from the destination -; * wildcard support to recursively copy the entire directory -; ; file comment -; - -#filter substitution - -bin/.autoreg - -[@AB_CD@] -bin/chrome/@AB_CD@.jar -bin/chrome/@AB_CD@.manifest -bin/defaults/pref/firefox-l10n.js -bin/defaults/existing-profile-defaults.js -; If you add a new directory you must explicitly call addDirectory in ab-CD.jst -bin/browserconfig.properties -bin/old-homepage-default.properties -bin/searchplugins/* -bin/defaults/profile/bookmarks.html -bin/defaults/profile/localstore.rdf -bin/defaults/profile/prefs.js -bin/defaults/profile/search.rdf -bin/defaults/profile/mimeTypes.rdf -bin/defaults/profile/chrome/* -bin/updater.ini -bin/dictionaries/* - -[xpcom] -; mmadia --testing adding *.so.stubs to packager -; how the heck were they originally being added to the archive? -bin/add-ons/*.so.stub -bin/lib/*.so.stub -bin/lib/libmozjs.so -bin/lib/libplc4.so -bin/lib/libplds4.so -bin/lib/libxpcom.so -bin/lib/libxpcom_core.so -bin/lib/libxpistub.so -bin/lib/libnspr4.so -bin/components/libxpinstall.so -bin/components/libjar50.so -bin/lib/libxpcom_compat.so - -[browser] -; [Base Browser Files] -; mmadia -bin/BeZillaBrowser -bin/firefox -bin/mozilla-xremote-client -; mmadia removed run-mozilla.sh --bin/run-mozilla.sh -bin/plugins/libnullplugin.so -bin/res/cmessage.txt -bin/xpicleanup - -; [Components] -bin/components/accessibility.xpt -bin/components/accessibility-atk.xpt -bin/components/appshell.xpt -bin/components/appstartup.xpt -bin/components/autocomplete.xpt -bin/components/autoconfig.xpt -bin/components/bookmarks.xpt -bin/components/browsercompsbase.xpt -bin/components/browsersearch.xpt -bin/components/browser-feeds.xpt -bin/components/caps.xpt -bin/components/chardet.xpt -bin/components/chrome.xpt -bin/components/commandhandler.xpt -bin/components/commandlines.xpt -bin/components/composer.xpt -bin/components/content_base.xpt -bin/components/content_htmldoc.xpt -bin/components/content_html.xpt -bin/components/content_xmldoc.xpt -bin/components/content_xslt.xpt -bin/components/content_xtf.xpt -bin/components/cookie.xpt -bin/components/directory.xpt -bin/components/docshell.xpt -bin/components/dom.xpt -bin/components/dom_base.xpt -bin/components/dom_canvas.xpt -bin/components/dom_core.xpt -bin/components/dom_css.xpt -bin/components/dom_events.xpt -bin/components/dom_html.xpt -bin/components/dom_range.xpt -bin/components/dom_sidebar.xpt -bin/components/dom_storage.xpt -bin/components/dom_stylesheets.xpt -bin/components/dom_traversal.xpt -bin/components/dom_views.xpt -bin/components/dom_xbl.xpt -bin/components/dom_xpath.xpt -bin/components/dom_xul.xpt -bin/components/dom_loadsave.xpt -bin/components/downloads.xpt -bin/components/editor.xpt -bin/components/embed_base.xpt -bin/components/exthandler.xpt -bin/components/fastfind.xpt -bin/components/feeds.xpt -bin/components/filepicker.xpt -bin/components/find.xpt -bin/components/gfx.xpt -bin/components/helperAppDlg.xpt -bin/components/history.xpt -bin/components/htmlparser.xpt -bin/components/imglib2.xpt -; bin/components/imgicon.xpt -bin/components/intl.xpt -bin/components/jar.xpt -bin/components/jsconsole.xpt -bin/components/libjsd.so -bin/components/jsdservice.xpt -bin/components/layout_base.xpt -bin/components/layout_printing.xpt -bin/components/layout_xul_tree.xpt -bin/components/layout_xul.xpt -bin/components/inspector.xpt -bin/components/locale.xpt -bin/components/lwbrk.xpt -bin/components/microsummaries.xpt -bin/components/migration.xpt -bin/components/mimetype.xpt -bin/components/mozbrwsr.xpt -bin/components/mozfind.xpt -bin/components/necko_about.xpt -bin/components/necko_cache.xpt -bin/components/necko_cookie.xpt -bin/components/necko_data.xpt -bin/components/necko_dns.xpt -bin/components/necko_file.xpt -bin/components/necko_ftp.xpt -bin/components/necko_http.xpt -bin/components/necko_jar.xpt -bin/components/necko_res.xpt -bin/components/necko_socket.xpt -bin/components/necko_strconv.xpt -bin/components/necko_viewsource.xpt -bin/components/necko.xpt -bin/components/oji.xpt -bin/components/passwordmgr.xpt -bin/components/places.xpt -bin/components/plugin.xpt -bin/components/prefetch.xpt -bin/components/pref.xpt -bin/components/progressDlg.xpt -bin/components/proxyObjInst.xpt -bin/components/toolkitremote.xpt -bin/components/rdf.xpt -bin/components/satchel.xpt -bin/components/saxparser.xpt -bin/components/search.xpt -bin/components/shistory.xpt -bin/components/storage.xpt -bin/components/profile.xpt -bin/components/toolkitprofile.xpt -bin/components/txtsvc.xpt -bin/components/txmgr.xpt -bin/components/uconv.xpt -bin/components/unicharutil.xpt -bin/components/uriloader.xpt -bin/components/webBrowser_core.xpt -bin/components/webbrowserpersist.xpt -bin/components/webshell_idls.xpt -bin/components/websrvcs.xpt -bin/components/widget.xpt -bin/components/windowds.xpt -bin/components/windowwatcher.xpt -bin/components/xml-rpc.xpt -bin/components/xpcom_base.xpt -bin/components/xpcom_components.xpt -bin/components/xpcom_ds.xpt -bin/components/xpcom_io.xpt -bin/components/xpcom_obsolete.xpt -bin/components/xpcom_threads.xpt -bin/components/xpcom_xpti.xpt -bin/components/xpconnect.xpt -bin/components/xpinstall.xpt -bin/components/xremoteservice.xpt -bin/components/xulapp.xpt -bin/components/xuldoc.xpt -bin/components/xultmpl.xpt -bin/components/shellservice.xpt -; JavaScript components -bin/components/FeedProcessor.js -bin/components/FeedConverter.js -bin/components/FeedWriter.js -bin/components/WebContentConverter.js -bin/components/nsBrowserContentHandler.js -bin/components/nsBrowserGlue.js -bin/components/nsSetDefaultBrowser.js -bin/components/nsMicrosummaryService.js -bin/components/nsSearchService.js -bin/components/nsSearchSuggestions.js -bin/components/jsconsole-clhandler.js -bin/components/nsCloseAllWindows.js -bin/components/nsDictionary.js -bin/components/nsFilePicker.js -bin/components/nsHelperAppDlg.js -bin/components/nsInterfaceInfoToIDL.js -; bin/components/nsProgressDialog.js not needed for firefox -bin/components/nsProxyAutoConfig.js -; bin/components/nsResetPref.js not needed for firefox -bin/components/nsSidebar.js -; bin/components/nsUpdateNotifier.js not needed for firefox -bin/components/nsXmlRpcClient.js -bin/components/nsExtensionManager.js -bin/components/nsUpdateService.js -bin/components/extensions.xpt -bin/components/update.xpt -bin/components/nsBookmarkTransactionManager.js -bin/components/nsSessionStartup.js -bin/components/nsSessionStore.js -bin/components/sessionstore.xpt -bin/components/nsURLFormatter.js -bin/components/urlformatter.xpt -bin/components/nsDefaultCLH.js - -; Safe Browsing -bin/components/nsSafebrowsingApplication.js -bin/components/safebrowsing.xpt -bin/components/nsUrlClassifierListManager.js -bin/components/nsUrlClassifierLib.js -bin/components/nsUrlClassifierTable.js -bin/components/url-classifier.xpt - -; Kerberos NegotiateAuth -bin/components/libauth.so - -; GNOME hooks -bin/components/libmozgnome.so -bin/components/mozgnome.xpt - -; [Browser Chrome Files] -bin/chrome/browser.jar -bin/chrome/browser.manifest -bin/chrome/classic.jar -bin/chrome/classic.manifest -bin/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf -bin/chrome/comm.jar -bin/chrome/comm.manifest -bin/chrome/toolkit.jar -bin/chrome/toolkit.manifest -bin/chrome/icons/default/default.xpm -bin/chrome/reporter.manifest -bin/chrome/reporter.jar -bin/defaults/pref/reporter.js - -; shell icons -bin/icons/*.xpm -bin/icons/*.png - -; [Default Preferences] -; All the pref files must be part of base to prevent migration bugs -bin/defaults/pref/firefox.js -bin/defaults/pref/firefox-branding.js -bin/defaults/pref/channel-prefs.js -bin/greprefs/all.js -bin/greprefs/security-prefs.js -bin/greprefs/xpinstall.js -bin/defaults/autoconfig/platform.js -bin/defaults/autoconfig/prefcalls.js - -; [Layout Engine Resources] -; Style Sheets, Graphics and other Resources used by the layout engine. -bin/res/hiddenWindow.html -bin/res/ua.css -bin/res/html.css -bin/res/quirk.css -bin/res/forms.css -bin/res/platform-forms.css -bin/res/EditorOverride.css -bin/res/table-add-column-after-active.gif -bin/res/table-add-column-after-hover.gif -bin/res/table-add-column-after.gif -bin/res/table-add-column-before-active.gif -bin/res/table-add-column-before-hover.gif -bin/res/table-add-column-before.gif -bin/res/table-add-row-after-active.gif -bin/res/table-add-row-after-hover.gif -bin/res/table-add-row-after.gif -bin/res/table-add-row-before-active.gif -bin/res/table-add-row-before-hover.gif -bin/res/table-add-row-before.gif -bin/res/table-remove-column-active.gif -bin/res/table-remove-column-hover.gif -bin/res/table-remove-column.gif -bin/res/table-remove-row-active.gif -bin/res/table-remove-row-hover.gif -bin/res/table-remove-row.gif -bin/res/arrowd.gif -bin/res/grabber.gif -bin/res/viewsource.css -bin/res/mathml.css -bin/res/arrow.gif -bin/res/loading-image.gif -bin/res/broken-image.gif -bin/res/fonts/* -bin/res/dtd/* -bin/res/html/* -bin/res/unixcharset.properties -bin/res/charsetalias.properties -bin/res/charsetData.properties -bin/res/langGroups.properties -bin/res/language.properties -bin/res/entityTables/* - -; svg -bin/res/svg.css -bin/components/dom_svg.xpt - -; spellchecker (may not be present) -bin/components/libmyspell.so -bin/components/spellchecker.xpt -bin/components/libspellchecker.so - -; [Personal Security Manager] -; -bin/add-ons/libnssckbi.so -bin/components/pipboot.xpt -bin/components/pipnss.xpt -bin/components/pippki.xpt -bin/lib/libnss3.so -bin//lib/libsmime3.so -bin/libsoftokn3.chk -bin/lib/libsoftokn3.so -bin/libfreebl3.chk -bin/add-ons/libfreebl3.so -bin/lib/libssl3.so -bin/chrome/pipnss.jar -bin/chrome/pippki.jar -bin/chrome/pippki.manifest - -; [Updater] -; -bin/updater - -; [Extensions] -; -bin/components/libnkgnomevfs.so -bin/components/libauth.so - -; [Additional Developer Tools] -[adt] -bin/extensions/inspector@mozilla.org/install.rdf -bin/extensions/inspector@mozilla.org/components/inspector-cmdline.js -bin/extensions/inspector@mozilla.org/chrome.manifest -bin/extensions/inspector@mozilla.org/chrome/inspector.jar -bin/extensions/inspector@mozilla.org/defaults/preferences/inspector.js - -; [Additional Browsing Enhancements] -[abe] - -[talkback] -bin/README.txt,bin/readme.txt -bin/extensions/talkback@mozilla.org/install.rdf -bin/extensions/talkback@mozilla.org/chrome.manifest -bin/extensions/talkback@mozilla.org/components/libqfaservices.so -bin/extensions/talkback@mozilla.org/components/qfaservices.xpt -bin/extensions/talkback@mozilla.org/components/talkback/* diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rdef b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rdef deleted file mode 100644 index 4394fcebb..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rdef +++ /dev/null @@ -1,125 +0,0 @@ -/* - * BeZillaBrowser.rdef - */ - -resource app_signature "application/x-vnd.Mozilla-Sunbird"; - -resource app_flags B_SINGLE_LAUNCH; - -resource app_version { - /* - * We are using the source code version number - * for our program version. - * TODO : implement something better. - */ - major = 1, - middle = 8, - minor = 1, - - /* 0 = development 1 = alpha 2 = beta - 3 = gamma 4 = golden master 5 = final */ - variety = 0, - - internal = 21, - - short_info = "BeZillaCalendar", - long_info = "BeZillaCalendar is based on Mozilla's source code" -}; - -resource file_types message { - "types" = "text/csv", - "types" = "text/calendar" - /* - // TODO: - // .sdb is mimetype application/octet-stream - // is there a more elegant way to handle it? - types" = "application/octet-stream" - */ -}; -resource vector_icon { - $"6E636966200500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" - $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" - $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" - $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" - $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" - $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" - $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" - $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" - $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" - $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" - $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" - $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" - $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" - $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" - $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" - $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" - $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" - $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" - $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" - $"000200060239CDA03A935CBC02343AF7494899864A8DDC00FFDB97FFFCAF2902" - $"0106033B471C0000000000003B36DB472800498C0000F2F2F2AB7D7A7AFFBCA1" - $"84280633EEEBFFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0B478" - $"BFB4B450BFB7B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82B33E" - $"BBDBB3F2BBCEB4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45B50A" - $"BB45B50ABB44B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1EB58D" - $"BA12B593BA12B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975B5EC" - $"B974B5EDB918B626B918B626B917B626B8EDB642B893B681B887B689B86CB69C" - $"B7F22AB7B5B72DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB4BB3" - $"80BC3AB317BC7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54FBB03" - $"C7E8BAF4C7DBBAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4C760" - $"C888CA38C797C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34CCBC2" - $"C1EBCA78BF62C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17C999" - $"BCEAC857BA6BC720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DBC472" - $"B66FC405B613C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34C05A" - $"34C05B34C05A34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5D3CB" - $"14C47FC521B8CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE82B7" - $"89BF00C251BCE5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C044C5" - $"12C05CCC1E0604EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87FB7A5" - $"BC0CB4F7B87FB7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50ABF" - $"40B50ABD2DB521B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36B3F7" - $"BCF4B789BF00BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7A5BD" - $"7FBA63BC9BBC64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A04BC" - $"7AB801BF99B6C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC30EB7" - $"7BC204B6CF0A05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B967C2" - $"23B8A5C3F1BB51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3F1BB" - $"51C5B0BB5AC71A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC23C0" - $"5CCC1EC044C512BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A04C9" - $"EA41C8C5BFF3CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7C1C4" - $"BED1C0BCBCE5C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7BCB1" - $"B7EC0A04BFE1B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69AC5B7" - $"B6C3C41AB8250A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3C9EA" - $"41CA07C060C8E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9EA41" - $"C8C5BFF3C80FBE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3B826" - $"C5B7B6C3C594B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187B3FF" - $"C068B5C6BF40B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9EB57C" - $"BC9EB57CBB34B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36B3F7" - $"BCF4B413C012B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044C512" - $"C05CCC1EC693C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302BB33" - $"4EB8F2C3E4B99FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC38BF" - $"63BC91BF9DBC71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137BE10" - $"BC1ABE4BBC03BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58BF7B" - $"BB58BF8FBB45BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBFE7BB" - $"B2BFE7BB85BFE7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC80BE" - $"FCBCDBBE32BC45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC1DBE" - $"58BC27BE70BC1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB77BF" - $"B7BB5CBFA7BB66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBFDCBB" - $"EA0605BA02BC2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBBF5C7" - $"310A04BC7AB801BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C204B6" - $"CF0A05BCAAC670BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBDE5C8" - $"8AC04EC88BBDC9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60C971" - $"BD4FCB2BC054CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21BEE9" - $"BBBAC059BA770204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBCBB8F" - $"BFD9BBE8BFD9BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37ABBFA" - $"C2FDBAD1C336BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE00CC" - $"16C049CC29C033C51CBFB5C4EA0A092844284E2A502A5A325A3250344E34442E" - $"4202042E3AB9753AB7B23A2A3E2ABE112ABFD52E42B7B242B97542323E32BFD5" - $"32BE11280A000100000A010101000A020102000A030103000A040104000A0501" - $"05000A060106000A070107000A080108000A090109000A0A010A000A0B010B00" - $"0A0C010C000A0D010D000A0E010E000A0F010F000A100110000A110111000A12" - $"0112000A130113000A140114000A150115000A1603161718000A170119000A18" - $"011A000A18011B000A18011C000A18011D000A18011E000A18011F000A180120" - $"000A190121000A180122000A1A0123000A1B0124000A1C0125000A1D012630C3" - $"89B47101178400040A1E012620C389B4710A1D012730C389B47101178400040A" - $"1F012720C389B471" -}; - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rsrc b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/calendar/sunbird/app/apprunner-beos.rsrc deleted file mode 100644 index 130fb93a542deb04b81aee5d4971dbb7201f48cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4200 zcmeI0ZD?Cn7{^cDx-MJOB+Y#}_a(QHF+|zcp)t9qh+ErrHPDx^l(Bs($(qqXO-7e3 zzF-)*4`xGHzfEKx#1-ARg3A~L3kN)Zv6irD&p&b@6{_f05%>C^st z?>YbHdCqfQZkyW!S;km+bl)ai_7QaRABo?x}kbM*VAX|7-~3ATi~C zqm8kR-Y~3*`=v&6EACMbS+m`{F5SO=pVvNwJlj^JHLaP3S<5w9&%bu(ZGCOm*LM93 zte=7Z`wYsa*@qPt{5gjQ*YB{f-flS%r9t@ePLbgRi^73Q7^%RFKw z1*u7rlkS%GUpMQm{h*8VCON3SSQ7kO#AL$ zj&MWOb=A;xi<^#ZT9Jm-lL;hn-Dam_S`N1?Ee}7g**ww+)6rPgxoR5RvGPdo#JHn` z8??NTWrC)Ll~p+gFtt3gTb-d0tuIEGx`>)FZabFk*p_W_N3Az#|4Sj^)RDb!w=!8jhE!)jY?VNTpI(@l;AsPt9+jGnGOIx&=JWUXV6dONm6H7Vw)F z<^-B4(auzT4}H}|Dgl44hP_7yZ2^6cZmYg7{rv|@*U6uBL#l|E!>4ez{rE+UEj|4F zi&QRk$ofPW1=Fpp-SSTM;MKv{ zmVU<0_uhcd3xI>e9WC-o@e0^|d()}Gk?ip1>B6z8r^hR0Hd%OiH_fz#z4S;6yTt?E ze9%Mlpd55vig&-I_|c)(BjppN3S)bbkIqV4{zRoxE*)n@bV}oWhY<7%-j`klv*0yw z30whJK?A%A-U4rfcfh;gJ@7vG0DK5O0(0PFa2g5SU$@H_Yu{0067i=YJ?umQA!HV^ zus{rSf&0NWupK-A9t0189bgyO4ITyw@F++E7YNV;9s`eqy&!k&*i`XIu2L+Qx}Vy4 zvNW-4xcp3UYAUzWKVxyWKa=UDEh9p#Z(uar)0@eR?;q+N%*uB}+Ov_-{xpsbqumdC zPD4G}v3=v|{?U;Yum1EfdC`;Mdkx>~H8_|Zrop_kF9+P89vT=QJDeF<8S$WBRx3Os kD`g!VIFL=>HDq=;EtApz41z0e+4SIYRkyls#-Or)05tZZ%K!iX diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/mail/app/apprunner-beos.rdef b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/mail/app/apprunner-beos.rdef deleted file mode 100644 index 77e2166df..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/mail/app/apprunner-beos.rdef +++ /dev/null @@ -1,126 +0,0 @@ -/* - * BeZillaBrowser.rdef - */ - -resource app_signature "application/x-vnd.Mozilla-Thunderbird"; - -resource app_flags B_SINGLE_LAUNCH; - -resource app_version { - /* - * We are using the source code version number - * for our program version. - * TODO : implement something better. - */ - major = 1, - middle = 8, - minor = 1, - - /* 0 = development 1 = alpha 2 = beta - 3 = gamma 4 = golden master 5 = final */ - variety = 0, - - internal = 21, - - short_info = "BeZillaMailNews", - long_info = "BeZillaMailNews is based on Mozilla's source code" -}; - -resource file_types message { - "types" = "application/x-vnd.Be.URL.mailto", - "types" = "application/x-vnd.Be.URL.news", - "types" = "applicataion/x-person", - "types" = "message/rfc822", - "types" = "text/E-mail", - "types" = "text/x-email", - "types" = "text/x-vnd.Be-MailDraft" -}; - -resource vector_icon { - $"6E636966200500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" - $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" - $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" - $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" - $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" - $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" - $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" - $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" - $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" - $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" - $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" - $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" - $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" - $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" - $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" - $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" - $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" - $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" - $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" - $"0002000602389ECD3AF097BC491F3A09894954654ABDFA00FFFFFFFFD9D09303" - $"6B5222280633EEEBFFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0" - $"B478BFB4B450BFB7B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82" - $"B33EBBDBB3F2BBCEB4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45" - $"B50ABB45B50ABB44B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1E" - $"B58DBA12B593BA12B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975" - $"B5ECB974B5EDB918B626B918B626B917B626B8EDB642B893B681B887B689B86C" - $"B69CB7F22AB7B5B72DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB" - $"4BB380BC3AB317BC7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54F" - $"BB03C7E8BAF4C7DBBAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4" - $"C760C888CA38C797C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34C" - $"CBC2C1EBCA78BF62C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17" - $"C999BCEAC857BA6BC720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DB" - $"C472B66FC405B613C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34" - $"C05A34C05B34C05A34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5" - $"D3CB14C47FC521B8CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE" - $"82B789BF00C251BCE5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C0" - $"44C512C05CCC1E0604EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87F" - $"B7A5BC0CB4F7B87FB7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B5" - $"0ABF40B50ABD2DB521B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36" - $"B3F7BCF4B789BF00BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7" - $"A5BD7FBA63BC9BBC64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A" - $"04BC7AB801BF99B6C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC3" - $"0EB77BC204B6CF0A05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B9" - $"67C223B8A5C3F1BB51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3" - $"F1BB51C5B0BB5AC71A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC" - $"23C05CCC1EC044C512BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A" - $"04C9EA41C8C5BFF3CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7" - $"C1C4BED1C0BCBCE5C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7" - $"BCB1B7EC0A04BFE1B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69A" - $"C5B7B6C3C41AB8250A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3" - $"C9EA41CA07C060C8E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9" - $"EA41C8C5BFF3C80FBE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3" - $"B826C5B7B6C3C594B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187" - $"B3FFC068B5C6BF40B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9E" - $"B57CBC9EB57CBB34B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36" - $"B3F7BCF4B413C012B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044" - $"C512C05CCC1EC693C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302" - $"BB334EB8F2C3E4B99FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC" - $"38BF63BC91BF9DBC71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137" - $"BE10BC1ABE4BBC03BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58" - $"BF7BBB58BF8FBB45BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBF" - $"E7BBB2BFE7BB85BFE7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC" - $"80BEFCBCDBBE32BC45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC" - $"1DBE58BC27BE70BC1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB" - $"77BFB7BB5CBFA7BB66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBF" - $"DCBBEA0605BA02BC2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBB" - $"F5C7310A04BC7AB801BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C2" - $"04B6CF0A05BCAAC670BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBD" - $"E5C88AC04EC88BBDC9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60" - $"C971BD4FCB2BC054CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21" - $"BEE9BBBAC059BA770204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBC" - $"BB8FBFD9BBE8BFD9BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37A" - $"BBFAC2FDBAD1C336BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE" - $"00CC16C049CC29C033C51CBFB5C4EA0A04244C245C3C5C3C4C060AEEFE0E244C" - $"30542E5432543C4CBB1454BCCAC670BB14543C5CBABCC808BABCC808BA0EC8AC" - $"3056B9A856B91756B801C808B8B1C8ACB801C808245CB7A954B7A954B5F4C670" - $"280A000100000A010101000A020102000A030103000A040104000A050105000A" - $"060106000A070107000A080108000A090109000A0A010A000A0B010B000A0C01" - $"0C000A0D010D000A0E010E000A0F010F000A100110000A110111000A12011200" - $"0A130113000A140114000A150115000A1603161718000A170119000A18011A00" - $"0A18011B000A18011C000A18011D000A18011E000A18011F000A180120000A19" - $"0121000A180122000A1A0123000A1B0124000A1C0125000A1D012638C018B358" - $"15FF01178400040A1D012638C018B358001501178600040A1E012620C018B358" - $"0A1F012720C018B358" -}; - - diff --git a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/xpfe/bootstrap/apprunner-beos.rdef b/www-client/mozilla_firefox/copy-to-mozilla-src-dir/xpfe/bootstrap/apprunner-beos.rdef deleted file mode 100644 index 6ca677791..000000000 --- a/www-client/mozilla_firefox/copy-to-mozilla-src-dir/xpfe/bootstrap/apprunner-beos.rdef +++ /dev/null @@ -1,136 +0,0 @@ -/* - * BeZillaBrowser.rdef - */ - -resource app_signature "application/x-vnd.Mozilla-SeaMonkey"; - -resource app_flags B_SINGLE_LAUNCH; - -resource app_version { - /* - * We are using the source code version number - * for our program version. - * TODO : implement something better. - */ - major = 1, - middle = 8, - minor = 1, - - /* 0 = development 1 = alpha 2 = beta - 3 = gamma 4 = golden master 5 = final */ - variety = 0, - - internal = 21, - - short_info = "BeZillaSuite", - long_info = "BeZillaSuite is based on Mozilla's source code" -}; - -resource file_types message { - "types" = "application/x-vnd.Be.URL.file", - "types" = "application/x-vnd.Be.URL.ftp", - "types" = "application/x-vnd.Be.URL.http", - "types" = "application/x-vnd.Be.URL.https", - "types" = "application/x-vnd.Be.URL.mailto", - "types" = "application/x-vnd.Be.URL.news", - "types" = "text/html" - /* - * Should BeZillaSuite include these additional filetypes? - * note: MailNews has them - "types" = "applicataion/x-person", - "types" = "message/rfc822", - "types" = "text/E-mail", - "types" = "text/x-email" - "types" = "text/x-vnd.Be-MailDraft" - */ -}; - -resource vector_icon { - $"6E636966210500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" - $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" - $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" - $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" - $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" - $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" - $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" - $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" - $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" - $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" - $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" - $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" - $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" - $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" - $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" - $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" - $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" - $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" - $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" - $"000200060237889D389554BBFC4A3AB9D0491ADE4A422000FFF9BAFFFFC10402" - $"0006023882A6389353BB177D3B0378484ADD4AF27700C7E3FFFF392FFF020006" - $"0237A0CC393C5ABC1AC23A5C164A19B94AFE5400FF9797FFCE3232290633EEEB" - $"FFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0B478BFB4B450BFB7" - $"B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82B33EBBDBB3F2BBCE" - $"B4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45B50ABB45B50ABB44" - $"B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1EB58DBA12B593BA12" - $"B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975B5ECB974B5EDB918" - $"B626B918B626B917B626B8EDB642B893B681B887B689B86CB69CB7F22AB7B5B7" - $"2DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB4BB380BC3AB317BC" - $"7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54FBB03C7E8BAF4C7DB" - $"BAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4C760C888CA38C797" - $"C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34CCBC2C1EBCA78BF62" - $"C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17C999BCEAC857BA6B" - $"C720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DBC472B66FC405B613" - $"C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34C05A34C05B34C05A" - $"34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5D3CB14C47FC521B8" - $"CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE82B789BF00C251BC" - $"E5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C044C512C05CCC1E06" - $"04EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87FB7A5BC0CB4F7B87F" - $"B7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50ABF40B50ABD2DB5" - $"21B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36B3F7BCF4B789BF00" - $"BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7A5BD7FBA63BC9BBC" - $"64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A04BC7AB801BF99B6" - $"C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC30EB77BC204B6CF0A" - $"05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B967C223B8A5C3F1BB" - $"51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3F1BB51C5B0BB5AC7" - $"1A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC23C05CCC1EC044C5" - $"12BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A04C9EA41C8C5BFF3" - $"CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7C1C4BED1C0BCBCE5" - $"C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7BCB1B7EC0A04BFE1" - $"B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69AC5B7B6C3C41AB825" - $"0A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3C9EA41CA07C060C8" - $"E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9EA41C8C5BFF3C80F" - $"BE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3B826C5B7B6C3C594" - $"B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187B3FFC068B5C6BF40" - $"B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9EB57CBC9EB57CBB34" - $"B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36B3F7BCF4B413C012" - $"B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044C512C05CCC1EC693" - $"C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302BB334EB8F2C3E4B9" - $"9FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC38BF63BC91BF9DBC" - $"71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137BE10BC1ABE4BBC03" - $"BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58BF7BBB58BF8FBB45" - $"BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBFE7BBB2BFE7BB85BF" - $"E7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC80BEFCBCDBBE32BC" - $"45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC1DBE58BC27BE70BC" - $"1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB77BFB7BB5CBFA7BB" - $"66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBFDCBBEA0605BA02BC" - $"2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBBF5C7310A04BC7AB8" - $"01BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C204B6CF0A05BCAAC6" - $"70BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBDE5C88AC04EC88BBD" - $"C9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60C971BD4FCB2BC054" - $"CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21BEE9BBBAC059BA77" - $"0204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBCBB8FBFD9BBE8BFD9" - $"BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37ABBFAC2FDBAD1C336" - $"BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE00CC16C049CC29C0" - $"33C51CBFB5C4EA0A062C472C4E3251364E364730440A06265226592C5C305930" - $"522A4F0A0632533259385C3C593C5237C5D3290A000100000A010101000A0201" - $"02000A030103000A040104000A050105000A060106000A070107000A08010800" - $"0A090109000A0A010A000A0B010B000A0C010C000A0D010D000A0E010E000A0F" - $"010F000A100110000A110111000A120112000A130113000A140114000A150115" - $"000A1603161718000A170119000A18011A000A18011B000A18011C000A18011D" - $"000A18011E000A18011F000A180120000A190121000A180122000A1A0123000A" - $"1B0124000A1C0125000A1D032627283841B30C15FF01178400040A1D03262728" - $"3841B30C001501178600040A1E01262041B30C0A1F01272041B30C0A20012820" - $"41B30C" -}; - - diff --git a/www-client/mozilla_firefox/hvif-icons/BeZilla-Browser-l b/www-client/mozilla_firefox/hvif-icons/BeZilla-Browser-l deleted file mode 100644 index f6e7614a51fb276fe2924ad4e2ec1e3b2e23b1ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33861 zcmd^I4OA3YmM+vrApT&&sOYZKkz|5ym@$}$s~xE-wTS_>XOz`pk{}9%9ScGMuVQKRk&?ukyKG3<9=^{b+( zZm4d0kY?(f@>N~ld-d+`yZ65L+F7&br9CFkwMGc5C26(5u88Qgw0X0?dR!1p%X3@> z&M)z#)Oq|%dZsHPg6ceir&E9opnBydUd>ca&vZpZ|7iZa>9Kek;K*5)HxLgNsymJT zi2mo#vB?whP#!@aE3!LWWm{rohvS{p>(~0rHe0EflF}x{#myI;&Nk`R%}jCC%KwuN z9h?UEW$DeWqf<{D-zUY#$BQ2|)=0UzZ-}|MHIm7+Sxio@l#VvMEyl<1lrl4SikC0_ zTq-F!F5bGiLCVfPDQ>S=jlcgt+(#j+N8X)1{V+4+1w)aySxM85d`f&!4LR{D<6Ee z)Ys#CrSeCOQFvY>Z&;rpTPzFZq$ImsS35_Rq!Kwhd!jsa=!4?V#eyYRkQaka9-n9X680< z*RA80)A=l@xIpDrVxk*d8>iz|<<2E?%f*|J^yk3k>pE_oIh`TL#Qajnt(24>03Oph zx1tqp6|GQ}tL0*ZeEr%|m0j1b-H{R!ri&I!t0V|!opNnhUjt=$Lv*{9GA5=HL){^k zlx&kEX`iZG2kJL~tS7|{>lNkN^!h8(o!eLO-aX|ye=ZKnyQWL!5`?FqxCuITnM~WH zj~W-M%GGrC4;bfa9lMS;tbl^eRN0lC{UQ`9LC3Dkm!5-CeIdEs&&kz$F6h{mnVF6; zY}B#q{JHV+xo^yD&G9&D{knG)vCS6(F7yA$lgcq~r;i$Y8O&tk9JY zNu?_vRbA~u)XeB|RO{BhDA9~bqYL?{H2(2n34#L?)0673jy6QgH(G6feqxcF5V7d? zk`pft>O@JCk-FMvq*W`YNK6BG6P2&L z6(<;PRk^bcy!(~t)k>o~Z|3)7L>KxP-QINZPmA72hjnYq;E8>1ln!q9$5MKFHJm#S z(SxDGC`}$l(KB5}79 zVy4rVfLdwv=(1TbauOOka8@NHC5h?j{oz$B7Mss2UKT)=kAPZfbm+3#y`zJ}aZtL^ z`V?ZhyYQ@s!#({Jeuout-4VD5E4?j%N{4`2X>{naSuk`6jorx3jzByY3%7O{d@Zvm zNeQym`YOr?;lfYElsX(!>qtL#BdFFIT?{u5#%_d$K1UnIA;OwPb1I`#e0-W*wq*_? zIuY^iTL@DWKh3vY4XU+9AH&Uqq0dBZ-kC_xbQzgykhRxcX80`7+BMuVZd!+hj-LJEx?CVH(~o1&u|_t$;f z;ec9cbm_8LF!m=j@^j*NJzRyEh+B3e6S5d_N+Uw&6>5CK;}ssi_?DlJy-*?{GqcE8 zFB+XXcGGh4B3z=E{daTk9vCh~E6;q(6xDTUpTr5_`nYed#)p6qsC@#Fso)JmgE zm(7BapU~*hm@)Z?l?Nb&l7&oFKcqz*n6DD$6UU2?e;lF2w>rNrpjH|kx@;B<9YUi= zO=ruHR~{~t-#>I{0`dvlFsF}`$Bem(oUE1~=-du>s~3$<0e2IO9)*T(+%@BVANK># zpKC@+@LBQ1@ee`I*Tk|dN07swspyq%{_0jQ8r=f!CK$SfM(?=mcH(${q+y0hcKZX+ zzwwAc6+hDV{1s3ujV@g_3r6okLx+woTFb?$$iR=l9QHTNPxMWPfLdvE=(5?pqeI6j z!r}N4=BH}p9IQxX|JvYu)M+b?4qbli-qC^2Lwu@`r03`(`AccI-QIB!ce%Mg&;3{K&+_~`Pic=ClZ!Qv8EQ(K*$qxo zHBJf_s%B>1fG7I4U#ezjuSK*N3vMY{NuGb~n3d`-Rkv3xg!XCc7hY7=^e9}&>Q7kf zYIlH~S9(lXQ&Nf$Y*;j5B|AgHN_WRN+G}aV=ZpU}0(2*Y#?QNasRc{SX5?^oU{0D0 zTjD@|d>q!;)*$0g`3q$oZPm)Fs28KyX`P?ftzI;F3%DDiZ=iXKGT36zI#U@v(`Cet z$Dp1Kw_?W=5+V>^)q*Cp=i@Lm_B_@b_an7`4)*bV_sm1HsHGu zm$o7PcpJG?0sBOD02Tp%=pDrm;Ga$~tG?}97;!Fsh?k03jH9^BfGh52Tz zV%F)tl9lx>Mz+K2D=8_}-e1w^?r;cL0Ii2Z{{@`+4^?EW)(iOLdpcxnwr|jNB@zF8nTH#M{VqSHn6Je|CYo0(7DZ?IVz@+viO=l|O`dU2QFT zybB^7WWAm_eZ<3;dT{%XxbvA1iXJ^MlfFJ0*wMNg5&8^l^zMB)Be67oMCc>eK zpLod2*I@*KX!Ey_**35o>oc^4PnW+5sFg;KE}Ib@=wozy>2oKVdIxR)<| z4<3sQEo-;#qTBaksJ4c;-|B>Kp!;4zqZj07r=(1Wx;9|`kP$0ffL%(54;+bjaTavt z514P}_|c1?T5I$$+}xjDz|!RSS3=y2%Z9{6YTFgN`kTm5onlW8F0yd12(oy7W5fgd^q)Jmg6m(A`S z9c;EL@I42y>q*$fV&oG{u#-iYOFm}nCBE%sK&>=7blEHzI)uhfW@e@#<=0%VlTN zTI>w0TiX;l(Ah~twKcr`RwsM|wUeR2*KYqW_-gN~o^M=SBz%d@%Dkw<*HCQ@U%%CZ z!8bJeo{;b-_^9tf#=n7oTFqQ;{@!x2-j6>(t;m6|-1)WI>dx(Vpc!p&Bs;Xy@TX?H z8vhvYhBXUD&O<{7+WK5l@-WszYq9shj5Vz{f#F!};VfhCzV$tzRvI0;Y!(b1LKC-h z7d9@g3TGe|!(VQI->?F6fC;+)GS<5Wz!p9MpMm0;iHaT2#qAw?aXPC(O^2~wG&*(c zhJxUxv;XM78=_mFaeE75bx+*hLeF${h}+3kFU-ry7uuh584O?nZY6FPgyo33VqqI6 zptPVY6_KAo8H@J}lp@}3C>P;Zcr~MWHwUv>GpZ zf8C7QrJk>gC`G)}D5%%NcrQRnqu^iVWoKWf(LCz?b&XHj=jk(#qWebrPy17czor{m2Na7?FXx;h9*6hIbMc^ZabDj%FSXKn@sHKrv+g+;}9XcOj_ zV1OP$E1_q)I_XCk;CiV;KW(@e7Kvyc^?Y$ou07A;8msj?mY!L^5p+ycWLvTQg&bGjlqs`tEMdx&G*2JYCK|W;K4_$S@XQQ(1~nhzD$a2@^NWg?<+$uc z4yt?jvHv+p<*60IAy1h~C5I_nw&D=c8zp<^aNB27MS@2iP3}E>@SKC{OMGZP{2rrw z!R{Ky2bAoc!)>w2j1M(;Exm^ip3_-EzzS2haJ| zzQl)(N&m$7;9hZ<=>tmk&f(?1|32eG(+9n1e(;>{?@N4ef4Y;={nYkNj1MT;JBPPk zn8Nrl`NBi~^kM1Jr9JGodQPMEB|c0Zv5V22Y)|`(!)x*-k>CZdCivq+&&Lm*@U1WL zp>(0*FSX|ZJ#+ZsA!#DLS3Ts{Us|wWK@aPL-N6>v`V=3U_b`2^N!-Ki5=!=7>VcPT zeuD8~V|rTe(FbL{-_)1*AnbQC`fq$n;R8y>2M#azP|0gleQfPLe29gD;`ey^5+4#v zUS)I_vlM>`C41-a!!64Euw0nkd-$*zCxLJdsxR?jf8Gv7{%I0ucX4>@)mb8e#od1W z*12=%_VD~bn;wx6>`Q!T78Sp>9Shhahl`aNA^{Qy%9@n_^|u_``gaq?%BMz=QLGc;=|+_#R?x{sue!ORI_&u zU$k|SNPJrN$p~M3p!J8IkK>ddZi?tjd=U2ig3;aftfCJn**k|<7A(b5PyqXImTOVsI$>X=@UMQ1p{uF5EWQ4}Leb(C)y768-)f zVu@fiAg3nOWE;ZR;RXFZojpP?*r)Sled8oc?t7{3qo2QfO=>#ybn@1_Lzi4gEqbSN z?Y|ECfaJD$V}@BoS&{ua-*Mx<(QR#C9}7TE*=8KR`zgqMI)bvV4dY@L+wrt$9PQgG z$XTA}%*3Ozk7`^dJ=3NAe)R-EOswJ^z&-o6?$9$`5$YbIXtrI;T%4Cra1|WIerMGK z_5PJeWs?^TVVXb~cD6rC5L%gCpuW8?JzU+pG_U~sn(U6}g~7BfibN}JncZQ2!S1v# zwinu6FPWW7atf8LP+E-~w~rd7q7Z8oe=nA)_!Bg&@fVEZPy5gG{3mEw<3HFa{{4O8 zPtdT&Ki4S!q-c8n6Ev*xcNoQ=CNn+$1PyEa4eLK`7}w)Z(6Gkeu>8~i;-JT$pka-_ zVgA#+uE(FCVU2&OQT>nhi9bQZ8h^V{{OQL8^!#T(G2r#TorIbHx7;ZH_xZ%1pkd8_ z!}>qSC;kNe%fO!i@GNHsLJ)IY#Awh)@0#G_3hA8pVI8Py7iQ*7zINf7(8y zxBmnUYy1uS|HFLZPtdT&Kh>!G-|rKDf`&EzE~EHA;1hp>hBf|%6tEH`QPDyvoorc@*=lS^?~RwBXHAym*t-pbUwD1=YrWe zS)=xVFxJn9bb8o74Ok4_$$8;kkPkm(6o2Bj9{*9{j(=MB@E;xS_#5^Iee?gX!X5wo z?(zSx!yW&O?%_Ws-0|dfS>|YH2{SBhL;?M9-A9uNmZS=gf*yZf-<4?5WI?q*H zv@}mxh{twgp#5s*B{|EzpwSHa(;~aW3mjv||2AE0COE~sEHI_$%=Dr?*Hu7O@nc}3 z3chcd9Y3XHF0`Z6{c)JmSGy|Xo_X!a&BWGJwf#V6K~b?QkBxz~_x#>d_X6T?J)5WS zA^J%-Ld4+asD_(W)7ovH^0zsv4L^1pYI&fHS$lafJD24Y7D8&$(&o+X)$%a1@5%$o wWasig5+l&BUK_QK6bW=>5nO(}{GqI>dlFyUOXZNe~6XtT=egm`v`% zJK~?{-s#4;QFv#(;EN*4UBoOT;^ov8vy!**&+6Ti+^RwLqDH+JycgX><8r^Rda9eD zXP{@8MP|0&YpeUCs=B_v^?hGejk9LYOMhIRYmE|COVVnAT~RUV>GNiP{e&Qxmgl+( zonPTesq@5F^h{S&6xDeYPp1GGK=mq2yqc+kp6QB;`O*A&)8p_oz>&Kwe-IulRCgNv z5&h4fW0NQ1p(2VtR%~~;%D2SI4#&G`*RS=LZMHHoHML!ekDo6(o$b=Cn_1$jmH#Il zIyepR%hFq0N2i@QzE4U>NDx16s+IEc-W2olY9*6tvzU@nB^_;iM@&fADP?8t6fa-; zxl~$uT)cI2gOrnVQrup-8h`)2She$2sb<2{=Q5)bGo0@d^Sg_uNy3l z8S^~8J48Cr@MC;um{h*SD%osi^!b!jyZ2Ga>6|L1q@+mM+2bXv^+joWWo4S(-XLAR zR4}b(&p|fE`1ok~*3D$J9V=&KWJs+S9|CTo&-mpGXwpbR*$;o!PzHW{zNu_d5&O~|W(3j-Y)JO4mw|unmJMvpw zm&)5Kzm_bPMX2``aC#Qsyo_=&>K((_|3*$o*bKa$k)6)1pqUM0n<-W8oGRDuJtSJK z4_Cw*CQM(sS!Z zTP>*mkAAsz>*i)~`QV?7Tf~jpy)Q^7j&FlRRr%$X$uv`njUB7wR_)%m!Fi2aSy|h_ zUAK-~PUmx=;sTXhNl9*SZJdrut9XT~T&)+Qy&H5`dTQ%o1)vTl(Df@80rqO zv~-&!N&8ggI?%8IWIZWvSg$D8rZ--d?%ckL_ns-&`E&75-ZkASmmoY1#ZA<)%VgRn zecZHARj%f)3U)aRn4?rpm6IoR^?bi8^*&zVtkl>PyM(eqOHGb3wchhiFPWa{GJ-G7R%N&q zd{?cU0nMBX8<`JrkztGfR<7Fl135l^66~lQR_Zjw;7y3YVQItq4`I_M!EWDR<zLEFzkx3O|!;x5b$WOH}H3eA%9@&t(IM2MbAE-ighCNfwouPAio zLsIF=M^#_95H&Nq9o4$EFG)0G(&$1yDvf`9Sc2fd#PpOptfP%F@{KmzpPpDGCqyi| zz2wA8gSt=>v?Fy=^n@A#KrjP-%mCCg<5uK`%LSK{TQ_eqf26+dS!vbEDH78F-bCdq zZ^a45TUG6>2k-tx^lGKioj3FQF`^57jBanb_@_l*q{F(ko3VU#8hqv)9~Bl18la1w4s9`4*8B{rWurrL*9D}N3@?^D%oNYX4xfD_I*%$urm zAxRg-`1o42^_|;4mDa5#uTHT#K3i+@(fQ+oPz}2LM&F$1Lm#KxTTcAXETNGT&LS?# zJ~7kjOF*qOdUV??7&!?I9XP9!las}ajQ;Sd6^qU16)y{*%11!0G&*$K?B3DA;W#MW zXnPv5++BFq!{MHO2EW6Kxb6sCgq7YFK&3-Ktu#7x+bkG5gvM^<QOHmy#nrr=thH~yVHE+cR~t{9VU9MTbrt*8~4|J z+u?v(X>{qfSupk|H1c!ecmrI8nTT6WV zOSjE}k)P1$(U>s>h?NH*g_4a-RX?Of9GI_?k$)Va#J4)XE}&K#9lC863>`wF zN6lx;kyjorlixpdXd?0n+c2k(lgEs?ikz&LAL!Z+_ox?*P62llj2?xCZrnBFejoP( z&!1~SO7J=H#PN?n&)3EBEk}^Uo~h`SZvN^~FB;tf?j{(zg+}kV>vrOJf23iCNp|~# z(7*ABK@~sJ_xu%5D~&GQHVa1YLPLknE?VowsmQ>Oz#R5h%un=9hk#mXbm+F(y`w|t zDZ=6S5$2~FW&hIPeAHztjSk&@?B3CV&qI8wkfayn?CgPzr_#w0W4*gAcj1bROpFE2`hZInVtW z&SD;CQQURt;2h+*75(Dz7*`3mdpzd*3@jHZaVw8wJKLr5Ed!A{{tPRBO1?BX`3q#O zcZuBY^Lap$euc3eQ&W391LiNK;dXn+LEPo${yg_zxj)PE?>wbFW=tN|JZ7jVZDuz( zN!2(hT&S9rbpxL0JASE}ld~4lVjQ@oWF>k2v2#|cr&Qfuxe(f?tzURiRnwzzA*(-O zt*_ewa$e~*VNFdfMzCSggq7?J2`k;5<7ls?5uY#q*9g#^5E?)4@}*WRF`JRY*?~D} zGHi(h`SEdBV_SoaKjkl!b+lD0ucBV8VyAU}UXOawZ`_a6{yEsk50D>hMIN;dG5nX<_p%qc)Z2jX zLR{L8_~RYqQU&Z2*#TG-{GoRhKY)KiwQJo)`$~59A2G5WUSCN~t?~YfMt6rpzyfFk9QrTe%zvaJW3^tuC*Rj0W3zpWuB(uk z5HMNoK)Wb7HMl{;BB<6HJq$PZrx&mueocF5^y1^D{jjzf@KgR9`MZT!gEB!b79!8tjCuAa ze&Wc0T50s?wplQG5gIxiI=Bb^**wfmzr|L+JlSL#gg7r3Yi}p9zEtRk4gs~&=+JGm zdq)SGtr~pKMeKSKcCiHc1QYCJG3Js_*m{X?I~hBuw2vHfy6 zIkXl#1MAi{MGka!(ok&;Z@<+E-$3nTXz;b${|mm_2dd{AA3qSj#Aan))ZuHWwuZ0Y z>cQX}8huYp`~!T{_aNin!auEHE;oN~z1ZN#AD~v`z*p`3Ms0QH_PfxGb~uuqT50%G zGhU5!EendtkIDHK3-$ST7o# zI(I`saP!%}_umcCEzr2V6|uS}Zf~V$x;n+}P?m|v&!CLMdnQT|?>3Z+@V>}XE=O60cU}^_8Shk&qBv@I3MKVZfzqPTn}1r3 z7rno3M(r}s*F}^f-f0xn>tVbXqNGvquky01uhVEA^ZvTVC++j}na9w5ndkFHkw1)f zG%WfI4U>pK!|sT@S!VGiAy0RQc!BoSQ;>;&1iyZwz>YyxKZ4ySPS?vt`Oa;4R2cur zHhQK@IS2J!Jh=fev5M32<_S2a(=%P21SA?D3#&X0LoihgNuM(}lY$!4lH#J`5?9vBsb5V?{JOP`W;Kptlua)sMQaTZ0pdH zqFkpl0dKOc#QtKgD}TzASvZz3WlFlI4{8>YVoq(miBmraXh1-|s5PbvO%(OP1xj z?8OeMd-(DHIY{NH6~ZA;nMNgtCq+FW(!1@LD4K{EG!&weLJ&fvtgNivG=FZUmH%mA zaY2DI-$l(JKxr!Opu_Tff~k-pI9Qfnvb?y6jfYTHxjx+PD9kUhyUgBWjuM)p1;K8ern(0gXbJnB=Obk) z(Y{R+Pjv%!w1jltVrTR_3D3TbSIhbcyait7bl7YpHMcr@9@EM zzBQ8gurc``7$4j#4l{i~$=*4<;`xz-E?wHoeyis+Y9#St@`zoG?qqv9UL0OqAc+Jod@a!*A9_E2@Pu!X z#D}tlioev62lUM0hwo1p>Am`4zy8vK1q*svAM6gcz!p(_XxYQ`p*Cp`vr8!1dzlAb zw)siMhm9HOeMcXZ^?p+%@j=+{Wc1(ow896Jj1L@M_>q#=sQ$#-clZzo1;y|2L=qp8 zN?&7i7qbn4l0uPus?r?BL6fAbhtRY?dmL%z~XMd ze(T)1b9;GypiPfR2u2bgT13Tf?Z5)|$l+pDrbvLK0Wdos7T_&{$slj z5uHa)*v|9HTKO7aw*%@Id=n+`XIk_ME1QBtA@@QKIl6wnpJYYz=$o z@I_lEiNvRMpN{aw2U>sV{Wwnf;ijla;)Ag77mV(<=M;TF$=*47~LyoZ%iY(N6Fqfy!zKx#)oyUoBIwQJU?g_NqjJ;|BTVyR0G>F!@5s-Z}ir z-zj=-8$Q#YeBq0|><7A(b5K3!XL~#3Vn`_ZX>S&UQ1nw!A>20D4}Leb$nL;~68-)f zVu@fiAg3nOWE;ZR;RXFZojpPy*r)SVL(?Qn-ur3pqhGvtO=>>$Ov=`~Lzi4gD}J|X z?Y|EGkmR;yW2RX|S()=2-*Mx<(e3Tu91B2B*=8KR`zgqMI)bvV4dY@L+wrt$9PQgG z%w3-E%)+Cxk7`^NJ=3NAe)R-EOswJ^z&-o6?$9$`QR*I|7`9!@T#{cva1|WQerMGK z_5PJeWs?^TVVXb~cC|lB5ZahspuW8?JzU+pG^h~!n(U4jgdwyoibN}ZncZQ2(eAV_ zwinr5FPoi9a*LF$P+E;#w~rcSq7Y{ke=nA)_!Bg&@fVEZPy5gG{3mEw<3GeG{{4O8 zPtdT&KhG%sq-c8n6Ev*xcNoQ=CNn+$1PyEa4eLK`7}w)Z(6Gkeu>8~i;-JT$pka-_ zVgA#+uE(FCVU2&8QT>nci9bQZ8h^V{{OQL8^!#T(G2r#TorIbHx7;ZH_xZ%1pkd8_ z!}>qiC;kNe^T3}SsNo@->i@GNHsLJ)xklyxexLj&Xjt=KG>ZRFpZF6rtnoLj|FnHZ zZ~qAz*7zIt|A+a+pP*rlf0|MGf50dH1PyEaT}JVL&?o)`4Qu=j%YVF2{0SP?_#2l0 z@A$-@pka-F`XHn*J?Cu)(KB7X^1s6YXJ=F?I2bVM&PFZF3UeH=zMG+&jqt{ zvPSIzVXU7I>GZIF8n76;i}S*LARm6nDE`E4J^rJ@9sl&6;XgXu@i*)b`sV*%gggEP zJ>&mhhCBY5J;Q%YxZ~eL`TuUX679{=wF%Hkh# z4{_RVSw3aRX%m>4?O9qOLCWcL1P&7r^R-M7dY0A|82U&OmK>MSzt=hndv2ao~w|m;>W;5 z6@1?^JAO*ZTx3V7`{OXBuMSnlJ^T8Rn@MeHYWqRX!r~HFJ{tpT@AXE8p4MUel)ueU?f9|VP|E{l%sR@0*|{vYs0dP%o<47OpO%M_kt+`*M_tPU tNsK_hdTrD`QY6rYeV~N{W*=w=4cjE@u@Co3B`}O`NTB>)AJt>m{{xjr{fYnp diff --git a/www-client/mozilla_firefox/hvif-icons/BeZilla-MailNews b/www-client/mozilla_firefox/hvif-icons/BeZilla-MailNews deleted file mode 100644 index aae8f134e8d534a719ae186b85711fa1a1a2d040..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34381 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 diff --git a/www-client/mozilla_firefox/hvif-icons/BeZilla-calendar-l b/www-client/mozilla_firefox/hvif-icons/BeZilla-calendar-l deleted file mode 100644 index a37cb9361f6e96e8a9a312443d323bac588b892a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34685 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 G;r{_&vZ~Gi diff --git a/www-client/mozilla_firefox/hvif-icons/BeZilla-calendar-r b/www-client/mozilla_firefox/hvif-icons/BeZilla-calendar-r deleted file mode 100644 index a4401ebc27a2e90343d8df29c02e9e53184978f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34685 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 E2c0{pm;e9( diff --git a/www-client/mozilla_firefox/hvif-icons/bezilla-1 copy b/www-client/mozilla_firefox/hvif-icons/bezilla-1 copy deleted file mode 100644 index b82b4e9522bbd6dc10efd382af66468063bcc8ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31597 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 UjM_g%I(qqkJ=W>30RhVK|B#OgYybcN diff --git a/www-client/mozilla_firefox/hvif-icons/icon_copyright/copyleft.txt b/www-client/mozilla_firefox/hvif-icons/icon_copyright/copyleft.txt deleted file mode 100644 index 0a618151a..000000000 --- a/www-client/mozilla_firefox/hvif-icons/icon_copyright/copyleft.txt +++ /dev/null @@ -1,180 +0,0 @@ -DESIGN SCIENCE LICENSE - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -Copyright © 1999-2001 Michael Stutz -Verbatim copying of this document is permitted, in any medium. - -0. PREAMBLE. - -Copyright law gives certain exclusive rights to the author of a work, -including the rights to copy, modify and distribute the work (the -"reproductive," "adaptative," and "distribution" rights). - -The idea of "copyleft" is to willfully revoke the exclusivity of those -rights under certain terms and conditions, so that anyone can copy and -distribute the work or properly attributed derivative works, while all -copies remain under the same terms and conditions as the original. - -The intent of this license is to be a general "copyleft" that can be -applied to any kind of work that has protection under copyright. This -license states those certain conditions under which a work published -under its terms may be copied, distributed, and modified. - -Whereas "design science" is a strategy for the development of -artifacts as a way to reform the environment (not people) and -subsequently improve the universal standard of living, this Design -Science License was written and deployed as a strategy for promoting -the progress of science and art through reform of the environment. - -1. DEFINITIONS. - -"License" shall mean this Design Science License. The License applies -to any work which contains a notice placed by the work's copyright -holder stating that it is published under the terms of this Design -Science License. - -"Work" shall mean such an aforementioned work. The License also -applies to the output of the Work, only if said output constitutes a -"derivative work" of the licensed Work as defined by copyright law. - -"Object Form" shall mean an executable or performable form of the -Work, being an embodiment of the Work in some tangible medium. - -"Source Data" shall mean the origin of the Object Form, being the -entire, machine-readable, preferred form of the Work for copying and -for human modification (usually the language, encoding or format in -which composed or recorded by the Author); plus any accompanying -files, scripts or other data necessary for installation, configuration -or compilation of the Work. - -(Examples of "Source Data" include, but are not limited to, the -following: if the Work is an image file composed and edited in PNG -format, then the original PNG source file is the Source Data; if the -Work is an MPEG 1.0 layer 3 digital audio recording made from a WAV -format audio file recording of an analog source, then the original WAV -file is the Source Data; if the Work was composed as an unformatted -plaintext file, then that file is the Source Data; if the Work was -composed in LaTeX, the LaTeX file(s) and any image files and/or custom -macros necessary for compilation constitute the Source Data.) - -"Author" shall mean the copyright holder(s) of the Work. - -The individual licensees are referred to as "you." - -2. RIGHTS AND COPYRIGHT. - -The Work is copyrighted by the Author. All rights to the Work are -reserved by the Author, except as specifically described below. This -License describes the terms and conditions under which the Author -permits you to copy, distribute and modify copies of the Work. - -In addition, you may refer to the Work, talk about it, and (as -dictated by "fair use") quote from it, just as you would any -copyrighted material under copyright law. - -Your right to operate, perform, read or otherwise interpret and/or -execute the Work is unrestricted; however, you do so at your own risk, -because the Work comes WITHOUT ANY WARRANTY -- see Section 7 ("NO -WARRANTY") below. - -3. COPYING AND DISTRIBUTION. - -Permission is granted to distribute, publish or otherwise present -verbatim copies of the entire Source Data of the Work, in any medium, -provided that full copyright notice and disclaimer of warranty, where -applicable, is conspicuously published on all copies, and a copy of -this License is distributed along with the Work. - -Permission is granted to distribute, publish or otherwise present -copies of the Object Form of the Work, in any medium, under the terms -for distribution of Source Data above and also provided that one of -the following additional conditions are met: - -(a) The Source Data is included in the same distribution, distributed -under the terms of this License; or - -(b) A written offer is included with the distribution, valid for at -least three years or for as long as the distribution is in print -(whichever is longer), with a publicly-accessible address (such as a -URL on the Internet) where, for a charge not greater than -transportation and media costs, anyone may receive a copy of the -Source Data of the Work distributed according to the section above; or - -(c) A third party's written offer for obtaining the Source Data at no -cost, as described in paragraph (b) above, is included with the -distribution. This option is valid only if you are a non-commercial -party, and only if you received the Object Form of the Work along with -such an offer. - -You may copy and distribute the Work either gratis or for a fee, and -if desired, you may offer warranty protection for the Work. - -The aggregation of the Work with other works that are not based on the -Work -- such as but not limited to inclusion in a publication, -broadcast, compilation, or other media -- does not bring the other -works in the scope of the License; nor does such aggregation void the -terms of the License for the Work. - -4. MODIFICATION. - -Permission is granted to modify or sample from a copy of the Work, -producing a derivative work, and to distribute the derivative work -under the terms described in the section for distribution above, -provided that the following terms are met: - -(a) The new, derivative work is published under the terms of this -License. - -(b) The derivative work is given a new name, so that its name or title -cannot be confused with the Work, or with a version of the Work, in -any way. - -(c) Appropriate authorship credit is given: for the differences -between the Work and the new derivative work, authorship is attributed -to you, while the material sampled or used from the Work remains -attributed to the original Author; appropriate notice must be included -with the new work indicating the nature and the dates of any -modifications of the Work made by you. - -5. NO RESTRICTIONS. - -You may not impose any further restrictions on the Work or any of its -derivative works beyond those restrictions described in this License. - -6. ACCEPTANCE. - -Copying, distributing or modifying the Work (including but not limited -to sampling from the Work in a new work) indicates acceptance of these -terms. If you do not follow the terms of this License, any rights -granted to you by the License are null and void. The copying, -distribution or modification of the Work outside of the terms -described in this License is expressly prohibited by law. - -If for any reason, conditions are imposed on you that forbid you to -fulfill the conditions of this License, you may not copy, distribute -or modify the Work at all. - -If any part of this License is found to be in conflict with the law, -that part shall be interpreted in its broadest meaning consistent with -the law, and no other parts of the License shall be affected. - -7. NO WARRANTY. - -THE WORK IS PROVIDED "AS IS," AND COMES WITH ABSOLUTELY NO WARRANTY, -EXPRESS OR IMPLIED, TO THE EXTENT PERMITTED BY APPLICABLE LAW, -INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY -OR FITNESS FOR A PARTICULAR PURPOSE. - -8. DISCLAIMER OF LIABILITY. - -IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS WORK, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -END OF TERMS AND CONDITIONS diff --git a/www-client/mozilla_firefox/hvif-icons/icon_copyright/copyright_info.txt b/www-client/mozilla_firefox/hvif-icons/icon_copyright/copyright_info.txt deleted file mode 100644 index 6761aa8c6..000000000 --- a/www-client/mozilla_firefox/hvif-icons/icon_copyright/copyright_info.txt +++ /dev/null @@ -1 +0,0 @@ -Copyright © 2002 Matthew McClintock; this information may be copied, distributed and/or modified under certain conditions, but it comes WITHOUT ANY WARRANTY; see the Design Science License for more details. \ No newline at end of file diff --git a/www-client/mozilla_firefox/old-patches/allO1.patch b/www-client/mozilla_firefox/old-patches/allO1.patch deleted file mode 100644 index f89874124..000000000 --- a/www-client/mozilla_firefox/old-patches/allO1.patch +++ /dev/null @@ -1,204 +0,0 @@ -Index: mozilla/directory/c-sdk/config/BeOS.mk -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/config/BeOS.mk,v -retrieving revision 5.0.138.1 -diff -u -8 -p -r5.0.138.1 BeOS.mk ---- mozilla/directory/c-sdk/config/BeOS.mk 3 Feb 2006 14:41:11 -0000 5.0.138.1 -+++ mozilla/directory/c-sdk/config/BeOS.mk 19 Feb 2009 02:42:41 -0000 -@@ -64,17 +64,18 @@ ifeq (PC,$(findstring PC,$(OS_TEST))) - CPU_ARCH = x86 - CC = gcc - CCC = g++ - LD = gcc - RANLIB = ranlib - DSO_LDOPTS = -nostart - PORT_FLAGS = -DHAVE_STRERROR - ifdef BUILD_OPT --OPTIMIZER = -O2 -+#OPTIMIZER = -O2 -+OPTIMIZER = -O1 -march=pentium -mcpu=pentiumpro - LDFLAGS += -s - else - OPTIMIZER = -gdwarf-2 -O0 - endif - else - CPU_ARCH = ppc - CC = mwcc - CCC = mwcc -@@ -85,17 +86,18 @@ DSO_LDOPTS = -xms -export p - -term _term_routine_ \ - -lroot -lnet \ - /boot/develop/lib/ppc/glue-noinit.a \ - /boot/develop/lib/ppc/init_term_dyn.o \ - /boot/develop/lib/ppc/start_dyn.o - - PORT_FLAGS = -DHAVE_STRERROR -D_POSIX_SOURCE - ifdef BUILD_OPT --OPTIMIZER = -O2 -+#OPTIMIZER = -O2 -+OPTIMIZER = -O1 -march=pentium -mcpu=pentiumpro - else - OPTIMIZER = -g -O0 - endif - endif - CPU_ARCH_TAG = _$(CPU_ARCH) - - OS_INCLUDES = -I- -I. - #G++INCLUDES = -I/usr/include/g++ -Index: mozilla/directory/c-sdk/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/configure.in,v -retrieving revision 5.0.2.34.4.3 -diff -u -8 -p -r5.0.2.34.4.3 configure.in ---- mozilla/directory/c-sdk/configure.in 11 Jul 2007 20:43:19 -0000 5.0.2.34.4.3 -+++ mozilla/directory/c-sdk/configure.in 19 Feb 2009 02:43:12 -0000 -@@ -819,17 +819,17 @@ case "$target" in - AC_DEFINE(_POSIX_SOURCE) - DSO_LDOPTS=-nostart - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -+ _OPTIMIZE_FLAGS=-O1 -march=pentium -mcpu=pentiumpro - _DEBUG_FLAGS='-gdwarf-2 -O0' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' - AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) - CC=mwcc - CCC=mwcc - LD=mwld -Index: mozilla/nsprpub/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/configure.in,v -retrieving revision 1.199.2.17 -diff -u -8 -p -r1.199.2.17 configure.in ---- mozilla/nsprpub/configure.in 31 Oct 2007 18:07:38 -0000 1.199.2.17 -+++ mozilla/nsprpub/configure.in 19 Feb 2009 02:59:37 -0000 -@@ -874,17 +874,17 @@ case "$target" in - AC_DEFINE(_POSIX_SOURCE) - DSO_LDOPTS=-nostart - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -+ _OPTIMIZE_FLAGS=-O1 -march=pentium -mcpu=pentiumpro - _DEBUG_FLAGS='-gdwarf-2 -O0' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' - AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) - CC=mwcc - CCC=mwcc - LD=mwld -Index: mozilla/security/coreconf/BeOS.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/BeOS.mk,v -retrieving revision 1.2 -diff -u -8 -p -r1.2 BeOS.mk ---- mozilla/security/coreconf/BeOS.mk 25 Apr 2004 15:02:17 -0000 1.2 -+++ mozilla/security/coreconf/BeOS.mk 19 Feb 2009 03:02:58 -0000 -@@ -56,17 +56,17 @@ ifeq ($(OS_TEST),ppc) - CPU_ARCH = ppc - else - OS_REL_CFLAGS = -Di386 - CPU_ARCH = x86 - endif - - MKSHLIB = $(CC) -nostart -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) - ifdef BUILD_OPT -- OPTIMIZER = -O2 -+ OPTIMIZER = -O1 -march=pentium -mcpu=pentiumpro - endif - - OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -pipe - OS_LIBS = -lbe - - DEFINES += -DBEOS - - ifdef USE_PTHREADS -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v -retrieving revision 1.80.4.6 -diff -u -8 -p -r1.80.4.6 Makefile.in ---- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2008 21:11:34 -0000 1.80.4.6 -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2009 04:24:38 -0000 -@@ -94,16 +94,17 @@ CPPSRCS := xptcinvoke_ipf64.cpp xptcstu - ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s - endif - endif - # - # BeOS/Intel (uses the same unixish_x86 code) - # - ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) - CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp -+CXXFLAGS += -O1 -march=pentium -mcpu=pentiumpro - endif - # - # Neutrino/Intel (uses the same unixish_x86 code) - # - ifeq ($(OS_TARGET),NTO) - ifeq ($(OS_TEST),x86) - CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp - endif -Index: mozilla/security/nss-fips/lib/freebl/mpi/target.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/target.mk,v -retrieving revision 1.4.2.1 -diff -u -8 -p -r1.4.2.1 target.mk ---- mozilla/security/nss-fips/lib/freebl/mpi/target.mk 16 Mar 2006 16:37:28 -0000 1.4.2.1 -+++ mozilla/security/nss-fips/lib/freebl/mpi/target.mk 19 Feb 2009 04:29:59 -0000 -@@ -40,17 +40,18 @@ - ## - ## Define CFLAGS to contain any local options your compiler - ## setup requires. - ## - ## Conditional compilation options are no longer here; see - ## the file 'mpi-config.h' instead. - ## - MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC --CFLAGS= -O $(MPICMN) -+CFLAGS= -O1 -march=pentium -mcpu=pentiumpro -+#CFLAGS= -O $(MPICMN) - #CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN) - - ifeq ($(TARGET),mipsIRIX) - #IRIX - #MPICMN += -DMP_MONT_USE_MP_MUL - MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE -Index: mozilla/security/nss/lib/freebl/mpi/target.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/target.mk,v -retrieving revision 1.4.2.1 -diff -u -8 -p -r1.4.2.1 target.mk ---- mozilla/security/nss/lib/freebl/mpi/target.mk 16 Mar 2006 16:37:28 -0000 1.4.2.1 -+++ mozilla/security/nss/lib/freebl/mpi/target.mk 19 Feb 2009 04:30:56 -0000 -@@ -40,17 +40,18 @@ - ## - ## Define CFLAGS to contain any local options your compiler - ## setup requires. - ## - ## Conditional compilation options are no longer here; see - ## the file 'mpi-config.h' instead. - ## - MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC --CFLAGS= -O $(MPICMN) -+CFLAGS= -O1 -march=pentium -mcpu=pentiumpro -+#CFLAGS= -O $(MPICMN) - #CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN) - - ifeq ($(TARGET),mipsIRIX) - #IRIX - #MPICMN += -DMP_MONT_USE_MP_MUL - MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE diff --git a/www-client/mozilla_firefox/old-patches/allO3.patch b/www-client/mozilla_firefox/old-patches/allO3.patch deleted file mode 100644 index 48763c761..000000000 --- a/www-client/mozilla_firefox/old-patches/allO3.patch +++ /dev/null @@ -1,204 +0,0 @@ -Index: mozilla/directory/c-sdk/config/BeOS.mk -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/config/BeOS.mk,v -retrieving revision 5.0.138.1 -diff -u -8 -p -r5.0.138.1 BeOS.mk ---- mozilla/directory/c-sdk/config/BeOS.mk 3 Feb 2006 14:41:11 -0000 5.0.138.1 -+++ mozilla/directory/c-sdk/config/BeOS.mk 19 Feb 2009 02:42:41 -0000 -@@ -64,17 +64,18 @@ ifeq (PC,$(findstring PC,$(OS_TEST))) - CPU_ARCH = x86 - CC = gcc - CCC = g++ - LD = gcc - RANLIB = ranlib - DSO_LDOPTS = -nostart - PORT_FLAGS = -DHAVE_STRERROR - ifdef BUILD_OPT --OPTIMIZER = -O2 -+#OPTIMIZER = -O2 -+OPTIMIZER = -O3 -march=pentium -mcpu=pentiumpro - LDFLAGS += -s - else - OPTIMIZER = -gdwarf-2 -O0 - endif - else - CPU_ARCH = ppc - CC = mwcc - CCC = mwcc -@@ -85,17 +86,18 @@ DSO_LDOPTS = -xms -export p - -term _term_routine_ \ - -lroot -lnet \ - /boot/develop/lib/ppc/glue-noinit.a \ - /boot/develop/lib/ppc/init_term_dyn.o \ - /boot/develop/lib/ppc/start_dyn.o - - PORT_FLAGS = -DHAVE_STRERROR -D_POSIX_SOURCE - ifdef BUILD_OPT --OPTIMIZER = -O2 -+#OPTIMIZER = -O2 -+OPTIMIZER = -O3 -march=pentium -mcpu=pentiumpro - else - OPTIMIZER = -g -O0 - endif - endif - CPU_ARCH_TAG = _$(CPU_ARCH) - - OS_INCLUDES = -I- -I. - #G++INCLUDES = -I/usr/include/g++ -Index: mozilla/directory/c-sdk/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/configure.in,v -retrieving revision 5.0.2.34.4.3 -diff -u -8 -p -r5.0.2.34.4.3 configure.in ---- mozilla/directory/c-sdk/configure.in 11 Jul 2007 20:43:19 -0000 5.0.2.34.4.3 -+++ mozilla/directory/c-sdk/configure.in 19 Feb 2009 02:43:12 -0000 -@@ -819,17 +819,17 @@ case "$target" in - AC_DEFINE(_POSIX_SOURCE) - DSO_LDOPTS=-nostart - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -+ _OPTIMIZE_FLAGS=-O3 -march=pentium -mcpu=pentiumpro - _DEBUG_FLAGS='-gdwarf-2 -O0' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' - AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) - CC=mwcc - CCC=mwcc - LD=mwld -Index: mozilla/nsprpub/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/configure.in,v -retrieving revision 1.199.2.17 -diff -u -8 -p -r1.199.2.17 configure.in ---- mozilla/nsprpub/configure.in 31 Oct 2007 18:07:38 -0000 1.199.2.17 -+++ mozilla/nsprpub/configure.in 19 Feb 2009 02:59:37 -0000 -@@ -874,17 +874,17 @@ case "$target" in - AC_DEFINE(_POSIX_SOURCE) - DSO_LDOPTS=-nostart - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -+ _OPTIMIZE_FLAGS=-O3 -march=pentium -mcpu=pentiumpro - _DEBUG_FLAGS='-gdwarf-2 -O0' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' - AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) - CC=mwcc - CCC=mwcc - LD=mwld -Index: mozilla/security/coreconf/BeOS.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/BeOS.mk,v -retrieving revision 1.2 -diff -u -8 -p -r1.2 BeOS.mk ---- mozilla/security/coreconf/BeOS.mk 25 Apr 2004 15:02:17 -0000 1.2 -+++ mozilla/security/coreconf/BeOS.mk 19 Feb 2009 03:02:58 -0000 -@@ -56,17 +56,17 @@ ifeq ($(OS_TEST),ppc) - CPU_ARCH = ppc - else - OS_REL_CFLAGS = -Di386 - CPU_ARCH = x86 - endif - - MKSHLIB = $(CC) -nostart -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) - ifdef BUILD_OPT -- OPTIMIZER = -O2 -+ OPTIMIZER = -O3 -march=pentium -mcpu=pentiumpro - endif - - OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -pipe - OS_LIBS = -lbe - - DEFINES += -DBEOS - - ifdef USE_PTHREADS -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v -retrieving revision 1.80.4.6 -diff -u -8 -p -r1.80.4.6 Makefile.in ---- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2008 21:11:34 -0000 1.80.4.6 -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2009 04:24:38 -0000 -@@ -94,16 +94,17 @@ CPPSRCS := xptcinvoke_ipf64.cpp xptcstu - ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s - endif - endif - # - # BeOS/Intel (uses the same unixish_x86 code) - # - ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) - CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp -+CXXFLAGS += -O3 -march=pentium -mcpu=pentiumpro - endif - # - # Neutrino/Intel (uses the same unixish_x86 code) - # - ifeq ($(OS_TARGET),NTO) - ifeq ($(OS_TEST),x86) - CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp - endif -Index: mozilla/security/nss-fips/lib/freebl/mpi/target.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/target.mk,v -retrieving revision 1.4.2.1 -diff -u -8 -p -r1.4.2.1 target.mk ---- mozilla/security/nss-fips/lib/freebl/mpi/target.mk 16 Mar 2006 16:37:28 -0000 1.4.2.1 -+++ mozilla/security/nss-fips/lib/freebl/mpi/target.mk 19 Feb 2009 04:29:59 -0000 -@@ -40,17 +40,18 @@ - ## - ## Define CFLAGS to contain any local options your compiler - ## setup requires. - ## - ## Conditional compilation options are no longer here; see - ## the file 'mpi-config.h' instead. - ## - MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC --CFLAGS= -O $(MPICMN) -+CFLAGS= -O3 -march=pentium -mcpu=pentiumpro -+#CFLAGS= -O $(MPICMN) - #CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN) - - ifeq ($(TARGET),mipsIRIX) - #IRIX - #MPICMN += -DMP_MONT_USE_MP_MUL - MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE -Index: mozilla/security/nss/lib/freebl/mpi/target.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/target.mk,v -retrieving revision 1.4.2.1 -diff -u -8 -p -r1.4.2.1 target.mk ---- mozilla/security/nss/lib/freebl/mpi/target.mk 16 Mar 2006 16:37:28 -0000 1.4.2.1 -+++ mozilla/security/nss/lib/freebl/mpi/target.mk 19 Feb 2009 04:30:56 -0000 -@@ -40,17 +40,18 @@ - ## - ## Define CFLAGS to contain any local options your compiler - ## setup requires. - ## - ## Conditional compilation options are no longer here; see - ## the file 'mpi-config.h' instead. - ## - MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC --CFLAGS= -O $(MPICMN) -+CFLAGS= -O3 -march=pentium -mcpu=pentiumpro -+#CFLAGS= -O $(MPICMN) - #CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN) - #CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN) - - ifeq ($(TARGET),mipsIRIX) - #IRIX - #MPICMN += -DMP_MONT_USE_MP_MUL - MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE diff --git a/www-client/mozilla_firefox/old-patches/configure-sunbird-nspr-reorder.diff b/www-client/mozilla_firefox/old-patches/configure-sunbird-nspr-reorder.diff deleted file mode 100644 index de1c4e017..000000000 --- a/www-client/mozilla_firefox/old-patches/configure-sunbird-nspr-reorder.diff +++ /dev/null @@ -1,17848 +0,0 @@ -? mozilla/browser/installer/beos -Index: mozilla/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/configure.in,v -retrieving revision 1.1503.2.112 -diff -u -8 -p -r1.1503.2.112 configure.in ---- mozilla/configure.in 19 Oct 2008 16:14:06 -0000 1.1503.2.112 -+++ mozilla/configure.in 9 Feb 2009 04:00:37 -0000 -@@ -1333,17 +1333,17 @@ if test "$HAVE_64BIT_OS"; then - fi - AC_LANG_RESTORE - fi # COMPILE_ENVIRONMENT - - dnl ======================================================== - dnl System overrides of the defaults for host - dnl ======================================================== - case "$host" in --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE -DNO_X11" - HOST_NSPR_MDCPUCFG='\"md/_beos.cfg\"' - HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" - ;; - - *cygwin*|*mingw*|*mks*|*msvc*|*wince) - if test -n "$_WIN32_MSVC"; then - HOST_AR=lib -@@ -1477,27 +1477,45 @@ case "$target" in - ;; - esac - if test "$COMPILE_ENVIRONMENT"; then - AC_CHECK_HEADERS(sys/inttypes.h) - fi - AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES) - ;; - --*-beos*) -+*-beos*|*-haiku*) - no_x=yes -- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' - _PLATFORM_DEFAULT_TOOLKIT="beos" -+ TARGET_NSPR_MDCPUCFG='\"md/_beos.cfg\"' -+ TARGET_MD_ARCH=beos -+ -+ DSO_PIC_CFLAGS=-fPIC - DSO_LDOPTS='-nostart' -+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' -+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' - TK_LIBS='-lbe -lroot' - LIBS="$LIBS -lbe" -+ -+ _HAIKU_BUILD=0 -+ - if test "$COMPILE_ENVIRONMENT"; then -- AC_CHECK_LIB(bind,main,LIBS="$LIBS -lbind") -- AC_CHECK_LIB(zeta,main,LIBS="$LIBS -lzeta") -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) - fi -+ if test "$_HAIKU_BUILD" = 1; then -+ LIBS="$LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(__BEOS__) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind,main,LIBS="$LIBS -lbind") -+ AC_CHECK_LIB(zeta,main,LIBS="$LIBS -lzeta") -+ AC_DEFINE(BEOS_ADDON_WORKAROUND) -+ fi -+ - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-multichar" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-multichar" - _MOZ_USE_RTTI=1 - USE_DEPENDENT_LIBS= - MOZ_USER_DIR="Mozilla" - ;; - - *-bsdi*) -@@ -5235,17 +5253,17 @@ fi - - dnl Remove dupes - MOZ_EXTENSIONS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_EXTENSIONS}` - - dnl ======================================================== - dnl Image decoders - dnl ======================================================== - case "$target_os" in --cygwin*|mingw*|msvc*|mks*|os2*|wince*|beos*) -+cygwin*|mingw*|msvc*|mks*|os2*|wince*|beos*|haiku*) - MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" - ;; - darwin*) - if test "$MOZ_WIDGET_TOOLKIT" = "mac" -o "$MOZ_WIDGET_TOOLKIT" = "cocoa"; - then - MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" - fi - ;; -@@ -5676,17 +5694,17 @@ MOZ_ARG_ENABLE_STRING(debug, - fi - else - MOZ_DEBUG= - fi ], - MOZ_DEBUG=) - - MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG" - case "${target_os}" in -- beos*) -+ beos*|haiku*) - MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*|wince*) - MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`" - ;; - *) - MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`$WHOAMI`" - ;; -@@ -6712,17 +6730,17 @@ mk_add_options MOZ_CO_MODULE=mozilla/oth - MOZ_LIBART_CFLAGS='-I${DIST}/include/libart_lgpl' - case "$target_os" in - msvc*|mks*|cygwin*|mingw*|wince*) - MOZ_LIBART_LIBS='$(DIST)/lib/$(LIB_PREFIX)moz_art_lgpl.$(IMPORT_LIB_SUFFIX)' - ;; - os2*) - MOZ_LIBART_LIBS='-lmoz_art -lm' - ;; -- beos*) -+ beos*|haiku*) - MOZ_LIBART_LIBS='-lmoz_art_lgpl -lroot -lbe' - ;; - *) - MOZ_LIBART_LIBS='-lmoz_art_lgpl -lm' - ;; - esac - AC_FUNC_ALLOCA - fi -@@ -7363,16 +7381,19 @@ fi # COMPILE_ENVIRONMENT - dnl Set various defines and substitutions - dnl ======================================================== - - if test "$OS_ARCH" = "OS2" -a "$VACPP" = "yes"; then - LIBS='so32dll.lib tcp32dll.lib' - elif test "$OS_ARCH" = "BeOS"; then - AC_DEFINE(XP_BEOS) - MOZ_MOVEMAIL=1 -+elif test "$OS_ARCH" = "Haiku"; then -+ AC_DEFINE(XP_BEOS) -+ MOZ_MOVEMAIL=1 - elif test "$OS_ARCH" = "Darwin"; then - AC_DEFINE(XP_UNIX) - AC_DEFINE(UNIX_ASYNC_DNS) - MOZ_MOVEMAIL=1 - elif test "$OS_ARCH" = "OpenVMS"; then - AC_DEFINE(XP_UNIX) - elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2" -a "$OS_ARCH" != "WINCE"; then - AC_DEFINE(XP_UNIX) -Index: mozilla/browser/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/browser/app/Makefile.in,v -retrieving revision 1.85.2.12 -diff -u -8 -p -r1.85.2.12 Makefile.in ---- mozilla/browser/app/Makefile.in 12 May 2008 18:25:50 -0000 1.85.2.12 -+++ mozilla/browser/app/Makefile.in 9 Feb 2009 04:00:40 -0000 -@@ -56,20 +56,24 @@ ifndef MOZ_BRANDING_DIRECTORY - PREF_JS_EXPORTS += $(srcdir)/firefox-branding.js - endif - - # hardcode en-US for the moment - AB_CD = en-US - - DEFINES += -DAB_CD=$(AB_CD) - --ifeq ($(USE_SHORT_LIBNAME), 1) -+ ifeq ($(USE_SHORT_LIBNAME), 1) -+ PROGRAM = firefox$(BIN_SUFFIX) -+ else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PROGRAM = firefox$(BIN_SUFFIX) - else --PROGRAM = firefox-bin$(BIN_SUFFIX) -+ PROGRAM = firefox-bin$(BIN_SUFFIX) -+ endif - endif - - REQUIRES = \ - xpcom \ - $(NULL) - - CPPSRCS = nsBrowserApp.cpp - -@@ -146,17 +150,17 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res -@@ -224,17 +228,17 @@ $(EXE_DEF_FILE): - @echo WinQueryProperty = PMMERGE.5450 >>$(EXE_DEF_FILE) - @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) - @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) - - LDFLAGS += -Zlinker /NOE - endif - endif - --ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT BeOS Haiku,$(OS_ARCH))) - - firefox:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.mozilla/firefox|" \ - -e "s|%MREDIR%|$(mredir)|" > $@ - chmod +x $@ - - libs:: firefox -Index: mozilla/browser/components/migration/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/browser/components/migration/src/Makefile.in,v -retrieving revision 1.20.2.2 -diff -u -8 -p -r1.20.2.2 Makefile.in ---- mozilla/browser/components/migration/src/Makefile.in 27 Jan 2006 02:19:00 -0000 1.20.2.2 -+++ mozilla/browser/components/migration/src/Makefile.in 9 Feb 2009 04:00:42 -0000 -@@ -73,20 +73,23 @@ endif - - CPPSRCS = nsProfileMigrator.cpp \ - nsBrowserProfileMigratorUtils.cpp \ - nsNetscapeProfileMigratorBase.cpp \ - nsSeamonkeyProfileMigrator.cpp \ - nsPhoenixProfileMigrator.cpp \ - $(NULL) - --ifneq ($(OS_ARCH),BeOS) -+ifneq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsDogbertProfileMigrator.cpp - endif - -+ -+ -+ - ifneq ($(OS_ARCH),OS2) - CPPSRCS += nsOperaProfileMigrator.cpp - endif - - ifeq ($(OS_ARCH)_$(GNU_CXX),WINNT_) - DEFINES += -DPSTOREC_DLL=\"$(subst \,\\,$(WINDIR))\\system32\\pstorec.dll\" - - CPPSRCS += nsIEProfileMigrator.cpp \ -Index: mozilla/browser/installer/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/browser/installer/Makefile.in,v -retrieving revision 1.19.4.4 -diff -u -8 -p -r1.19.4.4 Makefile.in ---- mozilla/browser/installer/Makefile.in 6 Jun 2006 15:35:00 -0000 1.19.4.4 -+++ mozilla/browser/installer/Makefile.in 9 Feb 2009 04:00:44 -0000 -@@ -57,19 +57,23 @@ include $(topsrcdir)/config/rules.mk - - MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in - - ifdef BUILD_STATIC_LIBS - ifeq (WINNT,$(OS_ARCH)) - MOZ_PKG_MANIFEST_P = $(srcdir)/windows/packages-static - else - ifneq (,$(filter-out OS2 Darwin,$(OS_ARCH))) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+MOZ_PKG_MANIFEST_P = $(srcdir)/beos/packages-static -+else - MOZ_PKG_MANIFEST_P = $(srcdir)/unix/packages-static - endif - endif -+endif - else - $(error you need a "--enable-static --disable-shared" build to create an installer) - endif - - MOZ_NONLOCALIZED_PKG_LIST = \ - xpcom \ - browser \ - $(NULL) -Index: mozilla/build/autoconf/config.guess -=================================================================== -RCS file: /cvsroot/mozilla/build/autoconf/config.guess,v -retrieving revision 1.19 -diff -u -8 -p -r1.19 config.guess ---- mozilla/build/autoconf/config.guess 18 Apr 2003 10:20:15 -0000 1.19 -+++ mozilla/build/autoconf/config.guess 9 Feb 2009 04:00:51 -0000 -@@ -1,34 +1,37 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-08' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or - # (at your option) any later version. - # - # This program is distributed in the hope that it will be useful, but - # WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # -@@ -48,34 +51,34 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) -@@ -99,35 +102,36 @@ trap 'exit 1' 1 2 15 - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -@@ -152,16 +156,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -190,60 +195,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; -@@ -271,147 +258,163 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { -@@ -425,145 +428,150 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -- echo rs6000-ibm-aix3.2.5 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else -+ echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -@@ -615,31 +623,41 @@ EOF - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); -@@ -657,181 +675,224 @@ EOF - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -@@ -839,62 +900,78 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g -@@ -902,99 +979,113 @@ EOF - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -+ exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -@@ -1002,214 +1093,248 @@ EOF - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi -- exit 0 ;; -+ exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -- exit 0 ;; -+ exit ;; - paragon:*:*:*) - echo i860-intel-osf1 -- exit 0 ;; -+ exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ exit ;; -+ BeMac:Haiku:*:*) -+ echo powerpc-apple-haiku -+ exit ;; -+ BePC:Haiku:*:*) -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c </dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - -Index: mozilla/build/autoconf/config.sub -=================================================================== -RCS file: /cvsroot/mozilla/build/autoconf/config.sub,v -retrieving revision 1.20 -diff -u -8 -p -r1.20 config.sub ---- mozilla/build/autoconf/config.sub 18 Apr 2003 10:20:15 -0000 1.20 -+++ mozilla/build/autoconf/config.sub 9 Feb 2009 04:00:53 -0000 -@@ -1,14 +1,15 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-16' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or -@@ -16,24 +17,25 @@ timestamp='2003-02-22' - # - # This program is distributed in the hope that it will be useful, - # but WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - # GNU General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -@@ -65,46 +67,46 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 -@@ -113,17 +115,19 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi -@@ -139,17 +143,17 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) -@@ -164,32 +168,40 @@ case $os in - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) -@@ -219,171 +231,196 @@ case $os in - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) -@@ -405,16 +442,24 @@ case $basic_machine in - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; -@@ -433,22 +478,37 @@ case $basic_machine in - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec -@@ -461,16 +521,20 @@ case $basic_machine in - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; -@@ -611,66 +675,71 @@ case $basic_machine in - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; -@@ -729,30 +798,29 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff -+ ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k -@@ -760,43 +828,63 @@ case $basic_machine in - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -@@ -819,16 +907,20 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) -@@ -845,23 +937,37 @@ case $basic_machine in - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; -@@ -926,45 +1032,49 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; -@@ -998,16 +1108,20 @@ case $basic_machine in - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) -@@ -1028,39 +1142,39 @@ case $basic_machine in - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; -@@ -1116,40 +1230,40 @@ case $os in - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1157,34 +1271,40 @@ case $os in - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1196,16 +1316,19 @@ case $os in - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova -@@ -1218,16 +1341,19 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 -@@ -1254,16 +1380,19 @@ case $os in - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1276,25 +1405,34 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) -@@ -1310,16 +1448,19 @@ case $basic_machine in - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff -@@ -1328,19 +1469,25 @@ case $basic_machine in - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf -@@ -1463,19 +1610,25 @@ case $basic_machine in - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi -@@ -1490,16 +1643,16 @@ case $basic_machine in - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: -Index: mozilla/calendar/base/content/preferences/preferences.xul -=================================================================== -RCS file: /cvsroot/mozilla/calendar/base/content/preferences/preferences.xul,v -retrieving revision 1.1.2.6 -diff -u -8 -p -r1.1.2.6 preferences.xul ---- mozilla/calendar/base/content/preferences/preferences.xul 14 Mar 2007 09:08:19 -0000 1.1.2.6 -+++ mozilla/calendar/base/content/preferences/preferences.xul 9 Feb 2009 04:00:56 -0000 -@@ -66,17 +66,22 @@ - #ifdef XP_UNIX - #ifdef XP_MACOSX - style="&prefWindow.styleMac;"> - #else - title="&prefWindow.titleGNOME;" - style="&prefWindow.styleGNOME;"> - #endif - #endif -+#ifdef XP_BEOS -+ title="&prefWindow.titleGNOME;" -+ style="&prefWindow.styleGNOME;"> - #endif -+#endif -+ - - - - - -Index: mozilla/calendar/libical/src/libical/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/calendar/libical/src/libical/Makefile.in,v -retrieving revision 1.3.6.1 -diff -u -8 -p -r1.3.6.1 Makefile.in ---- mozilla/calendar/libical/src/libical/Makefile.in 27 Dec 2007 10:03:57 -0000 1.3.6.1 -+++ mozilla/calendar/libical/src/libical/Makefile.in 9 Feb 2009 04:00:58 -0000 -@@ -84,17 +84,17 @@ CSRCS = \ - $(NULL) - - ifeq (,$(filter -DHAVE_SNPRINTF=1,$(ACDEFINES))) - CSRCS += vsnprintf.c - endif - - DEFINES += -DHAVE_CONFIG_H - --ifneq (,$(filter BeOS Darwin OpenVMS NetBSD FreeBSD,$(OS_ARCH))) -+ifneq (,$(filter BeOS Haiku Darwin OpenVMS NetBSD FreeBSD,$(OS_ARCH))) - DEFINES += -D__USE_BSD=1 - endif - - LOCAL_INCLUDES = -I$(srcdir)/../.. -I$(srcdir) -I. - - SRCS_IN_OBJDIR = 1 - - include $(topsrcdir)/config/rules.mk -Index: mozilla/calendar/sunbird/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/calendar/sunbird/app/Makefile.in,v -retrieving revision 1.21.2.23 -diff -u -8 -p -r1.21.2.23 Makefile.in ---- mozilla/calendar/sunbird/app/Makefile.in 4 May 2008 01:32:07 -0000 1.21.2.23 -+++ mozilla/calendar/sunbird/app/Makefile.in 9 Feb 2009 04:01:06 -0000 -@@ -79,18 +79,22 @@ include $(topsrcdir)/config/rules.mk - else - # Build a binary bootstrapping with XRE_main - - MOZILLA_INTERNAL_API = 1 - - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = sunbird$(BIN_SUFFIX) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+PROGRAM = sunbird$(BIN_SUFFIX) -+else - PROGRAM = sunbird-bin$(BIN_SUFFIX) - endif -+endif - - REQUIRES = \ - appshell \ - string \ - xpcom \ - xulapp \ - $(NULL) - -@@ -189,17 +193,17 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res - RCFLAGS += -DMOZ_SUNBIRD -@@ -261,17 +265,17 @@ $(EXE_DEF_FILE): - @echo WinQueryProperty = PMMERGE.5450 >>$(EXE_DEF_FILE) - @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) - @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) - - LDFLAGS += -Zlinker /NOE - endif - endif - --ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT BeOS Haiku,$(OS_ARCH))) - - sunbird:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.mozilla/sunbird|" \ - -e "s|%MREDIR%|$(mredir)|" > $@ - chmod +x $@ - - libs:: sunbird -Index: mozilla/config/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/config/config.mk,v -retrieving revision 3.337.2.12 -diff -u -8 -p -r3.337.2.12 config.mk ---- mozilla/config/config.mk 23 Nov 2007 21:12:26 -0000 3.337.2.12 -+++ mozilla/config/config.mk 9 Feb 2009 04:01:20 -0000 -@@ -105,19 +105,16 @@ AUTOCONF_TOOLS = $(topsrcdir)/build/auto - - ifeq ($(OS_ARCH),QNX) - ifeq ($(OS_TARGET),NTO) - LD := qcc -Vgcc_ntox86 -nostdlib - else - LD := $(CC) - endif - endif --ifeq ($(OS_ARCH),BeOS) --BEOS_ADDON_WORKAROUND = 1 --endif - - # - # Strip off the excessively long version numbers on these platforms, - # but save the version to allow multiple versions of the same base - # platform to be built in the same tree. - # - ifneq (,$(filter FreeBSD HP-UX IRIX Linux NetBSD OpenBSD OSF1 SunOS,$(OS_ARCH))) - OS_RELEASE := $(basename $(OS_RELEASE)) -Index: mozilla/config/rules.mk -=================================================================== -RCS file: /cvsroot/mozilla/config/rules.mk,v -retrieving revision 3.487.2.9 -diff -u -8 -p -r3.487.2.9 rules.mk ---- mozilla/config/rules.mk 18 Dec 2007 21:33:08 -0000 3.487.2.9 -+++ mozilla/config/rules.mk 9 Feb 2009 04:01:24 -0000 -@@ -512,17 +512,17 @@ ifeq ($(OS_ARCH),Linux) - ifdef IS_COMPONENT - EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic - endif - endif - - # - # BeOS: add -Bsymbolic flag for components - # --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter BeOS Haiku,$(OS_ARCH))) - ifdef IS_COMPONENT - EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic - endif - endif - - # - # MINGW32 - # -@@ -672,19 +672,23 @@ ifdef BEOS_ADDON_WORKAROUND - ( cd $(FINAL_TARGET)/components && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) ) - endif - else # ! IS_COMPONENT - ifneq (,$(filter OS2 WINNT WINCE,$(OS_ARCH))) - $(INSTALL) $(IFLAGS2) $(IMPORT_LIBRARY) $(DIST)/lib - else - $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(DIST)/lib - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(FINAL_TARGET)/lib -+else - $(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(FINAL_TARGET) -+endif - ifdef BEOS_ADDON_WORKAROUND -- ( cd $(FINAL_TARGET) && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) ) -+ ( cd $(FINAL_TARGET)/lib && $(CC) -nostart -o $(SHARED_LIBRARY).stub $(SHARED_LIBRARY) ) - endif - endif # IS_COMPONENT - endif # SHARED_LIBRARY - ifdef PROGRAM - $(INSTALL) $(IFLAGS2) $(PROGRAM) $(FINAL_TARGET) - endif - ifdef SIMPLE_PROGRAMS - $(INSTALL) $(IFLAGS2) $(SIMPLE_PROGRAMS) $(FINAL_TARGET) -@@ -822,17 +826,17 @@ endif # OS2 - endif # WINCE - - ifdef ENABLE_STRIP - $(STRIP) $@ - endif - ifdef MOZ_POST_PROGRAM_COMMAND - $(MOZ_POST_PROGRAM_COMMAND) $@ - endif --ifeq ($(OS_ARCH),BeOS) -+ifneq (,$(filter BeOS Haiku,$(OS_ARCH))) - ifdef BEOS_PROGRAM_RESOURCE - xres -o $@ $(BEOS_PROGRAM_RESOURCE) - mimeset $@ - endif - endif # BeOS - - $(HOST_PROGRAM): $(HOST_PROGOBJS) $(HOST_LIBS_DEPS) $(HOST_EXTRA_DEPS) Makefile Makefile.in - ifeq ($(MOZ_OS2_TOOLS),VACPP) -Index: mozilla/directory/c-sdk/build.mk -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/build.mk,v -retrieving revision 5.0.2.15.4.1 -diff -u -8 -p -r5.0.2.15.4.1 build.mk ---- mozilla/directory/c-sdk/build.mk 3 Feb 2006 14:44:29 -0000 5.0.2.15.4.1 -+++ mozilla/directory/c-sdk/build.mk 9 Feb 2009 04:01:33 -0000 -@@ -437,17 +437,17 @@ endif #!os2 - - ifeq ($(OS_ARCH), OSF1) - # The linker on OSF/1 gets confused if it finds an so_locations file - # that doesn't meet its expectations, so we arrange to remove it before - # linking. - SO_FILES_TO_REMOVE=so_locations - endif - --ifneq (,$(filter BeOS Darwin NetBSD,$(OS_ARCH))) -+ifneq (,$(filter BeOS Haiku Darwin NetBSD,$(OS_ARCH))) - LINK_DLL = $(MKSHLIB) $(OBJS) - endif - - ifeq ($(OS_ARCH), HP-UX) - # On HPUX, we need a couple of changes: - # 1) Use the C++ compiler for linking, which will pass the +eh flag on down to the - # linker so the correct exception-handling-aware libC gets used (libnshttpd.sl - # needs this). -Index: mozilla/directory/c-sdk/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/configure.in,v -retrieving revision 5.0.2.34.4.3 -diff -u -8 -p -r5.0.2.34.4.3 configure.in ---- mozilla/directory/c-sdk/configure.in 11 Jul 2007 20:43:19 -0000 5.0.2.34.4.3 -+++ mozilla/directory/c-sdk/configure.in 9 Feb 2009 04:01:39 -0000 -@@ -355,17 +355,17 @@ fi - if test -z "$SKIP_PATH_CHECKS"; then - AC_PATH_PROG(WHOAMI, $WHOAMI whoami, echo not_whoami) - fi - - if test -n "$MOZ_DEBUG"; then - AC_DEFINE(DEBUG) - DEFINES="$DEFINES -UNDEBUG" - case "${target_os}" in -- beos*) -+ beos*|haiku*) - DEFINES="$DEFINES -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*) - DEFINES="$DEFINES -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`" - ;; - *) - DEFINES="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`$WHOAMI`" - ;; -@@ -728,17 +728,17 @@ case "$host" in - *-cygwin*|*-msvc*|*-mks*) - CYGWIN_WRAPPER='sh $(topsrcdir)/config/cygwin-wrapper' - NSINSTALL='$(CYGWIN_WRAPPER) nsinstall' - if test "`${PERL} -v | grep -c cygwin 2>/dev/null`" = 0; then - PERL='$(CYGWIN_WRAPPER) perl' - fi - WIN_TOP_SRC=`cygpath -a -w $srcdir | sed -e 's|\\\\|/|g'` - ;; --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" - ;; - *os2*) - ;; - *) - HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" - ;; - esac -@@ -807,34 +807,52 @@ case "$target" in - else - MDCPUCFG_H=_aix32.cfg - fi - fi - PR_MD_CSRCS=aix.c - RESOLVE_LINK_SYMBOLS=1 - ;; - --*-beos*) -+*-beos*|*-haiku*) - AC_DEFINE(XP_BEOS) - AC_DEFINE(BeOS) - AC_DEFINE(BEOS) - AC_DEFINE(_POSIX_SOURCE) -+ DSO_CFLAGS=-fPIC - DSO_LDOPTS=-nostart -+ - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 -+ -+ _HAIKU_BUILD=0 -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ if test "$_HAIKU_BUILD" = 1; then -+ OS_LIBS="$OS_LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ fi -+ -+ -+ - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -- _DEBUG_FLAGS='-gdwarf-2 -O0' -+ AC_DEFINE(i586) -+ CPU_ARCH=i586 -+ _OPTIMIZE_FLAGS=-O3 -+ _DEBUG_FLAGS='-gdwarf-2 -O0 -fno-inline' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' -- AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) -+ AC_DEFINE(ppc) -+ CPU_ARCH=ppc - CC=mwcc - CCC=mwcc - LD=mwld - DSO_LDOPTS='-xms -export pragma -init _init_routine_ -term _term_routine_ -lroot -lnet /boot/develop/lib/ppc/glue-noinit.a /boot/develop/lib/ppc/init_term_dyn.o /boot/develop/lib/ppc/start_dyn.o' - _OPTIMIZE_FLAGS=-O2 - _DEBUG_FLAGS='-g -O0' - ;; - esac -@@ -2090,17 +2108,17 @@ AC_ARG_ENABLE(nspr-threads, - [ --enable-nspr-threads Build using classic nspr threads], - [ if test "$enableval" = "yes"; then - USE_PTHREADS= - USE_USER_PTHREADS= - USE_NSPR_THREADS=1 - fi]) - - case "$target" in --*-beos*) -+*-beos*|*-haiku*) - AC_ARG_WITH(bthreads, - [ --with-bthreads Use system bthreads library as thread subsystem (BeOS only)], - [ if test "$withval" = "yes"; then - USE_BTHREADS=1 - USE_USER_PTHREADS= - USE_PTHREADS= - fi]) - ;; -Index: mozilla/directory/c-sdk/config/autoconf/config.guess -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/config/autoconf/config.guess,v -retrieving revision 5.0.2.2 -diff -u -8 -p -r5.0.2.2 config.guess ---- mozilla/directory/c-sdk/config/autoconf/config.guess 18 Apr 2003 10:20:22 -0000 5.0.2.2 -+++ mozilla/directory/c-sdk/config/autoconf/config.guess 9 Feb 2009 04:01:43 -0000 -@@ -1,34 +1,37 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-08' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or - # (at your option) any later version. - # - # This program is distributed in the hope that it will be useful, but - # WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # -@@ -48,34 +51,34 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) -@@ -99,35 +102,36 @@ trap 'exit 1' 1 2 15 - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -@@ -152,16 +156,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -190,60 +195,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; -@@ -271,147 +258,163 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { -@@ -425,145 +428,150 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -- echo rs6000-ibm-aix3.2.5 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else -+ echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -@@ -615,31 +623,41 @@ EOF - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); -@@ -657,181 +675,224 @@ EOF - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -@@ -839,62 +900,78 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g -@@ -902,99 +979,113 @@ EOF - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -+ exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -@@ -1002,214 +1093,248 @@ EOF - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi -- exit 0 ;; -+ exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -- exit 0 ;; -+ exit ;; - paragon:*:*:*) - echo i860-intel-osf1 -- exit 0 ;; -+ exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ exit ;; -+ BeMac:Haiku:*:*) -+ echo powerpc-apple-haiku -+ exit ;; -+ BePC:Haiku:*:*) -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c </dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - -Index: mozilla/directory/c-sdk/config/autoconf/config.sub -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/config/autoconf/config.sub,v -retrieving revision 5.0.2.3 -diff -u -8 -p -r5.0.2.3 config.sub ---- mozilla/directory/c-sdk/config/autoconf/config.sub 18 Apr 2003 10:20:22 -0000 5.0.2.3 -+++ mozilla/directory/c-sdk/config/autoconf/config.sub 9 Feb 2009 04:01:46 -0000 -@@ -1,14 +1,15 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-16' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or -@@ -16,24 +17,25 @@ timestamp='2003-02-22' - # - # This program is distributed in the hope that it will be useful, - # but WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - # GNU General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -@@ -65,46 +67,46 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 -@@ -113,17 +115,19 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi -@@ -139,17 +143,17 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) -@@ -164,32 +168,40 @@ case $os in - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) -@@ -219,171 +231,196 @@ case $os in - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) -@@ -405,16 +442,24 @@ case $basic_machine in - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; -@@ -433,22 +478,37 @@ case $basic_machine in - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec -@@ -461,16 +521,20 @@ case $basic_machine in - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; -@@ -611,66 +675,71 @@ case $basic_machine in - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; -@@ -729,30 +798,29 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff -+ ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k -@@ -760,43 +828,63 @@ case $basic_machine in - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -@@ -819,16 +907,20 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) -@@ -845,23 +937,37 @@ case $basic_machine in - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; -@@ -926,45 +1032,49 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; -@@ -998,16 +1108,20 @@ case $basic_machine in - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) -@@ -1028,39 +1142,39 @@ case $basic_machine in - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; -@@ -1116,40 +1230,40 @@ case $os in - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1157,34 +1271,40 @@ case $os in - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1196,16 +1316,19 @@ case $os in - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova -@@ -1218,16 +1341,19 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 -@@ -1254,16 +1380,19 @@ case $os in - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1276,25 +1405,34 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) -@@ -1310,16 +1448,19 @@ case $basic_machine in - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff -@@ -1328,19 +1469,25 @@ case $basic_machine in - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf -@@ -1463,19 +1610,25 @@ case $basic_machine in - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi -@@ -1490,16 +1643,16 @@ case $basic_machine in - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: -Index: mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in,v -retrieving revision 5.0.2.21.4.1 -diff -u -8 -p -r5.0.2.21.4.1 Makefile.in ---- mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in 3 Feb 2006 14:44:42 -0000 5.0.2.21.4.1 -+++ mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in 9 Feb 2009 04:01:47 -0000 -@@ -232,17 +232,17 @@ ifeq ($(OS_ARCH), Darwin) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) - endif - - ifeq ($(OS_ARCH), OpenVMS) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) $(OS_LIBS) - SHARED_LIBRARY_LIBS = $(dist_libdir)/lib$(LBER_LIBNAME).a - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) -lbe - endif - - ifeq ($(OS_ARCH), NetBSD) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) - endif - - ifeq ($(OS_ARCH), OpenBSD) -@@ -297,17 +297,17 @@ ltest:: $(LIBLDAP) test.o - $(LIBDIR): - $(MKDIR) $(LIBDIR) - - $(LIBLDAP): $(OBJS) $(LIBDIR) $(LDAP_EXPORT_DEFS) - @echo ======= making $(LIBLDAP) - ifdef SO_FILES_TO_REMOVE - -$(RM) $(SO_FILES_TO_REMOVE) - endif --ifneq (,$(filter AIX Linux HP-UX Darwin BeOS QNX NetBSD OSF1 OpenBSD, $(OS_ARCH))) -+ifneq (,$(filter AIX Linux HP-UX Darwin BeOS Haiku QNX NetBSD OSF1 OpenBSD, $(OS_ARCH))) - $(LINK_LIB) ../liblber/$(OBJDIR_NAME)/*.a - else - ifeq ($(OS_ARCH),OS2) - # create import library for OS/2 - rm -f $@ - $(IMPLIB) $@ $(LDAP_EXPORT_DEFS) - else - $(LINK_LIB) $(EXTRA_LIBS) -@@ -336,15 +336,19 @@ ifeq ($(LD),link) - EXPDEPS2 = $(DLLLDAP) - endif - endif - - export:: $(EXPDEPS2) - ifdef MKSHLIB - $(INSTALL) -m 444 $(LIBLDAP) $(dist_libdir) - $(INSTALL) -m 444 $(DLLLDAP) $(dist_libdir) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(DLLLDAP) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(DLLLDAP) $(dist_bindir) - endif -+endif - ifeq ($(OS_ARCH), WINNT) - $(INSTALL) -m 444 $(LIBLDAP) $(dist_libdir) - $(INSTALL) -m 444 $(DLLLDAP) $(dist_libdir) - endif - $(INSTALL) -m 444 $(ETCFILES) $(ETCDIR) -Index: mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in,v -retrieving revision 5.0.2.18.4.1 -diff -u -8 -p -r5.0.2.18.4.1 Makefile.in ---- mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in 3 Feb 2006 14:44:49 -0000 5.0.2.18.4.1 -+++ mozilla/directory/c-sdk/ldap/libraries/libprldap/Makefile.in 9 Feb 2009 04:01:49 -0000 -@@ -160,17 +160,18 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_L - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - - ifeq ($(OS_ARCH), OpenVMS) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - --ifeq ($(OS_ARCH), BeOS) -+ -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - - OBJDEST = $(OBJDIR_NAME) - - ########################################################################### - -@@ -250,10 +251,14 @@ ifeq ($(OS_ARCH), WINNT) - $(INSTALL) -m 555 $(LIBPRLDAP) $(dist_libdir) - $(INSTALL) -m 555 $(DLLPRLDAP) $(dist_libdir) - endif - ifeq ($(OS_ARCH),OS2) - $(INSTALL) -m 444 $(LIBPRLDAP) $(dist_libdir) - endif - ifdef MKSHLIB - $(INSTALL) -m 555 $(DLLPRLDAP) $(dist_libdir) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(DLLPRLDAP) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(DLLPRLDAP) $(dist_bindir) - endif -+endif -Index: mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libssldap/Attic/Makefile,v -retrieving revision 5.0.2.8 -diff -u -8 -p -r5.0.2.8 Makefile ---- mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile 25 Aug 2004 23:02:30 -0000 5.0.2.8 -+++ mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile 9 Feb 2009 04:01:49 -0000 -@@ -162,17 +162,17 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_L - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME) - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif -Index: mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in,v -retrieving revision 5.0.2.9.4.1 -diff -u -8 -p -r5.0.2.9.4.1 Makefile.in ---- mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in 3 Feb 2006 14:44:49 -0000 5.0.2.9.4.1 -+++ mozilla/directory/c-sdk/ldap/libraries/libssldap/Makefile.in 9 Feb 2009 04:01:50 -0000 -@@ -177,17 +177,17 @@ EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_L - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME) - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) - endif - EXTRA_LIBS += -l$(SSL_LIBNAME) -l$(NSS_LIBNAME) - EXTRA_LIBS += $(DYNAMICNSPR) - EXTRA_LIBS += $(OS_LIBS) - endif -Index: mozilla/embedding/componentlib/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/embedding/componentlib/Makefile.in,v -retrieving revision 1.3 -diff -u -8 -p -r1.3 Makefile.in ---- mozilla/embedding/componentlib/Makefile.in 18 Apr 2004 22:00:41 -0000 1.3 -+++ mozilla/embedding/componentlib/Makefile.in 9 Feb 2009 04:02:04 -0000 -@@ -147,17 +147,17 @@ OS_LIBS := -lstdc++ $(OS_LIBS) - SHLIB_LDENDFILE = -lgcc - - endif # darwin - - ifeq ($(OS_ARCH),WINNT) - OS_LIBS += ole32.lib shell32.lib - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS += -ltracker - endif - - GARBAGE += $(CPPSRCS) - - ifdef _NO_AUTO_VARS - _TARGET = $(srcdir)/$(@F) - GARBAGE += $(addprefix $(srcdir)/,$(CPPSRCS)) -Index: mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp -=================================================================== -RCS file: /cvsroot/mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp,v -retrieving revision 1.40.12.5 -diff -u -8 -p -r1.40.12.5 nsFontMetricsBeOS.cpp ---- mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp 27 Sep 2007 21:36:00 -0000 1.40.12.5 -+++ mozilla/gfx/src/beos/nsFontMetricsBeOS.cpp 9 Feb 2009 04:02:35 -0000 -@@ -123,22 +123,22 @@ NS_IMETHODIMP nsFontMetricsBeOS::Init(co - nsString *fam = param.family.StringAt(i); - PRBool isgeneric = ( param.isgeneric[i] ) ? PR_TRUE: PR_FALSE; - NS_ConvertUTF16toUTF8 family(*fam); - // Fallback - isfixed = family.Equals("monospace") || family.Equals("fixed"); - if (!isgeneric) - { - // non-generic font -- if (count_font_styles((font_family)family.get()) <= 0) -+ if (count_font_styles((char *) family.get()) <= 0) - { - // the specified font does not exist on this computer. - continue; - } -- mFontHandle.SetFamilyAndStyle( (font_family)family.get(), NULL ); -+ mFontHandle.SetFamilyAndStyle( (char *)family.get(), NULL ); - fontfound = PR_TRUE; - break; - } - else - { - // family is generic string like - // "serif" "sans-serif" "cursive" "fantasy" "monospace" "-moz-fixed" - // so look up preferences and get real family name -@@ -153,19 +153,19 @@ NS_IMETHODIMP nsFontMetricsBeOS::Init(co - //NS_WITH_SERVICE( nsIPref, prefs, kPrefCID, &res ); - nsCOMPtr prefs = do_GetService( NS_PREFSERVICE_CONTRACTID, &res ); - if (NS_SUCCEEDED(res)) - { - nsCOMPtr branch; - prefs->GetBranch("font.name.", getter_AddRefs(branch)); - branch->GetCharPref(prop, getter_Copies(real_family)); - -- if (!real_family.IsEmpty() && real_family.Length() <= B_FONT_FAMILY_LENGTH && count_font_styles((font_family)real_family.get()) > 0) -+ if (!real_family.IsEmpty() && real_family.Length() <= B_FONT_FAMILY_LENGTH && count_font_styles((char *)real_family.get()) > 0) - { -- mFontHandle.SetFamilyAndStyle( (font_family)real_family.get(), NULL ); -+ mFontHandle.SetFamilyAndStyle( (char *)real_family.get(), NULL ); - fontfound = PR_TRUE; - break; - } - } - // not successful. use system font. - if (isfixed) - mFontHandle = BFont(be_fixed_font); - else -@@ -409,18 +409,18 @@ NS_IMETHODIMP nsFontMetricsBeOS::GetFon - aHandle = (nsFontHandle)&mFontHandle; - return NS_OK; - } - - nsresult - nsFontMetricsBeOS::FamilyExists(const nsString& aName) - { - NS_ConvertUTF16toUTF8 family(aName); -- printf("exists? %s", (font_family)family.get()); -- return (count_font_styles((font_family)family.get()) > 0) ? NS_OK : NS_ERROR_FAILURE; -+ printf("exists? %s", (char *)family.get()); -+ return (count_font_styles((char *)family.get()) > 0) ? NS_OK : NS_ERROR_FAILURE; - } - - // useful UTF-8 utility - inline uint32 utf8_char_len(uchar byte) - { - return (((0xE5000000 >> ((byte >> 3) & 0x1E)) & 3) + 1); - } - -Index: mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp -=================================================================== -RCS file: /cvsroot/mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp,v -retrieving revision 1.51.12.8 -diff -u -8 -p -r1.51.12.8 nsRenderingContextBeOS.cpp ---- mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp 18 Dec 2007 07:17:21 -0000 1.51.12.8 -+++ mozilla/gfx/src/beos/nsRenderingContextBeOS.cpp 9 Feb 2009 04:02:39 -0000 -@@ -345,19 +345,22 @@ bool nsRenderingContextBeOS::LockAndUpda - return rv; - - // Intelligent lock - if (mSurface->LockDrawable()) - { - // if BFont wasn't set already - if (mCurrentBFont == nsnull) - { -- if (mFontMetrics) -- mFontMetrics->GetFontHandle((nsFontHandle)mCurrentBFont); -- -+ if (mFontMetrics) -+ { -+ nsFontHandle fontHandle; -+ mFontMetrics->GetFontHandle(fontHandle); -+ mCurrentBFont = (BFont *) fontHandle; -+ } - if (mCurrentBFont) - mView->SetFont(mCurrentBFont); - else - mView->SetFont(be_plain_font); // fallback - only for single call - } - - if (mClipRegion) - { -@@ -1122,17 +1125,17 @@ NS_IMETHODIMP nsRenderingContextBeOS::Ge - // and call (UTF-8) char* version of the method. - // It works well with current nsFontMetricsBeOS which is, again, simpler in comparison with - // other platforms, partly due to UTF-8 nature of BeOS, partly due unimplemented font fallbacks - // and other tricks. - - NS_IMETHODIMP nsRenderingContextBeOS::GetTextDimensions(const PRUnichar* aString, - PRInt32 aLength, PRInt32 aAvailWidth, PRInt32* aBreaks, PRInt32 aNumBreaks, - nsTextDimensions& aDimensions, PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, -- PRInt32* aFontID = nsnull) -+ PRInt32* aFontID) - { - nsresult ret_code = NS_ERROR_FAILURE; - uint8 utf8buf[1024]; - uint8* utf8str = nsnull; - // max UTF-8 string length - PRUint32 slength = aLength * 4 + 1; - // Allocating char* array rather from stack than from heap for speed. - // 1024 char array forms e.g. 256 == 32*8 frame for CJK glyphs, which may be -@@ -1155,17 +1158,17 @@ NS_IMETHODIMP nsRenderingContextBeOS::Ge - // deallocating if got from heap - if (utf8str != utf8buf) - delete [] utf8str; - return ret_code; - } - - NS_IMETHODIMP nsRenderingContextBeOS::GetTextDimensions(const char* aString, PRInt32 aLength, - PRInt32 aAvailWidth,PRInt32* aBreaks, PRInt32 aNumBreaks, nsTextDimensions& aDimensions, -- PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, PRInt32* aFontID = nsnull) -+ PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, PRInt32* aFontID) - { - // Code is borrowed from win32 implementation including comments. - // Minor changes are introduced due multibyte/utf-8 nature of char* strings handling in BeOS. - char * utf8ptr = (char *)aString; - PRInt32 *utf8pos =0; - PRInt32 num_of_glyphs = 0; // Number of glyphs isn't equal to number of bytes in case of UTF-8 - PRInt32 utf8posbuf[1025]; - if (aLength < 1025) -Index: mozilla/intl/uconv/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/intl/uconv/src/Makefile.in,v -retrieving revision 1.82.4.2 -diff -u -8 -p -r1.82.4.2 Makefile.in ---- mozilla/intl/uconv/src/Makefile.in 29 Jan 2006 16:51:01 -0000 1.82.4.2 -+++ mozilla/intl/uconv/src/Makefile.in 9 Feb 2009 04:02:45 -0000 -@@ -114,17 +114,17 @@ else - ifeq ($(MOZ_WIDGET_TOOLKIT),windows) - CPPSRCS += nsWinCharset.cpp - EXPORT_RESOURCE += wincharset.properties - else - ifneq (,$(filter cocoa mac, $(MOZ_WIDGET_TOOLKIT))) - CPPSRCS += nsMacCharset.cpp - EXPORT_RESOURCE += maccharset.properties - else --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsBeOSCharset.cpp - else - CPPSRCS += nsUNIXCharset.cpp - EXPORT_RESOURCE += unixcharset.properties - # add platform charset remapping properties files here if necessary - # (see unixcharset.sample.properties for an example file) - # eg: if we needed a charset remap for OSARCH=Linux then add the following line: - #EXPORT_RESOURCE += unixcharset.Linux.properties -Index: mozilla/ipc/ipcd/client/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/ipc/ipcd/client/src/Makefile.in,v -retrieving revision 1.7 -diff -u -8 -p -r1.7 Makefile.in ---- mozilla/ipc/ipcd/client/src/Makefile.in 9 Dec 2004 19:28:19 -0000 1.7 -+++ mozilla/ipc/ipcd/client/src/Makefile.in 9 Feb 2009 04:02:51 -0000 -@@ -59,17 +59,18 @@ CPPSRCS = \ - ipcdclient.cpp \ - ipcService.cpp \ - ipcModuleFactory.cpp \ - $(NULL) - - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += ipcConnectionWin.cpp - else --ifeq ($(OS_ARCH),BeOS) -+ -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += ipcConnectionStub.cpp - else - CPPSRCS += ipcConnectionUnix.cpp - endif - endif - - LOCAL_INCLUDES = \ - -I$(srcdir)/../../shared/src \ -Index: mozilla/ipc/ipcd/daemon/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/ipc/ipcd/daemon/src/Makefile.in,v -retrieving revision 1.3 -diff -u -8 -p -r1.3 Makefile.in ---- mozilla/ipc/ipcd/daemon/src/Makefile.in 28 Jan 2004 21:31:46 -0000 1.3 -+++ mozilla/ipc/ipcd/daemon/src/Makefile.in 9 Feb 2009 04:02:52 -0000 -@@ -54,17 +54,18 @@ CPPSRCS = \ - ipcd.cpp \ - ipcClient.cpp \ - ipcModuleReg.cpp \ - ipcCommandModule.cpp - - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += ipcdWin.cpp - else --ifeq ($(OS_ARCH),BeOS) -+ -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += ipcdStub.cpp - else - CPPSRCS += ipcdUnix.cpp - endif - endif - - PROGRAM = mozilla-ipcd$(BIN_SUFFIX) - -Index: mozilla/js/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/js/src/Makefile.in,v -retrieving revision 3.95.4.5 -diff -u -8 -p -r3.95.4.5 Makefile.in ---- mozilla/js/src/Makefile.in 27 Jul 2006 22:56:20 -0000 3.95.4.5 -+++ mozilla/js/src/Makefile.in 9 Feb 2009 04:02:54 -0000 -@@ -241,17 +241,17 @@ ifneq ($(findstring -L,$(NSPR_LIBS)),) - NSPR_STATIC_PATH = $(subst -L,,$(findstring -L,$(NSPR_LIBS))) - else - NSPR_STATIC_PATH = $(DIST)/lib - endif - - LDFLAGS += $(pathsubst -l%,$(NSPR_STATIC_PATH)/%.a,$(NSPR_LIBS)) - - # BeOS and HP-UX do not require the extra linking of "-lm" --ifeq (,$(filter BeOS HP-UX WINNT WINCE OpenVMS,$(OS_ARCH))) -+ifeq (,$(filter BeOS Haiku HP-UX WINNT WINCE OpenVMS,$(OS_ARCH))) - LDFLAGS += -lm - endif - - # Prevent floating point errors caused by VC++ optimizations - ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_) - ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER))) - CFLAGS += -Op - else -Index: mozilla/mail/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/mail/app/Makefile.in,v -retrieving revision 1.46.2.10 -diff -u -8 -p -r1.46.2.10 Makefile.in ---- mozilla/mail/app/Makefile.in 22 Oct 2008 21:04:53 -0000 1.46.2.10 -+++ mozilla/mail/app/Makefile.in 9 Feb 2009 04:03:21 -0000 -@@ -57,18 +57,22 @@ PREF_JS_EXPORTS = \ - - ifndef MOZ_BRANDING_DIRECTORY - PREF_JS_EXPORTS += $(srcdir)/thunderbird-branding.js - endif - - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = thunderbird$(BIN_SUFFIX) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+PROGRAM = thunderbird$(BIN_SUFFIX) -+else - PROGRAM = thunderbird-bin$(BIN_SUFFIX) - endif -+endif - - REQUIRES = \ - xpcom \ - $(NULL) - - LOCAL_INCLUDES = -I$(topsrcdir)/toolkit/xre - - CPPSRCS = nsMailApp.cpp -@@ -142,17 +146,17 @@ RCFLAGS += -DMOZ_THUNDERBIRD -I$(srcdir) - else - RCFLAGS += -DMOZ_THUNDERBIRD --include-dir $(srcdir) - endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res -@@ -257,17 +261,17 @@ ifneq (,$(filter gtk gtk2,$(MOZ_WIDGET_T - cp $(srcdir)/mozicon16.xpm $(DIST)/branding/mozicon16.xpm - cp $(srcdir)/mozicon50.xpm $(DIST)/branding/mozicon50.xpm - endif - ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) - cp $(srcdir)/default.xpm $(DIST)/branding/default.xpm - endif - endif - --ifneq (,$(filter-out OS2 WINNT Darwin,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT Darwin BeOS Haiku,$(OS_ARCH))) - thunderbird:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.thunderbird|" \ - -e "s|%MREDIR%|$(mredir)|" \ - -e "s|%MOZ_APP_DISPLAYNAME%|$(MOZ_APP_DISPLAYNAME)|" > $@ - chmod +x $@ - - libs:: thunderbird -Index: mozilla/modules/libpr0n/decoders/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/libpr0n/decoders/Makefile.in,v -retrieving revision 1.13.18.2 -diff -u -8 -p -r1.13.18.2 Makefile.in ---- mozilla/modules/libpr0n/decoders/Makefile.in 17 Feb 2006 19:03:47 -0000 1.13.18.2 -+++ mozilla/modules/libpr0n/decoders/Makefile.in 9 Feb 2009 04:03:46 -0000 -@@ -47,17 +47,17 @@ ifdef MOZ_ENABLE_GNOMEUI - TOOL_DIRS = icon/gtk icon - endif - ifneq (,$(filter WINCE WINNT,$(OS_ARCH))) - DIRS = icon/win icon - endif - ifeq ($(OS_ARCH),OS2) - DIRS = icon/os2 icon - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - DIRS = icon/beos icon - endif - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - DIRS = icon/mac icon - endif - endif # icon - - DIRS += $(filter-out icon,$(MOZ_IMG_DECODERS)) -Index: mozilla/modules/libpr0n/decoders/icon/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/libpr0n/decoders/icon/Makefile.in,v -retrieving revision 1.17.8.6 -diff -u -8 -p -r1.17.8.6 Makefile.in ---- mozilla/modules/libpr0n/decoders/icon/Makefile.in 30 May 2006 15:46:21 -0000 1.17.8.6 -+++ mozilla/modules/libpr0n/decoders/icon/Makefile.in 9 Feb 2009 04:03:46 -0000 -@@ -77,17 +77,17 @@ endif - ifeq ($(OS_ARCH),OS2) - PLATFORM = os2 - endif - - ifeq ($(OS_ARCH),Darwin) - PLATFORM = mac - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PLATFORM = beos - endif - - REQUIRES = xpcom \ - string \ - gfx \ - imglib2 \ - necko \ -@@ -97,17 +97,17 @@ CPPSRCS = \ - nsIconURI.cpp \ - nsIconModule.cpp \ - nsIconProtocolHandler.cpp \ - $(NULL) - - ifdef MOZ_ENABLE_GNOMEUI - USE_ICON_DECODER = 1 - endif --ifeq (,$(filter-out Darwin OS2 BeOS,$(OS_ARCH))) -+ifeq (,$(filter-out Darwin OS2 BeOS Haiku,$(OS_ARCH))) - USE_ICON_DECODER = 1 - endif - - ifdef USE_ICON_DECODER - CPPSRCS += nsIconDecoder.cpp - DEFINES += -DUSE_ICON_DECODER - endif - -Index: mozilla/modules/libreg/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/libreg/src/Makefile.in,v -retrieving revision 1.39 -diff -u -8 -p -r1.39 Makefile.in ---- mozilla/modules/libreg/src/Makefile.in 18 Apr 2004 22:00:45 -0000 1.39 -+++ mozilla/modules/libreg/src/Makefile.in 9 Feb 2009 04:03:47 -0000 -@@ -61,17 +61,17 @@ FORCE_STATIC_LIB = 1 - - # Force use of PIC - FORCE_USE_PIC = 1 - - include $(topsrcdir)/config/config.mk - - DEFINES += -DUSE_BUFFERED_REGISTRY_IO - # Memory mapped files are not supported under QNX, Neutrino, HP-UX and BeOS --#ifeq (,$(filter BeOS HP-UX QNX,$(OS_ARCH))) -+#ifeq (,$(filter BeOS Haiku HP-UX QNX,$(OS_ARCH))) - #CSRCS += mmapio.c - #DEFINES += -DUSE_MMAP_REGISTRY_IO - #endif - - include $(topsrcdir)/config/rules.mk - - R_%.o: %.c - $(CC) $(OUTOPTION)$@ -c $(COMPILE_CFLAGS) -DSTANDALONE_REGISTRY $< -Index: mozilla/modules/plugin/base/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/modules/plugin/base/src/Makefile.in,v -retrieving revision 1.104 -diff -u -8 -p -r1.104 Makefile.in ---- mozilla/modules/plugin/base/src/Makefile.in 8 Jun 2005 16:48:43 -0000 1.104 -+++ mozilla/modules/plugin/base/src/Makefile.in 9 Feb 2009 04:03:55 -0000 -@@ -91,17 +91,17 @@ CPPSRCS = \ - ns4xPluginInstance.cpp \ - nsPluginHostImpl.cpp \ - nsPluginModule.cpp \ - nsPluginInstancePeer.cpp \ - nsPluginDirServiceProvider.cpp \ - nsJSNPRuntime.cpp \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsPluginsDirBeOS.cpp - CPPSRCS += nsPluginNativeWindow.cpp - else - ifneq (,$(filter WINNT WINCE,$(OS_ARCH))) - CPPSRCS += nsPluginsDirWin.cpp - CPPSRCS += nsPluginNativeWindowWin.cpp - else - ifeq ($(MOZ_WIDGET_TOOLKIT),os2) -Index: mozilla/nsprpub/configure.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/configure.in,v -retrieving revision 1.199.2.17 -diff -u -8 -p -r1.199.2.17 configure.in ---- mozilla/nsprpub/configure.in 31 Oct 2007 18:07:38 -0000 1.199.2.17 -+++ mozilla/nsprpub/configure.in 9 Feb 2009 04:04:09 -0000 -@@ -358,17 +358,17 @@ if test -z "$SKIP_PATH_CHECKS"; then - AC_PATH_PROG(WHOAMI, $WHOAMI whoami, echo not_whoami) - fi - - if test -n "$MOZ_DEBUG"; then - AC_DEFINE(DEBUG) - DEFINES="$DEFINES -UNDEBUG" - - case "${target_os}" in -- beos*) -+ beos*|haiku*) - DEFINES="$DEFINES -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*) - DEFINES="$DEFINES -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`" - ;; - *) - DEFINES="$DEFINES -DDEBUG_`$WHOAMI`" - ;; -@@ -787,17 +787,17 @@ case "$host" in - NSINSTALL=nsinstall - ;; - *-cygwin*|*-msvc*|*-mks*) - NSINSTALL='$(CYGWIN_WRAPPER) nsinstall' - if test `echo "${PATH}" | grep -c \;` = 0; then - CYGWIN_WRAPPER='sh $(topsrcdir)/build/cygwin-wrapper' - fi - ;; --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" - ;; - *os2*) - ;; - *) - HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" - ;; - esac -@@ -862,34 +862,50 @@ case "$target" in - OBJECT_MODE=64 - else - MDCPUCFG_H=_aix32.cfg - fi - PR_MD_CSRCS=aix.c - RESOLVE_LINK_SYMBOLS=1 - ;; - --*-beos*) -+*-beos*|*-haiku*) - AC_DEFINE(XP_BEOS) - AC_DEFINE(BeOS) - AC_DEFINE(BEOS) - AC_DEFINE(_POSIX_SOURCE) -- DSO_LDOPTS=-nostart -+ DSO_CFLAGS=-fPIC -+ DSO_LDOPTS='-nostart' -+ - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 -+ -+ _HAIKU_BUILD=0 -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ if test "$_HAIKU_BUILD" = 1; then -+ OS_LIBS="$OS_LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ fi -+ - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -- _DEBUG_FLAGS='-gdwarf-2 -O0' -+ AC_DEFINE(i586) -+ CPU_ARCH=i586 -+ _OPTIMIZE_FLAGS=-O3 -+ _DEBUG_FLAGS='-gdwarf-2 -O0 -fno-inline' - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' -- AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) - ;; - powerpc) -+ AC_DEFINE(ppc) -+ CPU_ARCH=ppc - CC=mwcc - CCC=mwcc - LD=mwld - DSO_LDOPTS='-xms -export pragma -init _init_routine_ -term _term_routine_ -lroot -lnet /boot/develop/lib/ppc/glue-noinit.a /boot/develop/lib/ppc/init_term_dyn.o /boot/develop/lib/ppc/start_dyn.o' - _OPTIMIZE_FLAGS=-O2 - _DEBUG_FLAGS='-g -O0' - ;; - esac -@@ -2164,16 +2180,18 @@ dnl AC_CHECK_LIB(vms_jackets, main) - - - dnl We don't want anything to link with libdl even if it's present on OS X, - dnl since it's not used and not part of the default installation. - - case $target in - *-darwin*) - ;; -+*-beos*|*-haiku*) -+ ;; - *) - AC_CHECK_LIB(dl, dlopen, - AC_CHECK_HEADER(dlfcn.h, - OS_LIBS="-ldl $OS_LIBS")) - ;; - esac - - -@@ -2352,17 +2370,17 @@ AC_ARG_ENABLE(nspr-threads, - [ --enable-nspr-threads Build using classic nspr threads], - [ if test "$enableval" = "yes"; then - USE_PTHREADS= - USE_USER_PTHREADS= - USE_NSPR_THREADS=1 - fi]) - - case "$target" in --*-beos*) -+*-beos*|*-haiku*) - AC_ARG_WITH(bthreads, - [ --with-bthreads Use system bthreads library as thread subsystem - (BeOS only)], - [ if test "$withval" = "yes"; then - USE_BTHREADS=1 - USE_USER_PTHREADS= - USE_PTHREADS= - fi]) -Index: mozilla/nsprpub/build/autoconf/config.guess -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/build/autoconf/config.guess,v -retrieving revision 1.15 -diff -u -8 -p -r1.15 config.guess ---- mozilla/nsprpub/build/autoconf/config.guess 18 Apr 2003 19:20:18 -0000 1.15 -+++ mozilla/nsprpub/build/autoconf/config.guess 9 Feb 2009 04:04:13 -0000 -@@ -1,34 +1,37 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-08' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or - # (at your option) any later version. - # - # This program is distributed in the hope that it will be useful, but - # WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # This script attempts to guess a canonical system name similar to - # config.sub. If it succeeds, it prints the system name on stdout, and - # exits with 0. Otherwise, it exits with 1. - # -@@ -48,34 +51,34 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) -@@ -99,35 +102,36 @@ trap 'exit 1' 1 2 15 - # use `HOST_CC' if defined, but it is deprecated. - - # Portable tmp directory creation inspired by the Autoconf team. - - set_cc_for_build=' - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; - case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) - if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -@@ -152,16 +156,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ -@@ -190,60 +195,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; -@@ -271,147 +258,163 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __cplusplus - #include /* for printf() prototype */ - int main (int argc, char *argv[]) { - #else - int main (argc, argv) int argc; char *argv[]; { -@@ -425,145 +428,150 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -- echo rs6000-ibm-aix3.2.5 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else -+ echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -@@ -615,31 +623,41 @@ EOF - } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); -@@ -657,181 +675,224 @@ EOF - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -@@ -839,62 +900,78 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g -@@ -902,99 +979,113 @@ EOF - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -+ exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ -@@ -1002,214 +1093,248 @@ EOF - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi -- exit 0 ;; -+ exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -- exit 0 ;; -+ exit ;; - paragon:*:*:*) - echo i860-intel-osf1 -- exit 0 ;; -+ exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ exit ;; -+ BeMac:Haiku:*:*) -+ echo powerpc-apple-haiku -+ exit ;; -+ BePC:Haiku:*:*) -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 - #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - - eval $set_cc_for_build - cat >$dummy.c </dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - - if [ -x /usr/convex/getsysinfo ] - then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - - cat >&2 < in order to provide the needed - information to handle your system. - - config.guess timestamp = $timestamp - -Index: mozilla/nsprpub/build/autoconf/config.sub -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/build/autoconf/config.sub,v -retrieving revision 1.16 -diff -u -8 -p -r1.16 config.sub ---- mozilla/nsprpub/build/autoconf/config.sub 18 Apr 2003 19:20:18 -0000 1.16 -+++ mozilla/nsprpub/build/autoconf/config.sub 9 Feb 2009 04:04:16 -0000 -@@ -1,14 +1,15 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2008-01-16' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software - # can handle that machine. It does not imply ALL GNU software can. - # - # This file is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or -@@ -16,24 +17,25 @@ timestamp='2003-02-22' - # - # This program is distributed in the hope that it will be useful, - # but WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - # GNU General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - -@@ -65,46 +67,46 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; - esac - done - - case $# in - 0) echo "$me: missing argument$help" >&2 -@@ -113,17 +115,19 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi -@@ -139,17 +143,17 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) -@@ -164,32 +168,40 @@ case $os in - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) -@@ -219,171 +231,196 @@ case $os in - os=-mint - ;; - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) -@@ -405,16 +442,24 @@ case $basic_machine in - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; -@@ -433,22 +478,37 @@ case $basic_machine in - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec -@@ -461,16 +521,20 @@ case $basic_machine in - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; -@@ -611,66 +675,71 @@ case $basic_machine in - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; -@@ -729,30 +798,29 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff -+ ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k -@@ -760,43 +828,63 @@ case $basic_machine in - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -@@ -819,16 +907,20 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) -@@ -845,23 +937,37 @@ case $basic_machine in - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; -@@ -926,45 +1032,49 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; -@@ -998,16 +1108,20 @@ case $basic_machine in - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) -@@ -1028,39 +1142,39 @@ case $basic_machine in - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; -@@ -1116,40 +1230,40 @@ case $os in - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1157,34 +1271,40 @@ case $os in - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1196,16 +1316,19 @@ case $os in - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova -@@ -1218,16 +1341,19 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 -@@ -1254,16 +1380,19 @@ case $os in - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1276,25 +1405,34 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) -@@ -1310,16 +1448,19 @@ case $basic_machine in - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff -@@ -1328,19 +1469,25 @@ case $basic_machine in - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf -@@ -1463,19 +1610,25 @@ case $basic_machine in - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi -@@ -1490,16 +1643,16 @@ case $basic_machine in - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) - # time-stamp-start: "timestamp='" - # time-stamp-format: "%:y-%02m-%02d" - # time-stamp-end: "'" - # End: -Index: mozilla/nsprpub/lib/ds/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/lib/ds/Makefile.in,v -retrieving revision 1.35.2.1 -diff -u -8 -p -r1.35.2.1 Makefile.in ---- mozilla/nsprpub/lib/ds/Makefile.in 19 Oct 2006 00:39:28 -0000 1.35.2.1 -+++ mozilla/nsprpub/lib/ds/Makefile.in 9 Feb 2009 04:04:16 -0000 -@@ -180,18 +180,22 @@ endif - export:: $(TARGETS) - $(INSTALL) -m 444 $(HEADERS) $(dist_includedir) - $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) - ifdef SHARED_LIBRARY - ifeq ($(OS_ARCH),HP-UX) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) - endif - endif -+endif - ifeq ($(MOZ_BITS),16) - $(INSTALL) -m 444 $(HEADERS) $(MOZ_INCL) - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin - endif - - -Index: mozilla/nsprpub/lib/libc/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/lib/libc/src/Makefile.in,v -retrieving revision 1.31.2.1 -diff -u -8 -p -r1.31.2.1 Makefile.in ---- mozilla/nsprpub/lib/libc/src/Makefile.in 19 Oct 2006 00:39:28 -0000 1.31.2.1 -+++ mozilla/nsprpub/lib/libc/src/Makefile.in 9 Feb 2009 04:04:17 -0000 -@@ -182,16 +182,20 @@ endif - - export:: $(TARGETS) - $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) - ifdef SHARED_LIBRARY - ifeq ($(OS_ARCH),HP-UX) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) - endif - endif -+endif - ifeq ($(MOZ_BITS),16) - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin - endif - -Index: mozilla/nsprpub/lib/prstreams/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/lib/prstreams/Makefile.in,v -retrieving revision 1.21.2.1 -diff -u -8 -p -r1.21.2.1 Makefile.in ---- mozilla/nsprpub/lib/prstreams/Makefile.in 19 Oct 2006 00:39:28 -0000 1.21.2.1 -+++ mozilla/nsprpub/lib/prstreams/Makefile.in 9 Feb 2009 04:04:17 -0000 -@@ -64,17 +64,17 @@ ifeq ($(OS_ARCH),SunOS) - endif - - ifeq ($(OS_ARCH), IRIX) - ifneq ($(OS_RELEASE),5.3) - CCC_ONLY_FLAGS += -exceptions - endif - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CFLAGS += -frtti -fexceptions - endif - - INCLUDES = -I$(dist_includedir) - - HEADERS = $(wildcard $(srcdir)/*.h) - - CSRCS = \ -@@ -113,17 +113,17 @@ else - MKSHLIB = makeC++SharedLib_r -p 0 - endif - OS_LIBS += -ldl - endif - endif - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS = -lstdc++.r4 - endif - - ifeq ($(OS_ARCH), UNIXWARE) - OS_LIBS += -lC - endif - - EXTRA_LIBS = $(LIBNSPR) -Index: mozilla/nsprpub/pr/include/prio.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/prio.h,v -retrieving revision 3.40 -diff -u -8 -p -r3.40 prio.h ---- mozilla/nsprpub/pr/include/prio.h 25 Apr 2004 15:00:47 -0000 3.40 -+++ mozilla/nsprpub/pr/include/prio.h 9 Feb 2009 04:04:25 -0000 -@@ -169,38 +169,41 @@ struct PRIPv6Addr { - #define pr_s6_addr32 _S6_un._S6_u32 - #define pr_s6_addr64 _S6_un._S6_u64 - - typedef struct PRIPv6Addr PRIPv6Addr; - - union PRNetAddr { - struct { - PRUint16 family; /* address family (0x00ff maskable) */ --#ifdef XP_BEOS -- char data[10]; /* Be has a smaller structure */ --#else -+#ifndef XP_BEOS - char data[14]; /* raw address data */ -+#else -+ char data[30]; - #endif - } raw; - struct { - PRUint16 family; /* address family (AF_INET) */ - PRUint16 port; /* port number */ - PRUint32 ip; /* The actual 32 bits of address */ --#ifdef XP_BEOS -- char pad[4]; /* Be has a smaller structure */ --#else -+#ifndef XP_BEOS - char pad[8]; -+#else -+ char pad[24]; - #endif - } inet; - struct { - PRUint16 family; /* address family (AF_INET6) */ - PRUint16 port; /* port number */ - PRUint32 flowinfo; /* routing information */ - PRIPv6Addr ip; /* the actual 128 bits of address */ - PRUint32 scope_id; /* set of interfaces for a scope */ -+#ifdef XP_BEOS -+ char pad[4]; -+#endif - } ipv6; - #if defined(XP_UNIX) || defined(XP_OS2_EMX) - struct { /* Unix domain socket address */ - PRUint16 family; /* address family (AF_UNIX) */ - #ifdef XP_OS2 - char path[108]; /* null-terminated pathname */ - /* bind fails if size is not 108. */ - #else -Index: mozilla/nsprpub/pr/include/prtypes.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/prtypes.h,v -retrieving revision 3.30.2.2 -diff -u -8 -p -r3.30.2.2 prtypes.h ---- mozilla/nsprpub/pr/include/prtypes.h 5 Apr 2006 21:51:21 -0000 3.30.2.2 -+++ mozilla/nsprpub/pr/include/prtypes.h 9 Feb 2009 04:04:26 -0000 -@@ -93,29 +93,48 @@ - #define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type - - #define PR_CALLBACK - #define PR_CALLBACK_DECL - #define PR_STATIC_CALLBACK(__x) static __x - - #elif defined(XP_BEOS) - -+/* GCC 3.3 and later support the visibility attribute. */ -+#if (__GNUC__ >= 4) || \ -+ (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) -+#define PR_VISIBILITY_DEFAULT __attribute__((visibility("default"))) -+#define PR_EXPORT(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_EXPORT_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPORT(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPORT_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+ -+#define PR_EXTERN(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPLEMENT(__type) PR_VISIBILITY_DEFAULT __type -+#define PR_EXTERN_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPLEMENT_DATA(__type) PR_VISIBILITY_DEFAULT __type -+#define PR_CALLBACK -+#define PR_CALLBACK_DECL -+#define PR_STATIC_CALLBACK(__x) static __x -+ -+#else - #define PR_EXPORT(__type) extern __declspec(dllexport) __type - #define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type - #define PR_IMPORT(__type) extern __declspec(dllexport) __type - #define PR_IMPORT_DATA(__type) extern __declspec(dllexport) __type - - #define PR_EXTERN(__type) extern __declspec(dllexport) __type - #define PR_IMPLEMENT(__type) __declspec(dllexport) __type - #define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type - #define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type - - #define PR_CALLBACK - #define PR_CALLBACK_DECL - #define PR_STATIC_CALLBACK(__x) static __x -+#endif - - #elif defined(WIN16) - - #define PR_CALLBACK_DECL __cdecl - - #if defined(_WINDLL) - #define PR_EXPORT(__type) extern __type _cdecl _export _loadds - #define PR_IMPORT(__type) extern __type _cdecl _export _loadds -Index: mozilla/nsprpub/pr/include/md/_beos.cfg -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/md/_beos.cfg,v -retrieving revision 3.5.214.1 -diff -u -8 -p -r3.5.214.1 _beos.cfg ---- mozilla/nsprpub/pr/include/md/_beos.cfg 5 Apr 2006 22:00:45 -0000 3.5.214.1 -+++ mozilla/nsprpub/pr/include/md/_beos.cfg 9 Feb 2009 04:04:27 -0000 -@@ -15,16 +15,17 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your -@@ -35,33 +36,38 @@ - * - * ***** END LICENSE BLOCK ***** */ - - #ifndef nspr_cpucfg___ - #define nspr_cpucfg___ - - #ifndef XP_BEOS - #define XP_BEOS --#undef XP_UNIX - #endif - - #ifndef BEOS - #define BEOS - #endif - - #define PR_AF_INET6 5 /* same as AF_INET6 */ - - #ifdef __powerpc__ - #undef IS_LITTLE_ENDIAN - #define IS_BIG_ENDIAN 1 - #else - #define IS_LITTLE_ENDIAN 1 - #undef IS_BIG_ENDIAN - #endif - -+/* -+ * Fixme: Should be done according to arch -+ * Currently only x86/ia64. -+ */ -+#define PR_ALIGN_OF_WORD 4 -+ - #define PR_BYTES_PER_BYTE 1 - #define PR_BYTES_PER_SHORT 2 - #define PR_BYTES_PER_INT 4 - #define PR_BYTES_PER_INT64 8 - #define PR_BYTES_PER_LONG 4 - #define PR_BYTES_PER_FLOAT 4 - #define PR_BYTES_PER_DOUBLE 8 - #define PR_BYTES_PER_WORD 4 -Index: mozilla/nsprpub/pr/include/md/_beos.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/md/_beos.h,v -retrieving revision 3.23 -diff -u -8 -p -r3.23 _beos.h ---- mozilla/nsprpub/pr/include/md/_beos.h 17 Jan 2005 22:00:53 -0000 3.23 -+++ mozilla/nsprpub/pr/include/md/_beos.h 9 Feb 2009 04:04:27 -0000 -@@ -15,16 +15,17 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your -@@ -33,27 +34,26 @@ - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #ifndef nspr_beos_defs_h___ - #define nspr_beos_defs_h___ - --#include "prtypes.h" --#include "prio.h" --#include "prthread.h" --#include "prproces.h" --#include "prmem.h" --#include "obsolete/prsem.h" - #include -- --#include --#include - #include -+#include -+ -+/* -+ * Hack for Cross compile -+ */ -+#define FD_SETSIZE 1024 -+ -+#undef bool - - /* - * Internal configuration macros - */ - - #ifdef BONE_VERSION - #define _PR_HAVE_SOCKADDR_LEN - #endif -@@ -62,104 +62,66 @@ - #define _PR_SI_SYSNAME "BEOS" - #ifdef __powerpc__ - #define _PR_SI_ARCHITECTURE "ppc" - #else - #define _PR_SI_ARCHITECTURE "x86" - #endif - #define PR_DLL_SUFFIX ".so" - --#define _PR_VMBASE 0x30000000 --#define _PR_STACK_VMBASE 0x50000000 - #define _MD_DEFAULT_STACK_SIZE 65536L --#define _MD_MMAP_FLAGS MAP_PRIVATE - - #undef HAVE_STACK_GROWING_UP - #define HAVE_DLL --#define _PR_NO_CLOCK_TIMER - - /* - * The Atomic operations - */ - - #define _PR_HAVE_ATOMIC_OPS -+#ifdef __powerpc__ - #define _MD_INIT_ATOMIC _MD_AtomicInit -+#else -+#define _MD_INIT_ATOMIC() -+#endif - #define _MD_ATOMIC_INCREMENT _MD_AtomicIncrement - #define _MD_ATOMIC_ADD _MD_AtomicAdd - #define _MD_ATOMIC_DECREMENT _MD_AtomicDecrement - #define _MD_ATOMIC_SET _MD_AtomicSet - -+/* Makes sure to don't create cvar when creating sem */ - #define HAVE_CVAR_BUILT_ON_SEM -+ -+/* Not sure this is needed, but no harm. */ - #define _PR_GLOBAL_THREADS_ONLY -+ - #define _PR_BTHREADS --#define _PR_NEED_FAKE_POLL --#define _PR_HAVE_PEEK_BUFFER --#define _PR_PEEK_BUFFER_MAX (16 * 1024) --#define _PR_FD_NEED_EMULATE_MSG_PEEK(fd) 1 --#define _PR_CONNECT_DOES_NOT_BIND -+ - #define _PR_HAVE_O_APPEND - --/* Define threading functions and objects as native BeOS */ -+/* Define threading functions and objects as native BeOS -+ Used by bthreads. */ -+ - struct _MDThread { - thread_id tid; /* BeOS thread handle */ - sem_id joinSem; /* sems used to synchronzie joining */ - PRBool is_joining; /* TRUE if someone is currently waiting to - join this thread */ - }; - --struct _MDThreadStack { -- PRInt8 notused; --}; -- --/* -- * Lock and Semaphore related definitions -- */ -- --struct _MDLock { -- sem_id semaphoreID; -- int32 benaphoreCount; --}; -- --struct _MDCVar { -- sem_id sem1; -- sem_id sem2; -- int16 count; --}; -- --struct _MDSemaphore { -- sem_id sid; --}; -- --/* --** CPU-related definitions --*/ --struct _MDCPU { -- int8 unused; --}; -- - /* - ** Process-related definitions - */ - struct _MDProcess { - pid_t pid; - }; - --struct _MDSegment { -- PRInt8 notused; --}; -- - /* - ** File- and directory-related definitions - */ -- --#ifndef BONE_VERSION --#define BE_SOCK_SHUTDOWN_READ 0x01 --#define BE_SOCK_SHUTDOWN_WRITE 0x02 --#endif -- - struct _MDFileDesc { - PRInt32 osfd; - PRInt32 sock_state; - PRBool accepted_socket; - PRNetAddr peer_addr; - #ifndef BONE_VERSION - PRBool connectValueValid; - int connectReturnValue; -@@ -173,441 +135,114 @@ struct _MDDir { - - #define PR_DIRECTORY_SEPARATOR '/' - #define PR_DIRECTORY_SEPARATOR_STR "/" - #define PR_PATH_SEPARATOR ':' - #define PR_PATH_SEPARATOR_STR ":" - - #define GETTIMEOFDAY(tp) gettimeofday((tp), NULL) - --/* --- Memory-mapped files stuff --- not implemented on BeOS */ -- --struct _MDFileMap { -- PRInt8 unused; --}; - - /* - * Network related definitions. - */ - - #ifndef BONE_VERSION -+#define BE_SOCK_SHUTDOWN_READ 0x01 -+#define BE_SOCK_SHUTDOWN_WRITE 0x02 -+ - #define IPPROTO_IP 0 - #define AF_UNIX 2 - #define TCP_NODELAY SO_NONBLOCK - #define SO_LINGER -1 - #define SO_ERROR 4 --#endif -- --#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 - --#ifndef BONE_VERSION - /* these aren't actually used. if they are, we're screwed */ - struct protoent { - char *p_name; /* official protocol name */ - char **p_aliases; /* alias list */ - int p_proto; /* protocol # */ - }; - - struct protoent* getprotobyname(const char* name); - struct protoent* getprotobynumber(int number); - #endif - -+/* Used by bnet.c */ -+#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 -+ - /* - * malloc() related definitions. -+ * Avoids prmalloc.c's and prmem's code - */ -- - #undef _PR_OVERRIDE_MALLOC - - /* Miscellaneous */ - --#define _MD_ERRNO() (errno) -+#define _MD_ERRNO() (errno) - --#define _MD_CLEANUP_BEFORE_EXIT _MD_cleanup_before_exit --#define _MD_EXIT _MD_exit -+#define _MD_CLEANUP_BEFORE_EXIT() -+#define _MD_EXIT exit - - #define _MD_GET_ENV getenv - #define _MD_PUT_ENV putenv - --#define _MD_EARLY_INIT _MD_early_init --#define _MD_FINAL_INIT _MD_final_init -- --/* CPU Stuff */ -- --#define _MD_INIT_CPUS _MD_init_cpus --#define _MD_WAKEUP_CPUS _MD_wakeup_cpus --#define _MD_START_INTERRUPTS _MD_start_interrupts --#define _MD_STOP_INTERRUPTS _MD_stop_interrupts --#define _MD_DISABLE_CLOCK_INTERRUPTS _MD_disable_clock_interrupts --#define _MD_BLOCK_CLOCK_INTERRUPTS _MD_block_clock_interrupts --#define _MD_UNBLOCK_CLOCK_INTERRUPTS _MD_unblock_clock_interrupts --#define _MD_CLOCK_INTERRUPT _MD_clock_interrupt --#define _MD_INIT_STACK _MD_init_stack --#define _MD_CLEAR_STACK _MD_clear_stack --// #define _MD_GET_INTSOFF _MD_get_intsoff --// #define _MD_SET_INTSOFF _MD_set_intsoff --#define _MD_CURRENT_CPU _MD_current_cpu --#define _MD_SET_CURRENT_CPU _MD_set_current_cpu --#define _MD_INIT_RUNNING_CPU _MD_init_running_cpu --#define _MD_PAUSE_CPU _MD_pause_cpu -+#define _MD_EARLY_INIT() -+#ifdef BONE_VERSION -+#define _MD_FINAL_INIT() -+#else -+#define _MD_FINAL_INIT _MD_final_init_netserver -+#endif - - /* Thread stuff */ - - #define _MD_CURRENT_THREAD() PR_GetCurrentThread() --// #define _MD_GET_ATTACHED_THREAD _MD_get_attached_thread --#define _MD_LAST_THREAD _MD_last_thread --#define _MD_SET_CURRENT_THREAD _MD_set_current_THREAD --#define _MD_SET_LAST_THREAD _MD_set_last_thread --#define _MD_INIT_THREAD _MD_init_thread --#define _MD_EXIT_THREAD _MD_exit_thread --#define _MD_INIT_ATTACHED_THREAD _MD_init_attached_thread -- --#define _MD_SUSPEND_THREAD _MD_suspend_thread --#define _MD_RESUME_THREAD _MD_resume_thread --#define _MD_SUSPEND_CPU _MD_suspend_cpu --#define _MD_RESUME_CPU _MD_resume_cpu --#define _MD_BEGIN_SUSPEND_ALL _MD_begin_suspend_all --#define _MD_END_SUSPEND_ALL _MD_end_suspend_all --#define _MD_BEGIN_RESUME_ALL _MD_begin_resume_all --#define _MD_END_RESUME_ALL _MD_end_resume_all -- --#define _MD_GET_SP _MD_get_sp -- --#define _MD_CLEAN_THREAD _MD_clean_thread --#define _MD_CREATE_PRIMORDIAL_USER_THREAD _MD_create_primordial_user_thread --#define _MD_CREATE_USER_THREAD _MD_create_user_thread --#define _MD_INIT_PRIMORDIAL_THREAD _MD_init_primordial_thread --#define _MD_CREATE_THREAD _MD_create_thread --#define _MD_YIELD _MD_yield --#define _MD_SET_PRIORITY _MD_set_priority -- --#define _MD_SUSPENDALL _MD_suspendall --#define _MD_RESUMEALL _MD_resumeall -- --#define _MD_SWITCH_CONTEXT _MD_switch_context --#define _MD_RESTORE_CONTEXT _MD_restore_context -- --#define _MD_WAIT _MD_wait --#define _MD_WAKEUP_WAITER _MD_wakeup_waiter -- --#define _MD_SETTHREADAFFINITYMASK _MD_setthreadaffinitymask --#define _MD_GETTHREADAFFINITYMASK _MD_getthreadaffinitymask -- --/* Thread Synchronization */ -- --#define _MD_INIT_LOCKS _MD_init_locks --#define _MD_NEW_LOCK _MD_new_lock --#define _MD_FREE_LOCK _MD_free_lock --#define _MD_LOCK _MD_lock --#define _MD_TEST_AND_LOCK _MD_test_and_lock --#define _MD_UNLOCK _MD_unlock --#define _MD_IOQ_LOCK _MD_ioq_lock --#define _MD_IOQ_UNLOCK _MD_ioq_unlock --#define _MD_NEW_SEM _MD_new_sem --#define _MD_DESTROY_SEM _MD_destroy_sem --#define _MD_TIMED_WAIT_SEM _MD_timed_wait_sem --#define _MD_WAIT_SEM _MD_wait_sem --#define _MD_POST_SEM _MD_post_sem --// #define _MD_NEW_CV _MD_new_cv --// #define _MD_FREE_CV _MD_free_cv --// #define _MD_WAIT_CV _MD_wait_cv --// #define _MD_NOTIFY_CV _MD_notify_cv --// #define _MD_NOTIFYALL_CV _MD_notifyall_cv -+ - - /* File I/O */ - --/* don't need any I/O initializations */ --#define _MD_INIT_IO() --#define _MD_INIT_FILEDESC(fd) -- --#define _MD_OPEN_DIR _MD_open_dir --#define _MD_READ_DIR _MD_read_dir --#define _MD_CLOSE_DIR _MD_close_dir --#define _MD_MAKE_NONBLOCK _MD_make_nonblock --#define _MD_SET_FD_INHERITABLE _MD_set_fd_inheritable --#define _MD_INIT_FD_INHERITABLE _MD_init_fd_inheritable --#define _MD_QUERY_FD_INHERITABLE _MD_query_fd_inheritable --#define _MD_OPEN _MD_open --#define _MD_OPEN_FILE _MD_open --#define _MD_CLOSE_FILE _MD_close_file --#define _MD_READ _MD_read --#define _MD_WRITE _MD_write --#define _MD_WRITEV _MD_writev -+#define _PR_MD_WRITE -+ -+/* -+These are defined in primpl.h so that they are avail for all, but we -+have no calls, and pthreads doesn't either. - #define _MD_LSEEK _MD_lseek - #define _MD_LSEEK64 _MD_lseek64 --#define _MD_FSYNC _MD_fsync --#define _MD_DELETE _MD_delete -+ - #define _MD_GETFILEINFO _MD_getfileinfo - #define _MD_GETFILEINFO64 _MD_getfileinfo64 - #define _MD_GETOPENFILEINFO _MD_getopenfileinfo - #define _MD_GETOPENFILEINFO64 _MD_getopenfileinfo64 --#define _MD_RENAME _MD_rename --#define _MD_ACCESS _MD_access --#define _MD_STAT stat --#define _MD_MKDIR _MD_mkdir --#define _MD_MAKE_DIR _MD_mkdir --#define _MD_RMDIR _MD_rmdir --#define _MD_PR_POLL _MD_pr_poll -+*/ - - /* Network I/O */ - --#define _MD_CLOSE_SOCKET _MD_close_socket --#define _MD_CONNECT _MD_connect --#define _MD_ACCEPT _MD_accept --#define _MD_BIND _MD_bind --#define _MD_LISTEN _MD_listen --#define _MD_SHUTDOWN _MD_shutdown --#define _MD_RECV _MD_recv --#define _MD_SEND _MD_send --#define _MD_ACCEPT_READ _MD_accept_read --#define _MD_GETSOCKNAME _MD_getsockname --#define _MD_GETPEERNAME _MD_getpeername --#define _MD_GETSOCKOPT _MD_getsockopt --#define _MD_SETSOCKOPT _MD_setsockopt --#define _MD_RECVFROM _MD_recvfrom --#define _MD_SENDTO _MD_sendto --#define _MD_SOCKETPAIR _MD_socketpair --#define _MD_SOCKET _MD_socket --#define _MD_SOCKETAVAILABLE _MD_socketavailable --#define _MD_PIPEAVAILABLE _MD_socketavailable -- --#define _MD_GET_SOCKET_ERROR() (errno) -+#define _MD_GET_SOCKET_ERROR() (errno) - #define _MD_GETHOSTNAME _MD_gethostname - --#define _MD_SELECT select -- - /* Process management */ - - #define _MD_CREATE_PROCESS _MD_create_process - #define _MD_DETACH_PROCESS _MD_detach_process - #define _MD_WAIT_PROCESS _MD_wait_process - #define _MD_KILL_PROCESS _MD_kill_process - --/* Atomic data operations */ -- --// #define _MD_INIT_ATOMIC _MD_init_atomic --// #define _MD_ATOMIC_INCREMENT _MD_atomic_increment --// #define _MD_ATOMIC_DECREMENT _MD_atomic_decrement --// #define _MD_ATOMIC_SET _MD_atomic_set -- --/* memory management */ -- --#define _MD_INIT_SEGS _MD_init_segs --#define _MD_ALLOC_SEGMENT _MD_alloc_segment --#define _MD_FREE_SEGMENT _MD_free_segment -- - /* Memory mapped file I/O */ - - #define _MD_CREATE_FILE_MAP _MD_create_file_map - #define _MD_GET_MEM_MAP_ALIGNMENT _MD_get_mem_map_alignment - #define _MD_MEM_MAP _MD_mem_map - #define _MD_MEM_UNMAP _MD_mem_unmap - #define _MD_CLOSE_FILE_MAP _MD_close_file_map - - /* Time related */ - --#define _MD_NOW _MD_now --#define _MD_INTERVAL_INIT _MD_interval_init -+#define _MD_INTERVAL_INIT() - #define _MD_GET_INTERVAL _MD_get_interval - #define _MD_INTERVAL_PER_SEC _MD_interval_per_sec - - /* File locking */ - - #define _MD_LOCKFILE _MD_lockfile - #define _MD_TLOCKFILE _MD_tlockfile - #define _MD_UNLOCKFILE _MD_unlockfile - --/** -- * Prototypes for machine dependent function implementations. (Too bad -- * NSPR's MD system blows so much that we have to reiterate every stinking -- * thing we implement here in our MD header file.) -- */ -- --/* Miscellaneous */ -- --NSPR_API(void) _MD_cleanup_before_exit(void); --NSPR_API(void) _MD_exit(PRIntn status); -- --NSPR_API(char*) _MD_get_env(const char *name); --NSPR_API(PRIntn) _MD_put_env(const char *name); -- --NSPR_API(void) _MD_early_init(void); --NSPR_API(void) _MD_final_init(void); -- --/* CPU Stuff */ -- --NSPR_API(void) _MD_init_cpus(); --NSPR_API(void) _MD_wakeup_cpus(); --NSPR_API(void) _MD_start_interrupts(void); --NSPR_API(void) _MD_stop_interrupts(void); --NSPR_API(void) _MD_disable_clock_interrupts(void); --NSPR_API(void) _MD_block_clock_interrupts(void); --NSPR_API(void) _MD_unblock_clock_interrupts(void); --NSPR_API(void) _MD_clock_interrupt(void); --// NSPR_API(void) _MD_init_stack(PRThreadStack *ts, PRIntn redzone); --// NSPR_API(void) _MD_clear_stack(PRThreadStack* ts); --// NSPR_API(PRInt32) _MD_get_intsoff(void); --// NSPR_API(void) _MD_set_intsoff(PRInt32 _val); --// NSPR_API(_PRCPU*) _MD_current_cpu(void); --// NSPR_API(void) _MD_set_current_cpu(_PRCPU *cpu); --// NSPR_API(void) _MD_init_running_cpu(_PRCPU *cpu); --NSPR_API(PRInt32) _MD_pause_cpu(PRIntervalTime timeout); -- --/* Thread stuff */ -- --// NSPR_API(PRThread*) _MD_current_thread(void); --NSPR_API(PRThread*) _MD_get_attached_thread(void); --NSPR_API(PRThread*) _MD_last_thread(void); --NSPR_API(void) _MD_set_current_thread(PRThread *thread); --NSPR_API(void) _MD_set_last_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_init_thread(PRThread *thread); --NSPR_API(void) _MD_exit_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_init_attached_thread(PRThread *thread); -- --NSPR_API(void) _MD_suspend_thread(PRThread *thread); --NSPR_API(void) _MD_resume_thread(PRThread *thread); --// NSPR_API(void) _MD_suspend_cpu(_PRCPU *cpu); --// NSPR_API(void) _MD_resume_cpu(_PRCPU *cpu); --NSPR_API(void) _MD_begin_suspend_all(void); --NSPR_API(void) _MD_end_suspend_all(void); --NSPR_API(void) _MD_begin_resume_all(void); --NSPR_API(void) _MD_end_resume_all(void); -- --NSPR_API(void *) _MD_get_sp(PRThread *thread); -- --NSPR_API(void) _MD_clean_thread(PRThread *thread); --NSPR_API(void) _MD_create_primordial_user_thread(PRThread *); --NSPR_API(PRThread*) _MD_create_user_thread(PRUint32 stacksize, void (*start)(void *), void *arg); --NSPR_API(void) _MD_init_primordial_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_create_thread(PRThread *thread, void (*start)(void *), PRThreadPriority priority, PRThreadScope scope, PRThreadState state, PRUint32 stackSize); --NSPR_API(void) _MD_yield(void); --NSPR_API(void) _MD_set_priority(struct _MDThread *md, PRThreadPriority newPri); -- --NSPR_API(void) _MD_suspendall(void); --NSPR_API(void) _MD_resumeall(void); -- --NSPR_API(void) _MD_init_context(PRThread *thread, char *top, void (*start) (void), PRBool *status); --NSPR_API(void) _MD_switch_context(PRThread *thread); --NSPR_API(void) _MD_restore_context(PRThread *thread); -- --NSPR_API(PRStatus) _MD_wait(PRThread *, PRIntervalTime timeout); --NSPR_API(PRStatus) _MD_wakeup_waiter(PRThread *); -- --NSPR_API(PRInt32) _MD_setthreadaffinitymask(PRThread *thread, PRUint32 mask ); --NSPR_API(PRInt32) _MD_getthreadaffinitymask(PRThread *thread, PRUint32 *mask); -- --/* Thread Synchronization */ -- --NSPR_API(void) _MD_init_locks(void); --NSPR_API(PRStatus) _MD_new_lock(struct _MDLock *md); --NSPR_API(void) _MD_free_lock(struct _MDLock *md); --NSPR_API(void) _MD_lock(struct _MDLock *md); --NSPR_API(PRIntn) _MD_test_and_lock(struct _MDLock *md); --NSPR_API(void) _MD_unlock(struct _MDLock *md); --NSPR_API(void) _MD_ioq_lock(void); --NSPR_API(void) _MD_ioq_unlock(void); --NSPR_API(void) _MD_new_sem(struct _MDSemaphore *md, PRUintn value); --NSPR_API(void) _MD_destroy_sem(struct _MDSemaphore *md); --NSPR_API(PRStatus) _MD_timed_wait_sem(struct _MDSemaphore *md, PRIntervalTime timeout); --NSPR_API(PRStatus) _MD_wait_sem(struct _MDSemaphore *md); --NSPR_API(void) _MD_post_sem(struct _MDSemaphore *md); --// NSPR_API(PRInt32) _MD_new_cv(struct _MDCVar *md); --// NSPR_API(void) _MD_free_cv(struct _MDCVar *md); --// NSPR_API(void) _MD_wait_cv(struct _MDCVar *mdCVar, struct _MDLock *mdLock, PRIntervalTime timeout); --// NSPR_API(void) _MD_notify_cv(struct _MDCVar *md, struct _MDLock *lock); --// NSPR_API(void) _MD_notifyall_cv(struct _MDCVar *md, struct _MDLock *lock); -- --/* File I/O */ -- --// NSPR_API(void) _MD_init_io(void); --NSPR_API(PRStatus) _MD_open_dir(struct _MDDir *md,const char *name); --NSPR_API(char *) _MD_read_dir(struct _MDDir *md, PRIntn flags); --NSPR_API(PRInt32) _MD_close_dir(struct _MDDir *md); --NSPR_API(void) _MD_make_nonblock(PRFileDesc *fd); --NSPR_API(void) _MD_init_fd_inheritable(PRFileDesc *fd, PRBool imported); --NSPR_API(void) _MD_query_fd_inheritable(PRFileDesc *fd); --NSPR_API(PRInt32) _MD_open(const char *name, PRIntn osflags, PRIntn mode); --NSPR_API(PRInt32) _MD_close_file(PRInt32 osfd); --NSPR_API(PRInt32) _MD_read(PRFileDesc *fd, void *buf, PRInt32 amount); --NSPR_API(PRInt32) _MD_write(PRFileDesc *fd, const void *buf, PRInt32 amount); --NSPR_API(PRInt32) _MD_writev(PRFileDesc *fd, const PRIOVec *iov, PRInt32 iov_size, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_lseek(PRFileDesc *fd, PRInt32 offset, int whence); --NSPR_API(PRInt64) _MD_lseek64(PRFileDesc *fd, PRInt64 offset, int whence); --NSPR_API(PRInt32) _MD_fsync(PRFileDesc *fd); --NSPR_API(PRInt32) _MD_delete(const char *name); --NSPR_API(PRInt32) _MD_getfileinfo(const char *fn, PRFileInfo *info); --NSPR_API(PRInt32) _MD_getfileinfo64(const char *fn, PRFileInfo64 *info); --NSPR_API(PRInt32) _MD_getopenfileinfo(const PRFileDesc *fd, PRFileInfo *info); --NSPR_API(PRInt32) _MD_getopenfileinfo64(const PRFileDesc *fd, PRFileInfo64 *info); --NSPR_API(PRInt32) _MD_rename(const char *from, const char *to); --NSPR_API(PRInt32) _MD_access(const char *name, PRIntn how); --NSPR_API(PRInt32) _MD_stat(const char *name, struct stat *buf); --NSPR_API(PRInt32) _MD_mkdir(const char *name, PRIntn mode); --NSPR_API(PRInt32) _MD_rmdir(const char *name); --NSPR_API(PRInt32) _MD_pr_poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout); -- --/* Network I/O */ --NSPR_API(PRInt32) _MD_close_socket(PRInt32 osfd); --NSPR_API(PRInt32) _MD_connect(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_bind(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen); --NSPR_API(PRInt32) _MD_listen(PRFileDesc *fd, PRIntn backlog); --NSPR_API(PRInt32) _MD_shutdown(PRFileDesc *fd, PRIntn how); --NSPR_API(PRInt32) _MD_recv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_send(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_accept_read(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime timeout); --// NSPR_API(PRInt32) _MD_fast_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout, PRBool fast, _PR_AcceptTimeoutCallback callback, void *callbackArg); --// NSPR_API(PRInt32) _MD_fast_accept_read(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime timeout, PRBool fast, _PR_AcceptTimeoutCallback callback, void *callbackArg); --// NSPR_API(void) _MD_update_accept_context(PRInt32 s, PRInt32 ls); --NSPR_API(PRStatus) _MD_getsockname(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen); --NSPR_API(PRStatus) _MD_getpeername(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen); --NSPR_API(PRStatus) _MD_getsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, char* optval, PRInt32* optlen); --NSPR_API(PRStatus) _MD_setsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, const char* optval, PRInt32 optlen); --NSPR_API(PRInt32) _MD_recvfrom(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_sendto(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_socketpair(int af, int type, int flags, PRInt32 *osfd); --NSPR_API(PRInt32) _MD_socket(int af, int type, int flags); --NSPR_API(PRInt32) _MD_socketavailable(PRFileDesc *fd); -- --// NSPR_API(PRInt32) _MD_get_socket_error(void); --NSPR_API(PRStatus) _MD_gethostname(char *name, PRUint32 namelen); -- --/* Process management */ -- --NSPR_API(PRProcess *) _MD_create_process(const char *path, char *const *argv, char *const *envp, const PRProcessAttr *attr); --NSPR_API(PRStatus) _MD_detach_process(PRProcess *process); --NSPR_API(PRStatus) _MD_wait_process(PRProcess *process, PRInt32 *exitCode); --NSPR_API(PRStatus) _MD_kill_process(PRProcess *process); -- --/* Atomic data operations */ -- --// NSPR_API(void) _MD_init_atomic(void); --// NSPR_API(PRInt32) _MD_atomic_increment(PRInt32 *); --// NSPR_API(PRInt32) _MD_atomic_decrement(PRInt32 *); --// NSPR_API(PRInt32) _MD_atomic_set(PRInt32 *, PRInt32); -- --/* Memory management */ -- --NSPR_API(void) _MD_init_segs(void); --NSPR_API(PRStatus) _MD_alloc_segment(PRSegment *seg, PRUint32 size, void *vaddr); --NSPR_API(void) _MD_free_segment(PRSegment *seg); -- --/* Memory mapped file I/O */ -- --NSPR_API(PRStatus) _MD_create_file_map(PRFileMap *fmap, PRInt64 size); --NSPR_API(PRInt32) _MD_get_mem_map_alignment(void); --NSPR_API(void *) _MD_mem_map(PRFileMap *fmap, PRInt64 offset, PRUint32 len); --NSPR_API(PRStatus) _MD_mem_unmap(void *addr, PRUint32 size); --NSPR_API(PRStatus) _MD_close_file_map(PRFileMap *fmap); -- --/* Time related */ -- --NSPR_API(PRTime) _MD_now(void); --NSPR_API(void) _MD_interval_init(void); --NSPR_API(PRIntervalTime) _MD_get_interval(void); --NSPR_API(PRIntervalTime) _MD_interval_per_sec(void); -- --/* File locking */ -- --NSPR_API(PRStatus) _MD_lockfile(PRInt32 osfd); --NSPR_API(PRStatus) _MD_tlockfile(PRInt32 osfd); --NSPR_API(PRStatus) _MD_unlockfile(PRInt32 osfd); -- - #endif /* _nspr_beos_defs_h___*/ -Index: mozilla/nsprpub/pr/include/private/primpl.h -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/include/private/primpl.h,v -retrieving revision 3.84.2.2 -diff -u -8 -p -r3.84.2.2 primpl.h ---- mozilla/nsprpub/pr/include/private/primpl.h 25 Jul 2007 07:08:28 -0000 3.84.2.2 -+++ mozilla/nsprpub/pr/include/private/primpl.h 9 Feb 2009 04:04:34 -0000 -@@ -45,20 +45,16 @@ - * This macro causes chaos if signal.h gets included before pthread.h. - * To be safe, we include pthread.h first. - */ - - #if defined(_PR_PTHREADS) - #include - #endif - --#if defined(_PR_BTHREADS) --#include --#endif -- - #ifdef WINNT - /* Need to force service-pack 3 extensions to be defined by - ** setting _WIN32_WINNT to NT 4.0 for winsock.h, winbase.h, winnt.h. - */ - #ifndef _WIN32_WINNT - #define _WIN32_WINNT 0x0400 - #elif (_WIN32_WINNT < 0x0400) - #undef _WIN32_WINNT -@@ -223,16 +219,30 @@ typedef struct PTDebug - } PTDebug; - - #endif /* defined(DEBUG) */ - - NSPR_API(void) PT_FPrintStats(PRFileDesc *fd, const char *msg); - - #else /* defined(_PR_PTHREADS) */ - -+#ifdef _PR_BTHREADS -+#define _MD_GET_ATTACHED_THREAD() (_PR_MD_CURRENT_THREAD()) -+ -+#define _PR_IS_NATIVE_THREAD(thread) 1 -+#define _PR_IS_NATIVE_THREAD_SUPPORTED() 1 -+/* -+extern PRInt32 _PR_MD_WRITE(PRFileDesc *fd, const void *buf, PRInt32 amount); -+#define _PR_MD_WRITE _MD_WRITE -+*/ -+NSPR_API(PRThread*) _PR_MD_CURRENT_THREAD(void); -+#define _PR_MD_CURRENT_THREAD _MD_CURRENT_THREAD -+ -+#else /* defined(_PR_BTHREADS) */ -+ - NSPR_API(void) PT_FPrintStats(PRFileDesc *fd, const char *msg); - - /* - ** This section is contains those parts needed to implement NSPR on - ** platforms in general. One would assume that the pthreads implementation - ** included lots of the same types, at least conceptually. - */ - -@@ -1296,16 +1306,17 @@ extern PRStatus _PR_MD_SET_FD_INHERITABL - PR_SetError( PR_PENDING_INTERRUPT_ERROR, 0); \ - } else { \ - PR_SetError(PR_IO_TIMEOUT_ERROR, 0); \ - } - - extern void *_PR_MD_GET_SP(PRThread *thread); - #define _PR_MD_GET_SP _MD_GET_SP - -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - - /************************************************************************/ - /************************************************************************* - ** The remainder of the definitions are shared by pthreads and the classic - ** NSPR code. These too may be conditionalized. - *************************************************************************/ - /************************************************************************/ -@@ -1550,17 +1561,20 @@ struct PRThreadStack { - char *stackTop; /* top of stack from C's point of view */ - PRUint32 stackSize; /* size of usable portion of the stack */ - - PRSegment *seg; - PRThread* thr; /* back pointer to thread owning this stack */ - - #if defined(_PR_PTHREADS) - #else /* defined(_PR_PTHREADS) */ -+#if defined(_PR_BTHREADS) -+#else /* defined(_PR_BTHREADS) */ - _MDThreadStack md; -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - }; - - extern void _PR_DestroyThreadPrivate(PRThread*); - - typedef void (PR_CALLBACK *_PRStartFn)(void *); - - struct PRThread { -@@ -1603,19 +1617,16 @@ struct PRThread { - PRUint32 syspoll_count; /* number of elements in syspoll_list */ - #if defined(_PR_POLL_WITH_SELECT) - int *selectfd_list; /* Unix fd's that PR_Poll selects on */ - PRUint32 selectfd_count; /* number of elements in selectfd_list */ - #endif - #elif defined(_PR_BTHREADS) - PRUint32 flags; - _MDThread md; -- PRBool io_pending; -- PRInt32 io_fd; -- PRBool io_suspended; - #else /* not pthreads or Be threads */ - _MDLock threadLock; /* Lock to protect thread state variables. - * Protects the following fields: - * state - * priority - * links - * wait - * cpu -@@ -1689,17 +1700,19 @@ struct PRProcessAttr { - - struct PRProcess { - _MDProcess md; - }; - - struct PRFileMap { - PRFileDesc *fd; - PRFileMapProtect prot; -+#if !defined(XP_BEOS) - _MDFileMap md; -+#endif /* !defined(XP_BEOS) */ - }; - - /************************************************************************/ - - /* - ** File descriptors of the NSPR layer can be in one of the - ** following states (stored in the 'state' field of struct - ** PRFilePrivate): -@@ -1760,18 +1773,20 @@ struct PRDir { - #ifdef MOZ_UNICODE - struct PRDirUTF16 { - PRDirEntry d; - _MDDirUTF16 md; - }; - #endif /* MOZ_UNICODE */ - - extern void _PR_InitSegs(void); -+#if !defined(_PR_BTHREADS) - extern void _PR_InitStacks(void); - extern void _PR_InitTPD(void); -+#endif /* !defined(_PR_BTHREADS) */ - extern void _PR_InitMem(void); - extern void _PR_InitEnv(void); - extern void _PR_InitCMon(void); - extern void _PR_InitIO(void); - extern void _PR_InitLog(void); - extern void _PR_InitNet(void); - extern void _PR_InitClock(void); - extern void _PR_InitLinker(void); -@@ -1812,17 +1827,20 @@ extern PRBool _PR_Obsolete(const char *o - /************************************************************************/ - - struct PRSegment { - void *vaddr; - PRUint32 size; - PRUintn flags; - #if defined(_PR_PTHREADS) - #else /* defined(_PR_PTHREADS) */ -+#if defined(_PR_BTHREADS) -+#else /* defined(_PR_BTHREADS) */ - _MDSegment md; -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - }; - - /* PRSegment.flags */ - #define _PR_SEG_VM 0x1 - - /************************************************************************/ - -@@ -2109,28 +2127,28 @@ extern void _PR_MD_QUERY_FD_INHERITABLE( - /* --- PR_GetRandomNoise() related things --- */ - - extern PRSize _PR_MD_GetRandomNoise( void *buf, PRSize size ); - #define _PR_MD_GET_RANDOM_NOISE(buf,size) _PR_MD_GetRandomNoise((buf),(size)) - extern PRSize _pr_CopyLowBits( void *dest, PRSize dstlen, void *src, PRSize srclen ); - - /* end PR_GetRandomNoise() related */ - --#ifdef XP_BEOS -+#if defined(XP_BEOS) && !defined(BONE_VERSION) - - extern PRLock *_connectLock; - - typedef struct _ConnectListNode { - PRInt32 osfd; - PRNetAddr addr; - PRUint32 addrlen; - PRIntervalTime timeout; - } ConnectListNode; - - extern ConnectListNode connectList[64]; - - extern PRUint32 connectCount; - --#endif /* XP_BEOS */ -+#endif /* XP_BEOS && !BONE_VERSION */ - - PR_END_EXTERN_C - - #endif /* primpl_h___ */ -Index: mozilla/nsprpub/pr/src/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/Makefile.in,v -retrieving revision 1.40.2.2 -diff -u -8 -p -r1.40.2.2 Makefile.in ---- mozilla/nsprpub/pr/src/Makefile.in 19 Oct 2006 00:39:28 -0000 1.40.2.2 -+++ mozilla/nsprpub/pr/src/Makefile.in 9 Feb 2009 04:04:35 -0000 -@@ -270,36 +270,33 @@ endif - - ifdef USE_PTHREADS - OBJS += \ - pthreads/$(OBJDIR)/ptsynch.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptio.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptthread.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptmisc.$(OBJ_SUFFIX) - else -+ifndef USE_BTHREADS - OBJS += \ - io/$(OBJDIR)/prdir.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prfile.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prio.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prsocket.$(OBJ_SUFFIX) \ -- misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) -- --ifndef USE_BTHREADS --OBJS += \ -- threads/$(OBJDIR)/prcthr.$(OBJ_SUFFIX) \ -- threads/$(OBJDIR)/prdump.$(OBJ_SUFFIX) \ -- threads/$(OBJDIR)/prmon.$(OBJ_SUFFIX) \ -- threads/$(OBJDIR)/prsem.$(OBJ_SUFFIX) \ -- threads/combined/$(OBJDIR)/prucpu.$(OBJ_SUFFIX) \ -- threads/combined/$(OBJDIR)/prucv.$(OBJ_SUFFIX) \ -- threads/combined/$(OBJDIR)/prulock.$(OBJ_SUFFIX) \ -- threads/combined/$(OBJDIR)/prustack.$(OBJ_SUFFIX) \ -- threads/combined/$(OBJDIR)/pruthr.$(OBJ_SUFFIX) -+ misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) \ -+ threads/$(OBJDIR)/prcthr.$(OBJ_SUFFIX) \ -+ threads/$(OBJDIR)/prdump.$(OBJ_SUFFIX) \ -+ threads/$(OBJDIR)/prmon.$(OBJ_SUFFIX) \ -+ threads/$(OBJDIR)/prsem.$(OBJ_SUFFIX) \ -+ threads/combined/$(OBJDIR)/prucpu.$(OBJ_SUFFIX) \ -+ threads/combined/$(OBJDIR)/prucv.$(OBJ_SUFFIX) \ -+ threads/combined/$(OBJDIR)/prulock.$(OBJ_SUFFIX) \ -+ threads/combined/$(OBJDIR)/prustack.$(OBJ_SUFFIX) \ -+ threads/combined/$(OBJDIR)/pruthr.$(OBJ_SUFFIX) - endif -- - endif - - ifeq ($(USE_CPLUS), 1) - OBJS += \ - cplus/$(OBJDIR)/rcbase.$(OBJ_SUFFIX) \ - cplus/$(OBJDIR)/rccv.$(OBJ_SUFFIX) \ - cplus/$(OBJDIR)/rcfileio.$(OBJ_SUFFIX) \ - cplus/$(OBJDIR)/rcinrval.$(OBJ_SUFFIX) \ -@@ -397,19 +394,23 @@ endif - - export:: $(TARGETS) - $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) - ifdef SHARED_LIBRARY - ifeq ($(OS_ARCH),HP-UX) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) - $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)/lib -+else - $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) - endif - endif -+endif - ifeq ($(MOZ_BITS),16) - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/lib - $(INSTALL) -m 444 $(TARGETS) $(MOZ_DIST)/bin - endif - - ifeq ($(BUILD_AIX_RTL_LIBC),1) - $(AIX_RTL_LIBC): /usr/ccs/lib/libc.a - rtl_enable -o $@ $< -Index: mozilla/nsprpub/pr/src/bthreads/bsrcs.mk -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/bsrcs.mk,v -retrieving revision 3.6 -diff -u -8 -p -r3.6 bsrcs.mk ---- mozilla/nsprpub/pr/src/bthreads/bsrcs.mk 25 Apr 2004 15:00:57 -0000 3.6 -+++ mozilla/nsprpub/pr/src/bthreads/bsrcs.mk 9 Feb 2009 04:04:35 -0000 -@@ -15,16 +15,17 @@ - # The Original Code is the Netscape Portable Runtime (NSPR). - # - # The Initial Developer of the Original Code is - # Netscape Communications Corporation. - # Portions created by the Initial Developer are Copyright (C) 1998-2000 - # the Initial Developer. All Rights Reserved. - # - # Contributor(s): -+# Fredrik Holmqvist - # - # Alternatively, the contents of this file may be used under the terms of - # either the GNU General Public License Version 2 or later (the "GPL"), or - # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - # in which case the provisions of the GPL or the LGPL are applicable instead - # of those above. If you wish to allow use of your version of this file only - # under the terms of either the GPL or the LGPL, and not to allow others to - # use your version of this file under the terms of the MPL, indicate your -@@ -41,9 +42,11 @@ - - BTCSRCS = \ - btthread.c \ - btlocks.c \ - btcvar.c \ - btmon.c \ - btsem.c \ - btmisc.c \ -+ btfile.c \ -+ btio.c \ - $(NULL) -Index: mozilla/nsprpub/pr/src/bthreads/btcvar.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btcvar.c,v -retrieving revision 3.9 -diff -u -8 -p -r3.9 btcvar.c ---- mozilla/nsprpub/pr/src/bthreads/btcvar.c 23 Feb 2005 17:43:13 -0000 3.9 -+++ mozilla/nsprpub/pr/src/bthreads/btcvar.c 9 Feb 2009 04:04:36 -0000 -@@ -15,33 +15,32 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -- * -+ * Fredrik Holmqvist -+ * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - --#include -- - #include "primpl.h" - - /* - ** Create a new condition variable. - ** - ** "lock" is the lock used to protect the condition variable. - ** - ** Condition variables are synchronization objects that threads can use -@@ -52,25 +51,25 @@ - */ - PR_IMPLEMENT(PRCondVar*) - PR_NewCondVar (PRLock *lock) - { - PRCondVar *cv = PR_NEW( PRCondVar ); - PR_ASSERT( NULL != lock ); - if( NULL != cv ) - { -- cv->lock = lock; -- cv->sem = create_sem(0, "CVSem"); -- cv->handshakeSem = create_sem(0, "CVHandshake"); -- cv->signalSem = create_sem( 0, "CVSignal"); -- cv->signalBenCount = 0; -- cv->ns = cv->nw = 0; -- PR_ASSERT( cv->sem >= B_NO_ERROR ); -- PR_ASSERT( cv->handshakeSem >= B_NO_ERROR ); -- PR_ASSERT( cv->signalSem >= B_NO_ERROR ); -+ cv->lock = lock; -+ cv->sem = create_sem(0, "CVSem"); -+ cv->handshakeSem = create_sem(0, "CVHandshake"); -+ cv->signalSem = create_sem( 0, "CVSignal"); -+ cv->signalBenCount = 0; -+ cv->ns = cv->nw = 0; -+ PR_ASSERT( cv->sem >= B_NO_ERROR ); -+ PR_ASSERT( cv->handshakeSem >= B_NO_ERROR ); -+ PR_ASSERT( cv->signalSem >= B_NO_ERROR ); - } - return cv; - } /* PR_NewCondVar */ - - /* - ** Destroy a condition variable. There must be no thread - ** waiting on the condvar. The caller is responsible for guaranteeing - ** that the condvar is no longer in use. -@@ -118,69 +117,69 @@ PR_IMPLEMENT(void) - ** Returns PR_FAILURE if the caller has not locked the lock associated - ** with the condition variable or the thread was interrupted (PR_Interrupt()). - ** The particular reason can be extracted with PR_GetError(). - */ - PR_IMPLEMENT(PRStatus) - PR_WaitCondVar (PRCondVar *cvar, PRIntervalTime timeout) - { - status_t err; -- if( timeout == PR_INTERVAL_NO_WAIT ) -+ if( timeout == PR_INTERVAL_NO_WAIT ) - { - PR_Unlock( cvar->lock ); - PR_Lock( cvar->lock ); - return PR_SUCCESS; - } - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount ) > 1 ) - { -- if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) -+ if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - cvar->nw += 1; -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - PR_Unlock( cvar->lock ); -- if( timeout==PR_INTERVAL_NO_TIMEOUT ) -+ if( timeout==PR_INTERVAL_NO_TIMEOUT ) - { -- err = acquire_sem(cvar->sem); -- } -- else -+ err = acquire_sem(cvar->sem); -+ } -+ else - { -- err = acquire_sem_etc(cvar->sem, 1, B_RELATIVE_TIMEOUT, PR_IntervalToMicroseconds(timeout) ); -+ err = acquire_sem_etc(cvar->sem, 1, B_RELATIVE_TIMEOUT, PR_IntervalToMicroseconds(timeout) ); - } - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount ) > 1 ) - { - while (acquire_sem(cvar->signalSem) == B_INTERRUPTED); - } - - if (cvar->ns > 0) - { - release_sem_etc(cvar->handshakeSem, 1, B_DO_NOT_RESCHEDULE); - cvar->ns -= 1; - } - cvar->nw -= 1; -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - PR_Lock( cvar->lock ); -- if(err!=B_NO_ERROR) -+ if(err==B_NO_ERROR || (err == B_TIMED_OUT && timeout!=PR_INTERVAL_NO_TIMEOUT)) - { -- return PR_FAILURE; -+ return PR_SUCCESS; - } -- return PR_SUCCESS; -+ return PR_FAILURE; - } - - /* - ** Notify ONE thread that is currently waiting on 'cvar'. Which thread is - ** dependent on the implementation of the runtime. Common sense would dictate - ** that all threads waiting on a single condition have identical semantics, - ** therefore which one gets notified is not significant. - ** -@@ -189,88 +188,88 @@ PR_IMPLEMENT(PRStatus) - ** notify is called. - ** - ** Returns PR_FAILURE if the caller has not locked the lock associated - ** with the condition variable. - */ - PR_IMPLEMENT(PRStatus) - PR_NotifyCondVar (PRCondVar *cvar) - { -- status_t err ; -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ status_t err; -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount) > 1 ) - { -- if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) -+ if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - if (cvar->nw > cvar->ns) - { - cvar->ns += 1; - release_sem_etc(cvar->sem, 1, B_DO_NOT_RESCHEDULE); -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - -- while (acquire_sem(cvar->handshakeSem) == B_INTERRUPTED) -+ while (acquire_sem(cvar->handshakeSem) == B_INTERRUPTED) - { -- err = B_INTERRUPTED; -+ err = B_INTERRUPTED; - } - } - else - { -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - } -- return PR_SUCCESS; -+ return PR_SUCCESS; - } - - /* - ** Notify all of the threads waiting on the condition variable. The order - ** that the threads are notified is indeterminant. The lock that protects - ** the condition must be held. - ** - ** Returns PR_FAILURE if the caller has not locked the lock associated - ** with the condition variable. - */ - PR_IMPLEMENT(PRStatus) - PR_NotifyAllCondVar (PRCondVar *cvar) - { - int32 handshakes; - status_t err = B_OK; - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount) > 1 ) - { -- if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) -+ if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - - if (cvar->nw > cvar->ns) - { - handshakes = cvar->nw - cvar->ns; -- cvar->ns = cvar->nw; -- release_sem_etc(cvar->sem, handshakes, B_DO_NOT_RESCHEDULE); -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ cvar->ns = cvar->nw; -+ release_sem_etc(cvar->sem, handshakes, B_DO_NOT_RESCHEDULE); -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - -- while (acquire_sem_etc(cvar->handshakeSem, handshakes, 0, 0) == B_INTERRUPTED) -+ while (acquire_sem_etc(cvar->handshakeSem, handshakes, 0, 0) == B_INTERRUPTED) - { -- err = B_INTERRUPTED; -+ err = B_INTERRUPTED; - } - } - else - { -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - } - return PR_SUCCESS; - } -Index: mozilla/nsprpub/pr/src/bthreads/btfile.c -=================================================================== -RCS file: mozilla/nsprpub/pr/src/bthreads/btfile.c -diff -N mozilla/nsprpub/pr/src/bthreads/btfile.c ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ mozilla/nsprpub/pr/src/bthreads/btfile.c 5 Nov 2008 20:51:44 -0000 -@@ -0,0 +1,994 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is the Netscape Portable Runtime (NSPR). -+ * -+ * The Initial Developer of the Original Code is -+ * Netscape Communications Corporation. -+ * Portions created by the Initial Developer are Copyright (C) 1998-2000 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * Roy Yokoyama -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "primpl.h" -+ -+static PRLock *_pr_flock_lock; /* For PR_LockFile() etc. */ -+static PRCondVar *_pr_flock_cv; /* For PR_LockFile() etc. */ -+ -+PRErrorCode -+map_default_error(int err) -+{ -+ switch (err) { -+ case EACCES: -+ return PR_NO_ACCESS_RIGHTS_ERROR; -+ case EADDRINUSE: -+ return PR_ADDRESS_IN_USE_ERROR; -+ case EADDRNOTAVAIL: -+ return PR_ADDRESS_NOT_AVAILABLE_ERROR; -+ case EAFNOSUPPORT: -+ return PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ /*Same as EWOULDBLOCK*/ -+ case EAGAIN: -+ return PR_WOULD_BLOCK_ERROR; -+#if EALREADY != EBUSY -+ case EALREADY: -+ return PR_ALREADY_INITIATED_ERROR; -+#endif -+ case EBADF: -+ return PR_BAD_DESCRIPTOR_ERROR; -+ case EBUSY: -+ return PR_FILESYSTEM_MOUNTED_ERROR; -+ case ECONNABORTED: -+ return PR_CONNECT_ABORTED_ERROR; -+ case ECONNREFUSED: -+ return PR_CONNECT_REFUSED_ERROR; -+ case EDEADLK: -+ return PR_DEADLOCK_ERROR; -+ case EEXIST: -+ return PR_FILE_EXISTS_ERROR; -+ case EFAULT: -+ return PR_ACCESS_FAULT_ERROR; -+ case EFBIG: -+ return PR_FILE_TOO_BIG_ERROR; -+ case EHOSTUNREACH: -+ return PR_HOST_UNREACHABLE_ERROR; -+ case EINPROGRESS: -+ return PR_IN_PROGRESS_ERROR; -+ case EINTR: -+ return PR_PENDING_INTERRUPT_ERROR; -+ case EINVAL: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case EIO: -+ return PR_IO_ERROR; -+ case EISCONN: -+ return PR_IS_CONNECTED_ERROR; -+ case EISDIR: -+ return PR_IS_DIRECTORY_ERROR; -+ case ELOOP: -+ return PR_LOOP_ERROR; -+ case EMFILE: -+ return PR_PROC_DESC_TABLE_FULL_ERROR; -+ case EMLINK: -+ return PR_MAX_DIRECTORY_ENTRIES_ERROR; -+ case EMSGSIZE: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case ENAMETOOLONG: -+ return PR_NAME_TOO_LONG_ERROR; -+ case ENETUNREACH: -+ return PR_NETWORK_UNREACHABLE_ERROR; -+ case ENFILE: -+ return PR_SYS_DESC_TABLE_FULL_ERROR; -+ case ENOBUFS: -+ return PR_INSUFFICIENT_RESOURCES_ERROR; -+ case ENODEV: -+ case ENOENT: -+ return PR_FILE_NOT_FOUND_ERROR; -+ case ENOLCK: -+ return PR_FILE_IS_LOCKED_ERROR; -+#if 0 -+ case ENOLINK: -+ return PR_REMOTE_FILE_ERROR; -+#endif -+ case ENOMEM: -+ return PR_OUT_OF_MEMORY_ERROR; -+ case ENOPROTOOPT: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case ENOSPC: -+ return PR_NO_DEVICE_SPACE_ERROR; -+ case ENOTCONN: -+ return PR_NOT_CONNECTED_ERROR; -+ case ENOTDIR: -+ return PR_NOT_DIRECTORY_ERROR; -+ case ENOTSOCK: -+ return PR_NOT_SOCKET_ERROR; -+ case ENXIO: -+ return PR_FILE_NOT_FOUND_ERROR; -+ case EOPNOTSUPP: -+ return PR_NOT_TCP_SOCKET_ERROR; -+ case EOVERFLOW: -+ return PR_BUFFER_OVERFLOW_ERROR; -+ case EPERM: -+ return PR_NO_ACCESS_RIGHTS_ERROR; -+ case EPIPE: -+ return PR_CONNECT_RESET_ERROR; -+ case EPROTONOSUPPORT: -+ return PR_PROTOCOL_NOT_SUPPORTED_ERROR; -+ case EPROTOTYPE: -+ return PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ case ERANGE: -+ return PR_INVALID_METHOD_ERROR; -+ case EROFS: -+ return PR_READ_ONLY_FILESYSTEM_ERROR; -+ case ESPIPE: -+ return PR_INVALID_METHOD_ERROR; -+ case ETIMEDOUT: -+ return PR_IO_TIMEOUT_ERROR; -+ case EXDEV: -+ return PR_NOT_SAME_DEVICE_ERROR; -+ default: -+ return PR_UNKNOWN_ERROR; -+ } -+} -+ -+ -+inline void -+set_open_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EAGAIN: -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ case EBUSY: -+ prError = PR_IO_ERROR; -+ break; -+ case ENODEV: -+ prError = PR_FILE_NOT_FOUND_ERROR; -+ break; -+ case EOVERFLOW: -+ prError = PR_FILE_TOO_BIG_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_rename_error(int err) -+{ -+ PR_SetError(err == EEXIST ? PR_DIRECTORY_NOT_EMPTY_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_unlink_error(int err) -+{ -+ PR_SetError(err == EPERM ? PR_IS_DIRECTORY_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_opendir_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_closedir_error(int err) -+{ -+ PR_SetError( err == EINVAL ? PR_BAD_DESCRIPTOR_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_readdir_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case 0: -+ case ENOENT: -+ prError = PR_NO_MORE_FILES_ERROR; -+ break; -+ case EOVERFLOW: -+ case EINVAL: -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_mkdir_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_rmdir_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case ENOTEMPTY: -+ case EEXIST: -+ case EINVAL: -+ prError = PR_DIRECTORY_NOT_EMPTY_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_close_error(int err) -+{ -+ PR_SetError( err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_read_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_INVALID_ARGUMENT_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_write_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_INVALID_ARGUMENT_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_lseek_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_fsync_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_fstat_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+/* TODO: using uint8 instead of bool due to code that uses bool as var name in hard to change places -+ therefore we had to undef it. Or we need to change Haiku's headers around so we can include -+ everything we need except the bool decl. */ -+PRFileDesc * bt_CreateFileDesc(PRIntn osfd, const PRIOMethods * methods, _PRTriStateBool inheritable, uint8 nonblocking) { -+ const int blocking = 1; -+ PRFileDesc *fd = _PR_Getfd(); -+ if (fd == NULL) -+ { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return NULL; -+ } -+ fd->secret->md.osfd = osfd; -+ fd->secret->state = _PR_FILEDESC_OPEN; -+ fd->secret->inheritable = inheritable; -+ fd->methods = methods; -+ if (nonblocking) -+ setsockopt(osfd, SOL_SOCKET, SO_NONBLOCK, &blocking, sizeof(blocking)); -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_GetSpecialFD(PRSpecialFD osfd) -+{ -+ PR_ASSERT(osfd >= PR_StandardInput && osfd <= PR_StandardError); -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ switch (osfd) -+ { -+ case PR_StandardInput: return _pr_stdin; -+ case PR_StandardOutput: return _pr_stdout; -+ case PR_StandardError: return _pr_stderr; -+ default: -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ } -+ return NULL; -+} /* PR_GetSpecialFD */ -+ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_Open(const char *name, PRIntn flags, PRIntn mode) -+{ -+ return PR_OpenFile(name, flags, mode); -+} /* PR_Open */ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_OpenFile(const char *name, PRIntn flags, PRIntn mode) -+{ -+ PRFileDesc *fd = NULL; -+ PRInt32 osflags; -+ PRInt32 osfd, err; -+ -+ if (flags & PR_RDWR) { -+ osflags = O_RDWR; -+ } else if (flags & PR_WRONLY) { -+ osflags = O_WRONLY; -+ } else { -+ osflags = O_RDONLY; -+ } -+ -+ if (flags & PR_EXCL) -+ osflags |= O_EXCL; -+ if (flags & PR_APPEND) -+ osflags |= O_APPEND; -+ if (flags & PR_TRUNCATE) -+ osflags |= O_TRUNC; -+ if (flags & PR_SYNC) { -+/* Ummmm. BeOS doesn't appear to -+ support sync in any way shape or -+ form. */ -+ return PR_NOT_IMPLEMENTED_ERROR; -+ } -+ -+ if (flags & PR_CREATE_FILE) -+ { -+ osflags |= O_CREAT; -+ } -+ -+ osfd = open(name, osflags, mode); -+ if (osfd < 0) { -+ err = _MD_ERRNO(); -+ set_open_error(err); -+ } -+ -+ if(osfd>=0) { -+ fd = bt_CreateFileDesc(osfd, PR_GetFileMethods(), _PR_TRI_TRUE, false); -+ if (fd == NULL) close(osfd); /* $$$ whoops! this is bad $$$ */ -+ } -+ return fd; -+} /* PR_OpenFile */ -+ -+/* -+** Import an existing OS file to NSPR -+*/ -+PR_IMPLEMENT(PRFileDesc*) PR_ImportFile(PRInt32 osfd) -+{ -+ PRFileDesc *fd = NULL; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ fd = bt_CreateFileDesc(osfd, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ if (NULL == fd) close(osfd); -+ return fd; -+} -+ -+/* -+** Import an existing OS pipe to NSPR -+*/ -+PR_IMPLEMENT(PRFileDesc*) PR_ImportPipe(PRInt32 osfd) -+{ -+ PRFileDesc *fd = NULL; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetPipeMethods(), _PR_TRI_UNKNOWN, true); -+ -+ if (NULL == fd) close(osfd); -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_Rename(const char *from, const char *to) -+{ -+ PRInt32 rv = -1, err; -+ -+ if (0 == access(to, F_OK)) -+ PR_SetError(PR_FILE_EXISTS_ERROR, 0); -+ else -+ { -+ rv = rename(from, to); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_rename_error(err); -+ } -+ } -+ if (rv < 0) { -+ return PR_FAILURE; -+ } else { -+ return PR_SUCCESS; -+ } -+} -+ -+PR_IMPLEMENT(PRStatus) PR_Delete(const char *name) -+{ -+ PRInt32 rv, err; -+ -+ rv = unlink(name); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_unlink_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRDir*) PR_OpenDir(const char *name) -+{ -+ PRDir *dir; -+ PRInt32 err; -+ -+ dir = PR_NEW(PRDir); -+ if (dir) { -+ dir->md.d = opendir(name); -+ if (NULL == dir->md.d) { -+ err = _MD_ERRNO(); -+ set_opendir_error(err); -+ PR_DELETE(dir); -+ return NULL; -+ } -+ } else { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ } -+ return dir; -+} -+ -+PR_IMPLEMENT(PRDirEntry*) PR_ReadDir(PRDir *dir, PRDirFlags flags) -+{ -+ PRInt32 err; -+ struct dirent *de; -+ for (;;) { -+ /* -+ * XXX: readdir() is not MT-safe -+ */ -+ _MD_ERRNO() = 0; -+ de = readdir(dir->md.d); -+ -+ if (!de) { -+ err = _MD_ERRNO(); -+ set_readdir_error(err); -+ return 0; -+ } -+ -+ if ((flags & PR_SKIP_DOT) && -+ (de->d_name[0] == '.') && (de->d_name[1] == 0)) -+ continue; -+ -+ if ((flags & PR_SKIP_DOT_DOT) && -+ (de->d_name[0] == '.') && (de->d_name[1] == '.') && -+ (de->d_name[2] == 0)) -+ continue; -+ -+ if ((flags & PR_SKIP_HIDDEN) && (de->d_name[1] == '.')) -+ continue; -+ -+ break; -+ } -+ -+ dir->d.name = de->d_name; -+ return de->d_name ? &dir->d : NULL; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_CloseDir(PRDir *dir) -+{ -+ PRInt32 rv, err; -+ -+ if (dir && dir->md.d) { -+ rv = closedir(dir->md.d); -+ PR_DELETE(dir); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_closedir_error(err); -+ return PR_FAILURE; -+ } -+ } -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_MkDir(const char *name, PRIntn mode) -+{ -+ status_t rv; -+ int err; -+ -+ rv = mkdir(name, mode); -+ -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_mkdir_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_MakeDir(const char *name, PRIntn mode) -+{ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ return PR_MkDir(name, mode); -+} -+ -+PR_IMPLEMENT(PRStatus) PR_RmDir(const char *name) -+{ -+ PRInt32 rv, err; -+ -+ rv = rmdir(name); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_rmdir_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRInt32) -+PR_FileDesc2NativeHandle(PRFileDesc *fd) -+{ -+ if (fd) { -+ fd = PR_GetIdentitiesLayer(fd, PR_NSPR_IO_LAYER); -+ } -+ if (!fd) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ -+ return fd->secret->md.osfd; -+} -+ -+#ifdef MOZ_UNICODE -+/* -+ * UTF16 Interface -+ */ -+PR_IMPLEMENT(PRDirUTF16*) PR_OpenDirUTF16(const PRUnichar *name) -+{ -+ PRDirUTF16 *dir; -+ PRStatus sts; -+ -+ dir = PR_NEW(PRDirUTF16); -+ if (dir) { -+ sts = _PR_MD_OPEN_DIR_UTF16(&dir->md,name); -+ if (sts != PR_SUCCESS) { -+ PR_DELETE(dir); -+ return NULL; -+ } -+ } else { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ } -+ return dir; -+} -+ -+PR_IMPLEMENT(PRDirEntryUTF16*) PR_ReadDirUTF16(PRDirUTF16 *dir, PRDirFlags flags) -+{ -+ /* -+ * _MD_READ_DIR_UTF16 return a PRUnichar* to the name; allocation in -+ * machine-dependent code -+ */ -+ PRUnichar* name = _PR_MD_READ_DIR_UTF16(&dir->md, flags); -+ dir->d.name = name; -+ return name ? &dir->d : NULL; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_CloseDirUTF16(PRDirUTF16 *dir) -+{ -+ PRInt32 rv; -+ -+ if (dir) { -+ rv = _PR_MD_CLOSE_DIR_UTF16(&dir->md); -+ PR_DELETE(dir); -+ if (rv < 0) -+ return PR_FAILURE; -+ else -+ return PR_SUCCESS; -+ } -+ return PR_SUCCESS; -+} -+ -+#endif /* MOZ_UNICODE */ -+ -+ -+static PRStatus PR_CALLBACK FileClose(PRFileDesc *fd) -+{ -+ PRInt32 err; -+ if (!fd || !fd->secret -+ || (fd->secret->state != _PR_FILEDESC_OPEN -+ && fd->secret->state != _PR_FILEDESC_CLOSED)) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (fd->secret->state == _PR_FILEDESC_OPEN) { -+ if (close(fd->secret->md.osfd) < 0) { -+ err = _MD_ERRNO(); -+ set_close_error(err); -+ return PR_FAILURE; -+ } -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ } -+ PR_ASSERT(fd); -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} -+ -+static PRInt32 PR_CALLBACK FileRead(PRFileDesc *fd, void *buf, PRInt32 amount) -+{ -+ PRInt32 rv,err = 0; -+ -+ rv = read(fd->secret->md.osfd, buf, amount); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_read_error(err); -+ PR_ASSERT(rv == -1); -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("read -> %d", rv)); -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK FileWrite(PRFileDesc *fd, const void *buf, PRInt32 amount) -+{ -+ PRInt32 rv,err = 0; -+ PRInt32 temp, count; -+ -+ count = 0; -+ while (amount > 0) { -+ temp = write(fd->secret->md.osfd, buf, amount); -+ if (temp < 0) { -+ err = _MD_ERRNO(); -+ set_write_error(err); -+ count = -1; -+ break; -+ } -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ amount -= temp; -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("write -> %d", count)); -+ return count; -+} -+ -+static PRInt32 PR_CALLBACK FileAvailable(PRFileDesc *fd) -+{ -+ PRInt32 result, cur, end, err; -+ -+ cur = lseek(fd->secret->md.osfd, 0, PR_SEEK_CUR); -+ -+ if (cur >= 0) -+ end = lseek(fd->secret->md.osfd, 0, PR_SEEK_END); -+ -+ if ((cur < 0) || (end < 0)) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ return -1; -+ } -+ -+ result = end - cur; -+ lseek(fd->secret->md.osfd, cur, PR_SEEK_SET); -+ -+ return result; -+} -+ -+static PRInt64 PR_CALLBACK FileAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 result, cur, end; -+ PRInt64 minus_one; -+ PRInt32 err; -+ -+ cur = lseek(fd->secret->md.osfd, LL_ZERO, PR_SEEK_CUR); -+ -+ if (LL_GE_ZERO(cur)) -+ end = lseek(fd->secret->md.osfd, LL_ZERO, PR_SEEK_END); -+ -+ if (!LL_GE_ZERO(cur) || !LL_GE_ZERO(end)) { -+ LL_I2L(minus_one, -1); -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ return minus_one; -+ } -+ LL_SUB(result, end, cur); -+ lseek(fd->secret->md.osfd, cur, PR_SEEK_SET); -+ return result; -+} -+ -+static PRStatus PR_CALLBACK FileSync(PRFileDesc *fd) -+{ -+ PRInt32 result, err; -+ result = fsync(fd->secret->md.osfd); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_fsync_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PROffset32 PR_CALLBACK FileSeek(PRFileDesc *fd, PROffset32 offset, PRSeekWhence whence) -+{ -+ PROffset32 result; -+ PRInt32 err; -+ result = lseek(fd->secret->md.osfd, offset, whence); -+ if(result<0) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ } -+ return result; -+} -+ -+static PROffset64 PR_CALLBACK FileSeek64(PRFileDesc *fd, PROffset64 offset, PRSeekWhence whence) -+{ -+ PROffset64 result; -+ PRInt32 err; -+ -+ result = lseek(fd->secret->md.osfd, offset, whence); -+ if(!LL_GE_ZERO(result)) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ } -+ return result; -+} -+ -+static PRStatus PR_CALLBACK FileGetInfo(PRFileDesc *fd, PRFileInfo *info) -+{ -+ struct stat sb; -+ PRInt64 s, s2us; -+ PRInt32 rv, err; -+ -+ rv = fstat(fd->secret->md.osfd, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_fstat_error(err); -+ return PR_FAILURE; -+ } -+ if(info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE ; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ /* Use lower 32 bits of file size */ -+ info->size = ( sb.st_size & 0xffffffff); -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK FileGetInfo64(PRFileDesc *fd, PRFileInfo64 *info) -+{ -+ struct stat sb; -+ PRInt64 s, s2us; -+ PRInt32 rv, err; -+ -+ rv = fstat(fd->secret->md.osfd, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_fstat_error(err); -+ return PR_FAILURE; -+ } -+ if(info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE ; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ info->size = sb.st_size; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRInt16 PR_CALLBACK FilePoll( -+ PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags) -+{ -+ *out_flags = 0; -+ return in_flags; -+} /* FilePoll */ -+ -+ -+static PRIOMethods _pr_fileMethods = { -+ PR_DESC_FILE, -+ FileClose, -+ FileRead, -+ FileWrite, -+ FileAvailable, -+ FileAvailable64, -+ FileSync, -+ FileSeek, -+ FileSeek64, -+ FileGetInfo, -+ FileGetInfo64, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ FilePoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetFileMethods(void) -+{ -+ return &_pr_fileMethods; -+} -+ -+ -+static PRInt32 PR_CALLBACK PipeAvailable(PRFileDesc *fd) -+{ -+ PRInt32 rv; -+ rv = _bt_socketavailable(fd); -+ return rv; -+} -+ -+static PRInt64 PR_CALLBACK PipeAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 rv; -+ LL_I2L(rv, _bt_socketavailable(fd)); -+ return rv; -+} -+ -+static PRStatus PR_CALLBACK PipeSync(PRFileDesc *fd) -+{ -+ return PR_SUCCESS; -+} -+ -+ -+static PRIOMethods _pr_pipeMethods = { -+ PR_DESC_PIPE, -+ FileClose, -+ FileRead, -+ FileWrite, -+ PipeAvailable, -+ PipeAvailable64, -+ PipeSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ FilePoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetPipeMethods(void) -+{ -+ return &_pr_pipeMethods; -+} -+ -+void _PR_InitIO(void) { -+ const PRIOMethods *methods = PR_GetFileMethods(); -+ _PR_InitFdCache(); -+ _pr_flock_lock = PR_NewLock(); -+ _pr_flock_cv = PR_NewCondVar(_pr_flock_lock); -+ _pr_stdin = bt_CreateFileDesc(0, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ _pr_stdout = bt_CreateFileDesc(1, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ _pr_stderr = bt_CreateFileDesc(2, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+} -+ -Index: mozilla/nsprpub/pr/src/bthreads/btio.c -=================================================================== -RCS file: mozilla/nsprpub/pr/src/bthreads/btio.c -diff -N mozilla/nsprpub/pr/src/bthreads/btio.c ---- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ mozilla/nsprpub/pr/src/bthreads/btio.c 5 Nov 2008 20:51:44 -0000 -@@ -0,0 +1,2424 @@ -+/* -*- Mode: C++; c-basic-offset: 4 -*- */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is the Netscape Portable Runtime (NSPR). -+ * -+ * The Initial Developer of the Original Code is -+ * Netscape Communications Corporation. -+ * Portions created by the Initial Developer are Copyright (C) 1998-2000 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "primpl.h" -+#include -+#include -+#include -+ -+#define READ_FD 1 -+#define WRITE_FD 2 -+ -+#ifdef BONE_VERSION -+inline int closesocket(int socket) { -+ return close(socket); -+} -+#endif -+ -+ -+inline void -+set_stat_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_access_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_select_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_writev_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_connect_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EACCES: -+ case ELOOP: -+ case ENOENT: -+ prError = PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+ -+} -+ -+inline void -+set_accept_error(int err) -+{ -+ PR_SetError(err == ENODEV ? PR_NOT_TCP_SOCKET_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_bind_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_SOCKET_ADDRESS_IS_BOUND_ERROR; -+ break; -+ case EIO: -+ case EISDIR: -+ case ELOOP: -+ case ENOENT: -+ case ENOTDIR: -+ case EROFS: -+ prError = PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+inline void -+set_listen_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_shutdown_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_socketpair_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_recv_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_recvfrom_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_send_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_sendto_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_getsockname_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_getpeername_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_getsockopt_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_BUFFER_OVERFLOW_ERROR; -+ break; -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+inline void -+set_setsockopt_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_BUFFER_OVERFLOW_ERROR; -+ break; -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_socket_error(int err) -+{ -+ PR_SetError( err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetFileInfo(const char *fn, PRFileInfo *info) -+{ -+ struct stat sb; -+ PRInt32 rv, err; -+ PRInt64 s, s2us; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ rv = stat(fn, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_stat_error(err); -+ return PR_FAILURE; -+ } -+ if (info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ -+ /* Use lower 32 bits of file size */ -+ info->size = sb.st_size & 0xffffffff; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetFileInfo64(const char *fn, PRFileInfo64 *info) -+{ -+ struct stat sb; -+ PRInt32 rv, err; -+ PRInt64 s, s2us; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ rv = stat(fn, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_stat_error(err); -+ return PR_FAILURE; -+ } -+ if (info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ -+ /* For the 64 bit version we can use -+ * the native st_size without modification -+ */ -+ info->size = sb.st_size; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_Access(const char *name, PRAccessHow how) -+{ -+ PRInt32 rv, err; -+ int checkFlags; -+ struct stat buf; -+ -+ switch (how) { -+ case PR_ACCESS_WRITE_OK: -+ checkFlags = S_IWUSR | S_IWGRP | S_IWOTH; -+ break; -+ -+ case PR_ACCESS_READ_OK: -+ checkFlags = S_IRUSR | S_IRGRP | S_IROTH; -+ break; -+ -+ case PR_ACCESS_EXISTS: -+ /* we don't need to examine st_mode. */ -+ break; -+ -+ default: { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return PR_FAILURE; -+ } -+ } -+ -+ rv = stat(name, &buf); -+ if (rv == 0 && how != PR_ACCESS_EXISTS && (!(buf.st_mode & checkFlags))) { -+ PR_SetError(PR_NO_ACCESS_RIGHTS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_access_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+ -+PRInt32 -+_bt_socketavailable (PRFileDesc *fd) -+{ -+#ifdef BONE_VERSION -+ PRInt32 result; -+ -+ if (ioctl(fd->secret->md.osfd, FIONREAD, &result) < 0) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, _MD_ERRNO()); -+ return -1; -+ } -+ return result; -+#else -+ return PR_NOT_IMPLEMENTED_ERROR; -+#endif -+} -+ -+ -+#if defined(DEBUG) -+ -+PRBool IsValidNetAddr(const PRNetAddr *addr) -+{ -+ if ((addr != NULL) -+ && (addr->raw.family != PR_AF_INET6) -+ && (addr->raw.family != PR_AF_INET)) { -+ return PR_FALSE; -+ } -+ return PR_TRUE; -+} -+ -+static PRBool IsValidNetAddrLen(const PRNetAddr *addr, PRInt32 addr_len) -+{ -+ /* -+ * The definition of the length of a Unix domain socket address -+ * is not uniform, so we don't check it. -+ */ -+ if ((addr != NULL) -+ && (PR_NETADDR_SIZE(addr) != addr_len)) { -+ return PR_FALSE; -+ } -+ return PR_TRUE; -+} -+ -+#endif /* DEBUG */ -+ -+static PRInt32 socket_io_wait(PRInt32 osfd, PRInt32 fd_type, -+ PRIntervalTime timeout) -+{ -+ PRInt32 rv = -1; -+ struct timeval tv; -+ PRIntervalTime epoch, now, elapsed, remaining; -+ PRBool wait_for_remaining; -+ PRInt32 syserror; -+ fd_set rd_wr; -+ -+ switch (timeout) { -+ case PR_INTERVAL_NO_WAIT: -+ PR_SetError(PR_IO_TIMEOUT_ERROR, 0); -+ break; -+ case PR_INTERVAL_NO_TIMEOUT: -+ /* -+ * This is a special case of the 'default' case below. -+ * Please see the comments there. -+ */ -+ tv.tv_sec = _PR_INTERRUPT_CHECK_INTERVAL_SECS; -+ tv.tv_usec = 0; -+ FD_ZERO(&rd_wr); -+ do { -+ FD_SET(osfd, &rd_wr); -+ if (fd_type == READ_FD) -+ rv = select(osfd + 1, &rd_wr, NULL, NULL, &tv); -+ else -+ rv = select(osfd + 1, NULL, &rd_wr, NULL, &tv); -+ if (rv == -1 && (syserror = _MD_ERRNO()) != EINTR) { -+#ifdef BONE_VERSION -+ set_select_error(syserror); -+#else -+ if (syserror == EBADF) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, EBADF); -+ } else { -+ PR_SetError(PR_UNKNOWN_ERROR, syserror); -+ } -+#endif -+ break; -+ } -+ } while (rv == 0 || (rv == -1 && syserror == EINTR)); -+ break; -+ default: -+ now = epoch = PR_IntervalNow(); -+ remaining = timeout; -+ FD_ZERO(&rd_wr); -+ do { -+ /* -+ * We block in select for at most -+ * _PR_INTERRUPT_CHECK_INTERVAL_SECS seconds, -+ * so that there is an upper limit on the delay -+ * before the interrupt bit is checked. -+ */ -+ wait_for_remaining = PR_TRUE; -+ tv.tv_sec = PR_IntervalToSeconds(remaining); -+ if (tv.tv_sec > _PR_INTERRUPT_CHECK_INTERVAL_SECS) { -+ wait_for_remaining = PR_FALSE; -+ tv.tv_sec = _PR_INTERRUPT_CHECK_INTERVAL_SECS; -+ tv.tv_usec = 0; -+ } else { -+ tv.tv_usec = PR_IntervalToMicroseconds( -+ remaining - -+ PR_SecondsToInterval(tv.tv_sec)); -+ } -+ FD_SET(osfd, &rd_wr); -+ if (fd_type == READ_FD) -+ rv = select(osfd + 1, &rd_wr, NULL, NULL, &tv); -+ else -+ rv = select(osfd + 1, NULL, &rd_wr, NULL, &tv); -+ /* -+ * we don't consider EINTR a real error -+ */ -+ if (rv == -1 && (syserror = _MD_ERRNO()) != EINTR) { -+#ifdef BONE_VERSION -+ set_select_error(syserror); -+#else -+ if (syserror == EBADF) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, EBADF); -+ } else { -+ PR_SetError(PR_UNKNOWN_ERROR, syserror); -+ } -+#endif -+ break; -+ } -+ /* -+ * We loop again if select timed out or got interrupted -+ * by a signal, and the timeout deadline has not passed yet. -+ */ -+ if (rv == 0 || (rv == -1 && syserror == EINTR)) { -+ /* -+ * If select timed out, we know how much time -+ * we spent in blocking, so we can avoid a -+ * PR_IntervalNow() call. -+ */ -+ if (rv == 0) { -+ if (wait_for_remaining) { -+ now += remaining; -+ } else { -+ now += PR_SecondsToInterval(tv.tv_sec) -+ + PR_MicrosecondsToInterval(tv.tv_usec); -+ } -+ } else { -+ now = PR_IntervalNow(); -+ } -+ elapsed = (PRIntervalTime) (now - epoch); -+ if (elapsed >= timeout) { -+ PR_SetError(PR_IO_TIMEOUT_ERROR, 0); -+ rv = -1; -+ break; -+ } else { -+ remaining = timeout - elapsed; -+ } -+ } -+ } while (rv == 0 || (rv == -1 && syserror == EINTR)); -+ break; -+ } -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketWritev(PRFileDesc *fd, const PRIOVec *iov, -+PRInt32 iov_size, PRIntervalTime timeout) -+{ -+#ifdef BONE_VERSION -+ int w, err = 0; -+ const PRIOVec *tmp_iov; -+#define LOCAL_MAXIOV 8 -+ PRIOVec local_iov[LOCAL_MAXIOV]; -+ PRIOVec *iov_copy = NULL; -+ int tmp_out; -+ int index, iov_cnt; -+ int count=0, sz = 0; /* 'count' is the return value. */ -+ int i, amount = 0; -+ -+ /* -+ * Assume the first writev will succeed. Copy iov's only on -+ * failure. -+ */ -+ tmp_iov = iov; -+ for (index = 0; index < iov_size; index++) -+ sz += iov[index].iov_len; -+ -+ iov_cnt = iov_size; -+ -+ while (sz > 0) { -+/* -+ /* -+ * Calculate the total number of bytes to be sent; needed for -+ * optimization later. -+ * We could avoid this if this number was passed in; but it is -+ * probably not a big deal because iov_size is usually small (less than -+ * 3) -+ */ -+ if (!fd->secret->nonblocking) { -+ for (i=0; isecret->md.osfd, (const struct iovec*)tmp_iov, iov_size)) == -1) { -+ err = _MD_ERRNO(); -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ if ((w = socket_io_wait(fd->secret->md.osfd, WRITE_FD, timeout))<0) -+ goto done; -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ /* -+ * optimization; if bytes sent is less than "amount" call -+ * select before returning. This is because it is likely that -+ * the next writev() call will return EWOULDBLOCK. -+ */ -+ if ((!fd->secret->nonblocking) && (w > 0) && (w < amount) -+ && (timeout != PR_INTERVAL_NO_WAIT)) { -+ if (socket_io_wait(fd->secret->md.osfd, WRITE_FD, timeout) < 0) { -+ w = -1; -+ goto done; -+ } -+ } -+ -+ if (w < 0) { -+ set_writev_error(err); -+ } -+done: -+ -+ -+ if (w < 0) { -+ count = -1; -+ break; -+ } -+ count += w; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ sz -= w; -+ -+ if (sz > 0) { -+ /* find the next unwritten vector */ -+ for ( index = 0, tmp_out = count; -+ tmp_out >= iov[index].iov_len; -+ tmp_out -= iov[index].iov_len, index++){;} /* nothing to execute */ -+ -+ if (tmp_iov == iov) { -+ /* -+ * The first writev failed so we -+ * must copy iov's around. -+ * Avoid calloc/free if there -+ * are few enough iov's. -+ */ -+ if (iov_size - index <= LOCAL_MAXIOV) -+ iov_copy = local_iov; -+ else if ((iov_copy = (PRIOVec *) PR_CALLOC((iov_size - index) * -+ sizeof *iov_copy)) == NULL) { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return -1; -+ } -+ tmp_iov = iov_copy; -+ } -+ -+ PR_ASSERT(tmp_iov == iov_copy); -+ -+ /* fill in the first partial read */ -+ iov_copy[0].iov_base = &(((char *)iov[index].iov_base)[tmp_out]); -+ iov_copy[0].iov_len = iov[index].iov_len - tmp_out; -+ index++; -+ -+ /* copy the remaining vectors */ -+ for (iov_cnt=1; indexsecret->md.osfd; -+ -+#ifndef BONE_VERSION -+ fd->secret->md.connectValueValid = PR_FALSE; -+#endif -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ PRNetAddr addrCopy; -+ -+ addrCopy = *addr; -+ ((struct sockaddr *) &addrCopy)->sa_len = addrlen; -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+#endif -+ -+ /* (Copied from unix.c) -+ * We initiate the connection setup by making a nonblocking connect() -+ * call. If the connect() call fails, there are two cases we handle -+ * specially: -+ * 1. The connect() call was interrupted by a signal. In this case -+ * we simply retry connect(). -+ * 2. The NSPR socket is nonblocking and connect() fails with -+ * EINPROGRESS. We first wait until the socket becomes writable. -+ * Then we try to find out whether the connection setup succeeded -+ * or failed. -+ */ -+ -+retry: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if ((rv = connect(osfd, (struct sockaddr *)&addrCopy, addrlen)) == -1) { -+#else -+ if ((rv = connect(osfd, (struct sockaddr *)addr, addrlen)) == -1) { -+#endif -+ err = _MD_ERRNO(); -+#ifndef BONE_VERSION -+ fd->secret->md.connectReturnValue = rv; -+ fd->secret->md.connectReturnError = err; -+ fd->secret->md.connectValueValid = PR_TRUE; -+#endif -+ if( err == EINTR ) { -+#ifndef BONE_VERSION -+ snooze( 100000L ); -+#endif -+ goto retry; -+ } -+ -+#ifndef BONE_VERSION -+ if(!fd->secret->nonblocking && ((err == EINPROGRESS) || (err==EAGAIN) || (err==EALREADY))) { -+ -+ /* -+ ** There's no timeout on this connect, but that's not -+ ** a big deal, since the connect times out anyways -+ ** after 30 seconds. Just sleep for 1/10th of a second -+ ** and retry until we go through or die. -+ */ -+ goto retry; -+ } -+ -+ if( fd->secret->nonblocking && ((err == EAGAIN) || (err == EINPROGRESS))) { -+ PR_Lock(_connectLock); -+ if (connectCount < sizeof(connectList)/sizeof(connectList[0])) { -+ connectList[connectCount].osfd = osfd; -+ memcpy(&connectList[connectCount].addr, addr, addrlen); -+ connectList[connectCount].addrlen = addrlen; -+ connectList[connectCount].timeout = timeout; -+ connectCount++; -+ PR_Unlock(_connectLock); -+ set_connect_error(err); -+ } else { -+ PR_Unlock(_connectLock); -+ PR_SetError(PR_INSUFFICIENT_RESOURCES_ERROR, 0); -+ } -+ return rv; -+ } -+#else /* BONE_VERSION */ -+ if(!fd->secret->nonblocking && (err == EINTR)) { -+ -+ rv = socket_io_wait(osfd, WRITE_FD, timeout); -+ if (rv == -1) { -+ return -1; -+ } -+ -+ PR_ASSERT(rv == 1); -+/* _MD_beos_get_nonblocking_connect_error always return PR_NOT_IMPLEMENTED.. -+ err = _MD_beos_get_nonblocking_connect_error(osfd); -+ if (err != 0) { -+ set_connect_error(err); -+ return -1; -+ } -+*/ -+ return 0; -+ } -+#endif -+ -+ set_connect_error(err); -+ } -+ -+ return rv; -+} -+ -+ -+static PRStatus PR_CALLBACK SocketConnect( -+ PRFileDesc *fd, const PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 rv; /* Return value of _PR_MD_CONNECT */ -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) -+ PRNetAddr addrCopy; -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+ rv = _bt_CONNECT(fd, addrp, PR_NETADDR_SIZE(addr), timeout); -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("connect -> %d", rv)); -+ if (rv == 0) -+ return PR_SUCCESS; -+ else -+ return PR_FAILURE; -+} -+ -+static PRStatus PR_CALLBACK SocketConnectContinue( -+ PRFileDesc *fd, PRInt16 out_flags) -+{ -+ PRInt32 osfd; -+ int err; -+ int rv; -+ -+ if (out_flags & PR_POLL_NVAL) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ if ((out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0) { -+ PR_ASSERT(out_flags == 0); -+ PR_SetError(PR_IN_PROGRESS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ osfd = fd->secret->md.osfd; -+ -+ -+#ifdef BONE_VERSION /* bug 122364 */ -+ /* temporary workaround until getsockopt(SO_ERROR) works in BONE */ -+ if (out_flags & PR_POLL_EXCEPT) { -+ PR_SetError(PR_CONNECT_REFUSED_ERROR, 0); -+ return PR_FAILURE; -+ } -+ PR_ASSERT(out_flags & PR_POLL_WRITE); -+ return PR_SUCCESS; -+#else -+ rv = recv(fd->secret->md.osfd, NULL, 0, 0); -+ PR_ASSERT(-1 == rv || 0 == rv); -+ -+ if (-1 == rv && 0 != errno && errno != EAGAIN && errno != EWOULDBLOCK ) { -+ set_connect_error(errno); -+ return PR_FAILURE; -+ } -+ else -+ return PR_SUCCESS; -+#endif -+} -+ -+PRInt32 -+_bt_accept (PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+ while ((rv = accept(osfd, (struct sockaddr *) addr, -+ (int *)addrlen)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ /* If it's SUPPOSED to be a blocking thread, wait -+ * a while to see if the triggering condition gets -+ * satisfied. -+ */ -+ /* Assume that we're always using a native thread */ -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ if (rv < 0) { -+ set_accept_error(err); -+ } else if (addr != NULL) { -+ /* bug 134099 */ -+ err = getpeername(rv, (struct sockaddr *) addr, (int *)addrlen); -+ } -+done: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (rv != -1) { -+ /* Mask off the first byte of struct sockaddr (the length field) */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ return(rv); -+} -+ -+ -+ -+static PRFileDesc* PR_CALLBACK SocketAccept(PRFileDesc *fd, PRNetAddr *addr, -+PRIntervalTime timeout) -+{ -+ PRInt32 osfd; -+ PRFileDesc *fd2; -+ PRUint32 al; -+ -+ al = sizeof(PRNetAddr); -+ osfd = _bt_accept(fd, addr, &al, timeout); -+ if (osfd == -1) -+ return 0; -+ fd2 = bt_CreateFileDesc(osfd, PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (!fd2) { -+ closesocket(osfd); -+ -+ return NULL; -+ } -+ -+ fd2->secret->nonblocking = fd->secret->nonblocking; -+ fd2->secret->inheritable = fd->secret->inheritable; -+ -+#ifdef _PR_INET6 -+ if (addr && (AF_INET6 == addr->raw.family)) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, al) == PR_TRUE); -+ -+ return fd2; -+} -+ -+ -+static PRStatus PR_CALLBACK SocketBind(PRFileDesc *fd, const PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) || defined(_PR_HAVE_SOCKADDR_LEN) -+ PRNetAddr addrCopy; -+#endif -+ -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+#if defined(_PR_INET6) -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ addrCopy = *addrp; -+ ((struct sockaddr *) &addrCopy)->sa_len = PR_NETADDR_SIZE(addrp); -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+ result = bind(fd->secret->md.osfd, (struct sockaddr *) &addrCopy, PR_NETADDR_SIZE(addrp)); -+#else -+ result = bind(fd->secret->md.osfd, (struct sockaddr *) addrp, PR_NETADDR_SIZE(addrp)); -+#endif -+ -+ -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_bind_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketListen(PRFileDesc *fd, PRIntn backlog) -+{ -+ PRInt32 result,err; -+#ifndef BONE_VERSION -+ /* Bug workaround! Setting listen to 0 on Be accepts no connections. -+ ** On most UN*Xes this sets the default. -+ */ -+ -+ if( backlog == 0 ) backlog = 5; -+#endif -+ result = listen(fd->secret->md.osfd, backlog); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_listen_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketShutdown(PRFileDesc *fd, PRIntn how) -+{ -+ PRInt32 result,err; -+#ifndef BONE_VERSION -+ if (how == PR_SHUTDOWN_SEND) -+ fd->secret->md.sock_state = BE_SOCK_SHUTDOWN_WRITE; -+ else if (how == PR_SHUTDOWN_RCV) -+ fd->secret->md.sock_state = BE_SOCK_SHUTDOWN_READ; -+ else if (how == PR_SHUTDOWN_BOTH) { -+ fd->secret->md.sock_state = (BE_SOCK_SHUTDOWN_WRITE | BE_SOCK_SHUTDOWN_READ); -+ } -+#else /* BONE_VERSION */ -+ result = shutdown(fd->secret->md.osfd, how); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_shutdown_error(err); -+ return PR_FAILURE; -+ } -+#endif -+ return PR_SUCCESS; -+} -+ -+PRInt32 -+_bt_recv (PRFileDesc *fd, void *buf, PRInt32 amount, PRInt32 flags, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifndef BONE_VERSION -+ if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_READ) { -+ set_recv_error(EPIPE); -+ return -1; -+ } -+#endif -+ -+#ifdef BONE_VERSION -+ /* -+ ** Gah, stupid hack. If reading a zero amount, instantly return success. -+ ** BONE beta 6 returns EINVAL for reads of zero bytes, which parts of -+ ** mozilla use to check for socket availability. -+ */ -+ -+ if( 0 == amount ) return(0); -+#endif -+ -+ while ((rv = recv(osfd, buf, amount, flags)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ /* If socket was supposed to be blocking, -+ wait a while for the condition to be -+ satisfied. */ -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ } else if (err == EINTR) { -+ continue; -+ } else -+ break; -+ } -+ -+ if (rv < 0) { -+ set_recv_error(err); -+ } -+ -+done: -+ return(rv); -+} -+ -+static PRInt32 PR_CALLBACK SocketRecv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, -+PRIntervalTime timeout) -+{ -+ PRInt32 rv; -+ -+ if ((flags != 0) && (flags != PR_MSG_PEEK)) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv: fd=%p osfd=%d buf=%p amount=%d flags=%d", -+ fd, fd->secret->md.osfd, buf, amount, flags)); -+ -+ -+ rv = _bt_recv(fd, buf, amount, flags, timeout); -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv -> %d, error = %d, os error = %d", -+ rv, PR_GetError(), PR_GetOSError())); -+ -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK SocketRead(PRFileDesc *fd, void *buf, PRInt32 amount) -+{ -+ return SocketRecv(fd, buf, amount, 0, PR_INTERVAL_NO_TIMEOUT); -+} -+ -+PRInt32 -+_bt_send (PRFileDesc *fd, const void *buf, PRInt32 amount, PRInt32 flags, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifndef BONE_VERSION -+ if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_WRITE) -+ { -+ set_send_error(EPIPE); -+ return -1; -+ } -+#endif -+ -+ while ((rv = send(osfd, buf, amount, flags)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ -+#ifndef BONE_VERSION -+ -+ /* in UNIX implementations, you could do a socket_io_wait here. -+ * but since BeOS doesn't yet support WRITE notification in select, -+ * you're spanked. -+ */ -+ snooze( 10000L ); -+ continue; -+#else /* BONE_VERSION */ -+ if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0) -+ goto done; -+#endif -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ -+#ifdef BONE_VERSION -+ /* -+ * optimization; if bytes sent is less than "amount" call -+ * select before returning. This is because it is likely that -+ * the next writev() call will return EWOULDBLOCK. -+ */ -+ if ((!fd->secret->nonblocking) && (rv > 0) && (rv < amount) -+ && (timeout != PR_INTERVAL_NO_WAIT)) { -+ if (socket_io_wait(osfd, WRITE_FD, timeout) < 0) { -+ rv = -1; -+ goto done; -+ } -+ } -+#endif /* BONE_VERSION */ -+ -+ if (rv < 0) { -+ set_send_error(err); -+ } -+ -+#ifdef BONE_VERSION -+done: -+#endif -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSend(PRFileDesc *fd, const void *buf, PRInt32 amount, -+PRIntn flags, PRIntervalTime timeout) -+{ -+ PRInt32 temp, count; -+ -+ count = 0; -+ while (amount > 0) { -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, -+ ("send: fd=%p osfd=%d buf=%p amount=%d", -+ fd, fd->secret->md.osfd, buf, amount)); -+ temp = _bt_send(fd, buf, amount, flags, timeout); -+ if (temp < 0) { -+ count = -1; -+ break; -+ } -+ -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ -+ amount -= temp; -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("send -> %d", count)); -+ return count; -+} -+ -+static PRInt32 PR_CALLBACK SocketWrite(PRFileDesc *fd, const void *buf, PRInt32 amount) -+{ -+ return SocketSend(fd, buf, amount, 0, PR_INTERVAL_NO_TIMEOUT); -+} -+ -+static PRStatus PR_CALLBACK SocketClose(PRFileDesc *fd) -+{ -+ if (!fd || !fd->secret -+ || (fd->secret->state != _PR_FILEDESC_OPEN -+ && fd->secret->state != _PR_FILEDESC_CLOSED)) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (fd->secret->state == _PR_FILEDESC_OPEN) { -+ if (closesocket(fd->secret->md.osfd) < 0) { -+ return PR_FAILURE; -+ } -+ -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ } -+ -+ PR_ASSERT(fd); -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} -+ -+static PRInt32 PR_CALLBACK SocketAvailable(PRFileDesc *fd) -+{ -+ PRInt32 rv; -+ rv = _bt_socketavailable(fd); -+ return rv; -+} -+ -+static PRInt64 PR_CALLBACK SocketAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 rv; -+ LL_I2L(rv, _bt_socketavailable(fd)); -+ return rv; -+} -+ -+static PRStatus PR_CALLBACK SocketSync(PRFileDesc *fd) -+{ -+ return PR_SUCCESS; -+} -+ -+PRInt32 -+_bt_sendto (PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, -+ const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ PRNetAddr addrCopy; -+ -+ addrCopy = *addr; -+ ((struct sockaddr *) &addrCopy)->sa_len = addrlen; -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+ -+ while ((rv = sendto(osfd, buf, amount, flags, -+ (struct sockaddr *) &addrCopy, addrlen)) == -1) { -+#else -+ while ((rv = sendto(osfd, buf, amount, flags, -+ (struct sockaddr *) addr, addrlen)) == -1) { -+#endif -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ -+#ifdef BONE_VERSION -+ if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0) -+ goto done; -+#endif -+ } else if (err == EINTR) { -+ continue; -+ -+ } else { -+ break; -+ } -+ } -+ -+ if (rv < 0) { -+ set_sendto_error(err); -+ } -+ -+#ifdef BONE_VERSION -+done: -+#endif -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSendTo( -+ PRFileDesc *fd, const void *buf, PRInt32 amount, -+ PRIntn flags, const PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 temp, count; -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) -+ PRNetAddr addrCopy; -+#endif -+ -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+#if defined(_PR_INET6) -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+ count = 0; -+ while (amount > 0) { -+ temp = _bt_sendto(fd, buf, amount, flags, -+ addrp, PR_NETADDR_SIZE(addr), timeout); -+ if (temp < 0) { -+ count = -1; -+ break; -+ } -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ amount -= temp; -+ } -+ return count; -+} -+ -+PRInt32 -+_bt_recvfrom (PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, -+ PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+ while ((*addrlen = PR_NETADDR_SIZE(addr)), -+ ((rv = recvfrom(osfd, buf, amount, flags, -+ (struct sockaddr *) addr, -+ (int *)addrlen)) == -1)) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ -+ if (rv < 0) { -+ set_recvfrom_error(err); -+ } -+ -+done: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (rv != -1) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ return(rv); -+} -+ -+ -+ -+static PRInt32 PR_CALLBACK SocketRecvFrom(PRFileDesc *fd, void *buf, PRInt32 amount, -+PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 rv; -+ PRUint32 al; -+ -+ al = sizeof(PRNetAddr); -+ rv = _bt_recvfrom(fd, buf, amount, flags, addr, &al, timeout); -+#ifdef _PR_INET6 -+ if (addr && (AF_INET6 == addr->raw.family)) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK SocketAcceptRead(PRFileDesc *sd, PRFileDesc **nd, -+PRNetAddr **raddr, void *buf, PRInt32 amount, -+PRIntervalTime timeout) -+{ -+ /* The socket must be in blocking mode. */ -+ if (sd->secret->nonblocking) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ *nd = NULL; -+ -+ return PR_EmulateAcceptRead(sd, nd, raddr, buf, amount, timeout); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSendFile( -+ PRFileDesc *sd, PRSendFileData *sfd, -+ PRTransmitFileFlags flags, PRIntervalTime timeout) -+{ -+ /* The socket must be in blocking mode. */ -+ if (sd->secret->nonblocking) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ return PR_EmulateSendFile(sd, sfd, flags, timeout); -+} -+ -+static PRInt32 PR_CALLBACK SocketTransmitFile(PRFileDesc *sd, PRFileDesc *fd, -+const void *headers, PRInt32 hlen, PRTransmitFileFlags flags, -+PRIntervalTime timeout) -+{ -+ PRSendFileData sfd; -+ -+ sfd.fd = fd; -+ sfd.file_offset = 0; -+ sfd.file_nbytes = 0; -+ sfd.header = headers; -+ sfd.hlen = hlen; -+ sfd.trailer = NULL; -+ sfd.tlen = 0; -+ -+ return(SocketSendFile(sd, &sfd, flags, timeout)); -+} -+ -+static PRStatus PR_CALLBACK SocketGetName(PRFileDesc *fd, PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ PRUint32 addrlen; -+ -+ addrlen = sizeof(PRNetAddr); -+ result = getsockname(fd->secret->md.osfd, (struct sockaddr *) addr, &addrlen); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_getsockname_error(err); -+ return PR_FAILURE; -+ } -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (result == 0) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ -+#ifdef _PR_INET6 -+ if (AF_INET6 == addr->raw.family) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, addrlen) == PR_TRUE); -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketGetPeerName(PRFileDesc *fd, PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ PRUint32 addrlen; -+ -+ addrlen = sizeof(PRNetAddr); -+ result = getpeername(fd->secret->md.osfd, (struct sockaddr *) addr, &addrlen); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_getpeername_error(err); -+ return PR_FAILURE; -+ } -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (result == 0) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ -+#ifdef _PR_INET6 -+ if (AF_INET6 == addr->raw.family) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, addrlen) == PR_TRUE); -+ return PR_SUCCESS; -+} -+ -+static PRInt16 PR_CALLBACK SocketPoll( -+ PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags) -+{ -+ *out_flags = 0; -+ return in_flags; -+} /* SocketPoll */ -+ -+ -+PRStatus PR_CALLBACK SocketGetOption(PRFileDesc *fd, PRSocketOptionData *data) -+{ -+ PRStatus rv; -+ PRInt32 level, name, length, err; -+ -+ /* -+ * PR_SockOpt_Nonblocking is a special case that does not -+ * translate to a getsockopt() call -+ */ -+ if (PR_SockOpt_Nonblocking == data->option) -+ { -+ data->value.non_blocking = fd->secret->nonblocking; -+ return PR_SUCCESS; -+ } -+ -+ rv = _PR_MapOptionName(data->option, &level, &name); -+ if (PR_SUCCESS != rv) return rv; -+ -+ switch (data->option) -+ { -+ case PR_SockOpt_Linger: -+ { -+#ifdef BONE_VERSION -+ struct linger linger; -+ length = sizeof(linger); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char *) &linger, &length)) -+ { -+ PR_ASSERT(sizeof(linger) == length); -+ data->value.linger.polarity = -+ (linger.l_onoff) ? PR_TRUE : PR_FALSE; -+ data->value.linger.linger = -+ PR_SecondsToInterval(linger.l_linger); -+ return PR_SUCCESS; -+ } -+ break; -+#else -+ PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -+ return PR_FAILURE; -+#endif -+ } -+ case PR_SockOpt_Reuseaddr: -+ case PR_SockOpt_Keepalive: -+ case PR_SockOpt_NoDelay: -+ case PR_SockOpt_Broadcast: -+ { -+ PRIntn value; -+ length = sizeof(value); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char *) &value, &length)) -+ { -+ data->value.reuse_addr = (0 == value) ? PR_FALSE : PR_TRUE; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_McastLoopback: -+ { -+ PRUint8 bool; -+ length = sizeof(bool); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&bool, &length)) -+ { -+ data->value.mcast_loopback = (0 == bool) ? PR_FALSE : PR_TRUE; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_RecvBufferSize: -+ case PR_SockOpt_SendBufferSize: -+ case PR_SockOpt_MaxSegment: -+ { -+ PRIntn value; -+ length = sizeof(value); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, &length)) -+ { -+ data->value.recv_buffer_size = value; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_IpTimeToLive: -+ case PR_SockOpt_IpTypeOfService: -+ { -+ /* These options should really be an int (or PRIntn). */ -+ length = sizeof(PRUintn); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.ip_ttl, &length)) -+ return PR_SUCCESS; -+ break; -+ } -+ case PR_SockOpt_McastTimeToLive: -+ { -+ PRUint8 ttl; -+ length = sizeof(ttl); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&ttl, &length)) -+ { -+ data->value.mcast_ttl = ttl; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+#ifdef IP_ADD_MEMBERSHIP -+ case PR_SockOpt_AddMember: -+ case PR_SockOpt_DropMember: -+ { -+ struct ip_mreq mreq; -+ length = sizeof(mreq); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&mreq, &length)) -+ { -+ data->value.add_member.mcaddr.inet.ip = -+ mreq.imr_multiaddr.s_addr; -+ data->value.add_member.ifaddr.inet.ip = -+ mreq.imr_interface.s_addr; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+#endif /* IP_ADD_MEMBERSHIP */ -+ case PR_SockOpt_McastInterface: -+ { -+ /* This option is a struct in_addr. */ -+ length = sizeof(data->value.mcast_if.inet.ip); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, -+ (char*)&data->value.mcast_if.inet.ip, &length)) -+ return PR_SUCCESS; -+ break; -+ } -+ default: -+ PR_NOT_REACHED("Unknown socket option"); -+ break; -+ } -+ err = _MD_ERRNO(); -+ set_getsockopt_error(err); -+ return PR_FAILURE; -+} /* SocketGetOption */ -+ -+PRStatus PR_CALLBACK SocketSetOption(PRFileDesc *fd, const PRSocketOptionData *data) -+{ -+ PRStatus rv; -+ PRInt32 level, name, result, err; -+ -+ /* -+ * PR_SockOpt_Nonblocking is a special case that does not -+ * translate to a setsockopt call. -+ */ -+ if (PR_SockOpt_Nonblocking == data->option) -+ { -+ fd->secret->nonblocking = data->value.non_blocking; -+ return PR_SUCCESS; -+ } -+ -+ rv = _PR_MapOptionName(data->option, &level, &name); -+ if (PR_SUCCESS != rv) return rv; -+ -+ switch (data->option) -+ { -+ case PR_SockOpt_Linger: -+ { -+#ifdef BONE_VERSION -+ struct linger linger; -+ linger.l_onoff = data->value.linger.polarity; -+ linger.l_linger = PR_IntervalToSeconds(data->value.linger.linger); -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&linger, sizeof(linger)); -+ break; -+#else -+ PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -+ return PR_FAILURE; -+#endif -+ } -+ case PR_SockOpt_Reuseaddr: -+ case PR_SockOpt_Keepalive: -+ case PR_SockOpt_NoDelay: -+ case PR_SockOpt_Broadcast: -+ { -+ PRIntn value; -+ value = (data->value.reuse_addr) ? 1 : 0; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, sizeof(value)); -+ break; -+ } -+ case PR_SockOpt_McastLoopback: -+ { -+ PRUint8 bool; -+ bool = data->value.mcast_loopback ? 1 : 0; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&bool, sizeof(bool)); -+ break; -+ } -+ case PR_SockOpt_RecvBufferSize: -+ case PR_SockOpt_SendBufferSize: -+ case PR_SockOpt_MaxSegment: -+ { -+ PRIntn value = data->value.recv_buffer_size; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, sizeof(value)); -+ break; -+ } -+ case PR_SockOpt_IpTimeToLive: -+ case PR_SockOpt_IpTypeOfService: -+ { -+ /* These options should really be an int (or PRIntn). */ -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.ip_ttl, sizeof(PRUintn)); -+ break; -+ } -+ case PR_SockOpt_McastTimeToLive: -+ { -+ PRUint8 ttl; -+ ttl = data->value.mcast_ttl; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&ttl, sizeof(ttl)); -+ break; -+ } -+#ifdef IP_ADD_MEMBERSHIP -+ case PR_SockOpt_AddMember: -+ case PR_SockOpt_DropMember: -+ { -+ struct ip_mreq mreq; -+ mreq.imr_multiaddr.s_addr = -+ data->value.add_member.mcaddr.inet.ip; -+ mreq.imr_interface.s_addr = -+ data->value.add_member.ifaddr.inet.ip; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&mreq, sizeof(mreq)); -+ break; -+ } -+#endif /* IP_ADD_MEMBERSHIP */ -+ case PR_SockOpt_McastInterface: -+ { -+ /* This option is a struct in_addr. */ -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.mcast_if.inet.ip, -+ sizeof(data->value.mcast_if.inet.ip)); -+ break; -+ } -+ default: -+ PR_NOT_REACHED("Unknown socket option"); -+ break; -+ } -+ if (0 == result) -+ return PR_SUCCESS; -+ err = _MD_ERRNO(); -+ set_setsockopt_error(err); -+ return PR_FAILURE; -+} /* SocketSetOption */ -+ -+ -+ -+static PRIOMethods tcpMethods = { -+ PR_DESC_SOCKET_TCP, -+ SocketClose, -+ SocketRead, -+ SocketWrite, -+ SocketAvailable, -+ SocketAvailable64, -+ SocketSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ SocketWritev, -+ SocketConnect, -+ SocketAccept, -+ SocketBind, -+ SocketListen, -+ SocketShutdown, -+ SocketRecv, -+ SocketSend, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ SocketAcceptRead, -+ SocketTransmitFile, -+ SocketGetName, -+ SocketGetPeerName, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ SocketGetOption, -+ SocketSetOption, -+ SocketSendFile, -+ SocketConnectContinue, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+static PRIOMethods udpMethods = { -+ PR_DESC_SOCKET_UDP, -+ SocketClose, -+ SocketRead, -+ SocketWrite, -+ SocketAvailable, -+ SocketAvailable64, -+ SocketSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ SocketWritev, -+ SocketConnect, -+ (PRAcceptFN)_PR_InvalidDesc, -+ SocketBind, -+ SocketListen, -+ SocketShutdown, -+ SocketRecv, -+ SocketSend, -+ SocketRecvFrom, -+ SocketSendTo, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ SocketGetName, -+ SocketGetPeerName, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ SocketGetOption, -+ SocketSetOption, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+ -+static PRIOMethods socketpollfdMethods = { -+ (PRDescType) 0, -+ (PRCloseFN)_PR_InvalidStatus, -+ (PRReadFN)_PR_InvalidInt, -+ (PRWriteFN)_PR_InvalidInt, -+ (PRAvailableFN)_PR_InvalidInt, -+ (PRAvailable64FN)_PR_InvalidInt64, -+ (PRFsyncFN)_PR_InvalidStatus, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+static PRIOMethods _pr_socketpollfd_methods = { -+ (PRDescType) 0, -+ (PRCloseFN)_PR_InvalidStatus, -+ (PRReadFN)_PR_InvalidInt, -+ (PRWriteFN)_PR_InvalidInt, -+ (PRAvailableFN)_PR_InvalidInt, -+ (PRAvailable64FN)_PR_InvalidInt64, -+ (PRFsyncFN)_PR_InvalidStatus, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetTCPMethods() -+{ -+ return &tcpMethods; -+} -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetUDPMethods() -+{ -+ return &udpMethods; -+} -+ -+static const PRIOMethods* PR_GetSocketPollFdMethods(void) -+{ -+ return &_pr_socketpollfd_methods; -+} /* PR_GetSocketPollFdMethods */ -+ -+PR_IMPLEMENT(PRInt32) PR_Poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout) -+{ -+ PRInt32 rv = 0; -+ /* -+ * This code is almost a duplicate of w32poll.c's _PR_MD_PR_POLL(). -+ */ -+ fd_set rd, wt, ex; -+ PRFileDesc *bottom; -+ PRPollDesc *pd, *epd; -+ PRInt32 maxfd = -1, ready, err; -+ PRIntervalTime remaining, elapsed, start; -+ -+ struct timeval tv, *tvp = NULL; -+ -+ if (0 == npds) { -+ PR_Sleep(timeout); -+ return rv; -+ } -+ -+ FD_ZERO(&rd); -+ FD_ZERO(&wt); -+ FD_ZERO(&ex); -+ -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ PRInt16 in_flags_read = 0, in_flags_write = 0; -+ PRInt16 out_flags_read = 0, out_flags_write = 0; -+ -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ if (pd->in_flags & PR_POLL_READ) -+ { -+ in_flags_read = (pd->fd->methods->poll)(pd->fd, pd->in_flags & ~PR_POLL_WRITE, &out_flags_read); -+ } -+ if (pd->in_flags & PR_POLL_WRITE) -+ { -+ in_flags_write = (pd->fd->methods->poll)(pd->fd, pd->in_flags & ~PR_POLL_READ, &out_flags_write); -+ } -+ if ((0 != (in_flags_read & out_flags_read)) -+ || (0 != (in_flags_write & out_flags_write))) -+ { -+ /* this one's ready right now */ -+ if (0 == ready) -+ { -+ /* -+ * We will have to return without calling the -+ * system poll/select function. So zero the -+ * out_flags fields of all the poll descriptors -+ * before this one. -+ */ -+ PRPollDesc *prev; -+ for (prev = pds; prev < pd; prev++) -+ { -+ prev->out_flags = 0; -+ } -+ } -+ ready += 1; -+ pd->out_flags = out_flags_read | out_flags_write; -+ } -+ else -+ { -+ pd->out_flags = 0; /* pre-condition */ -+ -+ /* make sure this is an NSPR supported stack */ -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ PR_ASSERT(NULL != bottom); /* what to do about that? */ -+ if ((NULL != bottom) -+ && (_PR_FILEDESC_OPEN == bottom->secret->state)) -+ { -+ if (0 == ready) -+ { -+ PRInt32 osfd = bottom->secret->md.osfd; -+ if (osfd > maxfd) maxfd = osfd; -+ if (in_flags_read & PR_POLL_READ) -+ { -+ pd->out_flags |= _PR_POLL_READ_SYS_READ; -+ FD_SET(osfd, &rd); -+ } -+ if (in_flags_read & PR_POLL_WRITE) -+ { -+ pd->out_flags |= _PR_POLL_READ_SYS_WRITE; -+ FD_SET(osfd, &wt); -+ } -+ if (in_flags_write & PR_POLL_READ) -+ { -+ pd->out_flags |= _PR_POLL_WRITE_SYS_READ; -+ FD_SET(osfd, &rd); -+ } -+ if (in_flags_write & PR_POLL_WRITE) -+ { -+ pd->out_flags |= _PR_POLL_WRITE_SYS_WRITE; -+ FD_SET(osfd, &wt); -+ } -+ if (pd->in_flags & PR_POLL_EXCEPT) FD_SET(osfd, &ex); -+ } -+ } -+ else -+ { -+ if (0 == ready) -+ { -+ PRPollDesc *prev; -+ for (prev = pds; prev < pd; prev++) -+ { -+ prev->out_flags = 0; -+ } -+ } -+ ready += 1; /* this will cause an abrupt return */ -+ pd->out_flags = PR_POLL_NVAL; /* bogii */ -+ } -+ } -+ } -+ else -+ { -+ pd->out_flags = 0; -+ } -+ } -+ -+ if (0 != ready) return ready; /* no need to block */ -+ -+ remaining = timeout; -+ start = PR_IntervalNow(); -+ -+ retry: -+ if (timeout != PR_INTERVAL_NO_TIMEOUT) -+ { -+ PRInt32 ticksPerSecond = PR_TicksPerSecond(); -+ tv.tv_sec = remaining / ticksPerSecond; -+ tv.tv_usec = PR_IntervalToMicroseconds( remaining % ticksPerSecond ); -+ tvp = &tv; -+ } -+ -+ ready = select(maxfd + 1, &rd, &wt, &ex, tvp); -+ -+ if (ready == -1 && errno == EINTR) -+ { -+ if (timeout == PR_INTERVAL_NO_TIMEOUT) goto retry; -+ else -+ { -+ elapsed = (PRIntervalTime) (PR_IntervalNow() - start); -+ if (elapsed > timeout) ready = 0; /* timed out */ -+ else -+ { -+ remaining = timeout - elapsed; -+ goto retry; -+ } -+ } -+ } -+ -+ /* -+ ** Now to unravel the select sets back into the client's poll -+ ** descriptor list. Is this possibly an area for pissing away -+ ** a few cycles or what? -+ */ -+ if (ready > 0) -+ { -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ PRInt16 out_flags = 0; -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ PRInt32 osfd; -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ PR_ASSERT(NULL != bottom); -+ -+ osfd = bottom->secret->md.osfd; -+ -+ if (FD_ISSET(osfd, &rd)) -+ { -+ if (pd->out_flags & _PR_POLL_READ_SYS_READ) -+ out_flags |= PR_POLL_READ; -+ if (pd->out_flags & _PR_POLL_WRITE_SYS_READ) -+ out_flags |= PR_POLL_WRITE; -+ } -+ if (FD_ISSET(osfd, &wt)) -+ { -+ if (pd->out_flags & _PR_POLL_READ_SYS_WRITE) -+ out_flags |= PR_POLL_READ; -+ if (pd->out_flags & _PR_POLL_WRITE_SYS_WRITE) -+ out_flags |= PR_POLL_WRITE; -+ } -+ if (FD_ISSET(osfd, &ex)) out_flags |= PR_POLL_EXCEPT; -+ -+/* Workaround for nonblocking connects under net_server */ -+#ifndef BONE_VERSION -+ if (out_flags) -+ { -+ /* check if it is a pending connect */ -+ int i = 0, j = 0; -+ PR_Lock( _connectLock ); -+ for( i = 0; i < connectCount; i++ ) -+ { -+ if(connectList[i].osfd == osfd) -+ { -+ int connectError; -+ int connectResult; -+ -+ connectResult = connect(connectList[i].osfd, -+ &connectList[i].addr, -+ connectList[i].addrlen); -+ connectError = errno; -+ -+ if(connectResult < 0 ) -+ { -+ if(connectError == EINTR || connectError == EWOULDBLOCK || -+ connectError == EINPROGRESS || connectError == EALREADY) -+ { -+ break; -+ } -+ } -+ -+ if(i == (connectCount - 1)) -+ { -+ connectList[i].osfd = -1; -+ } else { -+ for(j = i; j < connectCount; j++ ) -+ { -+ memcpy( &connectList[j], &connectList[j+1], -+ sizeof(connectList[j])); -+ } -+ } -+ connectCount--; -+ -+ bottom->secret->md.connectReturnValue = connectResult; -+ bottom->secret->md.connectReturnError = connectError; -+ bottom->secret->md.connectValueValid = PR_TRUE; -+ break; -+ } -+ } -+ PR_Unlock( _connectLock ); -+ } -+#endif -+ } -+ pd->out_flags = out_flags; -+ if (out_flags) ready++; -+ } -+ PR_ASSERT(ready > 0); -+ } -+ else if (ready < 0) -+ { -+ err = _MD_ERRNO(); -+ if (err == EBADF) -+ { -+ /* Find the bad fds */ -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ pd->out_flags = 0; -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ if (fcntl(bottom->secret->md.osfd, F_GETFL, 0) == -1) -+ { -+ pd->out_flags = PR_POLL_NVAL; -+ ready++; -+ } -+ } -+ } -+ PR_ASSERT(ready > 0); -+ } -+ else set_select_error(err); -+ } -+ -+ return ready; -+} /* PR_POLL */ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_CreateSocketPollFd(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ fd = _PR_Getfd(); -+ -+ if (fd == NULL) PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ else -+ { -+ fd->secret->md.osfd = osfd; -+ fd->secret->inheritable = _PR_TRI_FALSE; -+ fd->secret->state = _PR_FILEDESC_OPEN; -+ fd->methods = PR_GetSocketPollFdMethods(); -+ } -+ -+ return fd; -+} /* PR_CreateSocketPollFD */ -+ -+PR_IMPLEMENT(PRStatus) PR_DestroySocketPollFd(PRFileDesc *fd) -+{ -+ if (NULL == fd) -+ { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} /* PR_DestroySocketPollFd */ -+ -+ -+PR_IMPLEMENT(PRFileDesc *) PR_ImportTCPSocket(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetTCPMethods(), _PR_TRI_UNKNOWN, true); -+ if (fd == NULL) -+ closesocket(osfd); -+ return(fd); -+} -+ -+PR_IMPLEMENT(PRFileDesc *) PR_ImportUDPSocket(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetUDPMethods(), _PR_TRI_UNKNOWN, true); -+ if (fd == NULL) -+ closesocket(osfd); -+ return(fd); -+} -+ -+ -+#ifndef XP_HAIKU -+int socketpair (int family, int type, int protocol, int sv[2]) -+{ -+ int insock, outsock, acceptedsock; -+ struct sockaddr_in addrs[2]; -+ int alen; -+ /* that's really only so we can build... */ -+ /*fprintf(stderr, "socketpair(%d, %d, %d)\n", family, type, protocol);*/ -+ if (family != AF_INET) { -+ /*fatal*/fprintf(stderr, "socketpair(%d, %d, %d): family not supported\n", family, type, protocol); -+ errno = EPFNOSUPPORT; -+ return -1; -+ } -+ if (type != SOCK_DGRAM && type != SOCK_STREAM) { -+ errno = EPROTONOSUPPORT; -+ return -1; -+ } -+ addrs[0].sin_family = AF_INET; -+ addrs[0].sin_port = 0; -+ addrs[0].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ addrs[1].sin_family = AF_INET; -+ addrs[1].sin_port = 0; -+ addrs[1].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ alen = sizeof(struct sockaddr_in); -+ -+ insock = socket(family, type, protocol); -+ if (insock < 0) -+ goto err1; -+ if (bind(insock, (struct sockaddr *)&addrs[0], alen) < 0) -+ goto err2; -+ if (getsockname(insock, (struct sockaddr *)&addrs[0], &alen) < 0) -+ goto err2; -+ if (type == SOCK_STREAM) -+ listen(insock, 2); -+ -+ outsock = socket(family, type, protocol); -+ if (outsock < 0) -+ goto err2; -+ alen = sizeof(struct sockaddr_in); -+ if (bind(outsock, (struct sockaddr *)&addrs[1], alen) < 0) -+ goto err2; -+ if (getsockname(outsock, (struct sockaddr *)&addrs[1], &alen) < 0) -+ goto err3; -+ addrs[0].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ addrs[1].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ /*fprintf(stderr, "socketpair: %08lx:%d <-> %08lx:%d\n", -+ ((struct sockaddr_in *)&addrs[0])->sin_addr.s_addr, -+ ((struct sockaddr_in *)&addrs[0])->sin_port, -+ ((struct sockaddr_in *)&addrs[1])->sin_addr.s_addr, -+ ((struct sockaddr_in *)&addrs[1])->sin_port);*/ -+ -+ if (connect(outsock, (struct sockaddr *)&addrs[0], alen) < 0) -+ goto err3; -+ if (type == SOCK_DGRAM) { -+ if (connect(insock, (struct sockaddr *)&addrs[1], alen) < 0) -+ goto err3; -+ sv[0] = insock; -+ } else { -+ acceptedsock = accept(insock, (struct sockaddr *)&addrs[1], &alen); -+ if (acceptedsock < 0) -+ goto err3; -+ closesocket(insock); -+ sv[0] = acceptedsock; -+ } -+ sv[1] = outsock; -+ return 0; -+err3: -+ closesocket(outsock); -+err2: -+ closesocket(insock); -+err1: -+ fprintf(stderr,"socketpair: error 0x%08x\n", errno); -+ return -1; -+} -+#endif -+ -+PR_IMPLEMENT(PRStatus) PR_NewTCPSocketPair(PRFileDesc *f[]) -+{ -+ PRInt32 rv, osfd[2]; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+#ifdef XP_HAIKU -+ rv = socketpair(AF_UNIX, SOCK_STREAM, 0, osfd); -+#else -+ rv = socketpair(AF_INET, SOCK_STREAM, 0, osfd); -+#endif -+ if (rv == -1) { -+ return PR_FAILURE; -+ } -+ f[0] = bt_CreateFileDesc(osfd[0], PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (NULL == f[0]) { -+ closesocket(osfd[0]); -+ closesocket(osfd[1]); -+ /* PR_AllocFileDesc() has invoked PR_SetError(). */ -+ return PR_FAILURE; -+ } -+ f[1] = bt_CreateFileDesc(osfd[1], PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (NULL == f[1]) { -+ PR_Close(f[0]); -+ closesocket(osfd[1]); -+ /* PR_AllocFileDesc() has invoked PR_SetError(). */ -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetConnectStatus(const PRPollDesc *pd) { -+ PRInt32 osfd; -+#ifndef BONE_VERSION -+ int rv; -+#endif -+ PRFileDesc *bottom; -+ -+ if (pd->out_flags & PR_POLL_NVAL) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if ((pd->out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0) { -+ PR_ASSERT(pd->out_flags == 0); -+ PR_SetError(PR_IN_PROGRESS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ -+ /* Find the NSPR layer and invoke its connectcontinue method */ -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ if (NULL == bottom) -+ { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ osfd = bottom->secret->md.osfd; -+#ifdef BONE_VERSION /* bug 122364 */ -+ /* temporary workaround until getsockopt(SO_ERROR) works in BONE */ -+ if (pd->out_flags & PR_POLL_EXCEPT) { -+ PR_SetError(PR_CONNECT_REFUSED_ERROR, 0); -+ return PR_FAILURE; -+ } -+ PR_ASSERT(pd->out_flags & PR_POLL_WRITE); -+ return PR_SUCCESS; -+#else -+ rv = recv(bottom->secret->md.osfd, NULL, 0, 0); -+ PR_ASSERT(-1 == rv || 0 == rv); -+ -+ if (-1 == rv && 0 != errno && errno != EAGAIN && errno != EWOULDBLOCK ) { -+ set_connect_error(errno); -+ return PR_FAILURE; -+ } -+ else -+ return PR_SUCCESS; -+#endif /* BONE_VERSION */ -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_Socket(PRInt32 domain, PRInt32 type, PRInt32 proto) -+{ -+ PRInt32 osfd, err; -+ PRFileDesc *fd; -+ PRInt32 tmp_domain = domain; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ if (PR_AF_INET != domain -+ && PR_AF_INET6 != domain -+ ) { -+ PR_SetError(PR_ADDRESS_NOT_SUPPORTED_ERROR, 0); -+ return NULL; -+ } -+ if( type != SOCK_STREAM && type != SOCK_DGRAM ) -+ { -+ PR_SetError(PR_ADDRESS_NOT_SUPPORTED_ERROR, 0); -+ return NULL; -+ } -+ -+#if defined(_PR_INET6_PROBE) -+ if (PR_AF_INET6 == domain) { -+ if (_pr_ipv6_is_present == PR_FALSE) -+ domain = AF_INET; -+ else -+ domain = AF_INET6; -+ } -+#elif defined(_PR_INET6) -+ if (PR_AF_INET6 == domain) -+ domain = AF_INET6; -+#else -+ if (PR_AF_INET6 == domain) -+ domain = AF_INET; -+#endif /* _PR_INET6 */ -+#ifndef BONE_VERSION -+ osfd = socket(domain, type, 0); -+#else -+ osfd = socket(domain, type, proto); -+#endif -+ if (osfd == -1) { -+ err = _MD_ERRNO(); -+ set_socket_error(err); -+ return 0; -+ } -+ fd = bt_CreateFileDesc(osfd, SOCK_STREAM == type?PR_GetTCPMethods() : PR_GetUDPMethods(), _PR_TRI_TRUE, true); -+ -+ if (fd != NULL) { -+#if defined(_PR_INET6_PROBE) || !defined(_PR_INET6) -+ /* -+ * For platforms with no support for IPv6 -+ * create layered socket for IPv4-mapped IPv6 addresses -+ */ -+ if (PR_AF_INET6 == tmp_domain && PR_AF_INET == domain) { -+ if (PR_FAILURE == _pr_push_ipv6toipv4_layer(fd)) { -+ PR_Close(fd); -+ fd = NULL; -+ } -+ } -+#endif -+ } else -+ closesocket(osfd); -+ -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRFileDesc *) PR_NewTCPSocket(void) -+{ -+ return PR_Socket(AF_INET, SOCK_STREAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_NewUDPSocket(void) -+{ -+ return PR_Socket(AF_INET, SOCK_DGRAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc *) PR_OpenTCPSocket(PRIntn af) -+{ -+ return PR_Socket(af, SOCK_STREAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_OpenUDPSocket(PRIntn af) -+{ -+ return PR_Socket(af, SOCK_DGRAM, 0); -+} -+ -Index: mozilla/nsprpub/pr/src/bthreads/btlocks.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btlocks.c,v -retrieving revision 3.7 -diff -u -8 -p -r3.7 btlocks.c ---- mozilla/nsprpub/pr/src/bthreads/btlocks.c 23 Feb 2005 17:43:13 -0000 3.7 -+++ mozilla/nsprpub/pr/src/bthreads/btlocks.c 9 Feb 2009 04:04:36 -0000 -@@ -38,44 +38,38 @@ - /* - ** File: btlocks.c - ** Description: Implemenation for thread locks using bthreads - ** Exports: prlock.h - */ - - #include "primpl.h" - --#include --#include -- - void - _PR_InitLocks (void) - { - } - - PR_IMPLEMENT(PRLock*) - PR_NewLock (void) - { - PRLock *lock; - status_t semresult; - - if (!_pr_initialized) _PR_ImplicitInitialization(); - - lock = PR_NEWZAP(PRLock); - if (lock != NULL) { -- -- lock->benaphoreCount = 0; -- lock->semaphoreID = create_sem( 0, "nsprLockSem" ); -- if( lock->semaphoreID < B_NO_ERROR ) { -- -- PR_DELETE( lock ); -- lock = NULL; -- } -+ lock->benaphoreCount = 0; -+ lock->semaphoreID = create_sem( 0, "nsprLockSem" ); -+ if( lock->semaphoreID < B_NO_ERROR ) { -+ PR_DELETE( lock ); -+ lock = NULL; -+ } - } -- - return lock; - } - - PR_IMPLEMENT(void) - PR_DestroyLock (PRLock* lock) - { - status_t result; - -@@ -83,34 +77,34 @@ PR_IMPLEMENT(void) - result = delete_sem(lock->semaphoreID); - PR_ASSERT(result == B_NO_ERROR); - PR_DELETE(lock); - } - - PR_IMPLEMENT(void) - PR_Lock (PRLock* lock) - { -+ status_t result; -+ - PR_ASSERT(lock != NULL); - -- if( atomic_add( &lock->benaphoreCount, 1 ) > 0 ) { -- -- if( acquire_sem(lock->semaphoreID ) != B_NO_ERROR ) { -- -- atomic_add( &lock->benaphoreCount, -1 ); -- return; -- } -+ if( _MD_ATOMIC_INCREMENT( &lock->benaphoreCount) > 1 ) { -+ result = acquire_sem(lock->semaphoreID ); -+ PR_ASSERT(result == B_NO_ERROR); -+ if( result != B_NO_ERROR ) { -+ _MD_ATOMIC_DECREMENT( &lock->benaphoreCount); -+ return; -+ } - } -- - lock->owner = find_thread( NULL ); - } - - PR_IMPLEMENT(PRStatus) - PR_Unlock (PRLock* lock) - { - PR_ASSERT(lock != NULL); - lock->owner = NULL; -- if( atomic_add( &lock->benaphoreCount, -1 ) > 1 ) { -- -- release_sem_etc( lock->semaphoreID, 1, B_DO_NOT_RESCHEDULE ); -+ if( _MD_ATOMIC_DECREMENT( &lock->benaphoreCount ) > 0 ) { -+ release_sem_etc( lock->semaphoreID, 1, B_DO_NOT_RESCHEDULE ); - } - - return PR_SUCCESS; - } -Index: mozilla/nsprpub/pr/src/bthreads/btmisc.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btmisc.c,v -retrieving revision 3.5 -diff -u -8 -p -r3.5 btmisc.c ---- mozilla/nsprpub/pr/src/bthreads/btmisc.c 25 Apr 2004 15:00:57 -0000 3.5 -+++ mozilla/nsprpub/pr/src/bthreads/btmisc.c 9 Feb 2009 04:04:37 -0000 -@@ -15,17 +15,18 @@ - * The Original Code is the Netscape Portable Runtime (NSPR). - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -- * -+ * Fredrik Holmqvist -+ * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice -@@ -33,72 +34,38 @@ - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" - #include - --// void _PR_InitCPUs(void) {PT_LOG("_PR_InitCPUs")} --// void _MD_StartInterrupts(void) {PT_LOG("_MD_StartInterrupts")} -- --/* this is a total hack.. */ -- -+/* this is a total hack.. -+ * It's needed for netserver to compile. -+ * See nsprpub/pr/include/prnetdb.h -+ */ -+#ifndef BONE_VERSION - struct protoent* getprotobyname(const char* name) - { - return 0; - } - - struct protoent* getprotobynumber(int number) - { - return 0; - } -- --/* this is needed by prinit for some reason */ --void --_PR_InitStacks (void) --{ --} -- --/* this is needed by prinit for some reason */ --void --_PR_InitTPD (void) --{ --} -- --/* --** Create extra virtual processor threads. Generally used with MP systems. --*/ --PR_IMPLEMENT(void) -- PR_SetConcurrency (PRUintn numCPUs) --{ --} -- --/* --** Set thread recycle mode to on (1) or off (0) --*/ --PR_IMPLEMENT(void) -- PR_SetThreadRecycleMode (PRUint32 flag) --{ --} -+#endif - - /* - ** Get context registers, return with error for now. - */ -- - PR_IMPLEMENT(PRWord *) - _MD_HomeGCRegisters( PRThread *t, int isCurrent, int *np ) - { - return 0; - } - --PR_IMPLEMENT(void *) --PR_GetSP( PRThread *t ) --{ -- return 0; --} -- - PR_IMPLEMENT(PRStatus) - PR_EnumerateThreads( PREnumerator func, void *arg ) - { - return PR_FAILURE; - } -Index: mozilla/nsprpub/pr/src/bthreads/btsem.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btsem.c,v -retrieving revision 3.7 -diff -u -8 -p -r3.7 btsem.c ---- mozilla/nsprpub/pr/src/bthreads/btsem.c 23 Feb 2005 17:43:13 -0000 3.7 -+++ mozilla/nsprpub/pr/src/bthreads/btsem.c 9 Feb 2009 04:04:37 -0000 -@@ -33,51 +33,52 @@ - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include - - #include "primpl.h" -+#include "obsolete/prsem.h" - - /* - ** Create a new semaphore object. - */ - PR_IMPLEMENT(PRSemaphore*) - PR_NewSem (PRUintn value) - { -- PRSemaphore *semaphore; -+ PRSemaphore *semaphore; - -- if (!_pr_initialized) _PR_ImplicitInitialization(); -+ if (!_pr_initialized) _PR_ImplicitInitialization(); - -- semaphore = PR_NEWZAP(PRSemaphore); -- if (NULL != semaphore) { -- if ((semaphore->sem = create_sem(value, "nspr_sem")) < B_NO_ERROR) -- return NULL; -- else -- return semaphore; -- } -- return NULL; -+ semaphore = PR_NEWZAP(PRSemaphore); -+ if (NULL != semaphore) { -+ if ((semaphore->sem = create_sem(value, "nspr_sem")) < B_NO_ERROR) -+ return NULL; -+ else -+ return semaphore; -+ } -+ return NULL; - } - - /* - ** Destroy the given semaphore object. - ** - */ - PR_IMPLEMENT(void) - PR_DestroySem (PRSemaphore *sem) - { -- status_t result; -+ status_t result; - -- PR_ASSERT(sem != NULL); -- result = delete_sem(sem->sem); -- PR_ASSERT(result == B_NO_ERROR); -- PR_DELETE(sem); --} -+ PR_ASSERT(sem != NULL); -+ result = delete_sem(sem->sem); -+ PR_ASSERT(result == B_NO_ERROR); -+ PR_DELETE(sem); -+} - - /* - ** Wait on a Semaphore. - ** - ** This routine allows a calling thread to wait or proceed depending upon - ** the state of the semahore sem. The thread can proceed only if the - ** counter value of the semaphore sem is currently greater than 0. If the - ** value of semaphore sem is positive, it is decremented by one and the -@@ -86,45 +87,45 @@ PR_IMPLEMENT(void) - ** semaphore to be released by another thread. - ** - ** This routine can return PR_PENDING_INTERRUPT if the waiting thread - ** has been interrupted. - */ - PR_IMPLEMENT(PRStatus) - PR_WaitSem (PRSemaphore *sem) - { -- PR_ASSERT(sem != NULL); -- if (acquire_sem(sem->sem) == B_NO_ERROR) -- return PR_SUCCESS; -- else -- return PR_FAILURE; -+ PR_ASSERT(sem != NULL); -+ if (acquire_sem(sem->sem) == B_NO_ERROR) -+ return PR_SUCCESS; -+ else -+ return PR_FAILURE; - } - - /* - ** This routine increments the counter value of the semaphore. If other - ** threads are blocked for the semaphore, then the scheduler will - ** determine which ONE thread will be unblocked. - */ - PR_IMPLEMENT(void) - PR_PostSem (PRSemaphore *sem) - { -- status_t result; -+ status_t result; - -- PR_ASSERT(sem != NULL); -- result = release_sem_etc(sem->sem, 1, B_DO_NOT_RESCHEDULE); -- PR_ASSERT(result == B_NO_ERROR); -+ PR_ASSERT(sem != NULL); -+ result = release_sem_etc(sem->sem, 1, B_DO_NOT_RESCHEDULE); -+ PR_ASSERT(result == B_NO_ERROR); - } - - /* - ** Returns the value of the semaphore referenced by sem without affecting - ** the state of the semaphore. The value represents the semaphore value - ** at the time of the call, but may not be the actual value when the - ** caller inspects it. - */ - PR_IMPLEMENT(PRUintn) - PR_GetValueSem (PRSemaphore *sem) - { -- sem_info info; -+ sem_info info; - -- PR_ASSERT(sem != NULL); -- get_sem_info(sem->sem, &info); -- return info.count; -+ PR_ASSERT(sem != NULL); -+ get_sem_info(sem->sem, &info); -+ return info.count; - } -Index: mozilla/nsprpub/pr/src/bthreads/btthread.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/bthreads/btthread.c,v -retrieving revision 3.8 -diff -u -8 -p -r3.8 btthread.c ---- mozilla/nsprpub/pr/src/bthreads/btthread.c 25 Apr 2004 15:00:57 -0000 3.8 -+++ mozilla/nsprpub/pr/src/bthreads/btthread.c 9 Feb 2009 04:04:39 -0000 -@@ -45,39 +45,39 @@ - - #include - #include - #include - - /* values for PRThread.state */ - #define BT_THREAD_PRIMORD 0x01 /* this is the primordial thread */ - #define BT_THREAD_SYSTEM 0x02 /* this is a system thread */ --#define BT_THREAD_JOINABLE 0x04 /* this is a joinable thread */ -+#define BT_THREAD_JOINABLE 0x04 /* this is a joinable thread */ - - struct _BT_Bookeeping - { - PRLock *ml; /* a lock to protect ourselves */ -- sem_id cleanUpSem; /* the primoridal thread will block on this -- sem while waiting for the user threads */ -- PRInt32 threadCount; /* user thred count */ -+ sem_id cleanUpSem; /* the primoridal thread will block on this -+ sem while waiting for the user threads */ -+ PRInt32 threadCount; /* user thred count */ - - } bt_book = { NULL, B_ERROR, 0 }; - - --#define BT_TPD_LIMIT 128 /* number of TPD slots we'll provide (arbitrary) */ -+#define BT_TPD_LIMIT 128 /* number of TPD slots we'll provide (arbitrary) */ - - /* these will be used to map an index returned by PR_NewThreadPrivateIndex() - to the corresponding beos native TLS slot number, and to the destructor - for that slot - note that, because it is allocated globally, this data - will be automatically zeroed for us when the program begins */ - static int32 tpd_beosTLSSlots[BT_TPD_LIMIT]; - static PRThreadPrivateDTOR tpd_dtors[BT_TPD_LIMIT]; - --static vint32 tpd_slotsUsed=0; /* number of currently-allocated TPD slots */ --static int32 tls_prThreadSlot; /* TLS slot in which PRThread will be stored */ -+static vint32 tpd_slotsUsed=0; /* number of currently-allocated TPD slots */ -+static int32 tls_prThreadSlot; /* TLS slot in which PRThread will be stored */ - - /* this mutex will be used to synchronize access to every - PRThread.md.joinSem and PRThread.md.is_joining (we could - actually allocate one per thread, but that seems a bit excessive, - especially considering that there will probably be little - contention, PR_JoinThread() is allowed to block anyway, and the code - protected by the mutex is short/fast) */ - static PRLock *joinSemLock; -@@ -89,355 +89,346 @@ static PRThread *_bt_AttachThread(); - - void - _PR_InitThreads (PRThreadType type, PRThreadPriority priority, - PRUintn maxPTDs) - { - PRThread *primordialThread; - PRUint32 beThreadPriority; - -- /* allocate joinSem mutex */ -- joinSemLock = PR_NewLock(); -- if (joinSemLock == NULL) -- { -- PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -- return; -+ /* allocate joinSem mutex */ -+ joinSemLock = PR_NewLock(); -+ if (joinSemLock == NULL) -+ { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return; - } - - /* - ** Create and initialize NSPR structure for our primordial thread. - */ - - primordialThread = PR_NEWZAP(PRThread); - if( NULL == primordialThread ) - { - PR_SetError( PR_OUT_OF_MEMORY_ERROR, 0 ); - return; - } - -- primordialThread->md.joinSem = B_ERROR; -+ primordialThread->md.joinSem = B_ERROR; - - /* - ** Set the priority to the desired level. - */ - - beThreadPriority = _bt_MapNSPRToNativePriority( priority ); -- - set_thread_priority( find_thread( NULL ), beThreadPriority ); -- - primordialThread->priority = priority; - -- -- /* set the thread's state - note that the thread is not joinable */ -+ /* set the thread's state - note that the thread is not joinable */ - primordialThread->state |= BT_THREAD_PRIMORD; -- if (type == PR_SYSTEM_THREAD) -- primordialThread->state |= BT_THREAD_SYSTEM; -+ if (type == PR_SYSTEM_THREAD) -+ primordialThread->state |= BT_THREAD_SYSTEM; - - /* - ** Allocate a TLS slot for the PRThread structure (just using - ** native TLS, as opposed to NSPR TPD, will make PR_GetCurrentThread() - ** somewhat faster, and will leave one more TPD slot for our client) - */ -- -- tls_prThreadSlot = tls_allocate(); -+ -+ tls_prThreadSlot = tls_allocate(); - - /* - ** Stuff our new PRThread structure into our thread specific - ** slot. - */ - -- tls_set(tls_prThreadSlot, primordialThread); -+ tls_set(tls_prThreadSlot, primordialThread); - -- /* allocate lock for bt_book */ -+ /* allocate lock for bt_book */ - bt_book.ml = PR_NewLock(); - if( NULL == bt_book.ml ) - { -- PR_SetError( PR_OUT_OF_MEMORY_ERROR, 0 ); -- return; -+ PR_SetError( PR_OUT_OF_MEMORY_ERROR, 0 ); -+ return; - } - } - - PRUint32 - _bt_MapNSPRToNativePriority( PRThreadPriority priority ) -- { -+{ - switch( priority ) - { -- case PR_PRIORITY_LOW: return( B_LOW_PRIORITY ); -- case PR_PRIORITY_NORMAL: return( B_NORMAL_PRIORITY ); -- case PR_PRIORITY_HIGH: return( B_DISPLAY_PRIORITY ); -- case PR_PRIORITY_URGENT: return( B_URGENT_DISPLAY_PRIORITY ); -- default: return( B_NORMAL_PRIORITY ); -+ case PR_PRIORITY_LOW: return( B_LOW_PRIORITY ); -+ case PR_PRIORITY_NORMAL: return( B_NORMAL_PRIORITY ); -+ case PR_PRIORITY_HIGH: return( B_DISPLAY_PRIORITY ); -+ case PR_PRIORITY_URGENT: return( B_URGENT_DISPLAY_PRIORITY ); -+ default: return( B_NORMAL_PRIORITY ); - } - } - - PRThreadPriority - _bt_MapNativeToNSPRPriority(PRUint32 priority) -- { -- if (priority < B_NORMAL_PRIORITY) -- return PR_PRIORITY_LOW; -- if (priority < B_DISPLAY_PRIORITY) -- return PR_PRIORITY_NORMAL; -- if (priority < B_URGENT_DISPLAY_PRIORITY) -- return PR_PRIORITY_HIGH; -- return PR_PRIORITY_URGENT; -+{ -+ if (priority < B_NORMAL_PRIORITY) -+ return PR_PRIORITY_LOW; -+ if (priority < B_DISPLAY_PRIORITY) -+ return PR_PRIORITY_NORMAL; -+ if (priority < B_URGENT_DISPLAY_PRIORITY) -+ return PR_PRIORITY_HIGH; -+ return PR_PRIORITY_URGENT; - } - - PRUint32 - _bt_mapNativeToNSPRPriority( int32 priority ) - { - switch( priority ) - { -- case PR_PRIORITY_LOW: return( B_LOW_PRIORITY ); -- case PR_PRIORITY_NORMAL: return( B_NORMAL_PRIORITY ); -- case PR_PRIORITY_HIGH: return( B_DISPLAY_PRIORITY ); -- case PR_PRIORITY_URGENT: return( B_URGENT_DISPLAY_PRIORITY ); -- default: return( B_NORMAL_PRIORITY ); -+ case PR_PRIORITY_LOW: return( B_LOW_PRIORITY ); -+ case PR_PRIORITY_NORMAL: return( B_NORMAL_PRIORITY ); -+ case PR_PRIORITY_HIGH: return( B_DISPLAY_PRIORITY ); -+ case PR_PRIORITY_URGENT: return( B_URGENT_DISPLAY_PRIORITY ); -+ default: return( B_NORMAL_PRIORITY ); - } - } - - /* This method is called by all NSPR threads as they exit */ - void _bt_CleanupThread(void *arg) - { -- PRThread *me = PR_GetCurrentThread(); -- int32 i; -+ PRThread *me = PR_GetCurrentThread(); -+ int32 i; - -- /* first, clean up all thread-private data */ -- for (i = 0; i < tpd_slotsUsed; i++) -- { -- void *oldValue = tls_get(tpd_beosTLSSlots[i]); -- if ( oldValue != NULL && tpd_dtors[i] != NULL ) -- (*tpd_dtors[i])(oldValue); -- } -- -- /* if this thread is joinable, wait for someone to join it */ -- if (me->state & BT_THREAD_JOINABLE) -- { -- /* protect access to our joinSem */ -- PR_Lock(joinSemLock); -- -- if (me->md.is_joining) -- { -- /* someone is already waiting to join us (they've -- allocated a joinSem for us) - let them know we're -- ready */ -- delete_sem(me->md.joinSem); -- -- PR_Unlock(joinSemLock); -- -- } -- else -- { -- /* noone is currently waiting for our demise - it -- is our responsibility to allocate the joinSem -- and block on it */ -- me->md.joinSem = create_sem(0, "join sem"); -- -- /* we're done accessing our joinSem */ -- PR_Unlock(joinSemLock); -- -- /* wait for someone to join us */ -- while (acquire_sem(me->md.joinSem) == B_INTERRUPTED); -- } -- } -- -- /* if this is a user thread, we must update our books */ -- if ((me->state & BT_THREAD_SYSTEM) == 0) -- { -- /* synchronize access to bt_book */ -- PR_Lock( bt_book.ml ); -- -- /* decrement the number of currently-alive user threads */ -- bt_book.threadCount--; -+ /* first, clean up all thread-private data */ -+ for (i = 0; i < tpd_slotsUsed; i++) -+ { -+ void *oldValue = tls_get(tpd_beosTLSSlots[i]); -+ if ( oldValue != NULL && tpd_dtors[i] != NULL ) -+ (*tpd_dtors[i])(oldValue); -+ } -+ -+ /* if this thread is joinable, wait for someone to join it */ -+ if (me->state & BT_THREAD_JOINABLE) -+ { -+ /* protect access to our joinSem */ -+ PR_Lock(joinSemLock); -+ -+ if (me->md.is_joining) -+ { -+ /* someone is already waiting to join us (they've -+ allocated a joinSem for us) - let them know we're -+ ready */ -+ delete_sem(me->md.joinSem); -+ PR_Unlock(joinSemLock); -+ } -+ else -+ { -+ /* noone is currently waiting for our demise - it -+ is our responsibility to allocate the joinSem -+ and block on it */ -+ me->md.joinSem = create_sem(0, "join sem"); -+ /* we're done accessing our joinSem */ -+ PR_Unlock(joinSemLock); -+ /* wait for someone to join us */ -+ while (acquire_sem(me->md.joinSem) == B_INTERRUPTED); -+ } -+ } - -- if (bt_book.threadCount == 0 && bt_book.cleanUpSem != B_ERROR) { -- /* we are the last user thread, and the primordial thread is -- blocked in PR_Cleanup() waiting for us to finish - notify -- it */ -- delete_sem(bt_book.cleanUpSem); -- } -+ /* if this is a user thread, we must update our books */ -+ if ((me->state & BT_THREAD_SYSTEM) == 0) -+ { -+ /* synchronize access to bt_book */ -+ PR_Lock( bt_book.ml ); -+ /* decrement the number of currently-alive user threads */ -+ bt_book.threadCount--; -+ if (bt_book.threadCount == 0 && bt_book.cleanUpSem != B_ERROR) { -+ /* we are the last user thread, and the primordial thread is -+ blocked in PR_Cleanup() waiting for us to finish - notify -+ it */ -+ delete_sem(bt_book.cleanUpSem); -+ } - - PR_Unlock( bt_book.ml ); -- } -+ } - -- /* finally, delete this thread's PRThread */ -- PR_DELETE(me); -+ /* finally, delete this thread's PRThread */ -+ PR_DELETE(me); - } - - /** - * This is a wrapper that all threads invoke that allows us to set some - * things up prior to a thread's invocation and clean up after a thread has - * exited. - */ - static void* - _bt_root (void* arg) -- { -+{ - PRThread *thred = (PRThread*)arg; - PRIntn rv; - void *privData; - status_t result; - int i; - -- /* save our PRThread object into our TLS */ -- tls_set(tls_prThreadSlot, thred); -- -+ /* save our PRThread object into our TLS */ -+ tls_set(tls_prThreadSlot, thred); - thred->startFunc(thred->arg); /* run the dang thing */ -+ /* clean up */ -+ _bt_CleanupThread(NULL); - -- /* clean up */ -- _bt_CleanupThread(NULL); -- -- return 0; -+ return 0; - } - - PR_IMPLEMENT(PRThread*) - PR_CreateThread (PRThreadType type, void (*start)(void* arg), void* arg, - PRThreadPriority priority, PRThreadScope scope, - PRThreadState state, PRUint32 stackSize) - { - PRUint32 bePriority; -- - PRThread* thred; - - if (!_pr_initialized) _PR_ImplicitInitialization(); - -- thred = PR_NEWZAP(PRThread); -- if (thred == NULL) -- { -+ thred = PR_NEWZAP(PRThread); -+ if (thred == NULL) -+ { - PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); - return NULL; - } - - thred->md.joinSem = B_ERROR; -+ thred->arg = arg; -+ thred->startFunc = start; -+ thred->priority = priority; - -- thred->arg = arg; -- thred->startFunc = start; -- thred->priority = priority; -- -- if( state == PR_JOINABLE_THREAD ) -- { -- thred->state |= BT_THREAD_JOINABLE; -- } -- -- /* keep some books */ -- -- PR_Lock( bt_book.ml ); -- -- if (type == PR_USER_THREAD) -- { -- bt_book.threadCount++; -- } -+ if( state == PR_JOINABLE_THREAD ) -+ { -+ thred->state |= BT_THREAD_JOINABLE; -+ } - -- PR_Unlock( bt_book.ml ); -+ /* keep some books */ -+ PR_Lock( bt_book.ml ); - -- bePriority = _bt_MapNSPRToNativePriority( priority ); -+ if (type == PR_USER_THREAD) -+ { -+ bt_book.threadCount++; -+ } - -- thred->md.tid = spawn_thread((thread_func)_bt_root, "moz-thread", -+ PR_Unlock( bt_book.ml ); -+ bePriority = _bt_MapNSPRToNativePriority( priority ); -+ thred->md.tid = spawn_thread((thread_func)_bt_root, "moz-thread", - bePriority, thred); -- if (thred->md.tid < B_OK) { -- PR_SetError(PR_UNKNOWN_ERROR, thred->md.tid); -- PR_DELETE(thred); -- return NULL; -- } -+ if (thred->md.tid < B_OK) { -+ PR_SetError(PR_UNKNOWN_ERROR, thred->md.tid); -+ PR_DELETE(thred); -+ return NULL; -+ } - -- if (resume_thread(thred->md.tid) < B_OK) { -- PR_SetError(PR_UNKNOWN_ERROR, 0); -- PR_DELETE(thred); -- return NULL; -- } -+ if (resume_thread(thred->md.tid) < B_OK) { -+ PR_SetError(PR_UNKNOWN_ERROR, 0); -+ PR_DELETE(thred); -+ return NULL; -+ } - - return thred; -- } -+} - - PR_IMPLEMENT(PRThread*) -- PR_AttachThread(PRThreadType type, PRThreadPriority priority, -- PRThreadStack *stack) -+ PR_AttachThread(PRThreadType type, PRThreadPriority priority, -+ PRThreadStack *stack) - { -- /* PR_GetCurrentThread() will attach a thread if necessary */ -- return PR_GetCurrentThread(); -+ /* PR_GetCurrentThread() will attach a thread if necessary */ -+ return PR_GetCurrentThread(); - } - - PR_IMPLEMENT(void) -- PR_DetachThread() -+ PR_DetachThread() - { -- /* we don't support detaching */ -+ /* we don't support detaching */ - } - - PR_IMPLEMENT(PRStatus) - PR_JoinThread (PRThread* thred) - { - status_t eval, status; - - PR_ASSERT(thred != NULL); - -- if ((thred->state & BT_THREAD_JOINABLE) == 0) -+ if ((thred->state & BT_THREAD_JOINABLE) == 0) -+ { -+ PR_SetError( PR_INVALID_ARGUMENT_ERROR, 0 ); -+ return( PR_FAILURE ); -+ } -+ -+ /* synchronize access to the thread's joinSem */ -+ PR_Lock(joinSemLock); -+ -+ if (thred->md.is_joining) - { -- PR_SetError( PR_INVALID_ARGUMENT_ERROR, 0 ); -- return( PR_FAILURE ); -+ /* another thread is already waiting to join the specified -+ thread - we must fail */ -+ PR_Unlock(joinSemLock); -+ return PR_FAILURE; - } - -- /* synchronize access to the thread's joinSem */ -- PR_Lock(joinSemLock); -- -- if (thred->md.is_joining) -- { -- /* another thread is already waiting to join the specified -- thread - we must fail */ -- PR_Unlock(joinSemLock); -- return PR_FAILURE; -- } -- -- /* let others know we are waiting to join */ -- thred->md.is_joining = PR_TRUE; -- -- if (thred->md.joinSem == B_ERROR) -- { -- /* the thread hasn't finished yet - it is our responsibility to -- allocate a joinSem and wait on it */ -- thred->md.joinSem = create_sem(0, "join sem"); -- -- /* we're done changing the joinSem now */ -- PR_Unlock(joinSemLock); -- -- /* wait for the thread to finish */ -- while (acquire_sem(thred->md.joinSem) == B_INTERRUPTED); -- -- } -- else -- { -- /* the thread has already finished, and has allocated the -- joinSem itself - let it know it can finally die */ -- delete_sem(thred->md.joinSem); -- -- PR_Unlock(joinSemLock); -+ /* let others know we are waiting to join */ -+ thred->md.is_joining = PR_TRUE; -+ -+ if (thred->md.joinSem == B_ERROR) -+ { -+ /* the thread hasn't finished yet - it is our responsibility to -+ allocate a joinSem and wait on it */ -+ thred->md.joinSem = create_sem(0, "join sem"); -+ -+ /* we're done changing the joinSem now */ -+ PR_Unlock(joinSemLock); -+ -+ /* wait for the thread to finish */ -+ while (acquire_sem(thred->md.joinSem) == B_INTERRUPTED); -+ -+ } -+ else -+ { -+ /* the thread has already finished, and has allocated the -+ joinSem itself - let it know it can finally die */ -+ delete_sem(thred->md.joinSem); -+ -+ PR_Unlock(joinSemLock); - } - -- /* make sure the thread is dead */ -+ /* make sure the thread is dead */ - wait_for_thread(thred->md.tid, &eval); - - return PR_SUCCESS; - } - - PR_IMPLEMENT(PRThread*) - PR_GetCurrentThread () - { - PRThread* thred; - - if (!_pr_initialized) _PR_ImplicitInitialization(); - - thred = (PRThread *)tls_get( tls_prThreadSlot); -- if (thred == NULL) -- { -- /* this thread doesn't have a PRThread structure (it must be -- a native thread not created by the NSPR) - assimilate it */ -- thred = _bt_AttachThread(); -- } -+ if (thred == NULL) -+ { -+ /* this thread doesn't have a PRThread structure (it must be -+ a native thread not created by the NSPR) - assimilate it */ -+ thred = _bt_AttachThread(); -+ } - PR_ASSERT(NULL != thred); - - return thred; - } - -+PR_IMPLEMENT(void*)PR_GetSP(PRThread *thred) -+{ -+ thread_info tInfo; -+ get_thread_info(thred->md.tid, &tInfo); -+ return tInfo.stack_base; /* or should it be _end? */ -+} -+ - PR_IMPLEMENT(PRThreadScope) - PR_GetThreadScope (const PRThread* thred) - { - PR_ASSERT(thred != NULL); - return PR_GLOBAL_THREAD; - } - - PR_IMPLEMENT(PRThreadType) -@@ -448,17 +439,17 @@ PR_IMPLEMENT(PRThreadType) - PR_SYSTEM_THREAD : PR_USER_THREAD; - } - - PR_IMPLEMENT(PRThreadState) - PR_GetThreadState (const PRThread* thred) - { - PR_ASSERT(thred != NULL); - return (thred->state & BT_THREAD_JOINABLE)? -- PR_JOINABLE_THREAD: PR_UNJOINABLE_THREAD; -+ PR_JOINABLE_THREAD: PR_UNJOINABLE_THREAD; - } - - PR_IMPLEMENT(PRThreadPriority) - PR_GetThreadPriority (const PRThread* thred) - { - PR_ASSERT(thred != NULL); - return thred->priority; - } /* PR_GetThreadPriority */ -@@ -474,82 +465,82 @@ PR_IMPLEMENT(void) PR_SetThreadPriority( - bePriority = _bt_MapNSPRToNativePriority( newPri ); - set_thread_priority( thred->md.tid, bePriority ); - } - - PR_IMPLEMENT(PRStatus) - PR_NewThreadPrivateIndex (PRUintn* newIndex, - PRThreadPrivateDTOR destructor) - { -- int32 index; -+ int32 index; - - if (!_pr_initialized) _PR_ImplicitInitialization(); - -- /* reserve the next available tpd slot */ -- index = atomic_add( &tpd_slotsUsed, 1 ); -- if (index >= BT_TPD_LIMIT) -- { -- /* no slots left - decrement value, then fail */ -- atomic_add( &tpd_slotsUsed, -1 ); -- PR_SetError( PR_TPD_RANGE_ERROR, 0 ); -- return( PR_FAILURE ); -- } -- -- /* allocate a beos-native TLS slot for this index (the new slot -- automatically contains NULL) */ -- tpd_beosTLSSlots[index] = tls_allocate(); -+ /* reserve the next available tpd slot */ -+ index = atomic_add( &tpd_slotsUsed, 1 ); -+ if (index >= BT_TPD_LIMIT) -+ { -+ /* no slots left - decrement value, then fail */ -+ atomic_add( &tpd_slotsUsed, -1 ); -+ PR_SetError( PR_TPD_RANGE_ERROR, 0 ); -+ return( PR_FAILURE ); -+ } -+ -+ /* allocate a beos-native TLS slot for this index (the new slot -+ automatically contains NULL) */ -+ tpd_beosTLSSlots[index] = tls_allocate(); - -- /* remember the destructor */ -- tpd_dtors[index] = destructor; -+ /* remember the destructor */ -+ tpd_dtors[index] = destructor; - - *newIndex = (PRUintn)index; - - return( PR_SUCCESS ); - } - - PR_IMPLEMENT(PRStatus) - PR_SetThreadPrivate (PRUintn index, void* priv) - { -- void *oldValue; -+ void *oldValue; - - /* - ** Sanity checking - */ - - if(index < 0 || index >= tpd_slotsUsed || index >= BT_TPD_LIMIT) - { -- PR_SetError( PR_TPD_RANGE_ERROR, 0 ); -- return( PR_FAILURE ); -+ PR_SetError( PR_TPD_RANGE_ERROR, 0 ); -+ return( PR_FAILURE ); - } - -- /* if the old value isn't NULL, and the dtor for this slot isn't -- NULL, we must destroy the data */ -- oldValue = tls_get(tpd_beosTLSSlots[index]); -- if (oldValue != NULL && tpd_dtors[index] != NULL) -- (*tpd_dtors[index])(oldValue); -+ /* if the old value isn't NULL, and the dtor for this slot isn't -+ NULL, we must destroy the data */ -+ oldValue = tls_get(tpd_beosTLSSlots[index]); -+ if (oldValue != NULL && tpd_dtors[index] != NULL) -+ (*tpd_dtors[index])(oldValue); - -- /* save new value */ -- tls_set(tpd_beosTLSSlots[index], priv); -+ /* save new value */ -+ tls_set(tpd_beosTLSSlots[index], priv); - -- return( PR_SUCCESS ); -- } -+ return( PR_SUCCESS ); -+} - - PR_IMPLEMENT(void*) - PR_GetThreadPrivate (PRUintn index) - { -- /* make sure the index is valid */ -- if (index < 0 || index >= tpd_slotsUsed || index >= BT_TPD_LIMIT) -+ /* make sure the index is valid */ -+ if (index < 0 || index >= tpd_slotsUsed || index >= BT_TPD_LIMIT) - { -- PR_SetError( PR_TPD_RANGE_ERROR, 0 ); -- return NULL; -+ PR_SetError( PR_TPD_RANGE_ERROR, 0 ); -+ return NULL; - } - -- /* return the value */ -- return tls_get( tpd_beosTLSSlots[index] ); -- } -+ /* return the value */ -+ return tls_get( tpd_beosTLSSlots[index] ); -+} - - - PR_IMPLEMENT(PRStatus) - PR_Interrupt (PRThread* thred) - { - PRIntn rv; - - PR_ASSERT(thred != NULL); -@@ -622,73 +613,73 @@ PR_IMPLEMENT(PRStatus) - - PR_ASSERT(me->state & BT_THREAD_PRIMORD); - if ((me->state & BT_THREAD_PRIMORD) == 0) { - return PR_FAILURE; - } - - PR_Lock( bt_book.ml ); - -- if (bt_book.threadCount != 0) -+ if (bt_book.threadCount != 0) - { -- /* we'll have to wait for some threads to finish - create a -- sem to block on */ -- bt_book.cleanUpSem = create_sem(0, "cleanup sem"); -+ /* we'll have to wait for some threads to finish - create a -+ sem to block on */ -+ bt_book.cleanUpSem = create_sem(0, "cleanup sem"); - } - - PR_Unlock( bt_book.ml ); - -- /* note that, if all the user threads were already dead, we -- wouldn't have created a sem above, so this acquire_sem() -- will fail immediately */ -- while (acquire_sem(bt_book.cleanUpSem) == B_INTERRUPTED); -+ /* note that, if all the user threads were already dead, we -+ wouldn't have created a sem above, so this acquire_sem() -+ will fail immediately */ -+ while (acquire_sem(bt_book.cleanUpSem) == B_INTERRUPTED); - - return PR_SUCCESS; - } - - PR_IMPLEMENT(void) - PR_ProcessExit (PRIntn status) - { - exit(status); - } - - PRThread *_bt_AttachThread() - { -- PRThread *thread; -- thread_info tInfo; -+ PRThread *thread; -+ thread_info tInfo; - -- /* make sure this thread doesn't already have a PRThread structure */ -- PR_ASSERT(tls_get(tls_prThreadSlot) == NULL); -+ /* make sure this thread doesn't already have a PRThread structure */ -+ PR_ASSERT(tls_get(tls_prThreadSlot) == NULL); - -- /* allocate a PRThread structure for this thread */ -- thread = PR_NEWZAP(PRThread); -- if (thread == NULL) -- { -- PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -- return NULL; -- } -- -- /* get the native thread's current state */ -- get_thread_info(find_thread(NULL), &tInfo); -- -- /* initialize new PRThread */ -- thread->md.tid = tInfo.thread; -- thread->md.joinSem = B_ERROR; -- thread->priority = _bt_MapNativeToNSPRPriority(tInfo.priority); -- -- /* attached threads are always non-joinable user threads */ -- thread->state = 0; -- -- /* increment user thread count */ -- PR_Lock(bt_book.ml); -- bt_book.threadCount++; -- PR_Unlock(bt_book.ml); -- -- /* store this thread's PRThread */ -- tls_set(tls_prThreadSlot, thread); -- -- /* the thread must call _bt_CleanupThread() before it dies, in order -- to clean up its PRThread, synchronize with the primordial thread, -- etc. */ -- on_exit_thread(_bt_CleanupThread, NULL); -- -- return thread; -+ /* allocate a PRThread structure for this thread */ -+ thread = PR_NEWZAP(PRThread); -+ if (thread == NULL) -+ { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return NULL; -+ } -+ -+ /* get the native thread's current state */ -+ get_thread_info(find_thread(NULL), &tInfo); -+ -+ /* initialize new PRThread */ -+ thread->md.tid = tInfo.thread; -+ thread->md.joinSem = B_ERROR; -+ thread->priority = _bt_MapNativeToNSPRPriority(tInfo.priority); -+ -+ /* attached threads are always non-joinable user threads */ -+ thread->state = 0; -+ -+ /* increment user thread count */ -+ PR_Lock(bt_book.ml); -+ bt_book.threadCount++; -+ PR_Unlock(bt_book.ml); -+ -+ /* store this thread's PRThread */ -+ tls_set(tls_prThreadSlot, thread); -+ -+ /* the thread must call _bt_CleanupThread() before it dies, in order -+ to clean up its PRThread, synchronize with the primordial thread, -+ etc. */ -+ on_exit_thread(_bt_CleanupThread, NULL); -+ -+ return thread; - } -Index: mozilla/nsprpub/pr/src/io/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/Makefile.in,v -retrieving revision 1.13 -diff -u -8 -p -r1.13 Makefile.in ---- mozilla/nsprpub/pr/src/io/Makefile.in 25 Apr 2004 15:00:58 -0000 1.13 -+++ mozilla/nsprpub/pr/src/io/Makefile.in 9 Feb 2009 04:04:39 -0000 -@@ -64,23 +64,25 @@ CSRCS = \ - prmmap.c \ - prpolevt.c \ - prprf.c \ - prscanf.c \ - prstdio.c \ - $(NULL) - - ifndef USE_PTHREADS -+ifndef USE_BTHREADS - CSRCS += \ - prdir.c \ - prfile.c \ - prio.c \ - prsocket.c \ - $(NULL) - endif -+endif - - TARGETS = $(OBJS) - - INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private - - DEFINES += -D_NSPR_BUILD_ - - include $(topsrcdir)/config/rules.mk -Index: mozilla/nsprpub/pr/src/io/prmapopt.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prmapopt.c,v -retrieving revision 3.18 -diff -u -8 -p -r3.18 prmapopt.c ---- mozilla/nsprpub/pr/src/io/prmapopt.c 25 Apr 2004 15:00:58 -0000 3.18 -+++ mozilla/nsprpub/pr/src/io/prmapopt.c 9 Feb 2009 04:04:40 -0000 -@@ -69,17 +69,17 @@ - /* NEXTSTEP is special: this must come before netinet/tcp.h. */ - #include /* n_short, n_long, n_time */ - #endif - - #if defined(XP_UNIX) || defined(OS2) || (defined(XP_BEOS) && defined(BONE_VERSION)) - #include /* TCP_NODELAY, TCP_MAXSEG */ - #endif - --#ifndef _PR_PTHREADS -+#if !defined(_PR_PTHREADS) && !defined(_PR_BTHREADS) - - PRStatus PR_CALLBACK _PR_SocketGetSocketOption(PRFileDesc *fd, PRSocketOptionData *data) - { - PRStatus rv; - PRInt32 length; - PRInt32 level, name; - - /* -@@ -94,34 +94,29 @@ PRStatus PR_CALLBACK _PR_SocketGetSocket - - rv = _PR_MapOptionName(data->option, &level, &name); - if (PR_SUCCESS == rv) - { - switch (data->option) - { - case PR_SockOpt_Linger: - { --#if !defined(XP_BEOS) || defined(BONE_VERSION) - struct linger linger; - length = sizeof(linger); - rv = _PR_MD_GETSOCKOPT( - fd, level, name, (char *) &linger, &length); - if (PR_SUCCESS == rv) - { - PR_ASSERT(sizeof(linger) == length); - data->value.linger.polarity = - (linger.l_onoff) ? PR_TRUE : PR_FALSE; - data->value.linger.linger = - PR_SecondsToInterval(linger.l_linger); - } - break; --#else -- PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -- return PR_FAILURE; --#endif - } - case PR_SockOpt_Reuseaddr: - case PR_SockOpt_Keepalive: - case PR_SockOpt_NoDelay: - case PR_SockOpt_Broadcast: - { - #ifdef WIN32 /* Winsock */ - BOOL value; -@@ -252,27 +247,22 @@ PRStatus PR_CALLBACK _PR_SocketSetSocket - - rv = _PR_MapOptionName(data->option, &level, &name); - if (PR_SUCCESS == rv) - { - switch (data->option) - { - case PR_SockOpt_Linger: - { --#if !defined(XP_BEOS) || defined(BONE_VERSION) - struct linger linger; - linger.l_onoff = data->value.linger.polarity; - linger.l_linger = PR_IntervalToSeconds(data->value.linger.linger); - rv = _PR_MD_SETSOCKOPT( - fd, level, name, (char*)&linger, sizeof(linger)); - break; --#else -- PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -- return PR_FAILURE; --#endif - } - case PR_SockOpt_Reuseaddr: - case PR_SockOpt_Keepalive: - case PR_SockOpt_NoDelay: - case PR_SockOpt_Broadcast: - { - #ifdef WIN32 /* Winsock */ - BOOL value; -@@ -350,17 +340,17 @@ PRStatus PR_CALLBACK _PR_SocketSetSocket - default: - PR_NOT_REACHED("Unknown socket option"); - break; - } - } - return rv; - } /* _PR_SocketSetSocketOption */ - --#endif /* ! _PR_PTHREADS */ -+#endif /* ! _PR_PTHREADS && ! _PR_BTHREADS */ - - /* - ********************************************************************* - ********************************************************************* - ** - ** Make sure that the following is at the end of this file, - ** because we will be playing with macro redefines. - ** -Index: mozilla/nsprpub/pr/src/io/prsocket.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prsocket.c,v -retrieving revision 3.57.2.2 -diff -u -8 -p -r3.57.2.2 prsocket.c ---- mozilla/nsprpub/pr/src/io/prsocket.c 7 Nov 2007 22:24:04 -0000 3.57.2.2 -+++ mozilla/nsprpub/pr/src/io/prsocket.c 9 Feb 2009 04:04:44 -0000 -@@ -59,17 +59,17 @@ PRBool IsValidNetAddr(const PRNetAddr *a - - static PRBool IsValidNetAddrLen(const PRNetAddr *addr, PRInt32 addr_len) - { - /* - * The definition of the length of a Unix domain socket address - * is not uniform, so we don't check it. - */ - if ((addr != NULL) --#if defined(XP_UNIX) || defined(XP_OS2_EMX) -+#if defined(XP_UNIX) || defined(XP_OS2_EMX) || defined(XP_BEOS) - && (addr->raw.family != AF_UNIX) - #endif - && (PR_NETADDR_SIZE(addr) != addr_len)) { - #if defined(LINUX) && __GLIBC__ == 2 && __GLIBC_MINOR__ == 1 - /* - * In glibc 2.1, struct sockaddr_in6 is 24 bytes. In glibc 2.2 - * and in the 2.4 kernel, struct sockaddr_in6 has the scope_id - * field and is 28 bytes. It is possible for socket functions -Index: mozilla/nsprpub/pr/src/linking/prlink.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/linking/prlink.c,v -retrieving revision 3.81.2.5 -diff -u -8 -p -r3.81.2.5 prlink.c ---- mozilla/nsprpub/pr/src/linking/prlink.c 6 Oct 2006 23:36:22 -0000 3.81.2.5 -+++ mozilla/nsprpub/pr/src/linking/prlink.c 9 Feb 2009 04:04:49 -0000 -@@ -194,18 +194,20 @@ struct PRLibrary { - NSModule dlh; - #else - void* dlh; - #endif - #endif - - #ifdef XP_BEOS - void* dlh; -+#ifndef XP_HAIKU - void* stub_dlh; - #endif -+#endif - }; - - static PRLibrary *pr_loadmap; - static PRLibrary *pr_exe_loadmap; - static PRMonitor *pr_linker_lock; - static char* _pr_currentLibPath = NULL; - - static PRLibrary *pr_LoadLibraryByPathname(const char *name, PRIntn flags); -@@ -844,16 +846,29 @@ pr_LoadLibraryByPathname(const char *nam - } - /* the list of loaded library names are always kept in UTF-8 - * on Win32 platforms */ - result = pr_UnlockedFindLibrary(utf8name); - #else - result = pr_UnlockedFindLibrary(name); - #endif - -+#ifdef XP_BEOS -+ /* Havn't seen this happen so far, but it doesn't slow anything -+ down so let's keep it */ -+ for (result = pr_loadmap; result != NULL; result = result->next) { -+ /* hopefully, our caller will always use the same string -+ to refer to the same library */ -+ if (strcmp(name, result->name) == 0) { -+ result->refCount++; -+ break; -+ } -+ } -+#endif -+ - if (result != NULL) goto unlock; - - lm = PR_NEWZAP(PRLibrary); - if (lm == NULL) { - oserr = _MD_ERRNO(); - goto unlock; - } - lm->staticTable = NULL; -@@ -997,108 +1012,97 @@ pr_LoadLibraryByPathname(const char *nam - lm->name = strdup(name); - lm->dlh = h; - lm->next = pr_loadmap; - pr_loadmap = lm; - } - #endif /* HAVE_DLL */ - #endif /* XP_UNIX */ - -- lm->refCount = 1; -- - #ifdef XP_BEOS -- { -- image_info info; -- int32 cookie = 0; -+ { /* Code block to allow variable inits. :/ */ -+ /* it appears the library isn't yet loaded - load it now */ -+#ifdef XP_HAIKU -+ image_id imageid = load_add_on(name); -+#else - image_id imageid = B_ERROR; - image_id stubid = B_ERROR; -- PRLibrary *p; -+ char stubName [B_PATH_NAME_LENGTH + 1]; - -- for (p = pr_loadmap; p != NULL; p = p->next) { -- /* hopefully, our caller will always use the same string -- to refer to the same library */ -- if (strcmp(name, p->name) == 0) { -- /* we've already loaded this library */ -- imageid = info.id; -- lm->refCount++; -- break; -- } -- } -+ /* the following is a work-around to a "bug" in the beos - -+ the beos system loader allows only 32M (system-wide) -+ to be used by code loaded as "add-ons" (code loaded -+ through the 'load_add_on()' system call, which includes -+ mozilla components), but allows 256M to be used by -+ shared libraries. -+ -+ unfortunately, mozilla is too large to fit into the -+ "add-on" space, so we must trick the loader into -+ loading some of the components as shared libraries. this -+ is accomplished by creating a "stub" add-on (an empty -+ shared object), and linking it with the component -+ (the actual .so file generated by the build process, -+ without any modifications). when this stub is loaded -+ by load_add_on(), the loader will automatically load the -+ component into the shared library space. -+ */ - -- if(imageid == B_ERROR) { -- /* it appears the library isn't yet loaded - load it now */ -- char stubName [B_PATH_NAME_LENGTH + 1]; -- -- /* the following is a work-around to a "bug" in the beos - -- the beos system loader allows only 32M (system-wide) -- to be used by code loaded as "add-ons" (code loaded -- through the 'load_add_on()' system call, which includes -- mozilla components), but allows 256M to be used by -- shared libraries. -- -- unfortunately, mozilla is too large to fit into the -- "add-on" space, so we must trick the loader into -- loading some of the components as shared libraries. this -- is accomplished by creating a "stub" add-on (an empty -- shared object), and linking it with the component -- (the actual .so file generated by the build process, -- without any modifications). when this stub is loaded -- by load_add_on(), the loader will automatically load the -- component into the shared library space. -- */ -- -- strcpy(stubName, name); -- strcat(stubName, ".stub"); -- -- /* first, attempt to load the stub (thereby loading the -- component as a shared library */ -- if ((stubid = load_add_on(stubName)) > B_ERROR) { -- /* the stub was loaded successfully. */ -- imageid = B_FILE_NOT_FOUND; -- -- cookie = 0; -- while (get_next_image_info(0, &cookie, &info) == B_OK) { -- const char *endOfSystemName = strrchr(info.name, '/'); -- const char *endOfPassedName = strrchr(name, '/'); -- if( 0 == endOfSystemName ) -- endOfSystemName = info.name; -- else -- endOfSystemName++; -- if( 0 == endOfPassedName ) -- endOfPassedName = name; -- else -- endOfPassedName++; -- if (strcmp(endOfSystemName, endOfPassedName) == 0) { -- /* this is the actual component - remember it */ -- imageid = info.id; -- break; -- } -- } -+ strcpy(stubName, name); -+ strcat(stubName, ".stub"); - -- } else { -- /* we failed to load the "stub" - try to load the -- component directly as an add-on */ -- stubid = B_ERROR; -- imageid = load_add_on(name); -+ /* first, attempt to load the stub (thereby loading the -+ component as a shared library */ -+ if ((stubid = load_add_on(stubName)) > B_ERROR) { -+ -+ const char *endOfPassedName = strrchr(name, '/'); -+ image_info info; -+ int32 cookie = 0; -+ -+ /* the stub was loaded successfully. */ -+ imageid = B_FILE_NOT_FOUND; -+ if( 0 == endOfPassedName ) -+ endOfPassedName = name; -+ else -+ endOfPassedName++; -+ -+ while (get_next_image_info(0, &cookie, &info) == B_OK) { -+ const char *endOfSystemName = strrchr(info.name, '/'); -+ if( 0 == endOfSystemName ) -+ endOfSystemName = info.name; -+ else -+ endOfSystemName++; -+ if (strcmp(endOfSystemName, endOfPassedName) == 0) { -+ /* this is the actual component - remember it */ -+ imageid = info.id; -+ break; -+ } - } -+ } else { -+ /* we failed to load the "stub" - try to load the -+ component directly as an add-on */ -+ stubid = B_ERROR; -+ imageid = load_add_on(name); - } -- -+#endif /* XP_HAIKU */ - if (imageid <= B_ERROR) { - oserr = imageid; -- PR_DELETE( lm ); -+ PR_DELETE(lm); - goto unlock; - } - lm->name = strdup(name); - lm->dlh = (void*)imageid; -+#ifndef XP_HAIKU - lm->stub_dlh = (void*)stubid; -+#endif - lm->next = pr_loadmap; - pr_loadmap = lm; - } --#endif -+#endif /* XP_BEOS */ - -+ lm->refCount = 1; - result = lm; /* success */ - PR_LOG(_pr_linker_lm, PR_LOG_MIN, ("Loaded library %s (load lib)", lm->name)); - - unlock: - if (result == NULL) { - PR_SetError(PR_LOAD_LIBRARY_ERROR, oserr); - DLLErrorInternal(oserr); /* sets error text */ - } -@@ -1249,21 +1253,25 @@ PR_UnloadLibrary(PRLibrary *lib) - if (--lib->refCount > 0) { - PR_LOG(_pr_linker_lm, PR_LOG_MIN, - ("%s decr => %d", - lib->name, lib->refCount)); - goto done; - } - - #ifdef XP_BEOS -+#ifdef XP_HAIKU -+ unload_add_on( (image_id) lib->dlh ); -+#else - if(((image_id)lib->stub_dlh) == B_ERROR) - unload_add_on( (image_id) lib->dlh ); - else - unload_add_on( (image_id) lib->stub_dlh); --#endif -+#endif /* XP_HAIKU */ -+#endif /* XP_BEOS */ - - #ifdef XP_UNIX - #ifdef HAVE_DLL - #ifdef USE_DLFCN - result = dlclose(lib->dlh); - #elif defined(USE_HPSHL) - result = shl_unload(lib->dlh); - #elif defined(USE_MACH_DYLD) -Index: mozilla/nsprpub/pr/src/md/beos/beos.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/beos/beos.c,v -retrieving revision 3.5 -diff -u -8 -p -r3.5 beos.c ---- mozilla/nsprpub/pr/src/md/beos/beos.c 25 Apr 2004 15:00:59 -0000 3.5 -+++ mozilla/nsprpub/pr/src/md/beos/beos.c 9 Feb 2009 04:04:50 -0000 -@@ -32,233 +32,178 @@ - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" - --#include --#include --#include --#include --#include --#include - #include --#include --#include -- - /* - * Make sure _PRSockLen_t is 32-bit, because we will cast a PRUint32* or - * PRInt32* pointer to a _PRSockLen_t* pointer. - */ - #define _PRSockLen_t int - --/* --** Global lock variable used to bracket calls into rusty libraries that --** aren't thread safe (like libc, libX, etc). --*/ --static PRLock *_pr_rename_lock = NULL; --static PRMonitor *_pr_Xfe_mon = NULL; - --/* -- * Variables used by the GC code, initialized in _MD_InitSegs(). -- * _pr_zero_fd should be a static variable. Unfortunately, there is -- * still some Unix-specific code left in function PR_GrowSegment() -- * in file memory/prseg.c that references it, so it needs -- * to be a global variable for now. -- */ --PRInt32 _pr_zero_fd = -1; --static PRLock *_pr_md_lock = NULL; -+#ifndef BONE_VERSION -+PRLock *_connectLock = NULL; - --sigset_t timer_set; -+/* Workaround for nonblocking connects under net_server */ -+PRUint32 connectCount = 0; -+ConnectListNode connectList[64]; - --void _PR_UnixInit() -+void -+_MD_final_init_netserver(void) - { -- struct sigaction sigact; -- int rv; -- -- sigemptyset(&timer_set); -- -- sigact.sa_handler = SIG_IGN; -- sigemptyset(&sigact.sa_mask); -- sigact.sa_flags = 0; -- rv = sigaction(SIGPIPE, &sigact, 0); -- PR_ASSERT(0 == rv); -- -- _pr_rename_lock = PR_NewLock(); -- PR_ASSERT(NULL != _pr_rename_lock); -- _pr_Xfe_mon = PR_NewMonitor(); -- PR_ASSERT(NULL != _pr_Xfe_mon); -+ _connectLock = PR_NewLock(); -+ PR_ASSERT(NULL != _connectLock); -+ /* Workaround for nonblocking connects under net_server */ -+ connectCount = 0; - } -+#endif /* !BONE_VERSION */ - --/* -- *----------------------------------------------------------------------- -- * -- * PR_Now -- -- * -- * Returns the current time in microseconds since the epoch. -- * The epoch is midnight January 1, 1970 GMT. -- * The implementation is machine dependent. This is the Unix -- * implementation. -- * Cf. time_t time(time_t *tp) -- * -- *----------------------------------------------------------------------- -- */ -- --PR_IMPLEMENT(PRTime) --PR_Now(void) --{ -- struct timeval tv; -- PRInt64 s, us, s2us; - -- GETTIMEOFDAY(&tv); -- LL_I2L(s2us, PR_USEC_PER_SEC); -- LL_I2L(s, tv.tv_sec); -- LL_I2L(us, tv.tv_usec); -- LL_MUL(s, s, s2us); -- LL_ADD(s, s, us); -- return s; --} -+#ifdef __powerpc__ -+static PRLock *monitor = NULL; - --PRIntervalTime --_PR_UNIX_GetInterval() -+void -+_MD_AtomicInit(void) - { -- struct timeval time; -- PRIntervalTime ticks; -- -- (void)GETTIMEOFDAY(&time); /* fallicy of course */ -- ticks = (PRUint32)time.tv_sec * PR_MSEC_PER_SEC; /* that's in milliseconds */ -- ticks += (PRUint32)time.tv_usec / PR_USEC_PER_MSEC; /* so's that */ -- return ticks; --} /* _PR_SUNOS_GetInterval */ -- --PRIntervalTime _PR_UNIX_TicksPerSecond() --{ -- return 1000; /* this needs some work :) */ -+ if (monitor == NULL) { -+ monitor = PR_NewLock(); -+ } - } -- --/************************************************************************/ -+#endif /* __powerpc__ */ - - /* --** Special hacks for xlib. Xlib/Xt/Xm is not re-entrant nor is it thread --** safe. Unfortunately, neither is mozilla. To make these programs work --** in a pre-emptive threaded environment, we need to use a lock. -+** This is exceedingly messy. atomic_add returns the last value, NSPR -+** expects the new value. We just add or subtract 1 from the result. -+** The actual memory update is atomic. - */ - --void PR_XLock() -+PRInt32 -+_MD_AtomicAdd( PRInt32 *ptr, PRInt32 val ) - { -- PR_EnterMonitor(_pr_Xfe_mon); -+ return atomic_add( (long *)ptr, val ) + val; - } - --void PR_XUnlock() -+PRInt32 -+_MD_AtomicIncrement( PRInt32 *val ) - { -- PR_ExitMonitor(_pr_Xfe_mon); -+ return atomic_add( (long *)val, 1 ) + 1; - } - --PRBool PR_XIsLocked() -+PRInt32 -+_MD_AtomicDecrement( PRInt32 *val ) - { -- return (PR_InMonitor(_pr_Xfe_mon)) ? PR_TRUE : PR_FALSE; -+ return atomic_add( (long *)val, -1 ) - 1; - } - --void PR_XWait(int ms) -+PRInt32 -+_MD_AtomicSet( PRInt32 *val, PRInt32 newval ) - { -- PR_Wait(_pr_Xfe_mon, PR_MillisecondsToInterval(ms)); --} -- --void PR_XNotify(void) --{ -- PR_Notify(_pr_Xfe_mon); --} -+ PRInt32 result; -+#ifdef __powerpc__ -+ if (!_pr_initialized) { -+ _PR_ImplicitInitialization(); -+ } -+ PR_Lock(monitor); -+ result = *val; -+ *val = newval; -+ PR_Unlock(monitor); -+#else -+ asm volatile ("xchgl %0, %1" -+ : "=r"(result), "=m"(*val) -+ : "0"(newval), "m"(*val)); - --void PR_XNotifyAll(void) --{ -- PR_NotifyAll(_pr_Xfe_mon); -+#endif /* __powerpc__ */ -+ return result; - } - --#if !defined(BEOS) --#ifdef HAVE_BSD_FLOCK -- --#include -+/* -+ *----------------------------------------------------------------------- -+ * -+ * PR_Now -- -+ * -+ * Returns the current time in microseconds since the epoch. -+ * The epoch is midnight January 1, 1970 GMT. -+ * The implementation is machine dependent. -+ * -+ *----------------------------------------------------------------------- -+ */ - --PR_IMPLEMENT(PRStatus) --_MD_LOCKFILE (PRInt32 f) -+PR_IMPLEMENT(PRTime) -+PR_Now(void) - { -- PRInt32 rv; -- rv = flock(f, LOCK_EX); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ return (PRTime) real_time_clock_usecs(); - } - --PR_IMPLEMENT(PRStatus) --_MD_TLOCKFILE (PRInt32 f) -+PRIntervalTime -+_MD_get_interval(void) - { -- PRInt32 rv; -- rv = flock(f, LOCK_EX|LOCK_NB); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ return (PRIntervalTime) real_time_clock_usecs() / 10; - } - --PR_IMPLEMENT(PRStatus) --_MD_UNLOCKFILE (PRInt32 f) -+PRIntervalTime -+_MD_interval_per_sec(void) - { -- PRInt32 rv; -- rv = flock(f, LOCK_UN); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ return 100000L; - } --#else - --PR_IMPLEMENT(PRStatus) --_MD_LOCKFILE (PRInt32 f) -+PRSize -+_PR_MD_GetRandomNoise( void *buf, PRSize size ) - { -- PRInt32 rv; -- rv = lockf(f, F_LOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -+ struct timeval tv; -+ int n = 0; -+ int s; - --PR_IMPLEMENT(PRStatus) --_MD_TLOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = lockf(f, F_TLOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -+ GETTIMEOFDAY(&tv); -+ -+ if ( size >= 0 ) { -+ s = _pr_CopyLowBits((char*)buf+n, size, &tv.tv_usec, sizeof(tv.tv_usec)); -+ size -= s; -+ n += s; -+ } -+ if ( size >= 0 ) { -+ s = _pr_CopyLowBits((char*)buf+n, size, &tv.tv_sec, sizeof(tv.tv_sec)); -+ size -= s; -+ n += s; -+ } -+ return n; -+} /* end _PR_MD_GetRandomNoise() */ - --PR_IMPLEMENT(PRStatus) --_MD_UNLOCKFILE (PRInt32 f) -+ -+/* Needed by prinit.c:612 */ -+void -+_PR_MD_QUERY_FD_INHERITABLE(PRFileDesc *fd) - { -- PRInt32 rv; -- rv = lockf(f, F_ULOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ int flags; -+ -+ PR_ASSERT(_PR_TRI_UNKNOWN == fd->secret->inheritable); -+ flags = fcntl(fd->secret->md.osfd, F_GETFD, 0); -+ PR_ASSERT(-1 != flags); -+ fd->secret->inheritable = (flags & FD_CLOEXEC) ? -+ _PR_TRI_FALSE : _PR_TRI_TRUE; - } --#endif - --PR_IMPLEMENT(PRStatus) -- _MD_GETHOSTNAME (char *name, PRUint32 namelen) -+PRStatus -+_MD_gethostname(char *name, PRUint32 namelen) - { -- PRIntn rv; -+ PRInt32 rv, err; - - rv = gethostname(name, namelen); -- if (0 == rv) { -- return PR_SUCCESS; -+ if (rv == 0) -+ { -+ err = _MD_ERRNO(); -+ switch (err) { -+ case EFAULT: -+ PR_SetError(PR_ACCESS_FAULT_ERROR, err); -+ break; -+ default: -+ PR_SetError(PR_UNKNOWN_ERROR, err); -+ break; -+ } -+ return PR_FAILURE; - } -- _PR_MD_MAP_GETHOSTNAME_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ return PR_SUCCESS; - } -- --#endif -Index: mozilla/nsprpub/pr/src/md/beos/bproc.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/beos/bproc.c,v -retrieving revision 3.6 -diff -u -8 -p -r3.6 bproc.c ---- mozilla/nsprpub/pr/src/md/beos/bproc.c 25 Apr 2004 15:00:59 -0000 3.6 -+++ mozilla/nsprpub/pr/src/md/beos/bproc.c 9 Feb 2009 04:04:50 -0000 -@@ -31,207 +31,209 @@ - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" --#include -+#include - #include -+#include -+#include - - #define _PR_SIGNALED_EXITSTATUS 256 - - PRProcess* - _MD_create_process (const char *path, char *const *argv, -- char *const *envp, const PRProcessAttr *attr) -+ char *const *envp, const PRProcessAttr *attr) - { -- PRProcess *process; -- int nEnv, idx; -- char *const *childEnvp; -- char **newEnvp = NULL; -- int flags; -- -- process = PR_NEW(PRProcess); -- if (!process) { -- PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -- return NULL; -- } -- -- childEnvp = envp; -- if (attr && attr->fdInheritBuffer) { -- if (NULL == childEnvp) { -- childEnvp = environ; -- } -- for (nEnv = 0; childEnvp[nEnv]; nEnv++) { -- } -- newEnvp = (char **) PR_MALLOC((nEnv + 2) * sizeof(char *)); -- if (NULL == newEnvp) { -- PR_DELETE(process); -- PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -- return NULL; -- } -- for (idx = 0; idx < nEnv; idx++) { -- newEnvp[idx] = childEnvp[idx]; -- } -- newEnvp[idx++] = attr->fdInheritBuffer; -- newEnvp[idx] = NULL; -- childEnvp = newEnvp; -- } -- -- process->md.pid = fork(); -- -- if ((pid_t) -1 == process->md.pid) { -- PR_SetError(PR_INSUFFICIENT_RESOURCES_ERROR, errno); -- PR_DELETE(process); -- if (newEnvp) { -- PR_DELETE(newEnvp); -- } -- return NULL; -- } else if (0 == process->md.pid) { /* the child process */ -- /* -- * If the child process needs to exit, it must call _exit(). -- * Do not call exit(), because exit() will flush and close -- * the standard I/O file descriptors, and hence corrupt -- * the parent process's standard I/O data structures. -- */ -- -- if (attr) { -- /* the osfd's to redirect stdin, stdout, and stderr to */ -- int in_osfd = -1, out_osfd = -1, err_osfd = -1; -- -- if (attr->stdinFd -- && attr->stdinFd->secret->md.osfd != 0) { -- in_osfd = attr->stdinFd->secret->md.osfd; -- if (dup2(in_osfd, 0) != 0) { -- _exit(1); /* failed */ -- } -- flags = fcntl(0, F_GETFL, 0); -- if (flags & O_NONBLOCK) { -- fcntl(0, F_SETFL, flags & ~O_NONBLOCK); -- } -- } -- if (attr->stdoutFd -- && attr->stdoutFd->secret->md.osfd != 1) { -- out_osfd = attr->stdoutFd->secret->md.osfd; -- if (dup2(out_osfd, 1) != 1) { -- _exit(1); /* failed */ -- } -- flags = fcntl(1, F_GETFL, 0); -- if (flags & O_NONBLOCK) { -- fcntl(1, F_SETFL, flags & ~O_NONBLOCK); -- } -- } -- if (attr->stderrFd -- && attr->stderrFd->secret->md.osfd != 2) { -- err_osfd = attr->stderrFd->secret->md.osfd; -- if (dup2(err_osfd, 2) != 2) { -- _exit(1); /* failed */ -- } -- flags = fcntl(2, F_GETFL, 0); -- if (flags & O_NONBLOCK) { -- fcntl(2, F_SETFL, flags & ~O_NONBLOCK); -- } -- } -- if (in_osfd != -1) { -- close(in_osfd); -- } -- if (out_osfd != -1 && out_osfd != in_osfd) { -- close(out_osfd); -- } -- if (err_osfd != -1 && err_osfd != in_osfd -- && err_osfd != out_osfd) { -- close(err_osfd); -- } -- if (attr->currentDirectory) { -- if (chdir(attr->currentDirectory) < 0) { -- _exit(1); /* failed */ -- } -- } -- } -- -- if (childEnvp) { -- (void)execve(path, argv, childEnvp); -- } else { -- /* Inherit the environment of the parent. */ -- (void)execv(path, argv); -- } -- /* Whoops! It returned. That's a bad sign. */ -- _exit(1); -- } -- -- if (newEnvp) { -- PR_DELETE(newEnvp); -- } -+ PRProcess *process; -+ int nEnv, idx; -+ char *const *childEnvp; -+ char **newEnvp = NULL; -+ int flags; -+ -+ process = PR_NEW(PRProcess); -+ if (!process) { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return NULL; -+ } -+ -+ childEnvp = envp; -+ if (attr && attr->fdInheritBuffer) { -+ if (NULL == childEnvp) { -+ childEnvp = environ; -+ } -+ for (nEnv = 0; childEnvp[nEnv]; nEnv++) { -+ } -+ newEnvp = (char **) PR_MALLOC((nEnv + 2) * sizeof(char *)); -+ if (NULL == newEnvp) { -+ PR_DELETE(process); -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return NULL; -+ } -+ for (idx = 0; idx < nEnv; idx++) { -+ newEnvp[idx] = childEnvp[idx]; -+ } -+ newEnvp[idx++] = attr->fdInheritBuffer; -+ newEnvp[idx] = NULL; -+ childEnvp = newEnvp; -+ } -+ -+ process->md.pid = fork(); -+ -+ if ((pid_t) -1 == process->md.pid) { -+ PR_SetError(PR_INSUFFICIENT_RESOURCES_ERROR, errno); -+ PR_DELETE(process); -+ if (newEnvp) { -+ PR_DELETE(newEnvp); -+ } -+ return NULL; -+ } else if (0 == process->md.pid) { /* the child process */ -+ /* -+ * If the child process needs to exit, it must call _exit(). -+ * Do not call exit(), because exit() will flush and close -+ * the standard I/O file descriptors, and hence corrupt -+ * the parent process's standard I/O data structures. -+ */ -+ -+ if (attr) { -+ /* the osfd's to redirect stdin, stdout, and stderr to */ -+ int in_osfd = -1, out_osfd = -1, err_osfd = -1; -+ -+ if (attr->stdinFd -+ && attr->stdinFd->secret->md.osfd != 0) { -+ in_osfd = attr->stdinFd->secret->md.osfd; -+ if (dup2(in_osfd, 0) != 0) { -+ _exit(1); /* failed */ -+ } -+ flags = fcntl(0, F_GETFL, 0); -+ if (flags & O_NONBLOCK) { -+ fcntl(0, F_SETFL, flags & ~O_NONBLOCK); -+ } -+ } -+ if (attr->stdoutFd -+ && attr->stdoutFd->secret->md.osfd != 1) { -+ out_osfd = attr->stdoutFd->secret->md.osfd; -+ if (dup2(out_osfd, 1) != 1) { -+ _exit(1); /* failed */ -+ } -+ flags = fcntl(1, F_GETFL, 0); -+ if (flags & O_NONBLOCK) { -+ fcntl(1, F_SETFL, flags & ~O_NONBLOCK); -+ } -+ } -+ if (attr->stderrFd -+ && attr->stderrFd->secret->md.osfd != 2) { -+ err_osfd = attr->stderrFd->secret->md.osfd; -+ if (dup2(err_osfd, 2) != 2) { -+ _exit(1); /* failed */ -+ } -+ flags = fcntl(2, F_GETFL, 0); -+ if (flags & O_NONBLOCK) { -+ fcntl(2, F_SETFL, flags & ~O_NONBLOCK); -+ } -+ } -+ if (in_osfd != -1) { -+ close(in_osfd); -+ } -+ if (out_osfd != -1 && out_osfd != in_osfd) { -+ close(out_osfd); -+ } -+ if (err_osfd != -1 && err_osfd != in_osfd -+ && err_osfd != out_osfd) { -+ close(err_osfd); -+ } -+ if (attr->currentDirectory) { -+ if (chdir(attr->currentDirectory) < 0) { -+ _exit(1); /* failed */ -+ } -+ } -+ } -+ -+ if (childEnvp) { -+ (void)execve(path, argv, childEnvp); -+ } else { -+ /* Inherit the environment of the parent. */ -+ (void)execv(path, argv); -+ } -+ /* Whoops! It returned. That's a bad sign. */ -+ _exit(1); -+ } -+ -+ if (newEnvp) { -+ PR_DELETE(newEnvp); -+ } - -- return process; -+ return process; - } - - PRStatus - _MD_detach_process (PRProcess *process) - { -- /* If we kept a process table like unix does, -- * we'd remove the entry here. -- * Since we dont', just delete the process variable -- */ -- PR_DELETE(process); -- return PR_SUCCESS; -+ /* If we kept a process table like unix does, -+ * we'd remove the entry here. -+ * Since we dont', just delete the process variable -+ */ -+ PR_DELETE(process); -+ return PR_SUCCESS; - } - - PRStatus - _MD_wait_process (PRProcess *process, PRInt32 *exitCode) - { -- PRStatus retVal = PR_SUCCESS; -- int ret, status; -- -- /* Ignore interruptions */ -- do { -- ret = waitpid(process->md.pid, &status, 0); -- } while (ret == -1 && errno == EINTR); -- -- /* -- * waitpid() cannot return 0 because we did not invoke it -- * with the WNOHANG option. -- */ -- PR_ASSERT(0 != ret); -+ PRStatus retVal = PR_SUCCESS; -+ int ret, status; -+ -+ /* Ignore interruptions */ -+ do { -+ ret = waitpid(process->md.pid, &status, 0); -+ } while (ret == -1 && errno == EINTR); -+ -+ /* -+ * waitpid() cannot return 0 because we did not invoke it -+ * with the WNOHANG option. -+ */ -+ PR_ASSERT(0 != ret); - -- if (ret < 0) { -+ if (ret < 0) { - PR_SetError(PR_UNKNOWN_ERROR, _MD_ERRNO()); -- return PR_FAILURE; -- } -+ return PR_FAILURE; -+ } - -- /* If child process exited normally, return child exit code */ -- if (WIFEXITED(status)) { -- *exitCode = WEXITSTATUS(status); -- } else { -- PR_ASSERT(WIFSIGNALED(status)); -- *exitCode = _PR_SIGNALED_EXITSTATUS; -- } -+ /* If child process exited normally, return child exit code */ -+ if (WIFEXITED(status)) { -+ *exitCode = WEXITSTATUS(status); -+ } else { -+ PR_ASSERT(WIFSIGNALED(status)); -+ *exitCode = _PR_SIGNALED_EXITSTATUS; -+ } - -- PR_DELETE(process); -- return PR_SUCCESS; -+ PR_DELETE(process); -+ return PR_SUCCESS; - } - - PRStatus - _MD_kill_process (PRProcess *process) - { -- PRErrorCode prerror; -- PRInt32 oserror; -- -- if (kill(process->md.pid, SIGKILL) == 0) { -- return PR_SUCCESS; -- } -- oserror = errno; -- switch (oserror) { -+ PRErrorCode prerror; -+ PRInt32 oserror; -+ -+ if (kill(process->md.pid, SIGKILL) == 0) { -+ return PR_SUCCESS; -+ } -+ oserror = errno; -+ switch (oserror) { - case EPERM: -- prerror = PR_NO_ACCESS_RIGHTS_ERROR; -- break; -+ prerror = PR_NO_ACCESS_RIGHTS_ERROR; -+ break; - case ESRCH: -- prerror = PR_INVALID_ARGUMENT_ERROR; -- break; -+ prerror = PR_INVALID_ARGUMENT_ERROR; -+ break; - default: -- prerror = PR_UNKNOWN_ERROR; -- break; -- } -- PR_SetError(prerror, oserror); -- return PR_FAILURE; -+ prerror = PR_UNKNOWN_ERROR; -+ break; -+ } -+ PR_SetError(prerror, oserror); -+ return PR_FAILURE; - } -Index: mozilla/nsprpub/pr/src/md/beos/bsrcs.mk -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/beos/bsrcs.mk,v -retrieving revision 3.6 -diff -u -8 -p -r3.6 bsrcs.mk ---- mozilla/nsprpub/pr/src/md/beos/bsrcs.mk 25 Apr 2004 15:00:59 -0000 3.6 -+++ mozilla/nsprpub/pr/src/md/beos/bsrcs.mk 9 Feb 2009 04:04:50 -0000 -@@ -15,16 +15,17 @@ - # The Original Code is the Netscape Portable Runtime (NSPR). - # - # The Initial Developer of the Original Code is - # Netscape Communications Corporation. - # Portions created by the Initial Developer are Copyright (C) 1998-2000 - # the Initial Developer. All Rights Reserved. - # - # Contributor(s): -+# Fredrik Holmqvist - # - # Alternatively, the contents of this file may be used under the terms of - # either the GNU General Public License Version 2 or later (the "GPL"), or - # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - # in which case the provisions of the GPL or the LGPL are applicable instead - # of those above. If you wish to allow use of your version of this file only - # under the terms of either the GPL or the LGPL, and not to allow others to - # use your version of this file under the terms of the MPL, indicate your -@@ -37,18 +38,11 @@ - - - # this file lists the source files to be compiled (used in Makefile) and - # then enumerated as object files (in objs.mk) for inclusion in the NSPR - # shared library - - MDCSRCS = \ - beos.c \ -- beos_errors.c \ -- bfile.c \ -- bmisc.c \ -- bnet.c \ - bproc.c \ -- brng.c \ -- bseg.c \ -- btime.c \ - bmmap.c \ - $(NULL) -Index: mozilla/nsprpub/pr/src/memory/prseg.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/memory/prseg.c,v -retrieving revision 3.8 -diff -u -8 -p -r3.8 prseg.c ---- mozilla/nsprpub/pr/src/memory/prseg.c 25 Apr 2004 15:01:01 -0000 3.8 -+++ mozilla/nsprpub/pr/src/memory/prseg.c 9 Feb 2009 04:04:51 -0000 -@@ -32,26 +32,26 @@ - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" - --#if defined(_PR_PTHREADS) -+#if defined(_PR_PTHREADS) || defined(_PR_BTHREADS) - - /* - ** The pthreads version doesn't use these functions. - */ - void _PR_InitSegs(void) - { - } - --#else /* _PR_PTHREADS */ -+#else /* _PR_PTHREADS || defined(_PR_BTHREADS) */ - - void _PR_InitSegs(void) - { - _PR_MD_INIT_SEGS(); - } - - /* - ** Allocate a memory segment. The size value is rounded up to the native -@@ -85,9 +85,9 @@ PRSegment* _PR_NewSegment(PRUint32 size, - ** Free a memory segment. - */ - void _PR_DestroySegment(PRSegment *seg) - { - _PR_MD_FREE_SEGMENT(seg); - PR_DELETE(seg); - } - --#endif /* _PR_PTHREADS */ -+#endif /* _PR_PTHREADS || defined(_PR_BTHREADS) */ -Index: mozilla/nsprpub/pr/src/misc/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/Makefile.in,v -retrieving revision 1.19 -diff -u -8 -p -r1.19 Makefile.in ---- mozilla/nsprpub/pr/src/misc/Makefile.in 8 Nov 2004 02:52:56 -0000 1.19 -+++ mozilla/nsprpub/pr/src/misc/Makefile.in 9 Feb 2009 04:04:52 -0000 -@@ -66,20 +66,22 @@ CSRCS = \ - prsystem.c \ - prtime.c \ - prthinfo.c \ - prtpool.c \ - prtrace.c \ - $(NULL) - - ifndef USE_PTHREADS -+ifndef USE_BTHREADS - CSRCS += \ - pripcsem.c \ - $(NULL) - endif -+endif - - TARGETS = $(OBJS) - - INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private - - DEFINES += -D_NSPR_BUILD_ - - RELEASE_BINS = $(srcdir)/compile-et.pl $(srcdir)/prerr.properties -Index: mozilla/nsprpub/pr/src/misc/prinit.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/prinit.c,v -retrieving revision 3.43.2.1 -diff -u -8 -p -r3.43.2.1 prinit.c ---- mozilla/nsprpub/pr/src/misc/prinit.c 1 Dec 2006 00:34:11 -0000 3.43.2.1 -+++ mozilla/nsprpub/pr/src/misc/prinit.c 9 Feb 2009 04:04:54 -0000 -@@ -195,18 +195,20 @@ static void _PR_InitStuff(void) - _pr_shma_lm = PR_NewLogModule("shma"); - - /* NOTE: These init's cannot depend on _PR_MD_CURRENT_THREAD() */ - _PR_MD_EARLY_INIT(); - - _PR_InitLocks(); - _PR_InitAtomic(); - _PR_InitSegs(); -+#if !defined(_PR_BTHREADS) - _PR_InitStacks(); - _PR_InitTPD(); -+#endif /*!defined(_PR_BTHREADS) */ - _PR_InitEnv(); - _PR_InitLayerCache(); - _PR_InitClock(); - - _pr_sleeplock = PR_NewLock(); - PR_ASSERT(NULL != _pr_sleeplock); - - #ifdef GC_LEAK_DETECTOR -Index: mozilla/nsprpub/pr/src/misc/pripcsem.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/pripcsem.c,v -retrieving revision 3.5 -diff -u -8 -p -r3.5 pripcsem.c ---- mozilla/nsprpub/pr/src/misc/pripcsem.c 25 Apr 2004 15:01:01 -0000 3.5 -+++ mozilla/nsprpub/pr/src/misc/pripcsem.c 9 Feb 2009 04:04:54 -0000 -@@ -41,19 +41,19 @@ - * Description: implements the named semaphores API in prsemipc.h - * for classic NSPR. If _PR_HAVE_NAMED_SEMAPHORES is not defined, - * the named semaphore functions all fail with the error code - * PR_NOT_IMPLEMENTED_ERROR. - */ - - #include "primpl.h" - --#ifdef _PR_PTHREADS -+#if defined(_PR_PTHREADS) || defined(_PR_BTHREADS) - --#error "This file should not be compiled for the pthreads version" -+#error "This file should not be compiled for the pthreads or bthreads version" - - #else - - #ifndef _PR_HAVE_NAMED_SEMAPHORES - - PRSem * _PR_MD_OPEN_SEMAPHORE( - const char *osname, PRIntn flags, PRIntn mode, PRUintn value) - { -@@ -122,9 +122,9 @@ PR_IMPLEMENT(PRStatus) PR_DeleteSemaphor - if (!_pr_initialized) _PR_ImplicitInitialization(); - if (_PR_MakeNativeIPCName(name, osname, sizeof(osname), _PRIPCSem) - == PR_FAILURE) { - return PR_FAILURE; - } - return _PR_MD_DELETE_SEMAPHORE(osname); - } - --#endif /* _PR_PTHREADS */ -+#endif /* _PR_PTHREADS || _PR_BTHREADS */ -Index: mozilla/security/coreconf/BeOS.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/BeOS.mk,v -retrieving revision 1.2 -diff -u -8 -p -r1.2 BeOS.mk ---- mozilla/security/coreconf/BeOS.mk 25 Apr 2004 15:02:17 -0000 1.2 -+++ mozilla/security/coreconf/BeOS.mk 9 Feb 2009 04:05:05 -0000 -@@ -56,17 +56,17 @@ ifeq ($(OS_TEST),ppc) - CPU_ARCH = ppc - else - OS_REL_CFLAGS = -Di386 - CPU_ARCH = x86 - endif - - MKSHLIB = $(CC) -nostart -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so) - ifdef BUILD_OPT -- OPTIMIZER = -O2 -+ OPTIMIZER = -O3 - endif - - OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -pipe - OS_LIBS = -lbe - - DEFINES += -DBEOS - - ifdef USE_PTHREADS -Index: mozilla/security/coreconf/arch.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/arch.mk,v -retrieving revision 1.19.2.1 -diff -u -8 -p -r1.19.2.1 arch.mk ---- mozilla/security/coreconf/arch.mk 14 Nov 2007 22:47:33 -0000 1.19.2.1 -+++ mozilla/security/coreconf/arch.mk 9 Feb 2009 04:05:06 -0000 -@@ -57,16 +57,17 @@ - ifeq ($(USE_64), 1) - 64BIT_TAG=_64 - else - 64BIT_TAG= - endif - - OS_ARCH := $(subst /,_,$(shell uname -s)) - -+ - # - # Attempt to differentiate between sparc and x86 Solaris - # - - OS_TEST := $(shell uname -m) - ifeq ($(OS_TEST),i86pc) - OS_RELEASE := $(shell uname -r)_$(OS_TEST) - else -Index: mozilla/security/coreconf/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/coreconf/config.mk,v -retrieving revision 1.17.28.3 -diff -u -8 -p -r1.17.28.3 config.mk ---- mozilla/security/coreconf/config.mk 4 May 2007 06:54:05 -0000 1.17.28.3 -+++ mozilla/security/coreconf/config.mk 9 Feb 2009 04:05:07 -0000 -@@ -32,16 +32,17 @@ - # and other provisions required by the GPL or the LGPL. If you do not delete - # the provisions above, a recipient may use your version of this file under - # the terms of any one of the MPL, the GPL or the LGPL. - # - # ***** END LICENSE BLOCK ***** - - # Configuration information for building in the "Core Components" source module - -+ - ####################################################################### - # [1.0] Master "Core Components" source and release # - # tags # - ####################################################################### - ifndef MK_ARCH - include $(CORE_DEPTH)/coreconf/arch.mk - endif - -@@ -57,24 +58,30 @@ endif - # [3.0] Master "Core Components" -specific macros # - # (dependent upon tags) # - # # - # We are moving towards just having a $(OS_TARGET).mk file # - # as opposed to multiple $(OS_TARGET)$(OS_RELEASE).mk files, # - # one for each OS release. # - ####################################################################### - -+ -+ - TARGET_OSES = FreeBSD BSD_OS NetBSD OpenUNIX OS2 QNX Darwin BeOS OpenBSD \ - OpenVMS AIX - - ifeq (,$(filter-out $(TARGET_OSES),$(OS_TARGET))) - include $(CORE_DEPTH)/coreconf/$(OS_TARGET).mk - else -+ifeq ($(OS_ARCH), Haiku) -+include $(CORE_DEPTH)/coreconf/BeOS.mk -+else - include $(CORE_DEPTH)/coreconf/$(OS_TARGET)$(OS_RELEASE).mk - endif -+endif - - ####################################################################### - # [4.0] Master "Core Components" source and release tags # - # (dependent upon tags) # - ####################################################################### - PLATFORM = $(OBJDIR_NAME) - - ####################################################################### -Index: mozilla/security/manager/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/security/manager/Makefile.in,v -retrieving revision 1.57.4.6 -diff -u -8 -p -r1.57.4.6 Makefile.in ---- mozilla/security/manager/Makefile.in 23 May 2008 23:45:26 -0000 1.57.4.6 -+++ mozilla/security/manager/Makefile.in 9 Feb 2009 04:05:08 -0000 -@@ -257,30 +257,45 @@ ifndef MOZ_NATIVE_NSS - $(MAKE) -C $(topsrcdir)/security/nss-fips/lib/util $(DEFAULT_GMAKE_FLAGS) clean - # In NSS 3.11.8-3.11.9, lib/ssl/derive.c includes cmd/lib/secutil.h. - $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) export - $(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) DIRS="util base dev pki pki1 certdb certhigh pk11wrap cryptohi nss ssl pkcs12 pkcs7 smime crmf jar ckfw ckfw/builtins" - ifndef SKIP_CHK - $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) - $(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DIST)/bin/add-ons -+else - $(INSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DIST)/bin -+endif - ifndef SKIP_CHK - $(INSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(DIST)/bin - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 755 $(DIST)/lib/$(SOFTOKEN3_LIB) $(DIST)/bin/lib -+ $(INSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(DIST)/bin/lib -+ $(INSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(DIST)/bin/lib -+ $(INSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(DIST)/bin/lib -+else - $(INSTALL) -m 755 $(DIST)/lib/$(SOFTOKEN3_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(DIST)/bin -+endif - ifdef HAVE_FREEBL_LIBS - ifndef SKIP_CHK - $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_CHK) $(DIST)/bin - endif -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_LIB) $(DIST)/bin/add-ons -+else - $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_LIB) $(DIST)/bin - endif -+endif - ifdef HAVE_FREEBL_LIBS_32 - ifndef SKIP_CHK - $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32INT_CHK) $(DIST)/bin - $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32FPU_CHK) $(DIST)/bin - endif - $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32INT_LIB) $(DIST)/bin - $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32FPU_LIB) $(DIST)/bin - endif -Index: mozilla/security/nss/cmd/lib/secutil.h -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/cmd/lib/secutil.h,v -retrieving revision 1.18.24.1 -diff -u -8 -p -r1.18.24.1 secutil.h ---- mozilla/security/nss/cmd/lib/secutil.h 19 Jul 2006 00:25:03 -0000 1.18.24.1 -+++ mozilla/security/nss/cmd/lib/secutil.h 9 Feb 2009 04:05:13 -0000 -@@ -407,16 +407,16 @@ SECU_GetOptionArg(secuCommand *cmd, int - /* Return informative error string */ - char *SECU_ErrorString(int16 err); - - /* Return informative error string. Does not call XP_GetString */ - char *SECU_ErrorStringRaw(int16 err); - - void printflags(char *trusts, unsigned int flags); - --#ifndef XP_UNIX -+#if !defined(XP_UNIX) && !defined(XP_BEOS) - extern int ffs(unsigned int i); - #endif - - #include "secerr.h" - #include "sslerr.h" - - #endif /* _SEC_UTIL_H_ */ -Index: mozilla/security/nss/lib/dev/ckhelper.c -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/dev/ckhelper.c,v -retrieving revision 1.34.28.1 -diff -u -8 -p -r1.34.28.1 ckhelper.c ---- mozilla/security/nss/lib/dev/ckhelper.c 16 Nov 2007 05:25:07 -0000 1.34.28.1 -+++ mozilla/security/nss/lib/dev/ckhelper.c 9 Feb 2009 04:05:17 -0000 -@@ -225,33 +225,33 @@ NSS_IMPLEMENT PRBool - nssCKObject_IsAttributeTrue ( - CK_OBJECT_HANDLE object, - CK_ATTRIBUTE_TYPE attribute, - nssSession *session, - NSSSlot *slot, - PRStatus *rvStatus - ) - { -- CK_BBOOL bool; -+ CK_BBOOL boolval; - CK_ATTRIBUTE_PTR attr; - CK_ATTRIBUTE atemplate = { 0, NULL, 0 }; - CK_RV ckrv; - void *epv = nssSlot_GetCryptokiEPV(slot); - attr = &atemplate; -- NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, bool); -+ NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, boolval); - nssSession_EnterMonitor(session); - ckrv = CKAPI(epv)->C_GetAttributeValue(session->handle, object, - &atemplate, 1); - nssSession_ExitMonitor(session); - if (ckrv != CKR_OK) { - *rvStatus = PR_FAILURE; - return PR_FALSE; - } - *rvStatus = PR_SUCCESS; -- return (PRBool)(bool == CK_TRUE); -+ return (PRBool)(boolval == CK_TRUE); - } - - NSS_IMPLEMENT PRStatus - nssCKObject_SetAttributes ( - CK_OBJECT_HANDLE object, - CK_ATTRIBUTE_PTR obj_template, - CK_ULONG count, - nssSession *session, -Index: mozilla/security/nss/lib/ssl/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/ssl/config.mk,v -retrieving revision 1.21.2.1 -diff -u -8 -p -r1.21.2.1 config.mk ---- mozilla/security/nss/lib/ssl/config.mk 1 May 2007 06:09:31 -0000 1.21.2.1 -+++ mozilla/security/nss/lib/ssl/config.mk 9 Feb 2009 04:05:19 -0000 -@@ -103,17 +103,17 @@ EXTRA_SHARED_LIBS += \ - -L$(DIST)/lib \ - -lnss3 \ - -L$(NSPR_LIB_DIR) \ - -lplc4 \ - -lplds4 \ - -lnspr4 \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_SHARED_LIBS += -lbe - endif - - ifeq ($(OS_ARCH), Darwin) - EXTRA_SHARED_LIBS += -dylib_file @executable_path/libsoftokn3.dylib:$(DIST)/lib/libsoftokn3.dylib - endif - - ifeq ($(OS_TARGET),SunOS) -Index: mozilla/security/nss/lib/freebl/unix_rand.c -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/unix_rand.c,v -retrieving revision 1.17.10.5 -diff -u -r1.17.10.5 unix_rand.c ---- mozilla/security/nss/lib/freebl/unix_rand.c 12 Oct 2006 22:50:48 -0000 1.17.10.5 -+++ mozilla/security/nss/lib/freebl/unix_rand.c 27 Feb 2008 22:18:39 -0000 -@@ -666,7 +666,7 @@ - #endif /* VMS */ - - #ifdef BEOS --#include -+#include - - static size_t - GetHighResClock(void *buf, size_t maxbytes) -Index: mozilla/security/nss-fips/lib/freebl/unix_rand.c -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/freebl/unix_rand.c,v -retrieving revision 1.17.10.5 -diff -u -8 -p -r1.17.10.5 unix_rand.c ---- mozilla/security/nss-fips/lib/freebl/unix_rand.c 12 Oct 2006 22:50:48 -0000 1.17.10.5 -+++ mozilla/security/nss-fips/lib/freebl/unix_rand.c 9 Feb 2009 04:05:28 -0000 -@@ -661,17 +661,17 @@ GetHighResClock(void *buf, size_t maxbyt - - t = asm("rpcc %v0"); - return CopyLowBits(buf, maxbytes, &t, sizeof(t)); - } - - #endif /* VMS */ - - #ifdef BEOS --#include -+#include - - static size_t - GetHighResClock(void *buf, size_t maxbytes) - { - bigtime_t bigtime; /* Actually an int64 */ - - bigtime = real_time_clock_usecs(); - return CopyLowBits(buf, maxbytes, &bigtime, sizeof(bigtime)); -Index: mozilla/security/nss-fips/lib/ssl/config.mk -=================================================================== -RCS file: /cvsroot/mozilla/security/nss/lib/ssl/config.mk,v -retrieving revision 1.21 -diff -u -8 -p -r1.21 config.mk ---- mozilla/security/nss-fips/lib/ssl/config.mk 19 Oct 2005 01:04:16 -0000 1.21 -+++ mozilla/security/nss-fips/lib/ssl/config.mk 9 Feb 2009 04:05:30 -0000 -@@ -99,17 +99,17 @@ EXTRA_SHARED_LIBS += \ - -L$(DIST)/lib \ - -lnss3 \ - -L$(NSPR_LIB_DIR) \ - -lplc4 \ - -lplds4 \ - -lnspr4 \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_SHARED_LIBS += -lbe - endif - - ifeq ($(OS_ARCH), Darwin) - EXTRA_SHARED_LIBS += -dylib_file @executable_path/libsoftokn3.dylib:$(DIST)/lib/libsoftokn3.dylib - endif - - ifeq ($(OS_TARGET),SunOS) -Index: mozilla/toolkit/library/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/library/Makefile.in,v -retrieving revision 1.16.2.10 -diff -u -8 -p -r1.16.2.10 Makefile.in ---- mozilla/toolkit/library/Makefile.in 31 Aug 2007 02:40:21 -0000 1.16.2.10 -+++ mozilla/toolkit/library/Makefile.in 9 Feb 2009 04:05:45 -0000 -@@ -359,17 +359,17 @@ endif - ifdef MOZ_ENABLE_XPRINT - EXTRA_DSO_LDOPTS += $(MOZ_XPRINT_LDFLAGS) - endif - - ifdef MOZ_ENABLE_PANGO - EXTRA_DSO_LDOPTS += $(MOZ_PANGO_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - - ifeq ($(OS_ARCH),WINNT) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,shell32 ole32 uuid version winspool comdlg32) - ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC)) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,imagehlp) - endif -Index: mozilla/toolkit/mozapps/installer/package-name.mk -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/mozapps/installer/package-name.mk,v -retrieving revision 1.4.8.3 -diff -u -8 -p -r1.4.8.3 package-name.mk ---- mozilla/toolkit/mozapps/installer/package-name.mk 4 Apr 2008 09:21:26 -0000 1.4.8.3 -+++ mozilla/toolkit/mozapps/installer/package-name.mk 9 Feb 2009 04:05:47 -0000 -@@ -54,16 +54,19 @@ ifeq ($(OS_ARCH),Darwin) - MOZ_PKG_PLATFORM := mac - endif - ifeq ($(TARGET_OS),linux-gnu) - MOZ_PKG_PLATFORM := linux-$(TARGET_CPU) - endif - ifeq ($(OS_ARCH),OS2) - MOZ_PKG_PLATFORM := os2 - endif -+ifeq ($(OS_ARCH), Haiku) -+MOZ_PKG_PLATFORM := Haiku -+endif - ifeq ($(OS_ARCH), BeOS) - ifeq (,$(filter-out 6.%, $(OS_RELEASE))) - MOZ_PKG_PLATFORM := Zeta - else - ifeq (,$(filter-out 5.1, $(OS_RELEASE))) - MOZ_PKG_PLATFORM := BeOS-bone - else - ifeq (,$(filter-out 5.0.4, $(OS_RELEASE))) -Index: mozilla/toolkit/mozapps/installer/packager.mk -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/mozapps/installer/packager.mk,v -retrieving revision 1.16.2.18 -diff -u -8 -p -r1.16.2.18 packager.mk ---- mozilla/toolkit/mozapps/installer/packager.mk 4 Apr 2008 20:31:10 -0000 1.16.2.18 -+++ mozilla/toolkit/mozapps/installer/packager.mk 9 Feb 2009 04:05:49 -0000 -@@ -43,21 +43,24 @@ include $(topsrcdir)/toolkit/mozapps/ins - # This is how we create the Unix binary packages we release to the public. - # Currently the only format is tar.gz (TGZ), but it should be fairly easy - # to add .rpm (RPM) and .deb (DEB) later. - - ifndef MOZ_PKG_FORMAT - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - MOZ_PKG_FORMAT = DMG - else --ifeq (,$(filter-out OS2 WINNT BeOS, $(OS_ARCH))) -+ifeq (,$(filter-out OS2 WINNT BeOS Haiku, $(OS_ARCH))) - MOZ_PKG_FORMAT = ZIP - ifeq ($(OS_ARCH),OS2) - INSTALLER_DIR = os2 - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+INSTALLER_DIR = beos -+endif - ifeq ($(OS_ARCH), WINNT) - INSTALLER_DIR = windows - endif - endif - else - ifeq (,$(filter-out SunOS, $(OS_ARCH))) - MOZ_PKG_FORMAT = BZ2 - else -@@ -246,19 +249,19 @@ $(MOZ_PKG_REMOVALS_GEN): $(MOZ_PKG_REMOV - $(PERL) $(topsrcdir)/config/preprocessor.pl -Fsubstitution $(DEFINES) $(ACDEFINES) $(MOZ_PKG_REMOVALS) > $(MOZ_PKG_REMOVALS_GEN) - endif - - GARBAGE += $(DIST)/$(PACKAGE) $(PACKAGE) - - ifeq ($(OS_ARCH),IRIX) - STRIP_FLAGS = -f - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - STRIP_FLAGS = -g --PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)-bin" -+PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)" - endif - ifeq ($(OS_ARCH),OS2) - STRIP = $(srcdir)/os2/strip.cmd - STRIP_FLAGS = - PLATFORM_EXCLUDE_LIST = ! -name "*.ico" - endif - - ifneq (,$(filter WINNT OS2,$(OS_ARCH))) -Index: mozilla/toolkit/xre/nsXREDirProvider.cpp -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/xre/nsXREDirProvider.cpp,v -retrieving revision 1.37.2.11 -diff -u -8 -p -r1.37.2.11 nsXREDirProvider.cpp ---- mozilla/toolkit/xre/nsXREDirProvider.cpp 8 May 2007 19:25:29 -0000 1.37.2.11 -+++ mozilla/toolkit/xre/nsXREDirProvider.cpp 9 Feb 2009 04:05:57 -0000 -@@ -71,17 +71,17 @@ - #ifndef CSIDL_PROGRAM_FILES - #define CSIDL_PROGRAM_FILES 0x0026 - #endif - #endif - #ifdef XP_MACOSX - #include "nsILocalFileMac.h" - #endif - #ifdef XP_BEOS --#include -+#include - #include - #endif - #ifdef XP_UNIX - #include - #endif - #ifdef XP_OS2 - #define INCL_DOS - #include -Index: mozilla/widget/src/beos/nsDragService.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsDragService.cpp,v -retrieving revision 1.13.28.5 -diff -u -8 -p -r1.13.28.5 nsDragService.cpp ---- mozilla/widget/src/beos/nsDragService.cpp 13 Aug 2008 12:41:28 -0000 1.13.28.5 -+++ mozilla/widget/src/beos/nsDragService.cpp 9 Feb 2009 04:06:02 -0000 -@@ -250,17 +250,17 @@ nsDragService::InvokeDragSession (nsIDOM - dragRect = view->Frame(); - // do we need to offset? - } - - PR_LOG(sDragLm, PR_LOG_DEBUG, ("invoking mDragView->DragMessage")); - bool noBitmap = true; - - //This is the code for image-dragging, currently disabled. See comments in beginning of file. --# ifdef 0 -+#if 0 - do - { - PRUint32 dataSize; - PRUint32 noItems; - mSourceDataItems->Count(&noItems); - if (noItems!=1) - { - PR_LOG(sDragLm, PR_LOG_DEBUG, ("Transferables are not ==1, no drag bitmap!")); -@@ -307,17 +307,17 @@ nsDragService::InvokeDragSession (nsIDOM - if (aBitmap==NULL || !aBitmap->IsValid()) { - PR_LOG(sDragLm, PR_LOG_DEBUG, ("Could not get BBitmap, no drag bitmap %s!", aBitmap==NULL?"(null)":"(not valid)" )); - break; - } - - view->DragMessage(mDragMessage, aBitmap, B_OP_OVER, BPoint(-4,-4), view); - noBitmap = false; - } while(false); --# endif -+#endif - - if (noBitmap) - view->DragMessage(mDragMessage, dragRect, view); - - StartDragSession(); - view->UnlockLooper(); - return NS_OK; - } -Index: mozilla/xpcom/build/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/build/Makefile.in,v -retrieving revision 1.90.2.3 -diff -u -8 -p -r1.90.2.3 Makefile.in ---- mozilla/xpcom/build/Makefile.in 29 Mar 2008 06:56:29 -0000 1.90.2.3 -+++ mozilla/xpcom/build/Makefile.in 9 Feb 2009 04:06:06 -0000 -@@ -168,17 +168,17 @@ ifdef GC_LEAK_DETECTOR - DEFINES += -DGC_LEAK_DETECTOR - endif - - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - CXXFLAGS += $(TK_CFLAGS) - EXTRA_DSO_LDOPTS += $(TK_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - - ifneq (,$(filter gtk2,$(MOZ_WIDGET_TOOLKIT))) - EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) - endif - - ifeq ($(OS_ARCH),WINNT) -Index: mozilla/xpcom/obsolete/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/obsolete/Makefile.in,v -retrieving revision 1.17 -diff -u -8 -p -r1.17 Makefile.in ---- mozilla/xpcom/obsolete/Makefile.in 30 Jan 2005 21:33:45 -0000 1.17 -+++ mozilla/xpcom/obsolete/Makefile.in 9 Feb 2009 04:06:09 -0000 -@@ -115,17 +115,17 @@ DEFINES += -D_IMPL_NS_COM_OBSOLETE - - EXTRA_DSO_LDOPTS += $(MOZ_COMPONENT_LIBS) - - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - CXXFLAGS += $(TK_CFLAGS) - EXTRA_DSO_LDOPTS += $(TK_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - - ifeq ($(OS_ARCH),WINNT) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME, shell32 ole32) - ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC)) - EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME, imagehlp) - endif -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v -retrieving revision 1.80.4.6 -diff -u -8 -p -r1.80.4.6 Makefile.in ---- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2008 21:11:34 -0000 1.80.4.6 -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 9 Feb 2009 04:06:11 -0000 -@@ -90,21 +90,23 @@ endif - # IA64 Linux - ifneq (,$(filter Linux,$(OS_ARCH))) - ifneq (,$(findstring ia64,$(OS_TEST))) - CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp - ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s - endif - endif - # --# BeOS/Intel (uses the same unixish_x86 code) -+# BeOS/Intel (uses the same as Linux, works well. Migrate others!) - # --ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -+#ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -+ifeq (,$(filter-out BeOSBePC HaikuBePC, $(OS_ARCH)$(OS_TEST))) - CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp - endif -+ - # - # Neutrino/Intel (uses the same unixish_x86 code) - # - ifeq ($(OS_TARGET),NTO) - ifeq ($(OS_TEST),x86) - CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp - endif - ifeq ($(OS_TEST),arm) -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h,v -retrieving revision 1.18.28.3 -diff -u -8 -p -r1.18.28.3 xptc_platforms_unixish_x86.h ---- mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h 9 Apr 2007 20:01:13 -0000 1.18.28.3 -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h 9 Feb 2009 04:06:12 -0000 -@@ -133,17 +133,22 @@ - /* Old gcc 2.7.x.x. What does gcc 2.8.x do?? */ - #define CFRONT_STYLE_THIS_ADJUST - #else - /* egcs and later */ - #define THUNK_BASED_THIS_ADJUST - #endif - - #elif defined(__BEOS__) -+#if (__GNUC__ == 2) - #define CFRONT_STYLE_THIS_ADJUST -+#else -+#define THUNK_BASED_THIS_ADJUST -+#endif -+ - - #elif defined(__sun__) || defined(__sun) - #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ - #define THUNK_BASED_THIS_ADJUST - #else - #define CFRONT_STYLE_THIS_ADJUST - #endif - -Index: mozilla/xpfe/bootstrap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpfe/bootstrap/Attic/Makefile.in,v -retrieving revision 1.283.2.6 -diff -u -8 -p -r1.283.2.6 Makefile.in ---- mozilla/xpfe/bootstrap/Makefile.in 29 Sep 2007 20:15:11 -0000 1.283.2.6 -+++ mozilla/xpfe/bootstrap/Makefile.in 9 Feb 2009 04:06:16 -0000 -@@ -113,18 +113,22 @@ ifdef MOZ_ENABLE_XREMOTE - REQUIRES += xremoteservice - endif - - include $(topsrcdir)/config/config.mk - - ifeq ($(USE_SHORT_LIBNAME),1) - PROGRAM = $(MOZ_APP_NAME)$(BIN_SUFFIX) - else -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+PROGRAM = $(MOZ_APP_NAME)$(BIN_SUFFIX) -+else - PROGRAM = $(MOZ_APP_NAME)-bin$(BIN_SUFFIX) - endif -+endif - - # Force applications to be built non-statically - # when building the mozcomps meta component - ifneq (,$(filter mozcomps,$(MOZ_META_COMPONENTS))) - BUILD_STATIC_LIBS= - BUILD_SHARED_LIBS=1 - ifdef MOZ_COMPONENTLIB - DEFINES += -D_MOZCOMPS_SHARED_LIBRARY -D_BUILD_STATIC_BIN -@@ -406,17 +410,17 @@ ifndef GNU_CC - LDFLAGS += /HEAP:0x40000 - endif - endif - - CXXFLAGS += $(MOZ_TOOLKIT_REGISTRY_CFLAGS) - - LOCAL_INCLUDES += -I$(srcdir) -I. - --ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT BeOS Haiku,$(OS_ARCH))) - $(MOZ_APP_NAME).1: mozilla.man.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - @sed -e "s|\@bindir\@|$(bindir)|g" -e "s|\@mozappdir\@|$(mozappdir)|g" \ - -e "s|\@MOZ_APP_DISPLAYNAME\@|$(MOZ_APP_DISPLAYNAME)|g" \ - -e "s|\@MOZ_APP_NAME\@|$(MOZ_APP_NAME)|g" \ - -e "s|\@MOZ_APP_VERSION\@|${MOZ_APP_VERSION}|g" < $< > $@ - - libs:: $(MOZ_APP_NAME).1 - $(INSTALL) $< $(DIST)/man/man1 -Index: mozilla/xpfe/bootstrap/nsSigHandlers.cpp -=================================================================== -RCS file: /cvsroot/mozilla/xpfe/bootstrap/nsSigHandlers.cpp,v -retrieving revision 1.41.18.1 -diff -u -8 -p -r1.41.18.1 nsSigHandlers.cpp ---- mozilla/xpfe/bootstrap/nsSigHandlers.cpp 22 Jun 2006 22:31:13 -0000 1.41.18.1 -+++ mozilla/xpfe/bootstrap/nsSigHandlers.cpp 9 Feb 2009 04:06:17 -0000 -@@ -55,17 +55,18 @@ - #include // atoi - #endif - - #if defined(SOLARIS) - #include - #endif - - #ifdef XP_BEOS --#include -+#include -+#include - #include - #include "nsCOMPtr.h" - #include "nsIServiceManager.h" - #include "nsIAppStartup.h" - #include "nsXPFEComponentsCID.h" - #endif - - #ifdef MOZ_WIDGET_PHOTON -Index: mozilla/xpinstall/packager/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpinstall/packager/Attic/Makefile.in,v -retrieving revision 1.68.4.1 -diff -u -8 -p -r1.68.4.1 Makefile.in ---- mozilla/xpinstall/packager/Makefile.in 20 Feb 2006 17:42:11 -0000 1.68.4.1 -+++ mozilla/xpinstall/packager/Makefile.in 9 Feb 2009 04:06:26 -0000 -@@ -43,17 +43,17 @@ srcdir = @srcdir@ - VPATH = @srcdir@ - - include $(DEPTH)/config/autoconf.mk - - OSPACKAGE = unix - ifeq ($(OS_ARCH),IRIX) - STRIP_FLAGS = -f - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - STRIP_FLAGS = -g - PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)-bin" - endif - ifeq ($(OS_ARCH),OS2) - STRIP = $(srcdir)/os2/strip.cmd - STRIP_FLAGS = - OSPACKAGE = os2 - PLATFORM_EXCLUDE_LIST = ! -name "*.ico" -Index: mozilla/xulrunner/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xulrunner/app/Makefile.in,v -retrieving revision 1.23.2.4 -diff -u -8 -p -r1.23.2.4 Makefile.in ---- mozilla/xulrunner/app/Makefile.in 9 Apr 2008 06:50:54 -0000 1.23.2.4 -+++ mozilla/xulrunner/app/Makefile.in 9 Feb 2009 04:06:32 -0000 -@@ -54,17 +54,17 @@ DIRS = profile - PREF_JS_EXPORTS = $(srcdir)/xulrunner.js - GARBAGE += $(addprefix $(DIST)/bin/defaults/pref/,xulrunner.js) - - DEFINES += -DAB_CD=$(AB_CD) - - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = xulrunner$(BIN_SUFFIX) - else --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PROGRAM = xulrunner$(BIN_SUFFIX) - else - PROGRAM = xulrunner-bin$(BIN_SUFFIX) - endif - endif - - DEFINES += -DXULRUNNER_PROGNAME=\"xulrunner\" - -@@ -80,17 +80,17 @@ REQUIRES = \ - xulrunner \ - $(NULL) - - CPPSRCS = nsXULRunnerApp.cpp - - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += nsRegisterGREWin.cpp - else --ifneq (,$(filter OS2 Darwin,$(OS_ARCH))) -+ifneq (,$(filter OS2 Darwin BeOS Haiku,$(OS_ARCH))) - CPPSRCS += nsRegisterGREVoid.cpp - else - CPPSRCS += nsRegisterGREUnix.cpp - endif - endif - - LOCAL_INCLUDES += \ - -I$(topsrcdir)/toolkit/xre \ -@@ -169,17 +169,17 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS += -ltracker - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res - RCFLAGS += -DMOZ_XULRUNNER - ifdef BUILD_STATIC_LIBS - EXE_DEF_FILE = xulrunner.def -@@ -237,17 +237,17 @@ $(EXE_DEF_FILE): - @echo WinQueryProperty = PMMERGE.5450 >>$(EXE_DEF_FILE) - @echo WinRemoveProperty = PMMERGE.5451 >>$(EXE_DEF_FILE) - @echo WinSetProperty = PMMERGE.5452 >>$(EXE_DEF_FILE) - - LDFLAGS += -Zlinker /NOE - endif - endif - --ifneq (,$(filter-out OS2 WINNT Darwin BeOS,$(OS_ARCH))) -+ifneq (,$(filter-out OS2 WINNT Darwin BeOS Haiku,$(OS_ARCH))) - - xulrunner:: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk - cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ - -e "s|%MOZ_USER_DIR%|.mozilla/xulrunner|" \ - -e "s|%MREDIR%|$(mredir)|" > $@ - chmod +x $@ - - libs:: xulrunner diff --git a/www-client/mozilla_firefox/old-patches/firstrun-default-page.diff b/www-client/mozilla_firefox/old-patches/firstrun-default-page.diff deleted file mode 100644 index 46db657ab..000000000 --- a/www-client/mozilla_firefox/old-patches/firstrun-default-page.diff +++ /dev/null @@ -1,36 +0,0 @@ -Index: mozilla/browser/app/firefox-branding.js -=================================================================== -RCS file: /cvsroot/mozilla/browser/app/firefox-branding.js,v -retrieving revision 1.1.2.2 -diff -u -8 -p -w -r1.1.2.2 firefox-branding.js ---- mozilla/browser/app/firefox-branding.js 12 Sep 2006 15:50:19 -0000 1.1.2.2 -+++ mozilla/browser/app/firefox-branding.js 7 Jul 2009 12:20:54 -0000 -@@ -1,16 +1,15 @@ - pref("startup.homepage_override_url","http://www.mozilla.org/projects/%APP%/%VERSION%/whatsnew/"); --pref("startup.homepage_welcome_url","http://www.mozilla.org/projects/%APP%/%VERSION%/firstrun/"); - // URL user can browse to manually if for some reason all update installation - // attempts fail. - pref("app.update.url.manual", "http://www.mozilla.org/products/%APP%/"); - // A default value for the "More information about this update" link - // supplied in the "An update is available" page of the update wizard. - pref("app.update.url.details", "http://www.mozilla.org/projects/%APP%/"); - - // Release notes URL --pref("app.releaseNotesURL", "http://www.mozilla.org/projects/%APP%/%VERSION%/releasenotes/"); -+pref("app.releaseNotesURL", "about:buildconfig"); - - // Search codes belong only in builds with official branding - pref("browser.search.param.yahoo-fr", ""); - pref("browser.search.param.yahoo-fr-cjkt", ""); - pref("browser.search.param.yahoo-f-CN", ""); -Index: mozilla/browser/base/content/browserconfig.properties -=================================================================== -RCS file: /cvsroot/mozilla/browser/base/content/browserconfig.properties,v -retrieving revision 1.4.4.1 -diff -u -8 -p -w -r1.4.4.1 browserconfig.properties ---- mozilla/browser/base/content/browserconfig.properties 17 Mar 2006 04:17:56 -0000 1.4.4.1 -+++ mozilla/browser/base/content/browserconfig.properties 7 Jul 2009 12:31:48 -0000 -@@ -1,2 +1,2 @@ - # Do NOT localize or otherwise change these values --browser.startup.homepage=http://www.mozilla.org/projects/bonecho/ -+browser.startup.homepage=http://svn.berlios.de/svnroot/repos/haiku/haiku/trunk/docs/welcome/welcome.html diff --git a/www-client/mozilla_firefox/old-patches/forReorderPatches-browser.zip b/www-client/mozilla_firefox/old-patches/forReorderPatches-browser.zip deleted file mode 100644 index bdaef70cc47ebab978a904b36953ec3c154d3714..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4540 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 diff --git a/www-client/mozilla_firefox/old-patches/greyMenuSelection.patch b/www-client/mozilla_firefox/old-patches/greyMenuSelection.patch deleted file mode 100644 index b86bea0a6..000000000 --- a/www-client/mozilla_firefox/old-patches/greyMenuSelection.patch +++ /dev/null @@ -1,28 +0,0 @@ -Index: mozilla/widget/src/beos/nsLookAndFeel.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsLookAndFeel.cpp,v -retrieving revision 1.27 -diff -u -8 -p -r1.27 nsLookAndFeel.cpp ---- mozilla/widget/src/beos/nsLookAndFeel.cpp 26 Oct 2004 01:45:26 -0000 1.27 -+++ mozilla/widget/src/beos/nsLookAndFeel.cpp 19 Feb 2009 04:37:06 -0000 -@@ -157,19 +157,17 @@ nsresult nsLookAndFeel::NativeGetColor(c - aColor = NS_RGB(0x00, 0x00, 0x00); - break; - case eColor_graytext: - aColor = NS_RGB(0x77, 0x77, 0x77); - break; - case eColor_highlight: - case eColor__moz_menuhover: - { -- // B_MENU_SELECTION_BACKGROUND_COLOR is used for text selection -- // this blue colors seems more suitable -- color = ui_color(B_KEYBOARD_NAVIGATION_COLOR); -+ color = ui_color(B_MENU_SELECTION_BACKGROUND_COLOR ); - aColor = NS_RGB(color.red, color.green, color.blue); - } - break; - case eColor_highlighttext: - case eColor__moz_menuhovertext: - { - color = ui_color(B_MENU_SELECTED_ITEM_TEXT_COLOR); - aColor = NS_RGB(color.red, color.green, color.blue); diff --git a/www-client/mozilla_firefox/old-patches/launch-kill-dowhile.patch b/www-client/mozilla_firefox/old-patches/launch-kill-dowhile.patch deleted file mode 100644 index e42a6c15e..000000000 --- a/www-client/mozilla_firefox/old-patches/launch-kill-dowhile.patch +++ /dev/null @@ -1,406 +0,0 @@ -Index: mozilla/widget/src/beos/nsAppShell.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsAppShell.cpp,v -retrieving revision 1.29.8.2 -diff -u -8 -p -r1.29.8.2 nsAppShell.cpp ---- mozilla/widget/src/beos/nsAppShell.cpp 3 Jul 2007 09:33:54 -0000 1.29.8.2 -+++ mozilla/widget/src/beos/nsAppShell.cpp 19 Feb 2009 06:12:35 -0000 -@@ -113,20 +113,38 @@ nsAppShell::nsAppShell() - //------------------------------------------------------------------------- - - NS_IMETHODIMP nsAppShell::Create(int* argc, char ** argv) - { - // system wide unique names - // NOTE: this needs to be run from within the main application thread - char portname[64]; - char semname[64]; -- PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -- PR_snprintf(semname, sizeof(semname), "sync%lx", -- (long unsigned) PR_GetCurrentThread()); -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(0)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - - #ifdef DEBUG - printf("nsAppShell::Create portname: %s, semname: %s\n", portname, semname); - #endif - /* - * Set up the port for communicating. As restarts thru execv may occur - * and ports survive those (with faulty events as result). Combined with the fact - * that plevent.c can setup the port ahead of us we need to take extra -@@ -337,19 +355,33 @@ NS_IMETHODIMP nsAppShell::GetNativeEvent - - return NS_OK; - } - - NS_IMETHODIMP nsAppShell::DispatchNativeEvent(PRBool aRealEvent, void *aEvent) - { - // should we check for eventport initialization ? - char portname[64]; -- PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -- -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(0)/*PR_GetCurrentThread()*/); -+ } while(iinfo.type != B_APP_IMAGE); -+ - if((eventport = find_port(portname)) < 0) - { - // not initialized - #ifdef DEBUG - printf("nsAppShell::DispatchNativeEvent() was called before init\n"); - #endif - fflush(stdout); - return NS_ERROR_FAILURE; -Index: mozilla/widget/src/beos/nsToolkit.cpp -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsToolkit.cpp,v -retrieving revision 1.23.8.1 -diff -u -8 -p -r1.23.8.1 nsToolkit.cpp ---- mozilla/widget/src/beos/nsToolkit.cpp 3 Jul 2007 09:33:54 -0000 1.23.8.1 -+++ mozilla/widget/src/beos/nsToolkit.cpp 19 Feb 2009 06:12:35 -0000 -@@ -37,16 +37,17 @@ - - #include "nsToolkit.h" - #include "prmon.h" - #include "prtime.h" - #include "nsGUIEvent.h" - #include "nsSwitchToUIThread.h" - #include "plevent.h" - #include "prprf.h" -+#include - - // - // Static thread local storage index of the Toolkit - // object associated with a given thread... - // - static PRUintn gToolkitTLSIndex = 0; - - //------------------------------------------------------------------------- -@@ -84,20 +85,36 @@ void nsToolkit::RunPump(void* arg) - gThreadState = PR_TRUE; - - PR_Notify(info->monitor); - PR_ExitMonitor(info->monitor); - - delete info; - - // system wide unique names -- PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -- -- port_id event = create_port(100, portname); -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); -+ -+ port_id event = create_port(200, portname); - - while(read_port(event, &code, &id, sizeof(id)) >= 0) - { - switch(code) - { - case WM_CALLMETHOD : - { - MethodInfo *mInfo = (MethodInfo *)id.data; -@@ -125,16 +142,17 @@ void nsToolkit::RunPump(void* arg) - // - // constructor - // - //------------------------------------------------------------------------- - nsToolkit::nsToolkit() - { - localthread = false; - mGuiThread = NULL; -+ mGUIThreadID = 0; - } - - - //------------------------------------------------------------------------- - // - // destructor - // - //------------------------------------------------------------------------- -@@ -182,17 +200,33 @@ void nsToolkit::CreateUIThread() - 0); - - // wait for the gui thread to start - while(gThreadState == PR_FALSE) - { - PR_Wait(monitor, PR_INTERVAL_NO_TIMEOUT); - } - } -- -+ -+ image_info iinfo; -+ int32 cookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ mGUIThreadID = find_thread(leaf); -+ } -+ else -+ { -+ mGUIThreadID = find_thread(0); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - // at this point the thread is running - PR_ExitMonitor(monitor); - PR_DestroyMonitor(monitor); - } - - - //------------------------------------------------------------------------- - // -@@ -213,28 +247,42 @@ NS_METHOD nsToolkit::Init(PRThread *aThr - { - localthread = true; - - // create a thread where the message pump will run - CreateUIThread(); - } - - cached = false; -- -+ image_info iinfo; -+ int32 cookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ mGUIThreadID = find_thread(leaf); -+ } -+ else -+ { -+ mGUIThreadID = find_thread(0); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - return NS_OK; - } - - void nsToolkit::GetInterface() - { - if(! cached) - { - char portname[64]; -- - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) mGuiThread); -+ (long unsigned) mGUIThreadID); - - eventport = find_port(portname); - - cached = true; - } - } - - void nsToolkit::CallMethod(MethodInfo *info) -Index: mozilla/widget/src/beos/nsToolkit.h -=================================================================== -RCS file: /cvsroot/mozilla/widget/src/beos/nsToolkit.h,v -retrieving revision 1.5.8.1 -diff -u -8 -p -r1.5.8.1 nsToolkit.h ---- mozilla/widget/src/beos/nsToolkit.h 3 Jul 2007 09:33:54 -0000 1.5.8.1 -+++ mozilla/widget/src/beos/nsToolkit.h 19 Feb 2009 06:12:36 -0000 -@@ -66,16 +66,17 @@ public: - void Kill(); - private: - virtual ~nsToolkit(); - void CreateUIThread(void); - - protected: - // Thread Id of the "main" Gui thread. - PRThread *mGuiThread; -+ thread_id mGUIThreadID; - static void RunPump(void* arg); - void GetInterface(); - bool cached; - bool localthread; - port_id eventport; - }; - - #endif // TOOLKIT_H -Index: mozilla/xpcom/threads/plevent.c -=================================================================== -RCS file: /cvsroot/mozilla/xpcom/threads/Attic/plevent.c,v -retrieving revision 1.54.2.1 -diff -u -8 -p -r1.54.2.1 plevent.c ---- mozilla/xpcom/threads/plevent.c 26 Sep 2005 19:43:34 -0000 1.54.2.1 -+++ mozilla/xpcom/threads/plevent.c 19 Feb 2009 06:12:40 -0000 -@@ -61,16 +61,18 @@ - #if defined(XP_UNIX) - /* for fcntl */ - #include - #include - #endif - - #if defined(XP_BEOS) - #include -+#include -+#include - #endif - - #if defined(XP_MACOSX) - #if defined(MOZ_WIDGET_COCOA) - #include - #define MAC_USE_CFRUNLOOPSOURCE - #elif defined(TARGET_CARBON) - /* #include */ -@@ -903,21 +905,50 @@ failed: - * Otherwise we need to create the sem and the port, deleting any open ports before. - */ - - sem_info info; - int32 cookie = 0; - - char portname[64]; - char semname[64]; -- PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) self->handlerThread); -- PR_snprintf(semname, sizeof(semname), "sync%lx", -- (long unsigned) self->handlerThread); - -+struct _MDThread -+{ -+ thread_id tid; -+ sem_id joinSem; -+ PRBool is_joining; -+}; -+ struct _MDThread md; -+ -+ -+//#include "private/primpl.h" -+ image_info iinfo; -+ int32 icookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &icookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(0)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); -+ - self->eventport = find_port(portname); - while(get_next_sem_info(0, &cookie, &info) == B_OK) - { - if(strcmp(semname, info.name) != 0) { - continue; - } - - /* found semaphore */ -@@ -926,17 +957,17 @@ failed: - } - return PR_SUCCESS; - } - /* setup the port and semaphore */ - if(self->eventport >= 0) - { - delete_port( self->eventport ); - } -- self->eventport = create_port(200, portname); -+ self->eventport = create_port(512, portname); - /* We don't use the sem, but it has to be there - */ - create_sem(0, semname); - return PR_SUCCESS; - #else - return PR_SUCCESS; - #endif - } -@@ -1259,26 +1290,28 @@ _pl_NativeNotify(PLEventQueue* self) - - #if defined(XP_BEOS) - struct ThreadInterfaceData - { - void *data; - thread_id waitingThread; - }; - -+ - static PRStatus - _pl_NativeNotify(PLEventQueue* self) - { - struct ThreadInterfaceData id; - id.data = self; - id.waitingThread = 0; - write_port(self->eventport, 'natv', &id, sizeof(id)); - - return PR_SUCCESS; /* Is this correct? */ - } -+ - #endif /* XP_BEOS */ - - #if defined(XP_MACOSX) - static PRStatus - _pl_NativeNotify(PLEventQueue* self) - { - #if defined(MAC_USE_CFRUNLOOPSOURCE) - CFRunLoopSourceSignal(self->mRunLoopSource); diff --git a/www-client/mozilla_firefox/old-patches/mozilla-rdefs.zip b/www-client/mozilla_firefox/old-patches/mozilla-rdefs.zip deleted file mode 100644 index 456c1a758620d21853ddb859cb346c62252ffd6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18176 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

dIEC-tCedUV<05*AIe9JgI#8daih%h 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 diff --git a/www-client/mozilla_firefox/old-patches/nsAppRunner.patch b/www-client/mozilla_firefox/old-patches/nsAppRunner.patch deleted file mode 100644 index 7e100a850..000000000 --- a/www-client/mozilla_firefox/old-patches/nsAppRunner.patch +++ /dev/null @@ -1,25 +0,0 @@ -Index: mozilla/toolkit/xre/nsAppRunner.cpp -=================================================================== -RCS file: /cvsroot/mozilla/toolkit/xre/nsAppRunner.cpp,v -retrieving revision 1.113.2.24 -diff -u -4 -r1.113.2.24 nsAppRunner.cpp ---- mozilla/toolkit/xre/nsAppRunner.cpp 8 Nov 2007 11:56:25 -0000 1.113.2.24 -+++ mozilla/toolkit/xre/nsAppRunner.cpp 16 Feb 2009 19:19:26 -0000 -@@ -1360,12 +1360,13 @@ - - #elif defined(XP_BEOS) - int32 cookie = 0; - image_info info; -- -- if(get_next_image_info(0, &cookie, &info) != B_OK) -- return NS_ERROR_FAILURE; -- -+ do { -+ if(get_next_image_info(0, &cookie, &info) != B_OK) -+ return NS_ERROR_FAILURE; -+ } while(info.type != B_APP_IMAGE); -+ - rv = NS_NewNativeLocalFile(nsDependentCString(info.name), PR_TRUE, - getter_AddRefs(lf)); - if (NS_FAILED(rv)) - return rv; diff --git a/www-client/mozilla_firefox/old-patches/prpolevt-fix.patch b/www-client/mozilla_firefox/old-patches/prpolevt-fix.patch deleted file mode 100644 index 6c67e6503..000000000 --- a/www-client/mozilla_firefox/old-patches/prpolevt-fix.patch +++ /dev/null @@ -1,32 +0,0 @@ -Index: mozilla/nsprpub/pr/src/io/prpolevt.c -=================================================================== -RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prpolevt.c,v -retrieving revision 3.15 -diff -u -8 -p -r3.15 prpolevt.c ---- mozilla/nsprpub/pr/src/io/prpolevt.c 25 Apr 2004 15:00:58 -0000 3.15 -+++ mozilla/nsprpub/pr/src/io/prpolevt.c 18 Feb 2009 02:06:41 -0000 -@@ -443,20 +443,20 @@ PR_IMPLEMENT(PRFileDesc *) PR_NewPollabl - #else - if (PR_NewTCPSocketPair(fd) == PR_FAILURE) { - fd[0] = fd[1] = NULL; - goto errorExit; - } - /* - * set the TCP_NODELAY option to reduce notification latency - */ -- socket_opt.option = PR_SockOpt_NoDelay; -- socket_opt.value.no_delay = PR_TRUE; -- rv = PR_SetSocketOption(fd[1], &socket_opt); -- PR_ASSERT(PR_SUCCESS == rv); -+// socket_opt.option = PR_SockOpt_NoDelay; -+// socket_opt.value.no_delay = PR_TRUE; -+// rv = PR_SetSocketOption(fd[1], &socket_opt); -+// PR_ASSERT(PR_SUCCESS == rv); - #endif - - event->secret->writeEnd = fd[1]; - if (PR_PushIOLayer(fd[0], PR_TOP_IO_LAYER, event) == PR_FAILURE) { - goto errorExit; - } - - return fd[0]; diff --git a/www-client/mozilla_firefox/old-patches/sunbird-makefile-apprunner-rsrc.zip b/www-client/mozilla_firefox/old-patches/sunbird-makefile-apprunner-rsrc.zip deleted file mode 100644 index b48cf7294ea797cb3e83a3f0454b0ae35fc2aea5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2140 zcmai#c{tSj9>;%VZDb_7>@_WnWg1l0WNdRR#WdMswla)KV;e~ZC!;9Tu}vE~h-@Lk z(4lip(3)KTzy4=LUaNH>WY`Vno78;f>BZ~Hus6H%Zp@C)27`?T+B%cUQd4^$aE$|7 zATv(7Z>%jl)lGsgUV<70$fq&}3(|vQzKBAt^#hJC> z{g803H&`zqO_|$ot}*+rn8CnIKD;&dk&->zB2(kzg?LkhOjVclf_kDVLVfCsj}#q^ znSUMaA8Ujvx)yGvo{Mw2&FLL3tlrmBY;djEWyowMB(qn2R{bfsTrTgXP z(slYt8s+r3u!g7#hE#N=^=m7$$-N(1LbNU>@OyhB2&gMN^8K_2t46$BcnJkG#0#}Y zTAUaX$D;h++sV3S-36#)d9~(1>&)VylSg{0!^O2_WuKELEuno4;YhT8wx9dY=~DJm zRNW)c;`?s!t>zVbznqv`sHW37o#rJcyp<3H61nxB;Rq~=`wHuOb>+ecd z?m~Pu9z1*ePUlx&=-MGa@Tbs6pY=#NepP>rg`!@b+@I5_>{+4~RQ~+3sZnr2hk%E` zfcll5-rJtlmkyHaQ<{QQw9}u28s*UJP)|1uQVylGJ2#=qL5Xcd-rcD#ZFLim_c8aO z2NH|Q(*4B|} zS%=w>pP3Sw2N$VW?r6|Z4D|Yxrib0-L-a%&8IHi-+M5AoAz7oaz9nkhyL9l_Y38U8 z*}@j?Exa;DZC27*gw)})@2)Ys>s`kOcTGJcgiEsyq;xR3i4}Yl#ISFqa)Nv0*|?sA zu^f-qlTJ%Eu+bWQCQzZIrBFbe@87~E6MFR!;ch7J{BVTp~153 zy0}V54c}5|wY-HVmYDpc!;T+RD|a|z%i9!>UPW1mi%YF`2>7zKsvocE+}*eHMGmNBw7M+z)_#wforX64 z`33BmEE|(EH2W21OC5Q6>>243P|!c)5Fa+AG-9 zKf%iH40*l;QYJY#Joz2+H->QlGs~graZy9GYT7)v6`^Fx$UiuUA7K_)S{=X?yh3Y2 zJ~PHE3pEU13I9x0%(U<8kxFP*WmYt_JnUnzdKb_gHUtlst<|fF z4y~$~EV-YksBSX^pC0L_%UpG$z3{&mHbOfuOvqB=9AKnafeaEoN?*bk$B%tdl(-zL zdI%>zsZeWo`L1m}{kX&*`bN&q%{q_k=PlXUR&TWe4GK+qiLqE%tm53M&nX{eze79eT z<|@4ii`_@LOXFQSW~vmOePzP!q(<3j8K+yDXFC7N$_ptbuBz}?Fjn~oOab86q|Nq! zqFM3>no-nEBuoB4^1sXew{d>RihLxJeIO$L|F@B7#-@$_Ipe#1ypWPoo1YRF?N(7u Im)<=69bEdasQ>@~ diff --git a/www-client/mozilla_firefox/patches/2009-09-27/bezilla.step-by-step.txt b/www-client/mozilla_firefox/patches/2009-09-27/bezilla.step-by-step.txt deleted file mode 100644 index 329eb07b1..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/bezilla.step-by-step.txt +++ /dev/null @@ -1,18 +0,0 @@ -Note: use --dry-run, as some patches may need -p1 and others may not apply cleanly. - -r01-config-star.patch # patches config.guess, config.sub -r02-configure-in-withGCC4andCrossCompile.patch # same as above, plus additions from `svn diff -r 7:8` -r03a-makefile-in.patch # Adds "Haiku" to the OS_ARCH tests. -r03b-starmk.patch # More adding "Haiku" to the OS_ARCH tests. -r04a-rdef-support-in-Makefile.patch # Adds rdef support to Makefiles. -r04b-just-rdefs-no-Makefile.patch # various *.rdef -r05-fix-shlibsign.README # Discussion that led to the patch. -r05-fix-shlibsign.patch # hack/fix for someone defines true/false to 1/0 -r06-nss-gcc4.patch # possible gcc4 and header fixes for nss/ -r07-working-nspr-from-haikuports.patch # applying this instead of 89-unmodified.patch will allow proper compilation, at the cost of losing your newest nspr work. -r08-misc.patch # numerous patches. not sure which patches are dependant on each other. - # Fonts, AppRunner, AppShell, DragService, nsToolKit, plevent, maybe more. -r09-sunbird-options-fix.patch # small fix for Sunbird's option window -r11-bookmarks-v2.patch # changes the default startup page, bookmarks, allows UserGuide and Welcome to be fetched locally or from svn -r10-grey-menu-color.patch # switches the blue menu highlight selection color for grey. -r12-releasenotes.patch # removes the 2nd first-run tab, changes release notes to about:buildconfig diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r01-config-star.patch b/www-client/mozilla_firefox/patches/2009-09-27/r01-config-star.patch deleted file mode 100644 index 4a08a242c..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r01-config-star.patch +++ /dev/null @@ -1,5296 +0,0 @@ -Index: build/autoconf/config.guess -=================================================================== ---- build/autoconf/config.guess (revision 15) -+++ build/autoconf/config.guess (working copy) -@@ -1,9 +1,10 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2009-04-27' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -17,13 +18,15 @@ - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. -@@ -53,8 +56,8 @@ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -66,11 +69,11 @@ - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. -@@ -104,8 +107,9 @@ - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -@@ -122,7 +126,7 @@ - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) -@@ -157,6 +161,7 @@ - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched -@@ -195,50 +200,32 @@ - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU -@@ -276,39 +263,49 @@ - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then -@@ -316,29 +313,48 @@ - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; -+ s390x:SunOS:*:*) -+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) -+ eval $set_cc_for_build -+ SUN_ARCH="i386" -+ # If there is a compiler, see if it is configured for 64-bit objects. -+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. -+ # This test works for both compilers. -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ SUN_ARCH="x86_64" -+ fi -+ fi -+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) -@@ -347,10 +363,10 @@ - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 -@@ -362,10 +378,10 @@ - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor -@@ -376,37 +392,40 @@ - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -430,32 +449,33 @@ - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` -@@ -471,29 +491,29 @@ - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` -@@ -501,7 +521,7 @@ - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build -@@ -516,15 +536,19 @@ - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -- echo rs6000-ibm-aix3.2.5 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else -+ echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 -@@ -537,28 +561,28 @@ - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in -@@ -620,9 +644,19 @@ - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else -@@ -630,11 +664,11 @@ - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -662,153 +696,192 @@ - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd | genuineintel) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -825,8 +898,12 @@ - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build -@@ -844,15 +921,22 @@ - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; -@@ -866,7 +950,10 @@ - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; -+ padre:Linux:*:*) -+ echo sparc-unknown-linux-gnu -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -@@ -874,22 +961,31 @@ - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent -@@ -907,15 +1003,12 @@ - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -- coff-i386) -- echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build -@@ -932,23 +1025,33 @@ - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... -@@ -956,24 +1059,27 @@ - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then -@@ -981,15 +1087,16 @@ - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; -+ NCR*:*:4.2:* | MPRAS*:*:4.2:*) -+ OS_REL='.3' -+ test -r /etc/.relid \ -+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` -@@ -1081,78 +1201,84 @@ - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ exit ;; -+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then -@@ -1160,22 +1286,25 @@ - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 -@@ -1186,25 +1315,50 @@ - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; -+ i*86:AROS:*:*) -+ echo ${UNAME_MACHINE}-pc-aros -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 -@@ -1236,7 +1390,7 @@ - #endif - - #if defined (__arm) && defined (__acorn) && defined (__unix) -- printf ("arm-acorn-riscix"); exit (0); -+ printf ("arm-acorn-riscix\n"); exit (0); - #endif - - #if defined (hp300) && !defined (hpux) -@@ -1325,11 +1479,12 @@ - } - EOF - --$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - -@@ -1338,22 +1493,22 @@ - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - -@@ -1364,7 +1519,9 @@ - the operating system you are using. It is advised that you - download the most up to date version of the config scripts from - -- ftp://ftp.gnu.org/pub/gnu/config/ -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -+and -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - - If the version you run ($0) is already up to date, please - send the following data and any information you think might be -Index: build/autoconf/config.sub -=================================================================== ---- build/autoconf/config.sub (revision 15) -+++ build/autoconf/config.sub (working copy) -@@ -1,9 +1,10 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2009-04-17' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software -@@ -21,14 +22,15 @@ - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # -@@ -70,8 +72,8 @@ - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -83,11 +85,11 @@ - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. -@@ -99,7 +101,7 @@ - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; -@@ -118,7 +120,10 @@ - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ kopensolaris*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; -@@ -144,7 +149,7 @@ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; -@@ -169,6 +174,10 @@ - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -@@ -185,6 +194,10 @@ - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -@@ -224,51 +237,61 @@ - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | lm32 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep | metag \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -+ | mips64octeon | mips64octeonel \ -+ | mips64orion | mips64orionel \ -+ | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ -- | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | moxie \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -- | z8k) -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ -+ | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) -@@ -278,6 +301,9 @@ - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and -@@ -291,64 +317,74 @@ - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | lm32-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ -+ | mips64octeon-* | mips64octeonel-* \ -+ | mips64orion-* | mips64orionel-* \ -+ | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ -- | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ -- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ -- | z8k-*) -+ | z8k-* | z80-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) -@@ -365,6 +401,9 @@ - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout -@@ -379,6 +418,12 @@ - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv -@@ -402,6 +447,10 @@ - basic_machine=m68k-apollo - os=-bsd - ;; -+ aros) -+ basic_machine=i386-pc -+ os=-aros -+ ;; - aux) - basic_machine=m68k-apple - os=-aux -@@ -410,10 +459,22 @@ - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; -+ cegcc) -+ basic_machine=arm-unknown -+ os=-cegcc -+ ;; - convex-c1) - basic_machine=c1-convex - os=-bsd -@@ -438,12 +499,27 @@ - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; -@@ -466,6 +542,14 @@ - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ dicos) -+ basic_machine=i686-pc -+ os=-dicos -+ ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx -@@ -616,6 +700,14 @@ - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; -@@ -631,12 +723,10 @@ - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; -@@ -650,10 +740,6 @@ - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff -@@ -666,6 +752,9 @@ - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs -@@ -734,10 +823,6 @@ - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; -@@ -745,10 +830,13 @@ - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff - ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 -+ ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose -@@ -765,6 +853,14 @@ - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; -@@ -774,24 +870,36 @@ - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; -@@ -824,6 +932,10 @@ - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff -@@ -850,6 +962,14 @@ - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; -@@ -857,6 +977,12 @@ - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks -@@ -931,10 +1057,6 @@ - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff -@@ -947,6 +1069,10 @@ - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; -@@ -960,6 +1086,10 @@ - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi -@@ -1003,6 +1133,10 @@ - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; -@@ -1014,6 +1148,10 @@ - basic_machine=z8k-unknown - os=-sim - ;; -+ z80-*-coff) -+ basic_machine=z80-unknown -+ os=-sim -+ ;; - none) - basic_machine=none-none - os=-none -@@ -1033,6 +1171,9 @@ - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; -@@ -1049,13 +1190,10 @@ - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) -@@ -1121,30 +1259,31 @@ - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ -+ | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -- | -aos* \ -+ | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ -- | -chorusos* | -chorusrdb* \ -+ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) -@@ -1162,12 +1301,15 @@ - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; -@@ -1180,6 +1322,9 @@ - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; -@@ -1201,6 +1346,9 @@ - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; -@@ -1223,6 +1371,9 @@ - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; -@@ -1259,6 +1410,12 @@ - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; -+ -dicos*) -+ os=-dicos -+ ;; - -none) - ;; - *) -@@ -1281,6 +1438,12 @@ - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; -@@ -1290,6 +1453,9 @@ - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 -@@ -1315,6 +1481,9 @@ - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; -@@ -1333,9 +1502,15 @@ - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; -@@ -1468,9 +1643,15 @@ - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; -@@ -1495,7 +1676,7 @@ - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) -Index: directory/c-sdk/config/autoconf/config.guess -=================================================================== ---- directory/c-sdk/config/autoconf/config.guess (revision 15) -+++ directory/c-sdk/config/autoconf/config.guess (working copy) -@@ -1,9 +1,10 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2009-04-27' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -17,13 +18,15 @@ - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Originally written by Per Bothner . - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. -@@ -53,8 +56,8 @@ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -66,11 +69,11 @@ - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. -@@ -104,8 +107,9 @@ - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || -+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; - dummy=$tmp/dummy ; - tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -@@ -122,7 +126,7 @@ - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; --esac ;' -+esac ; set_cc_for_build= ;' - - # This is needed to find uname on a Pyramid OSx when run in the BSD universe. - # (ghazi@noc.rutgers.edu 1994-08-24) -@@ -157,6 +161,7 @@ - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched -@@ -195,50 +200,32 @@ - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" -- exit 0 ;; -- amiga:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- arc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- hp300:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mac68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- macppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme68k:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvme88k:OpenBSD:*:*) -- echo m88k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- mvmeppc:OpenBSD:*:*) -- echo powerpc-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- pmax:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sgi:OpenBSD:*:*) -- echo mipseb-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- sun3:OpenBSD:*:*) -- echo m68k-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -- wgrisc:OpenBSD:*:*) -- echo mipsel-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:OpenBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} -- exit 0 ;; -+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -+ exit ;; -+ *:ekkoBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} -+ exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; -+ macppc:MirBSD:*:*) -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; -+ *:MirBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -+ exit ;; - alpha:OSF1:*:*) -- if test $UNAME_RELEASE = "V4.0"; then -+ case $UNAME_RELEASE in -+ *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -- fi -+ ;; -+ *5.*) -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ ;; -+ esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU -@@ -276,39 +263,49 @@ - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac -+ # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit 0 ;; -+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -+ exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix -- exit 0 ;; -+ exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -- exit 0 ;; -+ exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 -- exit 0;; -+ exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos -- exit 0 ;; -+ exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos -- exit 0 ;; -+ exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition -- exit 0 ;; -+ exit ;; -+ *:z/VM:*:*) -+ echo s390-ibm-zvmoe -+ exit ;; -+ *:OS400:*:*) -+ echo powerpc-ibm-os400 -+ exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} -- exit 0;; -+ exit ;; -+ arm:riscos:*:*|arm:RISCOS:*:*) -+ echo arm-unknown-riscos -+ exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp -- exit 0;; -+ exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then -@@ -316,29 +313,48 @@ - else - echo pyramid-pyramid-bsd - fi -- exit 0 ;; -+ exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 -- exit 0 ;; -- DRS?6000:UNIX_SV:4.2*:7*) -+ exit ;; -+ DRS?6000:unix:4.0:6*) -+ echo sparc-icl-nx6 -+ exit ;; -+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in -- sparc) echo sparc-icl-nx7 && exit 0 ;; -+ sparc) echo sparc-icl-nx7; exit ;; - esac ;; -+ s390x:SunOS:*:*) -+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -- i86pc:SunOS:5.*:*) -- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) -+ eval $set_cc_for_build -+ SUN_ARCH="i386" -+ # If there is a compiler, see if it is configured for 64-bit objects. -+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. -+ # This test works for both compilers. -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ SUN_ARCH="x86_64" -+ fi -+ fi -+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) -@@ -347,10 +363,10 @@ - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` -- exit 0 ;; -+ exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 -@@ -362,10 +378,10 @@ - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac -- exit 0 ;; -+ exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor -@@ -376,37 +392,40 @@ - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ m68k:machten:*:*) -+ echo m68k-apple-machten${UNAME_RELEASE} -+ exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -- exit 0 ;; -+ exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -430,32 +449,33 @@ - exit (-1); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c \ -- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ -- && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && -+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && -+ SYSTEM_NAME=`$dummy $dummyarg` && -+ { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax -- exit 0 ;; -+ exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax -- exit 0 ;; -+ exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix -- exit 0 ;; -+ exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 -- exit 0 ;; -+ exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 -- exit 0 ;; -+ exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` -@@ -471,29 +491,29 @@ - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 -- exit 0 ;; -+ exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 -- exit 0 ;; -+ exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 -- exit 0 ;; -+ exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd -- exit 0 ;; -+ exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` -- exit 0 ;; -+ exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. -- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix -- exit 0 ;; -+ exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` -@@ -501,7 +521,7 @@ - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build -@@ -516,15 +536,19 @@ - exit(0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -- echo rs6000-ibm-aix3.2.5 -+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` -+ then -+ echo "$SYSTEM_NAME" -+ else -+ echo rs6000-ibm-aix3.2.5 -+ fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi -- exit 0 ;; -- *:AIX:*:[45]) -+ exit ;; -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 -@@ -537,28 +561,28 @@ - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} -- exit 0 ;; -+ exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix -- exit 0 ;; -+ exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 -- exit 0 ;; -+ exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to -- exit 0 ;; # report: romp-ibm BSD 4.3 -+ exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx -- exit 0 ;; -+ exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 -- exit 0 ;; -+ exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd -- exit 0 ;; -+ exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 -- exit 0 ;; -+ exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in -@@ -620,9 +644,19 @@ - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then -- # avoid double evaluation of $set_cc_for_build -- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build -- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null -+ eval $set_cc_for_build -+ -+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating -+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler -+ # generating 64-bit code. GNU and HP use different nomenclature: -+ # -+ # $ CC_FOR_BUILD=cc ./config.guess -+ # => hppa2.0w-hp-hpux11.23 -+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess -+ # => hppa64-hp-hpux11.23 -+ -+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | -+ grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else -@@ -630,11 +664,11 @@ - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} -- exit 0 ;; -+ exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -662,153 +696,192 @@ - exit (0); - } - EOF -- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 -+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 -- exit 0 ;; -+ exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd -- exit 0 ;; -+ exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd -- exit 0 ;; -+ exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix -- exit 0 ;; -+ exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf -- exit 0 ;; -+ exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf -- exit 0 ;; -+ exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi -- exit 0 ;; -+ exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites -- exit 0 ;; -+ exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ exit ;; - *:UNICOS/mp:*:*) -- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -- exit 0 ;; -+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' -+ exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit 0 ;; -+ exit ;; -+ 5000:UNIX_System_V:4.*:*) -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:FreeBSD:*:*) -- # Determine whether the default compiler uses glibc. -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #include -- #if __GLIBC__ >= 2 -- LIBC=gnu -- #else -- LIBC= -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} -- exit 0 ;; -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac -+ exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin -- exit 0 ;; -- i*:MINGW*:*) -+ exit ;; -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 -- exit 0 ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit 0 ;; --### End MozillaHack -+ exit ;; -+ i*:windows32*:*) -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 -+ exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 -- exit 0 ;; -- x86:Interix*:3*) -- echo i586-pc-interix3 -- exit 0 ;; -+ exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd | genuineintel) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks -- exit 0 ;; -+ exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix -- exit 0 ;; -+ exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin -- exit 0 ;; -+ exit ;; -+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -+ echo x86_64-unknown-cygwin -+ exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin -- exit 0 ;; -+ exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -- exit 0 ;; -+ exit ;; - *:GNU:*:*) -+ # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -- exit 0 ;; -+ exit ;; -+ *:GNU/*:*:*) -+ # other systems with GNU libc and userland -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix -- exit 0 ;; -+ exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ cris:Linux:*:*) -+ echo cris-axis-linux-gnu -+ exit ;; -+ crisv32:Linux:*:*) -+ echo crisv32-axis-linux-gnu -+ exit ;; -+ frv:Linux:*:*) -+ echo frv-unknown-linux-gnu -+ exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ m32r*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -@@ -825,8 +898,12 @@ - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build -@@ -844,15 +921,22 @@ - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; -+ or32:Linux:*:*) -+ echo or32-unknown-linux-gnu -+ exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; -@@ -866,7 +950,10 @@ - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -- exit 0 ;; -+ exit ;; -+ padre:Linux:*:*) -+ echo sparc-unknown-linux-gnu -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -@@ -874,22 +961,31 @@ - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac -- exit 0 ;; -+ exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux -- exit 0 ;; -+ exit ;; -+ sh64*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu -- exit 0 ;; -+ exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent -@@ -907,15 +1003,12 @@ - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" -- exit 0 ;; -- coff-i386) -- echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit 0 ;; -+ exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" -- exit 0 ;; -+ exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build -@@ -932,23 +1025,33 @@ - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -+ #ifdef __dietlibc__ -+ LIBC=dietlibc -+ #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 -- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" -+ test x"${LIBC}" != x && { -+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ exit -+ } -+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 -- exit 0 ;; -+ exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... -@@ -956,24 +1059,27 @@ - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx -- exit 0 ;; -+ exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop -- exit 0 ;; -+ exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos -- exit 0 ;; -+ exit ;; -+ i*86:syllable:*:*) -+ echo ${UNAME_MACHINE}-pc-syllable -+ exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp -- exit 0 ;; -+ exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then -@@ -981,15 +1087,16 @@ - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi -- exit 0 ;; -- i*86:*:5:[78]*) -+ exit ;; -+ i*86:*:5:[678]*) -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} -- exit 0 ;; -+ exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi -- exit 0 ;; -+ exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv -- exit 0 ;; -+ exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv -- exit 0 ;; -+ exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix -- exit 0 ;; -- M68*:*:R3V[567]*:*) -- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; -- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) -+ exit ;; -+ M68*:*:R3V[5678]*:*) -+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; -+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && echo i486-ncr-sysv4 && exit 0 ;; -+ && { echo i486-ncr-sysv4; exit; } ;; -+ NCR*:*:4.2:* | MPRAS*:*:4.2:*) -+ OS_REL='.3' -+ test -r /etc/.relid \ -+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 -- exit 0 ;; -+ exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 -- exit 0 ;; -+ exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` -@@ -1081,78 +1201,84 @@ - else - echo ns32k-sni-sysv - fi -- exit 0 ;; -+ exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 -- exit 0 ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit 0 ;; --#### End MozillaHack -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 -- exit 0 ;; -+ exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -- exit 0 ;; -+ exit ;; -+ i*86:VOS:*:*) -+ # From Paul.Green@stratus.com. -+ echo ${UNAME_MACHINE}-stratus-vos -+ exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos -- exit 0 ;; -+ exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 -- exit 0 ;; -+ exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit 0 ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos -- exit 0 ;; -+ exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos -- exit 0 ;; -+ exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos -- exit 0 ;; -+ exit ;; -+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Darwin:*:*) -- case `uname -p` in -- *86) UNAME_PROCESSOR=i686 ;; -- powerpc) UNAME_PROCESSOR=powerpc ;; -+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then -@@ -1160,22 +1286,25 @@ - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:QNX:*:4*) - echo i386-pc-qnx -- exit 0 ;; -- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) -+ exit ;; -+ NSE-?:NONSTOP_KERNEL:*:*) -+ echo nse-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux -- exit 0 ;; -+ exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv -- exit 0 ;; -+ exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} -- exit 0 ;; -+ exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 -@@ -1186,25 +1315,50 @@ - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 -- exit 0 ;; -+ exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 -- exit 0 ;; -+ exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex -- exit 0 ;; -+ exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 -- exit 0 ;; -+ exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 -- exit 0 ;; -+ exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 -- exit 0 ;; -+ exit ;; - *:ITS:*:*) - echo pdp10-unknown-its -- exit 0 ;; -+ exit ;; -+ SEI:*:*:SEIUX) -+ echo mips-sei-seiux${UNAME_RELEASE} -+ exit ;; -+ *:DragonFly:*:*) -+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ exit ;; -+ *:*VMS:*:*) -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ case "${UNAME_MACHINE}" in -+ A*) echo alpha-dec-vms ; exit ;; -+ I*) echo ia64-dec-vms ; exit ;; -+ V*) echo vax-dec-vms ; exit ;; -+ esac ;; -+ *:XENIX:*:SysV) -+ echo i386-pc-xenix -+ exit ;; -+ i*86:skyos:*:*) -+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' -+ exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; -+ i*86:AROS:*:*) -+ echo ${UNAME_MACHINE}-pc-aros -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 -@@ -1236,7 +1390,7 @@ - #endif - - #if defined (__arm) && defined (__acorn) && defined (__unix) -- printf ("arm-acorn-riscix"); exit (0); -+ printf ("arm-acorn-riscix\n"); exit (0); - #endif - - #if defined (hp300) && !defined (hpux) -@@ -1325,11 +1479,12 @@ - } - EOF - --$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 -+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && -+ { echo "$SYSTEM_NAME"; exit; } - - # Apollos put the system type in the environment. - --test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } -+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - - # Convex versions that predate uname can use getsysinfo(1) - -@@ -1338,22 +1493,22 @@ - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit 0 ;; -+ exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit 0 ;; -+ exit ;; - c34*) - echo c34-convex-bsd -- exit 0 ;; -+ exit ;; - c38*) - echo c38-convex-bsd -- exit 0 ;; -+ exit ;; - c4*) - echo c4-convex-bsd -- exit 0 ;; -+ exit ;; - esac - fi - -@@ -1364,7 +1519,9 @@ - the operating system you are using. It is advised that you - download the most up to date version of the config scripts from - -- ftp://ftp.gnu.org/pub/gnu/config/ -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -+and -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - - If the version you run ($0) is already up to date, please - send the following data and any information you think might be -Index: directory/c-sdk/config/autoconf/config.sub -=================================================================== ---- directory/c-sdk/config/autoconf/config.sub (revision 15) -+++ directory/c-sdk/config/autoconf/config.sub (working copy) -@@ -1,9 +1,10 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2003-02-22' -+timestamp='2009-04-17' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software -@@ -21,14 +22,15 @@ - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software --# Foundation, Inc., 59 Temple Place - Suite 330, --# Boston, MA 02111-1307, USA. -- -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+# 02110-1301, USA. -+# - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+ - # Please send patches to . Submit a context - # diff and a properly formatted ChangeLog entry. - # -@@ -70,8 +72,8 @@ - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -83,11 +85,11 @@ - while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) -- echo "$timestamp" ; exit 0 ;; -+ echo "$timestamp" ; exit ;; - --version | -v ) -- echo "$version" ; exit 0 ;; -+ echo "$version" ; exit ;; - --help | --h* | -h ) -- echo "$usage"; exit 0 ;; -+ echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. -@@ -99,7 +101,7 @@ - *local*) - # First pass through any local machine types. - echo $1 -- exit 0;; -+ exit ;; - - * ) - break ;; -@@ -118,7 +120,10 @@ - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ kopensolaris*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; -@@ -144,7 +149,7 @@ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis) -+ -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; -@@ -169,6 +174,10 @@ - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -@@ -185,6 +194,10 @@ - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -@@ -224,51 +237,61 @@ - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -- | clipper \ -+ | am33_2.0 \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | bfin \ -+ | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ -- | ip2k \ -- | m32r | m68000 | m68k | m88k | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | ip2k | iq2000 \ -+ | lm32 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep | metag \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -+ | mips64octeon | mips64octeonel \ -+ | mips64orion | mips64orionel \ -+ | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ -- | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -+ | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ -+ | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -+ | moxie \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ -- | openrisc | or32 \ -+ | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ -- | strongarm \ -- | tahoe | thumb | tic80 | tron \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ -+ | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xstormy16 | xtensa \ -- | z8k) -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ -+ | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) -@@ -278,6 +301,9 @@ - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and -@@ -291,64 +317,74 @@ - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -- | bs2000-* \ -+ | avr-* | avr32-* \ -+ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | cydra-* \ -+ | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ -- | ip2k-* \ -- | m32r-* \ -+ | ip2k-* | iq2000-* \ -+ | lm32-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ -+ | mips64octeon-* | mips64octeonel-* \ -+ | mips64orion-* | mips64orionel-* \ -+ | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ -- | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -+ | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ -+ | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ -+ | mmix-* \ -+ | mt-* \ - | msp430-* \ -- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ -+ | nios-* | nios2-* \ -+ | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ -- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ -+ | sparclite-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ -- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ -- | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ -- | z8k-*) -+ | z8k-* | z80-*) - ;; -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown -+ ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) -@@ -365,6 +401,9 @@ - basic_machine=a29k-amd - os=-udi - ;; -+ abacus) -+ basic_machine=abacus-unknown -+ ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout -@@ -379,6 +418,12 @@ - basic_machine=a29k-none - os=-bsd - ;; -+ amd64) -+ basic_machine=x86_64-pc -+ ;; -+ amd64-*) -+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - amdahl) - basic_machine=580-amdahl - os=-sysv -@@ -402,6 +447,10 @@ - basic_machine=m68k-apollo - os=-bsd - ;; -+ aros) -+ basic_machine=i386-pc -+ os=-aros -+ ;; - aux) - basic_machine=m68k-apple - os=-aux -@@ -410,10 +459,22 @@ - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; -+ cegcc) -+ basic_machine=arm-unknown -+ os=-cegcc -+ ;; - convex-c1) - basic_machine=c1-convex - os=-bsd -@@ -438,12 +499,27 @@ - basic_machine=j90-cray - os=-unicos - ;; -+ craynv) -+ basic_machine=craynv-cray -+ os=-unicosmp -+ ;; -+ cr16) -+ basic_machine=cr16-unknown -+ os=-elf -+ ;; - crds | unos) - basic_machine=m68k-crds - ;; -+ crisv32 | crisv32-* | etraxfs*) -+ basic_machine=crisv32-axis -+ ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; -+ crx) -+ basic_machine=crx-unknown -+ os=-elf -+ ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; -@@ -466,6 +542,14 @@ - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ dicos) -+ basic_machine=i686-pc -+ os=-dicos -+ ;; -+ djgpp) -+ basic_machine=i586-pc -+ os=-msdosdjgpp -+ ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx -@@ -616,6 +700,14 @@ - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; -@@ -631,12 +723,10 @@ - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; -@@ -650,10 +740,6 @@ - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; -- mmix*) -- basic_machine=mmix-knuth -- os=-mmixware -- ;; - monitor) - basic_machine=m68k-rom68k - os=-coff -@@ -666,6 +752,9 @@ - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs -@@ -734,10 +823,6 @@ - np1) - basic_machine=np1-gould - ;; -- nv1) -- basic_machine=nv1-cray -- os=-unicosmp -- ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; -@@ -745,10 +830,13 @@ - basic_machine=hppa1.1-oki - os=-proelf - ;; -- or32 | or32-*) -+ openrisc | openrisc-*) - basic_machine=or32-unknown -- os=-coff - ;; -+ os400) -+ basic_machine=powerpc-ibm -+ os=-os400 -+ ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose -@@ -765,6 +853,14 @@ - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; -@@ -774,24 +870,36 @@ - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; -- pentiumii | pentium2) -+ pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; -+ pentium4) -+ basic_machine=i786-pc -+ ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -- pentiumii-* | pentium2-*) -+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; -+ pentium4-*) -+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pn) - basic_machine=pn-gould - ;; -@@ -824,6 +932,10 @@ - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff -@@ -850,6 +962,14 @@ - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; -+ sei) -+ basic_machine=mips-sei -+ os=-seiux -+ ;; - sequent) - basic_machine=i386-sequent - ;; -@@ -857,6 +977,12 @@ - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; -+ sh64) -+ basic_machine=sh64-unknown -+ ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks -@@ -931,10 +1057,6 @@ - basic_machine=t90-cray - os=-unicos - ;; -- tic4x | c4x*) -- basic_machine=tic4x-unknown -- os=-coff -- ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff -@@ -947,6 +1069,10 @@ - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; -@@ -960,6 +1086,10 @@ - tower | tower-32) - basic_machine=m68k-ncr - ;; -+ tpf) -+ basic_machine=s390x-ibm -+ os=-tpf -+ ;; - udi29k) - basic_machine=a29k-amd - os=-udi -@@ -1003,6 +1133,10 @@ - basic_machine=hppa1.1-winbond - os=-proelf - ;; -+ xbox) -+ basic_machine=i686-pc -+ os=-mingw32 -+ ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; -@@ -1014,6 +1148,10 @@ - basic_machine=z8k-unknown - os=-sim - ;; -+ z80-*-coff) -+ basic_machine=z80-unknown -+ os=-sim -+ ;; - none) - basic_machine=none-none - os=-none -@@ -1033,6 +1171,9 @@ - romp) - basic_machine=romp-ibm - ;; -+ mmix) -+ basic_machine=mmix-knuth -+ ;; - rs6000) - basic_machine=rs6000-ibm - ;; -@@ -1049,13 +1190,10 @@ - we32k) - basic_machine=we32k-att - ;; -- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sh64) -- basic_machine=sh64-unknown -- ;; -- sparc | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) -@@ -1121,30 +1259,31 @@ - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ -+ | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -- | -aos* \ -+ | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ -- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ -+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ -+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ -- | -chorusos* | -chorusrdb* \ -+ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ -- | -powermax* | -dnix*) -+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) -@@ -1162,12 +1301,15 @@ - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ -+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; -+ -linux-dietlibc) -+ os=-linux-dietlibc -+ ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; -@@ -1180,6 +1322,9 @@ - -opened*) - os=-openedition - ;; -+ -os400*) -+ os=-os400 -+ ;; - -wince*) - os=-wince - ;; -@@ -1201,6 +1346,9 @@ - -atheos*) - os=-atheos - ;; -+ -syllable*) -+ os=-syllable -+ ;; - -386bsd) - os=-bsd - ;; -@@ -1223,6 +1371,9 @@ - -sinix*) - os=-sysv4 - ;; -+ -tpf*) -+ os=-tpf -+ ;; - -triton*) - os=-sysv3 - ;; -@@ -1259,6 +1410,12 @@ - -kaos*) - os=-kaos - ;; -+ -zvmoe) -+ os=-zvmoe -+ ;; -+ -dicos*) -+ os=-dicos -+ ;; - -none) - ;; - *) -@@ -1281,6 +1438,12 @@ - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; -@@ -1290,6 +1453,9 @@ - arm*-semi) - os=-aout - ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 -@@ -1315,6 +1481,9 @@ - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; -@@ -1333,9 +1502,15 @@ - *-be) - os=-beos - ;; -+ *-haiku) -+ os=-haiku -+ ;; - *-ibm) - os=-aix - ;; -+ *-knuth) -+ os=-mmixware -+ ;; - *-wec) - os=-proelf - ;; -@@ -1468,9 +1643,15 @@ - -mvs* | -opened*) - vendor=ibm - ;; -+ -os400*) -+ vendor=ibm -+ ;; - -ptx*) - vendor=sequent - ;; -+ -tpf*) -+ vendor=ibm -+ ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; -@@ -1495,7 +1676,7 @@ - esac - - echo $basic_machine$os --exit 0 -+exit - - # Local variables: - # eval: (add-hook 'write-file-hooks 'time-stamp) -Index: nsprpub/build/autoconf/config.guess -=================================================================== ---- nsprpub/build/autoconf/config.guess (revision 15) -+++ nsprpub/build/autoconf/config.guess (working copy) -@@ -1,9 +1,10 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2005-10-13' -+timestamp='2009-04-27' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -55,8 +56,8 @@ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -106,7 +107,7 @@ - trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; - trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; - : ${TMPDIR=/tmp} ; -- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -@@ -160,6 +161,7 @@ - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; -+ sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched -@@ -206,8 +208,11 @@ - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; -+ *:SolidBSD:*:*) -+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} -+ exit ;; - macppc:MirBSD:*:*) -- echo powerppc-unknown-mirbsd${UNAME_RELEASE} -+ echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} -@@ -319,14 +324,30 @@ - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; -+ s390x:SunOS:*:*) -+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; -- i86pc:SunOS:5.*:*) -- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` -+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) -+ eval $set_cc_for_build -+ SUN_ARCH="i386" -+ # If there is a compiler, see if it is configured for 64-bit objects. -+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. -+ # This test works for both compilers. -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ SUN_ARCH="x86_64" -+ fi -+ fi -+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize -@@ -527,7 +548,7 @@ - echo rs6000-ibm-aix3.2 - fi - exit ;; -- *:AIX:*:[45]) -+ *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 -@@ -764,20 +785,21 @@ - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ case ${UNAME_MACHINE} in -+ pc98) -+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ amd64) -+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ *) -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; -- i*:MINGW*:*) -+ *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; --#### MozillaHack --# Netscape's hacked uname -- xx:WINNT:* | xx:WIN95:*) -- echo i586-pc-msvc -- exit ;; --### End MozillaHack - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 -@@ -785,9 +807,18 @@ - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; -- x86:Interix*:[34]*) -- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' -- exit ;; -+ *:Interix*:[3456]*) -+ case ${UNAME_MACHINE} in -+ x86) -+ echo i586-pc-interix${UNAME_RELEASE} -+ exit ;; -+ EM64T | authenticamd | genuineintel) -+ echo x86_64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ IA64) -+ echo ia64-unknown-interix${UNAME_RELEASE} -+ exit ;; -+ esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; -@@ -821,6 +852,16 @@ - echo ${UNAME_MACHINE}-pc-minix - exit ;; - arm*:Linux:*:*) -+ eval $set_cc_for_build -+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_EABI__ -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ fi -+ exit ;; -+ avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) -@@ -857,7 +898,11 @@ - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) -@@ -876,7 +921,11 @@ - #endif - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^CPU/{ -+ s: ::g -+ p -+ }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) -@@ -902,6 +951,9 @@ - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; -+ padre:Linux:*:*) -+ echo sparc-unknown-linux-gnu -+ exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -@@ -925,9 +977,15 @@ - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -+ vax:Linux:*:*) -+ echo ${UNAME_MACHINE}-dec-linux-gnu -+ exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; -+ xtensa*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent -@@ -946,9 +1004,6 @@ - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; -- coff-i386) -- echo "${UNAME_MACHINE}-pc-linux-gnucoff" -- exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. -@@ -970,7 +1025,7 @@ - LIBC=gnulibc1 - # endif - #else -- #ifdef __INTEL_COMPILER -+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout -@@ -980,7 +1035,11 @@ - LIBC=dietlibc - #endif - EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` -+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' -+ /^LIBC/{ -+ s: ::g -+ p -+ }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit -@@ -1059,8 +1118,11 @@ - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about -- # the processor, so we play safe by assuming i386. -- echo i386-pc-msdosdjgpp -+ # the processor, so we play safe by assuming i586. -+ # Note: whatever this is, it MUST be the same as what config.sub -+ # prints for the "djgpp" host, or else GDB configury will decide that -+ # this is a cross-build. -+ echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 -@@ -1098,6 +1160,16 @@ - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; -+ NCR*:*:4.2:* | MPRAS*:*:4.2:*) -+ OS_REL='.3' -+ test -r /etc/.relid \ -+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } -+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ -+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; -@@ -1134,16 +1206,6 @@ - # says - echo i586-unisys-sysv4 - exit ;; --#### MozillaHack -- *:*OpenVMS*:*:*) -- case "${UNAME_SYSTEM}" in -- POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;; -- POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;; -- OpenVMS) echo alpha-dec-openvms ;; -- *) echo unknown-dec-openvms ;; -- esac -- exit ;; --#### End MozillaHack - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm -@@ -1183,6 +1245,9 @@ - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; -+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. -+ echo i586-pc-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; -@@ -1192,6 +1257,15 @@ - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; -+ SX-7:SUPER-UX:*:*) -+ echo sx7-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8:SUPER-UX:*:*) -+ echo sx8-nec-superux${UNAME_RELEASE} -+ exit ;; -+ SX-8R:SUPER-UX:*:*) -+ echo sx8r-nec-superux${UNAME_RELEASE} -+ exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; -@@ -1279,6 +1353,12 @@ - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; -+ i*86:rdos:*:*) -+ echo ${UNAME_MACHINE}-pc-rdos -+ exit ;; -+ i*86:AROS:*:*) -+ echo ${UNAME_MACHINE}-pc-aros -+ exit ;; - esac - - #echo '(No uname command or uname output not recognized.)' 1>&2 -@@ -1439,9 +1519,9 @@ - the operating system you are using. It is advised that you - download the most up to date version of the config scripts from - -- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD - and -- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub -+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - - If the version you run ($0) is already up to date, please - send the following data and any information you think might be -Index: nsprpub/build/autoconf/config.sub -=================================================================== ---- nsprpub/build/autoconf/config.sub (revision 15) -+++ nsprpub/build/autoconf/config.sub (working copy) -@@ -1,9 +1,10 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+# Free Software Foundation, Inc. - --timestamp='2005-10-13' -+timestamp='2009-04-17' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software -@@ -71,8 +72,8 @@ - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 --Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -119,8 +120,10 @@ - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ -- kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) -+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ kopensolaris*-gnu* | \ -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; -@@ -171,6 +174,10 @@ - -hiux*) - os=-hiuxwe2 - ;; -+ -sco6) -+ os=-sco5v6 -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -@@ -187,6 +194,10 @@ - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -sco5v6*) -+ # Don't forget version if it is 3.2v4 or newer. -+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -+ ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` -@@ -226,28 +237,29 @@ - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. --#### MozillaHack --# mips*el --#### End MozillaHack - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ -+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fr30 | frv \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ -- | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ -- | mips | mipsbe | mipseb | mips*el | mipsle \ -+ | lm32 \ -+ | m32c | m32r | m32rle | m68000 | m68k | m88k \ -+ | maxq | mb | microblaze | mcore | mep | metag \ -+ | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -+ | mips64octeon | mips64octeonel \ -+ | mips64orion | mips64orionel \ -+ | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ -- | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ -@@ -260,28 +272,28 @@ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ -- | ms1 \ -+ | moxie \ -+ | mt \ - | msp430 \ -+ | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ -- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ -+ | score \ -+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ -- | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ -- | sparcv8 | sparcv9 | sparcv9b \ -- | strongarm \ -+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ -+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -+ | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ -- | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ -- | z8k) -+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ -+ | z8k | z80) - basic_machine=$basic_machine-unknown - ;; -- m32c) -- basic_machine=$basic_machine-unknown -- ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown -@@ -289,6 +301,9 @@ - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; -+ ms1) -+ basic_machine=mt-unknown -+ ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and -@@ -302,34 +317,34 @@ - exit 1 - ;; - # Recognize the basic CPU types with company name. --#### MozillaHack --# mips*el --#### End MozillaHack - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ -- | avr-* \ -+ | avr-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ -- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ -+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ -- | m32r-* | m32rle-* \ -+ | lm32-* \ -+ | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | maxq-* | mcore-* \ -- | mips-* | mipsbe-* | mipseb-* | mips*el-* | mipsle-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ -+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ -+ | mips64octeon-* | mips64octeonel-* \ -+ | mips64orion-* | mips64orionel-* \ -+ | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ -- | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ -@@ -342,30 +357,33 @@ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ -- | ms1-* \ -+ | mt-* \ - | msp430-* \ -+ | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ -- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ -+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ -- | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ -+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ -- | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ -- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ -- | xstormy16-* | xtensa-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | xstormy16-* | xtensa*-* \ - | ymp-* \ -- | z8k-*) -+ | z8k-* | z80-*) - ;; -- m32c-*) -+ # Recognize the basic CPU types without company name, with glob match. -+ xtensa*) -+ basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. -@@ -429,6 +447,10 @@ - basic_machine=m68k-apollo - os=-bsd - ;; -+ aros) -+ basic_machine=i386-pc -+ os=-aros -+ ;; - aux) - basic_machine=m68k-apple - os=-aux -@@ -437,10 +459,22 @@ - basic_machine=ns32k-sequent - os=-dynix - ;; -+ blackfin) -+ basic_machine=bfin-unknown -+ os=-linux -+ ;; -+ blackfin-*) -+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; -+ cegcc) -+ basic_machine=arm-unknown -+ os=-cegcc -+ ;; - convex-c1) - basic_machine=c1-convex - os=-bsd -@@ -469,8 +503,8 @@ - basic_machine=craynv-cray - os=-unicosmp - ;; -- cr16c) -- basic_machine=cr16c-unknown -+ cr16) -+ basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) -@@ -508,6 +542,10 @@ - basic_machine=m88k-motorola - os=-sysv3 - ;; -+ dicos) -+ basic_machine=i686-pc -+ os=-dicos -+ ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp -@@ -662,6 +700,14 @@ - basic_machine=m68k-isi - os=-sysv - ;; -+ m68knommu) -+ basic_machine=m68k-unknown -+ os=-linux -+ ;; -+ m68knommu-*) -+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - m88k-omron*) - basic_machine=m88k-omron - ;; -@@ -677,12 +723,10 @@ - basic_machine=i386-pc - os=-mingw32 - ;; --#### MozillaHack -- i386-msvc | msvc) -- basic_machine=i386-pc -- os=-msvc -+ mingw32ce) -+ basic_machine=arm-unknown -+ os=-mingw32ce - ;; --#### End MozillaHack - miniframe) - basic_machine=m68000-convergent - ;; -@@ -708,6 +752,9 @@ - basic_machine=i386-pc - os=-msdos - ;; -+ ms1-*) -+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs -@@ -806,6 +853,14 @@ - basic_machine=i860-intel - os=-osf - ;; -+ parisc) -+ basic_machine=hppa-unknown -+ os=-linux -+ ;; -+ parisc-*) -+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` -+ os=-linux -+ ;; - pbd) - basic_machine=sparc-tti - ;; -@@ -815,6 +870,12 @@ - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; -+ pc98) -+ basic_machine=i386-pc -+ ;; -+ pc98-*) -+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; -@@ -871,6 +932,10 @@ - basic_machine=i586-unknown - os=-pw32 - ;; -+ rdos) -+ basic_machine=i386-pc -+ os=-rdos -+ ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff -@@ -897,6 +962,10 @@ - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; -+ sde) -+ basic_machine=mipsisa32-sde -+ os=-elf -+ ;; - sei) - basic_machine=mips-sei - os=-seiux -@@ -908,6 +977,9 @@ - basic_machine=sh-hitachi - os=-hms - ;; -+ sh5el) -+ basic_machine=sh5le-unknown -+ ;; - sh64) - basic_machine=sh64-unknown - ;; -@@ -997,6 +1069,10 @@ - basic_machine=tic6x-unknown - os=-coff - ;; -+ tile*) -+ basic_machine=tile-unknown -+ os=-linux-gnu -+ ;; - tx39) - basic_machine=mipstx39-unknown - ;; -@@ -1072,6 +1148,10 @@ - basic_machine=z8k-unknown - os=-sim - ;; -+ z80-*-coff) -+ basic_machine=z80-unknown -+ os=-sim -+ ;; - none) - basic_machine=none-none - os=-none -@@ -1110,10 +1190,10 @@ - we32k) - basic_machine=we32k-att - ;; -- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) -+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; -- sparc | sparcv8 | sparcv9 | sparcv9b) -+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) -@@ -1179,32 +1259,31 @@ - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. --#### MozillaHack --# msvc --#### End MozillaHack - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ -+ | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -- | -aos* \ -+ | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ -- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ -+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -+ | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ -- | -chorusos* | -chorusrdb* \ -+ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -- | -msvc* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -- | -skyos* | -haiku*) -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) -@@ -1334,6 +1413,9 @@ - -zvmoe) - os=-zvmoe - ;; -+ -dicos*) -+ os=-dicos -+ ;; - -none) - ;; - *) -@@ -1356,6 +1438,12 @@ - # system, and we'll never get to this point. - - case $basic_machine in -+ score-*) -+ os=-elf -+ ;; -+ spu-*) -+ os=-elf -+ ;; - *-acorn) - os=-riscix1.2 - ;; -@@ -1365,9 +1453,9 @@ - arm*-semi) - os=-aout - ;; -- c4x-* | tic4x-*) -- os=-coff -- ;; -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 -@@ -1393,6 +1481,9 @@ - m68*-cisco) - os=-aout - ;; -+ mep-*) -+ os=-elf -+ ;; - mips*-cisco) - os=-elf - ;; diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r02-configure-in-withGCC4andCrossCompile.patch b/www-client/mozilla_firefox/patches/2009-09-27/r02-configure-in-withGCC4andCrossCompile.patch deleted file mode 100644 index 9830771ab..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r02-configure-in-withGCC4andCrossCompile.patch +++ /dev/null @@ -1,362 +0,0 @@ -Index: configure.in -=================================================================== ---- configure.in (revision 7) -+++ configure.in (working copy) -@@ -880,11 +880,17 @@ - OS_RELEASE= - OS_TEST="${target_cpu}" - case "${target_os}" in -- linux*) OS_ARCH=Linux ;; -- solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; -- mingw*) OS_ARCH=WINNT ;; -- wince*) OS_ARCH=WINCE ;; -- darwin*) OS_ARCH=Darwin OS_TARGET=Darwin ;; -+ linux*) OS_ARCH=Linux ;; -+ solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; -+ mingw*) OS_ARCH=WINNT ;; -+ wince*) OS_ARCH=WINCE ;; -+ darwin*) OS_ARCH=Darwin OS_TARGET=Darwin ;; -+ beos* | haiku*) OS_ARCH=BeOS OS_TARGET=BeOS ;; -+dnl ------------------------------------------------------- -+dnl Cross-compiling-haiku - This should probably be -+dnl beos*) OS_ARCH=BeOS OS_TARGET=BeOS ;; -+dnl haiku*) OS_ARCH=Haiku OS_TARGET=Haiku ;; -+dnl ------------------------------------------------------- - esac - else - OS_TARGET=`uname -s` -@@ -1002,6 +1008,14 @@ - UnixWare) - HOST_OS_ARCH=UNIXWARE - ;; -+beos* | haiku*) -+ HOST_OS_ARCH=BeOS -+ ;; -+dnl ------------------------------------------------------- -+dnl This should probably be -+dnl beos*) HOST_OS_ARCH=BeOS ;; -+dnl haiku*) HOST_OS_ARCH=Haiku ;; -+dnl ------------------------------------------------------- - esac - - case "$OS_ARCH" in -@@ -1338,7 +1352,7 @@ - dnl System overrides of the defaults for host - dnl ======================================================== - case "$host" in --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE -DNO_X11" - HOST_NSPR_MDCPUCFG='\"md/_beos.cfg\"' - HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" -@@ -1482,17 +1496,35 @@ - AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES) - ;; - --*-beos*) -+*-beos*|*-haiku*) - no_x=yes -- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' - _PLATFORM_DEFAULT_TOOLKIT="beos" -+ TARGET_NSPR_MDCPUCFG='\"md/_beos.cfg\"' -+ TARGET_MD_ARCH=beos -+ -+ DSO_PIC_CFLAGS=-fPIC - DSO_LDOPTS='-nostart' -+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' -+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' - TK_LIBS='-lbe -lroot' - LIBS="$LIBS -lbe" -+ -+ _HAIKU_BUILD=0 -+ - if test "$COMPILE_ENVIRONMENT"; then -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ fi -+ if test "$_HAIKU_BUILD" = 1; then -+ LIBS="$LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(__BEOS__) -+ AC_DEFINE(BONE_VERSION) -+ else - AC_CHECK_LIB(bind,main,LIBS="$LIBS -lbind") - AC_CHECK_LIB(zeta,main,LIBS="$LIBS -lzeta") -+ AC_DEFINE(BEOS_ADDON_WORKAROUND) - fi -+ - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-multichar" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-multichar" - _MOZ_USE_RTTI=1 -@@ -2692,8 +2724,10 @@ - ]) - if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \ - "$ac_cv_have_visibility_class_bug" = "no"; then -- VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' -- WRAP_SYSTEM_INCLUDES=1 -+ # HACK for Haiku GCC4 -- enforce '-fvisibility=hidden' -+ #VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' -+ #WRAP_SYSTEM_INCLUDES=1 -+ VISIBILITY_FLAGS='-fvisibility=hidden' - else - VISIBILITY_FLAGS='-fvisibility=hidden' - fi # have visibility pragma bug -@@ -2761,6 +2795,8 @@ - case $target in - *-darwin*) - ;; -+*-beos*|*-haiku*) -+ ;; - *) - AC_CHECK_LIB(dl, dlopen, - AC_CHECK_HEADER(dlfcn.h, -@@ -3125,7 +3161,7 @@ - fi - - case $target_os in -- os2*|msvc*|mks*|cygwin*|mingw*|darwin*|wince*) -+ os2*|msvc*|mks*|cygwin*|mingw*|darwin*|wince*|beos*|haiku*) - ;; - *) - -@@ -5242,7 +5278,7 @@ - dnl Image decoders - dnl ======================================================== - case "$target_os" in --cygwin*|mingw*|msvc*|mks*|os2*|wince*|beos*) -+cygwin*|mingw*|msvc*|mks*|os2*|wince*|beos*|haiku*) - MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" - ;; - darwin*) -@@ -5689,7 +5725,7 @@ - - MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG" - case "${target_os}" in -- beos*) -+ beos*|haiku*) - MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*|wince*) -@@ -6725,7 +6761,7 @@ - os2*) - MOZ_LIBART_LIBS='-lmoz_art -lm' - ;; -- beos*) -+ beos*|haiku*) - MOZ_LIBART_LIBS='-lmoz_art_lgpl -lroot -lbe' - ;; - *) -@@ -7377,6 +7413,9 @@ - elif test "$OS_ARCH" = "BeOS"; then - AC_DEFINE(XP_BEOS) - MOZ_MOVEMAIL=1 -+elif test "$OS_ARCH" = "Haiku"; then -+ AC_DEFINE(XP_BEOS) -+ MOZ_MOVEMAIL=1 - elif test "$OS_ARCH" = "Darwin"; then - AC_DEFINE(XP_UNIX) - AC_DEFINE(UNIX_ASYNC_DNS) -Index: directory/c-sdk/configure.in -=================================================================== ---- directory/c-sdk/configure.in (revision 7) -+++ directory/c-sdk/configure.in (working copy) -@@ -360,7 +360,7 @@ - AC_DEFINE(DEBUG) - DEFINES="$DEFINES -UNDEBUG" - case "${target_os}" in -- beos*) -+ beos*|haiku*) - DEFINES="$DEFINES -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*) -@@ -563,10 +563,16 @@ - OS_RELEASE= - OS_TEST="${target_cpu}" - case "${target_os}" in -- linux*) OS_ARCH=Linux ;; -- solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; -- mingw*) OS_ARCH=WINNT ;; -- darwin*) OS_ARCH=Darwin ;; -+ linux*) OS_ARCH=Linux ;; -+ solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; -+ mingw*) OS_ARCH=WINNT ;; -+ darwin*) OS_ARCH=Darwin ;; -+ beos* | haiku*) OS_ARCH=BeOS OS_TARGET=BeOS ;; -+dnl ------------------------------------------------------- -+dnl Cross-compiling-haiku - This should probably be -+dnl beos*) OS_ARCH=BeOS OS_TARGET=BeOS ;; -+dnl haiku*) OS_ARCH=Haiku OS_TARGET=Haiku ;; -+dnl ------------------------------------------------------- - esac - else - OS_ARCH=`uname -s | sed -e 's|/|_|g'` -@@ -733,7 +739,7 @@ - fi - WIN_TOP_SRC=`cygpath -a -w $srcdir | sed -e 's|\\\\|/|g'` - ;; --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" - ;; - *os2*) -@@ -812,24 +818,40 @@ - RESOLVE_LINK_SYMBOLS=1 - ;; - --*-beos*) -+*-beos*|*-haiku*) - AC_DEFINE(XP_BEOS) - AC_DEFINE(BeOS) - AC_DEFINE(BEOS) - AC_DEFINE(_POSIX_SOURCE) -+ DSO_CFLAGS=-fPIC - DSO_LDOPTS=-nostart -+ - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 -+ -+ _HAIKU_BUILD=0 -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ if test "$_HAIKU_BUILD" = 1; then -+ OS_LIBS="$OS_LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ fi -+ - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -- _DEBUG_FLAGS='-gdwarf-2 -O0' -- MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' -- AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ AC_DEFINE(i586) -+ CPU_ARCH=i586 -+ _OPTIMIZE_FLAGS=-O3 -+ _DEBUG_FLAGS='-gdwarf-2 -O0 -fno-inline' -+ MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@' - ;; - powerpc) -+ AC_DEFINE(ppc) -+ CPU_ARCH=ppc - CC=mwcc - CCC=mwcc - LD=mwld -@@ -2095,7 +2117,7 @@ - fi]) - - case "$target" in --*-beos*) -+*-beos*|*-haiku*) - AC_ARG_WITH(bthreads, - [ --with-bthreads Use system bthreads library as thread subsystem (BeOS only)], - [ if test "$withval" = "yes"; then -Index: nsprpub/configure.in -=================================================================== ---- nsprpub/configure.in (revision 7) -+++ nsprpub/configure.in (working copy) -@@ -381,7 +381,7 @@ - DEFINES="$DEFINES -UNDEBUG" - - case "${target_os}" in -- beos*) -+ beos*|haiku*) - DEFINES="$DEFINES -DDEBUG_${USER}" - ;; - msvc*|mks*|cygwin*|mingw*|os2*) -@@ -652,6 +652,12 @@ - solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; - mingw*) OS_ARCH=WINNT ;; - darwin*) OS_ARCH=Darwin ;; -+ beos*|haiku*) OS_ARCH=BeOS OS_TARGET=BeOS OS_RELEASE=R5 ;; -+dnl ------------------------------------------------------- -+dnl Cross-compiling-haiku - This should probably be -+dnl beos*) OS_ARCH=BeOS OS_TARGET=BeOS OS_RELEASE=R5 ;; -+dnl haiku*) OS_ARCH=Haiku OS_TARGET=Haiku OS_RELEASE=R1 ;; -+dnl ------------------------------------------------------- - esac - else - OS_ARCH=`uname -s | sed -e 's|/|_|g'` -@@ -823,7 +829,7 @@ - CYGWIN_WRAPPER='sh $(topsrcdir)/build/cygwin-wrapper' - fi - ;; --*-beos*) -+*-beos*|*-haiku*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" - ;; - *os2*) -@@ -898,24 +904,40 @@ - RESOLVE_LINK_SYMBOLS=1 - ;; - --*-beos*) -+*-beos*|*-haiku*) - AC_DEFINE(XP_BEOS) - AC_DEFINE(BeOS) - AC_DEFINE(BEOS) - AC_DEFINE(_POSIX_SOURCE) -- DSO_LDOPTS=-nostart -+ DSO_CFLAGS=-fPIC -+ DSO_LDOPTS='-nostart' -+ - MDCPUCFG_H=_beos.cfg - USE_BTHREADS=1 - PR_MD_ARCH_DIR=beos - RESOLVE_LINK_SYMBOLS=1 -+ -+ _HAIKU_BUILD=0 -+ AC_CHECK_LIB(network,main,_HAIKU_BUILD=1) -+ if test "$_HAIKU_BUILD" = 1; then -+ OS_LIBS="$OS_LIBS -lnetwork" -+ AC_DEFINE(XP_HAIKU) -+ AC_DEFINE(BONE_VERSION) -+ else -+ AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ fi -+ - case "${target_cpu}" in - i*86) -- _OPTIMIZE_FLAGS=-O2 -- _DEBUG_FLAGS='-gdwarf-2 -O0' -- MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' -- AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"]) -+ AC_DEFINE(i586) -+ CPU_ARCH=i586 -+ _OPTIMIZE_FLAGS=-O3 -+ _DEBUG_FLAGS='-gdwarf-2 -O0 -fno-inline' -+ MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@' - ;; - powerpc) -+ AC_DEFINE(ppc) -+ CPU_ARCH=ppc - CC=mwcc - CCC=mwcc - LD=mwld -@@ -2245,11 +2267,13 @@ - - dnl We don't want anything to link with libdl even if it's present on OS X, - dnl since it's not used and not part of the default installation. --dnl The same goes for BeOS. -+dnl The same goes for BeOS and Haiku. - - case $target in --*-darwin*|*-beos*) -+*-darwin*) - ;; -+*-beos*|*-haiku*) -+ ;; - *) - AC_CHECK_LIB(dl, dlopen, - AC_CHECK_HEADER(dlfcn.h, -@@ -2438,7 +2462,7 @@ - fi]) - - case "$target" in --*-beos*) -+*-beos*|*-haiku*) - AC_ARG_WITH(bthreads, - [ --with-bthreads Use system bthreads library as thread subsystem - (BeOS only)], diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r03a-makefile-in.patch b/www-client/mozilla_firefox/patches/2009-09-27/r03a-makefile-in.patch deleted file mode 100644 index 4c7d35333..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r03a-makefile-in.patch +++ /dev/null @@ -1,375 +0,0 @@ -Index: browser/app/Makefile.in -=================================================================== ---- browser/app/Makefile.in (revision 7) -+++ browser/app/Makefile.in (working copy) -@@ -151,7 +151,7 @@ - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame -Index: browser/components/migration/src/Makefile.in -=================================================================== ---- browser/components/migration/src/Makefile.in (revision 7) -+++ browser/components/migration/src/Makefile.in (working copy) -@@ -78,7 +78,7 @@ - nsPhoenixProfileMigrator.cpp \ - $(NULL) - --ifneq ($(OS_ARCH),BeOS) -+ifneq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsDogbertProfileMigrator.cpp - endif - -Index: calendar/libical/src/libical/Makefile.in -=================================================================== ---- calendar/libical/src/libical/Makefile.in (revision 7) -+++ calendar/libical/src/libical/Makefile.in (working copy) -@@ -89,7 +89,7 @@ - - DEFINES += -DHAVE_CONFIG_H - --ifneq (,$(filter BeOS Darwin OpenVMS NetBSD FreeBSD,$(OS_ARCH))) -+ifneq (,$(filter BeOS Haiku Darwin OpenVMS NetBSD FreeBSD,$(OS_ARCH))) - DEFINES += -D__USE_BSD=1 - endif - -Index: calendar/sunbird/app/Makefile.in -=================================================================== ---- calendar/sunbird/app/Makefile.in (revision 7) -+++ calendar/sunbird/app/Makefile.in (working copy) -@@ -194,7 +194,8 @@ - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif -Index: directory/c-sdk/ldap/libraries/libldap/Makefile.in -=================================================================== ---- directory/c-sdk/ldap/libraries/libldap/Makefile.in (revision 7) -+++ directory/c-sdk/ldap/libraries/libldap/Makefile.in (working copy) -@@ -237,7 +237,7 @@ - SHARED_LIBRARY_LIBS = $(dist_libdir)/lib$(LBER_LIBNAME).a - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) -lbe - endif - -@@ -302,7 +302,7 @@ - ifdef SO_FILES_TO_REMOVE - -$(RM) $(SO_FILES_TO_REMOVE) - endif --ifneq (,$(filter AIX Linux HP-UX Darwin BeOS QNX NetBSD OSF1 OpenBSD, $(OS_ARCH))) -+ifneq (,$(filter AIX Linux HP-UX Darwin BeOS Haiku QNX NetBSD OSF1 OpenBSD, $(OS_ARCH))) - $(LINK_LIB) ../liblber/$(OBJDIR_NAME)/*.a - else - ifeq ($(OS_ARCH),OS2) -Index: directory/c-sdk/ldap/libraries/libprldap/Makefile.in -=================================================================== ---- directory/c-sdk/ldap/libraries/libprldap/Makefile.in (revision 7) -+++ directory/c-sdk/ldap/libraries/libprldap/Makefile.in (working copy) -@@ -165,7 +165,7 @@ - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) - EXTRA_LIBS += -L$(dist_libdir) $(DYNAMICNSPR) - endif -Index: directory/c-sdk/ldap/libraries/libssldap/Makefile -=================================================================== ---- directory/c-sdk/ldap/libraries/libssldap/Makefile (revision 7) -+++ directory/c-sdk/ldap/libraries/libssldap/Makefile (working copy) -@@ -167,7 +167,7 @@ - EXTRA_LIBS += $(OS_LIBS) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME) - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) -Index: directory/c-sdk/ldap/libraries/libssldap/Makefile.in -=================================================================== ---- directory/c-sdk/ldap/libraries/libssldap/Makefile.in (revision 7) -+++ directory/c-sdk/ldap/libraries/libssldap/Makefile.in (working copy) -@@ -182,7 +182,7 @@ - EXTRA_LIBS += $(OS_LIBS) - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_LIBS = -L$(dist_libdir) -l$(LDAP_LIBNAME) -l$(PRLDAP_LIBNAME) - ifeq ($(NSS_DYNAMIC_SOFTOKN),1) - EXTRA_LIBS += -l$(SOFTOKN_LIBNAME) -Index: embedding/componentlib/Makefile.in -=================================================================== ---- embedding/componentlib/Makefile.in (revision 7) -+++ embedding/componentlib/Makefile.in (working copy) -@@ -152,7 +152,7 @@ - OS_LIBS += ole32.lib shell32.lib - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS += -ltracker - endif - -Index: intl/uconv/src/Makefile.in -=================================================================== ---- intl/uconv/src/Makefile.in (revision 7) -+++ intl/uconv/src/Makefile.in (working copy) -@@ -119,7 +119,7 @@ - CPPSRCS += nsMacCharset.cpp - EXPORT_RESOURCE += maccharset.properties - else --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsBeOSCharset.cpp - else - CPPSRCS += nsUNIXCharset.cpp -Index: ipc/ipcd/client/src/Makefile.in -=================================================================== ---- ipc/ipcd/client/src/Makefile.in (revision 7) -+++ ipc/ipcd/client/src/Makefile.in (working copy) -@@ -64,7 +64,7 @@ - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += ipcConnectionWin.cpp - else --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += ipcConnectionStub.cpp - else - CPPSRCS += ipcConnectionUnix.cpp -Index: ipc/ipcd/daemon/src/Makefile.in -=================================================================== ---- ipc/ipcd/daemon/src/Makefile.in (revision 7) -+++ ipc/ipcd/daemon/src/Makefile.in (working copy) -@@ -59,7 +59,7 @@ - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += ipcdWin.cpp - else --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += ipcdStub.cpp - else - CPPSRCS += ipcdUnix.cpp -Index: js/src/Makefile.in -=================================================================== ---- js/src/Makefile.in (revision 7) -+++ js/src/Makefile.in (working copy) -@@ -246,7 +246,7 @@ - LDFLAGS += $(pathsubst -l%,$(NSPR_STATIC_PATH)/%.a,$(NSPR_LIBS)) - - # BeOS and HP-UX do not require the extra linking of "-lm" --ifeq (,$(filter BeOS HP-UX WINNT WINCE OpenVMS,$(OS_ARCH))) -+ifeq (,$(filter BeOS Haiku HP-UX WINNT WINCE OpenVMS,$(OS_ARCH))) - LDFLAGS += -lm - endif - -Index: mail/app/Makefile.in -=================================================================== ---- mail/app/Makefile.in (revision 7) -+++ mail/app/Makefile.in (working copy) -@@ -149,7 +149,7 @@ - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame -Index: modules/libpr0n/decoders/Makefile.in -=================================================================== ---- modules/libpr0n/decoders/Makefile.in (revision 7) -+++ modules/libpr0n/decoders/Makefile.in (working copy) -@@ -52,7 +52,7 @@ - ifeq ($(OS_ARCH),OS2) - DIRS = icon/os2 icon - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - DIRS = icon/beos icon - endif - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) -Index: modules/libpr0n/decoders/icon/Makefile.in -=================================================================== ---- modules/libpr0n/decoders/icon/Makefile.in (revision 7) -+++ modules/libpr0n/decoders/icon/Makefile.in (working copy) -@@ -82,7 +82,7 @@ - PLATFORM = mac - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PLATFORM = beos - endif - -@@ -102,7 +102,7 @@ - ifdef MOZ_ENABLE_GNOMEUI - USE_ICON_DECODER = 1 - endif --ifeq (,$(filter-out Darwin OS2 BeOS,$(OS_ARCH))) -+ifeq (,$(filter-out Darwin OS2 BeOS Haiku,$(OS_ARCH))) - USE_ICON_DECODER = 1 - endif - -Index: modules/plugin/base/src/Makefile.in -=================================================================== ---- modules/plugin/base/src/Makefile.in (revision 7) -+++ modules/plugin/base/src/Makefile.in (working copy) -@@ -96,7 +96,7 @@ - nsJSNPRuntime.cpp \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CPPSRCS += nsPluginsDirBeOS.cpp - CPPSRCS += nsPluginNativeWindow.cpp - else -Index: modules/libreg/src/Makefile.in -=================================================================== ---- modules/libreg/src/Makefile.in (revision 7) -+++ modules/libreg/src/Makefile.in (working copy) -@@ -66,7 +66,7 @@ - - DEFINES += -DUSE_BUFFERED_REGISTRY_IO - # Memory mapped files are not supported under QNX, Neutrino, HP-UX and BeOS --#ifeq (,$(filter BeOS HP-UX QNX,$(OS_ARCH))) -+#ifeq (,$(filter BeOS Haiku HP-UX QNX,$(OS_ARCH))) - #CSRCS += mmapio.c - #DEFINES += -DUSE_MMAP_REGISTRY_IO - #endif -Index: nsprpub/lib/prstreams/Makefile.in -=================================================================== ---- nsprpub/lib/prstreams/Makefile.in (revision 7) -+++ nsprpub/lib/prstreams/Makefile.in (working copy) -@@ -69,7 +69,7 @@ - endif - endif - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - CFLAGS += -frtti -fexceptions - endif - -@@ -118,7 +118,7 @@ - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS = -lstdc++.r4 - endif - -Index: toolkit/library/Makefile.in -=================================================================== ---- toolkit/library/Makefile.in (revision 7) -+++ toolkit/library/Makefile.in (working copy) -@@ -364,7 +364,7 @@ - EXTRA_DSO_LDOPTS += $(MOZ_PANGO_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - -Index: xpcom/build/Makefile.in -=================================================================== ---- xpcom/build/Makefile.in (revision 7) -+++ xpcom/build/Makefile.in (working copy) -@@ -173,7 +173,7 @@ - EXTRA_DSO_LDOPTS += $(TK_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - -Index: xpcom/obsolete/Makefile.in -=================================================================== ---- xpcom/obsolete/Makefile.in (revision 7) -+++ xpcom/obsolete/Makefile.in (working copy) -@@ -120,7 +120,7 @@ - EXTRA_DSO_LDOPTS += $(TK_LIBS) - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_DSO_LDOPTS += -lbe - endif - -Index: xpcom/reflect/xptcall/src/md/unix/Makefile.in -=================================================================== ---- xpcom/reflect/xptcall/src/md/unix/Makefile.in (revision 7) -+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in (working copy) -@@ -95,9 +95,10 @@ - endif - endif - # --# BeOS/Intel (uses the same unixish_x86 code) -+# BeOS/Intel (uses the same as Linux, works well. Migrate others!) - # --ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -+#ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) -+ifeq (,$(filter-out BeOSBePC HaikuBePC, $(OS_ARCH)$(OS_TEST))) - CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp - endif - # -Index: xpinstall/packager/Makefile.in -=================================================================== ---- xpinstall/packager/Makefile.in (revision 7) -+++ xpinstall/packager/Makefile.in (working copy) -@@ -48,7 +48,7 @@ - ifeq ($(OS_ARCH),IRIX) - STRIP_FLAGS = -f - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - STRIP_FLAGS = -g - PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)-bin" - endif -Index: xulrunner/app/Makefile.in -=================================================================== ---- xulrunner/app/Makefile.in (revision 7) -+++ xulrunner/app/Makefile.in (working copy) -@@ -59,7 +59,7 @@ - ifeq ($(USE_SHORT_LIBNAME), 1) - PROGRAM = xulrunner$(BIN_SUFFIX) - else --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - PROGRAM = xulrunner$(BIN_SUFFIX) - else - PROGRAM = xulrunner-bin$(BIN_SUFFIX) -@@ -85,7 +85,7 @@ - ifeq ($(OS_ARCH),WINNT) - CPPSRCS += nsRegisterGREWin.cpp - else --ifneq (,$(filter OS2 Darwin,$(OS_ARCH))) -+ifneq (,$(filter OS2 Darwin BeOS Haiku,$(OS_ARCH))) - CPPSRCS += nsRegisterGREVoid.cpp - else - CPPSRCS += nsRegisterGREUnix.cpp -@@ -174,7 +174,7 @@ - endif - endif - --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - OS_LIBS += -ltracker - endif - diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r03b-starmk.patch b/www-client/mozilla_firefox/patches/2009-09-27/r03b-starmk.patch deleted file mode 100644 index 93a823127..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r03b-starmk.patch +++ /dev/null @@ -1,115 +0,0 @@ -Index: config/config.mk -=================================================================== ---- config/config.mk (revision 7) -+++ config/config.mk (working copy) -@@ -110,9 +110,6 @@ - LD := $(CC) - endif - endif --ifeq ($(OS_ARCH),BeOS) --BEOS_ADDON_WORKAROUND = 1 --endif - - # - # Strip off the excessively long version numbers on these platforms, -Index: config/rules.mk -=================================================================== ---- config/rules.mk (revision 7) -+++ config/rules.mk (working copy) -@@ -517,7 +517,7 @@ - # - # BeOS: add -Bsymbolic flag for components - # --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter BeOS Haiku,$(OS_ARCH))) - ifdef IS_COMPONENT - EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic - endif -@@ -827,7 +827,7 @@ - ifdef MOZ_POST_PROGRAM_COMMAND - $(MOZ_POST_PROGRAM_COMMAND) $@ - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - ifdef BEOS_PROGRAM_RESOURCE - xres -o $@ $(BEOS_PROGRAM_RESOURCE) - mimeset $@ -Index: directory/c-sdk/build.mk -=================================================================== ---- directory/c-sdk/build.mk (revision 7) -+++ directory/c-sdk/build.mk (working copy) -@@ -442,7 +442,7 @@ - SO_FILES_TO_REMOVE=so_locations - endif - --ifneq (,$(filter BeOS Darwin NetBSD,$(OS_ARCH))) -+ifneq (,$(filter BeOS Haiku Darwin NetBSD,$(OS_ARCH))) - LINK_DLL = $(MKSHLIB) $(OBJS) - endif - -Index: security/coreconf/config.mk -=================================================================== ---- security/coreconf/config.mk (revision 7) -+++ security/coreconf/config.mk (working copy) -@@ -68,8 +68,12 @@ - ifeq (,$(filter-out $(TARGET_OSES),$(OS_TARGET))) - include $(CORE_DEPTH)/coreconf/$(OS_TARGET).mk - else -+ifeq ($(OS_ARCH), Haiku) -+include $(CORE_DEPTH)/coreconf/BeOS.mk -+else - include $(CORE_DEPTH)/coreconf/$(OS_TARGET)$(OS_RELEASE).mk - endif -+endif - - ####################################################################### - # [4.0] Master "Core Components" source and release tags # -Index: security/nss/lib/ssl/config.mk -=================================================================== ---- security/nss/lib/ssl/config.mk (revision 7) -+++ security/nss/lib/ssl/config.mk (working copy) -@@ -111,7 +111,7 @@ - -lnspr4 \ - $(NULL) - --ifeq ($(OS_ARCH), BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - EXTRA_SHARED_LIBS += -lbe - endif - -Index: toolkit/mozapps/installer/package-name.mk -=================================================================== ---- toolkit/mozapps/installer/package-name.mk (revision 7) -+++ toolkit/mozapps/installer/package-name.mk (working copy) -@@ -59,6 +59,9 @@ - ifeq ($(OS_ARCH),OS2) - MOZ_PKG_PLATFORM := os2 - endif -+ifeq ($(OS_ARCH), Haiku) -+MOZ_PKG_PLATFORM := Haiku -+endif - ifeq ($(OS_ARCH), BeOS) - ifeq (,$(filter-out 6.%, $(OS_RELEASE))) - MOZ_PKG_PLATFORM := Zeta -Index: toolkit/mozapps/installer/packager.mk -=================================================================== ---- toolkit/mozapps/installer/packager.mk (revision 7) -+++ toolkit/mozapps/installer/packager.mk (working copy) -@@ -48,7 +48,7 @@ - ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) - MOZ_PKG_FORMAT = DMG - else --ifeq (,$(filter-out OS2 WINNT BeOS, $(OS_ARCH))) -+ifeq (,$(filter-out OS2 WINNT BeOS Haiku, $(OS_ARCH))) - MOZ_PKG_FORMAT = ZIP - ifeq ($(OS_ARCH),OS2) - INSTALLER_DIR = os2 -@@ -251,7 +251,7 @@ - ifeq ($(OS_ARCH),IRIX) - STRIP_FLAGS = -f - endif --ifeq ($(OS_ARCH),BeOS) -+ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) - STRIP_FLAGS = -g - PLATFORM_EXCLUDE_LIST = ! -name "*.stub" ! -name "$(MOZ_PKG_APPNAME)-bin" - endif diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r04a-rdef-support-in-Makefile.patch b/www-client/mozilla_firefox/patches/2009-09-27/r04a-rdef-support-in-Makefile.patch deleted file mode 100644 index a751978a0..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r04a-rdef-support-in-Makefile.patch +++ /dev/null @@ -1,140 +0,0 @@ -Index: mozilla/browser/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/browser/app/Makefile.in,v -retrieving revision 1.85.2.12 -diff -u -8 -p -w -r1.85.2.12 Makefile.in ---- mozilla/browser/app/Makefile.in 12 May 2008 18:25:50 -0000 1.85.2.12 -+++ mozilla/browser/app/Makefile.in 8 Jul 2009 21:49:35 -0000 -@@ -146,17 +150,20 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - - ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res -Index: mozilla/calendar/sunbird/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/calendar/sunbird/app/Makefile.in,v -retrieving revision 1.21.2.23 -diff -u -8 -p -w -r1.21.2.23 Makefile.in ---- mozilla/calendar/sunbird/app/Makefile.in 4 May 2008 01:32:07 -0000 1.21.2.23 -+++ mozilla/calendar/sunbird/app/Makefile.in 8 Jul 2009 21:50:01 -0000 -@@ -189,18 +193,21 @@ endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - ifdef DEBUG - RCFLAGS += -DDEBUG - endif - endif - - ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res - RCFLAGS += -DMOZ_SUNBIRD -Index: mozilla/config/rules.mk -=================================================================== -RCS file: /cvsroot/mozilla/config/rules.mk,v -retrieving revision 3.487.2.9 -diff -u -8 -p -w -r3.487.2.9 rules.mk ---- mozilla/config/rules.mk 18 Dec 2007 21:33:08 -0000 3.487.2.9 -+++ mozilla/config/rules.mk 8 Jul 2009 21:50:19 -0000 -@@ -822,17 +826,20 @@ endif # OS2 - endif # WINCE - - ifdef ENABLE_STRIP - $(STRIP) $@ - endif - ifdef MOZ_POST_PROGRAM_COMMAND - $(MOZ_POST_PROGRAM_COMMAND) $@ - endif - ifneq (,$(filter BeOS Haiku,$(OS_ARCH))) -+ifdef BEOS_PROGRAM_RDEF -+ rc -o $(BEOS_PROGRAM_RESOURCE) $(BEOS_PROGRAM_RDEF) -+endif - ifdef BEOS_PROGRAM_RESOURCE - xres -o $@ $(BEOS_PROGRAM_RESOURCE) - mimeset $@ - endif - endif # BeOS - - $(HOST_PROGRAM): $(HOST_PROGOBJS) $(HOST_LIBS_DEPS) $(HOST_EXTRA_DEPS) Makefile Makefile.in - ifeq ($(MOZ_OS2_TOOLS),VACPP) -Index: mozilla/mail/app/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/mail/app/Makefile.in,v -retrieving revision 1.46.2.10 -diff -u -8 -p -w -r1.46.2.10 Makefile.in ---- mozilla/mail/app/Makefile.in 22 Oct 2008 21:04:53 -0000 1.46.2.10 -+++ mozilla/mail/app/Makefile.in 8 Jul 2009 21:52:18 -0000 -@@ -142,17 +146,20 @@ RCFLAGS += -DMOZ_THUNDERBIRD -I$(srcdir) - else - RCFLAGS += -DMOZ_THUNDERBIRD --include-dir $(srcdir) - endif - ifdef BUILD_STATIC_LIBS - RCFLAGS += -DMOZ_STATIC_BUILD - endif - endif - - ifeq (,$(filter-out BeOS Haiku, $(OS_ARCH))) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - - ifeq ($(OS_ARCH),OS2) - RESFILE=splashos2.res -Index: mozilla/xpfe/bootstrap/Makefile.in -=================================================================== -RCS file: /cvsroot/mozilla/xpfe/bootstrap/Attic/Makefile.in,v -retrieving revision 1.283.2.6 -diff -u -8 -p -w -r1.283.2.6 Makefile.in ---- mozilla/xpfe/bootstrap/Makefile.in 29 Sep 2007 20:15:11 -0000 1.283.2.6 -+++ mozilla/xpfe/bootstrap/Makefile.in 8 Jul 2009 21:54:55 -0000 -@@ -215,16 +219,19 @@ ifdef GC_LEAK_DETECTOR - LIBS += -lboehm - endif - - ifdef WRAP_SYSTEM_INCLUDES - DEFINES += -DWRAP_SYSTEM_INCLUDES - endif - - ifeq ($(MOZ_WIDGET_TOOLKIT),beos) -+ifeq ($(OS_ARCH),Haiku) -+BEOS_PROGRAM_RDEF = $(srcdir)/apprunner-beos.rdef -+endif - BEOS_PROGRAM_RESOURCE = $(srcdir)/apprunner-beos.rsrc - CPPSRCS += nsNativeAppSupportBeOS.cpp - CPPSRCS += nsNativeAppSupportBase.cpp - ifdef BUILD_STATIC_LIBS - OS_LIBS += -ltracker -lgame - endif - endif - diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r04b-just-rdefs-no-Makefile.patch b/www-client/mozilla_firefox/patches/2009-09-27/r04b-just-rdefs-no-Makefile.patch deleted file mode 100644 index 3b7cba03b..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r04b-just-rdefs-no-Makefile.patch +++ /dev/null @@ -1,532 +0,0 @@ -Index: /generated/bezilla/mozilla/xpfe/apprunner-beos.rdef -=================================================================== ---- /generated/bezilla/mozilla/xpfe/apprunner-beos.rdef (revision 0) -+++ /generated/bezilla/mozilla/xpfe/apprunner-beos.rdef (revision 0) -@@ -0,0 +1,136 @@ -+/* -+ * BeZillaBrowser.rdef -+ */ -+ -+resource app_signature "application/x-vnd.Mozilla-SeaMonkey"; -+ -+resource app_flags B_SINGLE_LAUNCH; -+ -+resource app_version { -+ /* -+ * We are using the source code version number -+ * for our program version. -+ * TODO : implement something better. -+ */ -+ major = 1, -+ middle = 8, -+ minor = 1, -+ -+ /* 0 = development 1 = alpha 2 = beta -+ 3 = gamma 4 = golden master 5 = final */ -+ variety = 0, -+ -+ internal = 21, -+ -+ short_info = "BeZillaSuite", -+ long_info = "BeZillaSuite is based on Mozilla's source code" -+}; -+ -+resource file_types message { -+ "types" = "application/x-vnd.Be.URL.file", -+ "types" = "application/x-vnd.Be.URL.ftp", -+ "types" = "application/x-vnd.Be.URL.http", -+ "types" = "application/x-vnd.Be.URL.https", -+ "types" = "application/x-vnd.Be.URL.mailto", -+ "types" = "application/x-vnd.Be.URL.news", -+ "types" = "text/html" -+ /* -+ * Should BeZillaSuite include these additional filetypes? -+ * note: MailNews has them -+ "types" = "applicataion/x-person", -+ "types" = "message/rfc822", -+ "types" = "text/E-mail", -+ "types" = "text/x-email" -+ "types" = "text/x-vnd.Be-MailDraft" -+ */ -+}; -+ -+resource vector_icon { -+ $"6E636966210500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" -+ $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" -+ $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" -+ $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" -+ $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" -+ $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" -+ $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" -+ $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" -+ $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" -+ $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" -+ $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" -+ $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" -+ $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" -+ $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" -+ $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" -+ $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" -+ $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" -+ $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" -+ $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" -+ $"000200060237889D389554BBFC4A3AB9D0491ADE4A422000FFF9BAFFFFC10402" -+ $"0006023882A6389353BB177D3B0378484ADD4AF27700C7E3FFFF392FFF020006" -+ $"0237A0CC393C5ABC1AC23A5C164A19B94AFE5400FF9797FFCE3232290633EEEB" -+ $"FFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0B478BFB4B450BFB7" -+ $"B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82B33EBBDBB3F2BBCE" -+ $"B4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45B50ABB45B50ABB44" -+ $"B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1EB58DBA12B593BA12" -+ $"B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975B5ECB974B5EDB918" -+ $"B626B918B626B917B626B8EDB642B893B681B887B689B86CB69CB7F22AB7B5B7" -+ $"2DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB4BB380BC3AB317BC" -+ $"7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54FBB03C7E8BAF4C7DB" -+ $"BAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4C760C888CA38C797" -+ $"C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34CCBC2C1EBCA78BF62" -+ $"C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17C999BCEAC857BA6B" -+ $"C720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DBC472B66FC405B613" -+ $"C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34C05A34C05B34C05A" -+ $"34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5D3CB14C47FC521B8" -+ $"CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE82B789BF00C251BC" -+ $"E5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C044C512C05CCC1E06" -+ $"04EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87FB7A5BC0CB4F7B87F" -+ $"B7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50ABF40B50ABD2DB5" -+ $"21B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36B3F7BCF4B789BF00" -+ $"BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7A5BD7FBA63BC9BBC" -+ $"64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A04BC7AB801BF99B6" -+ $"C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC30EB77BC204B6CF0A" -+ $"05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B967C223B8A5C3F1BB" -+ $"51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3F1BB51C5B0BB5AC7" -+ $"1A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC23C05CCC1EC044C5" -+ $"12BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A04C9EA41C8C5BFF3" -+ $"CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7C1C4BED1C0BCBCE5" -+ $"C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7BCB1B7EC0A04BFE1" -+ $"B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69AC5B7B6C3C41AB825" -+ $"0A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3C9EA41CA07C060C8" -+ $"E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9EA41C8C5BFF3C80F" -+ $"BE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3B826C5B7B6C3C594" -+ $"B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187B3FFC068B5C6BF40" -+ $"B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9EB57CBC9EB57CBB34" -+ $"B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36B3F7BCF4B413C012" -+ $"B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044C512C05CCC1EC693" -+ $"C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302BB334EB8F2C3E4B9" -+ $"9FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC38BF63BC91BF9DBC" -+ $"71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137BE10BC1ABE4BBC03" -+ $"BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58BF7BBB58BF8FBB45" -+ $"BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBFE7BBB2BFE7BB85BF" -+ $"E7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC80BEFCBCDBBE32BC" -+ $"45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC1DBE58BC27BE70BC" -+ $"1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB77BFB7BB5CBFA7BB" -+ $"66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBFDCBBEA0605BA02BC" -+ $"2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBBF5C7310A04BC7AB8" -+ $"01BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C204B6CF0A05BCAAC6" -+ $"70BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBDE5C88AC04EC88BBD" -+ $"C9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60C971BD4FCB2BC054" -+ $"CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21BEE9BBBAC059BA77" -+ $"0204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBCBB8FBFD9BBE8BFD9" -+ $"BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37ABBFAC2FDBAD1C336" -+ $"BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE00CC16C049CC29C0" -+ $"33C51CBFB5C4EA0A062C472C4E3251364E364730440A06265226592C5C305930" -+ $"522A4F0A0632533259385C3C593C5237C5D3290A000100000A010101000A0201" -+ $"02000A030103000A040104000A050105000A060106000A070107000A08010800" -+ $"0A090109000A0A010A000A0B010B000A0C010C000A0D010D000A0E010E000A0F" -+ $"010F000A100110000A110111000A120112000A130113000A140114000A150115" -+ $"000A1603161718000A170119000A18011A000A18011B000A18011C000A18011D" -+ $"000A18011E000A18011F000A180120000A190121000A180122000A1A0123000A" -+ $"1B0124000A1C0125000A1D032627283841B30C15FF01178400040A1D03262728" -+ $"3841B30C001501178600040A1E01262041B30C0A1F01272041B30C0A20012820" -+ $"41B30C" -+}; -+ -+ -Index: /generated/bezilla/mozilla/mail/app/apprunner-beos.rdef -=================================================================== ---- /generated/bezilla/mozilla/mail/app/apprunner-beos.rdef (revision 0) -+++ /generated/bezilla/mozilla/mail/app/apprunner-beos.rdef (revision 0) -@@ -0,0 +1,126 @@ -+/* -+ * BeZillaBrowser.rdef -+ */ -+ -+resource app_signature "application/x-vnd.Mozilla-Thunderbird"; -+ -+resource app_flags B_SINGLE_LAUNCH; -+ -+resource app_version { -+ /* -+ * We are using the source code version number -+ * for our program version. -+ * TODO : implement something better. -+ */ -+ major = 1, -+ middle = 8, -+ minor = 1, -+ -+ /* 0 = development 1 = alpha 2 = beta -+ 3 = gamma 4 = golden master 5 = final */ -+ variety = 0, -+ -+ internal = 21, -+ -+ short_info = "BeZillaMailNews", -+ long_info = "BeZillaMailNews is based on Mozilla's source code" -+}; -+ -+resource file_types message { -+ "types" = "application/x-vnd.Be.URL.mailto", -+ "types" = "application/x-vnd.Be.URL.news", -+ "types" = "applicataion/x-person", -+ "types" = "message/rfc822", -+ "types" = "text/E-mail", -+ "types" = "text/x-email", -+ "types" = "text/x-vnd.Be-MailDraft" -+}; -+ -+resource vector_icon { -+ $"6E636966200500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" -+ $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" -+ $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" -+ $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" -+ $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" -+ $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" -+ $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" -+ $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" -+ $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" -+ $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" -+ $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" -+ $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" -+ $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" -+ $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" -+ $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" -+ $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" -+ $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" -+ $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" -+ $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" -+ $"0002000602389ECD3AF097BC491F3A09894954654ABDFA00FFFFFFFFD9D09303" -+ $"6B5222280633EEEBFFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0" -+ $"B478BFB4B450BFB7B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82" -+ $"B33EBBDBB3F2BBCEB4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45" -+ $"B50ABB45B50ABB44B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1E" -+ $"B58DBA12B593BA12B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975" -+ $"B5ECB974B5EDB918B626B918B626B917B626B8EDB642B893B681B887B689B86C" -+ $"B69CB7F22AB7B5B72DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB" -+ $"4BB380BC3AB317BC7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54F" -+ $"BB03C7E8BAF4C7DBBAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4" -+ $"C760C888CA38C797C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34C" -+ $"CBC2C1EBCA78BF62C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17" -+ $"C999BCEAC857BA6BC720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DB" -+ $"C472B66FC405B613C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34" -+ $"C05A34C05B34C05A34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5" -+ $"D3CB14C47FC521B8CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE" -+ $"82B789BF00C251BCE5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C0" -+ $"44C512C05CCC1E0604EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87F" -+ $"B7A5BC0CB4F7B87FB7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B5" -+ $"0ABF40B50ABD2DB521B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36" -+ $"B3F7BCF4B789BF00BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7" -+ $"A5BD7FBA63BC9BBC64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A" -+ $"04BC7AB801BF99B6C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC3" -+ $"0EB77BC204B6CF0A05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B9" -+ $"67C223B8A5C3F1BB51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3" -+ $"F1BB51C5B0BB5AC71A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC" -+ $"23C05CCC1EC044C512BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A" -+ $"04C9EA41C8C5BFF3CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7" -+ $"C1C4BED1C0BCBCE5C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7" -+ $"BCB1B7EC0A04BFE1B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69A" -+ $"C5B7B6C3C41AB8250A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3" -+ $"C9EA41CA07C060C8E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9" -+ $"EA41C8C5BFF3C80FBE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3" -+ $"B826C5B7B6C3C594B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187" -+ $"B3FFC068B5C6BF40B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9E" -+ $"B57CBC9EB57CBB34B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36" -+ $"B3F7BCF4B413C012B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044" -+ $"C512C05CCC1EC693C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302" -+ $"BB334EB8F2C3E4B99FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC" -+ $"38BF63BC91BF9DBC71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137" -+ $"BE10BC1ABE4BBC03BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58" -+ $"BF7BBB58BF8FBB45BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBF" -+ $"E7BBB2BFE7BB85BFE7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC" -+ $"80BEFCBCDBBE32BC45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC" -+ $"1DBE58BC27BE70BC1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB" -+ $"77BFB7BB5CBFA7BB66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBF" -+ $"DCBBEA0605BA02BC2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBB" -+ $"F5C7310A04BC7AB801BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C2" -+ $"04B6CF0A05BCAAC670BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBD" -+ $"E5C88AC04EC88BBDC9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60" -+ $"C971BD4FCB2BC054CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21" -+ $"BEE9BBBAC059BA770204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBC" -+ $"BB8FBFD9BBE8BFD9BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37A" -+ $"BBFAC2FDBAD1C336BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE" -+ $"00CC16C049CC29C033C51CBFB5C4EA0A04244C245C3C5C3C4C060AEEFE0E244C" -+ $"30542E5432543C4CBB1454BCCAC670BB14543C5CBABCC808BABCC808BA0EC8AC" -+ $"3056B9A856B91756B801C808B8B1C8ACB801C808245CB7A954B7A954B5F4C670" -+ $"280A000100000A010101000A020102000A030103000A040104000A050105000A" -+ $"060106000A070107000A080108000A090109000A0A010A000A0B010B000A0C01" -+ $"0C000A0D010D000A0E010E000A0F010F000A100110000A110111000A12011200" -+ $"0A130113000A140114000A150115000A1603161718000A170119000A18011A00" -+ $"0A18011B000A18011C000A18011D000A18011E000A18011F000A180120000A19" -+ $"0121000A180122000A1A0123000A1B0124000A1C0125000A1D012638C018B358" -+ $"15FF01178400040A1D012638C018B358001501178600040A1E012620C018B358" -+ $"0A1F012720C018B358" -+}; -+ -+ -Index: /generated/bezilla/mozilla/calendar/sunbird/app/apprunner-beos.rdef -=================================================================== ---- /generated/bezilla/mozilla/calendar/sunbird/app/apprunner-beos.rdef (revision 0) -+++ /generated/bezilla/mozilla/calendar/sunbird/app/apprunner-beos.rdef (revision 0) -@@ -0,0 +1,125 @@ -+/* -+ * BeZillaBrowser.rdef -+ */ -+ -+resource app_signature "application/x-vnd.Mozilla-Sunbird"; -+ -+resource app_flags B_SINGLE_LAUNCH; -+ -+resource app_version { -+ /* -+ * We are using the source code version number -+ * for our program version. -+ * TODO : implement something better. -+ */ -+ major = 1, -+ middle = 8, -+ minor = 1, -+ -+ /* 0 = development 1 = alpha 2 = beta -+ 3 = gamma 4 = golden master 5 = final */ -+ variety = 0, -+ -+ internal = 21, -+ -+ short_info = "BeZillaCalendar", -+ long_info = "BeZillaCalendar is based on Mozilla's source code" -+}; -+ -+resource file_types message { -+ "types" = "text/csv", -+ "types" = "text/calendar" -+ /* -+ // TODO: -+ // .sdb is mimetype application/octet-stream -+ // is there a more elegant way to handle it? -+ types" = "application/octet-stream" -+ */ -+}; -+resource vector_icon { -+ $"6E636966200500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" -+ $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" -+ $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" -+ $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" -+ $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" -+ $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" -+ $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" -+ $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" -+ $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" -+ $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" -+ $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" -+ $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" -+ $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" -+ $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" -+ $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" -+ $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" -+ $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" -+ $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" -+ $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" -+ $"000200060239CDA03A935CBC02343AF7494899864A8DDC00FFDB97FFFCAF2902" -+ $"0106033B471C0000000000003B36DB472800498C0000F2F2F2AB7D7A7AFFBCA1" -+ $"84280633EEEBFFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0B478" -+ $"BFB4B450BFB7B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82B33E" -+ $"BBDBB3F2BBCEB4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45B50A" -+ $"BB45B50ABB44B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1EB58D" -+ $"BA12B593BA12B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975B5EC" -+ $"B974B5EDB918B626B918B626B917B626B8EDB642B893B681B887B689B86CB69C" -+ $"B7F22AB7B5B72DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB4BB3" -+ $"80BC3AB317BC7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54FBB03" -+ $"C7E8BAF4C7DBBAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4C760" -+ $"C888CA38C797C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34CCBC2" -+ $"C1EBCA78BF62C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17C999" -+ $"BCEAC857BA6BC720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DBC472" -+ $"B66FC405B613C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34C05A" -+ $"34C05B34C05A34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5D3CB" -+ $"14C47FC521B8CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE82B7" -+ $"89BF00C251BCE5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C044C5" -+ $"12C05CCC1E0604EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87FB7A5" -+ $"BC0CB4F7B87FB7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50ABF" -+ $"40B50ABD2DB521B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36B3F7" -+ $"BCF4B789BF00BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7A5BD" -+ $"7FBA63BC9BBC64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A04BC" -+ $"7AB801BF99B6C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC30EB7" -+ $"7BC204B6CF0A05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B967C2" -+ $"23B8A5C3F1BB51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3F1BB" -+ $"51C5B0BB5AC71A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC23C0" -+ $"5CCC1EC044C512BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A04C9" -+ $"EA41C8C5BFF3CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7C1C4" -+ $"BED1C0BCBCE5C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7BCB1" -+ $"B7EC0A04BFE1B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69AC5B7" -+ $"B6C3C41AB8250A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3C9EA" -+ $"41CA07C060C8E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9EA41" -+ $"C8C5BFF3C80FBE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3B826" -+ $"C5B7B6C3C594B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187B3FF" -+ $"C068B5C6BF40B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9EB57C" -+ $"BC9EB57CBB34B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36B3F7" -+ $"BCF4B413C012B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044C512" -+ $"C05CCC1EC693C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302BB33" -+ $"4EB8F2C3E4B99FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC38BF" -+ $"63BC91BF9DBC71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137BE10" -+ $"BC1ABE4BBC03BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58BF7B" -+ $"BB58BF8FBB45BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBFE7BB" -+ $"B2BFE7BB85BFE7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC80BE" -+ $"FCBCDBBE32BC45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC1DBE" -+ $"58BC27BE70BC1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB77BF" -+ $"B7BB5CBFA7BB66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBFDCBB" -+ $"EA0605BA02BC2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBBF5C7" -+ $"310A04BC7AB801BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C204B6" -+ $"CF0A05BCAAC670BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBDE5C8" -+ $"8AC04EC88BBDC9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60C971" -+ $"BD4FCB2BC054CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21BEE9" -+ $"BBBAC059BA770204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBCBB8F" -+ $"BFD9BBE8BFD9BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37ABBFA" -+ $"C2FDBAD1C336BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE00CC" -+ $"16C049CC29C033C51CBFB5C4EA0A092844284E2A502A5A325A3250344E34442E" -+ $"4202042E3AB9753AB7B23A2A3E2ABE112ABFD52E42B7B242B97542323E32BFD5" -+ $"32BE11280A000100000A010101000A020102000A030103000A040104000A0501" -+ $"05000A060106000A070107000A080108000A090109000A0A010A000A0B010B00" -+ $"0A0C010C000A0D010D000A0E010E000A0F010F000A100110000A110111000A12" -+ $"0112000A130113000A140114000A150115000A1603161718000A170119000A18" -+ $"011A000A18011B000A18011C000A18011D000A18011E000A18011F000A180120" -+ $"000A190121000A180122000A1A0123000A1B0124000A1C0125000A1D012630C3" -+ $"89B47101178400040A1E012620C389B4710A1D012730C389B47101178400040A" -+ $"1F012720C389B471" -+}; -+ -Index: /generated/bezilla/mozilla/browser/app/apprunner-beos.rdef -=================================================================== ---- /generated/bezilla/mozilla/browser/app/apprunner-beos.rdef (revision 0) -+++ /generated/bezilla/mozilla/browser/app/apprunner-beos.rdef (revision 0) -@@ -0,0 +1,125 @@ -+/* -+ * BeZillaBrowser.rdef -+ */ -+ -+resource app_signature "application/x-vnd.Mozilla-Firefox"; -+ -+resource app_flags B_SINGLE_LAUNCH; -+ -+resource app_version { -+ /* -+ * We are using the source code version number -+ * for our program version. -+ * TODO : implement something better. -+ */ -+ major = 1, -+ middle = 8, -+ minor = 1, -+ -+ /* 0 = development 1 = alpha 2 = beta -+ 3 = gamma 4 = golden master 5 = final */ -+ variety = 0, -+ -+ internal = 21, -+ -+ short_info = "BeZillaBrowser", -+ long_info = "BeZillaBrowser is based on Mozilla's source code" -+}; -+ -+resource file_types message { -+ "types" = "application/x-vnd.Be.URL.file", -+ "types" = "application/x-vnd.Be.URL.ftp", -+ "types" = "application/x-vnd.Be.URL.http", -+ "types" = "application/x-vnd.Be.URL.https", -+ "types" = "text/html", -+ "types" = "image/gif", -+ "types" = "image/png" -+}; -+ -+resource vector_icon { -+ $"6E6369661F0500020016029E8638A20EBA220EBA9E86384880254A18EA00FFFF" -+ $"8002001602BC9D88BB1F643B1F64BC9D884B716D48772700FFFF80020016023B" -+ $"F73A0000000000003BF73A49B5114976B000FFFF800200160237A0DDB61AF236" -+ $"1AF237A0DD497CAA48588100FFFF800200160238D81CB8152D38152D38D81C48" -+ $"420A499FB600FFFF8002001602397095000000000000397095486EDA49100600" -+ $"FFFF800200160231E5B2BA0EAF3A0EAF31E5B247DA3349779B00FFFF80020016" -+ $"0236BBEFB4543A34543A36BBEF495BDE469BC700FFFF6B0200160236E2E70000" -+ $"0000000036E2E74A2CD64670CD00FFFF800200160237AB1000000000000037AB" -+ $"104AE1D848449500FFFF5702001602375C10B74516374516375C1048B2B04AE9" -+ $"7200FFFF8002001602B07700B74912374912B077004898AD4AD99500FFFF8002" -+ $"00160232CFA5BA0B483A0B4832CFA54A3C584BA00E00FFFF8002001602368CB7" -+ $"000000000000368CB74B3D5E49752800FFFF4F0200160236A81C000000000000" -+ $"36A81C4B94C84A808500FFFF4002000602B738F7362603B62603B738F748BB3F" -+ $"4A241700A91212FFD7121202001602B04887376143B76143B0488748D36C44FB" -+ $"3100FFFF6B02001602B47620362BAAB62BAAB476204A0C144406C600FFFF8002" -+ $"001602B4CAE23409B3B409B3B4CAE24AD8D54611F100FFFF8002001602B328E4" -+ $"324E4AB24E4AB328E44B36A648859C00FFFF8002001602B22376311F03B11F03" -+ $"B223764B891349FFBC00FFFF80010079009803FF000004006002001602B4E6F3" -+ $"319259B19259B4E6F34B2F5D4AA2CA00FFFF0003FFFF0004FFD801FFFF669805" -+ $"000201060238CC87BD083D3DCC623981954609924A996B00FFB11BFFFFF9C727" -+ $"0633EEEBFFFFAAEAABDBAEBBBEAE2BC0CEB389C02424C074B415BFF0B478BFB4" -+ $"B450BFB7B455BFB6B455BF8CB436BF14B430BF55B42DBEF5B3FFBE82B33EBBDB" -+ $"B3F2BBCEB4D7BBD0B4BABBCBB4DABBC7B4DABBC7B4DABBC8B4DABB45B50ABB45" -+ $"B50ABB44B50ABB37B50DBB37B50DBAD6B534BA1EB58DBA78B560BA1EB58DBA12" -+ $"B593BA12B593BA0FB596B99BB5D6B99BB5D6B99AB5D6B975B5ECB975B5ECB974" -+ $"B5EDB918B626B918B626B917B626B8EDB642B893B681B887B689B86CB69CB7F2" -+ $"2AB7B5B72DB7A9B76EB73CB920B755B8C5B6B5B9A4B380BC3AB4F7BB4BB380BC" -+ $"3AB317BC7FB33E42B755C332B80EC320B7E7C323B7FBC3522CC3C54FBB03C7E8" -+ $"BAF4C7DBBAD1C898BA59CA44BC40CC83BAD4CBC3BDF3CD6FC0A0CDA4C760C888" -+ $"CA38C797C90DC879CB7BC6A2CC38C4DCCB9AC3A6CBB6C3DDCBA2C34CCBC2C1EB" -+ $"CA78BF62C954BF30C9ADBF3FC934BEE9C900BE83C91DBEC2C927BE17C999BCEA" -+ $"C857BA6BC720BABCC767BAABC73FBA2EC7C0B7EEC5B1B563C3F4B6DBC472B66F" -+ $"C405B613C427B41BC12CB2F006032FBAF5C05EBAF5C05EBAF7C05C34C05A34C0" -+ $"5B34C05A34C05B0610EE7AAAAAC693C7B5C9E8C667C896C755CAB5C5D3CB14C4" -+ $"7FC521B8CDC521B8CDC0B9B834BD7FBA63BC9BBC64B789BF00B92ABE82B789BF" -+ $"00C251BCE5C1CCBED1C0BCBE70C324BB51C5B0BB5AC71ABFC8C4E2C044C512C0" -+ $"5CCC1E0604EEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50AB87FB7A5BC0C" -+ $"B4F7B87FB7A50604FEBD7FBA63C521B8CDC0B9B834C521B8CDBF40B50ABF40B5" -+ $"0ABD2DB521B87FB7A5BA8CB5E9B87FB7A50605BB02B3F7BCF4B5CD36B3F7BCF4" -+ $"B789BF00BA19BDD6B8DABE8835BD1EBC9BBC64B801B9930A04B87FB7A5BD7FBA" -+ $"63BC9BBC64B801B9930A04B3F7BCF4B413C012B789C251B789BF000A04BC7AB8" -+ $"01BF99B6C0BE1BB43BBCAAB49E0A05BFE1B69AC187B3FFC341B4ABC30EB77BC2" -+ $"04B6CF0A05C3E9B805C594B69AC6D3B825C637BAECC521B8CD0A06B967C223B8" -+ $"A5C3F1BB51C5B0BE70C323BED1C0BCBCE5C1CC0A04B8A5C548B8A5C3F1BB51C5" -+ $"B0BB5AC71A0606BA0ABC41C6A5BB73C983BCF9CB79BBC8CAD5BE40CC23C05CCC" -+ $"1EC044C512BFC8C4E20A04C6A1BBC1C7E5BB6BC8ABBCF7C80EBE920A04C9EA41" -+ $"C8C5BFF3CABBC3D4CAE3C2140A06BA90C206BA19C33CBADEC3EBBEA7C1C4BED1" -+ $"C0BCBCE5C1CC0A06BC7AB801BCAAB49EBE1BB43BBE33B460BCDAB4C7BCB1B7EC" -+ $"0A04BFE1B69AC021B6A1C1ADB40DC187B3FF0A04C3E9B805C594B69AC5B7B6C3" -+ $"C41AB8250A04C6A1BBC1C7E5BB6BC7F4BB8EC6B9BBEC0A04C8C5BFF3C9EA41CA" -+ $"07C060C8E5C02B0628AAAAAAAAAAAEEFAAA9BACAB4C3BFCAE3C214C9EA41C8C5" -+ $"BFF3C80FBE90C8ABBCF7C7F4BB8EC7E5BB6BC6A1BBC1C637BAECC6D3B826C5B7" -+ $"B6C3C594B69AC3E9B805C3F9B80FC30EB77BC341B4ABC1ADB40DC187B3FFC068" -+ $"B5C6BF40B50ABE9BB514BF03B507BE9BB514BE1BB43BBCAAB49EBC9EB57CBC9E" -+ $"B57CBB34B5E3B87FB7A5B9BC29B87FB7A5B801B993B3F7BCF4B5CD36B3F7BCF4" -+ $"B413C012B789C251B964C223B8A5C3F1C548BB5AC71ABFC8C4E2C044C512C05C" -+ $"CC1EC693C7B5C9B7C688C894C759CAD2C5BECB14C47F0A06BE4DC302BB334EB8" -+ $"F2C3E4B99FC21DBCE5C1CCBEAEC0D1020ABFDBBBF7BFE1BBDFBFC9BC38BF63BC" -+ $"91BF9DBC71BEE7BCD8BE03BC31BE4BBCABBE03BC31BE00BC24BE0137BE10BC1A" -+ $"BE4BBC03BE30BC0EBE4BBC03BEE9BBBABEE9BBBABEE9BBBABF7BBB58BF7BBB58" -+ $"BF8FBB45BFBDBB29BFA9BB3440BB2DBFC3BB34BFC3BB34BFD9BB5BBFE7BBB2BF" -+ $"E7BB85BFE7BBC8020ABFD5BC12BFD9BC00BFC3BC4FBF67BC9CBF9CBC80BEFCBC" -+ $"DBBE32BC45BE70BCB4BE32BC45BE2BBC39BE30BC41BE3EBC32BE70BC1DBE58BC" -+ $"27BE70BC1DBEFEBBDDBEFEBBDDBEFEBBDDBF7EBB84BF7EBB84BF90BB77BFB7BB" -+ $"5CBFA7BB66BFBDBB5F40BB6640BB66BFD4BB87BFDCBBD4BFDCBBADBFDCBBEA06" -+ $"05BA02BC2BC6AFC155C3BAC269C139C245C1A9C25CC1A9C1A5C3EFBBF5C7310A" -+ $"04BC7AB801BF99B6C0C125B79BBFB3B7FF0A03BFE1B69AC3A0B7D5C204B6CF0A" -+ $"05BCAAC670BCB9C66BBE0FC73AC05BC70BBDF4C7890A04BC34C73FBDE5C88AC0" -+ $"4EC88BBDC9C8D80A04BB81C817BD6CC9CFC072C973BD505A0A04BB60C971BD4F" -+ $"CB2BC054CACFBD33CB790A03C6D944C9E8C6DAC695540A03BD9FBC21BEE9BBBA" -+ $"C059BA770204BF4DBBE8BF4DBC1ABF4DBBB7BF95BB8FBF6FBB8FBFBCBB8FBFD9" -+ $"BBE8BFD9BBB7BFD9BC1ABF95BC42BFBCBC42BF6FBC420A04BAD6C37ABBFAC2FD" -+ $"BAD1C336BA8CC2FD0606BA0ABC2BC6AF35C98ABCC1CB6BBB88CAC8BE00CC16C0" -+ $"49CC29C033C51CBFB5C4EA060DEE1FBF032F442B4F2B48294B244A2953235029" -+ $"532354295423542E58265A2E585C3030583058385A3B543B543554355335533B" -+ $"503A4A334F354B3348270A000100000A010101000A020102000A030103000A04" -+ $"0104000A050105000A060106000A070107000A080108000A090109000A0A010A" -+ $"000A0B010B000A0C010C000A0D010D000A0E010E000A0F010F000A100110000A" -+ $"110111000A120112000A130113000A140114000A150115000A1603161718000A" -+ $"170119000A18011A000A18011B000A18011C000A18011D000A18011E000A1801" -+ $"1F000A180120000A190121000A180122000A1A0123000A1B0124000A1C012500" -+ $"0A1D012638BFB3B32615FF01178400040A1D012638BFB3B32600150117860004" -+ $"0A1E012620BFB3B326" -+}; -+ -+ diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.README b/www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.README deleted file mode 100644 index 65bfa2fbd..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.README +++ /dev/null @@ -1,66 +0,0 @@ - does this look odd for gcc2 - #define NUM_ELEM(array) (sizeof(array)/sizeof(array[0])) CK_BBOOL true = CK_TRUE; CK_BBOOL false = CK_FALSE; static PRBool verbose = PR_FALSE; - #define NUM_ELEM(array) (sizeof(array)/sizeof(array[0])) - CK_BBOOL true = CK_TRUE; - CK_BBOOL false = CK_FALSE; - static PRBool verbose = PR_FALSE; - ignore the first line... bad paste :) - looks fine to me - here's the error http://haiku.pastebin.com/d3cf782e4 - and the full file http://haiku.pastebin.com/d4125cc53 - anyone wanna try ? - http://revolf.free.fr/beos/patches/oss-haiku-pci-reservation.diff - might have some macro issues there, it's using a ton of macro defines - mozilla-specific - any ideas what the error is indicating? - as I said, something's wrong with one of the macros, looking at the output of gcc -E for that line might be helpful - Disreali: does this uid/gid fix also fix the read-only files btw? - I think it was -E let me check - yep - -E with -o too ? - yes - it'll write the source after preprocessing to the output file - so you can see what all those macros actually evaluated to - unless that highlights something obvious you'd probably need to enlist tqh though, I know nothing about nspr - mmadia: it indicates that someone defines true/false to 1/0 - so it ends up doing CK_BBOOL 1 = CK_TRUE - which is a syntax error - ah oops - totally overlooked that - most likely you one of the Be/Haiku headers is indirectly included - BeBuild.h I think does define them - you could #undef true and #undef false before those lines to make sure - cpp/stl_config.h:# define true 1 - that should only be if __STL_NO_BOOL is defined though - and since it's a cpp header it shouldn't be used there right? - not seeing any others in the headers offhand - right - only other one I see is build/gcc-2.95.3/stdbool.h: #define true 1 - which definitely isn't involved - it's included from SupportDefs - /* Grandfathering */ - #ifndef __cplusplus - #include - #endif - yes but that's headers/build - also in headers/os - it's quite likely that you end up including SupportDefs.h one way or another - as it defines our native int types it's included indirectly by most Be/Haiku headers - hm, grep didn't find one in headers/os - at least not one doing that define - the #undef seems to have worked for now. - nah, it includes stdbool.h in haiku - that one presumably comes from the toolchain? - in beos it did define it at that place as far as I remember - stdbool.h that is - likely - it should be in the gcc headers - that explains that - not that I could find it off hand - ah, it's in the libgcc headers - - - - - - diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.patch b/www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.patch deleted file mode 100644 index c46cbbd9a..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r05-fix-shlibsign.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: security/nss/cmd/shlibsign/shlibsign.c -=================================================================== ---- security/nss/cmd/shlibsign/shlibsign.c (revision 7) -+++ security/nss/cmd/shlibsign/shlibsign.c (working copy) -@@ -83,6 +83,11 @@ - /* freebl headers */ - #include "shsign.h" - -+#ifdef XP_BEOS -+#undef true -+#undef false -+#endif -+ - #define NUM_ELEM(array) (sizeof(array)/sizeof(array[0])) - CK_BBOOL true = CK_TRUE; - CK_BBOOL false = CK_FALSE; diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r06-nss-gcc4.patch b/www-client/mozilla_firefox/patches/2009-09-27/r06-nss-gcc4.patch deleted file mode 100644 index 2a0496429..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r06-nss-gcc4.patch +++ /dev/null @@ -1,55 +0,0 @@ -Index: security/nss/cmd/lib/secutil.h -=================================================================== ---- security/nss/cmd/lib/secutil.h (revision 7) -+++ security/nss/cmd/lib/secutil.h (working copy) -@@ -450,7 +450,7 @@ - - void printflags(char *trusts, unsigned int flags); - --#if !defined(XP_UNIX) && !defined(XP_OS2) -+#if !defined(XP_UNIX) && !defined(XP_OS2) && !defined(XP_BEOS) - extern int ffs(unsigned int i); - #endif - -Index: security/nss/lib/dev/ckhelper.c -=================================================================== ---- security/nss/lib/dev/ckhelper.c (revision 7) -+++ security/nss/lib/dev/ckhelper.c (working copy) -@@ -230,13 +230,13 @@ - PRStatus *rvStatus - ) - { -- CK_BBOOL bool; -+ CK_BBOOL boolval; - CK_ATTRIBUTE_PTR attr; - CK_ATTRIBUTE atemplate = { 0, NULL, 0 }; - CK_RV ckrv; - void *epv = nssSlot_GetCryptokiEPV(slot); - attr = &atemplate; -- NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, bool); -+ NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, boolval); - nssSession_EnterMonitor(session); - ckrv = CKAPI(epv)->C_GetAttributeValue(session->handle, object, - &atemplate, 1); -@@ -246,7 +246,7 @@ - return PR_FALSE; - } - *rvStatus = PR_SUCCESS; -- return (PRBool)(bool == CK_TRUE); -+ return (PRBool)(boolval == CK_TRUE); - } - - NSS_IMPLEMENT PRStatus -Index: security/nss/lib/freebl/unix_rand.c -=================================================================== ---- security/nss/lib/freebl/unix_rand.c (revision 7) -+++ security/nss/lib/freebl/unix_rand.c (working copy) -@@ -669,7 +669,7 @@ - #endif /* VMS */ - - #ifdef BEOS --#include -+#include - - static size_t - GetHighResClock(void *buf, size_t maxbytes) diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r07-working-nspr-from-haikuports.patch b/www-client/mozilla_firefox/patches/2009-09-27/r07-working-nspr-from-haikuports.patch deleted file mode 100644 index 83868d3c9..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r07-working-nspr-from-haikuports.patch +++ /dev/null @@ -1,5411 +0,0 @@ -Index: nsprpub/pr/include/prtypes.h -=================================================================== ---- nsprpub/pr/include/prtypes.h (revision 7) -+++ nsprpub/pr/include/prtypes.h (working copy) -@@ -98,6 +98,24 @@ - - #elif defined(XP_BEOS) - -+/* GCC 3.3 and later support the visibility attribute. */ -+#if (__GNUC__ >= 4) || \ -+ (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) -+#define PR_VISIBILITY_DEFAULT __attribute__((visibility("default"))) -+#define PR_EXPORT(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_EXPORT_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPORT(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPORT_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+ -+#define PR_EXTERN(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPLEMENT(__type) PR_VISIBILITY_DEFAULT __type -+#define PR_EXTERN_DATA(__type) extern PR_VISIBILITY_DEFAULT __type -+#define PR_IMPLEMENT_DATA(__type) PR_VISIBILITY_DEFAULT __type -+#define PR_CALLBACK -+#define PR_CALLBACK_DECL -+#define PR_STATIC_CALLBACK(__x) static __x -+ -+#else - #define PR_EXPORT(__type) extern __declspec(dllexport) __type - #define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type - #define PR_IMPORT(__type) extern __declspec(dllexport) __type -@@ -111,6 +129,7 @@ - #define PR_CALLBACK - #define PR_CALLBACK_DECL - #define PR_STATIC_CALLBACK(__x) static __x -+#endif - - #elif defined(WIN16) - -Index: nsprpub/pr/include/prio.h -=================================================================== ---- nsprpub/pr/include/prio.h (revision 7) -+++ nsprpub/pr/include/prio.h (working copy) -@@ -174,20 +174,20 @@ - union PRNetAddr { - struct { - PRUint16 family; /* address family (0x00ff maskable) */ --#ifdef XP_BEOS -- char data[10]; /* Be has a smaller structure */ -+#ifndef XP_BEOS -+ char data[14]; /* raw address data */ - #else -- char data[14]; /* raw address data */ -+ char data[30]; - #endif - } raw; - struct { - PRUint16 family; /* address family (AF_INET) */ - PRUint16 port; /* port number */ - PRUint32 ip; /* The actual 32 bits of address */ --#ifdef XP_BEOS -- char pad[4]; /* Be has a smaller structure */ -+#ifndef XP_BEOS -+ char pad[8]; - #else -- char pad[8]; -+ char pad[24]; - #endif - } inet; - struct { -@@ -196,6 +196,9 @@ - PRUint32 flowinfo; /* routing information */ - PRIPv6Addr ip; /* the actual 128 bits of address */ - PRUint32 scope_id; /* set of interfaces for a scope */ -+#ifdef XP_BEOS -+ char pad[4]; -+#endif - } ipv6; - #if defined(XP_UNIX) || defined(XP_OS2_EMX) - struct { /* Unix domain socket address */ -Index: nsprpub/pr/include/md/_beos.cfg -=================================================================== ---- nsprpub/pr/include/md/_beos.cfg (revision 7) -+++ nsprpub/pr/include/md/_beos.cfg (working copy) -@@ -20,6 +20,7 @@ - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or -@@ -40,7 +41,6 @@ - - #ifndef XP_BEOS - #define XP_BEOS --#undef XP_UNIX - #endif - - #ifndef BEOS -@@ -57,6 +57,12 @@ - #undef IS_BIG_ENDIAN - #endif - -+/* -+ * Fixme: Should be done according to arch -+ * Currently only x86/ia64. -+ */ -+#define PR_ALIGN_OF_WORD 4 -+ - #define PR_BYTES_PER_BYTE 1 - #define PR_BYTES_PER_SHORT 2 - #define PR_BYTES_PER_INT 4 -Index: nsprpub/pr/include/md/_beos.h -=================================================================== ---- nsprpub/pr/include/md/_beos.h (revision 7) -+++ nsprpub/pr/include/md/_beos.h (working copy) -@@ -20,6 +20,7 @@ - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or -@@ -38,19 +39,18 @@ - #ifndef nspr_beos_defs_h___ - #define nspr_beos_defs_h___ - --#include "prtypes.h" --#include "prio.h" --#include "prthread.h" --#include "prproces.h" --#include "prmem.h" --#include "obsolete/prsem.h" - #include -- --#include --#include - #include -+#include - - /* -+ * Hack for Cross compile -+ */ -+#define FD_SETSIZE 1024 -+ -+#undef bool -+ -+/* - * Internal configuration macros - */ - -@@ -67,37 +67,39 @@ - #endif - #define PR_DLL_SUFFIX ".so" - --#define _PR_VMBASE 0x30000000 --#define _PR_STACK_VMBASE 0x50000000 - #define _MD_DEFAULT_STACK_SIZE 65536L --#define _MD_MMAP_FLAGS MAP_PRIVATE - - #undef HAVE_STACK_GROWING_UP - #define HAVE_DLL --#define _PR_NO_CLOCK_TIMER - - /* - * The Atomic operations - */ - - #define _PR_HAVE_ATOMIC_OPS -+#ifdef __powerpc__ - #define _MD_INIT_ATOMIC _MD_AtomicInit -+#else -+#define _MD_INIT_ATOMIC() -+#endif - #define _MD_ATOMIC_INCREMENT _MD_AtomicIncrement - #define _MD_ATOMIC_ADD _MD_AtomicAdd - #define _MD_ATOMIC_DECREMENT _MD_AtomicDecrement - #define _MD_ATOMIC_SET _MD_AtomicSet - -+/* Makes sure to don't create cvar when creating sem */ - #define HAVE_CVAR_BUILT_ON_SEM -+ -+/* Not sure this is needed, but no harm. */ - #define _PR_GLOBAL_THREADS_ONLY -+ - #define _PR_BTHREADS --#define _PR_NEED_FAKE_POLL --#define _PR_HAVE_PEEK_BUFFER --#define _PR_PEEK_BUFFER_MAX (16 * 1024) --#define _PR_FD_NEED_EMULATE_MSG_PEEK(fd) 1 --#define _PR_CONNECT_DOES_NOT_BIND -+ - #define _PR_HAVE_O_APPEND - --/* Define threading functions and objects as native BeOS */ -+/* Define threading functions and objects as native BeOS -+ Used by bthreads. */ -+ - struct _MDThread { - thread_id tid; /* BeOS thread handle */ - sem_id joinSem; /* sems used to synchronzie joining */ -@@ -105,56 +107,16 @@ - join this thread */ - }; - --struct _MDThreadStack { -- PRInt8 notused; --}; -- - /* -- * Lock and Semaphore related definitions -- */ -- --struct _MDLock { -- sem_id semaphoreID; -- int32 benaphoreCount; --}; -- --struct _MDCVar { -- sem_id sem1; -- sem_id sem2; -- int16 count; --}; -- --struct _MDSemaphore { -- sem_id sid; --}; -- --/* --** CPU-related definitions --*/ --struct _MDCPU { -- int8 unused; --}; -- --/* - ** Process-related definitions - */ - struct _MDProcess { - pid_t pid; - }; - --struct _MDSegment { -- PRInt8 notused; --}; -- - /* - ** File- and directory-related definitions - */ -- --#ifndef BONE_VERSION --#define BE_SOCK_SHUTDOWN_READ 0x01 --#define BE_SOCK_SHUTDOWN_WRITE 0x02 --#endif -- - struct _MDFileDesc { - PRInt32 osfd; - PRInt32 sock_state; -@@ -178,27 +140,21 @@ - - #define GETTIMEOFDAY(tp) gettimeofday((tp), NULL) - --/* --- Memory-mapped files stuff --- not implemented on BeOS */ - --struct _MDFileMap { -- PRInt8 unused; --}; -- - /* - * Network related definitions. - */ - - #ifndef BONE_VERSION -+#define BE_SOCK_SHUTDOWN_READ 0x01 -+#define BE_SOCK_SHUTDOWN_WRITE 0x02 -+ - #define IPPROTO_IP 0 - #define AF_UNIX 2 - #define TCP_NODELAY SO_NONBLOCK - #define SO_LINGER -1 - #define SO_ERROR 4 --#endif - --#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 -- --#ifndef BONE_VERSION - /* these aren't actually used. if they are, we're screwed */ - struct protoent { - char *p_name; /* official protocol name */ -@@ -210,169 +166,58 @@ - struct protoent* getprotobynumber(int number); - #endif - -+/* Used by bnet.c */ -+#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5 -+ - /* - * malloc() related definitions. -+ * Avoids prmalloc.c's and prmem's code - */ -- - #undef _PR_OVERRIDE_MALLOC - - /* Miscellaneous */ - - #define _MD_ERRNO() (errno) - --#define _MD_CLEANUP_BEFORE_EXIT _MD_cleanup_before_exit --#define _MD_EXIT _MD_exit -+#define _MD_CLEANUP_BEFORE_EXIT() -+#define _MD_EXIT exit - - #define _MD_GET_ENV getenv - #define _MD_PUT_ENV putenv - --#define _MD_EARLY_INIT _MD_early_init --#define _MD_FINAL_INIT _MD_final_init -+#define _MD_EARLY_INIT() -+#ifdef BONE_VERSION -+#define _MD_FINAL_INIT() -+#else -+#define _MD_FINAL_INIT _MD_final_init_netserver -+#endif - --/* CPU Stuff */ -- --#define _MD_INIT_CPUS _MD_init_cpus --#define _MD_WAKEUP_CPUS _MD_wakeup_cpus --#define _MD_START_INTERRUPTS _MD_start_interrupts --#define _MD_STOP_INTERRUPTS _MD_stop_interrupts --#define _MD_DISABLE_CLOCK_INTERRUPTS _MD_disable_clock_interrupts --#define _MD_BLOCK_CLOCK_INTERRUPTS _MD_block_clock_interrupts --#define _MD_UNBLOCK_CLOCK_INTERRUPTS _MD_unblock_clock_interrupts --#define _MD_CLOCK_INTERRUPT _MD_clock_interrupt --#define _MD_INIT_STACK _MD_init_stack --#define _MD_CLEAR_STACK _MD_clear_stack --// #define _MD_GET_INTSOFF _MD_get_intsoff --// #define _MD_SET_INTSOFF _MD_set_intsoff --#define _MD_CURRENT_CPU _MD_current_cpu --#define _MD_SET_CURRENT_CPU _MD_set_current_cpu --#define _MD_INIT_RUNNING_CPU _MD_init_running_cpu --#define _MD_PAUSE_CPU _MD_pause_cpu -- - /* Thread stuff */ - - #define _MD_CURRENT_THREAD() PR_GetCurrentThread() --// #define _MD_GET_ATTACHED_THREAD _MD_get_attached_thread --#define _MD_LAST_THREAD _MD_last_thread --#define _MD_SET_CURRENT_THREAD _MD_set_current_THREAD --#define _MD_SET_LAST_THREAD _MD_set_last_thread --#define _MD_INIT_THREAD _MD_init_thread --#define _MD_EXIT_THREAD _MD_exit_thread --#define _MD_INIT_ATTACHED_THREAD _MD_init_attached_thread - --#define _MD_SUSPEND_THREAD _MD_suspend_thread --#define _MD_RESUME_THREAD _MD_resume_thread --#define _MD_SUSPEND_CPU _MD_suspend_cpu --#define _MD_RESUME_CPU _MD_resume_cpu --#define _MD_BEGIN_SUSPEND_ALL _MD_begin_suspend_all --#define _MD_END_SUSPEND_ALL _MD_end_suspend_all --#define _MD_BEGIN_RESUME_ALL _MD_begin_resume_all --#define _MD_END_RESUME_ALL _MD_end_resume_all - --#define _MD_GET_SP _MD_get_sp -- --#define _MD_CLEAN_THREAD _MD_clean_thread --#define _MD_CREATE_PRIMORDIAL_USER_THREAD _MD_create_primordial_user_thread --#define _MD_CREATE_USER_THREAD _MD_create_user_thread --#define _MD_INIT_PRIMORDIAL_THREAD _MD_init_primordial_thread --#define _MD_CREATE_THREAD _MD_create_thread --#define _MD_YIELD _MD_yield --#define _MD_SET_PRIORITY _MD_set_priority -- --#define _MD_SUSPENDALL _MD_suspendall --#define _MD_RESUMEALL _MD_resumeall -- --#define _MD_SWITCH_CONTEXT _MD_switch_context --#define _MD_RESTORE_CONTEXT _MD_restore_context -- --#define _MD_WAIT _MD_wait --#define _MD_WAKEUP_WAITER _MD_wakeup_waiter -- --#define _MD_SETTHREADAFFINITYMASK _MD_setthreadaffinitymask --#define _MD_GETTHREADAFFINITYMASK _MD_getthreadaffinitymask -- --/* Thread Synchronization */ -- --#define _MD_INIT_LOCKS _MD_init_locks --#define _MD_NEW_LOCK _MD_new_lock --#define _MD_FREE_LOCK _MD_free_lock --#define _MD_LOCK _MD_lock --#define _MD_TEST_AND_LOCK _MD_test_and_lock --#define _MD_UNLOCK _MD_unlock --#define _MD_IOQ_LOCK _MD_ioq_lock --#define _MD_IOQ_UNLOCK _MD_ioq_unlock --#define _MD_NEW_SEM _MD_new_sem --#define _MD_DESTROY_SEM _MD_destroy_sem --#define _MD_TIMED_WAIT_SEM _MD_timed_wait_sem --#define _MD_WAIT_SEM _MD_wait_sem --#define _MD_POST_SEM _MD_post_sem --// #define _MD_NEW_CV _MD_new_cv --// #define _MD_FREE_CV _MD_free_cv --// #define _MD_WAIT_CV _MD_wait_cv --// #define _MD_NOTIFY_CV _MD_notify_cv --// #define _MD_NOTIFYALL_CV _MD_notifyall_cv -- - /* File I/O */ - --/* don't need any I/O initializations */ --#define _MD_INIT_IO() --#define _MD_INIT_FILEDESC(fd) -+#define _PR_MD_WRITE - --#define _MD_OPEN_DIR _MD_open_dir --#define _MD_READ_DIR _MD_read_dir --#define _MD_CLOSE_DIR _MD_close_dir --#define _MD_MAKE_NONBLOCK _MD_make_nonblock --#define _MD_SET_FD_INHERITABLE _MD_set_fd_inheritable --#define _MD_INIT_FD_INHERITABLE _MD_init_fd_inheritable --#define _MD_QUERY_FD_INHERITABLE _MD_query_fd_inheritable --#define _MD_OPEN _MD_open --#define _MD_OPEN_FILE _MD_open --#define _MD_CLOSE_FILE _MD_close_file --#define _MD_READ _MD_read --#define _MD_WRITE _MD_write --#define _MD_WRITEV _MD_writev -+/* -+These are defined in primpl.h so that they are avail for all, but we -+have no calls, and pthreads doesn't either. - #define _MD_LSEEK _MD_lseek - #define _MD_LSEEK64 _MD_lseek64 --#define _MD_FSYNC _MD_fsync --#define _MD_DELETE _MD_delete -+ - #define _MD_GETFILEINFO _MD_getfileinfo - #define _MD_GETFILEINFO64 _MD_getfileinfo64 - #define _MD_GETOPENFILEINFO _MD_getopenfileinfo - #define _MD_GETOPENFILEINFO64 _MD_getopenfileinfo64 --#define _MD_RENAME _MD_rename --#define _MD_ACCESS _MD_access --#define _MD_STAT stat --#define _MD_MKDIR _MD_mkdir --#define _MD_MAKE_DIR _MD_mkdir --#define _MD_RMDIR _MD_rmdir --#define _MD_PR_POLL _MD_pr_poll -+*/ - - /* Network I/O */ - --#define _MD_CLOSE_SOCKET _MD_close_socket --#define _MD_CONNECT _MD_connect --#define _MD_ACCEPT _MD_accept --#define _MD_BIND _MD_bind --#define _MD_LISTEN _MD_listen --#define _MD_SHUTDOWN _MD_shutdown --#define _MD_RECV _MD_recv --#define _MD_SEND _MD_send --#define _MD_ACCEPT_READ _MD_accept_read --#define _MD_GETSOCKNAME _MD_getsockname --#define _MD_GETPEERNAME _MD_getpeername --#define _MD_GETSOCKOPT _MD_getsockopt --#define _MD_SETSOCKOPT _MD_setsockopt --#define _MD_RECVFROM _MD_recvfrom --#define _MD_SENDTO _MD_sendto --#define _MD_SOCKETPAIR _MD_socketpair --#define _MD_SOCKET _MD_socket --#define _MD_SOCKETAVAILABLE _MD_socketavailable --#define _MD_PIPEAVAILABLE _MD_socketavailable -- - #define _MD_GET_SOCKET_ERROR() (errno) - #define _MD_GETHOSTNAME _MD_gethostname - --#define _MD_SELECT select -- - /* Process management */ - - #define _MD_CREATE_PROCESS _MD_create_process -@@ -380,19 +225,6 @@ - #define _MD_WAIT_PROCESS _MD_wait_process - #define _MD_KILL_PROCESS _MD_kill_process - --/* Atomic data operations */ -- --// #define _MD_INIT_ATOMIC _MD_init_atomic --// #define _MD_ATOMIC_INCREMENT _MD_atomic_increment --// #define _MD_ATOMIC_DECREMENT _MD_atomic_decrement --// #define _MD_ATOMIC_SET _MD_atomic_set -- --/* memory management */ -- --#define _MD_INIT_SEGS _MD_init_segs --#define _MD_ALLOC_SEGMENT _MD_alloc_segment --#define _MD_FREE_SEGMENT _MD_free_segment -- - /* Memory mapped file I/O */ - - #define _MD_CREATE_FILE_MAP _MD_create_file_map -@@ -403,8 +235,7 @@ - - /* Time related */ - --#define _MD_NOW _MD_now --#define _MD_INTERVAL_INIT _MD_interval_init -+#define _MD_INTERVAL_INIT() - #define _MD_GET_INTERVAL _MD_get_interval - #define _MD_INTERVAL_PER_SEC _MD_interval_per_sec - -@@ -414,200 +245,4 @@ - #define _MD_TLOCKFILE _MD_tlockfile - #define _MD_UNLOCKFILE _MD_unlockfile - --/** -- * Prototypes for machine dependent function implementations. (Too bad -- * NSPR's MD system blows so much that we have to reiterate every stinking -- * thing we implement here in our MD header file.) -- */ -- --/* Miscellaneous */ -- --NSPR_API(void) _MD_cleanup_before_exit(void); --NSPR_API(void) _MD_exit(PRIntn status); -- --NSPR_API(char*) _MD_get_env(const char *name); --NSPR_API(PRIntn) _MD_put_env(const char *name); -- --NSPR_API(void) _MD_early_init(void); --NSPR_API(void) _MD_final_init(void); -- --/* CPU Stuff */ -- --NSPR_API(void) _MD_init_cpus(); --NSPR_API(void) _MD_wakeup_cpus(); --NSPR_API(void) _MD_start_interrupts(void); --NSPR_API(void) _MD_stop_interrupts(void); --NSPR_API(void) _MD_disable_clock_interrupts(void); --NSPR_API(void) _MD_block_clock_interrupts(void); --NSPR_API(void) _MD_unblock_clock_interrupts(void); --NSPR_API(void) _MD_clock_interrupt(void); --// NSPR_API(void) _MD_init_stack(PRThreadStack *ts, PRIntn redzone); --// NSPR_API(void) _MD_clear_stack(PRThreadStack* ts); --// NSPR_API(PRInt32) _MD_get_intsoff(void); --// NSPR_API(void) _MD_set_intsoff(PRInt32 _val); --// NSPR_API(_PRCPU*) _MD_current_cpu(void); --// NSPR_API(void) _MD_set_current_cpu(_PRCPU *cpu); --// NSPR_API(void) _MD_init_running_cpu(_PRCPU *cpu); --NSPR_API(PRInt32) _MD_pause_cpu(PRIntervalTime timeout); -- --/* Thread stuff */ -- --// NSPR_API(PRThread*) _MD_current_thread(void); --NSPR_API(PRThread*) _MD_get_attached_thread(void); --NSPR_API(PRThread*) _MD_last_thread(void); --NSPR_API(void) _MD_set_current_thread(PRThread *thread); --NSPR_API(void) _MD_set_last_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_init_thread(PRThread *thread); --NSPR_API(void) _MD_exit_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_init_attached_thread(PRThread *thread); -- --NSPR_API(void) _MD_suspend_thread(PRThread *thread); --NSPR_API(void) _MD_resume_thread(PRThread *thread); --// NSPR_API(void) _MD_suspend_cpu(_PRCPU *cpu); --// NSPR_API(void) _MD_resume_cpu(_PRCPU *cpu); --NSPR_API(void) _MD_begin_suspend_all(void); --NSPR_API(void) _MD_end_suspend_all(void); --NSPR_API(void) _MD_begin_resume_all(void); --NSPR_API(void) _MD_end_resume_all(void); -- --NSPR_API(void *) _MD_get_sp(PRThread *thread); -- --NSPR_API(void) _MD_clean_thread(PRThread *thread); --NSPR_API(void) _MD_create_primordial_user_thread(PRThread *); --NSPR_API(PRThread*) _MD_create_user_thread(PRUint32 stacksize, void (*start)(void *), void *arg); --NSPR_API(void) _MD_init_primordial_thread(PRThread *thread); --NSPR_API(PRStatus) _MD_create_thread(PRThread *thread, void (*start)(void *), PRThreadPriority priority, PRThreadScope scope, PRThreadState state, PRUint32 stackSize); --NSPR_API(void) _MD_yield(void); --NSPR_API(void) _MD_set_priority(struct _MDThread *md, PRThreadPriority newPri); -- --NSPR_API(void) _MD_suspendall(void); --NSPR_API(void) _MD_resumeall(void); -- --NSPR_API(void) _MD_init_context(PRThread *thread, char *top, void (*start) (void), PRBool *status); --NSPR_API(void) _MD_switch_context(PRThread *thread); --NSPR_API(void) _MD_restore_context(PRThread *thread); -- --NSPR_API(PRStatus) _MD_wait(PRThread *, PRIntervalTime timeout); --NSPR_API(PRStatus) _MD_wakeup_waiter(PRThread *); -- --NSPR_API(PRInt32) _MD_setthreadaffinitymask(PRThread *thread, PRUint32 mask ); --NSPR_API(PRInt32) _MD_getthreadaffinitymask(PRThread *thread, PRUint32 *mask); -- --/* Thread Synchronization */ -- --NSPR_API(void) _MD_init_locks(void); --NSPR_API(PRStatus) _MD_new_lock(struct _MDLock *md); --NSPR_API(void) _MD_free_lock(struct _MDLock *md); --NSPR_API(void) _MD_lock(struct _MDLock *md); --NSPR_API(PRIntn) _MD_test_and_lock(struct _MDLock *md); --NSPR_API(void) _MD_unlock(struct _MDLock *md); --NSPR_API(void) _MD_ioq_lock(void); --NSPR_API(void) _MD_ioq_unlock(void); --NSPR_API(void) _MD_new_sem(struct _MDSemaphore *md, PRUintn value); --NSPR_API(void) _MD_destroy_sem(struct _MDSemaphore *md); --NSPR_API(PRStatus) _MD_timed_wait_sem(struct _MDSemaphore *md, PRIntervalTime timeout); --NSPR_API(PRStatus) _MD_wait_sem(struct _MDSemaphore *md); --NSPR_API(void) _MD_post_sem(struct _MDSemaphore *md); --// NSPR_API(PRInt32) _MD_new_cv(struct _MDCVar *md); --// NSPR_API(void) _MD_free_cv(struct _MDCVar *md); --// NSPR_API(void) _MD_wait_cv(struct _MDCVar *mdCVar, struct _MDLock *mdLock, PRIntervalTime timeout); --// NSPR_API(void) _MD_notify_cv(struct _MDCVar *md, struct _MDLock *lock); --// NSPR_API(void) _MD_notifyall_cv(struct _MDCVar *md, struct _MDLock *lock); -- --/* File I/O */ -- --// NSPR_API(void) _MD_init_io(void); --NSPR_API(PRStatus) _MD_open_dir(struct _MDDir *md,const char *name); --NSPR_API(char *) _MD_read_dir(struct _MDDir *md, PRIntn flags); --NSPR_API(PRInt32) _MD_close_dir(struct _MDDir *md); --NSPR_API(void) _MD_make_nonblock(PRFileDesc *fd); --NSPR_API(void) _MD_init_fd_inheritable(PRFileDesc *fd, PRBool imported); --NSPR_API(void) _MD_query_fd_inheritable(PRFileDesc *fd); --NSPR_API(PRInt32) _MD_open(const char *name, PRIntn osflags, PRIntn mode); --NSPR_API(PRInt32) _MD_close_file(PRInt32 osfd); --NSPR_API(PRInt32) _MD_read(PRFileDesc *fd, void *buf, PRInt32 amount); --NSPR_API(PRInt32) _MD_write(PRFileDesc *fd, const void *buf, PRInt32 amount); --NSPR_API(PRInt32) _MD_writev(PRFileDesc *fd, const PRIOVec *iov, PRInt32 iov_size, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_lseek(PRFileDesc *fd, PRInt32 offset, int whence); --NSPR_API(PRInt64) _MD_lseek64(PRFileDesc *fd, PRInt64 offset, int whence); --NSPR_API(PRInt32) _MD_fsync(PRFileDesc *fd); --NSPR_API(PRInt32) _MD_delete(const char *name); --NSPR_API(PRInt32) _MD_getfileinfo(const char *fn, PRFileInfo *info); --NSPR_API(PRInt32) _MD_getfileinfo64(const char *fn, PRFileInfo64 *info); --NSPR_API(PRInt32) _MD_getopenfileinfo(const PRFileDesc *fd, PRFileInfo *info); --NSPR_API(PRInt32) _MD_getopenfileinfo64(const PRFileDesc *fd, PRFileInfo64 *info); --NSPR_API(PRInt32) _MD_rename(const char *from, const char *to); --NSPR_API(PRInt32) _MD_access(const char *name, PRIntn how); --NSPR_API(PRInt32) _MD_stat(const char *name, struct stat *buf); --NSPR_API(PRInt32) _MD_mkdir(const char *name, PRIntn mode); --NSPR_API(PRInt32) _MD_rmdir(const char *name); --NSPR_API(PRInt32) _MD_pr_poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout); -- --/* Network I/O */ --NSPR_API(PRInt32) _MD_close_socket(PRInt32 osfd); --NSPR_API(PRInt32) _MD_connect(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_bind(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen); --NSPR_API(PRInt32) _MD_listen(PRFileDesc *fd, PRIntn backlog); --NSPR_API(PRInt32) _MD_shutdown(PRFileDesc *fd, PRIntn how); --NSPR_API(PRInt32) _MD_recv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_send(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_accept_read(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime timeout); --// NSPR_API(PRInt32) _MD_fast_accept(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout, PRBool fast, _PR_AcceptTimeoutCallback callback, void *callbackArg); --// NSPR_API(PRInt32) _MD_fast_accept_read(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime timeout, PRBool fast, _PR_AcceptTimeoutCallback callback, void *callbackArg); --// NSPR_API(void) _MD_update_accept_context(PRInt32 s, PRInt32 ls); --NSPR_API(PRStatus) _MD_getsockname(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen); --NSPR_API(PRStatus) _MD_getpeername(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen); --NSPR_API(PRStatus) _MD_getsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, char* optval, PRInt32* optlen); --NSPR_API(PRStatus) _MD_setsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, const char* optval, PRInt32 optlen); --NSPR_API(PRInt32) _MD_recvfrom(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_sendto(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout); --NSPR_API(PRInt32) _MD_socketpair(int af, int type, int flags, PRInt32 *osfd); --NSPR_API(PRInt32) _MD_socket(int af, int type, int flags); --NSPR_API(PRInt32) _MD_socketavailable(PRFileDesc *fd); -- --// NSPR_API(PRInt32) _MD_get_socket_error(void); --NSPR_API(PRStatus) _MD_gethostname(char *name, PRUint32 namelen); -- --/* Process management */ -- --NSPR_API(PRProcess *) _MD_create_process(const char *path, char *const *argv, char *const *envp, const PRProcessAttr *attr); --NSPR_API(PRStatus) _MD_detach_process(PRProcess *process); --NSPR_API(PRStatus) _MD_wait_process(PRProcess *process, PRInt32 *exitCode); --NSPR_API(PRStatus) _MD_kill_process(PRProcess *process); -- --/* Atomic data operations */ -- --// NSPR_API(void) _MD_init_atomic(void); --// NSPR_API(PRInt32) _MD_atomic_increment(PRInt32 *); --// NSPR_API(PRInt32) _MD_atomic_decrement(PRInt32 *); --// NSPR_API(PRInt32) _MD_atomic_set(PRInt32 *, PRInt32); -- --/* Memory management */ -- --NSPR_API(void) _MD_init_segs(void); --NSPR_API(PRStatus) _MD_alloc_segment(PRSegment *seg, PRUint32 size, void *vaddr); --NSPR_API(void) _MD_free_segment(PRSegment *seg); -- --/* Memory mapped file I/O */ -- --NSPR_API(PRStatus) _MD_create_file_map(PRFileMap *fmap, PRInt64 size); --NSPR_API(PRInt32) _MD_get_mem_map_alignment(void); --NSPR_API(void *) _MD_mem_map(PRFileMap *fmap, PRInt64 offset, PRUint32 len); --NSPR_API(PRStatus) _MD_mem_unmap(void *addr, PRUint32 size); --NSPR_API(PRStatus) _MD_close_file_map(PRFileMap *fmap); -- --/* Time related */ -- --NSPR_API(PRTime) _MD_now(void); --NSPR_API(void) _MD_interval_init(void); --NSPR_API(PRIntervalTime) _MD_get_interval(void); --NSPR_API(PRIntervalTime) _MD_interval_per_sec(void); -- --/* File locking */ -- --NSPR_API(PRStatus) _MD_lockfile(PRInt32 osfd); --NSPR_API(PRStatus) _MD_tlockfile(PRInt32 osfd); --NSPR_API(PRStatus) _MD_unlockfile(PRInt32 osfd); -- - #endif /* _nspr_beos_defs_h___*/ -Index: nsprpub/pr/include/private/primpl.h -=================================================================== ---- nsprpub/pr/include/private/primpl.h (revision 7) -+++ nsprpub/pr/include/private/primpl.h (working copy) -@@ -50,10 +50,6 @@ - #include - #endif - --#if defined(_PR_BTHREADS) --#include --#endif -- - #ifdef WINNT - /* Need to force service-pack 3 extensions to be defined by - ** setting _WIN32_WINNT to NT 4.0 for winsock.h, winbase.h, winnt.h. -@@ -228,6 +224,20 @@ - - #else /* defined(_PR_PTHREADS) */ - -+#ifdef _PR_BTHREADS -+#define _MD_GET_ATTACHED_THREAD() (_PR_MD_CURRENT_THREAD()) -+ -+#define _PR_IS_NATIVE_THREAD(thread) 1 -+#define _PR_IS_NATIVE_THREAD_SUPPORTED() 1 -+/* -+extern PRInt32 _PR_MD_WRITE(PRFileDesc *fd, const void *buf, PRInt32 amount); -+#define _PR_MD_WRITE _MD_WRITE -+*/ -+NSPR_API(PRThread*) _PR_MD_CURRENT_THREAD(void); -+#define _PR_MD_CURRENT_THREAD _MD_CURRENT_THREAD -+ -+#else /* defined(_PR_BTHREADS) */ -+ - NSPR_API(void) PT_FPrintStats(PRFileDesc *fd, const char *msg); - - /* -@@ -1301,6 +1311,7 @@ - extern void *_PR_MD_GET_SP(PRThread *thread); - #define _PR_MD_GET_SP _MD_GET_SP - -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - - /************************************************************************/ -@@ -1555,7 +1566,10 @@ - - #if defined(_PR_PTHREADS) - #else /* defined(_PR_PTHREADS) */ -+#if defined(_PR_BTHREADS) -+#else /* defined(_PR_BTHREADS) */ - _MDThreadStack md; -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - }; - -@@ -1608,9 +1622,6 @@ - #elif defined(_PR_BTHREADS) - PRUint32 flags; - _MDThread md; -- PRBool io_pending; -- PRInt32 io_fd; -- PRBool io_suspended; - #else /* not pthreads or Be threads */ - _MDLock threadLock; /* Lock to protect thread state variables. - * Protects the following fields: -@@ -1694,7 +1705,9 @@ - struct PRFileMap { - PRFileDesc *fd; - PRFileMapProtect prot; -+#if !defined(XP_BEOS) - _MDFileMap md; -+#endif /* !defined(XP_BEOS) */ - }; - - /************************************************************************/ -@@ -1777,8 +1790,10 @@ - #endif /* MOZ_UNICODE */ - - extern void _PR_InitSegs(void); -+#if !defined(_PR_BTHREADS) - extern void _PR_InitStacks(void); - extern void _PR_InitTPD(void); -+#endif /* !defined(_PR_BTHREADS) */ - extern void _PR_InitMem(void); - extern void _PR_InitEnv(void); - extern void _PR_InitCMon(void); -@@ -1830,7 +1845,10 @@ - PRUintn flags; - #if defined(_PR_PTHREADS) - #else /* defined(_PR_PTHREADS) */ -+#if defined(_PR_BTHREADS) -+#else /* defined(_PR_BTHREADS) */ - _MDSegment md; -+#endif /* defined(_PR_BTHREADS) */ - #endif /* defined(_PR_PTHREADS) */ - }; - -@@ -2127,7 +2145,7 @@ - - /* end PR_GetRandomNoise() related */ - --#ifdef XP_BEOS -+#if defined(XP_BEOS) && !defined(BONE_VERSION) - - extern PRLock *_connectLock; - -@@ -2142,7 +2160,7 @@ - - extern PRUint32 connectCount; - --#endif /* XP_BEOS */ -+#endif /* XP_BEOS && !BONE_VERSION */ - - PR_END_EXTERN_C - -Index: nsprpub/pr/src/Makefile.in -=================================================================== ---- nsprpub/pr/src/Makefile.in (revision 7) -+++ nsprpub/pr/src/Makefile.in (working copy) -@@ -281,15 +281,13 @@ - pthreads/$(OBJDIR)/ptthread.$(OBJ_SUFFIX) \ - pthreads/$(OBJDIR)/ptmisc.$(OBJ_SUFFIX) - else -+ifndef USE_BTHREADS - OBJS += \ - io/$(OBJDIR)/prdir.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prfile.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prio.$(OBJ_SUFFIX) \ - io/$(OBJDIR)/prsocket.$(OBJ_SUFFIX) \ -- misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) -- --ifndef USE_BTHREADS --OBJS += \ -+ misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prcthr.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prdump.$(OBJ_SUFFIX) \ - threads/$(OBJDIR)/prmon.$(OBJ_SUFFIX) \ -@@ -300,7 +298,6 @@ - threads/combined/$(OBJDIR)/prustack.$(OBJ_SUFFIX) \ - threads/combined/$(OBJDIR)/pruthr.$(OBJ_SUFFIX) - endif -- - endif - - ifeq ($(USE_CPLUS), 1) -Index: nsprpub/pr/src/misc/Makefile.in -=================================================================== ---- nsprpub/pr/src/misc/Makefile.in (revision 7) -+++ nsprpub/pr/src/misc/Makefile.in (working copy) -@@ -71,10 +71,12 @@ - $(NULL) - - ifndef USE_PTHREADS -+ifndef USE_BTHREADS - CSRCS += \ - pripcsem.c \ - $(NULL) - endif -+endif - - TARGETS = $(OBJS) - -Index: nsprpub/pr/src/misc/prinit.c -=================================================================== ---- nsprpub/pr/src/misc/prinit.c (revision 7) -+++ nsprpub/pr/src/misc/prinit.c (working copy) -@@ -196,8 +196,10 @@ - _PR_InitLocks(); - _PR_InitAtomic(); - _PR_InitSegs(); -+#if !defined(_PR_BTHREADS) - _PR_InitStacks(); - _PR_InitTPD(); -+#endif /*!defined(_PR_BTHREADS) */ - _PR_InitEnv(); - _PR_InitLayerCache(); - _PR_InitClock(); -Index: nsprpub/pr/src/misc/pripcsem.c -=================================================================== ---- nsprpub/pr/src/misc/pripcsem.c (revision 7) -+++ nsprpub/pr/src/misc/pripcsem.c (working copy) -@@ -46,9 +46,9 @@ - - #include "primpl.h" - --#ifdef _PR_PTHREADS -+#if defined(_PR_PTHREADS) || defined(_PR_BTHREADS) - --#error "This file should not be compiled for the pthreads version" -+#error "This file should not be compiled for the pthreads or bthreads version" - - #else - -@@ -127,4 +127,4 @@ - return _PR_MD_DELETE_SEMAPHORE(osname); - } - --#endif /* _PR_PTHREADS */ -+#endif /* _PR_PTHREADS || _PR_BTHREADS */ -Index: nsprpub/pr/src/linking/prlink.c -=================================================================== ---- nsprpub/pr/src/linking/prlink.c (revision 7) -+++ nsprpub/pr/src/linking/prlink.c (working copy) -@@ -199,8 +199,10 @@ - - #ifdef XP_BEOS - void* dlh; -+#ifndef XP_HAIKU - void* stub_dlh; - #endif -+#endif - }; - - static PRLibrary *pr_loadmap; -@@ -863,6 +865,19 @@ - result = pr_UnlockedFindLibrary(name); - #endif - -+#ifdef XP_BEOS -+ /* Havn't seen this happen so far, but it doesn't slow anything -+ down so let's keep it */ -+ for (result = pr_loadmap; result != NULL; result = result->next) { -+ /* hopefully, our caller will always use the same string -+ to refer to the same library */ -+ if (strcmp(name, result->name) == 0) { -+ result->refCount++; -+ break; -+ } -+ } -+#endif -+ - if (result != NULL) goto unlock; - - lm = PR_NEWZAP(PRLibrary); -@@ -1020,29 +1035,14 @@ - #endif /* HAVE_DLL */ - #endif /* XP_UNIX */ - -- lm->refCount = 1; -- - #ifdef XP_BEOS -- { -- image_info info; -- int32 cookie = 0; -+ { /* Code block to allow variable inits. :/ */ -+ /* it appears the library isn't yet loaded - load it now */ -+#ifdef XP_HAIKU -+ image_id imageid = load_add_on(name); -+#else - image_id imageid = B_ERROR; - image_id stubid = B_ERROR; -- PRLibrary *p; -- -- for (p = pr_loadmap; p != NULL; p = p->next) { -- /* hopefully, our caller will always use the same string -- to refer to the same library */ -- if (strcmp(name, p->name) == 0) { -- /* we've already loaded this library */ -- imageid = info.id; -- lm->refCount++; -- break; -- } -- } -- -- if(imageid == B_ERROR) { -- /* it appears the library isn't yet loaded - load it now */ - char stubName [B_PATH_NAME_LENGTH + 1]; - - /* the following is a work-around to a "bug" in the beos - -@@ -1069,36 +1069,37 @@ - /* first, attempt to load the stub (thereby loading the - component as a shared library */ - if ((stubid = load_add_on(stubName)) > B_ERROR) { -+ -+ const char *endOfPassedName = strrchr(name, '/'); -+ image_info info; -+ int32 cookie = 0; -+ - /* the stub was loaded successfully. */ - imageid = B_FILE_NOT_FOUND; -+ if( 0 == endOfPassedName ) -+ endOfPassedName = name; -+ else -+ endOfPassedName++; - -- cookie = 0; - while (get_next_image_info(0, &cookie, &info) == B_OK) { - const char *endOfSystemName = strrchr(info.name, '/'); -- const char *endOfPassedName = strrchr(name, '/'); - if( 0 == endOfSystemName ) - endOfSystemName = info.name; - else - endOfSystemName++; -- if( 0 == endOfPassedName ) -- endOfPassedName = name; -- else -- endOfPassedName++; - if (strcmp(endOfSystemName, endOfPassedName) == 0) { - /* this is the actual component - remember it */ - imageid = info.id; - break; - } - } -- - } else { - /* we failed to load the "stub" - try to load the - component directly as an add-on */ - stubid = B_ERROR; - imageid = load_add_on(name); - } -- } -- -+#endif /* XP_HAIKU */ - if (imageid <= B_ERROR) { - oserr = imageid; - PR_DELETE( lm ); -@@ -1106,12 +1107,15 @@ - } - lm->name = strdup(name); - lm->dlh = (void*)imageid; -+#ifndef XP_HAIKU - lm->stub_dlh = (void*)stubid; -+#endif - lm->next = pr_loadmap; - pr_loadmap = lm; - } --#endif -+#endif /* XP_BEOS */ - -+ lm->refCount = 1; - result = lm; /* success */ - PR_LOG(_pr_linker_lm, PR_LOG_MIN, ("Loaded library %s (load lib)", lm->name)); - -@@ -1272,11 +1276,15 @@ - } - - #ifdef XP_BEOS -+#ifdef XP_HAIKU -+ unload_add_on( (image_id) lib->dlh ); -+#else - if(((image_id)lib->stub_dlh) == B_ERROR) - unload_add_on( (image_id) lib->dlh ); - else - unload_add_on( (image_id) lib->stub_dlh); --#endif -+#endif /* XP_HAIKU */ -+#endif /* XP_BEOS */ - - #ifdef XP_UNIX - #ifdef HAVE_DLL -Index: nsprpub/pr/src/bthreads/bsrcs.mk -=================================================================== ---- nsprpub/pr/src/bthreads/bsrcs.mk (revision 7) -+++ nsprpub/pr/src/bthreads/bsrcs.mk (working copy) -@@ -20,6 +20,7 @@ - # the Initial Developer. All Rights Reserved. - # - # Contributor(s): -+# Fredrik Holmqvist - # - # Alternatively, the contents of this file may be used under the terms of - # either the GNU General Public License Version 2 or later (the "GPL"), or -@@ -46,4 +47,6 @@ - btmon.c \ - btsem.c \ - btmisc.c \ -+ btfile.c \ -+ btio.c \ - $(NULL) -Index: nsprpub/pr/src/bthreads/btcvar.c -=================================================================== ---- nsprpub/pr/src/bthreads/btcvar.c (revision 7) -+++ nsprpub/pr/src/bthreads/btcvar.c (working copy) -@@ -20,6 +20,7 @@ - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or -@@ -35,8 +36,6 @@ - * - * ***** END LICENSE BLOCK ***** */ - --#include -- - #include "primpl.h" - - /* -@@ -130,16 +129,16 @@ - return PR_SUCCESS; - } - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount ) > 1 ) - { - if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } - cvar->nw += 1; -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } -@@ -154,7 +153,7 @@ - err = acquire_sem_etc(cvar->sem, 1, B_RELATIVE_TIMEOUT, PR_IntervalToMicroseconds(timeout) ); - } - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount ) > 1 ) - { - while (acquire_sem(cvar->signalSem) == B_INTERRUPTED); - } -@@ -165,18 +164,18 @@ - cvar->ns -= 1; - } - cvar->nw -= 1; -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } - - PR_Lock( cvar->lock ); -- if(err!=B_NO_ERROR) -+ if(err==B_NO_ERROR || (err == B_TIMED_OUT && timeout!=PR_INTERVAL_NO_TIMEOUT)) - { -- return PR_FAILURE; -- } - return PR_SUCCESS; - } -+ return PR_FAILURE; -+} - - /* - ** Notify ONE thread that is currently waiting on 'cvar'. Which thread is -@@ -195,11 +194,11 @@ - PR_NotifyCondVar (PRCondVar *cvar) - { - status_t err ; -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount) > 1 ) - { - if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } -@@ -207,7 +206,7 @@ - { - cvar->ns += 1; - release_sem_etc(cvar->sem, 1, B_DO_NOT_RESCHEDULE); -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } -@@ -219,7 +218,7 @@ - } - else - { -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } -@@ -241,11 +240,11 @@ - int32 handshakes; - status_t err = B_OK; - -- if( atomic_add( &cvar->signalBenCount, 1 ) > 0 ) -+ if( _MD_ATOMIC_INCREMENT( &cvar->signalBenCount) > 1 ) - { - if (acquire_sem(cvar->signalSem) == B_INTERRUPTED) - { -- atomic_add( &cvar->signalBenCount, -1 ); -+ _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ); - return PR_FAILURE; - } - } -@@ -255,7 +254,7 @@ - handshakes = cvar->nw - cvar->ns; - cvar->ns = cvar->nw; - release_sem_etc(cvar->sem, handshakes, B_DO_NOT_RESCHEDULE); -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } -@@ -267,7 +266,7 @@ - } - else - { -- if( atomic_add( &cvar->signalBenCount, -1 ) > 1 ) -+ if( _MD_ATOMIC_DECREMENT( &cvar->signalBenCount ) > 0 ) - { - release_sem_etc(cvar->signalSem, 1, B_DO_NOT_RESCHEDULE); - } -Index: nsprpub/pr/src/bthreads/btlocks.c -=================================================================== ---- nsprpub/pr/src/bthreads/btlocks.c (revision 7) -+++ nsprpub/pr/src/bthreads/btlocks.c (working copy) -@@ -43,9 +43,6 @@ - - #include "primpl.h" - --#include --#include -- - void - _PR_InitLocks (void) - { -@@ -61,16 +58,13 @@ - - lock = PR_NEWZAP(PRLock); - if (lock != NULL) { -- - lock->benaphoreCount = 0; - lock->semaphoreID = create_sem( 0, "nsprLockSem" ); - if( lock->semaphoreID < B_NO_ERROR ) { -- - PR_DELETE( lock ); - lock = NULL; - } - } -- - return lock; - } - -@@ -88,17 +82,18 @@ - PR_IMPLEMENT(void) - PR_Lock (PRLock* lock) - { -+ status_t result; -+ - PR_ASSERT(lock != NULL); - -- if( atomic_add( &lock->benaphoreCount, 1 ) > 0 ) { -- -- if( acquire_sem(lock->semaphoreID ) != B_NO_ERROR ) { -- -- atomic_add( &lock->benaphoreCount, -1 ); -+ if( _MD_ATOMIC_INCREMENT( &lock->benaphoreCount) > 1 ) { -+ result = acquire_sem(lock->semaphoreID ); -+ PR_ASSERT(result == B_NO_ERROR); -+ if( result != B_NO_ERROR ) { -+ _MD_ATOMIC_DECREMENT( &lock->benaphoreCount); - return; - } - } -- - lock->owner = find_thread( NULL ); - } - -@@ -107,8 +102,7 @@ - { - PR_ASSERT(lock != NULL); - lock->owner = NULL; -- if( atomic_add( &lock->benaphoreCount, -1 ) > 1 ) { -- -+ if( _MD_ATOMIC_DECREMENT( &lock->benaphoreCount ) > 0 ) { - release_sem_etc( lock->semaphoreID, 1, B_DO_NOT_RESCHEDULE ); - } - -Index: nsprpub/pr/src/bthreads/btmisc.c -=================================================================== ---- nsprpub/pr/src/bthreads/btmisc.c (revision 7) -+++ nsprpub/pr/src/bthreads/btmisc.c (working copy) -@@ -20,6 +20,7 @@ - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): -+ * Fredrik Holmqvist - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or -@@ -38,11 +39,11 @@ - #include "primpl.h" - #include - --// void _PR_InitCPUs(void) {PT_LOG("_PR_InitCPUs")} --// void _MD_StartInterrupts(void) {PT_LOG("_MD_StartInterrupts")} -- --/* this is a total hack.. */ -- -+/* this is a total hack.. -+ * It's needed for netserver to compile. -+ * See nsprpub/pr/include/prnetdb.h -+ */ -+#ifndef BONE_VERSION - struct protoent* getprotobyname(const char* name) - { - return 0; -@@ -52,51 +53,17 @@ - { - return 0; - } -+#endif - --/* this is needed by prinit for some reason */ --void --_PR_InitStacks (void) --{ --} -- --/* this is needed by prinit for some reason */ --void --_PR_InitTPD (void) --{ --} -- - /* --** Create extra virtual processor threads. Generally used with MP systems. --*/ --PR_IMPLEMENT(void) -- PR_SetConcurrency (PRUintn numCPUs) --{ --} -- --/* --** Set thread recycle mode to on (1) or off (0) --*/ --PR_IMPLEMENT(void) -- PR_SetThreadRecycleMode (PRUint32 flag) --{ --} -- --/* - ** Get context registers, return with error for now. - */ -- - PR_IMPLEMENT(PRWord *) - _MD_HomeGCRegisters( PRThread *t, int isCurrent, int *np ) - { - return 0; - } - --PR_IMPLEMENT(void *) --PR_GetSP( PRThread *t ) --{ -- return 0; --} -- - PR_IMPLEMENT(PRStatus) - PR_EnumerateThreads( PREnumerator func, void *arg ) - { -Index: nsprpub/pr/src/bthreads/btfile.c -=================================================================== ---- nsprpub/pr/src/bthreads/btfile.c (revision 0) -+++ nsprpub/pr/src/bthreads/btfile.c (revision 0) -@@ -0,0 +1,994 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is the Netscape Portable Runtime (NSPR). -+ * -+ * The Initial Developer of the Original Code is -+ * Netscape Communications Corporation. -+ * Portions created by the Initial Developer are Copyright (C) 1998-2000 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * Roy Yokoyama -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "primpl.h" -+ -+static PRLock *_pr_flock_lock; /* For PR_LockFile() etc. */ -+static PRCondVar *_pr_flock_cv; /* For PR_LockFile() etc. */ -+ -+PRErrorCode -+map_default_error(int err) -+{ -+ switch (err) { -+ case EACCES: -+ return PR_NO_ACCESS_RIGHTS_ERROR; -+ case EADDRINUSE: -+ return PR_ADDRESS_IN_USE_ERROR; -+ case EADDRNOTAVAIL: -+ return PR_ADDRESS_NOT_AVAILABLE_ERROR; -+ case EAFNOSUPPORT: -+ return PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ /*Same as EWOULDBLOCK*/ -+ case EAGAIN: -+ return PR_WOULD_BLOCK_ERROR; -+#if EALREADY != EBUSY -+ case EALREADY: -+ return PR_ALREADY_INITIATED_ERROR; -+#endif -+ case EBADF: -+ return PR_BAD_DESCRIPTOR_ERROR; -+ case EBUSY: -+ return PR_FILESYSTEM_MOUNTED_ERROR; -+ case ECONNABORTED: -+ return PR_CONNECT_ABORTED_ERROR; -+ case ECONNREFUSED: -+ return PR_CONNECT_REFUSED_ERROR; -+ case EDEADLK: -+ return PR_DEADLOCK_ERROR; -+ case EEXIST: -+ return PR_FILE_EXISTS_ERROR; -+ case EFAULT: -+ return PR_ACCESS_FAULT_ERROR; -+ case EFBIG: -+ return PR_FILE_TOO_BIG_ERROR; -+ case EHOSTUNREACH: -+ return PR_HOST_UNREACHABLE_ERROR; -+ case EINPROGRESS: -+ return PR_IN_PROGRESS_ERROR; -+ case EINTR: -+ return PR_PENDING_INTERRUPT_ERROR; -+ case EINVAL: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case EIO: -+ return PR_IO_ERROR; -+ case EISCONN: -+ return PR_IS_CONNECTED_ERROR; -+ case EISDIR: -+ return PR_IS_DIRECTORY_ERROR; -+ case ELOOP: -+ return PR_LOOP_ERROR; -+ case EMFILE: -+ return PR_PROC_DESC_TABLE_FULL_ERROR; -+ case EMLINK: -+ return PR_MAX_DIRECTORY_ENTRIES_ERROR; -+ case EMSGSIZE: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case ENAMETOOLONG: -+ return PR_NAME_TOO_LONG_ERROR; -+ case ENETUNREACH: -+ return PR_NETWORK_UNREACHABLE_ERROR; -+ case ENFILE: -+ return PR_SYS_DESC_TABLE_FULL_ERROR; -+ case ENOBUFS: -+ return PR_INSUFFICIENT_RESOURCES_ERROR; -+ case ENODEV: -+ case ENOENT: -+ return PR_FILE_NOT_FOUND_ERROR; -+ case ENOLCK: -+ return PR_FILE_IS_LOCKED_ERROR; -+#if 0 -+ case ENOLINK: -+ return PR_REMOTE_FILE_ERROR; -+#endif -+ case ENOMEM: -+ return PR_OUT_OF_MEMORY_ERROR; -+ case ENOPROTOOPT: -+ return PR_INVALID_ARGUMENT_ERROR; -+ case ENOSPC: -+ return PR_NO_DEVICE_SPACE_ERROR; -+ case ENOTCONN: -+ return PR_NOT_CONNECTED_ERROR; -+ case ENOTDIR: -+ return PR_NOT_DIRECTORY_ERROR; -+ case ENOTSOCK: -+ return PR_NOT_SOCKET_ERROR; -+ case ENXIO: -+ return PR_FILE_NOT_FOUND_ERROR; -+ case EOPNOTSUPP: -+ return PR_NOT_TCP_SOCKET_ERROR; -+ case EOVERFLOW: -+ return PR_BUFFER_OVERFLOW_ERROR; -+ case EPERM: -+ return PR_NO_ACCESS_RIGHTS_ERROR; -+ case EPIPE: -+ return PR_CONNECT_RESET_ERROR; -+ case EPROTONOSUPPORT: -+ return PR_PROTOCOL_NOT_SUPPORTED_ERROR; -+ case EPROTOTYPE: -+ return PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ case ERANGE: -+ return PR_INVALID_METHOD_ERROR; -+ case EROFS: -+ return PR_READ_ONLY_FILESYSTEM_ERROR; -+ case ESPIPE: -+ return PR_INVALID_METHOD_ERROR; -+ case ETIMEDOUT: -+ return PR_IO_TIMEOUT_ERROR; -+ case EXDEV: -+ return PR_NOT_SAME_DEVICE_ERROR; -+ default: -+ return PR_UNKNOWN_ERROR; -+ } -+} -+ -+ -+inline void -+set_open_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EAGAIN: -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ case EBUSY: -+ prError = PR_IO_ERROR; -+ break; -+ case ENODEV: -+ prError = PR_FILE_NOT_FOUND_ERROR; -+ break; -+ case EOVERFLOW: -+ prError = PR_FILE_TOO_BIG_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_rename_error(int err) -+{ -+ PR_SetError(err == EEXIST ? PR_DIRECTORY_NOT_EMPTY_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_unlink_error(int err) -+{ -+ PR_SetError(err == EPERM ? PR_IS_DIRECTORY_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_opendir_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_closedir_error(int err) -+{ -+ PR_SetError( err == EINVAL ? PR_BAD_DESCRIPTOR_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_readdir_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case 0: -+ case ENOENT: -+ prError = PR_NO_MORE_FILES_ERROR; -+ break; -+ case EOVERFLOW: -+ case EINVAL: -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_mkdir_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_rmdir_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case ENOTEMPTY: -+ case EEXIST: -+ case EINVAL: -+ prError = PR_DIRECTORY_NOT_EMPTY_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_close_error(int err) -+{ -+ PR_SetError( err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_read_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_INVALID_ARGUMENT_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_write_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_INVALID_ARGUMENT_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_lseek_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_fsync_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_INVALID_METHOD_ERROR; -+ break; -+ case ETIMEDOUT: -+ prError = PR_REMOTE_FILE_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_fstat_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+/* TODO: using uint8 instead of bool due to code that uses bool as var name in hard to change places -+ therefore we had to undef it. Or we need to change Haiku's headers around so we can include -+ everything we need except the bool decl. */ -+PRFileDesc * bt_CreateFileDesc(PRIntn osfd, const PRIOMethods * methods, _PRTriStateBool inheritable, uint8 nonblocking) { -+ const int blocking = 1; -+ PRFileDesc *fd = _PR_Getfd(); -+ if (fd == NULL) -+ { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return NULL; -+ } -+ fd->secret->md.osfd = osfd; -+ fd->secret->state = _PR_FILEDESC_OPEN; -+ fd->secret->inheritable = inheritable; -+ fd->methods = methods; -+ if (nonblocking) -+ setsockopt(osfd, SOL_SOCKET, SO_NONBLOCK, &blocking, sizeof(blocking)); -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_GetSpecialFD(PRSpecialFD osfd) -+{ -+ PR_ASSERT(osfd >= PR_StandardInput && osfd <= PR_StandardError); -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ switch (osfd) -+ { -+ case PR_StandardInput: return _pr_stdin; -+ case PR_StandardOutput: return _pr_stdout; -+ case PR_StandardError: return _pr_stderr; -+ default: -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ } -+ return NULL; -+} /* PR_GetSpecialFD */ -+ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_Open(const char *name, PRIntn flags, PRIntn mode) -+{ -+ return PR_OpenFile(name, flags, mode); -+} /* PR_Open */ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_OpenFile(const char *name, PRIntn flags, PRIntn mode) -+{ -+ PRFileDesc *fd = NULL; -+ PRInt32 osflags; -+ PRInt32 osfd, err; -+ -+ if (flags & PR_RDWR) { -+ osflags = O_RDWR; -+ } else if (flags & PR_WRONLY) { -+ osflags = O_WRONLY; -+ } else { -+ osflags = O_RDONLY; -+ } -+ -+ if (flags & PR_EXCL) -+ osflags |= O_EXCL; -+ if (flags & PR_APPEND) -+ osflags |= O_APPEND; -+ if (flags & PR_TRUNCATE) -+ osflags |= O_TRUNC; -+ if (flags & PR_SYNC) { -+/* Ummmm. BeOS doesn't appear to -+ support sync in any way shape or -+ form. */ -+ return PR_NOT_IMPLEMENTED_ERROR; -+ } -+ -+ if (flags & PR_CREATE_FILE) -+ { -+ osflags |= O_CREAT; -+ } -+ -+ osfd = open(name, osflags, mode); -+ if (osfd < 0) { -+ err = _MD_ERRNO(); -+ set_open_error(err); -+ } -+ -+ if(osfd>=0) { -+ fd = bt_CreateFileDesc(osfd, PR_GetFileMethods(), _PR_TRI_TRUE, false); -+ if (fd == NULL) close(osfd); /* $$$ whoops! this is bad $$$ */ -+ } -+ return fd; -+} /* PR_OpenFile */ -+ -+/* -+** Import an existing OS file to NSPR -+*/ -+PR_IMPLEMENT(PRFileDesc*) PR_ImportFile(PRInt32 osfd) -+{ -+ PRFileDesc *fd = NULL; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ fd = bt_CreateFileDesc(osfd, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ if (NULL == fd) close(osfd); -+ return fd; -+} -+ -+/* -+** Import an existing OS pipe to NSPR -+*/ -+PR_IMPLEMENT(PRFileDesc*) PR_ImportPipe(PRInt32 osfd) -+{ -+ PRFileDesc *fd = NULL; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetPipeMethods(), _PR_TRI_UNKNOWN, true); -+ -+ if (NULL == fd) close(osfd); -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_Rename(const char *from, const char *to) -+{ -+ PRInt32 rv = -1, err; -+ -+ if (0 == access(to, F_OK)) -+ PR_SetError(PR_FILE_EXISTS_ERROR, 0); -+ else -+ { -+ rv = rename(from, to); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_rename_error(err); -+ } -+ } -+ if (rv < 0) { -+ return PR_FAILURE; -+ } else { -+ return PR_SUCCESS; -+ } -+} -+ -+PR_IMPLEMENT(PRStatus) PR_Delete(const char *name) -+{ -+ PRInt32 rv, err; -+ -+ rv = unlink(name); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_unlink_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRDir*) PR_OpenDir(const char *name) -+{ -+ PRDir *dir; -+ PRInt32 err; -+ -+ dir = PR_NEW(PRDir); -+ if (dir) { -+ dir->md.d = opendir(name); -+ if (NULL == dir->md.d) { -+ err = _MD_ERRNO(); -+ set_opendir_error(err); -+ PR_DELETE(dir); -+ return NULL; -+ } -+ } else { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ } -+ return dir; -+} -+ -+PR_IMPLEMENT(PRDirEntry*) PR_ReadDir(PRDir *dir, PRDirFlags flags) -+{ -+ PRInt32 err; -+ struct dirent *de; -+ for (;;) { -+ /* -+ * XXX: readdir() is not MT-safe -+ */ -+ _MD_ERRNO() = 0; -+ de = readdir(dir->md.d); -+ -+ if (!de) { -+ err = _MD_ERRNO(); -+ set_readdir_error(err); -+ return 0; -+ } -+ -+ if ((flags & PR_SKIP_DOT) && -+ (de->d_name[0] == '.') && (de->d_name[1] == 0)) -+ continue; -+ -+ if ((flags & PR_SKIP_DOT_DOT) && -+ (de->d_name[0] == '.') && (de->d_name[1] == '.') && -+ (de->d_name[2] == 0)) -+ continue; -+ -+ if ((flags & PR_SKIP_HIDDEN) && (de->d_name[1] == '.')) -+ continue; -+ -+ break; -+ } -+ -+ dir->d.name = de->d_name; -+ return de->d_name ? &dir->d : NULL; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_CloseDir(PRDir *dir) -+{ -+ PRInt32 rv, err; -+ -+ if (dir && dir->md.d) { -+ rv = closedir(dir->md.d); -+ PR_DELETE(dir); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_closedir_error(err); -+ return PR_FAILURE; -+ } -+ } -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_MkDir(const char *name, PRIntn mode) -+{ -+ status_t rv; -+ int err; -+ -+ rv = mkdir(name, mode); -+ -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_mkdir_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_MakeDir(const char *name, PRIntn mode) -+{ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ return PR_MkDir(name, mode); -+} -+ -+PR_IMPLEMENT(PRStatus) PR_RmDir(const char *name) -+{ -+ PRInt32 rv, err; -+ -+ rv = rmdir(name); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_rmdir_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRInt32) -+PR_FileDesc2NativeHandle(PRFileDesc *fd) -+{ -+ if (fd) { -+ fd = PR_GetIdentitiesLayer(fd, PR_NSPR_IO_LAYER); -+ } -+ if (!fd) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ -+ return fd->secret->md.osfd; -+} -+ -+#ifdef MOZ_UNICODE -+/* -+ * UTF16 Interface -+ */ -+PR_IMPLEMENT(PRDirUTF16*) PR_OpenDirUTF16(const PRUnichar *name) -+{ -+ PRDirUTF16 *dir; -+ PRStatus sts; -+ -+ dir = PR_NEW(PRDirUTF16); -+ if (dir) { -+ sts = _PR_MD_OPEN_DIR_UTF16(&dir->md,name); -+ if (sts != PR_SUCCESS) { -+ PR_DELETE(dir); -+ return NULL; -+ } -+ } else { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ } -+ return dir; -+} -+ -+PR_IMPLEMENT(PRDirEntryUTF16*) PR_ReadDirUTF16(PRDirUTF16 *dir, PRDirFlags flags) -+{ -+ /* -+ * _MD_READ_DIR_UTF16 return a PRUnichar* to the name; allocation in -+ * machine-dependent code -+ */ -+ PRUnichar* name = _PR_MD_READ_DIR_UTF16(&dir->md, flags); -+ dir->d.name = name; -+ return name ? &dir->d : NULL; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_CloseDirUTF16(PRDirUTF16 *dir) -+{ -+ PRInt32 rv; -+ -+ if (dir) { -+ rv = _PR_MD_CLOSE_DIR_UTF16(&dir->md); -+ PR_DELETE(dir); -+ if (rv < 0) -+ return PR_FAILURE; -+ else -+ return PR_SUCCESS; -+ } -+ return PR_SUCCESS; -+} -+ -+#endif /* MOZ_UNICODE */ -+ -+ -+static PRStatus PR_CALLBACK FileClose(PRFileDesc *fd) -+{ -+ PRInt32 err; -+ if (!fd || !fd->secret -+ || (fd->secret->state != _PR_FILEDESC_OPEN -+ && fd->secret->state != _PR_FILEDESC_CLOSED)) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (fd->secret->state == _PR_FILEDESC_OPEN) { -+ if (close(fd->secret->md.osfd) < 0) { -+ err = _MD_ERRNO(); -+ set_close_error(err); -+ return PR_FAILURE; -+ } -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ } -+ PR_ASSERT(fd); -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} -+ -+static PRInt32 PR_CALLBACK FileRead(PRFileDesc *fd, void *buf, PRInt32 amount) -+{ -+ PRInt32 rv,err = 0; -+ -+ rv = read(fd->secret->md.osfd, buf, amount); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_read_error(err); -+ PR_ASSERT(rv == -1); -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("read -> %d", rv)); -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK FileWrite(PRFileDesc *fd, const void *buf, PRInt32 amount) -+{ -+ PRInt32 rv,err = 0; -+ PRInt32 temp, count; -+ -+ count = 0; -+ while (amount > 0) { -+ temp = write(fd->secret->md.osfd, buf, amount); -+ if (temp < 0) { -+ err = _MD_ERRNO(); -+ set_write_error(err); -+ count = -1; -+ break; -+ } -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ amount -= temp; -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("write -> %d", count)); -+ return count; -+} -+ -+static PRInt32 PR_CALLBACK FileAvailable(PRFileDesc *fd) -+{ -+ PRInt32 result, cur, end, err; -+ -+ cur = lseek(fd->secret->md.osfd, 0, PR_SEEK_CUR); -+ -+ if (cur >= 0) -+ end = lseek(fd->secret->md.osfd, 0, PR_SEEK_END); -+ -+ if ((cur < 0) || (end < 0)) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ return -1; -+ } -+ -+ result = end - cur; -+ lseek(fd->secret->md.osfd, cur, PR_SEEK_SET); -+ -+ return result; -+} -+ -+static PRInt64 PR_CALLBACK FileAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 result, cur, end; -+ PRInt64 minus_one; -+ PRInt32 err; -+ -+ cur = lseek(fd->secret->md.osfd, LL_ZERO, PR_SEEK_CUR); -+ -+ if (LL_GE_ZERO(cur)) -+ end = lseek(fd->secret->md.osfd, LL_ZERO, PR_SEEK_END); -+ -+ if (!LL_GE_ZERO(cur) || !LL_GE_ZERO(end)) { -+ LL_I2L(minus_one, -1); -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ return minus_one; -+ } -+ LL_SUB(result, end, cur); -+ lseek(fd->secret->md.osfd, cur, PR_SEEK_SET); -+ return result; -+} -+ -+static PRStatus PR_CALLBACK FileSync(PRFileDesc *fd) -+{ -+ PRInt32 result, err; -+ result = fsync(fd->secret->md.osfd); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_fsync_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PROffset32 PR_CALLBACK FileSeek(PRFileDesc *fd, PROffset32 offset, PRSeekWhence whence) -+{ -+ PROffset32 result; -+ PRInt32 err; -+ result = lseek(fd->secret->md.osfd, offset, whence); -+ if(result<0) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ } -+ return result; -+} -+ -+static PROffset64 PR_CALLBACK FileSeek64(PRFileDesc *fd, PROffset64 offset, PRSeekWhence whence) -+{ -+ PROffset64 result; -+ PRInt32 err; -+ -+ result = lseek(fd->secret->md.osfd, offset, whence); -+ if(!LL_GE_ZERO(result)) { -+ err = _MD_ERRNO(); -+ set_lseek_error(err); -+ } -+ return result; -+} -+ -+static PRStatus PR_CALLBACK FileGetInfo(PRFileDesc *fd, PRFileInfo *info) -+{ -+ struct stat sb; -+ PRInt64 s, s2us; -+ PRInt32 rv, err; -+ -+ rv = fstat(fd->secret->md.osfd, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_fstat_error(err); -+ return PR_FAILURE; -+ } -+ if(info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE ; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ /* Use lower 32 bits of file size */ -+ info->size = ( sb.st_size & 0xffffffff); -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK FileGetInfo64(PRFileDesc *fd, PRFileInfo64 *info) -+{ -+ struct stat sb; -+ PRInt64 s, s2us; -+ PRInt32 rv, err; -+ -+ rv = fstat(fd->secret->md.osfd, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_fstat_error(err); -+ return PR_FAILURE; -+ } -+ if(info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE ; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ info->size = sb.st_size; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRInt16 PR_CALLBACK FilePoll( -+ PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags) -+{ -+ *out_flags = 0; -+ return in_flags; -+} /* FilePoll */ -+ -+ -+static PRIOMethods _pr_fileMethods = { -+ PR_DESC_FILE, -+ FileClose, -+ FileRead, -+ FileWrite, -+ FileAvailable, -+ FileAvailable64, -+ FileSync, -+ FileSeek, -+ FileSeek64, -+ FileGetInfo, -+ FileGetInfo64, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ FilePoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetFileMethods(void) -+{ -+ return &_pr_fileMethods; -+} -+ -+ -+static PRInt32 PR_CALLBACK PipeAvailable(PRFileDesc *fd) -+{ -+ PRInt32 rv; -+ rv = _bt_socketavailable(fd); -+ return rv; -+} -+ -+static PRInt64 PR_CALLBACK PipeAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 rv; -+ LL_I2L(rv, _bt_socketavailable(fd)); -+ return rv; -+} -+ -+static PRStatus PR_CALLBACK PipeSync(PRFileDesc *fd) -+{ -+ return PR_SUCCESS; -+} -+ -+ -+static PRIOMethods _pr_pipeMethods = { -+ PR_DESC_PIPE, -+ FileClose, -+ FileRead, -+ FileWrite, -+ PipeAvailable, -+ PipeAvailable64, -+ PipeSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ FilePoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetPipeMethods(void) -+{ -+ return &_pr_pipeMethods; -+} -+ -+void _PR_InitIO(void) { -+ const PRIOMethods *methods = PR_GetFileMethods(); -+ _PR_InitFdCache(); -+ _pr_flock_lock = PR_NewLock(); -+ _pr_flock_cv = PR_NewCondVar(_pr_flock_lock); -+ _pr_stdin = bt_CreateFileDesc(0, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ _pr_stdout = bt_CreateFileDesc(1, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+ _pr_stderr = bt_CreateFileDesc(2, PR_GetFileMethods(), _PR_TRI_UNKNOWN, false); -+} -+ -Index: nsprpub/pr/src/bthreads/btsem.c -=================================================================== ---- nsprpub/pr/src/bthreads/btsem.c (revision 7) -+++ nsprpub/pr/src/bthreads/btsem.c (working copy) -@@ -38,6 +38,7 @@ - #include - - #include "primpl.h" -+#include "obsolete/prsem.h" - - /* - ** Create a new semaphore object. -Index: nsprpub/pr/src/bthreads/btio.c -=================================================================== ---- nsprpub/pr/src/bthreads/btio.c (revision 0) -+++ nsprpub/pr/src/bthreads/btio.c (revision 0) -@@ -0,0 +1,2424 @@ -+/* -*- Mode: C++; c-basic-offset: 4 -*- */ -+/* ***** BEGIN LICENSE BLOCK ***** -+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 -+ * -+ * The contents of this file are subject to the Mozilla Public License Version -+ * 1.1 (the "License"); you may not use this file except in compliance with -+ * the License. You may obtain a copy of the License at -+ * http://www.mozilla.org/MPL/ -+ * -+ * Software distributed under the License is distributed on an "AS IS" basis, -+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -+ * for the specific language governing rights and limitations under the -+ * License. -+ * -+ * The Original Code is the Netscape Portable Runtime (NSPR). -+ * -+ * The Initial Developer of the Original Code is -+ * Netscape Communications Corporation. -+ * Portions created by the Initial Developer are Copyright (C) 1998-2000 -+ * the Initial Developer. All Rights Reserved. -+ * -+ * Contributor(s): -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * either the GNU General Public License Version 2 or later (the "GPL"), or -+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -+ * in which case the provisions of the GPL or the LGPL are applicable instead -+ * of those above. If you wish to allow use of your version of this file only -+ * under the terms of either the GPL or the LGPL, and not to allow others to -+ * use your version of this file under the terms of the MPL, indicate your -+ * decision by deleting the provisions above and replace them with the notice -+ * and other provisions required by the GPL or the LGPL. If you do not delete -+ * the provisions above, a recipient may use your version of this file under -+ * the terms of any one of the MPL, the GPL or the LGPL. -+ * -+ * ***** END LICENSE BLOCK ***** */ -+ -+#include "primpl.h" -+#include -+#include -+#include -+ -+#define READ_FD 1 -+#define WRITE_FD 2 -+ -+#ifdef BONE_VERSION -+inline int closesocket(int socket) { -+ return close(socket); -+} -+#endif -+ -+ -+inline void -+set_stat_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_access_error(int err) -+{ -+ PR_SetError(err == ETIMEDOUT ? PR_REMOTE_FILE_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_select_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_writev_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_connect_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EACCES: -+ case ELOOP: -+ case ENOENT: -+ prError = PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+ -+} -+ -+inline void -+set_accept_error(int err) -+{ -+ PR_SetError(err == ENODEV ? PR_NOT_TCP_SOCKET_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_bind_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_SOCKET_ADDRESS_IS_BOUND_ERROR; -+ break; -+ case EIO: -+ case EISDIR: -+ case ELOOP: -+ case ENOENT: -+ case ENOTDIR: -+ case EROFS: -+ prError = PR_ADDRESS_NOT_SUPPORTED_ERROR; -+ break; -+ case ENXIO: -+ prError = PR_IO_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+inline void -+set_listen_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_shutdown_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_socketpair_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+inline void -+set_recv_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_recvfrom_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+ -+inline void -+set_send_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_sendto_error(int err) -+{ -+ PR_SetError(map_default_error(err), err); -+} -+ -+inline void -+set_getsockname_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_getpeername_error(int err) -+{ -+ PR_SetError(err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+inline void -+set_getsockopt_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_BUFFER_OVERFLOW_ERROR; -+ break; -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+inline void -+set_setsockopt_error(int err) -+{ -+ PRErrorCode prError; -+ switch (err) { -+ case EINVAL: -+ prError = PR_BUFFER_OVERFLOW_ERROR; -+ break; -+ case ENOMEM: -+ prError = PR_INSUFFICIENT_RESOURCES_ERROR; -+ break; -+ default: -+ prError = map_default_error(err); -+ } -+ PR_SetError(prError, err); -+} -+ -+ -+inline void -+set_socket_error(int err) -+{ -+ PR_SetError( err == ENOMEM ? PR_INSUFFICIENT_RESOURCES_ERROR : map_default_error(err), err); -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetFileInfo(const char *fn, PRFileInfo *info) -+{ -+ struct stat sb; -+ PRInt32 rv, err; -+ PRInt64 s, s2us; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ rv = stat(fn, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_stat_error(err); -+ return PR_FAILURE; -+ } -+ if (info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ -+ /* Use lower 32 bits of file size */ -+ info->size = sb.st_size & 0xffffffff; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetFileInfo64(const char *fn, PRFileInfo64 *info) -+{ -+ struct stat sb; -+ PRInt32 rv, err; -+ PRInt64 s, s2us; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ rv = stat(fn, &sb); -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_stat_error(err); -+ return PR_FAILURE; -+ } -+ if (info) { -+ if (S_IFREG & sb.st_mode) -+ info->type = PR_FILE_FILE; -+ else if (S_IFDIR & sb.st_mode) -+ info->type = PR_FILE_DIRECTORY; -+ else -+ info->type = PR_FILE_OTHER; -+ -+ /* For the 64 bit version we can use -+ * the native st_size without modification -+ */ -+ info->size = sb.st_size; -+ LL_I2L(s, sb.st_mtime); -+ LL_I2L(s2us, PR_USEC_PER_SEC); -+ LL_MUL(s, s, s2us); -+ info->modifyTime = s; -+ LL_I2L(s, sb.st_ctime); -+ LL_MUL(s, s, s2us); -+ info->creationTime = s; -+ } -+ -+ return PR_SUCCESS; -+} -+ -+PR_IMPLEMENT(PRStatus) PR_Access(const char *name, PRAccessHow how) -+{ -+ PRInt32 rv, err; -+ int checkFlags; -+ struct stat buf; -+ -+ switch (how) { -+ case PR_ACCESS_WRITE_OK: -+ checkFlags = S_IWUSR | S_IWGRP | S_IWOTH; -+ break; -+ -+ case PR_ACCESS_READ_OK: -+ checkFlags = S_IRUSR | S_IRGRP | S_IROTH; -+ break; -+ -+ case PR_ACCESS_EXISTS: -+ /* we don't need to examine st_mode. */ -+ break; -+ -+ default: { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return PR_FAILURE; -+ } -+ } -+ -+ rv = stat(name, &buf); -+ if (rv == 0 && how != PR_ACCESS_EXISTS && (!(buf.st_mode & checkFlags))) { -+ PR_SetError(PR_NO_ACCESS_RIGHTS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (rv < 0) { -+ err = _MD_ERRNO(); -+ set_access_error(err); -+ return PR_FAILURE; -+ } else -+ return PR_SUCCESS; -+} -+ -+ -+PRInt32 -+_bt_socketavailable (PRFileDesc *fd) -+{ -+#ifdef BONE_VERSION -+ PRInt32 result; -+ -+ if (ioctl(fd->secret->md.osfd, FIONREAD, &result) < 0) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, _MD_ERRNO()); -+ return -1; -+ } -+ return result; -+#else -+ return PR_NOT_IMPLEMENTED_ERROR; -+#endif -+} -+ -+ -+#if defined(DEBUG) -+ -+PRBool IsValidNetAddr(const PRNetAddr *addr) -+{ -+ if ((addr != NULL) -+ && (addr->raw.family != PR_AF_INET6) -+ && (addr->raw.family != PR_AF_INET)) { -+ return PR_FALSE; -+ } -+ return PR_TRUE; -+} -+ -+static PRBool IsValidNetAddrLen(const PRNetAddr *addr, PRInt32 addr_len) -+{ -+ /* -+ * The definition of the length of a Unix domain socket address -+ * is not uniform, so we don't check it. -+ */ -+ if ((addr != NULL) -+ && (PR_NETADDR_SIZE(addr) != addr_len)) { -+ return PR_FALSE; -+ } -+ return PR_TRUE; -+} -+ -+#endif /* DEBUG */ -+ -+static PRInt32 socket_io_wait(PRInt32 osfd, PRInt32 fd_type, -+ PRIntervalTime timeout) -+{ -+ PRInt32 rv = -1; -+ struct timeval tv; -+ PRIntervalTime epoch, now, elapsed, remaining; -+ PRBool wait_for_remaining; -+ PRInt32 syserror; -+ fd_set rd_wr; -+ -+ switch (timeout) { -+ case PR_INTERVAL_NO_WAIT: -+ PR_SetError(PR_IO_TIMEOUT_ERROR, 0); -+ break; -+ case PR_INTERVAL_NO_TIMEOUT: -+ /* -+ * This is a special case of the 'default' case below. -+ * Please see the comments there. -+ */ -+ tv.tv_sec = _PR_INTERRUPT_CHECK_INTERVAL_SECS; -+ tv.tv_usec = 0; -+ FD_ZERO(&rd_wr); -+ do { -+ FD_SET(osfd, &rd_wr); -+ if (fd_type == READ_FD) -+ rv = select(osfd + 1, &rd_wr, NULL, NULL, &tv); -+ else -+ rv = select(osfd + 1, NULL, &rd_wr, NULL, &tv); -+ if (rv == -1 && (syserror = _MD_ERRNO()) != EINTR) { -+#ifdef BONE_VERSION -+ set_select_error(syserror); -+#else -+ if (syserror == EBADF) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, EBADF); -+ } else { -+ PR_SetError(PR_UNKNOWN_ERROR, syserror); -+ } -+#endif -+ break; -+ } -+ } while (rv == 0 || (rv == -1 && syserror == EINTR)); -+ break; -+ default: -+ now = epoch = PR_IntervalNow(); -+ remaining = timeout; -+ FD_ZERO(&rd_wr); -+ do { -+ /* -+ * We block in select for at most -+ * _PR_INTERRUPT_CHECK_INTERVAL_SECS seconds, -+ * so that there is an upper limit on the delay -+ * before the interrupt bit is checked. -+ */ -+ wait_for_remaining = PR_TRUE; -+ tv.tv_sec = PR_IntervalToSeconds(remaining); -+ if (tv.tv_sec > _PR_INTERRUPT_CHECK_INTERVAL_SECS) { -+ wait_for_remaining = PR_FALSE; -+ tv.tv_sec = _PR_INTERRUPT_CHECK_INTERVAL_SECS; -+ tv.tv_usec = 0; -+ } else { -+ tv.tv_usec = PR_IntervalToMicroseconds( -+ remaining - -+ PR_SecondsToInterval(tv.tv_sec)); -+ } -+ FD_SET(osfd, &rd_wr); -+ if (fd_type == READ_FD) -+ rv = select(osfd + 1, &rd_wr, NULL, NULL, &tv); -+ else -+ rv = select(osfd + 1, NULL, &rd_wr, NULL, &tv); -+ /* -+ * we don't consider EINTR a real error -+ */ -+ if (rv == -1 && (syserror = _MD_ERRNO()) != EINTR) { -+#ifdef BONE_VERSION -+ set_select_error(syserror); -+#else -+ if (syserror == EBADF) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, EBADF); -+ } else { -+ PR_SetError(PR_UNKNOWN_ERROR, syserror); -+ } -+#endif -+ break; -+ } -+ /* -+ * We loop again if select timed out or got interrupted -+ * by a signal, and the timeout deadline has not passed yet. -+ */ -+ if (rv == 0 || (rv == -1 && syserror == EINTR)) { -+ /* -+ * If select timed out, we know how much time -+ * we spent in blocking, so we can avoid a -+ * PR_IntervalNow() call. -+ */ -+ if (rv == 0) { -+ if (wait_for_remaining) { -+ now += remaining; -+ } else { -+ now += PR_SecondsToInterval(tv.tv_sec) -+ + PR_MicrosecondsToInterval(tv.tv_usec); -+ } -+ } else { -+ now = PR_IntervalNow(); -+ } -+ elapsed = (PRIntervalTime) (now - epoch); -+ if (elapsed >= timeout) { -+ PR_SetError(PR_IO_TIMEOUT_ERROR, 0); -+ rv = -1; -+ break; -+ } else { -+ remaining = timeout - elapsed; -+ } -+ } -+ } while (rv == 0 || (rv == -1 && syserror == EINTR)); -+ break; -+ } -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketWritev(PRFileDesc *fd, const PRIOVec *iov, -+PRInt32 iov_size, PRIntervalTime timeout) -+{ -+#ifdef BONE_VERSION -+ int w, err = 0; -+ const PRIOVec *tmp_iov; -+#define LOCAL_MAXIOV 8 -+ PRIOVec local_iov[LOCAL_MAXIOV]; -+ PRIOVec *iov_copy = NULL; -+ int tmp_out; -+ int index, iov_cnt; -+ int count=0, sz = 0; /* 'count' is the return value. */ -+ int i, amount = 0; -+ -+ /* -+ * Assume the first writev will succeed. Copy iov's only on -+ * failure. -+ */ -+ tmp_iov = iov; -+ for (index = 0; index < iov_size; index++) -+ sz += iov[index].iov_len; -+ -+ iov_cnt = iov_size; -+ -+ while (sz > 0) { -+/* -+ /* -+ * Calculate the total number of bytes to be sent; needed for -+ * optimization later. -+ * We could avoid this if this number was passed in; but it is -+ * probably not a big deal because iov_size is usually small (less than -+ * 3) -+ */ -+ if (!fd->secret->nonblocking) { -+ for (i=0; isecret->md.osfd, (const struct iovec*)tmp_iov, iov_size)) == -1) { -+ err = _MD_ERRNO(); -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ if ((w = socket_io_wait(fd->secret->md.osfd, WRITE_FD, timeout))<0) -+ goto done; -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ /* -+ * optimization; if bytes sent is less than "amount" call -+ * select before returning. This is because it is likely that -+ * the next writev() call will return EWOULDBLOCK. -+ */ -+ if ((!fd->secret->nonblocking) && (w > 0) && (w < amount) -+ && (timeout != PR_INTERVAL_NO_WAIT)) { -+ if (socket_io_wait(fd->secret->md.osfd, WRITE_FD, timeout) < 0) { -+ w = -1; -+ goto done; -+ } -+ } -+ -+ if (w < 0) { -+ set_writev_error(err); -+ } -+done: -+ -+ -+ if (w < 0) { -+ count = -1; -+ break; -+ } -+ count += w; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ sz -= w; -+ -+ if (sz > 0) { -+ /* find the next unwritten vector */ -+ for ( index = 0, tmp_out = count; -+ tmp_out >= iov[index].iov_len; -+ tmp_out -= iov[index].iov_len, index++){;} /* nothing to execute */ -+ -+ if (tmp_iov == iov) { -+ /* -+ * The first writev failed so we -+ * must copy iov's around. -+ * Avoid calloc/free if there -+ * are few enough iov's. -+ */ -+ if (iov_size - index <= LOCAL_MAXIOV) -+ iov_copy = local_iov; -+ else if ((iov_copy = (PRIOVec *) PR_CALLOC((iov_size - index) * -+ sizeof *iov_copy)) == NULL) { -+ PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ return -1; -+ } -+ tmp_iov = iov_copy; -+ } -+ -+ PR_ASSERT(tmp_iov == iov_copy); -+ -+ /* fill in the first partial read */ -+ iov_copy[0].iov_base = &(((char *)iov[index].iov_base)[tmp_out]); -+ iov_copy[0].iov_len = iov[index].iov_len - tmp_out; -+ index++; -+ -+ /* copy the remaining vectors */ -+ for (iov_cnt=1; indexsecret->md.osfd; -+ -+#ifndef BONE_VERSION -+ fd->secret->md.connectValueValid = PR_FALSE; -+#endif -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ PRNetAddr addrCopy; -+ -+ addrCopy = *addr; -+ ((struct sockaddr *) &addrCopy)->sa_len = addrlen; -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+#endif -+ -+ /* (Copied from unix.c) -+ * We initiate the connection setup by making a nonblocking connect() -+ * call. If the connect() call fails, there are two cases we handle -+ * specially: -+ * 1. The connect() call was interrupted by a signal. In this case -+ * we simply retry connect(). -+ * 2. The NSPR socket is nonblocking and connect() fails with -+ * EINPROGRESS. We first wait until the socket becomes writable. -+ * Then we try to find out whether the connection setup succeeded -+ * or failed. -+ */ -+ -+retry: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if ((rv = connect(osfd, (struct sockaddr *)&addrCopy, addrlen)) == -1) { -+#else -+ if ((rv = connect(osfd, (struct sockaddr *)addr, addrlen)) == -1) { -+#endif -+ err = _MD_ERRNO(); -+#ifndef BONE_VERSION -+ fd->secret->md.connectReturnValue = rv; -+ fd->secret->md.connectReturnError = err; -+ fd->secret->md.connectValueValid = PR_TRUE; -+#endif -+ if( err == EINTR ) { -+#ifndef BONE_VERSION -+ snooze( 100000L ); -+#endif -+ goto retry; -+ } -+ -+#ifndef BONE_VERSION -+ if(!fd->secret->nonblocking && ((err == EINPROGRESS) || (err==EAGAIN) || (err==EALREADY))) { -+ -+ /* -+ ** There's no timeout on this connect, but that's not -+ ** a big deal, since the connect times out anyways -+ ** after 30 seconds. Just sleep for 1/10th of a second -+ ** and retry until we go through or die. -+ */ -+ goto retry; -+ } -+ -+ if( fd->secret->nonblocking && ((err == EAGAIN) || (err == EINPROGRESS))) { -+ PR_Lock(_connectLock); -+ if (connectCount < sizeof(connectList)/sizeof(connectList[0])) { -+ connectList[connectCount].osfd = osfd; -+ memcpy(&connectList[connectCount].addr, addr, addrlen); -+ connectList[connectCount].addrlen = addrlen; -+ connectList[connectCount].timeout = timeout; -+ connectCount++; -+ PR_Unlock(_connectLock); -+ set_connect_error(err); -+ } else { -+ PR_Unlock(_connectLock); -+ PR_SetError(PR_INSUFFICIENT_RESOURCES_ERROR, 0); -+ } -+ return rv; -+ } -+#else /* BONE_VERSION */ -+ if(!fd->secret->nonblocking && (err == EINTR)) { -+ -+ rv = socket_io_wait(osfd, WRITE_FD, timeout); -+ if (rv == -1) { -+ return -1; -+ } -+ -+ PR_ASSERT(rv == 1); -+/* _MD_beos_get_nonblocking_connect_error always return PR_NOT_IMPLEMENTED.. -+ err = _MD_beos_get_nonblocking_connect_error(osfd); -+ if (err != 0) { -+ set_connect_error(err); -+ return -1; -+ } -+*/ -+ return 0; -+ } -+#endif -+ -+ set_connect_error(err); -+ } -+ -+ return rv; -+} -+ -+ -+static PRStatus PR_CALLBACK SocketConnect( -+ PRFileDesc *fd, const PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 rv; /* Return value of _PR_MD_CONNECT */ -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) -+ PRNetAddr addrCopy; -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+ rv = _bt_CONNECT(fd, addrp, PR_NETADDR_SIZE(addr), timeout); -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("connect -> %d", rv)); -+ if (rv == 0) -+ return PR_SUCCESS; -+ else -+ return PR_FAILURE; -+} -+ -+static PRStatus PR_CALLBACK SocketConnectContinue( -+ PRFileDesc *fd, PRInt16 out_flags) -+{ -+ PRInt32 osfd; -+ int err; -+ int rv; -+ -+ if (out_flags & PR_POLL_NVAL) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ if ((out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0) { -+ PR_ASSERT(out_flags == 0); -+ PR_SetError(PR_IN_PROGRESS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ osfd = fd->secret->md.osfd; -+ -+ -+#ifdef BONE_VERSION /* bug 122364 */ -+ /* temporary workaround until getsockopt(SO_ERROR) works in BONE */ -+ if (out_flags & PR_POLL_EXCEPT) { -+ PR_SetError(PR_CONNECT_REFUSED_ERROR, 0); -+ return PR_FAILURE; -+ } -+ PR_ASSERT(out_flags & PR_POLL_WRITE); -+ return PR_SUCCESS; -+#else -+ rv = recv(fd->secret->md.osfd, NULL, 0, 0); -+ PR_ASSERT(-1 == rv || 0 == rv); -+ -+ if (-1 == rv && 0 != errno && errno != EAGAIN && errno != EWOULDBLOCK ) { -+ set_connect_error(errno); -+ return PR_FAILURE; -+ } -+ else -+ return PR_SUCCESS; -+#endif -+} -+ -+PRInt32 -+_bt_accept (PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+ while ((rv = accept(osfd, (struct sockaddr *) addr, -+ (int *)addrlen)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ /* If it's SUPPOSED to be a blocking thread, wait -+ * a while to see if the triggering condition gets -+ * satisfied. -+ */ -+ /* Assume that we're always using a native thread */ -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ if (rv < 0) { -+ set_accept_error(err); -+ } else if (addr != NULL) { -+ /* bug 134099 */ -+ err = getpeername(rv, (struct sockaddr *) addr, (int *)addrlen); -+ } -+done: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (rv != -1) { -+ /* Mask off the first byte of struct sockaddr (the length field) */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ return(rv); -+} -+ -+ -+ -+static PRFileDesc* PR_CALLBACK SocketAccept(PRFileDesc *fd, PRNetAddr *addr, -+PRIntervalTime timeout) -+{ -+ PRInt32 osfd; -+ PRFileDesc *fd2; -+ PRUint32 al; -+ -+ al = sizeof(PRNetAddr); -+ osfd = _bt_accept(fd, addr, &al, timeout); -+ if (osfd == -1) -+ return 0; -+ fd2 = bt_CreateFileDesc(osfd, PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (!fd2) { -+ closesocket(osfd); -+ -+ return NULL; -+ } -+ -+ fd2->secret->nonblocking = fd->secret->nonblocking; -+ fd2->secret->inheritable = fd->secret->inheritable; -+ -+#ifdef _PR_INET6 -+ if (addr && (AF_INET6 == addr->raw.family)) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, al) == PR_TRUE); -+ -+ return fd2; -+} -+ -+ -+static PRStatus PR_CALLBACK SocketBind(PRFileDesc *fd, const PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) || defined(_PR_HAVE_SOCKADDR_LEN) -+ PRNetAddr addrCopy; -+#endif -+ -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+#if defined(_PR_INET6) -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ addrCopy = *addrp; -+ ((struct sockaddr *) &addrCopy)->sa_len = PR_NETADDR_SIZE(addrp); -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+ result = bind(fd->secret->md.osfd, (struct sockaddr *) &addrCopy, PR_NETADDR_SIZE(addrp)); -+#else -+ result = bind(fd->secret->md.osfd, (struct sockaddr *) addrp, PR_NETADDR_SIZE(addrp)); -+#endif -+ -+ -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_bind_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketListen(PRFileDesc *fd, PRIntn backlog) -+{ -+ PRInt32 result,err; -+#ifndef BONE_VERSION -+ /* Bug workaround! Setting listen to 0 on Be accepts no connections. -+ ** On most UN*Xes this sets the default. -+ */ -+ -+ if( backlog == 0 ) backlog = 5; -+#endif -+ result = listen(fd->secret->md.osfd, backlog); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_listen_error(err); -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketShutdown(PRFileDesc *fd, PRIntn how) -+{ -+ PRInt32 result,err; -+#ifndef BONE_VERSION -+ if (how == PR_SHUTDOWN_SEND) -+ fd->secret->md.sock_state = BE_SOCK_SHUTDOWN_WRITE; -+ else if (how == PR_SHUTDOWN_RCV) -+ fd->secret->md.sock_state = BE_SOCK_SHUTDOWN_READ; -+ else if (how == PR_SHUTDOWN_BOTH) { -+ fd->secret->md.sock_state = (BE_SOCK_SHUTDOWN_WRITE | BE_SOCK_SHUTDOWN_READ); -+ } -+#else /* BONE_VERSION */ -+ result = shutdown(fd->secret->md.osfd, how); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_shutdown_error(err); -+ return PR_FAILURE; -+ } -+#endif -+ return PR_SUCCESS; -+} -+ -+PRInt32 -+_bt_recv (PRFileDesc *fd, void *buf, PRInt32 amount, PRInt32 flags, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifndef BONE_VERSION -+ if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_READ) { -+ set_recv_error(EPIPE); -+ return -1; -+ } -+#endif -+ -+#ifdef BONE_VERSION -+ /* -+ ** Gah, stupid hack. If reading a zero amount, instantly return success. -+ ** BONE beta 6 returns EINVAL for reads of zero bytes, which parts of -+ ** mozilla use to check for socket availability. -+ */ -+ -+ if( 0 == amount ) return(0); -+#endif -+ -+ while ((rv = recv(osfd, buf, amount, flags)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ /* If socket was supposed to be blocking, -+ wait a while for the condition to be -+ satisfied. */ -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ } else if (err == EINTR) { -+ continue; -+ } else -+ break; -+ } -+ -+ if (rv < 0) { -+ set_recv_error(err); -+ } -+ -+done: -+ return(rv); -+} -+ -+static PRInt32 PR_CALLBACK SocketRecv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, -+PRIntervalTime timeout) -+{ -+ PRInt32 rv; -+ -+ if ((flags != 0) && (flags != PR_MSG_PEEK)) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv: fd=%p osfd=%d buf=%p amount=%d flags=%d", -+ fd, fd->secret->md.osfd, buf, amount, flags)); -+ -+ -+ rv = _bt_recv(fd, buf, amount, flags, timeout); -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv -> %d, error = %d, os error = %d", -+ rv, PR_GetError(), PR_GetOSError())); -+ -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK SocketRead(PRFileDesc *fd, void *buf, PRInt32 amount) -+{ -+ return SocketRecv(fd, buf, amount, 0, PR_INTERVAL_NO_TIMEOUT); -+} -+ -+PRInt32 -+_bt_send (PRFileDesc *fd, const void *buf, PRInt32 amount, PRInt32 flags, -+ PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifndef BONE_VERSION -+ if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_WRITE) -+ { -+ set_send_error(EPIPE); -+ return -1; -+ } -+#endif -+ -+ while ((rv = send(osfd, buf, amount, flags)) == -1) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ -+#ifndef BONE_VERSION -+ -+ /* in UNIX implementations, you could do a socket_io_wait here. -+ * but since BeOS doesn't yet support WRITE notification in select, -+ * you're spanked. -+ */ -+ snooze( 10000L ); -+ continue; -+#else /* BONE_VERSION */ -+ if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0) -+ goto done; -+#endif -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ -+#ifdef BONE_VERSION -+ /* -+ * optimization; if bytes sent is less than "amount" call -+ * select before returning. This is because it is likely that -+ * the next writev() call will return EWOULDBLOCK. -+ */ -+ if ((!fd->secret->nonblocking) && (rv > 0) && (rv < amount) -+ && (timeout != PR_INTERVAL_NO_WAIT)) { -+ if (socket_io_wait(osfd, WRITE_FD, timeout) < 0) { -+ rv = -1; -+ goto done; -+ } -+ } -+#endif /* BONE_VERSION */ -+ -+ if (rv < 0) { -+ set_send_error(err); -+ } -+ -+#ifdef BONE_VERSION -+done: -+#endif -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSend(PRFileDesc *fd, const void *buf, PRInt32 amount, -+PRIntn flags, PRIntervalTime timeout) -+{ -+ PRInt32 temp, count; -+ -+ count = 0; -+ while (amount > 0) { -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, -+ ("send: fd=%p osfd=%d buf=%p amount=%d", -+ fd, fd->secret->md.osfd, buf, amount)); -+ temp = _bt_send(fd, buf, amount, flags, timeout); -+ if (temp < 0) { -+ count = -1; -+ break; -+ } -+ -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ -+ amount -= temp; -+ } -+ PR_LOG(_pr_io_lm, PR_LOG_MAX, ("send -> %d", count)); -+ return count; -+} -+ -+static PRInt32 PR_CALLBACK SocketWrite(PRFileDesc *fd, const void *buf, PRInt32 amount) -+{ -+ return SocketSend(fd, buf, amount, 0, PR_INTERVAL_NO_TIMEOUT); -+} -+ -+static PRStatus PR_CALLBACK SocketClose(PRFileDesc *fd) -+{ -+ if (!fd || !fd->secret -+ || (fd->secret->state != _PR_FILEDESC_OPEN -+ && fd->secret->state != _PR_FILEDESC_CLOSED)) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if (fd->secret->state == _PR_FILEDESC_OPEN) { -+ if (closesocket(fd->secret->md.osfd) < 0) { -+ return PR_FAILURE; -+ } -+ -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ } -+ -+ PR_ASSERT(fd); -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} -+ -+static PRInt32 PR_CALLBACK SocketAvailable(PRFileDesc *fd) -+{ -+ PRInt32 rv; -+ rv = _bt_socketavailable(fd); -+ return rv; -+} -+ -+static PRInt64 PR_CALLBACK SocketAvailable64(PRFileDesc *fd) -+{ -+ PRInt64 rv; -+ LL_I2L(rv, _bt_socketavailable(fd)); -+ return rv; -+} -+ -+static PRStatus PR_CALLBACK SocketSync(PRFileDesc *fd) -+{ -+ return PR_SUCCESS; -+} -+ -+PRInt32 -+_bt_sendto (PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, -+ const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ PRNetAddr addrCopy; -+ -+ addrCopy = *addr; -+ ((struct sockaddr *) &addrCopy)->sa_len = addrlen; -+ ((struct sockaddr *) &addrCopy)->sa_family = addr->raw.family; -+ -+ while ((rv = sendto(osfd, buf, amount, flags, -+ (struct sockaddr *) &addrCopy, addrlen)) == -1) { -+#else -+ while ((rv = sendto(osfd, buf, amount, flags, -+ (struct sockaddr *) addr, addrlen)) == -1) { -+#endif -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ -+#ifdef BONE_VERSION -+ if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0) -+ goto done; -+#endif -+ } else if (err == EINTR) { -+ continue; -+ -+ } else { -+ break; -+ } -+ } -+ -+ if (rv < 0) { -+ set_sendto_error(err); -+ } -+ -+#ifdef BONE_VERSION -+done: -+#endif -+ return(rv); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSendTo( -+ PRFileDesc *fd, const void *buf, PRInt32 amount, -+ PRIntn flags, const PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 temp, count; -+ const PRNetAddr *addrp = addr; -+#if defined(_PR_INET6) -+ PRNetAddr addrCopy; -+#endif -+ -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+#if defined(_PR_INET6) -+ if (addr->raw.family == PR_AF_INET6) { -+ addrCopy = *addr; -+ addrCopy.raw.family = AF_INET6; -+ addrp = &addrCopy; -+ } -+#endif -+ -+ count = 0; -+ while (amount > 0) { -+ temp = _bt_sendto(fd, buf, amount, flags, -+ addrp, PR_NETADDR_SIZE(addr), timeout); -+ if (temp < 0) { -+ count = -1; -+ break; -+ } -+ count += temp; -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ buf = (const void*) ((const char*)buf + temp); -+ amount -= temp; -+ } -+ return count; -+} -+ -+PRInt32 -+_bt_recvfrom (PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, -+ PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout) -+{ -+ PRInt32 osfd = fd->secret->md.osfd; -+ PRInt32 rv, err; -+ -+ while ((*addrlen = PR_NETADDR_SIZE(addr)), -+ ((rv = recvfrom(osfd, buf, amount, flags, -+ (struct sockaddr *) addr, -+ (int *)addrlen)) == -1)) { -+ err = _MD_ERRNO(); -+ -+ if ((err == EAGAIN) || (err == EWOULDBLOCK)) { -+ if (fd->secret->nonblocking) { -+ break; -+ } -+ if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0) -+ goto done; -+ -+ } else if (err == EINTR) { -+ continue; -+ } else { -+ break; -+ } -+ } -+ -+ if (rv < 0) { -+ set_recvfrom_error(err); -+ } -+ -+done: -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (rv != -1) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ return(rv); -+} -+ -+ -+ -+static PRInt32 PR_CALLBACK SocketRecvFrom(PRFileDesc *fd, void *buf, PRInt32 amount, -+PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout) -+{ -+ PRInt32 rv; -+ PRUint32 al; -+ -+ al = sizeof(PRNetAddr); -+ rv = _bt_recvfrom(fd, buf, amount, flags, addr, &al, timeout); -+#ifdef _PR_INET6 -+ if (addr && (AF_INET6 == addr->raw.family)) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ return rv; -+} -+ -+static PRInt32 PR_CALLBACK SocketAcceptRead(PRFileDesc *sd, PRFileDesc **nd, -+PRNetAddr **raddr, void *buf, PRInt32 amount, -+PRIntervalTime timeout) -+{ -+ /* The socket must be in blocking mode. */ -+ if (sd->secret->nonblocking) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ *nd = NULL; -+ -+ return PR_EmulateAcceptRead(sd, nd, raddr, buf, amount, timeout); -+} -+ -+ -+static PRInt32 PR_CALLBACK SocketSendFile( -+ PRFileDesc *sd, PRSendFileData *sfd, -+ PRTransmitFileFlags flags, PRIntervalTime timeout) -+{ -+ /* The socket must be in blocking mode. */ -+ if (sd->secret->nonblocking) { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return -1; -+ } -+ return PR_EmulateSendFile(sd, sfd, flags, timeout); -+} -+ -+static PRInt32 PR_CALLBACK SocketTransmitFile(PRFileDesc *sd, PRFileDesc *fd, -+const void *headers, PRInt32 hlen, PRTransmitFileFlags flags, -+PRIntervalTime timeout) -+{ -+ PRSendFileData sfd; -+ -+ sfd.fd = fd; -+ sfd.file_offset = 0; -+ sfd.file_nbytes = 0; -+ sfd.header = headers; -+ sfd.hlen = hlen; -+ sfd.trailer = NULL; -+ sfd.tlen = 0; -+ -+ return(SocketSendFile(sd, &sfd, flags, timeout)); -+} -+ -+static PRStatus PR_CALLBACK SocketGetName(PRFileDesc *fd, PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ PRUint32 addrlen; -+ -+ addrlen = sizeof(PRNetAddr); -+ result = getsockname(fd->secret->md.osfd, (struct sockaddr *) addr, &addrlen); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_getsockname_error(err); -+ return PR_FAILURE; -+ } -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (result == 0) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ -+#ifdef _PR_INET6 -+ if (AF_INET6 == addr->raw.family) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, addrlen) == PR_TRUE); -+ return PR_SUCCESS; -+} -+ -+static PRStatus PR_CALLBACK SocketGetPeerName(PRFileDesc *fd, PRNetAddr *addr) -+{ -+ PRInt32 result, err; -+ PRUint32 addrlen; -+ -+ addrlen = sizeof(PRNetAddr); -+ result = getpeername(fd->secret->md.osfd, (struct sockaddr *) addr, &addrlen); -+ if (result < 0) { -+ err = _MD_ERRNO(); -+ set_getpeername_error(err); -+ return PR_FAILURE; -+ } -+#ifdef _PR_HAVE_SOCKADDR_LEN -+ if (result == 0) { -+ /* ignore the sa_len field of struct sockaddr */ -+ if (addr) { -+ addr->raw.family = ((struct sockaddr *) addr)->sa_family; -+ } -+ } -+#endif /* _PR_HAVE_SOCKADDR_LEN */ -+ -+#ifdef _PR_INET6 -+ if (AF_INET6 == addr->raw.family) -+ addr->raw.family = PR_AF_INET6; -+#endif -+ PR_ASSERT(IsValidNetAddr(addr) == PR_TRUE); -+ PR_ASSERT(IsValidNetAddrLen(addr, addrlen) == PR_TRUE); -+ return PR_SUCCESS; -+} -+ -+static PRInt16 PR_CALLBACK SocketPoll( -+ PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags) -+{ -+ *out_flags = 0; -+ return in_flags; -+} /* SocketPoll */ -+ -+ -+PRStatus PR_CALLBACK SocketGetOption(PRFileDesc *fd, PRSocketOptionData *data) -+{ -+ PRStatus rv; -+ PRInt32 level, name, length, err; -+ -+ /* -+ * PR_SockOpt_Nonblocking is a special case that does not -+ * translate to a getsockopt() call -+ */ -+ if (PR_SockOpt_Nonblocking == data->option) -+ { -+ data->value.non_blocking = fd->secret->nonblocking; -+ return PR_SUCCESS; -+ } -+ -+ rv = _PR_MapOptionName(data->option, &level, &name); -+ if (PR_SUCCESS != rv) return rv; -+ -+ switch (data->option) -+ { -+ case PR_SockOpt_Linger: -+ { -+#ifdef BONE_VERSION -+ struct linger linger; -+ length = sizeof(linger); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char *) &linger, &length)) -+ { -+ PR_ASSERT(sizeof(linger) == length); -+ data->value.linger.polarity = -+ (linger.l_onoff) ? PR_TRUE : PR_FALSE; -+ data->value.linger.linger = -+ PR_SecondsToInterval(linger.l_linger); -+ return PR_SUCCESS; -+ } -+ break; -+#else -+ PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -+ return PR_FAILURE; -+#endif -+ } -+ case PR_SockOpt_Reuseaddr: -+ case PR_SockOpt_Keepalive: -+ case PR_SockOpt_NoDelay: -+ case PR_SockOpt_Broadcast: -+ { -+ PRIntn value; -+ length = sizeof(value); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char *) &value, &length)) -+ { -+ data->value.reuse_addr = (0 == value) ? PR_FALSE : PR_TRUE; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_McastLoopback: -+ { -+ PRUint8 bool; -+ length = sizeof(bool); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&bool, &length)) -+ { -+ data->value.mcast_loopback = (0 == bool) ? PR_FALSE : PR_TRUE; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_RecvBufferSize: -+ case PR_SockOpt_SendBufferSize: -+ case PR_SockOpt_MaxSegment: -+ { -+ PRIntn value; -+ length = sizeof(value); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, &length)) -+ { -+ data->value.recv_buffer_size = value; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+ case PR_SockOpt_IpTimeToLive: -+ case PR_SockOpt_IpTypeOfService: -+ { -+ /* These options should really be an int (or PRIntn). */ -+ length = sizeof(PRUintn); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.ip_ttl, &length)) -+ return PR_SUCCESS; -+ break; -+ } -+ case PR_SockOpt_McastTimeToLive: -+ { -+ PRUint8 ttl; -+ length = sizeof(ttl); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&ttl, &length)) -+ { -+ data->value.mcast_ttl = ttl; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+#ifdef IP_ADD_MEMBERSHIP -+ case PR_SockOpt_AddMember: -+ case PR_SockOpt_DropMember: -+ { -+ struct ip_mreq mreq; -+ length = sizeof(mreq); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, (char*)&mreq, &length)) -+ { -+ data->value.add_member.mcaddr.inet.ip = -+ mreq.imr_multiaddr.s_addr; -+ data->value.add_member.ifaddr.inet.ip = -+ mreq.imr_interface.s_addr; -+ return PR_SUCCESS; -+ } -+ break; -+ } -+#endif /* IP_ADD_MEMBERSHIP */ -+ case PR_SockOpt_McastInterface: -+ { -+ /* This option is a struct in_addr. */ -+ length = sizeof(data->value.mcast_if.inet.ip); -+ if (0 == getsockopt( -+ fd->secret->md.osfd, level, name, -+ (char*)&data->value.mcast_if.inet.ip, &length)) -+ return PR_SUCCESS; -+ break; -+ } -+ default: -+ PR_NOT_REACHED("Unknown socket option"); -+ break; -+ } -+ err = _MD_ERRNO(); -+ set_getsockopt_error(err); -+ return PR_FAILURE; -+} /* SocketGetOption */ -+ -+PRStatus PR_CALLBACK SocketSetOption(PRFileDesc *fd, const PRSocketOptionData *data) -+{ -+ PRStatus rv; -+ PRInt32 level, name, result, err; -+ -+ /* -+ * PR_SockOpt_Nonblocking is a special case that does not -+ * translate to a setsockopt call. -+ */ -+ if (PR_SockOpt_Nonblocking == data->option) -+ { -+ fd->secret->nonblocking = data->value.non_blocking; -+ return PR_SUCCESS; -+ } -+ -+ rv = _PR_MapOptionName(data->option, &level, &name); -+ if (PR_SUCCESS != rv) return rv; -+ -+ switch (data->option) -+ { -+ case PR_SockOpt_Linger: -+ { -+#ifdef BONE_VERSION -+ struct linger linger; -+ linger.l_onoff = data->value.linger.polarity; -+ linger.l_linger = PR_IntervalToSeconds(data->value.linger.linger); -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&linger, sizeof(linger)); -+ break; -+#else -+ PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -+ return PR_FAILURE; -+#endif -+ } -+ case PR_SockOpt_Reuseaddr: -+ case PR_SockOpt_Keepalive: -+ case PR_SockOpt_NoDelay: -+ case PR_SockOpt_Broadcast: -+ { -+ PRIntn value; -+ value = (data->value.reuse_addr) ? 1 : 0; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, sizeof(value)); -+ break; -+ } -+ case PR_SockOpt_McastLoopback: -+ { -+ PRUint8 bool; -+ bool = data->value.mcast_loopback ? 1 : 0; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&bool, sizeof(bool)); -+ break; -+ } -+ case PR_SockOpt_RecvBufferSize: -+ case PR_SockOpt_SendBufferSize: -+ case PR_SockOpt_MaxSegment: -+ { -+ PRIntn value = data->value.recv_buffer_size; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&value, sizeof(value)); -+ break; -+ } -+ case PR_SockOpt_IpTimeToLive: -+ case PR_SockOpt_IpTypeOfService: -+ { -+ /* These options should really be an int (or PRIntn). */ -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.ip_ttl, sizeof(PRUintn)); -+ break; -+ } -+ case PR_SockOpt_McastTimeToLive: -+ { -+ PRUint8 ttl; -+ ttl = data->value.mcast_ttl; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&ttl, sizeof(ttl)); -+ break; -+ } -+#ifdef IP_ADD_MEMBERSHIP -+ case PR_SockOpt_AddMember: -+ case PR_SockOpt_DropMember: -+ { -+ struct ip_mreq mreq; -+ mreq.imr_multiaddr.s_addr = -+ data->value.add_member.mcaddr.inet.ip; -+ mreq.imr_interface.s_addr = -+ data->value.add_member.ifaddr.inet.ip; -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&mreq, sizeof(mreq)); -+ break; -+ } -+#endif /* IP_ADD_MEMBERSHIP */ -+ case PR_SockOpt_McastInterface: -+ { -+ /* This option is a struct in_addr. */ -+ result = setsockopt( -+ fd->secret->md.osfd, level, name, (char*)&data->value.mcast_if.inet.ip, -+ sizeof(data->value.mcast_if.inet.ip)); -+ break; -+ } -+ default: -+ PR_NOT_REACHED("Unknown socket option"); -+ break; -+ } -+ if (0 == result) -+ return PR_SUCCESS; -+ err = _MD_ERRNO(); -+ set_setsockopt_error(err); -+ return PR_FAILURE; -+} /* SocketSetOption */ -+ -+ -+ -+static PRIOMethods tcpMethods = { -+ PR_DESC_SOCKET_TCP, -+ SocketClose, -+ SocketRead, -+ SocketWrite, -+ SocketAvailable, -+ SocketAvailable64, -+ SocketSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ SocketWritev, -+ SocketConnect, -+ SocketAccept, -+ SocketBind, -+ SocketListen, -+ SocketShutdown, -+ SocketRecv, -+ SocketSend, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ SocketAcceptRead, -+ SocketTransmitFile, -+ SocketGetName, -+ SocketGetPeerName, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ SocketGetOption, -+ SocketSetOption, -+ SocketSendFile, -+ SocketConnectContinue, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+static PRIOMethods udpMethods = { -+ PR_DESC_SOCKET_UDP, -+ SocketClose, -+ SocketRead, -+ SocketWrite, -+ SocketAvailable, -+ SocketAvailable64, -+ SocketSync, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ SocketWritev, -+ SocketConnect, -+ (PRAcceptFN)_PR_InvalidDesc, -+ SocketBind, -+ SocketListen, -+ SocketShutdown, -+ SocketRecv, -+ SocketSend, -+ SocketRecvFrom, -+ SocketSendTo, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ SocketGetName, -+ SocketGetPeerName, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ SocketGetOption, -+ SocketSetOption, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+ -+static PRIOMethods socketpollfdMethods = { -+ (PRDescType) 0, -+ (PRCloseFN)_PR_InvalidStatus, -+ (PRReadFN)_PR_InvalidInt, -+ (PRWriteFN)_PR_InvalidInt, -+ (PRAvailableFN)_PR_InvalidInt, -+ (PRAvailable64FN)_PR_InvalidInt64, -+ (PRFsyncFN)_PR_InvalidStatus, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+static PRIOMethods _pr_socketpollfd_methods = { -+ (PRDescType) 0, -+ (PRCloseFN)_PR_InvalidStatus, -+ (PRReadFN)_PR_InvalidInt, -+ (PRWriteFN)_PR_InvalidInt, -+ (PRAvailableFN)_PR_InvalidInt, -+ (PRAvailable64FN)_PR_InvalidInt64, -+ (PRFsyncFN)_PR_InvalidStatus, -+ (PRSeekFN)_PR_InvalidInt, -+ (PRSeek64FN)_PR_InvalidInt64, -+ (PRFileInfoFN)_PR_InvalidStatus, -+ (PRFileInfo64FN)_PR_InvalidStatus, -+ (PRWritevFN)_PR_InvalidInt, -+ (PRConnectFN)_PR_InvalidStatus, -+ (PRAcceptFN)_PR_InvalidDesc, -+ (PRBindFN)_PR_InvalidStatus, -+ (PRListenFN)_PR_InvalidStatus, -+ (PRShutdownFN)_PR_InvalidStatus, -+ (PRRecvFN)_PR_InvalidInt, -+ (PRSendFN)_PR_InvalidInt, -+ (PRRecvfromFN)_PR_InvalidInt, -+ (PRSendtoFN)_PR_InvalidInt, -+ SocketPoll, -+ (PRAcceptreadFN)_PR_InvalidInt, -+ (PRTransmitfileFN)_PR_InvalidInt, -+ (PRGetsocknameFN)_PR_InvalidStatus, -+ (PRGetpeernameFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRGetsocketoptionFN)_PR_InvalidStatus, -+ (PRSetsocketoptionFN)_PR_InvalidStatus, -+ (PRSendfileFN)_PR_InvalidInt, -+ (PRConnectcontinueFN)_PR_InvalidStatus, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt, -+ (PRReservedFN)_PR_InvalidInt -+}; -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetTCPMethods() -+{ -+ return &tcpMethods; -+} -+ -+PR_IMPLEMENT(const PRIOMethods*) PR_GetUDPMethods() -+{ -+ return &udpMethods; -+} -+ -+static const PRIOMethods* PR_GetSocketPollFdMethods(void) -+{ -+ return &_pr_socketpollfd_methods; -+} /* PR_GetSocketPollFdMethods */ -+ -+PR_IMPLEMENT(PRInt32) PR_Poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout) -+{ -+ PRInt32 rv = 0; -+ /* -+ * This code is almost a duplicate of w32poll.c's _PR_MD_PR_POLL(). -+ */ -+ fd_set rd, wt, ex; -+ PRFileDesc *bottom; -+ PRPollDesc *pd, *epd; -+ PRInt32 maxfd = -1, ready, err; -+ PRIntervalTime remaining, elapsed, start; -+ -+ struct timeval tv, *tvp = NULL; -+ -+ if (0 == npds) { -+ PR_Sleep(timeout); -+ return rv; -+ } -+ -+ FD_ZERO(&rd); -+ FD_ZERO(&wt); -+ FD_ZERO(&ex); -+ -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ PRInt16 in_flags_read = 0, in_flags_write = 0; -+ PRInt16 out_flags_read = 0, out_flags_write = 0; -+ -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ if (pd->in_flags & PR_POLL_READ) -+ { -+ in_flags_read = (pd->fd->methods->poll)(pd->fd, pd->in_flags & ~PR_POLL_WRITE, &out_flags_read); -+ } -+ if (pd->in_flags & PR_POLL_WRITE) -+ { -+ in_flags_write = (pd->fd->methods->poll)(pd->fd, pd->in_flags & ~PR_POLL_READ, &out_flags_write); -+ } -+ if ((0 != (in_flags_read & out_flags_read)) -+ || (0 != (in_flags_write & out_flags_write))) -+ { -+ /* this one's ready right now */ -+ if (0 == ready) -+ { -+ /* -+ * We will have to return without calling the -+ * system poll/select function. So zero the -+ * out_flags fields of all the poll descriptors -+ * before this one. -+ */ -+ PRPollDesc *prev; -+ for (prev = pds; prev < pd; prev++) -+ { -+ prev->out_flags = 0; -+ } -+ } -+ ready += 1; -+ pd->out_flags = out_flags_read | out_flags_write; -+ } -+ else -+ { -+ pd->out_flags = 0; /* pre-condition */ -+ -+ /* make sure this is an NSPR supported stack */ -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ PR_ASSERT(NULL != bottom); /* what to do about that? */ -+ if ((NULL != bottom) -+ && (_PR_FILEDESC_OPEN == bottom->secret->state)) -+ { -+ if (0 == ready) -+ { -+ PRInt32 osfd = bottom->secret->md.osfd; -+ if (osfd > maxfd) maxfd = osfd; -+ if (in_flags_read & PR_POLL_READ) -+ { -+ pd->out_flags |= _PR_POLL_READ_SYS_READ; -+ FD_SET(osfd, &rd); -+ } -+ if (in_flags_read & PR_POLL_WRITE) -+ { -+ pd->out_flags |= _PR_POLL_READ_SYS_WRITE; -+ FD_SET(osfd, &wt); -+ } -+ if (in_flags_write & PR_POLL_READ) -+ { -+ pd->out_flags |= _PR_POLL_WRITE_SYS_READ; -+ FD_SET(osfd, &rd); -+ } -+ if (in_flags_write & PR_POLL_WRITE) -+ { -+ pd->out_flags |= _PR_POLL_WRITE_SYS_WRITE; -+ FD_SET(osfd, &wt); -+ } -+ if (pd->in_flags & PR_POLL_EXCEPT) FD_SET(osfd, &ex); -+ } -+ } -+ else -+ { -+ if (0 == ready) -+ { -+ PRPollDesc *prev; -+ for (prev = pds; prev < pd; prev++) -+ { -+ prev->out_flags = 0; -+ } -+ } -+ ready += 1; /* this will cause an abrupt return */ -+ pd->out_flags = PR_POLL_NVAL; /* bogii */ -+ } -+ } -+ } -+ else -+ { -+ pd->out_flags = 0; -+ } -+ } -+ -+ if (0 != ready) return ready; /* no need to block */ -+ -+ remaining = timeout; -+ start = PR_IntervalNow(); -+ -+ retry: -+ if (timeout != PR_INTERVAL_NO_TIMEOUT) -+ { -+ PRInt32 ticksPerSecond = PR_TicksPerSecond(); -+ tv.tv_sec = remaining / ticksPerSecond; -+ tv.tv_usec = PR_IntervalToMicroseconds( remaining % ticksPerSecond ); -+ tvp = &tv; -+ } -+ -+ ready = select(maxfd + 1, &rd, &wt, &ex, tvp); -+ -+ if (ready == -1 && errno == EINTR) -+ { -+ if (timeout == PR_INTERVAL_NO_TIMEOUT) goto retry; -+ else -+ { -+ elapsed = (PRIntervalTime) (PR_IntervalNow() - start); -+ if (elapsed > timeout) ready = 0; /* timed out */ -+ else -+ { -+ remaining = timeout - elapsed; -+ goto retry; -+ } -+ } -+ } -+ -+ /* -+ ** Now to unravel the select sets back into the client's poll -+ ** descriptor list. Is this possibly an area for pissing away -+ ** a few cycles or what? -+ */ -+ if (ready > 0) -+ { -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ PRInt16 out_flags = 0; -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ PRInt32 osfd; -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ PR_ASSERT(NULL != bottom); -+ -+ osfd = bottom->secret->md.osfd; -+ -+ if (FD_ISSET(osfd, &rd)) -+ { -+ if (pd->out_flags & _PR_POLL_READ_SYS_READ) -+ out_flags |= PR_POLL_READ; -+ if (pd->out_flags & _PR_POLL_WRITE_SYS_READ) -+ out_flags |= PR_POLL_WRITE; -+ } -+ if (FD_ISSET(osfd, &wt)) -+ { -+ if (pd->out_flags & _PR_POLL_READ_SYS_WRITE) -+ out_flags |= PR_POLL_READ; -+ if (pd->out_flags & _PR_POLL_WRITE_SYS_WRITE) -+ out_flags |= PR_POLL_WRITE; -+ } -+ if (FD_ISSET(osfd, &ex)) out_flags |= PR_POLL_EXCEPT; -+ -+/* Workaround for nonblocking connects under net_server */ -+#ifndef BONE_VERSION -+ if (out_flags) -+ { -+ /* check if it is a pending connect */ -+ int i = 0, j = 0; -+ PR_Lock( _connectLock ); -+ for( i = 0; i < connectCount; i++ ) -+ { -+ if(connectList[i].osfd == osfd) -+ { -+ int connectError; -+ int connectResult; -+ -+ connectResult = connect(connectList[i].osfd, -+ &connectList[i].addr, -+ connectList[i].addrlen); -+ connectError = errno; -+ -+ if(connectResult < 0 ) -+ { -+ if(connectError == EINTR || connectError == EWOULDBLOCK || -+ connectError == EINPROGRESS || connectError == EALREADY) -+ { -+ break; -+ } -+ } -+ -+ if(i == (connectCount - 1)) -+ { -+ connectList[i].osfd = -1; -+ } else { -+ for(j = i; j < connectCount; j++ ) -+ { -+ memcpy( &connectList[j], &connectList[j+1], -+ sizeof(connectList[j])); -+ } -+ } -+ connectCount--; -+ -+ bottom->secret->md.connectReturnValue = connectResult; -+ bottom->secret->md.connectReturnError = connectError; -+ bottom->secret->md.connectValueValid = PR_TRUE; -+ break; -+ } -+ } -+ PR_Unlock( _connectLock ); -+ } -+#endif -+ } -+ pd->out_flags = out_flags; -+ if (out_flags) ready++; -+ } -+ PR_ASSERT(ready > 0); -+ } -+ else if (ready < 0) -+ { -+ err = _MD_ERRNO(); -+ if (err == EBADF) -+ { -+ /* Find the bad fds */ -+ ready = 0; -+ for (pd = pds, epd = pd + npds; pd < epd; pd++) -+ { -+ pd->out_flags = 0; -+ if ((NULL != pd->fd) && (0 != pd->in_flags)) -+ { -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ if (fcntl(bottom->secret->md.osfd, F_GETFL, 0) == -1) -+ { -+ pd->out_flags = PR_POLL_NVAL; -+ ready++; -+ } -+ } -+ } -+ PR_ASSERT(ready > 0); -+ } -+ else set_select_error(err); -+ } -+ -+ return ready; -+} /* PR_POLL */ -+ -+PR_IMPLEMENT(PRFileDesc*) PR_CreateSocketPollFd(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ -+ fd = _PR_Getfd(); -+ -+ if (fd == NULL) PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); -+ else -+ { -+ fd->secret->md.osfd = osfd; -+ fd->secret->inheritable = _PR_TRI_FALSE; -+ fd->secret->state = _PR_FILEDESC_OPEN; -+ fd->methods = PR_GetSocketPollFdMethods(); -+ } -+ -+ return fd; -+} /* PR_CreateSocketPollFD */ -+ -+PR_IMPLEMENT(PRStatus) PR_DestroySocketPollFd(PRFileDesc *fd) -+{ -+ if (NULL == fd) -+ { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ fd->secret->state = _PR_FILEDESC_CLOSED; -+ _PR_Putfd(fd); -+ return PR_SUCCESS; -+} /* PR_DestroySocketPollFd */ -+ -+ -+PR_IMPLEMENT(PRFileDesc *) PR_ImportTCPSocket(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetTCPMethods(), _PR_TRI_UNKNOWN, true); -+ if (fd == NULL) -+ closesocket(osfd); -+ return(fd); -+} -+ -+PR_IMPLEMENT(PRFileDesc *) PR_ImportUDPSocket(PRInt32 osfd) -+{ -+ PRFileDesc *fd; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ fd = bt_CreateFileDesc(osfd, PR_GetUDPMethods(), _PR_TRI_UNKNOWN, true); -+ if (fd == NULL) -+ closesocket(osfd); -+ return(fd); -+} -+ -+ -+#ifndef XP_HAIKU -+int socketpair (int family, int type, int protocol, int sv[2]) -+{ -+ int insock, outsock, acceptedsock; -+ struct sockaddr_in addrs[2]; -+ int alen; -+ /* that's really only so we can build... */ -+ /*fprintf(stderr, "socketpair(%d, %d, %d)\n", family, type, protocol);*/ -+ if (family != AF_INET) { -+ /*fatal*/fprintf(stderr, "socketpair(%d, %d, %d): family not supported\n", family, type, protocol); -+ errno = EPFNOSUPPORT; -+ return -1; -+ } -+ if (type != SOCK_DGRAM && type != SOCK_STREAM) { -+ errno = EPROTONOSUPPORT; -+ return -1; -+ } -+ addrs[0].sin_family = AF_INET; -+ addrs[0].sin_port = 0; -+ addrs[0].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ addrs[1].sin_family = AF_INET; -+ addrs[1].sin_port = 0; -+ addrs[1].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ alen = sizeof(struct sockaddr_in); -+ -+ insock = socket(family, type, protocol); -+ if (insock < 0) -+ goto err1; -+ if (bind(insock, (struct sockaddr *)&addrs[0], alen) < 0) -+ goto err2; -+ if (getsockname(insock, (struct sockaddr *)&addrs[0], &alen) < 0) -+ goto err2; -+ if (type == SOCK_STREAM) -+ listen(insock, 2); -+ -+ outsock = socket(family, type, protocol); -+ if (outsock < 0) -+ goto err2; -+ alen = sizeof(struct sockaddr_in); -+ if (bind(outsock, (struct sockaddr *)&addrs[1], alen) < 0) -+ goto err2; -+ if (getsockname(outsock, (struct sockaddr *)&addrs[1], &alen) < 0) -+ goto err3; -+ addrs[0].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ addrs[1].sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ /*fprintf(stderr, "socketpair: %08lx:%d <-> %08lx:%d\n", -+ ((struct sockaddr_in *)&addrs[0])->sin_addr.s_addr, -+ ((struct sockaddr_in *)&addrs[0])->sin_port, -+ ((struct sockaddr_in *)&addrs[1])->sin_addr.s_addr, -+ ((struct sockaddr_in *)&addrs[1])->sin_port);*/ -+ -+ if (connect(outsock, (struct sockaddr *)&addrs[0], alen) < 0) -+ goto err3; -+ if (type == SOCK_DGRAM) { -+ if (connect(insock, (struct sockaddr *)&addrs[1], alen) < 0) -+ goto err3; -+ sv[0] = insock; -+ } else { -+ acceptedsock = accept(insock, (struct sockaddr *)&addrs[1], &alen); -+ if (acceptedsock < 0) -+ goto err3; -+ closesocket(insock); -+ sv[0] = acceptedsock; -+ } -+ sv[1] = outsock; -+ return 0; -+err3: -+ closesocket(outsock); -+err2: -+ closesocket(insock); -+err1: -+ fprintf(stderr,"socketpair: error 0x%08x\n", errno); -+ return -1; -+} -+#endif -+ -+PR_IMPLEMENT(PRStatus) PR_NewTCPSocketPair(PRFileDesc *f[]) -+{ -+ PRInt32 rv, osfd[2]; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+#ifdef XP_HAIKU -+ rv = socketpair(AF_UNIX, SOCK_STREAM, 0, osfd); -+#else -+ rv = socketpair(AF_INET, SOCK_STREAM, 0, osfd); -+#endif -+ if (rv == -1) { -+ return PR_FAILURE; -+ } -+ f[0] = bt_CreateFileDesc(osfd[0], PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (NULL == f[0]) { -+ closesocket(osfd[0]); -+ closesocket(osfd[1]); -+ /* PR_AllocFileDesc() has invoked PR_SetError(). */ -+ return PR_FAILURE; -+ } -+ f[1] = bt_CreateFileDesc(osfd[1], PR_GetTCPMethods(), _PR_TRI_TRUE, true); -+ if (NULL == f[1]) { -+ PR_Close(f[0]); -+ closesocket(osfd[1]); -+ /* PR_AllocFileDesc() has invoked PR_SetError(). */ -+ return PR_FAILURE; -+ } -+ return PR_SUCCESS; -+} -+ -+ -+PR_IMPLEMENT(PRStatus) PR_GetConnectStatus(const PRPollDesc *pd) { -+ PRInt32 osfd; -+#ifndef BONE_VERSION -+ int rv; -+#endif -+ PRFileDesc *bottom; -+ -+ if (pd->out_flags & PR_POLL_NVAL) { -+ PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ if ((pd->out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0) { -+ PR_ASSERT(pd->out_flags == 0); -+ PR_SetError(PR_IN_PROGRESS_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ -+ /* Find the NSPR layer and invoke its connectcontinue method */ -+ bottom = PR_GetIdentitiesLayer(pd->fd, PR_NSPR_IO_LAYER); -+ if (NULL == bottom) -+ { -+ PR_SetError(PR_INVALID_ARGUMENT_ERROR, 0); -+ return PR_FAILURE; -+ } -+ -+ osfd = bottom->secret->md.osfd; -+#ifdef BONE_VERSION /* bug 122364 */ -+ /* temporary workaround until getsockopt(SO_ERROR) works in BONE */ -+ if (pd->out_flags & PR_POLL_EXCEPT) { -+ PR_SetError(PR_CONNECT_REFUSED_ERROR, 0); -+ return PR_FAILURE; -+ } -+ PR_ASSERT(pd->out_flags & PR_POLL_WRITE); -+ return PR_SUCCESS; -+#else -+ rv = recv(bottom->secret->md.osfd, NULL, 0, 0); -+ PR_ASSERT(-1 == rv || 0 == rv); -+ -+ if (-1 == rv && 0 != errno && errno != EAGAIN && errno != EWOULDBLOCK ) { -+ set_connect_error(errno); -+ return PR_FAILURE; -+ } -+ else -+ return PR_SUCCESS; -+#endif /* BONE_VERSION */ -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_Socket(PRInt32 domain, PRInt32 type, PRInt32 proto) -+{ -+ PRInt32 osfd, err; -+ PRFileDesc *fd; -+ PRInt32 tmp_domain = domain; -+ -+ if (!_pr_initialized) _PR_ImplicitInitialization(); -+ if (PR_AF_INET != domain -+ && PR_AF_INET6 != domain -+ ) { -+ PR_SetError(PR_ADDRESS_NOT_SUPPORTED_ERROR, 0); -+ return NULL; -+ } -+ if( type != SOCK_STREAM && type != SOCK_DGRAM ) -+ { -+ PR_SetError(PR_ADDRESS_NOT_SUPPORTED_ERROR, 0); -+ return NULL; -+ } -+ -+#if defined(_PR_INET6_PROBE) -+ if (PR_AF_INET6 == domain) { -+ if (_pr_ipv6_is_present == PR_FALSE) -+ domain = AF_INET; -+ else -+ domain = AF_INET6; -+ } -+#elif defined(_PR_INET6) -+ if (PR_AF_INET6 == domain) -+ domain = AF_INET6; -+#else -+ if (PR_AF_INET6 == domain) -+ domain = AF_INET; -+#endif /* _PR_INET6 */ -+#ifndef BONE_VERSION -+ osfd = socket(domain, type, 0); -+#else -+ osfd = socket(domain, type, proto); -+#endif -+ if (osfd == -1) { -+ err = _MD_ERRNO(); -+ set_socket_error(err); -+ return 0; -+ } -+ fd = bt_CreateFileDesc(osfd, SOCK_STREAM == type?PR_GetTCPMethods() : PR_GetUDPMethods(), _PR_TRI_TRUE, true); -+ -+ if (fd != NULL) { -+#if defined(_PR_INET6_PROBE) || !defined(_PR_INET6) -+ /* -+ * For platforms with no support for IPv6 -+ * create layered socket for IPv4-mapped IPv6 addresses -+ */ -+ if (PR_AF_INET6 == tmp_domain && PR_AF_INET == domain) { -+ if (PR_FAILURE == _pr_push_ipv6toipv4_layer(fd)) { -+ PR_Close(fd); -+ fd = NULL; -+ } -+ } -+#endif -+ } else -+ closesocket(osfd); -+ -+ return fd; -+} -+ -+ -+PR_IMPLEMENT(PRFileDesc *) PR_NewTCPSocket(void) -+{ -+ return PR_Socket(AF_INET, SOCK_STREAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_NewUDPSocket(void) -+{ -+ return PR_Socket(AF_INET, SOCK_DGRAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc *) PR_OpenTCPSocket(PRIntn af) -+{ -+ return PR_Socket(af, SOCK_STREAM, 0); -+} -+ -+PR_IMPLEMENT(PRFileDesc*) PR_OpenUDPSocket(PRIntn af) -+{ -+ return PR_Socket(af, SOCK_DGRAM, 0); -+} -+ -Index: nsprpub/pr/src/bthreads/btthread.c -=================================================================== ---- nsprpub/pr/src/bthreads/btthread.c (revision 7) -+++ nsprpub/pr/src/bthreads/btthread.c (working copy) -@@ -120,12 +120,9 @@ - */ - - beThreadPriority = _bt_MapNSPRToNativePriority( priority ); -- - set_thread_priority( find_thread( NULL ), beThreadPriority ); -- - primordialThread->priority = priority; - -- - /* set the thread's state - note that the thread is not joinable */ - primordialThread->state |= BT_THREAD_PRIMORD; - if (type == PR_SYSTEM_THREAD) -@@ -219,9 +216,7 @@ - allocated a joinSem for us) - let them know we're - ready */ - delete_sem(me->md.joinSem); -- - PR_Unlock(joinSemLock); -- - } - else - { -@@ -229,10 +224,8 @@ - is our responsibility to allocate the joinSem - and block on it */ - me->md.joinSem = create_sem(0, "join sem"); -- - /* we're done accessing our joinSem */ - PR_Unlock(joinSemLock); -- - /* wait for someone to join us */ - while (acquire_sem(me->md.joinSem) == B_INTERRUPTED); - } -@@ -243,10 +236,8 @@ - { - /* synchronize access to bt_book */ - PR_Lock( bt_book.ml ); -- - /* decrement the number of currently-alive user threads */ - bt_book.threadCount--; -- - if (bt_book.threadCount == 0 && bt_book.cleanUpSem != B_ERROR) { - /* we are the last user thread, and the primordial thread is - blocked in PR_Cleanup() waiting for us to finish - notify -@@ -277,9 +268,7 @@ - - /* save our PRThread object into our TLS */ - tls_set(tls_prThreadSlot, thred); -- - thred->startFunc(thred->arg); /* run the dang thing */ -- - /* clean up */ - _bt_CleanupThread(NULL); - -@@ -292,7 +281,6 @@ - PRThreadState state, PRUint32 stackSize) - { - PRUint32 bePriority; -- - PRThread* thred; - - if (!_pr_initialized) _PR_ImplicitInitialization(); -@@ -305,7 +293,6 @@ - } - - thred->md.joinSem = B_ERROR; -- - thred->arg = arg; - thred->startFunc = start; - thred->priority = priority; -@@ -316,7 +303,6 @@ - } - - /* keep some books */ -- - PR_Lock( bt_book.ml ); - - if (type == PR_USER_THREAD) -@@ -325,9 +311,7 @@ - } - - PR_Unlock( bt_book.ml ); -- - bePriority = _bt_MapNSPRToNativePriority( priority ); -- - thred->md.tid = spawn_thread((thread_func)_bt_root, "moz-thread", - bePriority, thred); - if (thred->md.tid < B_OK) { -@@ -433,6 +417,13 @@ - return thred; - } - -+PR_IMPLEMENT(void*)PR_GetSP(PRThread *thred) -+{ -+ thread_info tInfo; -+ get_thread_info(thred->md.tid, &tInfo); -+ return tInfo.stack_base; /* or should it be _end? */ -+} -+ - PR_IMPLEMENT(PRThreadScope) - PR_GetThreadScope (const PRThread* thred) - { -Index: nsprpub/pr/src/io/prmapopt.c -=================================================================== ---- nsprpub/pr/src/io/prmapopt.c (revision 7) -+++ nsprpub/pr/src/io/prmapopt.c (working copy) -@@ -74,7 +74,7 @@ - #include /* TCP_NODELAY, TCP_MAXSEG */ - #endif - --#ifndef _PR_PTHREADS -+#if !defined(_PR_PTHREADS) && !defined(_PR_BTHREADS) - - PRStatus PR_CALLBACK _PR_SocketGetSocketOption(PRFileDesc *fd, PRSocketOptionData *data) - { -@@ -99,7 +99,6 @@ - { - case PR_SockOpt_Linger: - { --#if !defined(XP_BEOS) || defined(BONE_VERSION) - struct linger linger; - length = sizeof(linger); - rv = _PR_MD_GETSOCKOPT( -@@ -113,10 +112,6 @@ - PR_SecondsToInterval(linger.l_linger); - } - break; --#else -- PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -- return PR_FAILURE; --#endif - } - case PR_SockOpt_Reuseaddr: - case PR_SockOpt_Keepalive: -@@ -257,17 +252,12 @@ - { - case PR_SockOpt_Linger: - { --#if !defined(XP_BEOS) || defined(BONE_VERSION) - struct linger linger; - linger.l_onoff = data->value.linger.polarity; - linger.l_linger = PR_IntervalToSeconds(data->value.linger.linger); - rv = _PR_MD_SETSOCKOPT( - fd, level, name, (char*)&linger, sizeof(linger)); - break; --#else -- PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 ); -- return PR_FAILURE; --#endif - } - case PR_SockOpt_Reuseaddr: - case PR_SockOpt_Keepalive: -@@ -355,7 +345,7 @@ - return rv; - } /* _PR_SocketSetSocketOption */ - --#endif /* ! _PR_PTHREADS */ -+#endif /* ! _PR_PTHREADS && ! _PR_BTHREADS */ - - /* - ********************************************************************* -Index: nsprpub/pr/src/md/beos/bsrcs.mk -=================================================================== ---- nsprpub/pr/src/md/beos/bsrcs.mk (revision 7) -+++ nsprpub/pr/src/md/beos/bsrcs.mk (working copy) -@@ -20,6 +20,7 @@ - # the Initial Developer. All Rights Reserved. - # - # Contributor(s): -+# Fredrik Holmqvist - # - # Alternatively, the contents of this file may be used under the terms of - # either the GNU General Public License Version 2 or later (the "GPL"), or -@@ -42,13 +43,6 @@ - - MDCSRCS = \ - beos.c \ -- beos_errors.c \ -- bfile.c \ -- bmisc.c \ -- bnet.c \ - bproc.c \ -- brng.c \ -- bseg.c \ -- btime.c \ - bmmap.c \ - $(NULL) -Index: nsprpub/pr/src/md/beos/bproc.c -=================================================================== ---- nsprpub/pr/src/md/beos/bproc.c (revision 7) -+++ nsprpub/pr/src/md/beos/bproc.c (working copy) -@@ -36,8 +36,10 @@ - * ***** END LICENSE BLOCK ***** */ - - #include "primpl.h" -+#include -+#include - #include --#include -+#include - - #define _PR_SIGNALED_EXITSTATUS 256 - -Index: nsprpub/pr/src/md/beos/beos.c -=================================================================== ---- nsprpub/pr/src/md/beos/beos.c (revision 7) -+++ nsprpub/pr/src/md/beos/beos.c (working copy) -@@ -37,58 +37,87 @@ - - #include "primpl.h" - --#include --#include --#include --#include --#include --#include - #include --#include --#include -- - /* - * Make sure _PRSockLen_t is 32-bit, because we will cast a PRUint32* or - * PRInt32* pointer to a _PRSockLen_t* pointer. - */ - #define _PRSockLen_t int - --/* --** Global lock variable used to bracket calls into rusty libraries that --** aren't thread safe (like libc, libX, etc). --*/ --static PRLock *_pr_rename_lock = NULL; --static PRMonitor *_pr_Xfe_mon = NULL; - -+#ifndef BONE_VERSION -+PRLock *_connectLock = NULL; -+ -+/* Workaround for nonblocking connects under net_server */ -+PRUint32 connectCount = 0; -+ConnectListNode connectList[64]; -+ -+void -+_MD_final_init_netserver(void) -+{ -+ _connectLock = PR_NewLock(); -+ PR_ASSERT(NULL != _connectLock); -+ /* Workaround for nonblocking connects under net_server */ -+ connectCount = 0; -+} -+#endif /* !BONE_VERSION */ -+ -+ -+#ifdef __powerpc__ -+static PRLock *monitor = NULL; -+ -+void -+_MD_AtomicInit(void) -+{ -+ if (monitor == NULL) { -+ monitor = PR_NewLock(); -+ } -+} -+#endif /* __powerpc__ */ -+ - /* -- * Variables used by the GC code, initialized in _MD_InitSegs(). -- * _pr_zero_fd should be a static variable. Unfortunately, there is -- * still some Unix-specific code left in function PR_GrowSegment() -- * in file memory/prseg.c that references it, so it needs -- * to be a global variable for now. -+** This is exceedingly messy. atomic_add returns the last value, NSPR -+** expects the new value. We just add or subtract 1 from the result. -+** The actual memory update is atomic. - */ --PRInt32 _pr_zero_fd = -1; --static PRLock *_pr_md_lock = NULL; - --sigset_t timer_set; -+PRInt32 -+_MD_AtomicAdd( PRInt32 *ptr, PRInt32 val ) -+{ -+ return atomic_add( (long *)ptr, val ) + val; -+} - --void _PR_UnixInit() -+PRInt32 -+_MD_AtomicIncrement( PRInt32 *val ) - { -- struct sigaction sigact; -- int rv; -+ return atomic_add( (long *)val, 1 ) + 1; -+} - -- sigemptyset(&timer_set); -+PRInt32 -+_MD_AtomicDecrement( PRInt32 *val ) -+{ -+ return atomic_add( (long *)val, -1 ) - 1; -+} - -- sigact.sa_handler = SIG_IGN; -- sigemptyset(&sigact.sa_mask); -- sigact.sa_flags = 0; -- rv = sigaction(SIGPIPE, &sigact, 0); -- PR_ASSERT(0 == rv); -+PRInt32 -+_MD_AtomicSet( PRInt32 *val, PRInt32 newval ) -+{ -+ PRInt32 result; -+#ifdef __powerpc__ -+ if (!_pr_initialized) { -+ _PR_ImplicitInitialization(); -+ } -+ PR_Lock(monitor); -+ result = *val; -+ *val = newval; -+ PR_Unlock(monitor); -+#else -+ asm volatile ("xchgl %0, %1" -+ : "=r"(result), "=m"(*val) -+ : "0"(newval), "m"(*val)); - -- _pr_rename_lock = PR_NewLock(); -- PR_ASSERT(NULL != _pr_rename_lock); -- _pr_Xfe_mon = PR_NewMonitor(); -- PR_ASSERT(NULL != _pr_Xfe_mon); -+#endif /* __powerpc__ */ -+ return result; - } - - /* -@@ -98,9 +127,7 @@ - * - * Returns the current time in microseconds since the epoch. - * The epoch is midnight January 1, 1970 GMT. -- * The implementation is machine dependent. This is the Unix -- * implementation. -- * Cf. time_t time(time_t *tp) -+ * The implementation is machine dependent. - * - *----------------------------------------------------------------------- - */ -@@ -108,157 +135,75 @@ - PR_IMPLEMENT(PRTime) - PR_Now(void) - { -- struct timeval tv; -- PRInt64 s, us, s2us; -- -- GETTIMEOFDAY(&tv); -- LL_I2L(s2us, PR_USEC_PER_SEC); -- LL_I2L(s, tv.tv_sec); -- LL_I2L(us, tv.tv_usec); -- LL_MUL(s, s, s2us); -- LL_ADD(s, s, us); -- return s; -+ return (PRTime) real_time_clock_usecs(); - } - - PRIntervalTime --_PR_UNIX_GetInterval() -+_MD_get_interval(void) - { -- struct timeval time; -- PRIntervalTime ticks; -- -- (void)GETTIMEOFDAY(&time); /* fallicy of course */ -- ticks = (PRUint32)time.tv_sec * PR_MSEC_PER_SEC; /* that's in milliseconds */ -- ticks += (PRUint32)time.tv_usec / PR_USEC_PER_MSEC; /* so's that */ -- return ticks; --} /* _PR_SUNOS_GetInterval */ -- --PRIntervalTime _PR_UNIX_TicksPerSecond() --{ -- return 1000; /* this needs some work :) */ -+ return (PRIntervalTime) real_time_clock_usecs() / 10; - } - --/************************************************************************/ -- --/* --** Special hacks for xlib. Xlib/Xt/Xm is not re-entrant nor is it thread --** safe. Unfortunately, neither is mozilla. To make these programs work --** in a pre-emptive threaded environment, we need to use a lock. --*/ -- --void PR_XLock() -+PRIntervalTime -+_MD_interval_per_sec(void) - { -- PR_EnterMonitor(_pr_Xfe_mon); -+ return 100000L; - } - --void PR_XUnlock() -+PRSize -+_PR_MD_GetRandomNoise( void *buf, PRSize size ) - { -- PR_ExitMonitor(_pr_Xfe_mon); --} -+ struct timeval tv; -+ int n = 0; -+ int s; - --PRBool PR_XIsLocked() --{ -- return (PR_InMonitor(_pr_Xfe_mon)) ? PR_TRUE : PR_FALSE; --} -+ GETTIMEOFDAY(&tv); - --void PR_XWait(int ms) --{ -- PR_Wait(_pr_Xfe_mon, PR_MillisecondsToInterval(ms)); -+ if ( size >= 0 ) { -+ s = _pr_CopyLowBits((char*)buf+n, size, &tv.tv_usec, sizeof(tv.tv_usec)); -+ size -= s; -+ n += s; - } -- --void PR_XNotify(void) --{ -- PR_Notify(_pr_Xfe_mon); -+ if ( size >= 0 ) { -+ s = _pr_CopyLowBits((char*)buf+n, size, &tv.tv_sec, sizeof(tv.tv_sec)); -+ size -= s; -+ n += s; - } -+ return n; -+} /* end _PR_MD_GetRandomNoise() */ - --void PR_XNotifyAll(void) --{ -- PR_NotifyAll(_pr_Xfe_mon); --} - --#if !defined(BEOS) --#ifdef HAVE_BSD_FLOCK -- --#include -- --PR_IMPLEMENT(PRStatus) --_MD_LOCKFILE (PRInt32 f) -+/* Needed by prinit.c:612 */ -+void -+_PR_MD_QUERY_FD_INHERITABLE(PRFileDesc *fd) - { -- PRInt32 rv; -- rv = flock(f, LOCK_EX); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -+ int flags; - --PR_IMPLEMENT(PRStatus) --_MD_TLOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = flock(f, LOCK_EX|LOCK_NB); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ PR_ASSERT(_PR_TRI_UNKNOWN == fd->secret->inheritable); -+ flags = fcntl(fd->secret->md.osfd, F_GETFD, 0); -+ PR_ASSERT(-1 != flags); -+ fd->secret->inheritable = (flags & FD_CLOEXEC) ? -+ _PR_TRI_FALSE : _PR_TRI_TRUE; - } - --PR_IMPLEMENT(PRStatus) --_MD_UNLOCKFILE (PRInt32 f) -+PRStatus -+_MD_gethostname(char *name, PRUint32 namelen) - { -- PRInt32 rv; -- rv = flock(f, LOCK_UN); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_FLOCK_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} --#else -+ PRInt32 rv, err; - --PR_IMPLEMENT(PRStatus) --_MD_LOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = lockf(f, F_LOCK, 0); -+ rv = gethostname(name, namelen); - if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -- --PR_IMPLEMENT(PRStatus) --_MD_TLOCKFILE (PRInt32 f) - { -- PRInt32 rv; -- rv = lockf(f, F_TLOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); -- return PR_FAILURE; -+ err = _MD_ERRNO(); -+ switch (err) { -+ case EFAULT: -+ PR_SetError(PR_ACCESS_FAULT_ERROR, err); -+ break; -+ default: -+ PR_SetError(PR_UNKNOWN_ERROR, err); -+ break; - } -- --PR_IMPLEMENT(PRStatus) --_MD_UNLOCKFILE (PRInt32 f) --{ -- PRInt32 rv; -- rv = lockf(f, F_ULOCK, 0); -- if (rv == 0) -- return PR_SUCCESS; -- _PR_MD_MAP_LOCKF_ERROR(_MD_ERRNO()); - return PR_FAILURE; - } --#endif -- --PR_IMPLEMENT(PRStatus) -- _MD_GETHOSTNAME (char *name, PRUint32 namelen) --{ -- PRIntn rv; -- -- rv = gethostname(name, namelen); -- if (0 == rv) { - return PR_SUCCESS; - } -- _PR_MD_MAP_GETHOSTNAME_ERROR(_MD_ERRNO()); -- return PR_FAILURE; --} -- --#endif -Index: nsprpub/pr/src/io/Makefile.in -=================================================================== ---- nsprpub/pr/src/io/Makefile.in (revision 7) -+++ nsprpub/pr/src/io/Makefile.in (working copy) -@@ -69,6 +69,7 @@ - $(NULL) - - ifndef USE_PTHREADS -+ifndef USE_BTHREADS - CSRCS += \ - prdir.c \ - prfile.c \ -@@ -76,6 +77,7 @@ - prsocket.c \ - $(NULL) - endif -+endif - - TARGETS = $(OBJS) - -Index: nsprpub/pr/src/io/prsocket.c -=================================================================== ---- nsprpub/pr/src/io/prsocket.c (revision 7) -+++ nsprpub/pr/src/io/prsocket.c (working copy) -@@ -64,7 +64,7 @@ - * is not uniform, so we don't check it. - */ - if ((addr != NULL) --#if defined(XP_UNIX) || defined(XP_OS2_EMX) -+#if defined(XP_UNIX) || defined(XP_OS2_EMX) || defined(XP_BEOS) - && (addr->raw.family != AF_UNIX) - #endif - && (PR_NETADDR_SIZE(addr) != addr_len)) { -Index: nsprpub/pr/src/memory/prseg.c -=================================================================== ---- nsprpub/pr/src/memory/prseg.c (revision 7) -+++ nsprpub/pr/src/memory/prseg.c (working copy) -@@ -37,7 +37,7 @@ - - #include "primpl.h" - --#if defined(_PR_PTHREADS) -+#if defined(_PR_PTHREADS) || defined(_PR_BTHREADS) - - /* - ** The pthreads version doesn't use these functions. -@@ -46,7 +46,7 @@ - { - } - --#else /* _PR_PTHREADS */ -+#else /* _PR_PTHREADS || defined(_PR_BTHREADS) */ - - void _PR_InitSegs(void) - { -@@ -90,4 +90,4 @@ - PR_DELETE(seg); - } - --#endif /* _PR_PTHREADS */ -+#endif /* _PR_PTHREADS || defined(_PR_BTHREADS) */ diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r08-misc.patch b/www-client/mozilla_firefox/patches/2009-09-27/r08-misc.patch deleted file mode 100644 index 76ebbd3f4..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r08-misc.patch +++ /dev/null @@ -1,410 +0,0 @@ -Index: gfx/src/beos/nsFontMetricsBeOS.cpp -=================================================================== ---- gfx/src/beos/nsFontMetricsBeOS.cpp (revision 7) -+++ gfx/src/beos/nsFontMetricsBeOS.cpp (working copy) -@@ -128,12 +128,12 @@ - if (!isgeneric) - { - // non-generic font -- if (count_font_styles((font_family)family.get()) <= 0) -+ if (count_font_styles((char *) family.get()) <= 0) - { - // the specified font does not exist on this computer. - continue; - } -- mFontHandle.SetFamilyAndStyle( (font_family)family.get(), NULL ); -+ mFontHandle.SetFamilyAndStyle( (char *)family.get(), NULL ); - fontfound = PR_TRUE; - break; - } -@@ -158,9 +158,9 @@ - prefs->GetBranch("font.name.", getter_AddRefs(branch)); - branch->GetCharPref(prop, getter_Copies(real_family)); - -- if (!real_family.IsEmpty() && real_family.Length() <= B_FONT_FAMILY_LENGTH && count_font_styles((font_family)real_family.get()) > 0) -+ if (!real_family.IsEmpty() && real_family.Length() <= B_FONT_FAMILY_LENGTH && count_font_styles((char *)real_family.get()) > 0) - { -- mFontHandle.SetFamilyAndStyle( (font_family)real_family.get(), NULL ); -+ mFontHandle.SetFamilyAndStyle( (char *)real_family.get(), NULL ); - fontfound = PR_TRUE; - break; - } -@@ -414,8 +414,8 @@ - nsFontMetricsBeOS::FamilyExists(const nsString& aName) - { - NS_ConvertUTF16toUTF8 family(aName); -- printf("exists? %s", (font_family)family.get()); -- return (count_font_styles((font_family)family.get()) > 0) ? NS_OK : NS_ERROR_FAILURE; -+ printf("exists? %s", (char *)family.get()); -+ return (count_font_styles((char *)family.get()) > 0) ? NS_OK : NS_ERROR_FAILURE; - } - - // useful UTF-8 utility -Index: gfx/src/beos/nsRenderingContextBeOS.cpp -=================================================================== ---- gfx/src/beos/nsRenderingContextBeOS.cpp (revision 7) -+++ gfx/src/beos/nsRenderingContextBeOS.cpp (working copy) -@@ -351,8 +351,11 @@ - if (mCurrentBFont == nsnull) - { - if (mFontMetrics) -- mFontMetrics->GetFontHandle((nsFontHandle)mCurrentBFont); -- -+ { -+ nsFontHandle fontHandle; -+ mFontMetrics->GetFontHandle(fontHandle); -+ mCurrentBFont = (BFont *) fontHandle; -+ } - if (mCurrentBFont) - mView->SetFont(mCurrentBFont); - else -@@ -1127,7 +1130,7 @@ - NS_IMETHODIMP nsRenderingContextBeOS::GetTextDimensions(const PRUnichar* aString, - PRInt32 aLength, PRInt32 aAvailWidth, PRInt32* aBreaks, PRInt32 aNumBreaks, - nsTextDimensions& aDimensions, PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, -- PRInt32* aFontID = nsnull) -+ PRInt32* aFontID) - { - nsresult ret_code = NS_ERROR_FAILURE; - uint8 utf8buf[1024]; -@@ -1160,7 +1163,7 @@ - - NS_IMETHODIMP nsRenderingContextBeOS::GetTextDimensions(const char* aString, PRInt32 aLength, - PRInt32 aAvailWidth,PRInt32* aBreaks, PRInt32 aNumBreaks, nsTextDimensions& aDimensions, -- PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, PRInt32* aFontID = nsnull) -+ PRInt32& aNumCharsFit, nsTextDimensions& aLastWordDimensions, PRInt32* aFontID) - { - // Code is borrowed from win32 implementation including comments. - // Minor changes are introduced due multibyte/utf-8 nature of char* strings handling in BeOS. -Index: toolkit/xre/nsAppRunner.cpp -=================================================================== ---- toolkit/xre/nsAppRunner.cpp (revision 7) -+++ toolkit/xre/nsAppRunner.cpp (working copy) -@@ -1361,9 +1361,10 @@ - #elif defined(XP_BEOS) - int32 cookie = 0; - image_info info; -- -+ do { - if(get_next_image_info(0, &cookie, &info) != B_OK) - return NS_ERROR_FAILURE; -+ } while(info.type != B_APP_IMAGE); - - rv = NS_NewNativeLocalFile(nsDependentCString(info.name), PR_TRUE, - getter_AddRefs(lf)); -Index: toolkit/xre/nsXREDirProvider.cpp -=================================================================== ---- toolkit/xre/nsXREDirProvider.cpp (revision 7) -+++ toolkit/xre/nsXREDirProvider.cpp (working copy) -@@ -76,7 +76,7 @@ - #include "nsILocalFileMac.h" - #endif - #ifdef XP_BEOS --#include -+#include - #include - #endif - #ifdef XP_UNIX -Index: widget/src/beos/nsAppShell.cpp -=================================================================== ---- widget/src/beos/nsAppShell.cpp (revision 7) -+++ widget/src/beos/nsAppShell.cpp (working copy) -@@ -118,10 +118,28 @@ - // NOTE: this needs to be run from within the main application thread - char portname[64]; - char semname[64]; -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)); - PR_snprintf(semname, sizeof(semname), "sync%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - - #ifdef DEBUG - printf("nsAppShell::Create portname: %s, semname: %s\n", portname, semname); -@@ -342,8 +360,22 @@ - { - // should we check for eventport initialization ? - char portname[64]; -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)/*PR_GetCurrentThread()*/); -+ } while(iinfo.type != B_APP_IMAGE); - - if((eventport = find_port(portname)) < 0) - { -Index: widget/src/beos/nsDragService.cpp -=================================================================== ---- widget/src/beos/nsDragService.cpp (revision 7) -+++ widget/src/beos/nsDragService.cpp (working copy) -@@ -255,7 +255,7 @@ - bool noBitmap = true; - - //This is the code for image-dragging, currently disabled. See comments in beginning of file. --# ifdef 0 -+#if 0 - do - { - PRUint32 dataSize; -Index: widget/src/beos/nsToolkit.cpp -=================================================================== ---- widget/src/beos/nsToolkit.cpp (revision 7) -+++ widget/src/beos/nsToolkit.cpp (working copy) -@@ -42,6 +42,7 @@ - #include "nsSwitchToUIThread.h" - #include "plevent.h" - #include "prprf.h" -+#include - - // - // Static thread local storage index of the Toolkit -@@ -89,10 +90,26 @@ - delete info; - - // system wide unique names -+ int32 cookie = 0; -+ image_info iinfo; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) PR_GetCurrentThread()); -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - -- port_id event = create_port(100, portname); -+ port_id event = create_port(200, portname); - - while(read_port(event, &code, &id, sizeof(id)) >= 0) - { -@@ -130,6 +147,7 @@ - { - localthread = false; - mGuiThread = NULL; -+ mGUIThreadID = 0; - } - - -@@ -188,6 +206,22 @@ - } - } - -+ image_info iinfo; -+ int32 cookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ mGUIThreadID = find_thread(leaf); -+ } -+ else -+ { -+ mGUIThreadID = find_thread(0); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - // at this point the thread is running - PR_ExitMonitor(monitor); - PR_DestroyMonitor(monitor); -@@ -218,7 +252,22 @@ - } - - cached = false; -- -+ image_info iinfo; -+ int32 cookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ mGUIThreadID = find_thread(leaf); -+ } -+ else -+ { -+ mGUIThreadID = find_thread(0); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - return NS_OK; - } - -@@ -227,9 +276,8 @@ - if(! cached) - { - char portname[64]; -- - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) mGuiThread); -+ (long unsigned) mGUIThreadID); - - eventport = find_port(portname); - -Index: widget/src/beos/nsToolkit.h -=================================================================== ---- widget/src/beos/nsToolkit.h (revision 7) -+++ widget/src/beos/nsToolkit.h (working copy) -@@ -71,6 +71,7 @@ - protected: - // Thread Id of the "main" Gui thread. - PRThread *mGuiThread; -+ thread_id mGUIThreadID; - static void RunPump(void* arg); - void GetInterface(); - bool cached; -Index: xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h -=================================================================== ---- xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h (revision 7) -+++ xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h (working copy) -@@ -138,8 +138,13 @@ - #endif - - #elif defined(__BEOS__) -+#if (__GNUC__ == 2) - #define CFRONT_STYLE_THIS_ADJUST -+#else -+#define THUNK_BASED_THIS_ADJUST -+#endif - -+ - #elif defined(__sun__) || defined(__sun) - #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ - #define THUNK_BASED_THIS_ADJUST -Index: xpcom/threads/plevent.c -=================================================================== ---- xpcom/threads/plevent.c (revision 7) -+++ xpcom/threads/plevent.c (working copy) -@@ -66,6 +66,8 @@ - - #if defined(XP_BEOS) - #include -+#include -+#include - #endif - - #if defined(XP_MACOSX) -@@ -908,10 +910,39 @@ - - char portname[64]; - char semname[64]; -+ -+struct _MDThread -+{ -+ thread_id tid; -+ sem_id joinSem; -+ PRBool is_joining; -+}; -+ struct _MDThread md; -+ -+ -+//#include "private/primpl.h" -+ image_info iinfo; -+ int32 icookie = 0; -+ char *leaf = NULL; -+ do { -+ if (get_next_image_info(0, &icookie, &iinfo) == B_OK && -+ strlen(iinfo.name) > 0 && -+ (leaf = strrchr(iinfo.name, '/')) != NULL) -+ { -+ leaf++; -+ PR_snprintf(portname, sizeof(portname), "event%lx", -+ (long unsigned) find_thread(leaf)); -+ PR_snprintf(semname, sizeof(semname), "sync%lx", -+ (long unsigned) find_thread(leaf)); -+ } -+ else -+ { - PR_snprintf(portname, sizeof(portname), "event%lx", -- (long unsigned) self->handlerThread); -+ (long unsigned) find_thread(0)); - PR_snprintf(semname, sizeof(semname), "sync%lx", -- (long unsigned) self->handlerThread); -+ (long unsigned) find_thread(0)); -+ } -+ } while(iinfo.type != B_APP_IMAGE); - - self->eventport = find_port(portname); - while(get_next_sem_info(0, &cookie, &info) == B_OK) -@@ -931,7 +962,7 @@ - { - delete_port( self->eventport ); - } -- self->eventport = create_port(200, portname); -+ self->eventport = create_port(512, portname); - /* We don't use the sem, but it has to be there - */ - create_sem(0, semname); -@@ -1264,6 +1295,7 @@ - thread_id waitingThread; - }; - -+ - static PRStatus - _pl_NativeNotify(PLEventQueue* self) - { -@@ -1274,6 +1306,7 @@ - - return PR_SUCCESS; /* Is this correct? */ - } -+ - #endif /* XP_BEOS */ - - #if defined(XP_MACOSX) -Index: xpfe/bootstrap/nsSigHandlers.cpp -=================================================================== ---- xpfe/bootstrap/nsSigHandlers.cpp (revision 7) -+++ xpfe/bootstrap/nsSigHandlers.cpp (working copy) -@@ -60,7 +60,8 @@ - #endif - - #ifdef XP_BEOS --#include -+#include -+#include - #include - #include "nsCOMPtr.h" - #include "nsIServiceManager.h" diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r09-sunbird-options-fix.patch b/www-client/mozilla_firefox/patches/2009-09-27/r09-sunbird-options-fix.patch deleted file mode 100644 index 2c91e2aa3..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r09-sunbird-options-fix.patch +++ /dev/null @@ -1,18 +0,0 @@ -Index: calendar/base/content/preferences/preferences.xul -=================================================================== ---- calendar/base/content/preferences/preferences.xul (revision 7) -+++ calendar/base/content/preferences/preferences.xul (working copy) -@@ -71,8 +71,13 @@ - style="&prefWindow.styleGNOME;"> - #endif - #endif -+#ifdef XP_BEOS -+ title="&prefWindow.titleGNOME;" -+ style="&prefWindow.styleGNOME;"> - #endif -+#endif - -+ -

Bookmarks Toolbar Folder

-
Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar -

--

Getting Started --
Latest Headlines -+
Haiku WebSite -+
Nightly Builds -

-


--

Mozilla Firefox

-+

BeZilla Browser

-

--

Help and Tutorials --
Customize Firefox --
Get Involved --
About Us -+
BeZilla Blog -+
Report an Issue -+
View Known Issues -

-+

Haiku Bookmarks

-+

-+

Nightly Builds -+
Optional Packages -+
Bug Tracker -+
Haiku User Guide -+
BeBook -+
Welcome -+

-+

Software for Haiku

-+

-+

OSDrawer.net -+
HaikuWare -+
Zeta-Games -+
BeBits -+

-+

Haiku WebSite -+ -

-Index: profile/defaults/bookmarks.html -=================================================================== ---- profile/defaults/bookmarks.html (revision 7) -+++ profile/defaults/bookmarks.html (working copy) -@@ -7,35 +7,34 @@ -

Bookmarks

- -

--

Personal Toolbar Folder

--

--

mozilla.org --
mozillaZine --
mozdev.org -+
Get Bookmark Add-ons -+
-+

Bookmarks Toolbar Folder

-+
Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar -+

-+

Haiku WebSite -+
Nightly Builds -

--

Mozilla Project

-+
-+

BeZilla Browser

-

--

mozilla.org

--

--

The Mozilla Organization --
SeaMonkey Project --
Mozilla Products --
Feedback --

--

Community & Support

--

--

mozillaZine --
SeaMonkey Support (mozillaZine) --
mozdev.org --
Mozilla Plug-in Information (mozdev) --
Mozilla Extensions (mozdev) --

-+

BeZilla Blog -+
Report an Issue -+
View Known Issues -

--

Search the Web

-+

Haiku Bookmarks

-

--

Google --
Google Groups --
Google News -+
Nightly Builds -+
Optional Packages -+
Bug Tracker -+

-+

Software for Haiku

-+

-+

OSDrawer.net -+
HaikuWare -+
Zeta-Games -+
BeBits -

--


-+
Haiku WebSite -+ -

-Index: browser/base/content/dynamic-bebook-v1.html -=================================================================== ---- browser/base/content/dynamic-bebook-v1.html (revision 0) -+++ browser/base/content/dynamic-bebook-v1.html (revision 0) -@@ -0,0 +1,32 @@ -+ -+ -+ Opening the welcome page... -+ -+ -+ -+ Opening the welcome page... -+ -+ -Index: browser/base/content/dynamic-bebook-v2.html -=================================================================== ---- browser/base/content/dynamic-bebook-v2.html (revision 0) -+++ browser/base/content/dynamic-bebook-v2.html (revision 0) -@@ -0,0 +1,56 @@ -+ -+ -+ -+ -+ -+ -+Welcome to Haiku! -+ -+ -+ -+ -+ -+ -+ -Index: browser/base/content/dynamic-userguide-v1.html -=================================================================== ---- browser/base/content/dynamic-userguide-v1.html (revision 0) -+++ browser/base/content/dynamic-userguide-v1.html (revision 0) -@@ -0,0 +1,32 @@ -+ -+ -+ Opening the welcome page... -+ -+ -+ -+ Opening the welcome page... -+ -+ -Index: browser/base/content/dynamic-userguide-v2.html -=================================================================== ---- browser/base/content/dynamic-userguide-v2.html (revision 0) -+++ browser/base/content/dynamic-userguide-v2.html (revision 0) -@@ -0,0 +1,56 @@ -+ -+ -+ -+ -+ -+ -+Welcome to Haiku! -+ -+ -+ -+ -+ -+ -+ -Index: browser/base/content/dynamic-welcome-v1.html -=================================================================== ---- browser/base/content/dynamic-welcome-v1.html (revision 0) -+++ browser/base/content/dynamic-welcome-v1.html (revision 0) -@@ -0,0 +1,32 @@ -+ -+ -+ Opening the welcome page... -+ -+ -+ -+ Opening the welcome page... -+ -+ -Index: browser/base/content/dynamic-welcome-v2.html -=================================================================== ---- browser/base/content/dynamic-welcome-v2.html (revision 0) -+++ browser/base/content/dynamic-welcome-v2.html (revision 0) -@@ -0,0 +1,56 @@ -+ -+ -+ -+ -+ -+ -+Welcome to Haiku! -+ -+ -+ -+ -+ -+ -+ diff --git a/www-client/mozilla_firefox/patches/2009-09-27/r12-releasenotes.patch b/www-client/mozilla_firefox/patches/2009-09-27/r12-releasenotes.patch deleted file mode 100644 index 500251404..000000000 --- a/www-client/mozilla_firefox/patches/2009-09-27/r12-releasenotes.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: browser/app/firefox-branding.js -=================================================================== ---- browser/app/firefox-branding.js (revision 7) -+++ browser/app/firefox-branding.js (working copy) -@@ -1,5 +1,4 @@ - pref("startup.homepage_override_url","http://www.mozilla.org/projects/%APP%/%VERSION%/whatsnew/"); --pref("startup.homepage_welcome_url","http://www.mozilla.org/projects/%APP%/%VERSION%/firstrun/"); - // URL user can browse to manually if for some reason all update installation - // attempts fail. - pref("app.update.url.manual", "http://www.mozilla.org/products/%APP%/"); -@@ -8,7 +7,7 @@ - pref("app.update.url.details", "http://www.mozilla.org/projects/%APP%/"); - - // Release notes URL --pref("app.releaseNotesURL", "http://www.mozilla.org/projects/%APP%/%VERSION%/releasenotes/"); -+pref("app.releaseNotesURL", "about:buildconfig"); - - // Search codes belong only in builds with official branding - pref("browser.search.param.yahoo-fr", ""); diff --git a/www-client/mozilla_firefox/persdict.dat b/www-client/mozilla_firefox/persdict.dat deleted file mode 100644 index abc3037a0..000000000 --- a/www-client/mozilla_firefox/persdict.dat +++ /dev/null @@ -1,65 +0,0 @@ -ActivityMonitor -AddFilesToHaikuImage -AddGroupToHaikuImage -AddOptionalHaikuImagePackages -AddSourceDirectoryToHaikuImage -AddSymlinkToHaikuImage -AddTargetVariableToScript -AddUserToHaikuImage -AddVariableToScript -AppendToConfigVar -BeHappy -BeOS -BePDF -BeZilla -BeZillaBrowser -Berlios -CDPlayer -CodyCam -CopyDirectoryToHaikuImage -DeferredSubInclude -DefineBuildProfile -DeskCalc -Deskbar -DiskProbe -DiskUsage -DriveSetup -DriveUsage -GParted -Jamfile -LaunchBox -MediaPlayer -MidiPlayer -MidiPlayerSettings -NetPenguin -NetSurf -NetworkStatus -OpenSSH -OpenSSL -OptionalPackages -PackageInstaller -ProcessController -Qemu -Screenshot -SetConfigVar -ShowImage -SoundRecorder -StyledEdit -TextSearch -UnzipArchiveToHaikuImage -UserBuildConfig -UserBuildConfigRulePostBuildTargets -UserBuildConfigRulePostImage -UserBuildConfigRulePreImage -UserShutdownScript -VLC -VMWare -VideoLAN -VirtualBox -Vmware -WonderBrush -bootman -makebootable -preflet -replicant -zbeos diff --git a/www-client/mozilla_firefox/select-a-mozconfig/browser-debug.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/browser-debug.mozconfig deleted file mode 100644 index 821711fd9..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/browser-debug.mozconfig +++ /dev/null @@ -1,70 +0,0 @@ -# ------------------ -# Browser, DEBUG -# ------------------ - -### Tags for packaged-filename -export MOZ_PKG_SPECIAL=DEBUG -mk_add_options MOZ_PKG_SPECIAL=DEBUG - -. $topsrcdir/browser/config/mozconfig -mk_add_options MOZ_CO_PROJECT=browser - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/debug-browser - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -# Reduce build size and time by omitting IPv6 support (not needed on BeOS) -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -ac_add_options --enable-debug -ac_add_options --disable-optimize -ac_add_options --disable-reorder -ac_add_options --disable-strip -ac_add_options --disable-static -ac_add_options --enable-shared -#ac_add_options --enable-tests - -#--disable-logging #--disable-logging Disable logging facilities - -ac_add_options --enable-nspr-threads diff --git a/www-client/mozilla_firefox/select-a-mozconfig/browser.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/browser.mozconfig deleted file mode 100644 index 1950001c5..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/browser.mozconfig +++ /dev/null @@ -1,80 +0,0 @@ -# ------------------ -# Browser, Optimized -# ------------------ - -. $topsrcdir/browser/config/mozconfig -mk_add_options MOZ_CO_PROJECT=browser - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/browser - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -ac_add_options --enable-nspr-threads - -# Reduce build size and time by omitting test suite and IPv6 support (not needed on BeOS) -ac_add_options --disable-tests -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -export BUILD_OPT=1 -mk_add_options BUILD_OPT=1 -ac_add_options --enable-static --disable-shared -ac_add_options --enable-strip -ac_add_options --enable-reorder -#ac_add_options --enable-js-static-build - -# ---------------------------------------------------------------------------- -# GCC Specific Optimiztions. -# ---------------------------- -# -# Uncomment the first line for GCC 2, the second line for GCC 4. -# -# --- GCC2 --- -ac_add_options '--enable-optimize=-O3 -march=pentium -mcpu=pentiumpro -fthread-jumps -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -fexpensive-optimizations -malign-functions=4 -malign-jumps=4' -# -# --- GCC4 --- -#ac_add_options '--enable-optimize=-O1 -march=i586 -mtune=generic' -# -# ---------------------------------------------------------------------------- - - diff --git a/www-client/mozilla_firefox/select-a-mozconfig/calendar.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/calendar.mozconfig deleted file mode 100644 index c733a36c5..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/calendar.mozconfig +++ /dev/null @@ -1,81 +0,0 @@ -# ------------------ -# Calendar, Optimized -# ------------------ - -. $topsrcdir/calendar/sunbird/config/mozconfig -mk_add_options MOZ_CO_PROJECT=calendar - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/calendar - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -ac_add_options --enable-nspr-threads - -# Reduce build size and time by omitting test suite and IPv6 support (not needed on BeOS) -ac_add_options --disable-tests -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -export BUILD_OPT=1 -mk_add_options BUILD_OPT=1 -ac_add_options --enable-static --disable-shared -ac_add_options --enable-strip -ac_add_options --enable-reorder -#ac_add_options --enable-js-static-build - -# ---------------------------------------------------------------------------- -# GCC Specific Optimiztions. -# ---------------------------- -# -# Uncomment the first line for GCC 2, the second line for GCC 4. -# -# --- GCC2 --- -ac_add_options '--enable-optimize=-O3 -march=pentium -mcpu=pentiumpro -fthread-jumps -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -fexpensive-optimizations -malign-functions=4 -malign-jumps=4' -# -# --- GCC4 --- -#aac_add_options '--enable-optimize=-O1 -march=i586 -mtune=generic' -# -# ---------------------------------------------------------------------------- - - - diff --git a/www-client/mozilla_firefox/select-a-mozconfig/mailnews.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/mailnews.mozconfig deleted file mode 100644 index 03fc3b54c..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/mailnews.mozconfig +++ /dev/null @@ -1,81 +0,0 @@ -# ------------------ -# MailNews, Optimized -# ------------------ - -. $topsrcdir/mail/config/mozconfig -mk_add_options MOZ_CO_PROJECT=mail - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/mailnews - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -ac_add_options --enable-nspr-threads - -# Reduce build size and time by omitting test suite and IPv6 support (not needed on BeOS) -ac_add_options --disable-tests -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -export BUILD_OPT=1 -mk_add_options BUILD_OPT=1 -ac_add_options --enable-static --disable-shared -ac_add_options --enable-strip -ac_add_options --enable-reorder -#ac_add_options --enable-js-static-build - -# ---------------------------------------------------------------------------- -# GCC Specific Optimiztions. -# ---------------------------- -# -# Uncomment the first line for GCC 2, the second line for GCC 4. -# -# --- GCC2 --- -ac_add_options '--enable-optimize=-O3 -march=pentium -mcpu=pentiumpro -fthread-jumps -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -fexpensive-optimizations -malign-functions=4 -malign-jumps=4' -# -# --- GCC4 --- -#ac_add_options '--enable-optimize=-O1 -march=i586 -mtune=generic' -# -# ---------------------------------------------------------------------------- - - - diff --git a/www-client/mozilla_firefox/select-a-mozconfig/suite-debug.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/suite-debug.mozconfig deleted file mode 100644 index a88145d2d..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/suite-debug.mozconfig +++ /dev/null @@ -1,70 +0,0 @@ -# ------------------ -# suite, DEBUG -# ------------------ - -### Tags for packaged-filename -export MOZ_PKG_SPECIAL=DEBUG -mk_add_options MOZ_PKG_SPECIAL=DEBUG - -mk_add_options MOZ_CO_PROJECT=suite -ac_add_options --enable-application=suite - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/debug-suite - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -# Reduce build size and time by omitting IPv6 support (not needed on BeOS) -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -ac_add_options --enable-debug -ac_add_options --disable-optimize -ac_add_options --disable-reorder -ac_add_options --disable-strip -ac_add_options --disable-static -ac_add_options --enable-shared -#ac_add_options --enable-tests - -#--disable-logging #--disable-logging Disable logging facilities - -ac_add_options --enable-nspr-threads diff --git a/www-client/mozilla_firefox/select-a-mozconfig/suite-just-browser.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/suite-just-browser.mozconfig deleted file mode 100644 index 96059216a..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/suite-just-browser.mozconfig +++ /dev/null @@ -1,89 +0,0 @@ -# ------------------ -# Suite Just Browser, Optimized -# ------------------ - -mk_add_options MOZ_CO_PROJECT=suite -ac_add_options --enable-application=suite - -export MOZ_PKG_SPECIAL=JustBrowser -mk_add_options MOZ_PKG_SPECIAL=JustBrowser - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/suite-JustBrowser - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Options for JustBrowser -ac_add_options --disable-mailnews -ac_add_options --disable-composer -#ac_add_options --enable-plaintext-editor-only -#ac_add_options --disable-irc - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -ac_add_options --enable-nspr-threads - -# Reduce build size and time by omitting test suite and IPv6 support (not needed on BeOS) -ac_add_options --disable-tests -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -export BUILD_OPT=1 -mk_add_options BUILD_OPT=1 -ac_add_options --enable-static --disable-shared -ac_add_options --enable-strip -ac_add_options --enable-reorder -#ac_add_options --enable-js-static-build - -# ---------------------------------------------------------------------------- -# GCC Specific Optimiztions. -# ---------------------------- -# -# Uncomment the first line for GCC 2, the second line for GCC 4. -# -# --- GCC2 --- -ac_add_options '--enable-optimize=-O3 -march=pentium -mcpu=pentiumpro -fthread-jumps -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -fexpensive-optimizations -malign-functions=4 -malign-jumps=4' -# -# --- GCC4 --- -#ac_add_options '--enable-optimize=-O1 -march=i586 -mtune=generic' -# -# ---------------------------------------------------------------------------- - - diff --git a/www-client/mozilla_firefox/select-a-mozconfig/suite.mozconfig b/www-client/mozilla_firefox/select-a-mozconfig/suite.mozconfig deleted file mode 100644 index f2e2fbbec..000000000 --- a/www-client/mozilla_firefox/select-a-mozconfig/suite.mozconfig +++ /dev/null @@ -1,80 +0,0 @@ -# ------------------ -# Suite, Optimized -# ------------------ - -mk_add_options MOZ_CO_PROJECT=suite -ac_add_options --enable-application=suite - -# Required to download the right version of the source code -mk_add_options MOZ_CO_TAG=MOZILLA_1_8_BRANCH - -export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -mk_add_options CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - -# ----------------------------------------------------- -# --- EDIT THESE VALUES TO REFLECT YOUR LOCAL BUILD --- -export GLIB_CONFIG=/boot/common/bin/glib-config -mk_add_options GLIB_CONFIG=/boot/common/bin/glib-config - -export LIBIDL_CONFIG=/boot/common/bin/libIDL-config -mk_add_options LIBIDL_CONFIG=/boot/common/bin/libIDL-config - -# --- Set the outputdir for the build --- -mk_add_options MOZ_OBJDIR=/moz_obj/suite - -# autoconf 2.13 was built by -#./configure --prefix=/boot/common/autoconf-2.13 --program-suffix=-2.13 --bindir=/boot/common/bin/ -# make && make install -export AUTOCONF='/boot/common/bin/autoconf-2.13 -m /boot/common/autoconf-2.13/share/autoconf' -# ----------------------------------------------------- - -# Automatic updates not currently supported on BeOS. Delete this when we add this feature. -ac_add_options --disable-updater - -# We don't have Java for BeOS yet. While this builds fine, it is not useful. -ac_add_options --disable-oji - -# Build without Cairo -ac_add_options --disable-svg -ac_add_options --disable-canvas - -# Utilize Haiku's default shared libraries -ac_add_options --with-system-jpeg -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -ac_add_options --enable-nspr-threads - -# Reduce build size and time by omitting test suite and IPv6 support (not needed on BeOS) -ac_add_options --disable-tests -ac_add_options --disable-ipv6 - -# Required configure options -ac_add_options --enable-cpp-rtti - -# Eliminate lots of relatively useless warnings during build -ac_add_options --disable-cpp-exceptions - -# Optional optimizations -export BUILD_OPT=1 -mk_add_options BUILD_OPT=1 -ac_add_options --enable-static --disable-shared -ac_add_options --enable-strip -ac_add_options --enable-reorder -#ac_add_options --enable-js-static-build - -# ---------------------------------------------------------------------------- -# GCC Specific Optimiztions. -# ---------------------------- -# -# Uncomment the first line for GCC 2, the second line for GCC 4. -# -# --- GCC2 --- -ac_add_options '--enable-optimize=-O3 -march=pentium -mcpu=pentiumpro -fthread-jumps -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -fexpensive-optimizations -malign-functions=4 -malign-jumps=4' -# --- GCC4 --- -#ac_add_options '--enable-optimize=-O1 -march=i586 -mtune=generic' -# -# ---------------------------------------------------------------------------- - - -