I've gotten gears working with Firefox 3.5 (shiretoko) on x86_64 Ubuntu 9.04 (jaunty) using the latest svn revision (3373). I've posted an xpi at http://gkovacs.xvm.mit.edu/google-gears-firefox-3.5-x86_64/gears-linux-x86_64-0.5.25.0.xpi
It was built from http://gears.googlecode.com/svn/trunk revision 3373 If you'd like to build it yourself, use the following commands: svn co http://gears.googlecode.com/svn/trunk -r3373 cd trunk wget http://gkovacs.xvm.mit.edu/google-gears-firefox-3.5-x86_64/gears-gcc433.diff patch -p0 -i gears-gcc433.diff make Here is the patch, if you'd prefer to download see http://gkovacs.xvm.mit.edu/google-gears-firefox-3.5-x86_64/gears-gcc433.diff Index: geolocation/backoff_manager.cc =================================================================== --- geolocation/backoff_manager.cc (revision 3373) +++ geolocation/backoff_manager.cc (working copy) @@ -26,6 +26,7 @@ #include "gears/geolocation/backoff_manager.h" #include <assert.h> +#include <stdlib.h> // The baseline minimum period between network requests. static const int kBaselineMinimumRequestInterval = 1000 * 5; // 5 seconds Index: cctests/test.cc =================================================================== --- cctests/test.cc (revision 3373) +++ cctests/test.cc (working copy) @@ -700,15 +700,15 @@ bool ok = false; JsParamType t = context->GetArgumentType(1); - if (type == STRING16(L"bool") && t == JSPARAM_BOOL || - type == STRING16(L"int") && t == JSPARAM_INT || - type == STRING16(L"double") && t == JSPARAM_DOUBLE || - type == STRING16(L"string") && t == JSPARAM_STRING16 || - type == STRING16(L"null") && t == JSPARAM_NULL || - type == STRING16(L"undefined") && t == JSPARAM_UNDEFINED || - type == STRING16(L"array") && t == JSPARAM_ARRAY || - type == STRING16(L"function") && t == JSPARAM_FUNCTION || - type == STRING16(L"object") && t == JSPARAM_OBJECT) { + if ((type == STRING16(L"bool") && t == JSPARAM_BOOL) || + (type == STRING16(L"int") && t == JSPARAM_INT) || + (type == STRING16(L"double") && t == JSPARAM_DOUBLE) || + (type == STRING16(L"string") && t == JSPARAM_STRING16) || + (type == STRING16(L"null") && t == JSPARAM_NULL) || + (type == STRING16(L"undefined") && t == JSPARAM_UNDEFINED) || + (type == STRING16(L"array") && t == JSPARAM_ARRAY) || + (type == STRING16(L"function") && t == JSPARAM_FUNCTION) || + (type == STRING16(L"object") && t == JSPARAM_OBJECT)) { ok = true; } context->SetReturnValue(JSPARAM_BOOL, &ok); Index: desktop/desktop.cc =================================================================== --- desktop/desktop.cc (revision 3373) +++ desktop/desktop.cc (working copy) @@ -216,14 +216,14 @@ } // Resolve the icon urls - if (!shortcut_info->icon16x16.url.empty() && - !ResolveUrl(&shortcut_info->icon16x16.url, &error_) || - !shortcut_info->icon32x32.url.empty() && - !ResolveUrl(&shortcut_info->icon32x32.url, &error_) || - !shortcut_info->icon48x48.url.empty() && - !ResolveUrl(&shortcut_info->icon48x48.url, &error_) || - !shortcut_info->icon128x128.url.empty() && - !ResolveUrl(&shortcut_info->icon128x128.url, &error_)) { + if ((!shortcut_info->icon16x16.url.empty() && + !ResolveUrl(&shortcut_info->icon16x16.url, &error_)) || + (!shortcut_info->icon32x32.url.empty() && + !ResolveUrl(&shortcut_info->icon32x32.url, &error_)) || + (!shortcut_info->icon48x48.url.empty() && + !ResolveUrl(&shortcut_info->icon48x48.url, &error_)) || + (!shortcut_info->icon128x128.url.empty() && + !ResolveUrl(&shortcut_info->icon128x128.url, &error_))) { return false; } Index: base/common/string16.h =================================================================== --- base/common/string16.h (revision 3373) +++ base/common/string16.h (working copy) @@ -46,6 +46,7 @@ #define GEARS_BASE_COMMON_STRING16_H__ #include <string> +#include <string.h> #include "gears/base/common/basictypes.h" // Need to cast literals (Linux, OSX) and SQLite void* retvals (all platforms) Index: base/common/string_utils.cc =================================================================== --- base/common/string_utils.cc (revision 3373) +++ base/common/string_utils.cc (working copy) @@ -25,6 +25,7 @@ #include "gears/base/common/string_utils.h" #include "third_party/convert_utf/ConvertUTF.h" +#include <limits.h> #if defined(OS_ANDROID) // Android is missing wcslen. This is just a wide character strlen. Index: base/common/http_utils.cc =================================================================== --- base/common/http_utils.cc (revision 3373) +++ base/common/http_utils.cc (working copy) @@ -27,6 +27,7 @@ #include <iterator> #include <vector> +#include <stdlib.h> #include "gears/base/common/http_utils.h" // ----------------------------------------------------------------------
