Gentoo Archives: gentoo-commits

From: "Raul Porcel (armin76)" <armin76@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in src/patchsets/mozilla-firefox/3.0.8: 000_flex-configure-LANG.patch 001-firefox_gentoo_install_dirs.patch 003-bz386904_config_rules_install_dist_files.patch 005-installer_shouldnt_copy_xulrunner.patch 007-xulonly-dont_depend_on_nspr_sources.patch 009-xulonly-nspr_flags_by_pkg_config_hack.patch 020_noxul-mips-asm.patch 021_noxul-mips-fpic.patch 030-firefox_encode_spaces.patch 055_firefox-2.0_gfbsd-pthreads.patch 063_firefox-rpath-3.patch 064_noxul-nsplugins-v3.patch 068_noxul-nss-gentoo-fix.patch 080_gcc-4.4-elif.patch 090-unaligned.patch 096_glibc-maxpathlen.patch 097_noxul_glibc-maxpathlen.patch 100-system-hunspell-corrections.patch 300-xulonly-gnome_firefox_default_browser.patch 667_typeahead-broken-v4.patch 800-noxul-bsd-include.patch
Date: Fri, 03 Apr 2009 09:52:53
Message-Id: E1Lpg4v-0004Rx-1k@stork.gentoo.org
1 armin76 09/04/03 09:52:49
2
3 Added: 000_flex-configure-LANG.patch
4 001-firefox_gentoo_install_dirs.patch
5 003-bz386904_config_rules_install_dist_files.patch
6 005-installer_shouldnt_copy_xulrunner.patch
7 007-xulonly-dont_depend_on_nspr_sources.patch
8 009-xulonly-nspr_flags_by_pkg_config_hack.patch
9 020_noxul-mips-asm.patch 021_noxul-mips-fpic.patch
10 030-firefox_encode_spaces.patch
11 055_firefox-2.0_gfbsd-pthreads.patch
12 063_firefox-rpath-3.patch
13 064_noxul-nsplugins-v3.patch
14 068_noxul-nss-gentoo-fix.patch
15 080_gcc-4.4-elif.patch 090-unaligned.patch
16 096_glibc-maxpathlen.patch
17 097_noxul_glibc-maxpathlen.patch
18 100-system-hunspell-corrections.patch
19 300-xulonly-gnome_firefox_default_browser.patch
20 667_typeahead-broken-v4.patch
21 800-noxul-bsd-include.patch
22 Log:
23 Bump patchset to fix unaligned accesses, bug #251603, patch by Friedrich Oslage <bluebird at gentoo dot org>
24
25 Revision Changes Path
26 1.1 src/patchsets/mozilla-firefox/3.0.8/000_flex-configure-LANG.patch
27
28 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/000_flex-configure-LANG.patch?rev=1.1&view=markup
29 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/000_flex-configure-LANG.patch?rev=1.1&content-type=text/plain
30
31 Index: 000_flex-configure-LANG.patch
32 ===================================================================
33 The LANG vars aren't reset early enough so when sed tries to use [a-zA-Z] in
34 option parsing, it may break.
35
36 http://bugs.gentoo.org/103483
37
38 --- configure
39 +++ configure
40 @@ -54,6 +54,16 @@
41 infodir='${prefix}/info'
42 mandir='${prefix}/man'
43
44 +# NLS nuisances.
45 +# Only set these to C if already set. These must not be set unconditionally
46 +# because not all systems understand e.g. LANG=C (notably SCO).
47 +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
48 +# Non-C LC_CTYPE values break the ctype check.
49 +if test "${LANG+set}" = set; then LANG=C; export LANG; fi
50 +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
51 +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
52 +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
53 +
54 # Initialize some other variables.
55 subdirs=
56 MFLAGS= MAKEFLAGS=
57 @@ -452,16 +463,6 @@
58 esac
59 done
60
61 -# NLS nuisances.
62 -# Only set these to C if already set. These must not be set unconditionally
63 -# because not all systems understand e.g. LANG=C (notably SCO).
64 -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
65 -# Non-C LC_CTYPE values break the ctype check.
66 -if test "${LANG+set}" = set; then LANG=C; export LANG; fi
67 -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
68 -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
69 -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
70 -
71 # confdefs.h avoids OS command line length limits that DEFS can exceed.
72 rm -rf conftest* confdefs.h
73 # AIX cpp loses on an empty file, so make sure it contains at least a newline.
74
75
76
77 1.1 src/patchsets/mozilla-firefox/3.0.8/001-firefox_gentoo_install_dirs.patch
78
79 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/001-firefox_gentoo_install_dirs.patch?rev=1.1&view=markup
80 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/001-firefox_gentoo_install_dirs.patch?rev=1.1&content-type=text/plain
81
82 Index: 001-firefox_gentoo_install_dirs.patch
83 ===================================================================
84 --- config/autoconf.mk.in.orig 2007-08-03 22:02:32.000000000 +0200
85 +++ config/autoconf.mk.in 2007-08-03 22:07:00.000000000 +0200
86 @@ -58,14 +58,14 @@
87 prefix = @prefix@
88 exec_prefix = @exec_prefix@
89 bindir = @bindir@
90 -includedir = @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
91 +includedir = @includedir@/mozilla-firefox
92 libdir = @libdir@
93 datadir = @datadir@
94 mandir = @mandir@
95 -idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
96 +idldir = $(includedir)/idl
97
98 -installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
99 -sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
100 +installdir = $(libdir)/mozilla-firefox
101 +sdkdir = $(libdir)/mozilla-firefox
102
103 DIST = $(DEPTH)/dist
104 LIBXUL_SDK = @LIBXUL_SDK@
105
106
107
108 1.1 src/patchsets/mozilla-firefox/3.0.8/003-bz386904_config_rules_install_dist_files.patch
109
110 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/003-bz386904_config_rules_install_dist_files.patch?rev=1.1&view=markup
111 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/003-bz386904_config_rules_install_dist_files.patch?rev=1.1&content-type=text/plain
112
113 Index: 003-bz386904_config_rules_install_dist_files.patch
114 ===================================================================
115 This is from:
116 https://bugzilla.mozilla.org/show_bug.cgi?id=386904
117 https://bugzilla.mozilla.org/attachment.cgi?id=270967
118
119
120 -- Summary:
121
122 This patch implements DIST_FILES install:: target as well as
123 DIST_CHROME_FILES install target.
124
125 -- Evaluation:
126
127 DIST_FILES is now used in browser/app/Makefile.in to install
128 application.ini; however, DEST_FILES is only implemented for
129 libs::, but not for install::.
130
131 In consequence, make install'ed installs of firefox now break
132 with missing application.ini file.
133
134 When writing this fix, it became obvious that DIST_CHROME_FILES
135 install: target is missing too ... though it doesn't cause any
136 problems because its not really used.
137
138 ---
139 config/rules.mk | 28 ++++++++++++++++++++++++++++
140 1 file changed, 28 insertions(+)
141
142 Index: mozilla/config/rules.mk
143 ===================================================================
144 --- mozilla.orig/config/rules.mk 2007-08-18 15:15:17.000000000 +0000
145 +++ mozilla/config/rules.mk 2007-08-18 15:15:36.000000000 +0000
146 @@ -1699,28 +1699,56 @@
147 @$(EXIT_ON_ERROR) \
148 for f in $(DIST_FILES); do \
149 dest=$(FINAL_TARGET)/`basename $$f`; \
150 $(RM) -f $$dest; \
151 $(PYTHON) $(MOZILLA_DIR)/config/Preprocessor.py \
152 $(XULAPP_DEFINES) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) \
153 $(srcdir)/$$f > $$dest; \
154 done
155 +
156 +install:: $(DIST_FILES)
157 +ifndef XPI_NAME
158 +ifndef NO_INSTALL
159 + @$(EXIT_ON_ERROR) \
160 + for f in $(DIST_FILES); do \
161 + dest=$(DESTDIR)$(mozappdir)/`basename $$f`; \
162 + $(RM) -f $$dest; \
163 + $(PYTHON) $(MOZILLA_DIR)/config/Preprocessor.py \
164 + $(XULAPP_DEFINES) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) \
165 + $(srcdir)/$$f > $$dest; \
166 + done
167 +endif
168 +endif
169 endif
170
171 ifneq ($(DIST_CHROME_FILES),)
172 libs:: $(DIST_CHROME_FILES)
173 @$(EXIT_ON_ERROR) \
174 for f in $(DIST_CHROME_FILES); do \
175 dest=$(FINAL_TARGET)/chrome/`basename $$f`; \
176 $(RM) -f $$dest; \
177 $(PYTHON) $(MOZILLA_DIR)/config/Preprocessor.py \
178 $(XULAPP_DEFINES) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) \
179 $(srcdir)/$$f > $$dest; \
180 done
181 +
182 +install:: $(DIST_CHROME_FILES)
183 +ifndef XPI_NAME
184 +ifndef NO_INSTALL
185 + @$(EXIT_ON_ERROR) \
186 + for f in $(DIST_CHROME_FILES); do \
187 + dest=$(DESTDIR)$(mozappdir)/chrome/`basename $$f`; \
188 + $(RM) -f $$dest; \
189 + $(PYTHON) $(MOZILLA_DIR)/config/Preprocessor.py \
190 + $(XULAPP_DEFINES) $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) \
191 + $(srcdir)/$$f > $$dest; \
192 + done
193 +endif
194 +endif
195 endif
196
197 ifneq ($(XPI_PKGNAME),)
198 libs realchrome::
199 ifdef STRIP_XPI
200 ifndef MOZ_DEBUG
201 @echo "Stripping $(XPI_PKGNAME) package directory..."
202 @echo $(FINAL_TARGET)
203
204
205
206 1.1 src/patchsets/mozilla-firefox/3.0.8/005-installer_shouldnt_copy_xulrunner.patch
207
208 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/005-installer_shouldnt_copy_xulrunner.patch?rev=1.1&view=markup
209 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/005-installer_shouldnt_copy_xulrunner.patch?rev=1.1&content-type=text/plain
210
211 Index: 005-installer_shouldnt_copy_xulrunner.patch
212 ===================================================================
213 ---
214 config/rules.mk | 5 +++++
215 1 file changed, 5 insertions(+)
216
217 Index: mozilla/config/rules.mk
218 ===================================================================
219 --- mozilla.orig/config/rules.mk
220 +++ mozilla/config/rules.mk
221 @@ -57,16 +57,21 @@
222 REPORT_BUILD = @echo $(notdir $<)
223
224 ifeq ($(OS_ARCH),OS2)
225 EXEC =
226 else
227 EXEC = exec
228 endif
229
230 +# Don't copy xulrunner files at install time, when using system xulrunner
231 +ifdef LIBXUL_SDK
232 + SKIP_COPY_XULRUNNER=1
233 +endif
234 +
235 # ELOG prints out failed command when building silently (gmake -s).
236 ifneq (,$(findstring -s,$(MAKEFLAGS)))
237 ELOG := $(EXEC) sh $(BUILD_TOOLS)/print-failed-commands.sh
238 else
239 ELOG :=
240 endif
241
242 ifeq ($(MOZ_OS2_TOOLS),VACPP)
243
244
245
246 1.1 src/patchsets/mozilla-firefox/3.0.8/007-xulonly-dont_depend_on_nspr_sources.patch
247
248 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/007-xulonly-dont_depend_on_nspr_sources.patch?rev=1.1&view=markup
249 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/007-xulonly-dont_depend_on_nspr_sources.patch?rev=1.1&content-type=text/plain
250
251 Index: 007-xulonly-dont_depend_on_nspr_sources.patch
252 ===================================================================
253 ---
254 config/Makefile.in | 2 -
255 config/make-system-wrappers.pl | 59 +++++++++++++++++++++++++++++++++++++++++
256 2 files changed, 60 insertions(+), 1 deletion(-)
257
258 Index: mozilla/config/Makefile.in
259 ===================================================================
260 --- mozilla.orig/config/Makefile.in
261 +++ mozilla/config/Makefile.in
262 @@ -121,17 +121,17 @@
263 -DMOZ_TREE_CAIRO=$(MOZ_TREE_CAIRO) \
264 -DMOZ_ENABLE_LIBXUL=$(MOZ_ENABLE_LIBXUL) \
265 -DMOZ_NATIVE_HUNSPELL=$(MOZ_NATIVE_HUNSPELL) \
266 -DMOZ_NATIVE_BZ2=$(MOZ_NATIVE_BZ2) \
267 -DMOZ_NATIVE_ZLIB=$(MOZ_NATIVE_ZLIB) \
268 -DMOZ_NATIVE_PNG=$(MOZ_NATIVE_PNG) \
269 -DMOZ_NATIVE_JPEG=$(MOZ_NATIVE_JPEG) \
270 -DMOZ_NATIVE_LCMS=$(MOZ_NATIVE_LCMS) \
271 - $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
272 + $(srcdir)/system-headers | $(PERL) $(topsrcdir)/config/make-system-wrappers.pl system_wrappers
273 $(INSTALL) system_wrappers $(DIST)/include
274
275 GARBAGE_DIRS += system_wrappers
276 endif
277
278 install::
279 $(SYSINSTALL) $(IFLAGS1) $(DEPTH)/mozilla-config.h $(DESTDIR)$(includedir)
280
281 Index: mozilla/config/make-system-wrappers.pl
282 ===================================================================
283 --- /dev/null
284 +++ mozilla/config/make-system-wrappers.pl
285 @@ -0,0 +1,59 @@
286 +#!/usr/bin/perl
287 +#
288 +# ***** BEGIN LICENSE BLOCK *****
289 +# Version: MPL 1.1/GPL 2.0/LGPL 2.1
290 +#
291 +# The contents of this file are subject to the Mozilla Public License Version
292 +# 1.1 (the "License"); you may not use this file except in compliance with
293 +# the License. You may obtain a copy of the License at
294 +# http://www.mozilla.org/MPL/
295 +#
296 +# Software distributed under the License is distributed on an "AS IS" basis,
297 +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
298 +# for the specific language governing rights and limitations under the
299 +# License.
300 +#
301 +# The Original Code is mozilla.org code.
302 +#
303 +# The Initial Developer of the Original Code is
304 +# IBM Corporation.
305 +# Portions created by the Initial Developer are Copyright (C) 2004
306 +# the Initial Developer. All Rights Reserved.
307 +#
308 +# Contributor(s):
309 +# Brian Ryner <bryner@××××××××××.com>
310 +#
311 +# Alternatively, the contents of this file may be used under the terms of
312 +# either of the GNU General Public License Version 2 or later (the "GPL"),
313 +# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
314 +# in which case the provisions of the GPL or the LGPL are applicable instead
315 +# of those above. If you wish to allow use of your version of this file only
316 +# under the terms of either the GPL or the LGPL, and not to allow others to
317 +# use your version of this file under the terms of the MPL, indicate your
318 +# decision by deleting the provisions above and replace them with the notice
319 +# and other provisions required by the GPL or the LGPL. If you do not delete
320 +# the provisions above, a recipient may use your version of this file under
321 +# the terms of any one of the MPL, the GPL or the LGPL.
322 +#
323 +# ***** END LICENSE BLOCK *****
324 +
325 +$output_dir = shift;
326 +
327 +while (<STDIN>) {
328 + chomp;
329 + if (-e "$output_dir/$_") {
330 + next;
331 + }
332 +
333 + if (/(.*)\/[^\/*]/) {
334 + mkdir "$output_dir/$1";
335 + }
336 +
337 + open OUT, ">$output_dir/$_";
338 + print OUT "#pragma GCC system_header\n"; # suppress include_next warning
339 + print OUT "#pragma GCC visibility push(default)\n";
340 + print OUT "#include_next \<$_\>\n";
341 + print OUT "#pragma GCC visibility pop\n";
342 + close OUT;
343 +}
344 +
345
346
347
348 1.1 src/patchsets/mozilla-firefox/3.0.8/009-xulonly-nspr_flags_by_pkg_config_hack.patch
349
350 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/009-xulonly-nspr_flags_by_pkg_config_hack.patch?rev=1.1&view=markup
351 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/009-xulonly-nspr_flags_by_pkg_config_hack.patch?rev=1.1&content-type=text/plain
352
353 Index: 009-xulonly-nspr_flags_by_pkg_config_hack.patch
354 ===================================================================
355 ---
356 configure.in | 21 +++-----------
357
358 Index: mozilla/configure.in
359 ===================================================================
360 --- mozilla.orig/configure.in
361 +++ mozilla/configure.in
362 @@ -3872,32 +3872,33 @@
363 AC_TRY_COMPILE([#include "prlog.h"],
364 [#ifndef PR_STATIC_ASSERT
365 #error PR_STATIC_ASSERT not defined
366 #endif],
367 [MOZ_NATIVE_NSPR=1],
368 AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT]))
369 CFLAGS=$_SAVE_CFLAGS
370 else
371 - NSPR_CFLAGS='`$(DEPTH)/nsprpub/config/nspr-config --prefix=$(LIBXUL_DIST) --includedir=$(LIBXUL_DIST)/include/nspr --cflags`'
372 + NSPR_CFLAGS=`pkg-config mozilla-nspr --cflags`
373 + NSPR_LIBS=`pkg-config mozilla-nspr --libs`
374 # explicitly set libs for Visual Age C++ for OS/2
375 if test "$OS_ARCH" = "OS2" -a "$VACPP" = "yes"; then
376 NSPR_LIBS='$(LIBXUL_DIST)/lib/nspr'$NSPR_VERSION'.lib $(LIBXUL_DIST)/lib/plc'$NSPR_VERSION'.lib $(LIBXUL_DIST)/lib/plds'$NSPR_VERSION'.lib '$_PTHREAD_LDFLAGS''
377 elif test "$OS_ARCH" = "WINCE"; then
378 NSPR_CFLAGS='-I$(LIBXUL_DIST)/include/nspr'
379 NSPR_LIBS='$(LIBXUL_DIST)/lib/nspr'$NSPR_VERSION'.lib $(LIBXUL_DIST)/lib/plc'$NSPR_VERSION'.lib $(LIBXUL_DIST)/lib/plds'$NSPR_VERSION'.lib '
380 elif test "$OS_ARCH" = "WINNT"; then
381 NSPR_CFLAGS='-I$(LIBXUL_DIST)/include/nspr'
382 if test -n "$GNU_CC"; then
383 NSPR_LIBS="-L\$(LIBXUL_DIST)/lib -lnspr$NSPR_VERSION -lplc$NSPR_VERSION -lplds$NSPR_VERSION"
384 else
385 NSPR_LIBS='$(LIBXUL_DIST)/lib/nspr'$NSPR_VERSION'.lib $(LIBXUL_DIST)/lib/plc'$NSPR_VERSION'.lib $(LIBXUL_DIST)/lib/plds'$NSPR_VERSION'.lib '
386 fi
387 else
388 - NSPR_LIBS='`$(DEPTH)/nsprpub/config/nspr-config --prefix=$(LIBXUL_DIST) --libdir=$(LIBXUL_DIST)/lib --libs`'
389 + NSPR_LIBS=`pkg-config mozilla-nspr --libs`
390 fi
391 fi
392
393 dnl ========================================================
394 dnl = If NSS was not detected in the system,
395 dnl = use the one in the source tree (mozilla/security/nss)
396 dnl ========================================================
397
398 @@ -7617,17 +7618,19 @@
399 AC_SUBST(MOZ_ZLIB_CFLAGS)
400 AC_SUBST(MOZ_ZLIB_LIBS)
401 AC_SUBST(MOZ_BZ2_CFLAGS)
402 AC_SUBST(MOZ_BZ2_LIBS)
403 AC_SUBST(MOZ_PNG_CFLAGS)
404 AC_SUBST(MOZ_PNG_LIBS)
405
406 AC_SUBST(NSPR_CFLAGS)
407 +AC_DEFINE(NSPR_CFLAGS)
408 AC_SUBST(NSPR_LIBS)
409 +AC_DEFINE(NSPR_LIBS)
410 AC_SUBST(MOZ_NATIVE_NSPR)
411
412 AC_SUBST(NSS_CFLAGS)
413 AC_SUBST(NSS_LIBS)
414 AC_SUBST(NSS_DEP_LIBS)
415 AC_SUBST(MOZ_NATIVE_NSS)
416
417 AC_SUBST(CFLAGS)
418 @@ -7961,30 +7964,16 @@
419 fi
420 if test -n "$HAVE_64BIT_OS"; then
421 ac_configure_args="$ac_configure_args --enable-64bit"
422 fi
423 AC_OUTPUT_SUBDIRS(nsprpub)
424 ac_configure_args="$_SUBDIR_CONFIG_ARGS"
425 fi
426
427 -if test -z "$MOZ_NATIVE_NSPR"; then
428 - # Hack to deal with the fact that we use NSPR_CFLAGS everywhere
429 - AC_MSG_WARN([Recreating autoconf.mk with updated nspr-config output])
430 - if test ! "$VACPP" && test "$OS_ARCH" != "WINNT" && test "$OS_ARCH" != "WINCE"; then
431 - _libs=`./nsprpub/config/nspr-config --prefix=$\(LIBXUL_DIST\) --exec-prefix=$\(DIST\) --libdir=$\(LIBXUL_DIST\)/lib --libs`
432 - $PERL -pi.bak -e "s '^NSPR_LIBS\\s*=.*'NSPR_LIBS = $_libs'" config/autoconf.mk
433 - fi
434 - if test "$OS_ARCH" != "WINNT" && test "$OS_ARCH" != "WINCE" ; then
435 - _cflags=`./nsprpub/config/nspr-config --prefix=$\(LIBXUL_DIST\) --exec-prefix=$\(DIST\) --includedir=$\(LIBXUL_DIST\)/include/nspr --cflags`
436 - $PERL -pi.bak -e "s '^NSPR_CFLAGS\\s*=.*'NSPR_CFLAGS = $_cflags'" config/autoconf.mk
437 - fi
438 - rm -f config/autoconf.mk.bak
439 -fi
440 -
441 # if we're building the LDAP XPCOM component, we need to build
442 # the c-sdk first.
443 #
444 if test "$MOZ_LDAP_XPCOM"; then
445
446 # these subdirs may not yet have been created in the build tree.
447 # don't use the "-p" switch to mkdir, since not all platforms have it
448 #
449
450
451
452 1.1 src/patchsets/mozilla-firefox/3.0.8/020_noxul-mips-asm.patch
453
454 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/020_noxul-mips-asm.patch?rev=1.1&view=markup
455 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/020_noxul-mips-asm.patch?rev=1.1&content-type=text/plain
456
457 Index: 020_noxul-mips-asm.patch
458 ===================================================================
459 Upstream Bug: http://bugzilla.mozilla.org/show_bug.cgi?id=258429
460
461 This patch is required to fix build issues with Mozilla on MIPS architectures.
462 The out-of-the-box code is coded to build on a PlayStation 2 game console, which
463 is a highly specialised MIPS machine based around the Toshiba TX5900. This CPU
464 is very non-standard, causing problems with generic MIPS machines like Silicon
465 Graphics workstations.
466
467 The following patch fixes the assembly language routines for generic MIPS
468 machines. In the case where it is being compiled for a PlayStation 2, the older
469 PS2-specific implementation is used instead.
470
471 Patch $Revision: 1.1 $
472 diff --git a/configure.in b/configure.in
473 index f49bf6c..2423b6c 100644
474 --- a/configure.in
475 +++ b/configure.in
476 @@ -1806,8 +1806,7 @@ case "$target" in
477 MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS=1
478 ;;
479 mips*)
480 - CFLAGS="$CFLAGS -Wa,-xgot"
481 - CXXFLAGS="$CXXFLAGS -Wa,-xgot"
482 + MOZ_DEBUG_FLAGS="-g" # We want inlining
483 ;;
484 esac
485 ;;
486 diff --git a/xpcom/reflect/xptcall/src/md/unix/Makefile.in b/xpcom/reflect/xptcall/src/md/unix/Makefile.in
487 index 559fd96..6181699 100644
488 --- a/xpcom/reflect/xptcall/src/md/unix/Makefile.in
489 +++ b/xpcom/reflect/xptcall/src/md/unix/Makefile.in
490 @@ -276,11 +276,7 @@ ifeq ($(OS_ARCH),Linux)
491 ifneq (,$(findstring mips, $(OS_TEST)))
492 CPPSRCS := xptcinvoke_mips.cpp xptcstubs_mips.cpp
493 ASFILES := xptcinvoke_asm_mips.s xptcstubs_asm_mips.s
494 -#xptcstubs_mips.cpp
495 -# xptcstubs_asm_mips.s
496 -ifdef GNU_CC
497 -ASFLAGS += $(INCLUDES) -x assembler-with-cpp -D__GNUC__
498 -endif
499 +ASFLAGS += -I$(PUBLIC) -x assembler-with-cpp
500 endif
501 endif
502
503 @@ -466,10 +462,7 @@ LOCAL_INCLUDES += \
504
505 ifeq ($(OS_ARCH),Linux)
506 ifneq (,$(findstring mips, $(OS_TEST)))
507 -xptcstubs_asm_mips.o: xptcstubs_asm_mips.s.m4 $(PUBLIC)/xptcstubsdef.inc
508 - m4 $(INCLUDES) $< > ./xptcstubs_asm_mips.s && \
509 - $(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) ./xptcstubs_asm_mips.s
510 - $(RM) -f ./xptcstubs_asm_mips.s
511 +xptcstubs_asm_mips.o: $(PUBLIC)/xptcstubsdef.inc
512 endif
513 endif
514
515 diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s
516 index 8704247..6cf9deb 100644
517 --- a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s
518 +++ b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s
519 @@ -24,6 +24,7 @@
520 * Contributor(s):
521 * Brendan Eich <brendan@×××××××.org>
522 * Stuart Parmenter <pavlov@××××××××.com>
523 + * Thiemo Seufer <seufer@×××××××××××××××××××××.de>
524 *
525 * Alternatively, the contents of this file may be used under the terms of
526 * either the GNU General Public License Version 2 or later (the "GPL"), or
527 @@ -44,139 +45,123 @@
528 #include <sys/regdef.h>
529 #include <sys/asm.h>
530
531 -.text
532 -.globl invoke_count_words
533 -.globl invoke_copy_to_stack
534 -
535 -# We need a variable number of words allocated from the stack for copies of
536 -# the params, and this space must come between the high frame (where ra, gp,
537 -# and s0 are saved) and the low frame (where a0-a3 are saved by the callee
538 -# functions we invoke).
539 -
540 -LOCALSZ=4 # s0, s1, ra, gp
541 -NARGSAVE=4 # a0, a1, a2, a3
542 -HIFRAMESZ=(LOCALSZ*SZREG)
543 -LOFRAMESZ=(NARGSAVE*SZREG)
544 -FRAMESZ=(HIFRAMESZ+LOFRAMESZ+ALSZ)&ALMASK
545 -
546 -# XXX these 2*SZREG, etc. are very magic -- we *know* that ALSZ&ALMASK cause
547 -# FRAMESZ to be 0 mod 8, in this case to be 16 and not 12.
548 -RAOFF=FRAMESZ - (2*SZREG)
549 -GPOFF=FRAMESZ - (3*SZREG)
550 -S0OFF=FRAMESZ - (4*SZREG)
551 -S1OFF=FRAMESZ - (5*SZREG)
552 -
553 -# These are not magic -- they are just our argsave slots in the caller frame.
554 -A0OFF=FRAMESZ
555 -A1OFF=FRAMESZ + (1*SZREG)
556 -A2OFF=FRAMESZ + (2*SZREG)
557 -A3OFF=FRAMESZ + (3*SZREG)
558 -
559 - #
560 - # _XPTC_InvokeByIndex(that, methodIndex, paramCount, params)
561 - # a0 a1 a2 a3
562 -
563 -NESTED(_XPTC_InvokeByIndex, FRAMESZ, ra)
564 -
565 - .set noreorder
566 - .cpload t9
567 - .set reorder
568 -
569 +# NARGSAVE is the argument space in the callers frame, including extra
570 +# 'shadowed' space for the argument registers. The minimum of 4
571 +# argument slots is sometimes predefined in the header files.
572 +#ifndef NARGSAVE
573 +#define NARGSAVE 4
574 +#endif
575 +
576 +#define LOCALSZ 3 /* gp, fp, ra */
577 +#define FRAMESZ ((((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK)
578 +
579 +#define RAOFF (FRAMESZ - (1*SZREG))
580 +#define FPOFF (FRAMESZ - (2*SZREG))
581 +#define GPOFF (FRAMESZ - (3*SZREG))
582 +
583 +#define A0OFF (FRAMESZ + (0*SZREG))
584 +#define A1OFF (FRAMESZ + (1*SZREG))
585 +#define A2OFF (FRAMESZ + (2*SZREG))
586 +#define A3OFF (FRAMESZ + (3*SZREG))
587 +
588 + .text
589 +
590 +#
591 +# _NS_InvokeByIndex_P(that, methodIndex, paramCount, params)
592 +# a0 a1 a2 a3
593 +
594 + .globl _NS_InvokeByIndex_P
595 + .align 2
596 + .type _NS_InvokeByIndex_P,@function
597 + .ent _NS_InvokeByIndex_P,0
598 + .frame fp, FRAMESZ, ra
599 +_NS_InvokeByIndex_P:
600 + SETUP_GP
601 subu sp, FRAMESZ
602
603 - # specify the save register mask -- XXX do we want the a0-a3 here, given
604 - # our "split" frame where the args are saved below a dynamicly allocated
605 - # region under the high frame?
606 - #
607 - # 10010000000000010000000011110000
608 - .mask 0x900100F0, -((NARGSAVE+LOCALSZ)*SZREG)
609 + # specify the save register mask for gp, fp, ra, a3 - a0
610 + .mask 0xD00000F0, RAOFF-FRAMESZ
611
612 - # thou shalt not use .cprestore if yer frame has variable size...
613 - # .cprestore GPOFF
614 + sw ra, RAOFF(sp)
615 + sw fp, FPOFF(sp)
616
617 - REG_S ra, RAOFF(sp)
618 + # we can't use .cprestore in a variable stack frame
619 + sw gp, GPOFF(sp)
620
621 - # this happens automatically with .cprestore, but we cannot use that op...
622 - REG_S gp, GPOFF(sp)
623 - REG_S s0, S0OFF(sp)
624 - REG_S s1, S1OFF(sp)
625 + sw a0, A0OFF(sp)
626 + sw a1, A1OFF(sp)
627 + sw a2, A2OFF(sp)
628 + sw a3, A3OFF(sp)
629
630 - REG_S a0, A0OFF(sp)
631 - REG_S a1, A1OFF(sp)
632 - REG_S a2, A2OFF(sp)
633 - REG_S a3, A3OFF(sp)
634 + # save bottom of fixed frame
635 + move fp, sp
636
637 - # invoke_count_words(paramCount, params)
638 + # extern "C" uint32
639 + # invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s);
640 + la t9, invoke_count_words
641 move a0, a2
642 move a1, a3
643 -
644 - jal invoke_count_words
645 - lw gp, GPOFF(sp)
646 -
647 - # save the old sp so we can pop the param area and any "low frame"
648 - # needed as an argsave area below the param block for callees that
649 - # we invoke.
650 - move s0, sp
651 -
652 - REG_L a1, A2OFF(sp) # a1 = paramCount
653 - REG_L a2, A3OFF(sp) # a2 = params
654 -
655 - # we define a word as 4 bytes, period end of story!
656 - sll v0, 2 # 4 bytes * result of invoke_copy_words
657 - subu v0, LOFRAMESZ # but we take back the argsave area built into
658 - # our stack frame -- SWEET!
659 - subu sp, sp, v0 # make room
660 - move a0, sp # a0 = param stack address
661 - move s1, a0 # save it for later -- it should be safe here
662 -
663 - # the old sp is still saved in s0, but we now need another argsave
664 - # area ("low frame") for the invoke_copy_to_stack call.
665 - subu sp, sp, LOFRAMESZ
666 -
667 - # copy the param into the stack areas
668 + jalr t9
669 + lw gp, GPOFF(fp)
670 +
671 + # allocate variable stack, with a size of:
672 + # wordsize (of 4 bytes) * result (already aligned to dword)
673 + # but a minimum of 16 byte
674 + sll v0, 2
675 + slt t0, v0, 16
676 + beqz t0, 1f
677 + li v0, 16
678 +1: subu sp, v0
679 +
680 + # let a0 point to the bottom of the variable stack, allocate
681 + # another fixed stack for:
682 + # extern "C" void
683 # invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
684 - # nsXPTCVariant* s)
685 - jal invoke_copy_to_stack
686 - lw gp, GPOFF(s0)
687 -
688 - move sp, s0 # get orig sp back, popping params and argsave
689 -
690 - REG_L a0, A0OFF(sp) # a0 = set "that" to be "this"
691 - REG_L a1, A1OFF(sp) # a1 = methodIndex
692 -
693 - # t1 = methodIndex * 4
694 - # (use shift instead of mult)
695 - sll t1, a1, 2
696 -
697 - # calculate the function we need to jump to,
698 - # which must then be saved in t9
699 + # nsXPTCVariant* s);
700 + la t9, invoke_copy_to_stack
701 + move a0, sp
702 + lw a1, A2OFF(fp)
703 + lw a2, A3OFF(fp)
704 + subu sp, 16
705 + jalr t9
706 + lw gp, GPOFF(fp)
707 +
708 + # back to the variable stack frame
709 + addu sp, 16
710 +
711 + # calculate the function we need to jump to, which must then be
712 + # stored in t9
713 + lw a0, A0OFF(fp) # a0 = set "that" to be "this"
714 + lw t0, A1OFF(fp) # a1 = methodIndex
715 lw t9, 0(a0)
716 - addu t9, t9, t1
717 - lw t9, 8(t9)
718 -
719 - # a1..a3 and f13..f14 should now be set to what
720 - # invoke_copy_to_stack told us. skip a0 and f12
721 - # because that is the "this" pointer
722 -
723 - REG_L a1, 1*SZREG(s1)
724 - REG_L a2, 2*SZREG(s1)
725 - REG_L a3, 3*SZREG(s1)
726 -
727 - l.d $f13, 8(s1)
728 - l.d $f14, 16(s1)
729 -
730 - # Create the stack pointer for the function, which must have 4 words
731 - # of space for callee-saved args. invoke_count_words allocated space
732 - # for a0 starting at s1, so we just move s1 into sp.
733 - move sp, s1
734 -
735 - jalr ra, t9
736 - lw gp, GPOFF(s0)
737 -
738 - move sp, s0
739 -
740 - REG_L ra, RAOFF(sp)
741 - REG_L s0, S0OFF(sp)
742 - addu sp, FRAMESZ
743 + # t0 = methodIndex << PTRLOG
744 + sll t0, t0, PTRLOG
745 + addu t9, t0
746 +#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
747 + lw t9, (t9)
748 +#else /* not G++ V3 ABI */
749 + lw t9, 2*PTRSIZE(t9)
750 +#endif /* G++ V3 ABI */
751 +
752 + # Set a1-a3 to what invoke_copy_to_stack told us. a0 is already
753 + # the "this" pointer. We don't have to care about floating
754 + # point arguments, the non-FP "this" pointer as first argument
755 + # means they'll never be used.
756 + lw a1, 1*SZREG(sp)
757 + lw a2, 2*SZREG(sp)
758 + lw a3, 3*SZREG(sp)
759 +
760 + jalr t9
761 + # Micro-optimization: There's no gp usage below this point, so
762 + # we don't reload.
763 + # lw gp, GPOFF(fp)
764 +
765 + # leave variable stack frame
766 + move sp, fp
767 +
768 + lw ra, RAOFF(sp)
769 + lw fp, FPOFF(sp)
770 +
771 + addiu sp, FRAMESZ
772 j ra
773 -.end _XPTC_InvokeByIndex
774 +END(_NS_InvokeByIndex_P)
775 diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp
776 index a73e432..2c27a26 100644
777 --- a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp
778 +++ b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp
779 @@ -24,6 +24,7 @@
780 * Contributor(s):
781 * Stuart Parmenter <pavlov@××××××××.com>
782 * Brendan Eich <brendan@×××××××.org>
783 + * Thiemo Seufer <seufer@×××××××××××××××××××××.de>
784 *
785 * Alternatively, the contents of this file may be used under the terms of
786 * either of the GNU General Public License Version 2 or later (the "GPL"),
787 @@ -52,10 +53,8 @@ invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
788 // Count a word for a0 even though it's never stored or loaded
789 // We do this only for alignment of register pairs.
790 PRUint32 result = 1;
791 - for (PRUint32 i = 0; i < paramCount; i++, s++)
792 + for (PRUint32 i = 0; i < paramCount; i++, result++, s++)
793 {
794 - result++;
795 -
796 if (s->IsPtrData())
797 continue;
798
799 @@ -68,6 +67,9 @@ invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
800 result++;
801 result++;
802 break;
803 +
804 + default:
805 + break;
806 }
807 }
808 return (result + 1) & ~(PRUint32)1;
809 @@ -88,8 +90,6 @@ invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
810 continue;
811 }
812
813 - *((void**)d) = s->val.p;
814 -
815 switch(s->type)
816 {
817 case nsXPTType::T_I64 :
818 @@ -104,19 +104,20 @@ invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
819 if ((PRWord)d & 4) d++;
820 *((double*) d) = s->val.d; d++;
821 break;
822 + default:
823 + *((void**)d) = s->val.p;
824 + break;
825 }
826 }
827 }
828
829 -extern "C" nsresult _XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
830 +extern "C" nsresult _NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex,
831 PRUint32 paramCount,
832 nsXPTCVariant* params);
833
834 -extern "C"
835 -XPTC_PUBLIC_API(nsresult)
836 -XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
837 +EXPORT_XPCOM_API(nsresult)
838 +NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex,
839 PRUint32 paramCount, nsXPTCVariant* params)
840 {
841 - return _XPTC_InvokeByIndex(that, methodIndex, paramCount, params);
842 -}
843 -
844 + return _NS_InvokeByIndex_P(that, methodIndex, paramCount, params);
845 +}
846 diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s
847 new file mode 100644
848 index 0000000..c2dc0c7
849 --- /dev/null
850 +++ b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s
851 @@ -0,0 +1,142 @@
852 +/* -*- Mode: asm; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
853 + * Version: MPL 1.1
854 + *
855 + * The contents of this file are subject to the Mozilla Public License Version
856 + * 1.1 (the "License"); you may not use this file except in compliance with
857 + * the License. You may obtain a copy of the License at
858 + * http://www.mozilla.org/MPL/
859 + *
860 + * Software distributed under the License is distributed on an "AS IS" basis,
861 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
862 + * for the specific language governing rights and limitations under the
863 + * License.
864 + *
865 + * The Original Code is mozilla.org code.
866 + *
867 + * The Initial Developer of the Original Code is
868 + * Netscape Communications Corp, Inc.
869 + * Portions created by the Initial Developer are Copyright (C) 2001
870 + * the Initial Developer. All Rights Reserved.
871 + *
872 + * Contributor(s):
873 + * Stuart Parmenter <pavlov@××××××××.com>
874 + * Chris Waterson <waterson@××××××××.com>
875 + * Thiemo Seufer <seufer@×××××××××××××××××××××.de>
876 + */
877 +
878 +/* This code is for MIPS using the O32 ABI. */
879 +
880 +#include <sys/regdef.h>
881 +#include <sys/asm.h>
882 +
883 +# NARGSAVE is the argument space in the callers frame, including extra
884 +# 'shadowed' space for the argument registers. The minimum of 4
885 +# argument slots is sometimes predefined in the header files.
886 +#ifndef NARGSAVE
887 +#define NARGSAVE 4
888 +#endif
889 +
890 +#define LOCALSZ 2 /* gp, ra */
891 +#define FRAMESZ ((((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK)
892 +
893 +#define RAOFF (FRAMESZ - (1*SZREG))
894 +#define GPOFF (FRAMESZ - (2*SZREG))
895 +
896 +#define A0OFF (FRAMESZ + (0*SZREG))
897 +#define A1OFF (FRAMESZ + (1*SZREG))
898 +#define A2OFF (FRAMESZ + (2*SZREG))
899 +#define A3OFF (FRAMESZ + (3*SZREG))
900 +
901 + .text
902 +
903 +#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
904 +#define STUB_ENTRY(x) \
905 + .if x < 10; \
906 + .globl _ZN14nsXPTCStubBase5Stub ##x ##Ev; \
907 + .type _ZN14nsXPTCStubBase5Stub ##x ##Ev,@function; \
908 + .aent _ZN14nsXPTCStubBase5Stub ##x ##Ev,0; \
909 +_ZN14nsXPTCStubBase5Stub ##x ##Ev:; \
910 + SETUP_GP; \
911 + li t0,x; \
912 + b sharedstub; \
913 + .elseif x < 100; \
914 + .globl _ZN14nsXPTCStubBase6Stub ##x ##Ev; \
915 + .type _ZN14nsXPTCStubBase6Stub ##x ##Ev,@function; \
916 + .aent _ZN14nsXPTCStubBase6Stub ##x ##Ev,0; \
917 +_ZN14nsXPTCStubBase6Stub ##x ##Ev:; \
918 + SETUP_GP; \
919 + li t0,x; \
920 + b sharedstub; \
921 + .elseif x < 1000; \
922 + .globl _ZN14nsXPTCStubBase7Stub ##x ##Ev; \
923 + .type _ZN14nsXPTCStubBase7Stub ##x ##Ev,@function; \
924 + .aent _ZN14nsXPTCStubBase7Stub ##x ##Ev,0; \
925 +_ZN14nsXPTCStubBase7Stub ##x ##Ev:; \
926 + SETUP_GP; \
927 + li t0,x; \
928 + b sharedstub; \
929 + .else; \
930 + .err; \
931 + .endif
932 +#else /* not G++ V3 ABI */
933 +#define STUB_ENTRY(x) \
934 + .globl Stub ##x ##__14nsXPTCStubBase; \
935 + .type Stub ##x ##__14nsXPTCStubBase,@function; \
936 + .aent Stub ##x ##__14nsXPTCStubBase,0; \
937 +Stub ##x ##__14nsXPTCStubBase:; \
938 + SETUP_GP; \
939 + li t0,x; \
940 + b sharedstub
941 +#endif /* G++ V3 ABI */
942 +
943 +# SENTINEL_ENTRY is handled in the cpp file.
944 +#define SENTINEL_ENTRY(x)
945 +
946 +#
947 +# open a dummy frame for the function entries
948 +#
949 + .align 2
950 + .type dummy,@function
951 + .ent dummy, 0
952 + .frame sp, FRAMESZ, ra
953 +dummy:
954 + SETUP_GP
955 +
956 +#include "xptcstubsdef.inc"
957 +
958 +sharedstub:
959 + subu sp, FRAMESZ
960 +
961 + # specify the save register mask for gp, ra, a0-a3
962 + .mask 0x900000F0, RAOFF-FRAMESZ
963 +
964 + sw ra, RAOFF(sp)
965 + SAVE_GP(GPOFF)
966 +
967 + # Micro-optimization: a0 is already loaded, and its slot gets
968 + # ignored by PrepareAndDispatch, so no need to save it here.
969 + # sw a0, A0OFF(sp)
970 + sw a1, A1OFF(sp)
971 + sw a2, A2OFF(sp)
972 + sw a3, A3OFF(sp)
973 +
974 + la t9, PrepareAndDispatch
975 +
976 + # t0 is methodIndex
977 + move a1, t0
978 + # have a2 point to the begin of the argument space on stack
979 + addiu a2, sp, FRAMESZ
980 +
981 + # PrepareAndDispatch(that, methodIndex, args)
982 + jalr t9
983 +
984 + # Micro-optimization: Using jalr explicitly has the side-effect
985 + # of not triggering .cprestore. This is ok because we have no
986 + # gp reference below this point. It also allows better
987 + # instruction sscheduling.
988 + # lw gp, GPOFF(fp)
989 +
990 + lw ra, RAOFF(sp)
991 + addiu sp, FRAMESZ
992 + j ra
993 + END(dummy)
994 diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_mips.cpp b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_mips.cpp
995 index 4d60f7b..bdce59c 100644
996 --- a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_mips.cpp
997 +++ b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_mips.cpp
998 @@ -39,6 +39,7 @@
999 * ***** END LICENSE BLOCK ***** */
1000
1001 #include "xptcprivate.h"
1002 +#include "xptiprivate.h"
1003
1004 /*
1005 * This is for MIPS O32 ABI
1006 @@ -54,7 +55,6 @@ PrepareAndDispatch(nsXPTCStubBase* self, PRUint32 methodIndex, PRUint32* args)
1007
1008 nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
1009 nsXPTCMiniVariant* dispatchParams = NULL;
1010 - nsIInterfaceInfo* iface_info = NULL;
1011 const nsXPTMethodInfo* info;
1012 PRUint8 paramCount;
1013 PRUint8 i;
1014 @@ -62,11 +62,8 @@ PrepareAndDispatch(nsXPTCStubBase* self, PRUint32 methodIndex, PRUint32* args)
1015
1016 NS_ASSERTION(self,"no self");
1017
1018 - self->GetInterfaceInfo(&iface_info);
1019 - NS_ASSERTION(iface_info,"no interface info");
1020 -
1021 - iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
1022 - NS_ASSERTION(info,"no interface info");
1023 + self->mEntry->GetMethodInfo(PRUint16(methodIndex), &info);
1024 + NS_ASSERTION(info,"no method info");
1025
1026 paramCount = info->GetParamCount();
1027
1028 @@ -109,9 +106,7 @@ PrepareAndDispatch(nsXPTCStubBase* self, PRUint32 methodIndex, PRUint32* args)
1029 }
1030 }
1031
1032 - result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams);
1033 -
1034 - NS_RELEASE(iface_info);
1035 + result = self->mOuter->CallMethod((PRUint16)methodIndex, info, dispatchParams);
1036
1037 if(dispatchParams != paramBuffer)
1038 delete [] dispatchParams;
1039
1040
1041
1042 1.1 src/patchsets/mozilla-firefox/3.0.8/021_noxul-mips-fpic.patch
1043
1044 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/021_noxul-mips-fpic.patch?rev=1.1&view=markup
1045 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/021_noxul-mips-fpic.patch?rev=1.1&content-type=text/plain
1046
1047 Index: 021_noxul-mips-fpic.patch
1048 ===================================================================
1049 Upstream bug: https://bugzilla.mozilla.org/attachment.cgi?id=321598
1050
1051 We've had an issue on debian with the mips xpcom stubs because gcc 4.3 changed
1052 its default from PIC to non-PIC. While the whole c++ code is built as PIC code,
1053 the xptc stubs assembly ends up built as non-PIC.
1054
1055 It would be safer to build the assembly with -fPIC when C++ is built with -fPIC,
1056 to avoid future possible problems with gcc changing its default again on
1057 some random architecture. The attached patch does it for linux, but it might be
1058 necessary to do the same on other architectures.
1059
1060 Patch $Revision: 1.1 $
1061 diff --git a/configure.in b/configure.in
1062 index 3730f0e..516da66 100644
1063 --- a/configure.in
1064 +++ b/configure.in
1065 @@ -1279,6 +1279,7 @@ if test "$GNU_CC"; then
1066 WARNINGS_AS_ERRORS='-Werror'
1067 DSO_CFLAGS=''
1068 DSO_PIC_CFLAGS='-fPIC'
1069 + ASFLAGS="$ASFLAGS -fPIC"
1070 _MOZ_RTTI_FLAGS_ON=${_COMPILER_PREFIX}-frtti
1071 _MOZ_RTTI_FLAGS_OFF=${_COMPILER_PREFIX}-fno-rtti
1072 _MOZ_EXCEPTIONS_FLAGS_ON='-fhandle-exceptions'
1073
1074
1075
1076 1.1 src/patchsets/mozilla-firefox/3.0.8/030-firefox_encode_spaces.patch
1077
1078 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/030-firefox_encode_spaces.patch?rev=1.1&view=markup
1079 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/030-firefox_encode_spaces.patch?rev=1.1&content-type=text/plain
1080
1081 Index: 030-firefox_encode_spaces.patch
1082 ===================================================================
1083 # Upstream bug 440075
1084 diff --git a/browser/base/content/urlbarBindings.xml b/browser/base/content/urlbarBindings.xml
1085 --- a/browser/base/content/urlbarBindings.xml
1086 +++ b/browser/base/content/urlbarBindings.xml
1087 @@ -139,54 +139,55 @@
1088 // haven't seen that, so hopefully that behavior has changed.
1089 flavourSet.appendFlavour("text/x-moz-url");
1090 flavourSet.appendFlavour("text/unicode");
1091 flavourSet.appendFlavour("application/x-moz-file", "nsIFile");
1092 return flavourSet;
1093 ]]></body>
1094 </method>
1095
1096 + <method name="_getSelectedValueForClipboard">
1097 + <body><![CDATA[
1098 + var val = this.value.substring(this.selectionStart, this.selectionEnd);
1099 +
1100 + // If the entire value is selected and it's a valid non-javascript,
1101 + // non-data URI, encode it.
1102 + if (val == this.value &&
1103 + this.getAttribute("pageproxystate") == "valid") {
1104 + let uri;
1105 + let ioService = Cc["@mozilla.org/network/io-service;1"]
1106 + .getService(Ci.nsIIOService);
1107 + try {
1108 + uri = ioService.newURI(val, null, null);
1109 + } catch (e) {}
1110 + if (uri && !uri.schemeIs("javascript") && !uri.schemeIs("data"))
1111 + val = uri.spec;
1112 + }
1113 +
1114 + return val;
1115 + ]]></body>
1116 + </method>
1117 +
1118 <field name="_copyCutController"><![CDATA[
1119 ({
1120 urlbar: this,
1121 doCommand: function(aCommand) {
1122 var urlbar = this.urlbar;
1123 - var start = urlbar.selectionStart;
1124 - var end = urlbar.selectionEnd;
1125 - if (start == end)
1126 + var val = urlbar._getSelectedValueForClipboard();
1127 + if (!val)
1128 return;
1129 - var val;
1130 - if (start == 0 && end == urlbar.textLength) {
1131 - val = urlbar.value;
1132
1133 - // If the entire value is selected and it's a valid non-javascript,
1134 - // non-data URI, encode it.
1135 - var uri;
1136 - if (urlbar.getAttribute("pageproxystate") == "valid") {
1137 - var ioService = Cc["@mozilla.org/network/io-service;1"]
1138 - .getService(Ci.nsIIOService);
1139 - try {
1140 - uri = ioService.newURI(val, null, null);
1141 - } catch (e) {}
1142 - }
1143 - if (uri && !uri.schemeIs("javascript") && !uri.schemeIs("data"))
1144 - val = uri.spec;
1145 + if (aCommand == "cmd_cut" && this.isCommandEnabled(aCommand)) {
1146 + let start = urlbar.selectionStart;
1147 + let end = urlbar.selectionEnd;
1148 + urlbar.value = urlbar.value.substring(0, start) + urlbar.value.substring(end);
1149 + urlbar.selectionStart = urlbar.selectionEnd = start;
1150 + SetPageProxyState("invalid");
1151 + }
1152
1153 - if (aCommand == "cmd_cut" && this.isCommandEnabled(aCommand)) {
1154 - urlbar.value = "";
1155 - SetPageProxyState("invalid");
1156 - }
1157 - } else {
1158 - val = urlbar.value.substring(start, end);
1159 - if (aCommand == "cmd_cut" && this.isCommandEnabled(aCommand)) {
1160 - urlbar.value = urlbar.value.substring(0, start) + urlbar.value.substring(end);
1161 - urlbar.selectionStart = urlbar.selectionEnd = start;
1162 - SetPageProxyState("invalid");
1163 - }
1164 - }
1165 Cc["@mozilla.org/widget/clipboardhelper;1"]
1166 .getService(Ci.nsIClipboardHelper)
1167 .copyString(val);
1168 },
1169 supportsCommand: function(aCommand) {
1170 switch (aCommand) {
1171 case "cmd_copy":
1172 case "cmd_cut":
1173 @@ -268,16 +269,30 @@
1174 </setter>
1175 </property>
1176 </implementation>
1177
1178 <handlers>
1179 <handler event="focus" phase="capturing" action="this._hideURLTooltip();"/>
1180 <handler event="dragover" phase="capturing" action="nsDragAndDrop.dragOver(event, this);"/>
1181 <handler event="dragdrop" phase="capturing" action="nsDragAndDrop.drop(event, this);"/>
1182 + <handler event="select"><![CDATA[
1183 + if (!Cc["@mozilla.org/widget/clipboard;1"]
1184 + .getService(Ci.nsIClipboard)
1185 + .supportsSelectionClipboard())
1186 + return;
1187 +
1188 + var val = this._getSelectedValueForClipboard();
1189 + if (!val)
1190 + return;
1191 +
1192 + Cc["@mozilla.org/widget/clipboardhelper;1"]
1193 + .getService(Ci.nsIClipboardHelper)
1194 + .copyStringToClipboard(val, Ci.nsIClipboard.kSelectionClipboard);
1195 + ]]></handler>
1196 </handlers>
1197
1198 </binding>
1199
1200 <!-- Note: this binding is applied to the autocomplete popup used in the Search bar and in web page content -->
1201 <binding id="browser-autocomplete-result-popup" extends="chrome://global/content/bindings/autocomplete.xml#autocomplete-result-popup">
1202 <implementation>
1203 <method name="openAutocompletePopup">
1204
1205
1206
1207 1.1 src/patchsets/mozilla-firefox/3.0.8/055_firefox-2.0_gfbsd-pthreads.patch
1208
1209 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/055_firefox-2.0_gfbsd-pthreads.patch?rev=1.1&view=markup
1210 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/055_firefox-2.0_gfbsd-pthreads.patch?rev=1.1&content-type=text/plain
1211
1212 Index: 055_firefox-2.0_gfbsd-pthreads.patch
1213 ===================================================================
1214 # https://bugs.gentoo.org/show_bug.cgi?id=169825
1215
1216 --- mozilla/config/rules.mk.orig Thu Sep 14 14:07:03 2006
1217 +++ mozilla/config/rules.mk Wed Oct 18 11:00:09 2006
1218 @@ -442,9 +442,7 @@
1219 endif
1220
1221 ifeq ($(OS_ARCH),FreeBSD)
1222 -ifdef IS_COMPONENT
1223 -EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
1224 -endif
1225 +EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc
1226 endif
1227
1228 ifeq ($(OS_ARCH),NetBSD)
1229 --- mozilla/configure.in.orig 2007-02-06 02:37:37 -0300
1230 +++ mozilla/configure.in 2007-03-07 15:35:41 -0300
1231 @@ -2667,7 +2667,7 @@
1232 *-hpux11.*)
1233 ;;
1234 *)
1235 - AC_CHECK_LIB(c_r, gethostbyname_r)
1236 + AC_SEARCH_LIBS([gethostbyname_r], [c_r])
1237 ;;
1238 esac
1239 AC_CHECK_LIB(m, atan)
1240 --- mozilla/configure.in.orig 2007-02-06 02:37:37 -0300
1241 +++ mozilla/configure.in 2007-03-07 13:59:53 -0300
1242 @@ -2839,11 +2839,12 @@
1243 *-*-freebsd*)
1244 AC_DEFINE(_REENTRANT)
1245 AC_DEFINE(_THREAD_SAFE)
1246 - dnl -pthread links in -lc_r, so don't specify it explicitly.
1247 - if test "$ac_cv_have_dash_pthread" = "yes"; then
1248 - _PTHREAD_LDFLAGS="-pthread"
1249 + dnl use the environment PTHREAD_LIBS
1250 + if test -n "$PTHREAD_LIBS"; then
1251 + _PTHREAD_LDFLAGS="$PTHREAD_LIBS"
1252 else
1253 - _PTHREAD_LDFLAGS="-lc_r"
1254 + _PTHREAD_LDFLAGS="-lpthread"
1255 fi
1256 + LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
1257 ;;
1258
1259
1260
1261 1.1 src/patchsets/mozilla-firefox/3.0.8/063_firefox-rpath-3.patch
1262
1263 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/063_firefox-rpath-3.patch?rev=1.1&view=markup
1264 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/063_firefox-rpath-3.patch?rev=1.1&content-type=text/plain
1265
1266 Index: 063_firefox-rpath-3.patch
1267 ===================================================================
1268 # Gentoo http://bugs.gentoo.org/show_bug.cgi?id=100597
1269
1270 --- mozilla/config/rules.mk.orig 2006-07-07 06:13:36.000000000 +0200
1271 +++ mozilla/config/rules.mk 2006-07-19 13:22:04.000000000 +0200
1272 @@ -510,7 +510,12 @@
1273 #
1274 ifeq ($(OS_ARCH),Linux)
1275 ifdef IS_COMPONENT
1276 +DSO_LDOPTS += -Wl,-rpath,'$$ORIGIN:$$ORIGIN/..'
1277 +OS_LDFLAGS += -Wl,-rpath,'$$ORIGIN:$$ORIGIN/..'
1278 EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
1279 +else
1280 +DSO_LDOPTS += -Wl,-rpath,'$$ORIGIN'
1281 +OS_LDFLAGS += -Wl,-rpath,'$$ORIGIN'
1282 endif
1283 endif
1284
1285
1286
1287
1288 1.1 src/patchsets/mozilla-firefox/3.0.8/064_noxul-nsplugins-v3.patch
1289
1290 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/064_noxul-nsplugins-v3.patch?rev=1.1&view=markup
1291 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/064_noxul-nsplugins-v3.patch?rev=1.1&content-type=text/plain
1292
1293 Index: 064_noxul-nsplugins-v3.patch
1294 ===================================================================
1295 # Gentoo's Add a search path for plugins. by agriffis
1296
1297 --- xpcom/io/nsAppFileLocationProvider.cpp.original 2007-02-14 00:59:21.000000000 +0100
1298 +++ xpcom/io/nsAppFileLocationProvider.cpp 2007-02-14 01:17:35.000000000 +0100
1299 @@ -205,6 +205,14 @@
1300 if (NS_SUCCEEDED(rv))
1301 rv = localFile->AppendRelativeNativePath(PLUGINS_DIR_NAME);
1302 }
1303 + else if (nsCRT::strcmp(prop, GENTOO_NSPLUGINS_DIR) == 0)
1304 + {
1305 + rv = NS_NewNativeLocalFile(nsDependentCString(GENTOO_NSPLUGINS_DIR), PR_TRUE, getter_AddRefs(localFile));
1306 + }
1307 + else if (nsCRT::strcmp(prop, GENTOO_NSBROWSER_PLUGINS_DIR) == 0)
1308 + {
1309 + rv = NS_NewNativeLocalFile(nsDependentCString(GENTOO_NSBROWSER_PLUGINS_DIR), PR_TRUE, getter_AddRefs(localFile));
1310 + }
1311 #ifdef XP_MACOSX
1312 else if (nsCRT::strcmp(prop, NS_MACOSX_USER_PLUGIN_DIR) == 0)
1313 {
1314 @@ -592,7 +600,7 @@
1315
1316 *_retval = new nsAppDirectoryEnumerator(this, keys);
1317 #else
1318 - static const char* keys[] = { nsnull, NS_USER_PLUGINS_DIR, NS_APP_PLUGINS_DIR, nsnull };
1319 + static const char* keys[] = { nsnull, GENTOO_NSPLUGINS_DIR, GENTOO_NSBROWSER_PLUGINS_DIR, NS_USER_PLUGINS_DIR, NS_APP_PLUGINS_DIR, nsnull };
1320 if (!keys[0] && !(keys[0] = PR_GetEnv("MOZ_PLUGIN_PATH"))) {
1321 static const char nullstr = 0;
1322 keys[0] = &nullstr;
1323
1324
1325
1326 1.1 src/patchsets/mozilla-firefox/3.0.8/068_noxul-nss-gentoo-fix.patch
1327
1328 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/068_noxul-nss-gentoo-fix.patch?rev=1.1&view=markup
1329 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/068_noxul-nss-gentoo-fix.patch?rev=1.1&content-type=text/plain
1330
1331 Index: 068_noxul-nss-gentoo-fix.patch
1332 ===================================================================
1333 --- security/manager/ssl/src/nsNSSComponent.cpp.orig 2007-05-27 21:04:27.000000000 +0200
1334 +++ security/manager/ssl/src/nsNSSComponent.cpp 2007-05-27 21:17:56.000000000 +0200
1335 @@ -130,6 +130,8 @@
1336
1337 #define NS_CRYPTO_HASH_BUFFER_SIZE 4096
1338
1339 +#define GENTOO_NSS_LIBDIR NS_LITERAL_CSTRING ("nss")
1340 +
1341 static NS_DEFINE_CID(kNSSComponentCID, NS_NSSCOMPONENT_CID);
1342 int nsNSSComponent::mInstanceCount = 0;
1343
1344 @@ -708,11 +710,11 @@
1345 return;
1346
1347 const char *possible_ckbi_locations[] = {
1348 - NS_XPCOM_CURRENT_PROCESS_DIR,
1349 - NS_GRE_DIR,
1350 - 0 // This special value means:
1351 + 0,// This special value means:
1352 // search for ckbi in the directories on the shared
1353 // library/DLL search path
1354 + NS_XPCOM_CURRENT_PROCESS_DIR,
1355 + NS_GRE_DIR
1356 };
1357
1358 for (size_t il = 0; il < sizeof(possible_ckbi_locations)/sizeof(const char*); ++il) {
1359 @@ -721,7 +723,16 @@
1360
1361 if (!possible_ckbi_locations[il])
1362 {
1363 - fullLibraryPath = PR_GetLibraryName(nsnull, "nssckbi");
1364 +
1365 + directoryService->Get( NS_UNIX_LIB_DIR,
1366 + NS_GET_IID(nsILocalFile),
1367 + getter_AddRefs(mozFile));
1368 +
1369 + if (!mozFile) {
1370 + continue;
1371 + }
1372 +
1373 + mozFile->AppendNative(GENTOO_NSS_LIBDIR);
1374 }
1375 else
1376 {
1377 @@ -733,11 +744,12 @@
1378 continue;
1379 }
1380
1381 - nsCAutoString processDir;
1382 - mozFile->GetNativePath(processDir);
1383 - fullLibraryPath = PR_GetLibraryName(processDir.get(), "nssckbi");
1384 }
1385
1386 + nsCAutoString processDir;
1387 + mozFile->GetNativePath(processDir);
1388 + fullLibraryPath = PR_GetLibraryName(processDir.get(), "nssckbi");
1389 +
1390 if (!fullLibraryPath) {
1391 continue;
1392 }
1393 --- config/config.mk.orig 2007-05-27 23:32:35.000000000 +0200
1394 +++ config/config.mk 2007-05-27 23:34:30.000000000 +0200
1395 @@ -778,6 +778,7 @@
1396
1397 DEFINES += -DOSTYPE=\"$(OS_CONFIG)\"
1398 DEFINES += -DOSARCH=$(OS_ARCH)
1399 +DEFINES += -DGENTOO_LIB_DIR=\"$(libdir)\"
1400
1401 # For profiling
1402 ifdef ENABLE_EAZEL_PROFILER
1403 --- xpcom/io/SpecialSystemDirectory.cpp.orig 2007-05-27 23:36:29.000000000 +0200
1404 +++ xpcom/io/SpecialSystemDirectory.cpp 2007-05-27 23:37:48.000000000 +0200
1405 @@ -560,7 +560,7 @@
1406 PR_TRUE,
1407 aFile);
1408 case Unix_LibDirectory:
1409 - return NS_NewNativeLocalFile(nsDependentCString("/usr/local/lib/netscape/"),
1410 + return NS_NewNativeLocalFile(nsDependentCString(GENTOO_LIB_DIR),
1411 PR_TRUE,
1412 aFile);
1413
1414
1415
1416
1417 1.1 src/patchsets/mozilla-firefox/3.0.8/080_gcc-4.4-elif.patch
1418
1419 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/080_gcc-4.4-elif.patch?rev=1.1&view=markup
1420 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/080_gcc-4.4-elif.patch?rev=1.1&content-type=text/plain
1421
1422 Index: 080_gcc-4.4-elif.patch
1423 ===================================================================
1424 diff -Naurp mozilla-orig/toolkit/xre/nsAppRunner.cpp mozilla/toolkit/xre/nsAppRunner.cpp
1425 --- mozilla-orig/toolkit/xre/nsAppRunner.cpp 2008-11-17 08:36:43.000000000 -0600
1426 +++ mozilla/toolkit/xre/nsAppRunner.cpp 2009-03-01 20:35:11.000000000 -0600
1427 @@ -1459,7 +1459,7 @@ XRE_GetBinaryPath(const char* argv0, nsI
1428 if (NS_FAILED(rv))
1429 return rv;
1430
1431 -#elif
1432 +#else
1433 #error Oops, you need platform-specific code here
1434 #endif
1435
1436
1437
1438
1439 1.1 src/patchsets/mozilla-firefox/3.0.8/090-unaligned.patch
1440
1441 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/090-unaligned.patch?rev=1.1&view=markup
1442 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/090-unaligned.patch?rev=1.1&content-type=text/plain
1443
1444 Index: 090-unaligned.patch
1445 ===================================================================
1446 diff -ur mozilla.orig/toolkit/components/url-classifier/src/nsUrlClassifierDBService.cpp mozilla/toolkit/components/url-classifier/src/nsUrlClassifierDBService.cpp
1447 --- mozilla.orig/toolkit/components/url-classifier/src/nsUrlClassifierDBService.cpp 2009-04-01 12:47:52.000000000 +0000
1448 +++ mozilla/toolkit/components/url-classifier/src/nsUrlClassifierDBService.cpp 2009-04-01 12:48:38.000000000 +0000
1449 @@ -332,7 +332,9 @@
1450 (mHaveComplete && mCompleteHash < entry.mCompleteHash));
1451 }
1452
1453 - PRInt64 mId;
1454 + char __dummy_to_make_mid_aligned[4];
1455 +
1456 + PRInt64 mId __attribute__ ((packed));
1457
1458 nsUrlClassifierDomainHash mKey;
1459
1460 @@ -2023,8 +2025,9 @@
1461 return NS_ERROR_FAILURE;
1462 }
1463 const nsCSubstring& str = Substring(chunk, start, 4);
1464 - const PRUint32 *p = reinterpret_cast<const PRUint32*>(str.BeginReading());
1465 - entry->mAddChunkId = PR_ntohl(*p);
1466 + PRUint32 p;
1467 + memcpy(&p, reinterpret_cast<const PRUint32*>(str.BeginReading()), 4);
1468 + entry->mAddChunkId = PR_ntohl(p);
1469 if (entry->mAddChunkId == 0) {
1470 NS_WARNING("Received invalid chunk number.");
1471 return NS_ERROR_FAILURE;
1472 @@ -2052,8 +2055,9 @@
1473
1474 if (chunkType == CHUNK_SUB) {
1475 const nsCSubstring& str = Substring(chunk, start, 4);
1476 - const PRUint32 *p = reinterpret_cast<const PRUint32*>(str.BeginReading());
1477 - entry->mAddChunkId = PR_ntohl(*p);
1478 + PRUint32 p;
1479 + memcpy(&p, reinterpret_cast<const PRUint32*>(str.BeginReading()), 4);
1480 + entry->mAddChunkId = PR_ntohl(p);
1481 if (entry->mAddChunkId == 0) {
1482 NS_WARNING("Received invalid chunk number.");
1483 return NS_ERROR_FAILURE;
1484
1485
1486
1487 1.1 src/patchsets/mozilla-firefox/3.0.8/096_glibc-maxpathlen.patch
1488
1489 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/096_glibc-maxpathlen.patch?rev=1.1&view=markup
1490 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/096_glibc-maxpathlen.patch?rev=1.1&content-type=text/plain
1491
1492 Index: 096_glibc-maxpathlen.patch
1493 ===================================================================
1494
1495 # HG changeset patch
1496 # User Dmitry Potapov <dpotapov@×××××.com>
1497 # Date 1224561357 18000
1498 # Node ID adf33dbb59d04461121d236451dc8b5973b96fab
1499 # Parent 6e9a29a235ce506b4ca35fabefa34b48033beb69
1500 Bug 412610 - "MAXPATHLEN too small for glibc's realpath()" (define MAXPATHLEN as PATH_MAX when PATH_MAX is available) [r=bsmedberg]
1501
1502 --- browser/components/migration/src/nsDogbertProfileMigrator.cpp.old Tue Oct 21 16:36:29 2008 +1300
1503 +++ browser/components/migration/src/nsDogbertProfileMigrator.cpp Mon Oct 20 22:55:57 2008 -0500
1504 @@ -58,9 +58,12 @@
1505 #include "nsDirectoryServiceDefs.h"
1506 #include "nsDirectoryServiceUtils.h"
1507 #include <stdlib.h>
1508 +#include <limits.h>
1509
1510 #ifndef MAXPATHLEN
1511 -#ifdef _MAX_PATH
1512 +#ifdef PATH_MAX
1513 +#define MAXPATHLEN PATH_MAX
1514 +#elif defined(_MAX_PATH)
1515 #define MAXPATHLEN _MAX_PATH
1516 #elif defined(CCHMAXPATH)
1517 #define MAXPATHLEN CCHMAXPATH
1518 --- browser/components/migration/src/nsProfileMigrator.cpp.old Tue Oct 21 16:36:29 2008 +1300
1519 +++ browser/components/migration/src/nsProfileMigrator.cpp Mon Oct 20 22:55:57 2008 -0500
1520 @@ -63,12 +63,16 @@
1521 #include <windows.h>
1522 #include "nsIWindowsRegKey.h"
1523 #include "nsILocalFileWin.h"
1524 +#else
1525 +#include <limits.h>
1526 #endif
1527
1528 #include "nsAutoPtr.h"
1529
1530 #ifndef MAXPATHLEN
1531 -#ifdef _MAX_PATH
1532 +#ifdef PATH_MAX
1533 +#define MAXPATHLEN PATH_MAX
1534 +#elif defined(_MAX_PATH)
1535 #define MAXPATHLEN _MAX_PATH
1536 #elif defined(CCHMAXPATH)
1537 #define MAXPATHLEN CCHMAXPATH
1538 --- toolkit/mozapps/update/src/updater/updater.cpp.old Tue Oct 21 16:36:29 2008 +1300
1539 +++ toolkit/mozapps/update/src/updater/updater.cpp Mon Oct 20 22:55:57 2008 -0500
1540 @@ -118,7 +118,9 @@ void LaunchChild(int argc, char **argv);
1541 #endif
1542
1543 #ifndef MAXPATHLEN
1544 -# ifdef MAX_PATH
1545 +# ifdef PATH_MAX
1546 +# define MAXPATHLEN PATH_MAX
1547 +# elif defined(_MAX_PATH)
1548 # define MAXPATHLEN MAX_PATH
1549 # elif defined(_MAX_PATH)
1550 # define MAXPATHLEN _MAX_PATH
1551 --- toolkit/xre/nsAppRunner.h.old Tue Oct 21 16:36:29 2008 +1300
1552 +++ toolkit/xre/nsAppRunner.h Mon Oct 20 22:55:57 2008 -0500
1553 @@ -40,10 +40,14 @@
1554
1555 #ifdef XP_WIN
1556 #include <windows.h>
1557 +#else
1558 +#include <limits.h>
1559 #endif
1560
1561 #ifndef MAXPATHLEN
1562 -#ifdef _MAX_PATH
1563 +#ifdef PATH_MAX
1564 +#define MAXPATHLEN PATH_MAX
1565 +#elif defined(_MAX_PATH)
1566 #define MAXPATHLEN _MAX_PATH
1567 #elif defined(CCHMAXPATH)
1568 #define MAXPATHLEN CCHMAXPATH
1569
1570
1571
1572
1573
1574 1.1 src/patchsets/mozilla-firefox/3.0.8/097_noxul_glibc-maxpathlen.patch
1575
1576 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/097_noxul_glibc-maxpathlen.patch?rev=1.1&view=markup
1577 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/097_noxul_glibc-maxpathlen.patch?rev=1.1&content-type=text/plain
1578
1579 Index: 097_noxul_glibc-maxpathlen.patch
1580 ===================================================================
1581 --- xpcom/build/nsXPCOMPrivate.h.old Tue Oct 21 16:36:29 2008 +1300
1582 +++ xpcom/build/nsXPCOMPrivate.h Mon Oct 20 22:55:57 2008 -0500
1583 @@ -231,6 +231,7 @@ NS_GetFrozenFunctions(XPCOMFunctions *en
1584 #define XUL_DLL "libxul"MOZ_DLL_SUFFIX
1585
1586 #else // Unix
1587 +#include <limits.h> // for PATH_MAX
1588
1589 #define XPCOM_DLL "libxpcom"MOZ_DLL_SUFFIX
1590
1591
1592
1593
1594
1595 1.1 src/patchsets/mozilla-firefox/3.0.8/100-system-hunspell-corrections.patch
1596
1597 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/100-system-hunspell-corrections.patch?rev=1.1&view=markup
1598 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/100-system-hunspell-corrections.patch?rev=1.1&content-type=text/plain
1599
1600 Index: 100-system-hunspell-corrections.patch
1601 ===================================================================
1602 --- ./extensions/spellcheck/hunspell/src/mozHunspell.cpp.orig 2008-02-15 19:21:21.000000000 +0000
1603 +++ ./extensions/spellcheck/hunspell/src/mozHunspell.cpp 2008-02-15 19:23:20.000000000 +0000
1604 @@ -63,6 +63,9 @@
1605 #include "nsISimpleEnumerator.h"
1606 #include "nsIDirectoryEnumerator.h"
1607 #include "nsIFile.h"
1608 +#ifdef MOZ_NATIVE_HUNSPELL
1609 +#include "nsILocalFile.h"
1610 +#endif
1611 #include "nsDirectoryServiceUtils.h"
1612 #include "nsDirectoryServiceDefs.h"
1613 #include "mozISpellI18NManager.h"
1614 @@ -307,7 +310,16 @@
1615 return;
1616
1617 nsCOMPtr<nsIFile> dictDir;
1618 - rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY,
1619 + #ifdef MOZ_NATIVE_HUNSPELL
1620 + nsCOMPtr<nsILocalFile> localFile;
1621 + rv = NS_NewNativeLocalFile(nsDependentCString("/usr/share/myspell"),PR_TRUE, getter_AddRefs(localFile));
1622 + if (localFile && NS_SUCCEEDED(rv)) {
1623 + localFile->QueryInterface(NS_GET_IID(nsIFile), getter_AddRefs(dictDir));
1624 + LoadDictionariesFromDir(dictDir);
1625 + }
1626 + else {
1627 + #endif
1628 + rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY,
1629 NS_GET_IID(nsIFile), getter_AddRefs(dictDir));
1630 if (NS_SUCCEEDED(rv)) {
1631 LoadDictionariesFromDir(dictDir);
1632 @@ -332,6 +344,9 @@
1633 LoadDictionariesFromDir(appDir);
1634 }
1635 }
1636 +#ifdef MOZ_NATIVE_HUNSPELL
1637 + }
1638 +#endif
1639
1640 nsCOMPtr<nsISimpleEnumerator> dictDirs;
1641 rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY_LIST,
1642 --- ./extensions/spellcheck/src/Makefile.in.orig 2008-02-15 19:25:58.000000000 +0000
1643 +++ ./extensions/spellcheck/src/Makefile.in 2008-02-15 19:28:36.000000000 +0000
1644 @@ -63,9 +63,16 @@
1645 txtsvc \
1646 uconv \
1647 unicharutil \
1648 + xulapp \
1649 $(NULL)
1650
1651 -CPPSRCS = \
1652 +ifdef MOZ_NATIVE_HUNSPELL
1653 +CPPSRCS += mozHunspell.cpp
1654 +ifdef MOZ_XUL_APP
1655 +CPPSRCS += mozHunspellDirProvider.cpp
1656 +endif
1657 +endif
1658 +CPPSRCS += \
1659 mozSpellCheckerFactory.cpp \
1660 mozSpellChecker.cpp \
1661 mozPersonalDictionary.cpp \
1662 @@ -80,8 +87,14 @@
1663 SHARED_LIBRARY_LIBS += ../osxspell/src/$(LIB_PREFIX)osxspell_s.$(LIB_SUFFIX)
1664 LOCAL_INCLUDES += -I$(srcdir)/../osxspell/src
1665 else
1666 +ifndef MOZ_NATIVE_HUNSPELL
1667 SHARED_LIBRARY_LIBS += ../hunspell/src/$(LIB_PREFIX)hunspell_s.$(LIB_SUFFIX)
1668 LOCAL_INCLUDES += -I$(srcdir)/../hunspell/src
1669 +else
1670 +LOCAL_INCLUDES += $(MOZ_HUNSPELL_CFLAGS) \
1671 + -DMOZ_NATIVE_HUNSPELL \
1672 + $(NULL)
1673 +endif
1674 endif
1675
1676 EXTRA_DSO_LDOPTS = \
1677 @@ -96,3 +112,18 @@
1678 LOCAL_INCLUDES += \
1679 -I$(topsrcdir)/xpcom/io \
1680 $(NULL)
1681 +
1682 +ifdef MOZ_NATIVE_HUNSPELL
1683 +export:: $(srcdir)/../hunspell/src/mozHunspell.cpp
1684 + $(INSTALL) $(srcdir)/../hunspell/src/mozHunspell.* .
1685 +GARBAGE += mozHunspell.$(OBJ_SUFFIX) mozHunspell.cpp
1686 +clean::
1687 + rm -f mozHunspell.*
1688 +ifdef MOZ_XUL_APP
1689 +export:: $(srcdir)/../hunspell/src/mozHunspellDirProvider.cpp
1690 + $(INSTALL) $(srcdir)/../hunspell/src/mozHunspellDirProvider.* .
1691 +GARBAGE += mozHunspellDirProvider.$(OBJ_SUFFIX) mozHunspellDirProvider.cpp
1692 +clean::
1693 + rm -f mozHunspellDirProvider.*
1694 +endif
1695 +endif
1696 --- ./extensions/spellcheck/Makefile.in.orig 2008-02-15 19:23:39.000000000 +0000
1697 +++ ./extensions/spellcheck/Makefile.in 2008-02-15 19:24:34.000000000 +0000
1698 @@ -42,13 +42,19 @@
1699 include $(DEPTH)/config/autoconf.mk
1700
1701 MODULE = spellchecker
1702 -DIRS = idl locales
1703 +ifndef MOZ_NATIVE_HUNSPELL
1704 +DIRS = idl locales
1705 +else
1706 +DIRS = idl
1707 +endif
1708
1709 ifeq (camino,$(MOZ_BUILD_APP))
1710 DIRS += osxspell
1711 else
1712 +ifndef MOZ_NATIVE_HUNSPELL
1713 DIRS += hunspell
1714 endif
1715 +endif
1716
1717 DIRS += src
1718
1719
1720
1721 1.1 src/patchsets/mozilla-firefox/3.0.8/300-xulonly-gnome_firefox_default_browser.patch
1722
1723 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/300-xulonly-gnome_firefox_default_browser.patch?rev=1.1&view=markup
1724 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/300-xulonly-gnome_firefox_default_browser.patch?rev=1.1&content-type=text/plain
1725
1726 Index: 300-xulonly-gnome_firefox_default_browser.patch
1727 ===================================================================
1728 ---
1729 browser/components/shell/src/nsGNOMEShellService.cpp | 16 ++++++++++++++--
1730 1 file changed, 14 insertions(+), 2 deletions(-)
1731
1732 Index: mozilla/browser/components/shell/src/nsGNOMEShellService.cpp
1733 ===================================================================
1734 --- mozilla.orig/browser/components/shell/src/nsGNOMEShellService.cpp
1735 +++ mozilla/browser/components/shell/src/nsGNOMEShellService.cpp
1736 @@ -62,16 +62,18 @@
1737 #endif
1738
1739 #include <glib.h>
1740 #include <glib-object.h>
1741 #include <gdk-pixbuf/gdk-pixbuf.h>
1742 #include <limits.h>
1743 #include <stdlib.h>
1744
1745 +#define SYSTEM_PATH_BUILD 1
1746 +
1747 struct ProtocolAssociation
1748 {
1749 const char *name;
1750 PRBool essential;
1751 };
1752
1753 struct MimeTypeAssociation
1754 {
1755 @@ -135,17 +137,16 @@
1756 return appPath->GetNativePath(mAppPath);
1757 }
1758
1759 NS_IMPL_ISUPPORTS1(nsGNOMEShellService, nsIShellService)
1760
1761 PRBool
1762 nsGNOMEShellService::KeyMatchesAppName(const char *aKeyValue) const
1763 {
1764 -
1765 gchar *commandPath;
1766 if (mUseLocaleFilenames) {
1767 gchar *nativePath = g_filename_from_utf8(aKeyValue, -1, NULL, NULL, NULL);
1768 if (!nativePath) {
1769 NS_ERROR("Error converting path to filesystem encoding");
1770 return PR_FALSE;
1771 }
1772
1773 @@ -153,19 +154,25 @@
1774 g_free(nativePath);
1775 } else {
1776 commandPath = g_find_program_in_path(aKeyValue);
1777 }
1778
1779 if (!commandPath)
1780 return PR_FALSE;
1781
1782 +#ifdef SYSTEM_PATH_BUILD
1783 + PRBool matches = NS_LITERAL_CSTRING("/usr/bin/" MOZ_APP_NAME).Equals(commandPath);
1784 + g_free(commandPath);
1785 + return matches;
1786 +#else
1787 PRBool matches = mAppPath.Equals(commandPath);
1788 g_free(commandPath);
1789 return matches;
1790 +#endif
1791 }
1792
1793 NS_IMETHODIMP
1794 nsGNOMEShellService::IsDefaultBrowser(PRBool aStartupCheck,
1795 PRBool* aIsDefaultBrowser)
1796 {
1797 *aIsDefaultBrowser = PR_FALSE;
1798 if (aStartupCheck)
1799 @@ -211,18 +218,23 @@
1800 #ifdef DEBUG
1801 if (aForAllUsers)
1802 NS_WARNING("Setting the default browser for all users is not yet supported");
1803 #endif
1804
1805 nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
1806
1807 nsCAutoString schemeList;
1808 +
1809 +#ifdef SYSTEM_PATH_BUILD
1810 + nsCAutoString appKeyValue(NS_LITERAL_CSTRING("/usr/bin/" MOZ_APP_NAME));
1811 +#else
1812 nsCAutoString appKeyValue(mAppPath);
1813 - appKeyValue.Append(" \"%s\"");
1814 +#endif
1815 + appKeyValue.Append(" %s");
1816 unsigned int i;
1817
1818 for (i = 0; i < NS_ARRAY_LENGTH(appProtocols); ++i) {
1819 schemeList.Append(nsDependentCString(appProtocols[i].name));
1820 schemeList.Append(',');
1821
1822 if (appProtocols[i].essential || aClaimAllTypes) {
1823 gconf->SetAppForProtocol(nsDependentCString(appProtocols[i].name),
1824
1825
1826
1827 1.1 src/patchsets/mozilla-firefox/3.0.8/667_typeahead-broken-v4.patch
1828
1829 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/667_typeahead-broken-v4.patch?rev=1.1&view=markup
1830 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/667_typeahead-broken-v4.patch?rev=1.1&content-type=text/plain
1831
1832 Index: 667_typeahead-broken-v4.patch
1833 ===================================================================
1834 --- extensions/typeaheadfind/src/Makefile.in.orig 2007-06-19 22:55:23.000000000 +0200
1835 +++ extensions/typeaheadfind/src/Makefile.in 2007-06-19 22:58:33.000000000 +0200
1836 @@ -46,8 +46,7 @@
1837 ifneq ($(OS_ARCH),WINNT)
1838 SHORT_LIBNAME = typahead
1839 endif
1840 -GRE_MODULE = 1
1841 -MOZILLA_INTERNAL_API = 1
1842 +LIBXUL_LIBRARY = 1
1843
1844 PACKAGE_FILE = typeaheadfind.pkg
1845
1846 @@ -84,9 +83,6 @@
1847 nsTypeAheadFindRegistration.cpp \
1848 $(NULL)
1849
1850 -EXTRA_DSO_LIBS = \
1851 - gkgfx \
1852 - $(NULL)
1853
1854 EXTRA_DSO_LDOPTS += \
1855 $(LIBS_DIR) \
1856 --- extensions/typeaheadfind/public/nsITypeAheadFind.idl 2007-08-05 20:29:55.000000000 +0200
1857 +++ /dev/null 2007-08-04 01:52:23.948566729 +0200
1858 @@ -1,88 +0,0 @@
1859 -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
1860 -/* ***** BEGIN LICENSE BLOCK *****
1861 - * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1862 - *
1863 - * The contents of this file are subject to the Mozilla Public License Version
1864 - * 1.1 (the "License"); you may not use this file except in compliance with
1865 - * the License. You may obtain a copy of the License at
1866 - * http://www.mozilla.org/MPL/
1867 - *
1868 - * Software distributed under the License is distributed on an "AS IS" basis,
1869 - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1870 - * for the specific language governing rights and limitations under the
1871 - * License.
1872 - *
1873 - * The Original Code is mozilla.org code.
1874 - *
1875 - * The Initial Developer of the Original Code is
1876 - * Netscape Communications Corporation.
1877 - * Portions created by the Initial Developer are Copyright (C) 1998
1878 - * the Initial Developer. All Rights Reserved.
1879 - *
1880 - * Contributor(s):
1881 - * Original Author: Aaron Leventhal (aaronl@××××××××.com)
1882 - *
1883 - * Alternatively, the contents of this file may be used under the terms of
1884 - * either the GNU General Public License Version 2 or later (the "GPL"), or
1885 - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
1886 - * in which case the provisions of the GPL or the LGPL are applicable instead
1887 - * of those above. If you wish to allow use of your version of this file only
1888 - * under the terms of either the GPL or the LGPL, and not to allow others to
1889 - * use your version of this file under the terms of the MPL, indicate your
1890 - * decision by deleting the provisions above and replace them with the notice
1891 - * and other provisions required by the GPL or the LGPL. If you do not delete
1892 - * the provisions above, a recipient may use your version of this file under
1893 - * the terms of any one of the MPL, the GPL or the LGPL.
1894 - *
1895 - * ***** END LICENSE BLOCK ***** */
1896 -
1897 -#include "nsISupports.idl"
1898 -#include "domstubs.idl"
1899 -#include "nsISupportsPrimitives.idl"
1900 -
1901 -%{ C++
1902 - #include "nsIDOMEvent.h"
1903 -
1904 - #define NS_TYPEAHEADFIND_CID \
1905 - {0x46590685, 0xbc00, 0x4aac, {0xab, 0xed, 0x2c, 0x10, 0xa5, 0xb9, 0x45, 0xa4}}
1906 -
1907 - #define NS_TYPEAHEADFIND_CONTRACTID "@mozilla.org/suitetypeaheadfind;1"
1908 -%}
1909 -
1910 -interface nsIDOMEvent;
1911 -
1912 -[scriptable, uuid(AD1C62CC-72F4-4c5b-BE78-503854F9E0D8)]
1913 -interface nsISuiteTypeAheadFind : nsISupports
1914 -{
1915 - /** Is type ahead find mode currently on? */
1916 - readonly attribute boolean isActive;
1917 -
1918 - /** Manually start type ahead find mode */
1919 - void startNewFind(in nsIDOMWindow aWindow, in boolean aLinksOnly);
1920 -
1921 - /** Manually cancel type ahead find mode */
1922 - void cancelFind();
1923 -
1924 - /**
1925 - * Will find as you type start automatically if the user
1926 - * types with the focus on page content other than a textfield or select?
1927 - * If autostart is off, the startNewFind() method can be used to enact
1928 - * type ahead find, as well as cmd_findTypeLinks or cmd_findTypeText.
1929 - */
1930 - void setAutoStart(in nsIDOMWindow aWindow, in boolean aIsAutoStartOn);
1931 - boolean getAutoStart(in nsIDOMWindow aWindow);
1932 -
1933 - /**
1934 - * Find next recurrence if typeaheadfind was the last used find,
1935 - * as opposed to regular find. Returns false in nsISupportsPRBool if we
1936 - * don't handle the request.
1937 - */
1938 - void findNext(in boolean aReverse, in nsISupportsInterfacePointer aCallerWindowSupports);
1939 -
1940 - /*
1941 - * Go back and remove one character from find string
1942 - * Returns true if backspace used
1943 - */
1944 - boolean backOneChar();
1945 -};
1946 -
1947 --- /dev/null 2007-08-04 01:52:23.948566729 +0200
1948 +++ extensions/typeaheadfind/public/nsISuiteTypeAheadFind.idl 2007-08-05 20:07:55.000000000 +0200
1949 @@ -0,0 +1,88 @@
1950 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
1951 +/* ***** BEGIN LICENSE BLOCK *****
1952 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1953 + *
1954 + * The contents of this file are subject to the Mozilla Public License Version
1955 + * 1.1 (the "License"); you may not use this file except in compliance with
1956 + * the License. You may obtain a copy of the License at
1957 + * http://www.mozilla.org/MPL/
1958 + *
1959 + * Software distributed under the License is distributed on an "AS IS" basis,
1960 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1961 + * for the specific language governing rights and limitations under the
1962 + * License.
1963 + *
1964 + * The Original Code is mozilla.org code.
1965 + *
1966 + * The Initial Developer of the Original Code is
1967 + * Netscape Communications Corporation.
1968 + * Portions created by the Initial Developer are Copyright (C) 1998
1969 + * the Initial Developer. All Rights Reserved.
1970 + *
1971 + * Contributor(s):
1972 + * Original Author: Aaron Leventhal (aaronl@××××××××.com)
1973 + *
1974 + * Alternatively, the contents of this file may be used under the terms of
1975 + * either the GNU General Public License Version 2 or later (the "GPL"), or
1976 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
1977 + * in which case the provisions of the GPL or the LGPL are applicable instead
1978 + * of those above. If you wish to allow use of your version of this file only
1979 + * under the terms of either the GPL or the LGPL, and not to allow others to
1980 + * use your version of this file under the terms of the MPL, indicate your
1981 + * decision by deleting the provisions above and replace them with the notice
1982 + * and other provisions required by the GPL or the LGPL. If you do not delete
1983 + * the provisions above, a recipient may use your version of this file under
1984 + * the terms of any one of the MPL, the GPL or the LGPL.
1985 + *
1986 + * ***** END LICENSE BLOCK ***** */
1987 +
1988 +#include "nsISupports.idl"
1989 +#include "domstubs.idl"
1990 +#include "nsISupportsPrimitives.idl"
1991 +
1992 +%{ C++
1993 + #include "nsIDOMEvent.h"
1994 +
1995 + #define NS_TYPEAHEADFIND_CID \
1996 + {0x46590685, 0xbc00, 0x4aac, {0xab, 0xed, 0x2c, 0x10, 0xa5, 0xb9, 0x45, 0xa4}}
1997 +
1998 + #define NS_TYPEAHEADFIND_CONTRACTID "@mozilla.org/suitetypeaheadfind;1"
1999 +%}
2000 +
2001 +interface nsIDOMEvent;
2002 +
2003 +[scriptable, uuid(AD1C62CC-72F4-4c5b-BE78-503854F9E0D8)]
2004 +interface nsISuiteTypeAheadFind : nsISupports
2005 +{
2006 + /** Is type ahead find mode currently on? */
2007 + readonly attribute boolean isActive;
2008 +
2009 + /** Manually start type ahead find mode */
2010 + void startNewFind(in nsIDOMWindow aWindow, in boolean aLinksOnly);
2011 +
2012 + /** Manually cancel type ahead find mode */
2013 + void cancelFind();
2014 +
2015 + /**
2016 + * Will find as you type start automatically if the user
2017 + * types with the focus on page content other than a textfield or select?
2018 + * If autostart is off, the startNewFind() method can be used to enact
2019 + * type ahead find, as well as cmd_findTypeLinks or cmd_findTypeText.
2020 + */
2021 + void setAutoStart(in nsIDOMWindow aWindow, in boolean aIsAutoStartOn);
2022 + boolean getAutoStart(in nsIDOMWindow aWindow);
2023 +
2024 + /**
2025 + * Find next recurrence if typeaheadfind was the last used find,
2026 + * as opposed to regular find. Returns false in nsISupportsPRBool if we
2027 + * don't handle the request.
2028 + */
2029 + void findNext(in boolean aReverse, in nsISupportsInterfacePointer aCallerWindowSupports);
2030 +
2031 + /*
2032 + * Go back and remove one character from find string
2033 + * Returns true if backspace used
2034 + */
2035 + boolean backOneChar();
2036 +};
2037 +
2038 --- extensions/typeaheadfind/src/nsTypeAheadFind.h.orig 2007-08-05 20:27:01.000000000 +0200
2039 +++ extensions/typeaheadfind/src/nsTypeAheadFind.h 2007-08-05 20:27:12.000000000 +0200
2040 @@ -60,7 +60,7 @@
2041 #include "nsIDOMRange.h"
2042 #include "nsIDOMWindow.h"
2043 #include "nsIDocShellTreeItem.h"
2044 -#include "nsITypeAheadFind.h"
2045 +#include "nsISuiteTypeAheadFind.h"
2046 #include "nsIStringBundle.h"
2047 #include "nsISupportsArray.h"
2048 #include "nsISound.h"
2049 --- extensions/typeaheadfind/public/Makefile.in.orig 2008-02-09 15:11:25.000000000 +0100
2050 +++ extensions/typeaheadfind/public/Makefile.in 2008-02-09 15:12:54.000000000 +0100
2051 @@ -45,6 +45,6 @@
2052 XPIDL_MODULE=suitetypeaheadfind
2053 GRE_MODULE = 1
2054
2055 -XPIDLSRCS = nsITypeAheadFind.idl
2056 +XPIDLSRCS = nsISuiteTypeAheadFind.idl
2057
2058 include $(topsrcdir)/config/rules.mk
2059
2060
2061
2062 1.1 src/patchsets/mozilla-firefox/3.0.8/800-noxul-bsd-include.patch
2063
2064 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/800-noxul-bsd-include.patch?rev=1.1&view=markup
2065 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/3.0.8/800-noxul-bsd-include.patch?rev=1.1&content-type=text/plain
2066
2067 Index: 800-noxul-bsd-include.patch
2068 ===================================================================
2069 --- configure.in.old 2007-12-10 12:29:54 +0000
2070 +++ configure.in 2007-12-10 12:38:19 +0000
2071 @@ -2862,6 +2862,7 @@
2072 ;;
2073 *)
2074 AC_CHECK_LIB(m, atan)
2075 + AC_CHECK_HEADER(dlfcn.h, AC_DEFINE(HAVE_DLCNF_H))
2076 AC_CHECK_LIB(dl, dlopen,
2077 AC_CHECK_HEADER(dlfcn.h,
2078 LIBS="-ldl $LIBS"
2079 --- xpcom/base/nsStackWalk.cpp.old 2007-12-10 12:43:02 +0000
2080 +++ xpcom/base/nsStackWalk.cpp 2007-12-10 12:43:51 +0000
2081 @@ -1111,7 +1111,7 @@
2082 #define __USE_GNU
2083 #endif
2084
2085 -#if defined(HAVE_LIBDL) || defined(XP_MACOSX)
2086 +#if defined(HAVE_DLCNF_H) || defined(XP_MACOSX)
2087 #include <dlfcn.h>
2088 #endif