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 |