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/2.0.0.19: 000_flex-configure-LANG.patch 001_firefox-arm.patch 002_firefox-libdeps.patch 003_unaligned.patch 004_mozilla-hppa.patch 005_mozilla-firefox-1.5-ia64.patch 006_mips-asm.patch 007_mozilla-firefox-1.5-asneeded.patch 008_firefox-pkgconfig-1.patch 010_visibility-gcc-4.2.patch 016_firefox-nss-3.12-asneeded.patch 032_firefox-2.0_ppc64-1.patch 033_firefox-2.0_ppc_powerpc.patch 040_firefox-2.0_arm.patch 050_respect-host-variable.patch 055_firefox-2.0_gfbsd-pthreads.patch 060_embed-typeaheadfind-1.patch 063_firefox-rpath-3.patch 064_firefox-nsplugins-v2.patch 090_xul-gcc4.3.patch 401_firefox-1.5-theme-change.patch 402_firefox-2.0-pango-cursor.patch 803_fbsd-3.patch 811_fbsd7-1.patch
Date: Sun, 25 Jan 2009 16:33:57
Message-Id: E1LR7vf-0004wK-Kt@stork.gentoo.org
1 armin76 09/01/25 16:33:47
2
3 Added: 000_flex-configure-LANG.patch 001_firefox-arm.patch
4 002_firefox-libdeps.patch 003_unaligned.patch
5 004_mozilla-hppa.patch
6 005_mozilla-firefox-1.5-ia64.patch
7 006_mips-asm.patch
8 007_mozilla-firefox-1.5-asneeded.patch
9 008_firefox-pkgconfig-1.patch
10 010_visibility-gcc-4.2.patch
11 016_firefox-nss-3.12-asneeded.patch
12 032_firefox-2.0_ppc64-1.patch
13 033_firefox-2.0_ppc_powerpc.patch
14 040_firefox-2.0_arm.patch
15 050_respect-host-variable.patch
16 055_firefox-2.0_gfbsd-pthreads.patch
17 060_embed-typeaheadfind-1.patch
18 063_firefox-rpath-3.patch
19 064_firefox-nsplugins-v2.patch 090_xul-gcc4.3.patch
20 401_firefox-1.5-theme-change.patch
21 402_firefox-2.0-pango-cursor.patch 803_fbsd-3.patch
22 811_fbsd7-1.patch
23 Log:
24 Add new patchset, with a new patch from aballier to work on fbsd7
25
26 Revision Changes Path
27 1.1 src/patchsets/mozilla-firefox/2.0.0.19/000_flex-configure-LANG.patch
28
29 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/000_flex-configure-LANG.patch?rev=1.1&view=markup
30 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/000_flex-configure-LANG.patch?rev=1.1&content-type=text/plain
31
32 Index: 000_flex-configure-LANG.patch
33 ===================================================================
34 The LANG vars aren't reset early enough so when sed tries to use [a-zA-Z] in
35 option parsing, it may break.
36
37 http://bugs.gentoo.org/103483
38
39 --- configure
40 +++ configure
41 @@ -54,6 +54,16 @@
42 infodir='${prefix}/info'
43 mandir='${prefix}/man'
44
45 +# NLS nuisances.
46 +# Only set these to C if already set. These must not be set unconditionally
47 +# because not all systems understand e.g. LANG=C (notably SCO).
48 +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
49 +# Non-C LC_CTYPE values break the ctype check.
50 +if test "${LANG+set}" = set; then LANG=C; export LANG; fi
51 +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
52 +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
53 +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
54 +
55 # Initialize some other variables.
56 subdirs=
57 MFLAGS= MAKEFLAGS=
58 @@ -452,16 +463,6 @@
59 esac
60 done
61
62 -# NLS nuisances.
63 -# Only set these to C if already set. These must not be set unconditionally
64 -# because not all systems understand e.g. LANG=C (notably SCO).
65 -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
66 -# Non-C LC_CTYPE values break the ctype check.
67 -if test "${LANG+set}" = set; then LANG=C; export LANG; fi
68 -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
69 -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
70 -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
71 -
72 # confdefs.h avoids OS command line length limits that DEFS can exceed.
73 rm -rf conftest* confdefs.h
74 # AIX cpp loses on an empty file, so make sure it contains at least a newline.
75
76
77
78 1.1 src/patchsets/mozilla-firefox/2.0.0.19/001_firefox-arm.patch
79
80 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/001_firefox-arm.patch?rev=1.1&view=markup
81 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/001_firefox-arm.patch?rev=1.1&content-type=text/plain
82
83 Index: 001_firefox-arm.patch
84 ===================================================================
85 # Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=336183
86
87 --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp 2006-05-17 02:02:51.000000000 -0400
88 +++ mozilla-16052006/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp 2006-05-17 01:17:16.000000000 -0400
89 @@ -39,18 +39,31 @@
90 /* Implement shared vtbl methods. */
91
92 #include "xptcprivate.h"
93
94 #if !defined(LINUX) || !defined(__arm__)
95 #error "This code is for Linux ARM only. Please check if it works for you, too.\nDepends strongly on gcc behaviour."
96 #endif
97
98 +#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4))
99 +/* This tells gcc3.4+ not to optimize away symbols.
100 + * @see http://gcc.gnu.org/gcc-3.4/changes.html
101 + */
102 +#define DONT_DROP_OR_WARN __attribute__((used))
103 +#else
104 +/* This tells older gccs not to warn about unused vairables.
105 + * @see http://docs.freebsd.org/info/gcc/gcc.info.Variable_Attributes.html
106 + */
107 +#define DONT_DROP_OR_WARN __attribute__((unused))
108 +#endif
109 +
110 /* Specify explicitly a symbol for this function, don't try to guess the c++ mangled symbol. */
111 -static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch");
112 +static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch")
113 +DONT_DROP_OR_WARN;
114
115 static nsresult
116 PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args)
117 {
118 #define PARAM_BUFFER_COUNT 16
119
120 nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
121 nsXPTCMiniVariant* dispatchParams = NULL;
122
123
124
125 1.1 src/patchsets/mozilla-firefox/2.0.0.19/002_firefox-libdeps.patch
126
127 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/002_firefox-libdeps.patch?rev=1.1&view=markup
128 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/002_firefox-libdeps.patch?rev=1.1&content-type=text/plain
129
130 Index: 002_firefox-libdeps.patch
131 ===================================================================
132 # Linking issue with pango
133 #
134 # https://bugzilla.mozilla.org/show_bug.cgi?id=344821
135
136 --- mozilla/layout/build/Makefile.in.orig 2006-07-16 00:24:51.000000000 +1000
137 +++ mozilla/layout/build/Makefile.in 2006-07-16 00:35:51.000000000 +1000
138 @@ -213,6 +213,12 @@
139 $(NULL)
140 endif
141
142 +ifdef MOZ_ENABLE_CANVAS
143 +ifdef MOZ_ENABLE_XFT
144 +EXTRA_DSO_LDOPTS += $(MOZ_XFT_LIBS)
145 +endif
146 +endif
147 +
148 ifdef NS_TRACE_MALLOC
149 EXTRA_DSO_LIBS += tracemalloc
150 endif
151
152
153
154 1.1 src/patchsets/mozilla-firefox/2.0.0.19/003_unaligned.patch
155
156 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/003_unaligned.patch?rev=1.1&view=markup
157 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/003_unaligned.patch?rev=1.1&content-type=text/plain
158
159 Index: 003_unaligned.patch
160 ===================================================================
161 # Upstream: https://bugzilla.mozilla.org/show_bug.cgi?id=161826
162 # Fix unaligned access
163 diff -ur mozilla.orig/intl/unicharutil/util/nsUnicharUtils.cpp mozilla/intl/unicharutil/util/nsUnicharUtils.cpp
164 --- mozilla.orig/intl/unicharutil/util/nsUnicharUtils.cpp 2007-12-29 12:43:10.000000000 +0000
165 +++ mozilla/intl/unicharutil/util/nsUnicharUtils.cpp 2007-12-29 12:44:08.000000000 +0000
166 @@ -348,3 +348,15 @@
167 return result;
168 }
169
170 +void
171 +SetUnichar(void *ptr, PRUnichar aChar)
172 +{
173 +#if NEED_STRICT_ALIGNMENT
174 + *((char *) ptr) = *((char *) &aChar);
175 + *((char *) ptr + 1) = *((char *) &aChar + 1);
176 +#else
177 + *((PRUnichar *) ptr) = aChar;
178 +#endif
179 +}
180 +
181 +
182 diff -ur mozilla.orig/intl/unicharutil/util/nsUnicharUtils.h mozilla/intl/unicharutil/util/nsUnicharUtils.h
183 --- mozilla.orig/intl/unicharutil/util/nsUnicharUtils.h 2007-12-29 12:43:10.000000000 +0000
184 +++ mozilla/intl/unicharutil/util/nsUnicharUtils.h 2007-12-29 12:44:31.000000000 +0000
185 @@ -82,6 +82,10 @@
186 PRUnichar ToUpperCase(PRUnichar);
187 PRUnichar ToLowerCase(PRUnichar);
188
189 +#define NEED_STRICT_ALIGNMENT defined(__sparc__) || defined(__alpha__) || defined(__mips__)
190 +
191 +void SetUnichar(void *, PRUnichar);
192 +
193 inline PRBool IsUpperCase(PRUnichar c) {
194 return ToLowerCase(c) != c;
195 }
196 diff -ur mozilla.orig/layout/generic/nsTextFrame.cpp mozilla/layout/generic/nsTextFrame.cpp
197 --- mozilla.orig/layout/generic/nsTextFrame.cpp 2007-12-29 12:43:02.000000000 +0000
198 +++ mozilla/layout/generic/nsTextFrame.cpp 2007-12-29 12:46:16.000000000 +0000
199 @@ -5123,18 +5123,27 @@
200 };
201
202 // Transforms characters in place from ascii to Unicode
203 -static void
204 +static PRUnichar *
205 TransformTextToUnicode(char* aText, PRInt32 aNumChars)
206 {
207 // Go backwards over the characters and convert them.
208 unsigned char* cp1 = (unsigned char*)aText + aNumChars - 1;
209 - PRUnichar* cp2 = (PRUnichar*)aText + (aNumChars - 1);
210 + PRUnichar* cp2;
211 + PRUnichar* ret;
212 +
213 + if ((unsigned long) aText & 0x1)
214 + cp2 = ((PRUnichar*)(aText + 1));
215 + else
216 + cp2 = (PRUnichar*)aText;
217
218 - while (aNumChars-- > 0) {
219 - // XXX: If you crash here then you may see the issue described
220 - // in http://bugzilla.mozilla.org/show_bug.cgi?id=36146#c44
221 - *cp2-- = PRUnichar(*cp1--);
222 - }
223 + ret = cp2;
224 +
225 + cp2 += (aNumChars - 1);
226 +
227 + while (aNumChars-- > 0)
228 + SetUnichar(cp2--, PRUnichar(*cp1--));
229 +
230 + return ret;
231 }
232
233 PRUint32
234 @@ -5702,7 +5711,7 @@
235 // The text transform buffer contains ascii characters, so
236 // transform it to Unicode
237 NS_ASSERTION(wordBufLen >= PRUint32(lastWordLen), "no room to transform in place");
238 - TransformTextToUnicode((char*)lastWordPtr, lastWordLen);
239 + pWordBuf = TransformTextToUnicode((char*)lastWordPtr, lastWordLen);
240 }
241
242 // Look ahead in the text-run and compute the final word
243 @@ -6232,7 +6241,7 @@
244 for (; aBuffer < end; aBuffer++) {
245 PRUnichar ch = *aBuffer;
246 if (ch == ' ') {
247 - *aBuffer = CH_NBSP;
248 + SetUnichar(aBuffer, CH_NBSP);
249 }
250 }
251 }
252
253
254
255 1.1 src/patchsets/mozilla-firefox/2.0.0.19/004_mozilla-hppa.patch
256
257 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/004_mozilla-hppa.patch?rev=1.1&view=markup
258 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/004_mozilla-hppa.patch?rev=1.1&content-type=text/plain
259
260 Index: 004_mozilla-hppa.patch
261 ===================================================================
262 # Original patch just cleaned up, Author on original patch was Randolph Chung (tausq@××××××.org)
263 # Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=287150
264
265 Index: xpcom/reflect/xptcall/src/md/unix/Makefile.in
266 ===================================================================
267 RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v
268 retrieving revision 1.92
269 diff -u -B -u -8 -p -r1.92 Makefile.in
270 --- xpcom/reflect/xptcall/src/md/unix/Makefile.in 14 Dec 2006 19:13:43 -0000 1.92
271 +++ xpcom/reflect/xptcall/src/md/unix/Makefile.in 3 Jan 2007 18:20:44 -0000
272 @@ -185,16 +185,29 @@ CPPSRCS := xptcinvoke_ipf32.cpp xptcstu
273 ASFILES := xptcstubs_asm_ipf32.s xptcinvoke_asm_ipf32.s
274 endif
275
276 # #18875 Building the CPP's (CXX) optimized causes a crash
277 CXXFLAGS := $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(CXXFLAGS))
278 endif
279 endif
280
281 +#
282 +# Linux/HPPA/gcc
283 +#
284 +ifeq ($(OS_ARCH),Linux)
285 +ifneq (,$(filter hppa2.0 hppa1.1,$(OS_TEST)))
286 +#ifeq ($(CC),gcc) # Do not check for gcc since there is only this compiler on linux for hppa
287 +CPPSRCS := xptcinvoke_pa32.cpp xptcstubs_pa32.cpp
288 +ASFILES := xptcstubs_asm_parisc_linux.s xptcinvoke_asm_parisc_linux.s
289 +#endif
290 +endif
291 +endif
292 +
293 +
294 ######################################################################
295 # M68k
296 ######################################################################
297 #
298 # NetBSD/m68k
299 #
300 ifeq ($(OS_ARCH),NetBSD)
301 ifneq (,$(filter amiga atari hp300 mac68k mvme68k next68k sun3 sun3x x68k,$(OS_TEST)))
302 Index: xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s
303 ===================================================================
304 RCS file: xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s
305 diff -N xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s
306 --- /dev/null 1 Jan 1970 00:00:00 -0000
307 +++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s 3 Jan 2007 18:20:44 -0000
308 @@ -0,0 +1,102 @@
309 +
310 + .LEVEL 1.1
311 + .text
312 + .align 4
313 +
314 +framesz:
315 + .equ 128
316 +
317 +.globl XPTC_InvokeByIndex
318 + .type XPTC_InvokeByIndex, @function
319 +
320 +
321 +XPTC_InvokeByIndex:
322 + .PROC
323 + .CALLINFO FRAME=72, CALLER,SAVE_RP, SAVE_SP, ENTRY_GR=3
324 + .ENTRY
325 +
326 + ; frame marker takes 48 bytes,
327 + ; register spill area takes 8 bytes,
328 + ; local stack area takes 72 bytes result in 128 bytes total
329 +
330 + STW %rp,-20(%sp)
331 + STW,MA %r3,128(%sp)
332 +
333 + LDO -framesz(%r30),%r28
334 + STW %r28,-4(%r30) ; save previous sp
335 + STW %r19,-32(%r30)
336 +
337 + STW %r26,-36-framesz(%r30) ; save argument registers in
338 + STW %r25,-40-framesz(%r30) ; in PREVIOUS frame
339 + STW %r24,-44-framesz(%r30) ;
340 + STW %r23,-48-framesz(%r30) ;
341 +
342 + .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26;out=28
343 + BL invoke_count_bytes,%r31
344 + COPY %r31,%r2
345 +
346 + CMPIB,>= 0,%r28, .+76
347 + COPY %r30,%r3 ; copy stack ptr to saved stack ptr
348 + ADD %r30,%r28,%r30 ; extend stack frame
349 + LDW -4(%r3),%r28 ; move frame
350 + STW %r28,-4(%r30)
351 + LDW -8(%r3),%r28
352 + STW %r28,-8(%r30)
353 + LDW -12(%r3),%r28
354 + STW %r28,-12(%r30)
355 + LDW -16(%r3),%r28
356 + STW %r28,-16(%r30)
357 + LDW -20(%r3),%r28
358 + STW %r28,-20(%r30)
359 + LDW -24(%r3),%r28
360 + STW %r28,-24(%r30)
361 + LDW -28(%r3),%r28
362 + STW %r28,-28(%r30)
363 + LDW -32(%r3),%r28
364 + STW %r28,-32(%r30)
365 +
366 + LDO -40(%r30),%r26 ; load copy address
367 + LDW -44-framesz(%r3),%r25 ; load rest of 2 arguments
368 + LDW -48-framesz(%r3),%r24 ;
369 +
370 + LDW -32(%r30),%r19 ; shared lib call destroys r19; reload
371 + .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26
372 + BL invoke_copy_to_stack,%r31
373 + COPY %r31,%r2
374 +
375 + LDO -48(%r30),%r20
376 + EXTRW,U,= %r28,31,1,%r22
377 + FLDD 0(%r20),%fr7 ; load double arg 1
378 + EXTRW,U,= %r28,30,1,%r22
379 + FLDW 8(%r20),%fr5L ; load float arg 1
380 + EXTRW,U,= %r28,29,1,%r22
381 + FLDW 4(%r20),%fr6L ; load float arg 2
382 + EXTRW,U,= %r28,28,1,%r22
383 + FLDW 0(%r20),%fr7L ; load float arg 3
384 +
385 + LDW -36-framesz(%r3),%r26 ; load ptr to 'that'
386 + LDW -40(%r30),%r25 ; load the rest of dispatch argument registers
387 + LDW -44(%r30),%r24
388 + LDW -48(%r30),%r23
389 +
390 + LDW -36-framesz(%r3),%r20 ; load vtable addr
391 + LDW -40-framesz(%r3),%r28 ; load index
392 + LDW 0(%r20),%r20 ; follow vtable
393 + SH2ADDL %r28,%r20,%r28 ; add 4*index to vtable entry
394 + LDW 0(%r28),%r22 ; load vtable entry
395 +
396 + .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=22-26;out=28;
397 + BL $$dyncall,%r31
398 + COPY %r31,%r2
399 +
400 + LDW -32(%r30),%r19
401 + COPY %r3,%r30 ; restore saved stack ptr
402 +
403 + LDW -148(%sp),%rp
404 + LDWM -128(%sp),%r3
405 + BV,N (%rp)
406 + NOP
407 + .EXIT
408 + .PROCEND ;in=23,24,25,26;
409 + .SIZE XPTC_InvokeByIndex, .-XPTC_InvokeByIndex
410 +
411 Index: xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s
412 ===================================================================
413 RCS file: xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s
414 diff -N xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s
415 --- /dev/null 1 Jan 1970 00:00:00 -0000
416 +++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s 3 Jan 2007 18:20:44 -0000
417 @@ -0,0 +1,66 @@
418 + .LEVEL 1.1
419 + .TEXT
420 + .ALIGN 4
421 +
422 +curframesz:
423 + .EQU 128
424 +
425 +
426 +; SharedStub has stack size of 128 bytes
427 +
428 +lastframesz:
429 + .EQU 64
430 +
431 +; the StubN C++ function has a small stack size of 64 bytes
432 +
433 +
434 +.globl SharedStub
435 + .type SharedStub, @function
436 +
437 +SharedStub:
438 + .PROC
439 + .CALLINFO CALLER,FRAME=80,SAVE_RP
440 +
441 + .ENTRY
442 + STW %rp,-20(%sp)
443 + LDO 128(%sp),%sp
444 +
445 + STW %r19,-32(%r30)
446 + STW %r26,-36-curframesz(%r30) ; save arg0 in previous frame
447 +
448 + LDO -80(%r30),%r28
449 + FSTD,MA %fr5,8(%r28) ; save darg0
450 + FSTD,MA %fr7,8(%r28) ; save darg1
451 + FSTW,MA %fr4L,4(%r28) ; save farg0
452 + FSTW,MA %fr5L,4(%r28) ; save farg1
453 + FSTW,MA %fr6L,4(%r28) ; save farg2
454 + FSTW,MA %fr7L,4(%r28) ; save farg3
455 +
456 + ; Former value of register 26 is already properly saved by StubN,
457 + ; but register 25-23 are not because of the arguments mismatch
458 + STW %r25,-40-curframesz-lastframesz(%r30) ; save r25
459 + STW %r24,-44-curframesz-lastframesz(%r30) ; save r24
460 + STW %r23,-48-curframesz-lastframesz(%r30) ; save r23
461 + COPY %r26,%r25 ; method index is arg1
462 + LDW -36-curframesz-lastframesz(%r30),%r26 ; self is arg0
463 + LDO -40-curframesz-lastframesz(%r30),%r24 ; normal args is arg2
464 + LDO -80(%r30),%r23 ; floating args is arg3
465 +
466 + .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=23-26;out=28;
467 + BL PrepareAndDispatch, %r31
468 + COPY %r31,%r2
469 +
470 + LDW -32(%r30),%r19
471 +
472 + LDW -148(%sp),%rp
473 + LDO -128(%sp),%sp
474 +
475 +
476 + BV,N (%rp)
477 + NOP
478 + NOP
479 +
480 + .EXIT
481 + .PROCEND ;in=26;out=28;
482 +
483 + .SIZE SharedStub, .-SharedStub
484
485
486
487 1.1 src/patchsets/mozilla-firefox/2.0.0.19/005_mozilla-firefox-1.5-ia64.patch
488
489 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/005_mozilla-firefox-1.5-ia64.patch?rev=1.1&view=markup
490 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/005_mozilla-firefox-1.5-ia64.patch?rev=1.1&content-type=text/plain
491
492 Index: 005_mozilla-firefox-1.5-ia64.patch
493 ===================================================================
494 # Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=289394
495
496 --- mozilla.orig/extensions/transformiix/source/base/Double.cpp
497 +++ mozilla/extensions/transformiix/source/base/Double.cpp
498 @@ -75,14 +75,7 @@
499 #define CPU_IS_ARM
500 #endif
501
502 -#if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
503 -/**
504 - * This version of the macros is safe for the alias optimizations
505 - * that gcc does, but uses gcc-specific extensions.
506 - */
507 -
508 typedef union txdpun {
509 - PRFloat64 d;
510 struct {
511 #if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
512 PRUint32 lo, hi;
513 @@ -90,8 +83,14 @@
514 PRUint32 hi, lo;
515 #endif
516 } s;
517 + PRFloat64 d;
518 } txdpun;
519
520 +#if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
521 +/**
522 + * This version of the macros is safe for the alias optimizations
523 + * that gcc does, but uses gcc-specific extensions.
524 + */
525 #define TX_DOUBLE_HI32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.hi; }))
526 #define TX_DOUBLE_LO32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.lo; }))
527
528 @@ -117,20 +116,20 @@
529
530 //-- Initialize Double related constants
531 #ifdef IS_BIG_ENDIAN
532 -const PRUint32 nanMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK,
533 - 0xffffffff};
534 -const PRUint32 infMask[2] = {TX_DOUBLE_HI32_EXPMASK, 0};
535 -const PRUint32 negInfMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0};
536 +const txdpun nanMask = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK,
537 + 0xffffffff};
538 +const txdpun infMask = {TX_DOUBLE_HI32_EXPMASK, 0};
539 +const txdpun negInfMask = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0};
540 #else
541 -const PRUint32 nanMask[2] = {0xffffffff,
542 - TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK};
543 -const PRUint32 infMask[2] = {0, TX_DOUBLE_HI32_EXPMASK};
544 -const PRUint32 negInfMask[2] = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT};
545 +const txdpun nanMask = {0xffffffff,
546 + TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK};
547 +const txdpun infMask = {0, TX_DOUBLE_HI32_EXPMASK};
548 +const txdpun negInfMask = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT};
549 #endif
550
551 -const double Double::NaN = *((double*)nanMask);
552 -const double Double::POSITIVE_INFINITY = *((double*)infMask);
553 -const double Double::NEGATIVE_INFINITY = *((double*)negInfMask);
554 +const double Double::NaN = nanMask.d;
555 +const double Double::POSITIVE_INFINITY = infMask.d;
556 +const double Double::NEGATIVE_INFINITY = negInfMask.d;
557
558 /*
559 * Determines whether the given double represents positive or negative
560 --- mozilla.orig/js/src/fdlibm/fdlibm.h
561
562
563
564 1.1 src/patchsets/mozilla-firefox/2.0.0.19/006_mips-asm.patch
565
566 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/006_mips-asm.patch?rev=1.1&view=markup
567 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/006_mips-asm.patch?rev=1.1&content-type=text/plain
568
569 Index: 006_mips-asm.patch
570 ===================================================================
571 Upstream Bug: http://bugzilla.mozilla.org/show_bug.cgi?id=258429
572
573 This patch is required to fix build issues with Mozilla on MIPS architectures.
574 The out-of-the-box code is coded to build on a PlayStation 2 game console, which
575 is a highly specialised MIPS machine based around the Toshiba TX5900. This CPU
576 is very non-standard, causing problems with generic MIPS machines like Silicon
577 Graphics workstations.
578
579 The following patch fixes the assembly language routines for generic MIPS
580 machines. In the case where it is being compiled for a PlayStation 2, the older
581 PS2-specific implementation is used instead.
582
583 Patch $Revision: 1.1 $
584 Index: mozilla/configure.in
585 ===================================================================
586 RCS file: /cvsroot/mozilla/configure.in,v
587 retrieving revision 1.1819
588 diff -p -u -r1.1819 configure.in
589 --- mozilla/configure.in 24 May 2007 17:45:55 -0000 1.1819
590 +++ mozilla/configure.in 30 May 2007 09:08:10 -0000
591 @@ -1706,6 +1706,12 @@ case "$target" in
592 MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS=1
593 ;;
594 mips*)
595 + if test -z "$CROSS_COMPILE" ; then
596 + if grep -c -E '^system type\W*:.*EE PS2' /proc/cpuinfo >/dev/null; then
597 + OS_TEST="mipsEE"
598 + fi
599 + fi
600 +
601 CFLAGS="$CFLAGS -Wa,-xgot"
602 CXXFLAGS="$CXXFLAGS -Wa,-xgot"
603 ;;
604 Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
605 ===================================================================
606 RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v
607 retrieving revision 1.92
608 diff -p -u -r1.92 Makefile.in
609 --- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 14 Dec 2006 19:13:43 -0000 1.92
610 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 30 May 2007 09:08:10 -0000
611 @@ -229,16 +229,28 @@ endif
612 endif
613 endif
614
615 +#
616 +# Linux/MIPS
617 +#
618 ifeq ($(OS_ARCH),Linux)
619 -ifneq (,$(findstring mips, $(OS_TEST)))
620 -CPPSRCS := xptcinvoke_mips.cpp xptcstubs_mips.cpp
621 -ASFILES := xptcinvoke_asm_mips.s xptcstubs_asm_mips.s
622 -#xptcstubs_mips.cpp
623 -# xptcstubs_asm_mips.s
624 +
625 +# PlayStation2 Linux
626 +ifneq (,$(findstring mipsEE, $(OS_TEST)))
627 +CPPSRCS := xptcinvoke_ps2mips.cpp xptcstubs_ps2mips.cpp
628 +ASFILES := xptcinvoke_asm_ps2mips.s xptcstubs_asm_ps2mips.s
629 ifdef GNU_CC
630 ASFLAGS += $(INCLUDES) -x assembler-with-cpp -D__GNUC__
631 endif
632 +else
633 +
634 +endif
635 +# Generic 32-bit Linux
636 +ifneq (,$(findstring mips, $(OS_TEST)))
637 +CPPSRCS := xptcinvoke_mips.cpp xptcstubs_mips.cpp
638 +ASFILES := xptcinvoke_asm_mips.s xptcstubs_asm_mips.s
639 +AS := $(CC) $(CFLAGS) $(INCLUDES) -c -x assembler-with-cpp
640 endif
641 +
642 endif
643
644 ######################################################################
645 @@ -386,14 +398,24 @@ LOCAL_INCLUDES += \
646 $(NULL)
647
648 ifeq ($(OS_ARCH),Linux)
649 +
650 +# PlayStation 2 Linux
651 +ifneq (,$(findstring mipsEE, $(OS_TEST)))
652 +xptcstubs_asm_ps2mips.o: xptcstubs_asm_ps2mips.s.m4 $(PUBLIC)/xptcstubsdef.inc
653 + m4 $(INCLUDES) $< > ./xptcstubs_asm_ps2mips.s && \
654 + $(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) ./xptcstubs_asm_ps2mips.s
655 + $(RM) -f ./xptcstubs_asm_ps2mips.s
656 +else
657 +
658 +# Generic Linux
659 ifneq (,$(findstring mips, $(OS_TEST)))
660 -xptcstubs_asm_mips.o: xptcstubs_asm_mips.s.m4 $(PUBLIC)/xptcstubsdef.inc
661 - m4 $(INCLUDES) $< > ./xptcstubs_asm_mips.s && \
662 - $(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) ./xptcstubs_asm_mips.s
663 - $(RM) -f ./xptcstubs_asm_mips.s
664 +xptcstubs_asm_mips.o: xptcstubs_asm_mips.s $(PUBLIC)/xptcstubsdef.inc
665 + $(AS) -o $@ $<
666 endif
667 endif
668
669 +endif
670 +
671 ifeq ($(OS_ARCH),Darwin)
672 xptcstubs_asm_ppc_darwin.o: xptcstubs_asm_ppc_darwin.s.m4 $(PUBLIC)/xptcstubsdef.inc Makefile
673 gm4 $(INCLUDES) $< > ./xptcstubs_asm_ppc_darwin.s && \
674 Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s
675 ===================================================================
676 RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s,v
677 retrieving revision 1.3
678 diff -p -u -r1.3 xptcinvoke_asm_mips.s
679 --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s.orig 2007-07-09 09:02:07 +1000
680 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s 2007-07-09 09:04:37 +1000
681 @@ -21,6 +21,7 @@
682 * Contributor(s):
683 * Brendan Eich <brendan@×××××××.org>
684 * Stuart Parmenter <pavlov@××××××××.com>
685 + * Thiemo Seufer <seufer@×××××××××××××××××××××.de>
686 */
687
688 /* This code is for MIPS using the O32 ABI. */
689 @@ -28,139 +29,123 @@
690 #include <sys/regdef.h>
691 #include <sys/asm.h>
692
693 -.text
694 -.globl invoke_count_words
695 -.globl invoke_copy_to_stack
696 -
697 -# We need a variable number of words allocated from the stack for copies of
698 -# the params, and this space must come between the high frame (where ra, gp,
699 -# and s0 are saved) and the low frame (where a0-a3 are saved by the callee
700 -# functions we invoke).
701 -
702 -LOCALSZ=4 # s0, s1, ra, gp
703 -NARGSAVE=4 # a0, a1, a2, a3
704 -HIFRAMESZ=(LOCALSZ*SZREG)
705 -LOFRAMESZ=(NARGSAVE*SZREG)
706 -FRAMESZ=(HIFRAMESZ+LOFRAMESZ+ALSZ)&ALMASK
707 -
708 -# XXX these 2*SZREG, etc. are very magic -- we *know* that ALSZ&ALMASK cause
709 -# FRAMESZ to be 0 mod 8, in this case to be 16 and not 12.
710 -RAOFF=FRAMESZ - (2*SZREG)
711 -GPOFF=FRAMESZ - (3*SZREG)
712 -S0OFF=FRAMESZ - (4*SZREG)
713 -S1OFF=FRAMESZ - (5*SZREG)
714 -
715 -# These are not magic -- they are just our argsave slots in the caller frame.
716 -A0OFF=FRAMESZ
717 -A1OFF=FRAMESZ + (1*SZREG)
718 -A2OFF=FRAMESZ + (2*SZREG)
719 -A3OFF=FRAMESZ + (3*SZREG)
720 -
721 - #
722 - # _XPTC_InvokeByIndex(that, methodIndex, paramCount, params)
723 - # a0 a1 a2 a3
724 -
725 -NESTED(_XPTC_InvokeByIndex, FRAMESZ, ra)
726 -
727 - .set noreorder
728 - .cpload t9
729 - .set reorder
730 -
731 +# NARGSAVE is the argument space in the callers frame, including extra
732 +# 'shadowed' space for the argument registers. The minimum of 4
733 +# argument slots is sometimes predefined in the header files.
734 +#ifndef NARGSAVE
735 +#define NARGSAVE 4
736 +#endif
737 +
738 +#define LOCALSZ 3 /* gp, fp, ra */
739 +#define FRAMESZ ((((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK)
740 +
741 +#define RAOFF (FRAMESZ - (1*SZREG))
742 +#define FPOFF (FRAMESZ - (2*SZREG))
743 +#define GPOFF (FRAMESZ - (3*SZREG))
744 +
745 +#define A0OFF (FRAMESZ + (0*SZREG))
746 +#define A1OFF (FRAMESZ + (1*SZREG))
747 +#define A2OFF (FRAMESZ + (2*SZREG))
748 +#define A3OFF (FRAMESZ + (3*SZREG))
749 +
750 + .text
751 +
752 +#
753 +# _XPTC_InvokeByIndex(that, methodIndex, paramCount, params)
754 +# a0 a1 a2 a3
755 +
756 + .globl _XPTC_InvokeByIndex
757 + .align 2
758 + .type _XPTC_InvokeByIndex,@function
759 + .ent _XPTC_InvokeByIndex,0
760 + .frame fp, FRAMESZ, ra
761 +_XPTC_InvokeByIndex:
762 + SETUP_GP
763 subu sp, FRAMESZ
764
765 - # specify the save register mask -- XXX do we want the a0-a3 here, given
766 - # our "split" frame where the args are saved below a dynamicly allocated
767 - # region under the high frame?
768 - #
769 - # 10010000000000010000000011110000
770 - .mask 0x900100F0, -((NARGSAVE+LOCALSZ)*SZREG)
771 -
772 - # thou shalt not use .cprestore if yer frame has variable size...
773 - # .cprestore GPOFF
774 -
775 - REG_S ra, RAOFF(sp)
776 -
777 - # this happens automatically with .cprestore, but we cannot use that op...
778 - REG_S gp, GPOFF(sp)
779 - REG_S s0, S0OFF(sp)
780 - REG_S s1, S1OFF(sp)
781 -
782 - REG_S a0, A0OFF(sp)
783 - REG_S a1, A1OFF(sp)
784 - REG_S a2, A2OFF(sp)
785 - REG_S a3, A3OFF(sp)
786 + # specify the save register mask for gp, fp, ra, a3 - a0
787 + .mask 0xD00000F0, RAOFF-FRAMESZ
788
789 - # invoke_count_words(paramCount, params)
790 - move a0, a2
791 - move a1, a3
792 + sw ra, RAOFF(sp)
793 + sw fp, FPOFF(sp)
794
795 - jal invoke_count_words
796 - lw gp, GPOFF(sp)
797 + # we can't use .cprestore in a variable stack frame
798 + sw gp, GPOFF(sp)
799
800 - # save the old sp so we can pop the param area and any "low frame"
801 - # needed as an argsave area below the param block for callees that
802 - # we invoke.
803 - move s0, sp
804 -
805 - REG_L a1, A2OFF(sp) # a1 = paramCount
806 - REG_L a2, A3OFF(sp) # a2 = params
807 -
808 - # we define a word as 4 bytes, period end of story!
809 - sll v0, 2 # 4 bytes * result of invoke_copy_words
810 - subu v0, LOFRAMESZ # but we take back the argsave area built into
811 - # our stack frame -- SWEET!
812 - subu sp, sp, v0 # make room
813 - move a0, sp # a0 = param stack address
814 - move s1, a0 # save it for later -- it should be safe here
815 -
816 - # the old sp is still saved in s0, but we now need another argsave
817 - # area ("low frame") for the invoke_copy_to_stack call.
818 - subu sp, sp, LOFRAMESZ
819 + sw a0, A0OFF(sp)
820 + sw a1, A1OFF(sp)
821 + sw a2, A2OFF(sp)
822 + sw a3, A3OFF(sp)
823 +
824 + # save bottom of fixed frame
825 + move fp, sp
826 +
827 + # extern "C" uint32
828 + # invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s);
829 + la t9, invoke_count_words
830 + move a0, a2
831 + move a1, a3
832 + jalr t9
833 + lw gp, GPOFF(fp)
834
835 - # copy the param into the stack areas
836 + # allocate variable stack, with a size of:
837 + # wordsize (of 4 bytes) * result (already aligned to dword)
838 + # but a minimum of 16 byte
839 + sll v0, 2
840 + slt t0, v0, 16
841 + beqz t0, 1f
842 + li v0, 16
843 +1: subu sp, v0
844 +
845 + # let a0 point to the bottom of the variable stack, allocate
846 + # another fixed stack for:
847 + # extern "C" void
848 # invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
849 - # nsXPTCVariant* s)
850 - jal invoke_copy_to_stack
851 - lw gp, GPOFF(s0)
852 -
853 - move sp, s0 # get orig sp back, popping params and argsave
854 -
855 - REG_L a0, A0OFF(sp) # a0 = set "that" to be "this"
856 - REG_L a1, A1OFF(sp) # a1 = methodIndex
857 -
858 - # t1 = methodIndex * 4
859 - # (use shift instead of mult)
860 - sll t1, a1, 2
861 -
862 - # calculate the function we need to jump to,
863 - # which must then be saved in t9
864 + # nsXPTCVariant* s);
865 + la t9, invoke_copy_to_stack
866 + move a0, sp
867 + lw a1, A2OFF(fp)
868 + lw a2, A3OFF(fp)
869 + subu sp, 16
870 + jalr t9
871 + lw gp, GPOFF(fp)
872 +
873 + # back to the variable stack frame
874 + addu sp, 16
875 +
876 + # calculate the function we need to jump to, which must then be
877 + # stored in t9
878 + lw a0, A0OFF(fp) # a0 = set "that" to be "this"
879 + lw t0, A1OFF(fp) # a1 = methodIndex
880 lw t9, 0(a0)
881 - addu t9, t9, t1
882 - lw t9, 8(t9)
883 -
884 - # a1..a3 and f13..f14 should now be set to what
885 - # invoke_copy_to_stack told us. skip a0 and f12
886 - # because that is the "this" pointer
887 -
888 - REG_L a1, 1*SZREG(s1)
889 - REG_L a2, 2*SZREG(s1)
890 - REG_L a3, 3*SZREG(s1)
891 -
892 - l.d $f13, 8(s1)
893 - l.d $f14, 16(s1)
894 -
895 - # Create the stack pointer for the function, which must have 4 words
896 - # of space for callee-saved args. invoke_count_words allocated space
897 - # for a0 starting at s1, so we just move s1 into sp.
898 - move sp, s1
899 + # t0 = methodIndex << PTRLOG
900 + sll t0, t0, PTRLOG
901 + addu t9, t0
902 +#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
903 + lw t9, (t9)
904 +#else /* not G++ V3 ABI */
905 + lw t9, 2*PTRSIZE(t9)
906 +#endif /* G++ V3 ABI */
907 +
908 + # Set a1-a3 to what invoke_copy_to_stack told us. a0 is already
909 + # the "this" pointer. We don't have to care about floating
910 + # point arguments, the non-FP "this" pointer as first argument
911 + # means they'll never be used.
912 + lw a1, 1*SZREG(sp)
913 + lw a2, 2*SZREG(sp)
914 + lw a3, 3*SZREG(sp)
915 +
916 + jalr t9
917 + # Micro-optimization: There's no gp usage below this point, so
918 + # we don't reload.
919 + # lw gp, GPOFF(fp)
920
921 - jalr ra, t9
922 - lw gp, GPOFF(s0)
923 + # leave variable stack frame
924 + move sp, fp
925
926 - move sp, s0
927 + lw ra, RAOFF(sp)
928 + lw fp, FPOFF(sp)
929
930 - REG_L ra, RAOFF(sp)
931 - REG_L s0, S0OFF(sp)
932 - addu sp, FRAMESZ
933 + addiu sp, FRAMESZ
934 j ra
935 -.end _XPTC_InvokeByIndex
936 +END(_XPTC_InvokeByIndex)
937 Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ps2mips.s
938 ===================================================================
939 RCS file: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ps2mips.s
940 diff -N mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ps2mips.s
941 --- /dev/null 1 Jan 1970 00:00:00 -0000
942 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ps2mips.s 30 May 2007 09:08:10 -0000
943 @@ -0,0 +1,166 @@
944 +/* -*- Mode: asm; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
945 + * Version: MPL 1.1
946 + *
947 + * The contents of this file are subject to the Mozilla Public License Version
948 + * 1.1 (the "License"); you may not use this file except in compliance with
949 + * the License. You may obtain a copy of the License at
950 + * http://www.mozilla.org/MPL/
951 + *
952 + * Software distributed under the License is distributed on an "AS IS" basis,
953 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
954 + * for the specific language governing rights and limitations under the
955 + * License.
956 + *
957 + * The Original Code is mozilla.org code.
958 + *
959 + * The Initial Developer of the Original Code is
960 + * Netscape Communications Corp, Inc.
961 + * Portions created by the Initial Developer are Copyright (C) 2001
962 + * the Initial Developer. All Rights Reserved.
963 + *
964 + * Contributor(s):
965 + * Brendan Eich <brendan@×××××××.org>
966 + * Stuart Parmenter <pavlov@××××××××.com>
967 + */
968 +
969 +/* This code is for MIPS using the O32 ABI. */
970 +
971 +#include <sys/regdef.h>
972 +#include <sys/asm.h>
973 +
974 +.text
975 +.globl invoke_count_words
976 +.globl invoke_copy_to_stack
977 +
978 +# We need a variable number of words allocated from the stack for copies of
979 +# the params, and this space must come between the high frame (where ra, gp,
980 +# and s0 are saved) and the low frame (where a0-a3 are saved by the callee
981 +# functions we invoke).
982 +
983 +LOCALSZ=4 # s0, s1, ra, gp
984 +NARGSAVE=4 # a0, a1, a2, a3
985 +HIFRAMESZ=(LOCALSZ*SZREG)
986 +LOFRAMESZ=(NARGSAVE*SZREG)
987 +FRAMESZ=(HIFRAMESZ+LOFRAMESZ+ALSZ)&ALMASK
988 +
989 +# XXX these 2*SZREG, etc. are very magic -- we *know* that ALSZ&ALMASK cause
990 +# FRAMESZ to be 0 mod 8, in this case to be 16 and not 12.
991 +RAOFF=FRAMESZ - (2*SZREG)
992 +GPOFF=FRAMESZ - (3*SZREG)
993 +S0OFF=FRAMESZ - (4*SZREG)
994 +S1OFF=FRAMESZ - (5*SZREG)
995 +
996 +# These are not magic -- they are just our argsave slots in the caller frame.
997 +A0OFF=FRAMESZ
998 +A1OFF=FRAMESZ + (1*SZREG)
999 +A2OFF=FRAMESZ + (2*SZREG)
1000 +A3OFF=FRAMESZ + (3*SZREG)
1001 +
1002 + #
1003 + # _XPTC_InvokeByIndex(that, methodIndex, paramCount, params)
1004 + # a0 a1 a2 a3
1005 +
1006 +NESTED(_XPTC_InvokeByIndex, FRAMESZ, ra)
1007 +
1008 + .set noreorder
1009 + .cpload t9
1010 + .set reorder
1011 +
1012 + subu sp, FRAMESZ
1013 +
1014 + # specify the save register mask -- XXX do we want the a0-a3 here, given
1015 + # our "split" frame where the args are saved below a dynamicly allocated
1016 + # region under the high frame?
1017 + #
1018 + # 10010000000000010000000011110000
1019 + .mask 0x900100F0, -((NARGSAVE+LOCALSZ)*SZREG)
1020 +
1021 + # thou shalt not use .cprestore if yer frame has variable size...
1022 + # .cprestore GPOFF
1023 +
1024 + REG_S ra, RAOFF(sp)
1025 +
1026 + # this happens automatically with .cprestore, but we cannot use that op...
1027 + REG_S gp, GPOFF(sp)
1028 + REG_S s0, S0OFF(sp)
1029 + REG_S s1, S1OFF(sp)
1030 +
1031 + REG_S a0, A0OFF(sp)
1032 + REG_S a1, A1OFF(sp)
1033 + REG_S a2, A2OFF(sp)
1034 + REG_S a3, A3OFF(sp)
1035 +
1036 + # invoke_count_words(paramCount, params)
1037 + move a0, a2
1038 + move a1, a3
1039 +
1040 + jal invoke_count_words
1041 + lw gp, GPOFF(sp)
1042 +
1043 + # save the old sp so we can pop the param area and any "low frame"
1044 + # needed as an argsave area below the param block for callees that
1045 + # we invoke.
1046 + move s0, sp
1047 +
1048 + REG_L a1, A2OFF(sp) # a1 = paramCount
1049 + REG_L a2, A3OFF(sp) # a2 = params
1050 +
1051 + # we define a word as 4 bytes, period end of story!
1052 + sll v0, 2 # 4 bytes * result of invoke_copy_words
1053 + subu v0, LOFRAMESZ # but we take back the argsave area built into
1054 + # our stack frame -- SWEET!
1055 + subu sp, sp, v0 # make room
1056 + move a0, sp # a0 = param stack address
1057 + move s1, a0 # save it for later -- it should be safe here
1058 +
1059 + # the old sp is still saved in s0, but we now need another argsave
1060 + # area ("low frame") for the invoke_copy_to_stack call.
1061 + subu sp, sp, LOFRAMESZ
1062 +
1063 + # copy the param into the stack areas
1064 + # invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
1065 + # nsXPTCVariant* s)
1066 + jal invoke_copy_to_stack
1067 + lw gp, GPOFF(s0)
1068 +
1069 + move sp, s0 # get orig sp back, popping params and argsave
1070 +
1071 + REG_L a0, A0OFF(sp) # a0 = set "that" to be "this"
1072 + REG_L a1, A1OFF(sp) # a1 = methodIndex
1073 +
1074 + # t1 = methodIndex * 4
1075 + # (use shift instead of mult)
1076 + sll t1, a1, 2
1077 +
1078 + # calculate the function we need to jump to,
1079 + # which must then be saved in t9
1080 + lw t9, 0(a0)
1081 + addu t9, t9, t1
1082 + lw t9, 8(t9)
1083 +
1084 + # a1..a3 and f13..f14 should now be set to what
1085 + # invoke_copy_to_stack told us. skip a0 and f12
1086 + # because that is the "this" pointer
1087 +
1088 + REG_L a1, 1*SZREG(s1)
1089 + REG_L a2, 2*SZREG(s1)
1090 + REG_L a3, 3*SZREG(s1)
1091 +
1092 + l.d $f13, 8(s1)
1093 + l.d $f14, 16(s1)
1094 +
1095 + # Create the stack pointer for the function, which must have 4 words
1096 + # of space for callee-saved args. invoke_count_words allocated space
1097 + # for a0 starting at s1, so we just move s1 into sp.
1098 + move sp, s1
1099 +
1100 + jalr ra, t9
1101 + lw gp, GPOFF(s0)
1102 +
1103 + move sp, s0
1104 +
1105 + REG_L ra, RAOFF(sp)
1106 + REG_L s0, S0OFF(sp)
1107 + addu sp, FRAMESZ
1108 + j ra
1109 +.end _XPTC_InvokeByIndex
1110 Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp
1111 ===================================================================
1112 RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp,v
1113 retrieving revision 1.2
1114 diff -p -u -r1.2 xptcinvoke_mips.cpp
1115 --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp 18 Apr 2004 14:18:18 -0000 1.2
1116 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp 30 May 2007 09:08:10 -0000
1117 @@ -1,6 +1,4 @@
1118 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
1119 - * Version: MPL 1.1
1120 - *
1121 * ***** BEGIN LICENSE BLOCK *****
1122 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1123 *
1124 @@ -24,6 +22,7 @@
1125 * Contributor(s):
1126 * Stuart Parmenter <pavlov@××××××××.com>
1127 * Brendan Eich <brendan@×××××××.org>
1128 + * Thiemo Seufer <seufer@×××××××××××××××××××××.de>
1129 *
1130 * Alternatively, the contents of this file may be used under the terms of
1131 * either of the GNU General Public License Version 2 or later (the "GPL"),
1132 @@ -52,10 +51,8 @@ invoke_count_words(PRUint32 paramCount,
1133 // Count a word for a0 even though it's never stored or loaded
1134 // We do this only for alignment of register pairs.
1135 PRUint32 result = 1;
1136 - for (PRUint32 i = 0; i < paramCount; i++, s++)
1137 + for (PRUint32 i = 0; i < paramCount; i++, result++, s++)
1138 {
1139 - result++;
1140 -
1141 if (s->IsPtrData())
1142 continue;
1143
1144 @@ -68,6 +65,9 @@ invoke_count_words(PRUint32 paramCount,
1145 result++;
1146 result++;
1147 break;
1148 +
1149 + default:
1150 + break;
1151 }
1152 }
1153 return (result + 1) & ~(PRUint32)1;
1154 @@ -88,8 +88,6 @@ invoke_copy_to_stack(PRUint32* d, PRUint
1155 continue;
1156 }
1157
1158 - *((void**)d) = s->val.p;
1159 -
1160 switch(s->type)
1161 {
1162 case nsXPTType::T_I64 :
1163 @@ -104,6 +102,9 @@ invoke_copy_to_stack(PRUint32* d, PRUint
1164 if ((PRWord)d & 4) d++;
1165 *((double*) d) = s->val.d; d++;
1166 break;
1167 + default:
1168 + *((void**)d) = s->val.p;
1169 + break;
1170 }
1171 }
1172 }
1173 @@ -118,5 +119,4 @@ XPTC_InvokeByIndex(nsISupports* that, PR
1174 PRUint32 paramCount, nsXPTCVariant* params)
1175 {
1176 return _XPTC_InvokeByIndex(that, methodIndex, paramCount, params);
1177 -}
1178 -
1179 +}
1180 Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ps2mips.cpp
1181 ===================================================================
1182 RCS file: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ps2mips.cpp
1183 diff -N mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ps2mips.cpp
1184 --- /dev/null 1 Jan 1970 00:00:00 -0000
1185 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ps2mips.cpp 30 May 2007 09:08:10 -0000
1186 @@ -0,0 +1,122 @@
1187 +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
1188 + * Version: MPL 1.1
1189 + *
1190 + * ***** BEGIN LICENSE BLOCK *****
1191 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1192 + *
1193 + * The contents of this file are subject to the Mozilla Public License Version
1194 + * 1.1 (the "License"); you may not use this file except in compliance with
1195 + * the License. You may obtain a copy of the License at
1196 + * http://www.mozilla.org/MPL/
1197 + *
1198 + * Software distributed under the License is distributed on an "AS IS" basis,
1199 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1200 + * for the specific language governing rights and limitations under the
1201 + * License.
1202 + *
1203 + * The Original Code is mozilla.org code.
1204 + *
1205 + * The Initial Developer of the Original Code is
1206 + * Netscape Communications Corp, Inc.
1207 + * Portions created by the Initial Developer are Copyright (C) 2001
1208 + * the Initial Developer. All Rights Reserved.
1209 + *
1210 + * Contributor(s):
1211 + * Stuart Parmenter <pavlov@××××××××.com>
1212 + * Brendan Eich <brendan@×××××××.org>
1213 + *
1214 + * Alternatively, the contents of this file may be used under the terms of
1215 + * either of the GNU General Public License Version 2 or later (the "GPL"),
1216 + * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
1217 + * in which case the provisions of the GPL or the LGPL are applicable instead
1218 + * of those above. If you wish to allow use of your version of this file only
1219 + * under the terms of either the GPL or the LGPL, and not to allow others to
1220 + * use your version of this file under the terms of the MPL, indicate your
1221 + * decision by deleting the provisions above and replace them with the notice
1222 + * and other provisions required by the GPL or the LGPL. If you do not delete
1223 + * the provisions above, a recipient may use your version of this file under
1224 + * the terms of any one of the MPL, the GPL or the LGPL.
1225 + *
1226 + * ***** END LICENSE BLOCK ***** */
1227 +
1228 +/* This code is for MIPS using the O32 ABI. */
1229 +
1230 +/* Platform specific code to invoke XPCOM methods on native objects */
1231 +
1232 +#include "xptcprivate.h"
1233 +
1234 +
1235 +extern "C" uint32
1236 +invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
1237 +{
1238 + // Count a word for a0 even though it's never stored or loaded
1239 + // We do this only for alignment of register pairs.
1240 + PRUint32 result = 1;
1241 + for (PRUint32 i = 0; i < paramCount; i++, s++)
1242 + {
1243 + result++;
1244 +
1245 + if (s->IsPtrData())
1246 + continue;
1247 +
1248 + switch(s->type)
1249 + {
1250 + case nsXPTType::T_I64 :
1251 + case nsXPTType::T_U64 :
1252 + case nsXPTType::T_DOUBLE :
1253 + if (result & 1)
1254 + result++;
1255 + result++;
1256 + break;
1257 + }
1258 + }
1259 + return (result + 1) & ~(PRUint32)1;
1260 +}
1261 +
1262 +extern "C" void
1263 +invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
1264 + nsXPTCVariant* s)
1265 +{
1266 + // Skip the unused a0 slot, which we keep only for register pair alignment.
1267 + d++;
1268 +
1269 + for (PRUint32 i = 0; i < paramCount; i++, d++, s++)
1270 + {
1271 + if (s->IsPtrData())
1272 + {
1273 + *((void**)d) = s->ptr;
1274 + continue;
1275 + }
1276 +
1277 + *((void**)d) = s->val.p;
1278 +
1279 + switch(s->type)
1280 + {
1281 + case nsXPTType::T_I64 :
1282 + if ((PRWord)d & 4) d++;
1283 + *((PRInt64*) d) = s->val.i64; d++;
1284 + break;
1285 + case nsXPTType::T_U64 :
1286 + if ((PRWord)d & 4) d++;
1287 + *((PRUint64*) d) = s->val.u64; d++;
1288 + break;
1289 + case nsXPTType::T_DOUBLE :
1290 + if ((PRWord)d & 4) d++;
1291 + *((double*) d) = s->val.d; d++;
1292 + break;
1293 + }
1294 + }
1295 +}
1296 +
1297 +extern "C" nsresult _XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
1298 + PRUint32 paramCount,
1299 + nsXPTCVariant* params);
1300 +
1301 +extern "C"
1302 +XPTC_PUBLIC_API(nsresult)
1303 +XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
1304 + PRUint32 paramCount, nsXPTCVariant* params)
1305 +{
1306 + return _XPTC_InvokeByIndex(that, methodIndex, paramCount, params);
1307 +}
1308 +
1309 Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ps2mips.cpp
1310 ===================================================================
1311 RCS file: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ps2mips.cpp
1312 diff -N mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ps2mips.cpp
1313 --- /dev/null 1 Jan 1970 00:00:00 -0000
1314 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ps2mips.cpp 30 May 2007 09:08:10 -0000
1315 @@ -0,0 +1,131 @@
1316 +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
1317 + * Version: MPL 1.1
1318 + *
1319 + * ***** BEGIN LICENSE BLOCK *****
1320 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1321 + *
1322 + * The contents of this file are subject to the Mozilla Public License Version
1323 + * 1.1 (the "License"); you may not use this file except in compliance with
1324 + * the License. You may obtain a copy of the License at
1325 + * http://www.mozilla.org/MPL/
1326 + *
1327 + * Software distributed under the License is distributed on an "AS IS" basis,
1328 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1329 + * for the specific language governing rights and limitations under the
1330 + * License.
1331 + *
1332 + * The Original Code is mozilla.org code.
1333 + *
1334 + * The Initial Developer of the Original Code is
1335 + * Netscape Communications Corp, Inc.
1336 + * Portions created by the Initial Developer are Copyright (C) 2001
1337 + * the Initial Developer. All Rights Reserved.
1338 + *
1339 + * Contributor(s):
1340 + * Stuart Parmenter <pavlov@××××××××.com>
1341 + *
1342 + * Alternatively, the contents of this file may be used under the terms of
1343 + * either of the GNU General Public License Version 2 or later (the "GPL"),
1344 + * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
1345 + * in which case the provisions of the GPL or the LGPL are applicable instead
1346 + * of those above. If you wish to allow use of your version of this file only
1347 + * under the terms of either the GPL or the LGPL, and not to allow others to
1348 + * use your version of this file under the terms of the MPL, indicate your
1349 + * decision by deleting the provisions above and replace them with the notice
1350 + * and other provisions required by the GPL or the LGPL. If you do not delete
1351 + * the provisions above, a recipient may use your version of this file under
1352 + * the terms of any one of the MPL, the GPL or the LGPL.
1353 + *
1354 + * ***** END LICENSE BLOCK ***** */
1355 +
1356 +#include "xptcprivate.h"
1357 +
1358 +/*
1359 + * This is for MIPS O32 ABI
1360 + * Args contains a0-3 and then the stack.
1361 + * Because a0 is 'this', we want to skip it
1362 + */
1363 +extern "C" nsresult
1364 +PrepareAndDispatch(nsXPTCStubBase* self, PRUint32 methodIndex, PRUint32* args)
1365 +{
1366 + args++; // always skip over a0
1367 +
1368 +#define PARAM_BUFFER_COUNT 16
1369 +
1370 + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
1371 + nsXPTCMiniVariant* dispatchParams = NULL;
1372 + nsIInterfaceInfo* iface_info = NULL;
1373 + const nsXPTMethodInfo* info;
1374 + PRUint8 paramCount;
1375 + PRUint8 i;
1376 + nsresult result = NS_ERROR_FAILURE;
1377 +
1378 + NS_ASSERTION(self,"no self");
1379 +
1380 + self->GetInterfaceInfo(&iface_info);
1381 + NS_ASSERTION(iface_info,"no interface info");
1382 +
1383 + iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
1384 + NS_ASSERTION(info,"no interface info");
1385 +
1386 + paramCount = info->GetParamCount();
1387 +
1388 + // setup variant array pointer
1389 + if(paramCount > PARAM_BUFFER_COUNT)
1390 + dispatchParams = new nsXPTCMiniVariant[paramCount];
1391 + else
1392 + dispatchParams = paramBuffer;
1393 + NS_ASSERTION(dispatchParams,"no place for params");
1394 +
1395 + PRUint32* ap = args;
1396 + for(i = 0; i < paramCount; i++, ap++)
1397 + {
1398 + const nsXPTParamInfo& param = info->GetParam(i);
1399 + const nsXPTType& type = param.GetType();
1400 + nsXPTCMiniVariant* dp = &dispatchParams[i];
1401 +
1402 + if(param.IsOut() || !type.IsArithmetic())
1403 + {
1404 + dp->val.p = (void*) *ap;
1405 + continue;
1406 + }
1407 +
1408 + dp->val.p = (void*) *ap;
1409 +
1410 + switch(type)
1411 + {
1412 + case nsXPTType::T_I64 :
1413 + if ((PRWord)ap & 4) ap++;
1414 + dp->val.i64 = *((PRInt64*) ap); ap++;
1415 + break;
1416 + case nsXPTType::T_U64 :
1417 + if ((PRWord)ap & 4) ap++;
1418 + dp->val.u64 = *((PRInt64*) ap); ap++;
1419 + break;
1420 + case nsXPTType::T_DOUBLE:
1421 + if ((PRWord)ap & 4) ap++;
1422 + dp->val.d = *((double*) ap); ap++;
1423 + break;
1424 + }
1425 + }
1426 +
1427 + result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams);
1428 +
1429 + NS_RELEASE(iface_info);
1430 +
1431 + if(dispatchParams != paramBuffer)
1432 + delete [] dispatchParams;
1433 +
1434 + return result;
1435 +}
1436 +
1437 +#define STUB_ENTRY(n) // done in the .s file
1438 +
1439 +#define SENTINEL_ENTRY(n) \
1440 +nsresult nsXPTCStubBase::Sentinel##n() \
1441 +{ \
1442 + NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
1443 + return NS_ERROR_NOT_IMPLEMENTED; \
1444 +}
1445 +
1446 +#include "xptcstubsdef.inc"
1447 diff -urN mozilla.old/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s
1448 --- mozilla.old/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s 1970-01-01 10:00:00 +1000
1449 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s 2007-01-17 15:33:47 +1000
1450 @@ -0,0 +1,142 @@
1451 +/* -*- Mode: asm; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
1452 + * Version: MPL 1.1
1453 + *
1454 + * The contents of this file are subject to the Mozilla Public License Version
1455 + * 1.1 (the "License"); you may not use this file except in compliance with
1456 + * the License. You may obtain a copy of the License at
1457 + * http://www.mozilla.org/MPL/
1458 + *
1459 + * Software distributed under the License is distributed on an "AS IS" basis,
1460 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1461 + * for the specific language governing rights and limitations under the
1462 + * License.
1463 + *
1464 + * The Original Code is mozilla.org code.
1465 + *
1466 + * The Initial Developer of the Original Code is
1467 + * Netscape Communications Corp, Inc.
1468 + * Portions created by the Initial Developer are Copyright (C) 2001
1469 + * the Initial Developer. All Rights Reserved.
1470 + *
1471 + * Contributor(s):
1472 + * Stuart Parmenter <pavlov@××××××××.com>
1473 + * Chris Waterson <waterson@××××××××.com>
1474 + * Thiemo Seufer <seufer@×××××××××××××××××××××.de>
1475 + */
1476 +
1477 +/* This code is for MIPS using the O32 ABI. */
1478 +
1479 +#include <sys/regdef.h>
1480 +#include <sys/asm.h>
1481 +
1482 +# NARGSAVE is the argument space in the callers frame, including extra
1483 +# 'shadowed' space for the argument registers. The minimum of 4
1484 +# argument slots is sometimes predefined in the header files.
1485 +#ifndef NARGSAVE
1486 +#define NARGSAVE 4
1487 +#endif
1488 +
1489 +#define LOCALSZ 2 /* gp, ra */
1490 +#define FRAMESZ ((((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK)
1491 +
1492 +#define RAOFF (FRAMESZ - (1*SZREG))
1493 +#define GPOFF (FRAMESZ - (2*SZREG))
1494 +
1495 +#define A0OFF (FRAMESZ + (0*SZREG))
1496 +#define A1OFF (FRAMESZ + (1*SZREG))
1497 +#define A2OFF (FRAMESZ + (2*SZREG))
1498 +#define A3OFF (FRAMESZ + (3*SZREG))
1499 +
1500 + .text
1501 +
1502 +#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
1503 +#define STUB_ENTRY(x) \
1504 + .if x < 10; \
1505 + .globl _ZN14nsXPTCStubBase5Stub ##x ##Ev; \
1506 + .type _ZN14nsXPTCStubBase5Stub ##x ##Ev,@function; \
1507 + .aent _ZN14nsXPTCStubBase5Stub ##x ##Ev,0; \
1508 +_ZN14nsXPTCStubBase5Stub ##x ##Ev:; \
1509 + SETUP_GP; \
1510 + li t0,x; \
1511 + b sharedstub; \
1512 + .elseif x < 100; \
1513 + .globl _ZN14nsXPTCStubBase6Stub ##x ##Ev; \
1514 + .type _ZN14nsXPTCStubBase6Stub ##x ##Ev,@function; \
1515 + .aent _ZN14nsXPTCStubBase6Stub ##x ##Ev,0; \
1516 +_ZN14nsXPTCStubBase6Stub ##x ##Ev:; \
1517 + SETUP_GP; \
1518 + li t0,x; \
1519 + b sharedstub; \
1520 + .elseif x < 1000; \
1521 + .globl _ZN14nsXPTCStubBase7Stub ##x ##Ev; \
1522 + .type _ZN14nsXPTCStubBase7Stub ##x ##Ev,@function; \
1523 + .aent _ZN14nsXPTCStubBase7Stub ##x ##Ev,0; \
1524 +_ZN14nsXPTCStubBase7Stub ##x ##Ev:; \
1525 + SETUP_GP; \
1526 + li t0,x; \
1527 + b sharedstub; \
1528 + .else; \
1529 + .err; \
1530 + .endif
1531 +#else /* not G++ V3 ABI */
1532 +#define STUB_ENTRY(x) \
1533 + .globl Stub ##x ##__14nsXPTCStubBase; \
1534 + .type Stub ##x ##__14nsXPTCStubBase,@function; \
1535 + .aent Stub ##x ##__14nsXPTCStubBase,0; \
1536 +Stub ##x ##__14nsXPTCStubBase:; \
1537 + SETUP_GP; \
1538 + li t0,x; \
1539 + b sharedstub
1540 +#endif /* G++ V3 ABI */
1541 +
1542 +# SENTINEL_ENTRY is handled in the cpp file.
1543 +#define SENTINEL_ENTRY(x)
1544 +
1545 +#
1546 +# open a dummy frame for the function entries
1547 +#
1548 + .align 2
1549 + .type dummy,@function
1550 + .ent dummy, 0
1551 + .frame sp, FRAMESZ, ra
1552 +dummy:
1553 + SETUP_GP
1554 +
1555 +#include "xptcstubsdef.inc"
1556 +
1557 +sharedstub:
1558 + subu sp, FRAMESZ
1559 +
1560 + # specify the save register mask for gp, ra, a0-a3
1561 + .mask 0x900000F0, RAOFF-FRAMESZ
1562 +
1563 + sw ra, RAOFF(sp)
1564 + SAVE_GP(GPOFF)
1565 +
1566 + # Micro-optimization: a0 is already loaded, and its slot gets
1567 + # ignored by PrepareAndDispatch, so no need to save it here.
1568 + # sw a0, A0OFF(sp)
1569 + sw a1, A1OFF(sp)
1570 + sw a2, A2OFF(sp)
1571 + sw a3, A3OFF(sp)
1572 +
1573 + la t9, PrepareAndDispatch
1574 +
1575 + # t0 is methodIndex
1576 + move a1, t0
1577 + # have a2 point to the begin of the argument space on stack
1578 + addiu a2, sp, FRAMESZ
1579 +
1580 + # PrepareAndDispatch(that, methodIndex, args)
1581 + jalr t9
1582 +
1583 + # Micro-optimization: Using jalr explicitly has the side-effect
1584 + # of not triggering .cprestore. This is ok because we have no
1585 + # gp reference below this point. It also allows better
1586 + # instruction sscheduling.
1587 + # lw gp, GPOFF(fp)
1588 +
1589 + lw ra, RAOFF(sp)
1590 + addiu sp, FRAMESZ
1591 + j ra
1592 + END(dummy)
1593
1594
1595
1596 1.1 src/patchsets/mozilla-firefox/2.0.0.19/007_mozilla-firefox-1.5-asneeded.patch
1597
1598 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/007_mozilla-firefox-1.5-asneeded.patch?rev=1.1&view=markup
1599 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/007_mozilla-firefox-1.5-asneeded.patch?rev=1.1&content-type=text/plain
1600
1601 Index: 007_mozilla-firefox-1.5-asneeded.patch
1602 ===================================================================
1603 # Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=311236
1604
1605 --- mozilla/embedding/browser/gtk/tests/Makefile.in.orig 2005-02-04 00:01:41.000000000 +0100
1606 +++ mozilla/embedding/browser/gtk/tests/Makefile.in 2006-04-28 05:21:10.000000000 +0200
1607 @@ -75,6 +75,8 @@
1608 endif
1609 endif
1610
1611 +OS_LDFLAGS += -Wl,-rpath-link,'$(DEPTH)/dist/bin'
1612 +
1613 ifdef MOZ_ENABLE_GTK
1614 LIBS += \
1615 -lgtkembedmoz \
1616
1617
1618
1619 1.1 src/patchsets/mozilla-firefox/2.0.0.19/008_firefox-pkgconfig-1.patch
1620
1621 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/008_firefox-pkgconfig-1.patch?rev=1.1&view=markup
1622 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/008_firefox-pkgconfig-1.patch?rev=1.1&content-type=text/plain
1623
1624 Index: 008_firefox-pkgconfig-1.patch
1625 ===================================================================
1626 # Fixup pkgconfig files for broken out NSPR and NSS. Patch from Fedora.
1627 # Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=221823
1628
1629 --- mozilla/config/autoconf.mk.in.orig 2006-06-14 22:16:08.000000000 +0200
1630 +++ mozilla/config/autoconf.mk.in 2006-07-20 11:00:13.000000000 +0200
1631 @@ -57,13 +57,13 @@
1632 prefix = @prefix@
1633 exec_prefix = @exec_prefix@
1634 bindir = @bindir@
1635 -includedir = @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
1636 +includedir = $(mozappdir)/include
1637 libdir = @libdir@
1638 datadir = @datadir@
1639 mandir = @mandir@
1640 -idldir = @datadir@/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
1641 +idldir = $(mozappdir)/idl
1642
1643 -mozappdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
1644 +mozappdir = $(libdir)/mozilla-$(MOZ_APP_NAME)
1645 mredir = $(libdir)/mre/mre-$(MOZ_APP_VERSION)
1646 mrelibdir = $(mredir)/lib
1647
1648 --- mozilla/build/unix/Makefile.in.orig 2005-07-07 20:24:39.000000000 +0200
1649 +++ mozilla/build/unix/Makefile.in 2006-07-20 11:00:13.000000000 +0200
1650 @@ -61,6 +61,19 @@
1651 NSPR_VERSION=$(shell $(DEPTH)/nsprpub/config/nspr-config --version)
1652 endif
1653
1654 +# Hack to make sure that mozilla-nss.pc has the proper nss dependencies
1655 +ifdef MOZ_NATIVE_NSS
1656 +FULL_NSS_CFLAGS=$(shell $(NSS_CONFIG) --cflags)
1657 +FULL_NSS_LIBS=$(shell $(NSS_CONFIG) --libs)
1658 +NSS_NAME=nss
1659 +NSS_VERSION=$(shell $(NSS_CONFIG) --version)
1660 +else
1661 +FULL_NSS_CFLAGS=-I$(includedir)/nss
1662 +FULL_NSS_LIBS=-L$(mozappdir)/nss -lnss3 -lsmime3 -lssl3 -lsoftokn3
1663 +NSS_NAME=$(MOZ_APP_NAME)-nss
1664 +NSS_VERSION=$(MOZ_APP_VERSION)
1665 +endif
1666 +
1667 ifdef MOZ_ENABLE_GTK
1668 SUPERWIN_LIBS=-lgtksuperwin
1669 endif
1670 @@ -83,7 +96,8 @@
1671 -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
1672 -e "s|%DEFS%|$(_DEFS)|" \
1673 -e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \
1674 - -e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" > $@
1675 + -e 's|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|' \
1676 + -e 's|\(echo -L.*\)\($$\)|\1 -Wl,-R$(mozappdir)\2|' > $@
1677
1678 $(MOZ_APP_NAME)-%.pc : mozilla-%.pc.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk
1679 cat $< | sed \
1680 @@ -99,7 +113,12 @@
1681 -e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \
1682 -e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" \
1683 -e "s|%NSPR_NAME%|$(NSPR_NAME)|" \
1684 - -e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" > $@
1685 + -e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" \
1686 + -e "s|%FULL_NSS_LIBS%|$(FULL_NSS_LIBS)|" \
1687 + -e "s|%FULL_NSS_CFLAGS%|$(FULL_NSS_CFLAGS)|" \
1688 + -e "s|%NSS_NAME%|$(NSS_NAME)|" \
1689 + -e "s|%NSS_VERSION%|$(NSS_VERSION)|" \
1690 + -e "s|\(^Libs: -L.*\)|\1 -Wl,-R\$$\{libdir}|" > $@
1691
1692 libs:: $(MOZ_APP_NAME)-config
1693 chmod 755 $<
1694 --- mozilla/build/unix/mozilla-js.pc.in.orig 2006-07-20 10:58:48.000000000 +0200
1695 +++ mozilla/build/unix/mozilla-js.pc.in 2006-07-20 11:00:13.000000000 +0200
1696 @@ -6,6 +6,6 @@
1697 Name: JavaScript
1698 Description: The Mozilla JavaScript Library
1699 Version: %MOZILLA_VERSION%
1700 -Requires: %NSPR_NAME% >= %NSPR_VERSION%
1701 +Requires: %MOZ_APP_NAME%-%NSPR_NAME% >= %NSPR_VERSION%
1702 Libs: -L${libdir} -lmozjs
1703 Cflags: -I${includedir}/js -DXP_UNIX
1704 --- mozilla/build/unix/mozilla-nspr.pc.in.orig 2006-07-20 10:59:11.000000000 +0200
1705 +++ mozilla/build/unix/mozilla-nspr.pc.in 2006-07-20 11:00:13.000000000 +0200
1706 @@ -1,12 +1,5 @@
1707 -prefix=%prefix%
1708 -exec_prefix=%exec_prefix%
1709 -libdir=%libdir%
1710 -includedir=%includedir%
1711 -
1712 Name: NSPR
1713 Description: The Netscape Portable Runtime
1714 Version: %NSPR_VERSION%
1715 -Libs: %FULL_NSPR_LIBS%
1716 -Cflags: %FULL_NSPR_CFLAGS%
1717 -
1718 +Requires: %NSPR_NAME% >= %NSPR_VERSION%
1719
1720 --- mozilla/build/unix/mozilla-xpcom.pc.in.orig 2006-07-20 10:59:32.000000000 +0200
1721 +++ mozilla/build/unix/mozilla-xpcom.pc.in 2006-07-20 11:00:13.000000000 +0200
1722 @@ -7,6 +7,6 @@
1723 Name: XPCOM
1724 Description: The Mozilla Cross Platform Component Library
1725 Version: %MOZILLA_VERSION%
1726 -Requires: %NSPR_NAME% >= %NSPR_VERSION%
1727 +Requires: %MOZ_APP_NAME%-%NSPR_NAME% >= %NSPR_VERSION%
1728 Libs: -L${libdir} -lxpcom
1729 Cflags: -I${includedir} -I${includedir}/xpcom -I${includedir}/string
1730 --- mozilla/build/unix/mozilla-nss.pc.in.orig 2006-07-20 10:59:41.000000000 +0200
1731 +++ mozilla/build/unix/mozilla-nss.pc.in 2006-07-20 11:00:13.000000000 +0200
1732 @@ -1,11 +1,4 @@
1733 -prefix=%prefix%
1734 -exec_prefix=%exec_prefix%
1735 -libdir=%libdir%
1736 -includedir=%includedir%
1737 -
1738 Name: NSS
1739 Description: Mozilla Network Security Services
1740 -Version: %MOZILLA_VERSION%
1741 -Requires: %NSPR_NAME% >= %NSPR_VERSION%
1742 -Libs: -L${libdir} -lnss3 -lsmime3 -lssl3 -lsoftokn3
1743 -Cflags: -I${includedir}/nss
1744 +Version: %NSS_VERSION%
1745 +Requires: %NSS_NAME% >= %NSS_VERSION%
1746
1747
1748
1749 1.1 src/patchsets/mozilla-firefox/2.0.0.19/010_visibility-gcc-4.2.patch
1750
1751 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/010_visibility-gcc-4.2.patch?rev=1.1&view=markup
1752 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/010_visibility-gcc-4.2.patch?rev=1.1&content-type=text/plain
1753
1754 Index: 010_visibility-gcc-4.2.patch
1755 ===================================================================
1756 --- configure.in.orig 2007-10-12 20:39:27.000000000 +0200
1757 +++ configure.in 2007-10-12 20:40:49.000000000 +0200
1758 @@ -2657,8 +2657,7 @@
1759 ])
1760 if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
1761 "$ac_cv_have_visibility_class_bug" = "no"; then
1762 - VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
1763 - WRAP_SYSTEM_INCLUDES=1
1764 + VISIBILITY_FLAGS='-fvisibility=hidden'
1765 else
1766 VISIBILITY_FLAGS='-fvisibility=hidden'
1767 fi # have visibility pragma bug
1768
1769
1770
1771 1.1 src/patchsets/mozilla-firefox/2.0.0.19/016_firefox-nss-3.12-asneeded.patch
1772
1773 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/016_firefox-nss-3.12-asneeded.patch?rev=1.1&view=markup
1774 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/016_firefox-nss-3.12-asneeded.patch?rev=1.1&content-type=text/plain
1775
1776 Index: 016_firefox-nss-3.12-asneeded.patch
1777 ===================================================================
1778 # Fix a FTBFS with system libnss (caused by bad linking order with libcrmf)
1779 # by Fabien Tassin <fta@×××××××××.org>
1780
1781 Index: seamonkey-1.1.4/configure.in
1782 ===================================================================
1783 --- seamonkey-1.1.4.orig/configure.in
1784 +++ seamonkey-1.1.4/configure.in
1785 @@ -3735,17 +3735,17 @@
1786 [ --with-system-nss Use system installed NSS],
1787 _USE_SYSTEM_NSS=1 )
1788
1789 if test -n "$_USE_SYSTEM_NSS"; then
1790 AM_PATH_NSS(3.0.0, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
1791 fi
1792
1793 if test -n "$MOZ_NATIVE_NSS"; then
1794 - NSS_LIBS="$NSS_LIBS -lcrmf"
1795 + NSS_LIBS=" -lcrmf $NSS_LIBS"
1796 else
1797 NSS_CFLAGS='-I$(DIST)/public/nss'
1798 NSS_DEP_LIBS='\\\
1799 $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \\\
1800 $(DIST)/lib/$(DLL_PREFIX)smime'$NSS_VERSION'$(DLL_SUFFIX) \\\
1801 $(DIST)/lib/$(DLL_PREFIX)ssl'$NSS_VERSION'$(DLL_SUFFIX) \\\
1802 $(DIST)/lib/$(DLL_PREFIX)nss'$NSS_VERSION'$(DLL_SUFFIX) \\\
1803 $(DIST)/lib/$(DLL_PREFIX)softokn'$NSS_VERSION'$(DLL_SUFFIX)'
1804
1805
1806
1807
1808 1.1 src/patchsets/mozilla-firefox/2.0.0.19/032_firefox-2.0_ppc64-1.patch
1809
1810 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/032_firefox-2.0_ppc64-1.patch?rev=1.1&view=markup
1811 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/032_firefox-2.0_ppc64-1.patch?rev=1.1&content-type=text/plain
1812
1813 Index: 032_firefox-2.0_ppc64-1.patch
1814 ===================================================================
1815 # Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=361415
1816
1817 unchanged:
1818 --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2006-11-21 17:09:28.000000000 +0000
1819 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2006-11-20 10:13:38.000000000 +0000
1820 @@ -267,6 +267,11 @@
1821 ASFILES := xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s
1822 AS := $(CC) -c -x assembler-with-cpp
1823 endif
1824 +ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc64)
1825 +CPPSRCS := xptcinvoke_ppc64_linux.cpp xptcstubs_ppc64_linux.cpp
1826 +ASFILES := xptcinvoke_asm_ppc64_linux.s xptcstubs_asm_ppc64_linux.s
1827 +AS := $(CC) -c -x assembler-with-cpp
1828 +endif
1829
1830 #
1831 # NetBSD/PPC
1832 diff -u mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s
1833 --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s 2006-11-21 14:01:45.000000000 +0000
1834 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s 2006-11-22 10:43:26.000000000 +0000
1835 @@ -0,0 +1,154 @@
1836 +// -*- Mode: Asm -*-
1837 +//
1838 +// The contents of this file are subject to the Netscape Public
1839 +// License Version 1.1 (the "License"); you may not use this file
1840 +// except in compliance with the License. You may obtain a copy of
1841 +// the License at http://www.mozilla.org/NPL/
1842 +//
1843 +// Software distributed under the License is distributed on an "AS
1844 +// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
1845 +// implied. See the License for the specific language governing
1846 +// rights and limitations under the License.
1847 +//
1848 +// The Original Code is mozilla.org code.
1849 +//
1850 +// The Initial Developer of the Original Code is Netscape
1851 +// Communications Corporation. Portions created by Netscape are
1852 +// Copyright (C) 1999 Netscape Communications Corporation. All
1853 +// Rights Reserved.
1854 +//
1855 +// Contributor(s):
1856 +// dwmw2@×××××××××.org (David Woodhouse)
1857 +// Franz.Sirl-kernel@××××××××××.com (Franz Sirl)
1858 +// beard@××××××××.com (Patrick Beard)
1859 +// waterson@××××××××.com (Chris Waterson)
1860 +//
1861 +
1862 +.set r0,0; .set r1,1; .set r2,2; .set r3,3; .set r4,4
1863 +.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
1864 +.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14
1865 +.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19
1866 +.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24
1867 +.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29
1868 +.set r30,30; .set r31,31
1869 +.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4
1870 +.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9
1871 +.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14
1872 +.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19
1873 +.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24
1874 +.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
1875 +.set f30,30; .set f31,31
1876 +
1877 +
1878 +//
1879 +// XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
1880 +// PRUint32 paramCount, nsXPTCVariant* params)
1881 +//
1882 +
1883 + .section ".toc","aw"
1884 + .section ".text"
1885 + .align 2
1886 + .globl XPTC_InvokeByIndex
1887 + .section ".opd","aw"
1888 + .align 3
1889 +XPTC_InvokeByIndex:
1890 + .quad .XPTC_InvokeByIndex,.TOC.@tocbase
1891 + .previous
1892 + .type XPTC_InvokeByIndex,@function
1893 +.XPTC_InvokeByIndex:
1894 + mflr 0
1895 + std 0,16(r1)
1896 +
1897 + std r29,-24(r1)
1898 + std r30,-16(r1)
1899 + std r31,-8(r1)
1900 +
1901 + mr r29,r3 // Save 'that' in r29
1902 + mr r30,r4 // Save 'methodIndex' in r30
1903 + mr r31,r1 // Save old frame
1904 +
1905 + // Allocate stack frame with space for params. Since at least the
1906 + // first 7 parameters (not including 'that') will be in registers,
1907 + // we don't actually need stack space for those. We must ensure
1908 + // that the stack remains 16-byte aligned.
1909 + //
1910 + // | ..128-byte stack frame.. | | 7 GP | 13 FP | 3 NV |
1911 + // | |(params)........| regs | regs | regs |
1912 + // (r1)...........(+112)....(+128)
1913 + // (-23*8).(-16*8).(-3*8)..(r31)
1914 +
1915 + // +stack frame, -unused stack params, +regs storage, +1 for alignment
1916 + addi r7,r5,((112/8)-7+7+13+3+1)
1917 + rldicr r7,r7,3,59 // multiply by 8 and mask with ~15
1918 + neg r7,r7
1919 + stdux r1,r1,r7
1920 +
1921 +
1922 + // Call invoke_copy_to_stack(PRUint64* gpregs, double* fpregs,
1923 + // PRUint32 paramCount, nsXPTCVariant* s,
1924 + // PRUint64* d))
1925 +
1926 + // r5, r6 are passed through intact (paramCount, params)
1927 + // r7 (d) has to be r1+112 -- where parameters are passed on the stack.
1928 + // r3, r4 are above that, easier to address from r31 than from r1
1929 +
1930 + subi r3,r31,(23*8) // r3 --> GPRS
1931 + subi r4,r31,(16*8) // r4 --> FPRS
1932 + addi r7,r1,112 // r7 --> params
1933 + bl invoke_copy_to_stack
1934 + nop
1935 +
1936 + // Set up to invoke function
1937 +
1938 + ld r9,0(r29) // vtable (r29 is 'that')
1939 + mr r3,r29 // self is first arg, obviously
1940 +
1941 + sldi r30,r30,3 // Find function descriptor
1942 + add r9,r9,r30
1943 + ld r9,0(r9)
1944 +
1945 + ld r0,0(r9) // Actual address from fd.
1946 + std r2,40(r1) // Save r2 (TOC pointer)
1947 +
1948 + mtctr 0
1949 + ld r11,16(r9) // Environment pointer from fd.
1950 + ld r2,8(r9) // TOC pointer from fd.
1951 +
1952 + // Load FP and GP registers as required
1953 + ld r4, -(23*8)(r31)
1954 + ld r5, -(22*8)(r31)
1955 + ld r6, -(21*8)(r31)
1956 + ld r7, -(20*8)(r31)
1957 + ld r8, -(19*8)(r31)
1958 + ld r9, -(18*8)(r31)
1959 + ld r10, -(17*8)(r31)
1960 +
1961 + lfd f1, -(16*8)(r31)
1962 + lfd f2, -(15*8)(r31)
1963 + lfd f3, -(14*8)(r31)
1964 + lfd f4, -(13*8)(r31)
1965 + lfd f5, -(12*8)(r31)
1966 + lfd f6, -(11*8)(r31)
1967 + lfd f7, -(10*8)(r31)
1968 + lfd f8, -(9*8)(r31)
1969 + lfd f9, -(8*8)(r31)
1970 + lfd f10, -(7*8)(r31)
1971 + lfd f11, -(6*8)(r31)
1972 + lfd f12, -(5*8)(r31)
1973 + lfd f13, -(4*8)(r31)
1974 +
1975 + bctrl // Do it
1976 +
1977 + ld r2,40(r1) // Load our own TOC pointer
1978 + ld r1,0(r1) // Revert stack frame
1979 + ld 0,16(r1) // Reload lr
1980 + ld 29,-24(r1) // Restore NVGPRS
1981 + ld 30,-16(r1)
1982 + ld 31,-8(r1)
1983 + mtlr 0
1984 + blr
1985 +
1986 + .size XPTC_InvokeByIndex,.-.XPTC_InvokeByIndex
1987 +
1988 + /* Magic indicating no need for an executable stack */
1989 + .section .note.GNU-stack, "", @progbits ; .previous
1990 --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp 1970-01-01 01:00:00.000000000 +0100
1991 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp 2006-11-21 17:00:06.000000000 +0000
1992 @@ -0,0 +1,127 @@
1993 +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
1994 +/* ***** BEGIN LICENSE BLOCK *****
1995 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1996 + *
1997 + * The contents of this file are subject to the Mozilla Public License Version
1998 + * 1.1 (the "License"); you may not use this file except in compliance with
1999 + * the License. You may obtain a copy of the License at
2000 + * http://www.mozilla.org/MPL/
2001 + *
2002 + * Software distributed under the License is distributed on an "AS IS" basis,
2003 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
2004 + * for the specific language governing rights and limitations under the
2005 + * License.
2006 + *
2007 + * The Original Code is mozilla.org code.
2008 + *
2009 + * The Initial Developer of the Original Code is
2010 + * Netscape Communications Corporation.
2011 + * Portions created by the Initial Developer are Copyright (C) 1998
2012 + * the Initial Developer. All Rights Reserved.
2013 + *
2014 + * Contributor(s):
2015 + * dwmw2@×××××××××.org (David Woodhouse)
2016 + * Franz.Sirl-kernel@××××××××××.com (Franz Sirl)
2017 + * beard@××××××××.com (Patrick Beard)
2018 + * waterson@××××××××.com (Chris Waterson)
2019 + *
2020 + * Alternatively, the contents of this file may be used under the terms of
2021 + * either of the GNU General Public License Version 2 or later (the "GPL"),
2022 + * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
2023 + * in which case the provisions of the GPL or the LGPL are applicable instead
2024 + * of those above. If you wish to allow use of your version of this file only
2025 + * under the terms of either the GPL or the LGPL, and not to allow others to
2026 + * use your version of this file under the terms of the MPL, indicate your
2027 + * decision by deleting the provisions above and replace them with the notice
2028 + * and other provisions required by the GPL or the LGPL. If you do not delete
2029 + * the provisions above, a recipient may use your version of this file under
2030 + * the terms of any one of the MPL, the GPL or the LGPL.
2031 + *
2032 + * ***** END LICENSE BLOCK ***** */
2033 +
2034 +// Platform specific code to invoke XPCOM methods on native objects
2035 +
2036 +// The purpose of XPTC_InvokeByIndex() is to map a platform
2037 +// independent call to the platform ABI. To do that,
2038 +// XPTC_InvokeByIndex() has to determine the method to call via vtable
2039 +// access. The parameters for the method are read from the
2040 +// nsXPTCVariant* and prepared for the native ABI.
2041 +
2042 +#include <stdio.h>
2043 +#include "xptcprivate.h"
2044 +
2045 +// 8 integral parameters are passed in registers, not including 'that'
2046 +#define GPR_COUNT 7
2047 +
2048 +// 8 floating point parameters are passed in registers, floats are
2049 +// promoted to doubles when passed in registers
2050 +#define FPR_COUNT 13
2051 +
2052 +extern "C" PRUint32
2053 +invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
2054 +{
2055 + return PRUint32(((paramCount * 2) + 3) & ~3);
2056 +}
2057 +
2058 +extern "C" void
2059 +invoke_copy_to_stack(PRUint64* gpregs,
2060 + double* fpregs,
2061 + PRUint32 paramCount,
2062 + nsXPTCVariant* s,
2063 + PRUint64* d)
2064 +{
2065 + PRUint64 tempu64;
2066 +
2067 + for(uint32 i = 0; i < paramCount; i++, s++) {
2068 + if(s->IsPtrData())
2069 + tempu64 = (PRUint64) s->ptr;
2070 + else {
2071 + switch(s->type) {
2072 + case nsXPTType::T_FLOAT: break;
2073 + case nsXPTType::T_DOUBLE: break;
2074 + case nsXPTType::T_I8: tempu64 = s->val.i8; break;
2075 + case nsXPTType::T_I16: tempu64 = s->val.i16; break;
2076 + case nsXPTType::T_I32: tempu64 = s->val.i32; break;
2077 + case nsXPTType::T_I64: tempu64 = s->val.i64; break;
2078 + case nsXPTType::T_U8: tempu64 = s->val.u8; break;
2079 + case nsXPTType::T_U16: tempu64 = s->val.u16; break;
2080 + case nsXPTType::T_U32: tempu64 = s->val.u32; break;
2081 + case nsXPTType::T_U64: tempu64 = s->val.u64; break;
2082 + case nsXPTType::T_BOOL: tempu64 = s->val.b; break;
2083 + case nsXPTType::T_CHAR: tempu64 = s->val.c; break;
2084 + case nsXPTType::T_WCHAR: tempu64 = s->val.wc; break;
2085 + default: tempu64 = (PRUint64) s->val.p; break;
2086 + }
2087 + }
2088 +
2089 + if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) {
2090 + if (i < FPR_COUNT)
2091 + fpregs[i] = s->val.d;
2092 + else
2093 + *(double *)d = s->val.d;
2094 + }
2095 + else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
2096 + if (i < FPR_COUNT) {
2097 + fpregs[i] = s->val.f; // if passed in registers, floats are promoted to doubles
2098 + } else {
2099 + float *p = (float *)d;
2100 + p++;
2101 + *p = s->val.f;
2102 + }
2103 + }
2104 + else {
2105 + if (i < GPR_COUNT)
2106 + gpregs[i] = tempu64;
2107 + else
2108 + *d = tempu64;
2109 + }
2110 + if (i >= 7)
2111 + d++;
2112 + }
2113 +}
2114 +
2115 +extern "C"
2116 +XPTC_PUBLIC_API(nsresult)
2117 +XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
2118 + PRUint32 paramCount, nsXPTCVariant* params);
2119 +
2120 diff -u mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s
2121 --- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s 2006-11-21 16:38:52.000000000 +0000
2122 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s 2006-11-22 10:51:14.000000000 +0000
2123 @@ -0,0 +1,102 @@
2124 +// -*- Mode: Asm -*-
2125 +//
2126 +// The contents of this file are subject to the Netscape Public
2127 +// License Version 1.1 (the "License"); you may not use this file
2128 +// except in compliance with the License. You may obtain a copy of
2129 +// the License at http://www.mozilla.org/NPL/
2130 +//
2131 +// Software distributed under the License is distributed on an "AS
2132 +// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
2133 +// implied. See the License for the specific language governing
2134 +// rights and limitations under the License.
2135 +//
2136 +// The Original Code is mozilla.org code.
2137 +//
2138 +// The Initial Developer of the Original Code is Netscape
2139 +// Communications Corporation. Portions created by Netscape are
2140 +// Copyright (C) 1999 Netscape Communications Corporation. All
2141 +// Rights Reserved.
2142 +//
2143 +// Contributor(s):
2144 +// dwmw2@×××××××××.org (David Woodhouse)
2145 +// Franz.Sirl-kernel@××××××××××.com (Franz Sirl)
2146 +// beard@××××××××.com (Patrick Beard)
2147 +// waterson@××××××××.com (Chris Waterson)
2148 +//
2149 +
2150 +.set r0,0; .set r1,1; .set RTOC,2; .set r3,3; .set r4,4
2151 +.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
2152 +.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14
2153 +.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19
2154 +.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24
2155 +.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29
2156 +.set r30,30; .set r31,31
2157 +.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4
2158 +.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9
2159 +.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14
2160 +.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19
2161 +.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24
2162 +.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
2163 +.set f30,30; .set f31,31
2164 +
2165 + .section ".text"
2166 + .align 2
2167 + .globl SharedStub
2168 + .section ".opd","aw"
2169 + .align 3
2170 +
2171 +SharedStub:
2172 + .quad .SharedStub,.TOC.@tocbase
2173 + .previous
2174 + .type SharedStub,@function
2175 +
2176 +.SharedStub:
2177 + mflr r0
2178 +
2179 + std r4, -56(r1) // Save all GPRS
2180 + std r5, -48(r1)
2181 + std r6, -40(r1)
2182 + std r7, -32(r1)
2183 + std r8, -24(r1)
2184 + std r9, -16(r1)
2185 + std r10, -8(r1)
2186 +
2187 + stfd f13, -64(r1) // ... and FPRS
2188 + stfd f12, -72(r1)
2189 + stfd f11, -80(r1)
2190 + stfd f10, -88(r1)
2191 + stfd f9, -96(r1)
2192 + stfd f8, -104(r1)
2193 + stfd f7, -112(r1)
2194 + stfd f6, -120(r1)
2195 + stfd f5, -128(r1)
2196 + stfd f4, -136(r1)
2197 + stfd f3, -144(r1)
2198 + stfd f2, -152(r1)
2199 + stfd f1, -160(r1)
2200 +
2201 + subi r6,r1,56 // r6 --> gprData
2202 + subi r7,r1,160 // r7 --> fprData
2203 + addi r5,r1,112 // r5 --> extra stack args
2204 +
2205 + std r0, 16(r1)
2206 +
2207 + stdu r1,-288(r1)
2208 + // r3 has the 'self' pointer already
2209 +
2210 + mr r4,r11 // r4 is methodIndex selector, passed
2211 + // via r11 in the nsXPTCStubBase::StubXX() call
2212 +
2213 + bl PrepareAndDispatch
2214 + nop
2215 +
2216 + ld 1,0(r1) // restore stack
2217 + ld r0,16(r1) // restore LR
2218 + mtlr r0
2219 + blr
2220 +
2221 + .size SharedStub,.-.SharedStub
2222 +
2223 +
2224 +/* Magic indicating no need for an executable stack */
2225 +.section .note.GNU-stack, "", @progbits ; .previous
2226 unchanged:
2227 --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp 1970-01-01 01:00:00.000000000 +0100
2228 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp 2006-11-21 16:59:46.000000000 +0000
2229 @@ -0,0 +1,247 @@
2230 +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2231 +/* ***** BEGIN LICENSE BLOCK *****
2232 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
2233 + *
2234 + * The contents of this file are subject to the Mozilla Public License Version
2235 + * 1.1 (the "License"); you may not use this file except in compliance with
2236 + * the License. You may obtain a copy of the License at
2237 + * http://www.mozilla.org/MPL/
2238 + *
2239 + * Software distributed under the License is distributed on an "AS IS" basis,
2240 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
2241 + * for the specific language governing rights and limitations under the
2242 + * License.
2243 + *
2244 + * The Original Code is mozilla.org code.
2245 + *
2246 + * The Initial Developer of the Original Code is
2247 + * Netscape Communications Corporation.
2248 + * Portions created by the Initial Developer are Copyright (C) 1999
2249 + * the Initial Developer. All Rights Reserved.
2250 + *
2251 + * Contributor(s):
2252 + * dwmw2@×××××××××.org (David Woodhouse)
2253 + * Franz.Sirl-kernel@××××××××××.com (Franz Sirl)
2254 + * beard@××××××××.com (Patrick Beard)
2255 + * waterson@××××××××.com (Chris Waterson)
2256 + *
2257 + * Alternatively, the contents of this file may be used under the terms of
2258 + * either of the GNU General Public License Version 2 or later (the "GPL"),
2259 + * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
2260 + * in which case the provisions of the GPL or the LGPL are applicable instead
2261 + * of those above. If you wish to allow use of your version of this file only
2262 + * under the terms of either the GPL or the LGPL, and not to allow others to
2263 + * use your version of this file under the terms of the MPL, indicate your
2264 + * decision by deleting the provisions above and replace them with the notice
2265 + * and other provisions required by the GPL or the LGPL. If you do not delete
2266 + * the provisions above, a recipient may use your version of this file under
2267 + * the terms of any one of the MPL, the GPL or the LGPL.
2268 + *
2269 + * ***** END LICENSE BLOCK ***** */
2270 +
2271 +// Implement shared vtbl methods.
2272 +
2273 +#include "xptcprivate.h"
2274 +
2275 +// The Linux/PPC ABI (aka PPC/SYSV ABI) passes the first 8 integral
2276 +// parameters and the first 13 floating point parameters in registers
2277 +// (r3-r10 and f1-f13), no stack space is allocated for these by the
2278 +// caller. The rest of the parameters are passed in the callers stack
2279 +// area. The stack pointer has to retain 16-byte alignment, longlongs
2280 +// and doubles are aligned on 8-byte boundaries.
2281 +
2282 +#define PARAM_BUFFER_COUNT 16
2283 +#define GPR_COUNT 7
2284 +#define FPR_COUNT 13
2285 +
2286 +// PrepareAndDispatch() is called by SharedStub() and calls the actual method.
2287 +//
2288 +// - 'args[]' contains the arguments passed on stack
2289 +// - 'gprData[]' contains the arguments passed in integer registers
2290 +// - 'fprData[]' contains the arguments passed in floating point registers
2291 +//
2292 +// The parameters are mapped into an array of type 'nsXPTCMiniVariant'
2293 +// and then the method gets called.
2294 +#include <stdio.h>
2295 +extern "C" nsresult
2296 +PrepareAndDispatch(nsXPTCStubBase* self,
2297 + PRUint64 methodIndex,
2298 + PRUint64* args,
2299 + PRUint64 *gprData,
2300 + double *fprData)
2301 +{
2302 + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
2303 + nsXPTCMiniVariant* dispatchParams = NULL;
2304 + nsIInterfaceInfo* iface_info = NULL;
2305 + const nsXPTMethodInfo* info;
2306 + PRUint32 paramCount;
2307 + PRUint32 i;
2308 + nsresult result = NS_ERROR_FAILURE;
2309 +
2310 + NS_ASSERTION(self,"no self");
2311 +
2312 + self->GetInterfaceInfo(&iface_info);
2313 + NS_ASSERTION(iface_info,"no interface info");
2314 + if (! iface_info)
2315 + return NS_ERROR_UNEXPECTED;
2316 +
2317 + iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
2318 + NS_ASSERTION(info,"no method info");
2319 + if (! info)
2320 + return NS_ERROR_UNEXPECTED;
2321 +
2322 + paramCount = info->GetParamCount();
2323 +
2324 + // setup variant array pointer
2325 + if(paramCount > PARAM_BUFFER_COUNT)
2326 + dispatchParams = new nsXPTCMiniVariant[paramCount];
2327 + else
2328 + dispatchParams = paramBuffer;
2329 +
2330 + NS_ASSERTION(dispatchParams,"no place for params");
2331 + if (! dispatchParams)
2332 + return NS_ERROR_OUT_OF_MEMORY;
2333 +
2334 + PRUint64* ap = args;
2335 + PRUint64 tempu64;
2336 +
2337 + for(i = 0; i < paramCount; i++) {
2338 + const nsXPTParamInfo& param = info->GetParam(i);
2339 + const nsXPTType& type = param.GetType();
2340 + nsXPTCMiniVariant* dp = &dispatchParams[i];
2341 +
2342 + if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
2343 + if (i < FPR_COUNT)
2344 + dp->val.d = fprData[i];
2345 + else
2346 + dp->val.d = *(double*) ap;
2347 + } else if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
2348 + if (i < FPR_COUNT)
2349 + dp->val.f = (float) fprData[i]; // in registers floats are passed as doubles
2350 + else {
2351 + float *p = (float *)ap;
2352 + p++;
2353 + dp->val.f = *p;
2354 + }
2355 + } else { /* integer type or pointer */
2356 + if (i < GPR_COUNT)
2357 + tempu64 = gprData[i];
2358 + else
2359 + tempu64 = *ap;
2360 +
2361 + if (param.IsOut() || !type.IsArithmetic())
2362 + dp->val.p = (void*) tempu64;
2363 + else if (type ==nsXPTType::T_I8)
2364 + dp->val.i8 = (PRInt8) tempu64;
2365 + else if (type ==nsXPTType::T_I16)
2366 + dp->val.i16 = (PRInt16) tempu64;
2367 + else if (type ==nsXPTType::T_I32)
2368 + dp->val.i32 = (PRInt32) tempu64;
2369 + else if (type ==nsXPTType::T_I64)
2370 + dp->val.i64 = (PRInt64) tempu64;
2371 + else if (type ==nsXPTType::T_U8)
2372 + dp->val.u8 = (PRUint8) tempu64;
2373 + else if (type ==nsXPTType::T_U16)
2374 + dp->val.u16 = (PRUint16) tempu64;
2375 + else if (type ==nsXPTType::T_U32)
2376 + dp->val.u32 = (PRUint32) tempu64;
2377 + else if (type ==nsXPTType::T_U64)
2378 + dp->val.u64 = (PRUint64) tempu64;
2379 + else if (type ==nsXPTType::T_BOOL)
2380 + dp->val.b = (PRBool) tempu64;
2381 + else if (type ==nsXPTType::T_CHAR)
2382 + dp->val.c = (char) tempu64;
2383 + else if (type ==nsXPTType::T_WCHAR)
2384 + dp->val.wc = (wchar_t) tempu64;
2385 + else
2386 + NS_ASSERTION(0, "bad type");
2387 + }
2388 +
2389 + if (i >= 7)
2390 + ap++;
2391 + }
2392 +
2393 + result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams);
2394 +
2395 + NS_RELEASE(iface_info);
2396 +
2397 + if (dispatchParams != paramBuffer)
2398 + delete [] dispatchParams;
2399 +
2400 + return result;
2401 +}
2402 +
2403 +// Load r11 with the constant 'n' and branch to SharedStub().
2404 +//
2405 +// XXX Yes, it's ugly that we're relying on gcc's name-mangling here;
2406 +// however, it's quick, dirty, and'll break when the ABI changes on
2407 +// us, which is what we want ;-).
2408 +
2409 +#if __GXX_ABI_VERSION < 100
2410 +#error Prehistoric GCC not supported here
2411 +#else
2412 +// gcc-3 version
2413 +//
2414 +// As G++3 ABI contains the length of the functionname in the mangled
2415 +// name, it is difficult to get a generic assembler mechanism like
2416 +// in the G++ 2.95 case.
2417 +// Create names would be like:
2418 +// _ZN14nsXPTCStubBase5Stub1Ev
2419 +// _ZN14nsXPTCStubBase6Stub12Ev
2420 +// _ZN14nsXPTCStubBase7Stub123Ev
2421 +// _ZN14nsXPTCStubBase8Stub1234Ev
2422 +// etc.
2423 +// Use assembler directives to get the names right...
2424 +
2425 +# define STUB_ENTRY(n) \
2426 +__asm__ ( \
2427 + ".section \".toc\",\"aw\" \n\t" \
2428 + ".section \".text\" \n\t" \
2429 + ".align 2 \n\t" \
2430 + ".if "#n" < 10 \n\t" \
2431 + ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
2432 + ".section \".opd\",\"aw\" \n\t" \
2433 + ".align 3 \n\t" \
2434 +"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
2435 + ".quad ._ZN14nsXPTCStubBase5Stub"#n"Ev,.TOC.@tocbase \n\t" \
2436 + ".previous \n\t" \
2437 + ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \
2438 +"._ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
2439 + \
2440 + ".elseif "#n" < 100 \n\t" \
2441 + ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
2442 + ".section \".opd\",\"aw\" \n\t" \
2443 + ".align 3 \n\t" \
2444 +"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
2445 + ".quad ._ZN14nsXPTCStubBase6Stub"#n"Ev,.TOC.@tocbase \n\t" \
2446 + ".previous \n\t" \
2447 + ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \
2448 +"._ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
2449 + \
2450 + ".elseif "#n" < 1000 \n\t" \
2451 + ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
2452 + ".section \".opd\",\"aw\" \n\t" \
2453 + ".align 3 \n\t" \
2454 +"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
2455 + ".quad ._ZN14nsXPTCStubBase7Stub"#n"Ev,.TOC.@tocbase \n\t" \
2456 + ".previous \n\t" \
2457 + ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \
2458 +"._ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
2459 + \
2460 + ".else \n\t" \
2461 + ".err \"stub number "#n" >= 1000 not yet supported\"\n" \
2462 + ".endif \n\t" \
2463 + \
2464 + "li 11,"#n" \n\t" \
2465 + "b SharedStub \n" \
2466 +);
2467 +#endif
2468 +
2469 +#define SENTINEL_ENTRY(n) \
2470 +nsresult nsXPTCStubBase::Sentinel##n() \
2471 +{ \
2472 + NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
2473 + return NS_ERROR_NOT_IMPLEMENTED; \
2474 +}
2475 +
2476 +#include "xptcstubsdef.inc"
2477
2478
2479
2480 1.1 src/patchsets/mozilla-firefox/2.0.0.19/033_firefox-2.0_ppc_powerpc.patch
2481
2482 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/033_firefox-2.0_ppc_powerpc.patch?rev=1.1&view=markup
2483 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/033_firefox-2.0_ppc_powerpc.patch?rev=1.1&content-type=text/plain
2484
2485 Index: 033_firefox-2.0_ppc_powerpc.patch
2486 ===================================================================
2487 --- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2007-03-05 13:46:38.000000000 +0100
2488 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 2007-03-05 13:47:30.000000000 +0100
2489 @@ -288,12 +288,12 @@
2490 #
2491 # Linux/PPC
2492 #
2493 -ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc)
2494 +ifeq ($(OS_ARCH)$(OS_TEST),Linuxpowerpc)
2495 CPPSRCS := xptcinvoke_ppc_linux.cpp xptcstubs_ppc_linux.cpp
2496 ASFILES := xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s
2497 AS := $(CC) -c -x assembler-with-cpp
2498 endif
2499 -ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc64)
2500 +ifeq ($(OS_ARCH)$(OS_TEST),Linuxpowerpc64)
2501 CPPSRCS := xptcinvoke_ppc64_linux.cpp xptcstubs_ppc64_linux.cpp
2502 ASFILES := xptcinvoke_asm_ppc64_linux.s xptcstubs_asm_ppc64_linux.s
2503 AS := $(CC) -c -x assembler-with-cpp
2504
2505
2506
2507 1.1 src/patchsets/mozilla-firefox/2.0.0.19/040_firefox-2.0_arm.patch
2508
2509 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/040_firefox-2.0_arm.patch?rev=1.1&view=markup
2510 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/040_firefox-2.0_arm.patch?rev=1.1&content-type=text/plain
2511
2512 Index: 040_firefox-2.0_arm.patch
2513 ===================================================================
2514 diff -ur mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
2515 --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp 2008-09-25 10:58:54.000000000 +0200
2516 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp 2008-09-25 11:05:25.000000000 +0200
2517 @@ -212,7 +212,7 @@
2518 "add sp, sp, r4 \n\t" /* restore stack pointer */
2519 "mov %0, r0 \n\t" /* the result... */
2520 : "=r" (result)
2521 - : "r" (&my_params)
2522 + : "r" (&my_params), "m" (my_params)
2523 : "r0", "r1", "r2", "r3", "r4", "ip", "lr", "sp"
2524 );
2525
2526 diff -ur mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp
2527 --- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp 2008-09-25 10:58:54.000000000 +0200
2528 +++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp 2008-09-25 11:04:51.000000000 +0200
2529 @@ -57,7 +57,8 @@
2530 #endif
2531
2532 /* Specify explicitly a symbol for this function, don't try to guess the c++ mangled symbol. */
2533 -static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch")
2534 +static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch")
2535 +__attribute__((used))
2536 DONT_DROP_OR_WARN;
2537
2538 static nsresult
2539
2540
2541
2542 1.1 src/patchsets/mozilla-firefox/2.0.0.19/050_respect-host-variable.patch
2543
2544 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/050_respect-host-variable.patch?rev=1.1&view=markup
2545 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/050_respect-host-variable.patch?rev=1.1&content-type=text/plain
2546
2547 Index: 050_respect-host-variable.patch
2548 ===================================================================
2549 # https://bugs.gentoo.org/show_bug.cgi?id=168893
2550
2551 --- mozilla/configure.in.old 2007-03-02 23:28:27.000000000 +0200
2552 +++ mozilla/configure.in 2007-03-02 23:29:23.000000000 +0200
2553 @@ -825,7 +825,6 @@
2554 OS_TARGET="${target_os}"
2555 OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
2556 OS_RELEASE=
2557 - OS_TEST="${target_cpu}"
2558 case "${target_os}" in
2559 linux*) OS_ARCH=Linux ;;
2560 solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
2561 @@ -837,8 +836,10 @@
2562 OS_TARGET=`uname -s`
2563 OS_ARCH=`uname -s | sed -e 's|/|_|g'`
2564 OS_RELEASE=`uname -r`
2565 - OS_TEST=`uname -m`
2566 fi
2567 +
2568 +OS_TEST="${target_cpu}"
2569 +
2570 _COMPILER_PREFIX=
2571
2572 HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'`
2573
2574
2575
2576 1.1 src/patchsets/mozilla-firefox/2.0.0.19/055_firefox-2.0_gfbsd-pthreads.patch
2577
2578 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/055_firefox-2.0_gfbsd-pthreads.patch?rev=1.1&view=markup
2579 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/055_firefox-2.0_gfbsd-pthreads.patch?rev=1.1&content-type=text/plain
2580
2581 Index: 055_firefox-2.0_gfbsd-pthreads.patch
2582 ===================================================================
2583 # https://bugs.gentoo.org/show_bug.cgi?id=169825
2584
2585 --- mozilla/config/rules.mk.orig Thu Sep 14 14:07:03 2006
2586 +++ mozilla/config/rules.mk Wed Oct 18 11:00:09 2006
2587 @@ -442,9 +442,7 @@
2588 endif
2589
2590 ifeq ($(OS_ARCH),FreeBSD)
2591 -ifdef IS_COMPONENT
2592 -EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
2593 -endif
2594 +EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc
2595 endif
2596
2597 ifeq ($(OS_ARCH),NetBSD)
2598 --- mozilla/configure.in.orig 2007-02-06 02:37:37 -0300
2599 +++ mozilla/configure.in 2007-03-07 15:35:41 -0300
2600 @@ -2667,7 +2667,7 @@
2601 *-hpux11.*)
2602 ;;
2603 *)
2604 - AC_CHECK_LIB(c_r, gethostbyname_r)
2605 + AC_SEARCH_LIBS([gethostbyname_r], [c_r])
2606 ;;
2607 esac
2608 AC_CHECK_LIB(m, atan)
2609 --- mozilla/configure.in.orig 2007-02-06 02:37:37 -0300
2610 +++ mozilla/configure.in 2007-03-07 13:59:53 -0300
2611 @@ -2839,11 +2839,12 @@
2612 *-*-freebsd*)
2613 AC_DEFINE(_REENTRANT)
2614 AC_DEFINE(_THREAD_SAFE)
2615 - dnl -pthread links in -lc_r, so don't specify it explicitly.
2616 - if test "$ac_cv_have_dash_pthread" = "yes"; then
2617 - _PTHREAD_LDFLAGS="-pthread"
2618 + dnl use the environment PTHREAD_LIBS
2619 + if test -n "$PTHREAD_LIBS"; then
2620 + _PTHREAD_LDFLAGS="$PTHREAD_LIBS"
2621 else
2622 - _PTHREAD_LDFLAGS="-lc_r"
2623 + _PTHREAD_LDFLAGS="-lpthread"
2624 fi
2625 + LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
2626 ;;
2627
2628
2629
2630 1.1 src/patchsets/mozilla-firefox/2.0.0.19/060_embed-typeaheadfind-1.patch
2631
2632 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/060_embed-typeaheadfind-1.patch?rev=1.1&view=markup
2633 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/060_embed-typeaheadfind-1.patch?rev=1.1&content-type=text/plain
2634
2635 Index: 060_embed-typeaheadfind-1.patch
2636 ===================================================================
2637 # Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=273524
2638
2639 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/Makefile.in mozilla/extensions/typeaheadfind/Makefile.in
2640 --- mozilla.orig/extensions/typeaheadfind/Makefile.in 2005-03-26 00:12:02.000000000 -0500
2641 +++ mozilla/extensions/typeaheadfind/Makefile.in 2005-03-26 11:39:29.000000000 -0500
2642 @@ -31,7 +31,7 @@
2643
2644 include $(DEPTH)/config/autoconf.mk
2645
2646 -MODULE = typeaheadfind
2647 +MODULE = typeaheadfindsea
2648 DIRS = public src resources
2649
2650 include $(topsrcdir)/config/rules.mk
2651 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/public/Makefile.in mozilla/extensions/typeaheadfind/public/Makefile.in
2652 --- mozilla.orig/extensions/typeaheadfind/public/Makefile.in 2005-03-26 00:12:02.000000000 -0500
2653 +++ mozilla/extensions/typeaheadfind/public/Makefile.in 2005-03-26 11:39:29.000000000 -0500
2654 @@ -31,11 +31,11 @@
2655
2656 include $(DEPTH)/config/autoconf.mk
2657
2658 -MODULE=typeaheadfind
2659 -XPIDL_MODULE=typeaheadfind
2660 +MODULE=typeaheadfindsea
2661 +XPIDL_MODULE=typeaheadfindsea
2662 GRE_MODULE = 1
2663
2664 -XPIDLSRCS= ./nsITypeAheadFind.idl \
2665 +XPIDLSRCS= ./nsITypeAheadFindSea.idl \
2666 $(NULL)
2667
2668
2669 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/public/nsITypeAheadFind.idl mozilla/extensions/typeaheadfind/public/nsITypeAheadFind.idl
2670 --- mozilla.orig/extensions/typeaheadfind/public/nsITypeAheadFind.idl 2005-03-26 00:12:02.000000000 -0500
2671 +++ mozilla/extensions/typeaheadfind/public/nsITypeAheadFind.idl 1969-12-31 19:00:00.000000000 -0500
2672 @@ -1,88 +0,0 @@
2673 -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2674 -/* ***** BEGIN LICENSE BLOCK *****
2675 - * Version: MPL 1.1/GPL 2.0/LGPL 2.1
2676 - *
2677 - * The contents of this file are subject to the Mozilla Public License Version
2678 - * 1.1 (the "License"); you may not use this file except in compliance with
2679 - * the License. You may obtain a copy of the License at
2680 - * http://www.mozilla.org/MPL/
2681 - *
2682 - * Software distributed under the License is distributed on an "AS IS" basis,
2683 - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
2684 - * for the specific language governing rights and limitations under the
2685 - * License.
2686 - *
2687 - * The Original Code is mozilla.org code.
2688 - *
2689 - * The Initial Developer of the Original Code is
2690 - * Netscape Communications Corporation.
2691 - * Portions created by the Initial Developer are Copyright (C) 1998
2692 - * the Initial Developer. All Rights Reserved.
2693 - *
2694 - * Contributor(s):
2695 - * Original Author: Aaron Leventhal (aaronl@××××××××.com)
2696 - *
2697 - * Alternatively, the contents of this file may be used under the terms of
2698 - * either the GNU General Public License Version 2 or later (the "GPL"), or
2699 - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
2700 - * in which case the provisions of the GPL or the LGPL are applicable instead
2701 - * of those above. If you wish to allow use of your version of this file only
2702 - * under the terms of either the GPL or the LGPL, and not to allow others to
2703 - * use your version of this file under the terms of the MPL, indicate your
2704 - * decision by deleting the provisions above and replace them with the notice
2705 - * and other provisions required by the GPL or the LGPL. If you do not delete
2706 - * the provisions above, a recipient may use your version of this file under
2707 - * the terms of any one of the MPL, the GPL or the LGPL.
2708 - *
2709 - * ***** END LICENSE BLOCK ***** */
2710 -
2711 -#include "nsISupports.idl"
2712 -#include "domstubs.idl"
2713 -#include "nsISupportsPrimitives.idl"
2714 -
2715 -%{ C++
2716 - #include "nsIDOMEvent.h"
2717 -
2718 - #define NS_TYPEAHEADFIND_CID \
2719 - {0x46590685, 0xbc00, 0x4aac, {0xab, 0xed, 0x2c, 0x10, 0xa5, 0xb9, 0x45, 0xa4}}
2720 -
2721 - #define NS_TYPEAHEADFIND_CONTRACTID "@mozilla.org/typeaheadfind;1"
2722 -%}
2723 -
2724 -interface nsIDOMEvent;
2725 -
2726 -[scriptable, uuid(AD1C62CC-72F4-4c5b-BE78-503854F9E0D8)]
2727 -interface nsITypeAheadFind : nsISupports
2728 -{
2729 - /** Is type ahead find mode currently on? */
2730 - readonly attribute boolean isActive;
2731 -
2732 - /** Manually start type ahead find mode */
2733 - void startNewFind(in nsIDOMWindow aWindow, in boolean aLinksOnly);
2734 -
2735 - /** Manually cancel type ahead find mode */
2736 - void cancelFind();
2737 -
2738 - /**
2739 - * Will find as you type start automatically if the user
2740 - * types with the focus on page content other than a textfield or select?
2741 - * If autostart is off, the startNewFind() method can be used to enact
2742 - * type ahead find, as well as cmd_findTypeLinks or cmd_findTypeText.
2743 - */
2744 - void setAutoStart(in nsIDOMWindow aWindow, in boolean aIsAutoStartOn);
2745 - boolean getAutoStart(in nsIDOMWindow aWindow);
2746 -
2747 - /**
2748 - * Find next recurrence if typeaheadfind was the last used find,
2749 - * as opposed to regular find. Returns false in nsISupportsPRBool if we
2750 - * don't handle the request.
2751 - */
2752 - void findNext(in boolean aReverse, in nsISupportsInterfacePointer aCallerWindowSupports);
2753 -
2754 - /*
2755 - * Go back and remove one character from find string
2756 - * Returns true if backspace used
2757 - */
2758 - boolean backOneChar();
2759 -};
2760 -
2761 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/public/nsITypeAheadFindSea.idl mozilla/extensions/typeaheadfind/public/nsITypeAheadFindSea.idl
2762 --- mozilla.orig/extensions/typeaheadfind/public/nsITypeAheadFindSea.idl 1969-12-31 19:00:00.000000000 -0500
2763 +++ mozilla/extensions/typeaheadfind/public/nsITypeAheadFindSea.idl 2005-03-26 11:39:29.000000000 -0500
2764 @@ -0,0 +1,88 @@
2765 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2766 +/* ***** BEGIN LICENSE BLOCK *****
2767 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
2768 + *
2769 + * The contents of this file are subject to the Mozilla Public License Version
2770 + * 1.1 (the "License"); you may not use this file except in compliance with
2771 + * the License. You may obtain a copy of the License at
2772 + * http://www.mozilla.org/MPL/
2773 + *
2774 + * Software distributed under the License is distributed on an "AS IS" basis,
2775 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
2776 + * for the specific language governing rights and limitations under the
2777 + * License.
2778 + *
2779 + * The Original Code is mozilla.org code.
2780 + *
2781 + * The Initial Developer of the Original Code is
2782 + * Netscape Communications Corporation.
2783 + * Portions created by the Initial Developer are Copyright (C) 1998
2784 + * the Initial Developer. All Rights Reserved.
2785 + *
2786 + * Contributor(s):
2787 + * Original Author: Aaron Leventhal (aaronl@××××××××.com)
2788 + *
2789 + * Alternatively, the contents of this file may be used under the terms of
2790 + * either the GNU General Public License Version 2 or later (the "GPL"), or
2791 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
2792 + * in which case the provisions of the GPL or the LGPL are applicable instead
2793 + * of those above. If you wish to allow use of your version of this file only
2794 + * under the terms of either the GPL or the LGPL, and not to allow others to
2795 + * use your version of this file under the terms of the MPL, indicate your
2796 + * decision by deleting the provisions above and replace them with the notice
2797 + * and other provisions required by the GPL or the LGPL. If you do not delete
2798 + * the provisions above, a recipient may use your version of this file under
2799 + * the terms of any one of the MPL, the GPL or the LGPL.
2800 + *
2801 + * ***** END LICENSE BLOCK ***** */
2802 +
2803 +#include "nsISupports.idl"
2804 +#include "domstubs.idl"
2805 +#include "nsISupportsPrimitives.idl"
2806 +
2807 +%{ C++
2808 + #include "nsIDOMEvent.h"
2809 +
2810 + #define NS_TYPEAHEADFINDSEA_CID \
2811 + {0x46590685, 0xbc00, 0x4aac, {0xab, 0xed, 0x2c, 0x10, 0xa5, 0xb9, 0x45, 0xa4}}
2812 +
2813 + #define NS_TYPEAHEADFINDSEA_CONTRACTID "@mozilla.org/typeaheadfindsea;1"
2814 +%}
2815 +
2816 +interface nsIDOMEvent;
2817 +
2818 +[scriptable, uuid(AD1C62CC-72F4-4c5b-BE78-503854F9E0D8)]
2819 +interface nsITypeAheadFindSea : nsISupports
2820 +{
2821 + /** Is type ahead find mode currently on? */
2822 + readonly attribute boolean isActive;
2823 +
2824 + /** Manually start type ahead find mode */
2825 + void startNewFind(in nsIDOMWindow aWindow, in boolean aLinksOnly);
2826 +
2827 + /** Manually cancel type ahead find mode */
2828 + void cancelFind();
2829 +
2830 + /**
2831 + * Will find as you type start automatically if the user
2832 + * types with the focus on page content other than a textfield or select?
2833 + * If autostart is off, the startNewFind() method can be used to enact
2834 + * type ahead find, as well as cmd_findTypeLinks or cmd_findTypeText.
2835 + */
2836 + void setAutoStart(in nsIDOMWindow aWindow, in boolean aIsAutoStartOn);
2837 + boolean getAutoStart(in nsIDOMWindow aWindow);
2838 +
2839 + /**
2840 + * Find next recurrence if typeaheadfindsea was the last used find,
2841 + * as opposed to regular find. Returns false in nsISupportsPRBool if we
2842 + * don't handle the request.
2843 + */
2844 + void findNext(in boolean aReverse, in nsISupportsInterfacePointer aCallerWindowSupports);
2845 +
2846 + /*
2847 + * Go back and remove one character from find string
2848 + * Returns true if backspace used
2849 + */
2850 + boolean backOneChar();
2851 +};
2852 +
2853 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js mozilla/extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js
2854 --- mozilla.orig/extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js 2005-03-26 00:12:02.000000000 -0500
2855 +++ mozilla/extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js 2005-03-26 11:39:29.000000000 -0500
2856 @@ -36,7 +36,7 @@
2857 *
2858 * ***** END LICENSE BLOCK ***** */
2859
2860 -pref("accessibility.typeaheadfind", true);
2861 -pref("accessibility.typeaheadfind.linksonly", true);
2862 -pref("accessibility.typeaheadfind.startlinksonly", false);
2863 -pref("accessibility.typeaheadfind.timeout", 5000);
2864 +pref("accessibility.typeaheadfindsea", true);
2865 +pref("accessibility.typeaheadfindsea.linksonly", true);
2866 +pref("accessibility.typeaheadfindsea.startlinksonly", false);
2867 +pref("accessibility.typeaheadfindsea.timeout", 5000);
2868 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/resources/jar.mn mozilla/extensions/typeaheadfind/resources/jar.mn
2869 --- mozilla.orig/extensions/typeaheadfind/resources/jar.mn 2005-03-26 00:12:02.000000000 -0500
2870 +++ mozilla/extensions/typeaheadfind/resources/jar.mn 2005-03-26 11:39:29.000000000 -0500
2871 @@ -1,5 +1,5 @@
2872 en-US.jar:
2873 - locale/en-US/global/typeaheadfind.properties (locale/en-US/typeaheadfind.properties)
2874 + locale/en-US/global/typeaheadfindsea.properties (locale/en-US/typeaheadfindsea.properties)
2875
2876 toolkit.jar:
2877 content/global/notfound.wav (content/notfound.wav)
2878 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/resources/locale/en-US/typeaheadfind.properties mozilla/extensions/typeaheadfind/resources/locale/en-US/typeaheadfind.properties
2879 --- mozilla.orig/extensions/typeaheadfind/resources/locale/en-US/typeaheadfind.properties 2005-03-26 00:12:02.000000000 -0500
2880 +++ mozilla/extensions/typeaheadfind/resources/locale/en-US/typeaheadfind.properties 1969-12-31 19:00:00.000000000 -0500
2881 @@ -1,13 +0,0 @@
2882 -openparen = (
2883 -closeparen = )
2884 -textfound = Text found: "
2885 -textnotfound = Text not found: "
2886 -linkfound = Link found: "
2887 -linknotfound = Link not found: "
2888 -closequote = "
2889 -stopfind = Find stopped.
2890 -starttextfind = Starting -- find text as you type
2891 -startlinkfind = Starting -- find links as you type
2892 -repeated = repeated
2893 -nextmatch = - next match
2894 -prevmatch = - previous match
2895 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties mozilla/extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties
2896 --- mozilla.orig/extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties 1969-12-31 19:00:00.000000000 -0500
2897 +++ mozilla/extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties 2005-03-26 11:39:29.000000000 -0500
2898 @@ -0,0 +1,13 @@
2899 +openparen = (
2900 +closeparen = )
2901 +textfound = Text found: "
2902 +textnotfound = Text not found: "
2903 +linkfound = Link found: "
2904 +linknotfound = Link not found: "
2905 +closequote = "
2906 +stopfind = Find stopped.
2907 +starttextfind = Starting -- find text as you type
2908 +startlinkfind = Starting -- find links as you type
2909 +repeated = repeated
2910 +nextmatch = - next match
2911 +prevmatch = - previous match
2912 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/Makefile.in mozilla/extensions/typeaheadfind/src/Makefile.in
2913 --- mozilla.orig/extensions/typeaheadfind/src/Makefile.in 2005-03-26 00:12:02.000000000 -0500
2914 +++ mozilla/extensions/typeaheadfind/src/Makefile.in 2005-03-26 11:39:29.000000000 -0500
2915 @@ -31,15 +31,15 @@
2916
2917 include $(DEPTH)/config/autoconf.mk
2918
2919 -MODULE = typeaheadfind
2920 -LIBRARY_NAME = typeaheadfind
2921 +MODULE = typeaheadfindsea
2922 +LIBRARY_NAME = typeaheadfindsea
2923 ifneq ($(OS_ARCH),WINNT)
2924 -SHORT_LIBNAME = typahead
2925 +SHORT_LIBNAME = typaheadsea
2926 endif
2927 GRE_MODULE = 1
2928 MOZILLA_INTERNAL_API = 1
2929
2930 -PACKAGE_FILE = typeaheadfind.pkg
2931 +PACKAGE_FILE = typeaheadfindsea.pkg
2932
2933 REQUIRES = appcomps \
2934 embedcomponents \
2935 @@ -66,7 +66,7 @@
2936
2937 EXPORT_LIBRARY = 1
2938 IS_COMPONENT = 1
2939 -MODULE_NAME = nsTypeAheadFind
2940 +MODULE_NAME = nsTypeAheadFindSea
2941
2942 CPPSRCS = \
2943 nsTypeAheadFind.cpp \
2944 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFind.cpp mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.cpp
2945 --- mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFind.cpp 2005-03-26 00:12:02.000000000 -0500
2946 +++ mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.cpp 2005-03-26 11:39:29.000000000 -0500
2947 @@ -114,8 +114,8 @@
2948 ////////////////////////////////////////////////////////////////////////
2949
2950
2951 -NS_INTERFACE_MAP_BEGIN(nsTypeAheadFind)
2952 - NS_INTERFACE_MAP_ENTRY(nsITypeAheadFind)
2953 +NS_INTERFACE_MAP_BEGIN(nsTypeAheadFindSea)
2954 + NS_INTERFACE_MAP_ENTRY(nsITypeAheadFindSea)
2955 NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
2956 NS_INTERFACE_MAP_ENTRY(nsITimerCallback)
2957 NS_INTERFACE_MAP_ENTRY(nsIScrollPositionListener)
2958 @@ -128,8 +128,8 @@
2959 NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIDOMEventListener, nsIDOMKeyListener)
2960 NS_INTERFACE_MAP_END
2961
2962 -NS_IMPL_ADDREF(nsTypeAheadFind)
2963 -NS_IMPL_RELEASE(nsTypeAheadFind)
2964 +NS_IMPL_ADDREF(nsTypeAheadFindSea)
2965 +NS_IMPL_RELEASE(nsTypeAheadFindSea)
2966
2967 static NS_DEFINE_IID(kRangeCID, NS_RANGE_CID);
2968 static NS_DEFINE_CID(kStringBundleServiceCID, NS_STRINGBUNDLESERVICE_CID);
2969 @@ -138,11 +138,11 @@
2970
2971 #define NS_FIND_CONTRACTID "@mozilla.org/embedcomp/rangefind;1"
2972
2973 -nsTypeAheadFind* nsTypeAheadFind::sInstance = nsnull;
2974 -PRInt32 nsTypeAheadFind::sAccelKey = -1; // magic value of -1 when unitialized
2975 +nsTypeAheadFindSea* nsTypeAheadFindSea::sInstance = nsnull;
2976 +PRInt32 nsTypeAheadFindSea::sAccelKey = -1; // magic value of -1 when unitialized
2977
2978
2979 -nsTypeAheadFind::nsTypeAheadFind():
2980 +nsTypeAheadFindSea::nsTypeAheadFindSea():
2981 mIsFindAllowedInWindow(PR_FALSE), mAutoStartPref(PR_FALSE),
2982 mLinksOnlyPref(PR_FALSE), mStartLinksOnlyPref(PR_FALSE),
2983 mLinksOnly(PR_FALSE), mIsTypeAheadOn(PR_FALSE), mCaretBrowsingOn(PR_FALSE),
2984 @@ -161,25 +161,25 @@
2985 static PRInt32 gInstanceCount;
2986 ++gInstanceCount;
2987 NS_ASSERTION(gInstanceCount == 1,
2988 - "There should be only 1 instance of nsTypeAheadFind!");
2989 + "There should be only 1 instance of nsTypeAheadFindSea!");
2990 #endif
2991 }
2992
2993
2994 -nsTypeAheadFind::~nsTypeAheadFind()
2995 +nsTypeAheadFindSea::~nsTypeAheadFindSea()
2996 {
2997 RemoveDocListeners();
2998 mTimer = nsnull;
2999
3000 nsCOMPtr<nsIPrefBranch2> prefInternal(do_GetService(NS_PREFSERVICE_CONTRACTID));
3001 if (prefInternal) {
3002 - prefInternal->RemoveObserver("accessibility.typeaheadfind", this);
3003 + prefInternal->RemoveObserver("accessibility.typeaheadfindsea", this);
3004 prefInternal->RemoveObserver("accessibility.browsewithcaret", this);
3005 }
3006 }
3007
3008 nsresult
3009 -nsTypeAheadFind::Init()
3010 +nsTypeAheadFindSea::Init()
3011 {
3012 nsresult rv = NS_NewISupportsArray(getter_AddRefs(mManualFindWindows));
3013 NS_ENSURE_SUCCESS(rv, rv);
3014 @@ -196,7 +196,7 @@
3015 }
3016
3017 // ----------- Listen to prefs ------------------
3018 - rv = prefInternal->AddObserver("accessibility.typeaheadfind", this, PR_FALSE);
3019 + rv = prefInternal->AddObserver("accessibility.typeaheadfindsea", this, PR_FALSE);
3020 NS_ENSURE_SUCCESS(rv, rv);
3021
3022 rv = prefInternal->AddObserver("accessibility.browsewithcaret", this, PR_FALSE);
3023 @@ -217,11 +217,11 @@
3024 return rv;
3025 }
3026
3027 -nsTypeAheadFind *
3028 -nsTypeAheadFind::GetInstance()
3029 +nsTypeAheadFindSea *
3030 +nsTypeAheadFindSea::GetInstance()
3031 {
3032 if (!sInstance) {
3033 - sInstance = new nsTypeAheadFind();
3034 + sInstance = new nsTypeAheadFindSea();
3035 if (!sInstance)
3036 return nsnull;
3037
3038 @@ -241,14 +241,14 @@
3039
3040
3041 void
3042 -nsTypeAheadFind::ReleaseInstance()
3043 +nsTypeAheadFindSea::ReleaseInstance()
3044 {
3045 NS_IF_RELEASE(sInstance);
3046 }
3047
3048
3049 void
3050 -nsTypeAheadFind::Shutdown()
3051 +nsTypeAheadFindSea::Shutdown()
3052 {
3053 // Application shutdown
3054 mTimer = nsnull;
3055 @@ -264,14 +264,14 @@
3056 // ------- Pref Callbacks (2) ---------------
3057
3058 nsresult
3059 -nsTypeAheadFind::PrefsReset()
3060 +nsTypeAheadFindSea::PrefsReset()
3061 {
3062 nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID));
3063 NS_ENSURE_TRUE(prefBranch, NS_ERROR_FAILURE);
3064
3065 PRBool wasTypeAheadOn = mIsTypeAheadOn;
3066
3067 - prefBranch->GetBoolPref("accessibility.typeaheadfind", &mIsTypeAheadOn);
3068 + prefBranch->GetBoolPref("accessibility.typeaheadfindsea", &mIsTypeAheadOn);
3069
3070 if (mIsTypeAheadOn != wasTypeAheadOn) {
3071 if (!mIsTypeAheadOn) {
3072 @@ -291,7 +291,7 @@
3073 do_GetService(kStringBundleServiceCID);
3074
3075 if (stringBundleService)
3076 - stringBundleService->CreateBundle(TYPEAHEADFIND_BUNDLE_URL,
3077 + stringBundleService->CreateBundle(TYPEAHEADFINDSEA_BUNDLE_URL,
3078 getter_AddRefs(mStringBundle));
3079
3080 // Observe find again commands. We'll handle them if we were the last find
3081 @@ -306,34 +306,34 @@
3082 }
3083
3084 PRBool oldAutoStartPref = mAutoStartPref;
3085 - prefBranch->GetBoolPref("accessibility.typeaheadfind.autostart",
3086 + prefBranch->GetBoolPref("accessibility.typeaheadfindsea.autostart",
3087 &mAutoStartPref);
3088 if (mAutoStartPref != oldAutoStartPref) {
3089 ResetGlobalAutoStart(mAutoStartPref);
3090 }
3091
3092 - prefBranch->GetBoolPref("accessibility.typeaheadfind.linksonly",
3093 + prefBranch->GetBoolPref("accessibility.typeaheadfindsea.linksonly",
3094 &mLinksOnlyPref);
3095
3096 - prefBranch->GetBoolPref("accessibility.typeaheadfind.startlinksonly",
3097 + prefBranch->GetBoolPref("accessibility.typeaheadfindsea.startlinksonly",
3098 &mStartLinksOnlyPref);
3099
3100 PRBool isSoundEnabled = PR_TRUE;
3101 - prefBranch->GetBoolPref("accessibility.typeaheadfind.enablesound",
3102 + prefBranch->GetBoolPref("accessibility.typeaheadfindsea.enablesound",
3103 &isSoundEnabled);
3104 nsXPIDLCString soundStr;
3105 if (isSoundEnabled) {
3106 - prefBranch->GetCharPref("accessibility.typeaheadfind.soundURL",
3107 + prefBranch->GetCharPref("accessibility.typeaheadfindsea.soundURL",
3108 getter_Copies(soundStr));
3109 }
3110 mNotFoundSoundURL = soundStr;
3111
3112 PRBool isTimeoutEnabled = PR_FALSE;
3113 - prefBranch->GetBoolPref("accessibility.typeaheadfind.enabletimeout",
3114 + prefBranch->GetBoolPref("accessibility.typeaheadfindsea.enabletimeout",
3115 &isTimeoutEnabled);
3116 PRInt32 timeoutLength = 0;
3117 if (isTimeoutEnabled) {
3118 - prefBranch->GetIntPref("accessibility.typeaheadfind.timeout",
3119 + prefBranch->GetIntPref("accessibility.typeaheadfindsea.timeout",
3120 &timeoutLength);
3121 }
3122 mTimeoutLength = timeoutLength;
3123 @@ -349,7 +349,7 @@
3124 // ------- nsITimer Methods (1) ---------------
3125
3126 NS_IMETHODIMP
3127 -nsTypeAheadFind::Notify(nsITimer *timer)
3128 +nsTypeAheadFindSea::Notify(nsITimer *timer)
3129 {
3130 CancelFind();
3131 return NS_OK;
3132 @@ -358,7 +358,7 @@
3133 // ----------- nsIObserver Methods (1) -------------------
3134
3135 NS_IMETHODIMP
3136 -nsTypeAheadFind::Observe(nsISupports *aSubject, const char *aTopic,
3137 +nsTypeAheadFindSea::Observe(nsISupports *aSubject, const char *aTopic,
3138 const PRUnichar *aData)
3139 {
3140 PRBool isOpening;
3141 @@ -476,7 +476,7 @@
3142
3143
3144 nsresult
3145 -nsTypeAheadFind::UseInWindow(nsIDOMWindow *aDOMWin)
3146 +nsTypeAheadFindSea::UseInWindow(nsIDOMWindow *aDOMWin)
3147 {
3148 NS_ENSURE_ARG_POINTER(aDOMWin);
3149
3150 @@ -529,7 +529,7 @@
3151 // ------- nsIDOMEventListener Methods (1) ---------------
3152
3153 NS_IMETHODIMP
3154 -nsTypeAheadFind::HandleEvent(nsIDOMEvent* aEvent)
3155 +nsTypeAheadFindSea::HandleEvent(nsIDOMEvent* aEvent)
3156 {
3157 nsAutoString eventType;
3158 aEvent->GetType(eventType);
3159 @@ -589,21 +589,21 @@
3160 // ------- nsIDOMKeyListener Methods (3) ---------------
3161
3162 NS_IMETHODIMP
3163 -nsTypeAheadFind::KeyDown(nsIDOMEvent* aEvent)
3164 +nsTypeAheadFindSea::KeyDown(nsIDOMEvent* aEvent)
3165 {
3166 return NS_OK;
3167 }
3168
3169
3170 NS_IMETHODIMP
3171 -nsTypeAheadFind::KeyUp(nsIDOMEvent* aEvent)
3172 +nsTypeAheadFindSea::KeyUp(nsIDOMEvent* aEvent)
3173 {
3174 return NS_OK;
3175 }
3176
3177
3178 NS_IMETHODIMP
3179 -nsTypeAheadFind::KeyPress(nsIDOMEvent* aEvent)
3180 +nsTypeAheadFindSea::KeyPress(nsIDOMEvent* aEvent)
3181 {
3182 if (!mIsTypeAheadOn || mIsMenuBarActive || mIsMenuPopupActive) {
3183 return NS_OK;
3184 @@ -733,7 +733,7 @@
3185
3186
3187 NS_IMETHODIMP
3188 -nsTypeAheadFind::BackOneChar(PRBool *aIsBackspaceUsed)
3189 +nsTypeAheadFindSea::BackOneChar(PRBool *aIsBackspaceUsed)
3190 {
3191 if (!mFocusedDocSelection) {
3192 *aIsBackspaceUsed = PR_FALSE;
3193 @@ -863,7 +863,7 @@
3194
3195
3196 nsresult
3197 -nsTypeAheadFind::HandleChar(PRUnichar aChar)
3198 +nsTypeAheadFindSea::HandleChar(PRUnichar aChar)
3199 {
3200 // Add a printable char to mTypeAheadBuffer, then search for buffer contents
3201
3202 @@ -1039,7 +1039,7 @@
3203
3204
3205 void
3206 -nsTypeAheadFind::SaveFind()
3207 +nsTypeAheadFindSea::SaveFind()
3208 {
3209 // Store find string for find-next
3210 mFindNextBuffer = mTypeAheadBuffer;
3211 @@ -1060,14 +1060,14 @@
3212 mFindService->SetSearchString(mFindNextBuffer);
3213 }
3214
3215 - // --- If accessibility.typeaheadfind.timeout is set,
3216 + // --- If accessibility.typeaheadfindsea.timeout is set,
3217 // cancel find after specified # milliseconds ---
3218 StartTimeout();
3219 }
3220
3221
3222 void
3223 -nsTypeAheadFind::PlayNotFoundSound()
3224 +nsTypeAheadFindSea::PlayNotFoundSound()
3225 {
3226 if (mNotFoundSoundURL.IsEmpty()) // no sound
3227 return;
3228 @@ -1097,7 +1097,7 @@
3229
3230
3231 NS_IMETHODIMP
3232 -nsTypeAheadFind::HandleText(nsIDOMEvent* aTextEvent)
3233 +nsTypeAheadFindSea::HandleText(nsIDOMEvent* aTextEvent)
3234 {
3235 // This is called multiple times in the middle of an
3236 // IME composition
3237 @@ -1145,7 +1145,7 @@
3238
3239
3240 NS_IMETHODIMP
3241 -nsTypeAheadFind::HandleStartComposition(nsIDOMEvent* aCompositionEvent)
3242 +nsTypeAheadFindSea::HandleStartComposition(nsIDOMEvent* aCompositionEvent)
3243 {
3244 // This is called once at the start of an IME composition
3245
3246 @@ -1167,7 +1167,7 @@
3247
3248
3249 NS_IMETHODIMP
3250 -nsTypeAheadFind::HandleEndComposition(nsIDOMEvent* aCompositionEvent)
3251 +nsTypeAheadFindSea::HandleEndComposition(nsIDOMEvent* aCompositionEvent)
3252 {
3253 // This is called once at the end of an IME composition
3254
3255 @@ -1198,28 +1198,28 @@
3256
3257
3258 NS_IMETHODIMP
3259 -nsTypeAheadFind::HandleQueryComposition(nsIDOMEvent* aCompositionEvent)
3260 +nsTypeAheadFindSea::HandleQueryComposition(nsIDOMEvent* aCompositionEvent)
3261 {
3262 return NS_OK;
3263 }
3264
3265
3266 NS_IMETHODIMP
3267 -nsTypeAheadFind::HandleQueryReconversion(nsIDOMEvent* aCompositionEvent)
3268 +nsTypeAheadFindSea::HandleQueryReconversion(nsIDOMEvent* aCompositionEvent)
3269 {
3270 return NS_OK;
3271 }
3272
3273
3274 NS_IMETHODIMP
3275 -nsTypeAheadFind::HandleQueryCaretRect(nsIDOMEvent* aCompositionEvent)
3276 +nsTypeAheadFindSea::HandleQueryCaretRect(nsIDOMEvent* aCompositionEvent)
3277 {
3278 return NS_OK;
3279 }
3280
3281
3282 nsresult
3283 -nsTypeAheadFind::FindItNow(nsIPresShell *aPresShell,
3284 +nsTypeAheadFindSea::FindItNow(nsIPresShell *aPresShell,
3285 PRBool aIsRepeatingSameChar, PRBool aIsLinksOnly,
3286 PRBool aIsFirstVisiblePreferred)
3287 {
3288 @@ -1241,7 +1241,7 @@
3289
3290 nsCOMPtr<nsISupports> startingContainer = presContext->GetContainer();
3291 nsCOMPtr<nsIDocShellTreeItem> treeItem(do_QueryInterface(startingContainer));
3292 - NS_ASSERTION(treeItem, "Bug 175321 Crashes with Type Ahead Find [@ nsTypeAheadFind::FindItNow]");
3293 + NS_ASSERTION(treeItem, "Bug 175321 Crashes with Type Ahead Find [@ nsTypeAheadFindSea::FindItNow]");
3294 if (!treeItem) {
3295 return NS_ERROR_FAILURE;
3296 }
3297 @@ -1465,7 +1465,7 @@
3298
3299
3300 nsresult
3301 -nsTypeAheadFind::GetSearchContainers(nsISupports *aContainer,
3302 +nsTypeAheadFindSea::GetSearchContainers(nsISupports *aContainer,
3303 PRBool aIsRepeatingSameChar,
3304 PRBool aIsFirstVisiblePreferred,
3305 PRBool aCanUseDocSelection,
3306 @@ -1573,7 +1573,7 @@
3307
3308
3309 void
3310 -nsTypeAheadFind::RangeStartsInsideLink(nsIDOMRange *aRange,
3311 +nsTypeAheadFindSea::RangeStartsInsideLink(nsIDOMRange *aRange,
3312 nsIPresShell *aPresShell,
3313 PRBool *aIsInsideLink,
3314 PRBool *aIsStartingLink)
3315 @@ -1680,7 +1680,7 @@
3316
3317
3318 NS_IMETHODIMP
3319 -nsTypeAheadFind::ScrollPositionWillChange(nsIScrollableView *aView,
3320 +nsTypeAheadFindSea::ScrollPositionWillChange(nsIScrollableView *aView,
3321 nscoord aX, nscoord aY)
3322 {
3323 return NS_OK;
3324 @@ -1688,7 +1688,7 @@
3325
3326
3327 NS_IMETHODIMP
3328 -nsTypeAheadFind::ScrollPositionDidChange(nsIScrollableView *aScrollableView,
3329 +nsTypeAheadFindSea::ScrollPositionDidChange(nsIScrollableView *aScrollableView,
3330 nscoord aX, nscoord aY)
3331 {
3332 if (!mIsFindingText)
3333 @@ -1699,7 +1699,7 @@
3334
3335
3336 NS_IMETHODIMP
3337 -nsTypeAheadFind::NotifySelectionChanged(nsIDOMDocument *aDoc,
3338 +nsTypeAheadFindSea::NotifySelectionChanged(nsIDOMDocument *aDoc,
3339 nsISelection *aSel, PRInt16 aReason)
3340 {
3341 if (!mIsFindingText) {
3342 @@ -1716,10 +1716,10 @@
3343 }
3344
3345
3346 -// ---------------- nsITypeAheadFind --------------------
3347 +// ---------------- nsITypeAheadFindSea --------------------
3348
3349 NS_IMETHODIMP
3350 -nsTypeAheadFind::FindNext(PRBool aFindBackwards, nsISupportsInterfacePointer *aCallerWindowSupports)
3351 +nsTypeAheadFindSea::FindNext(PRBool aFindBackwards, nsISupportsInterfacePointer *aCallerWindowSupports)
3352 {
3353 NS_ENSURE_TRUE(aCallerWindowSupports, NS_ERROR_FAILURE);
3354
3355 @@ -1731,7 +1731,7 @@
3356 return NS_OK;
3357 }
3358
3359 - // Compare the top level content pres shell of typeaheadfind
3360 + // Compare the top level content pres shell of typeaheadfindsea
3361 // with the top level content pres shell window where find next is happening
3362 // If they're different, exit so that webbrowswerfind can handle FindNext()
3363
3364 @@ -1764,7 +1764,7 @@
3365 NS_ENSURE_TRUE(callerPresShell, NS_OK);
3366
3367 if (callerPresShell != typeAheadPresShell) {
3368 - // This means typeaheadfind is active in a different window or doc
3369 + // This means typeaheadfindsea is active in a different window or doc
3370 // So it's not appropriate to find next for the current window
3371 mFindNextBuffer.Truncate();
3372 return NS_OK;
3373 @@ -1782,7 +1782,7 @@
3374 webBrowserFind->GetSearchString(getter_Copies(webBrowserFindString));
3375 if (!webBrowserFindString.Equals(mFindNextBuffer)) {
3376 // If they're not equal, then the find dialog was used last,
3377 - // not typeaheadfind. Typeaheadfind applies to the last find,
3378 + // not typeaheadfindsea. Typeaheadfind applies to the last find,
3379 // so we should let nsIWebBrowserFind::FindNext() do it.
3380 mFindNextBuffer.Truncate();
3381 return NS_OK;
3382 @@ -1832,7 +1832,7 @@
3383
3384
3385 NS_IMETHODIMP
3386 -nsTypeAheadFind::GetIsActive(PRBool *aIsActive)
3387 +nsTypeAheadFindSea::GetIsActive(PRBool *aIsActive)
3388 {
3389 *aIsActive = mLinksOnlyManuallySet || !mTypeAheadBuffer.IsEmpty();
3390
3391 @@ -1845,7 +1845,7 @@
3392 */
3393
3394 NS_IMETHODIMP
3395 -nsTypeAheadFind::StartNewFind(nsIDOMWindow *aWindow, PRBool aLinksOnly)
3396 +nsTypeAheadFindSea::StartNewFind(nsIDOMWindow *aWindow, PRBool aLinksOnly)
3397 {
3398 if (!mFind || !mIsTypeAheadOn || !aWindow)
3399 return NS_ERROR_FAILURE; // Type Ahead Find not correctly initialized
3400 @@ -1878,7 +1878,7 @@
3401 }
3402
3403 void
3404 -nsTypeAheadFind::ResetGlobalAutoStart(PRBool aAutoStart)
3405 +nsTypeAheadFindSea::ResetGlobalAutoStart(PRBool aAutoStart)
3406 {
3407 // Enumerate through the current top level windows
3408 // and either attach or remove window listeners
3409 @@ -1916,7 +1916,7 @@
3410
3411
3412 NS_IMETHODIMP
3413 -nsTypeAheadFind::SetAutoStart(nsIDOMWindow *aDOMWin, PRBool aAutoStartOn)
3414 +nsTypeAheadFindSea::SetAutoStart(nsIDOMWindow *aDOMWin, PRBool aAutoStartOn)
3415 {
3416 if (!aDOMWin) {
3417 return NS_ERROR_FAILURE;
3418 @@ -1946,7 +1946,7 @@
3419
3420
3421 NS_IMETHODIMP
3422 -nsTypeAheadFind::GetAutoStart(nsIDOMWindow *aDOMWin, PRBool *aIsAutoStartOn)
3423 +nsTypeAheadFindSea::GetAutoStart(nsIDOMWindow *aDOMWin, PRBool *aIsAutoStartOn)
3424 {
3425 *aIsAutoStartOn = PR_FALSE;
3426
3427 @@ -2014,7 +2014,7 @@
3428
3429
3430 NS_IMETHODIMP
3431 -nsTypeAheadFind::CancelFind()
3432 +nsTypeAheadFindSea::CancelFind()
3433 {
3434 // Stop current find if:
3435 // 1. Escape pressed
3436 @@ -2070,7 +2070,7 @@
3437 // ------- Helper Methods ---------------
3438
3439 void
3440 -nsTypeAheadFind::GetTopContentPresShell(nsIDocShellTreeItem *aDocShellTreeItem,
3441 +nsTypeAheadFindSea::GetTopContentPresShell(nsIDocShellTreeItem *aDocShellTreeItem,
3442 nsIPresShell **aPresShell)
3443 {
3444 *aPresShell = nsnull;
3445 @@ -2086,7 +2086,7 @@
3446 }
3447
3448 void
3449 -nsTypeAheadFind::GetStartWindow(nsIDOMWindow *aWindow, nsIDOMWindow **aStartWindow)
3450 +nsTypeAheadFindSea::GetStartWindow(nsIDOMWindow *aWindow, nsIDOMWindow **aStartWindow)
3451 {
3452 // Return the root ancestor content window of aWindow
3453
3454 @@ -2118,7 +2118,7 @@
3455 }
3456
3457 nsresult
3458 -nsTypeAheadFind::GetWebBrowserFind(nsIDOMWindow *aWin,
3459 +nsTypeAheadFindSea::GetWebBrowserFind(nsIDOMWindow *aWin,
3460 nsIWebBrowserFind **aWebBrowserFind)
3461 {
3462 NS_ENSURE_ARG_POINTER(aWin);
3463 @@ -2143,7 +2143,7 @@
3464
3465
3466 void
3467 -nsTypeAheadFind::StartTimeout()
3468 +nsTypeAheadFindSea::StartTimeout()
3469 {
3470 if (mTimeoutLength) {
3471 if (!mTimer) {
3472 @@ -2159,7 +2159,7 @@
3473 }
3474
3475 void
3476 -nsTypeAheadFind::SetSelectionLook(nsIPresShell *aPresShell,
3477 +nsTypeAheadFindSea::SetSelectionLook(nsIPresShell *aPresShell,
3478 PRBool aChangeColor,
3479 PRBool aEnabled)
3480 {
3481 @@ -2167,8 +2167,8 @@
3482 return;
3483
3484 // Show caret when type ahead find is on
3485 - // Also paint selection bright (typeaheadfind on) or normal
3486 - // (typeaheadfind off)
3487 + // Also paint selection bright (typeaheadfindsea on) or normal
3488 + // (typeaheadfindsea off)
3489
3490 if (aChangeColor) {
3491 mFocusedDocSelCon->SetDisplaySelection(nsISelectionController::SELECTION_ATTENTION);
3492 @@ -2211,7 +2211,7 @@
3493
3494
3495 void
3496 -nsTypeAheadFind::RemoveDocListeners()
3497 +nsTypeAheadFindSea::RemoveDocListeners()
3498 {
3499 nsCOMPtr<nsIPresShell> presShell(GetPresShell());
3500 nsIViewManager* vm = nsnull;
3501 @@ -2245,7 +2245,7 @@
3502
3503
3504 void
3505 -nsTypeAheadFind::AttachDocListeners(nsIPresShell *aPresShell)
3506 +nsTypeAheadFindSea::AttachDocListeners(nsIPresShell *aPresShell)
3507 {
3508 if (!aPresShell) {
3509 return;
3510 @@ -2275,7 +2275,7 @@
3511
3512
3513 void
3514 -nsTypeAheadFind::RemoveWindowListeners(nsIDOMWindow *aDOMWin)
3515 +nsTypeAheadFindSea::RemoveWindowListeners(nsIDOMWindow *aDOMWin)
3516 {
3517 nsCOMPtr<nsIDOMEventTarget> chromeEventHandler;
3518 GetChromeEventHandler(aDOMWin, getter_AddRefs(chromeEventHandler));
3519 @@ -2332,7 +2332,7 @@
3520
3521
3522 void
3523 -nsTypeAheadFind::AttachWindowListeners(nsIDOMWindow *aDOMWin)
3524 +nsTypeAheadFindSea::AttachWindowListeners(nsIDOMWindow *aDOMWin)
3525 {
3526 nsCOMPtr<nsIDOMEventTarget> chromeEventHandler;
3527 GetChromeEventHandler(aDOMWin, getter_AddRefs(chromeEventHandler));
3528 @@ -2385,7 +2385,7 @@
3529
3530
3531 void
3532 -nsTypeAheadFind::GetChromeEventHandler(nsIDOMWindow *aDOMWin,
3533 +nsTypeAheadFindSea::GetChromeEventHandler(nsIDOMWindow *aDOMWin,
3534 nsIDOMEventTarget **aChromeTarget)
3535 {
3536 nsCOMPtr<nsPIDOMWindow> privateDOMWindow(do_QueryInterface(aDOMWin));
3537 @@ -2401,7 +2401,7 @@
3538 }
3539
3540 PRBool
3541 -nsTypeAheadFind::IsTargetContentOkay(nsIContent *aContent)
3542 +nsTypeAheadFindSea::IsTargetContentOkay(nsIContent *aContent)
3543 {
3544 if (!aContent) {
3545 return PR_FALSE;
3546 @@ -2439,7 +2439,7 @@
3547
3548
3549 nsresult
3550 -nsTypeAheadFind::GetTargetIfTypeAheadOkay(nsIDOMEvent *aEvent,
3551 +nsTypeAheadFindSea::GetTargetIfTypeAheadOkay(nsIDOMEvent *aEvent,
3552 nsIContent **aTargetContent,
3553 nsIPresShell **aTargetPresShell)
3554 {
3555 @@ -2522,7 +2522,7 @@
3556
3557
3558 void
3559 -nsTypeAheadFind::GetSelection(nsIPresShell *aPresShell,
3560 +nsTypeAheadFindSea::GetSelection(nsIPresShell *aPresShell,
3561 nsISelectionController **aSelCon,
3562 nsISelection **aDOMSel)
3563 {
3564 @@ -2544,7 +2544,7 @@
3565
3566
3567 PRBool
3568 -nsTypeAheadFind::IsRangeVisible(nsIPresShell *aPresShell,
3569 +nsTypeAheadFindSea::IsRangeVisible(nsIPresShell *aPresShell,
3570 nsPresContext *aPresContext,
3571 nsIDOMRange *aRange, PRBool aMustBeInViewPort,
3572 PRBool aGetTopVisibleLeaf,
3573 @@ -2698,7 +2698,7 @@
3574
3575
3576 nsresult
3577 -nsTypeAheadFind::GetTranslatedString(const nsAString& aKey,
3578 +nsTypeAheadFindSea::GetTranslatedString(const nsAString& aKey,
3579 nsAString& aStringOut)
3580 {
3581 nsXPIDLString xsValue;
3582 @@ -2716,7 +2716,7 @@
3583
3584
3585 void
3586 -nsTypeAheadFind::DisplayStatus(PRBool aSuccess, nsIContent *aFocusedContent,
3587 +nsTypeAheadFindSea::DisplayStatus(PRBool aSuccess, nsIContent *aFocusedContent,
3588 PRBool aClearStatus, const PRUnichar *aText)
3589 {
3590 // pres shell -> pres context -> container -> tree item ->
3591 @@ -2863,7 +2863,7 @@
3592 // Make sure we're not focused on a text field, listbox
3593 // or other form control that needs typeahead keystrokes
3594 if (focusedContent) {
3595 - *aResult = nsTypeAheadFind::IsTargetContentOkay(focusedContent);
3596 + *aResult = nsTypeAheadFindSea::IsTargetContentOkay(focusedContent);
3597 return NS_OK;
3598 }
3599
3600 @@ -2928,8 +2928,8 @@
3601 EnsureContentWindow(domWinInternal, getter_AddRefs(startContentWin));
3602 NS_ENSURE_TRUE(startContentWin, NS_ERROR_FAILURE);
3603
3604 - nsCOMPtr<nsITypeAheadFind> typeAhead =
3605 - do_GetService(NS_TYPEAHEADFIND_CONTRACTID);
3606 + nsCOMPtr<nsITypeAheadFindSea> typeAhead =
3607 + do_GetService(NS_TYPEAHEADFINDSEA_CONTRACTID);
3608 NS_ENSURE_TRUE(typeAhead, NS_ERROR_FAILURE);
3609
3610 return typeAhead->StartNewFind(startContentWin, isLinkSearch);
3611 @@ -3013,7 +3013,7 @@
3612 }
3613
3614 already_AddRefed<nsIPresShell>
3615 -nsTypeAheadFind::GetPresShell()
3616 +nsTypeAheadFindSea::GetPresShell()
3617 {
3618 if (!mFocusedWeakShell)
3619 return nsnull;
3620 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFind.h mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.h
3621 --- mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFind.h 2005-03-26 00:12:02.000000000 -0500
3622 +++ mozilla/extensions/typeaheadfind/src/nsTypeAheadFind.h 2005-03-26 11:39:29.000000000 -0500
3623 @@ -62,13 +62,13 @@
3624 #include "nsIDOMRange.h"
3625 #include "nsIDOMWindow.h"
3626 #include "nsIDocShellTreeItem.h"
3627 -#include "nsITypeAheadFind.h"
3628 +#include "nsITypeAheadFindSea.h"
3629 #include "nsIStringBundle.h"
3630 #include "nsISupportsArray.h"
3631 #include "nsISound.h"
3632
3633 -#define TYPEAHEADFIND_BUNDLE_URL \
3634 - "chrome://global/locale/typeaheadfind.properties"
3635 +#define TYPEAHEADFINDSEA_BUNDLE_URL \
3636 + "chrome://global/locale/typeaheadfindsea.properties"
3637 #define TYPEAHEADFIND_NOTFOUND_WAV_URL \
3638 "chrome://global/content/notfound.wav"
3639
3640 @@ -82,7 +82,7 @@
3641
3642 const int kMaxBadCharsBeforeCancel = 3;
3643
3644 -class nsTypeAheadFind : public nsITypeAheadFind,
3645 +class nsTypeAheadFindSea : public nsITypeAheadFindSea,
3646 public nsIDOMKeyListener,
3647 public nsIDOMTextListener,
3648 public nsIDOMCompositionListener,
3649 @@ -93,13 +93,13 @@
3650 public nsSupportsWeakReference
3651 {
3652 public:
3653 - nsTypeAheadFind();
3654 - virtual ~nsTypeAheadFind();
3655 + nsTypeAheadFindSea();
3656 + virtual ~nsTypeAheadFindSea();
3657
3658 - NS_DEFINE_STATIC_CID_ACCESSOR(NS_TYPEAHEADFIND_CID);
3659 + NS_DEFINE_STATIC_CID_ACCESSOR(NS_TYPEAHEADFINDSEA_CID);
3660
3661 NS_DECL_ISUPPORTS
3662 - NS_DECL_NSITYPEAHEADFIND
3663 + NS_DECL_NSITYPEAHEADFINDSEA
3664 NS_DECL_NSIOBSERVER
3665 NS_DECL_NSIDOMEVENTLISTENER
3666 NS_DECL_NSISELECTIONLISTENER
3667 @@ -127,7 +127,7 @@
3668 // ----- nsITimerCallback -----------------------------
3669 NS_DECL_NSITIMERCALLBACK
3670
3671 - static nsTypeAheadFind *GetInstance();
3672 + static nsTypeAheadFindSea *GetInstance();
3673 static void ReleaseInstance(void);
3674 static PRBool IsTargetContentOkay(nsIContent *aContent);
3675
3676 @@ -185,7 +185,7 @@
3677 nsresult GetTranslatedString(const nsAString& aKey, nsAString& aStringOut);
3678
3679 // Used by GetInstance and ReleaseInstance
3680 - static nsTypeAheadFind *sInstance;
3681 + static nsTypeAheadFindSea *sInstance;
3682
3683 // Current find state
3684 nsString mTypeAheadBuffer;
3685 @@ -196,7 +196,7 @@
3686
3687 // PRBool's are used instead of PRPackedBool's where the address of the
3688 // boolean variable is getting passed into a method. For example:
3689 - // GetBoolPref("accessibility.typeaheadfind.linksonly", &mLinksOnlyPref);
3690 + // GetBoolPref("accessibility.typeaheadfindsea.linksonly", &mLinksOnlyPref);
3691 PRBool mIsFindAllowedInWindow;
3692 PRBool mAutoStartPref;
3693 PRBool mLinksOnlyPref;
3694 @@ -251,7 +251,7 @@
3695 nsCOMPtr<nsIDOMWindow> mFocusedWindow;
3696 nsCOMPtr<nsIWeakReference> mFocusedWeakShell;
3697
3698 - // Windows where typeaheadfind doesn't auto start as the user types
3699 + // Windows where typeaheadfindsea doesn't auto start as the user types
3700 nsCOMPtr<nsISupportsArray> mManualFindWindows;
3701 };
3702
3703 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp mozilla/extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp
3704 --- mozilla.orig/extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp 2005-03-26 00:12:02.000000000 -0500
3705 +++ mozilla/extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp 2005-03-26 11:39:40.000000000 -0500
3706 @@ -55,7 +55,7 @@
3707
3708 // This function is called at component registration time
3709 static NS_METHOD
3710 -nsTypeAheadFindRegistrationProc(nsIComponentManager *aCompMgr, nsIFile *aPath,
3711 +nsTypeAheadFindSeaRegistrationProc(nsIComponentManager *aCompMgr, nsIFile *aPath,
3712 const char *registryLocation,
3713 const char *componentType,
3714 const nsModuleComponentInfo *info)
3715 @@ -64,7 +64,7 @@
3716 // an application component. This makes sure that we're
3717 // initialized on application startup.
3718
3719 - // Register nsTypeAheadFind to be instantiated on startup.
3720 + // Register nsTypeAheadFindSea to be instantiated on startup.
3721 // XXX This is needed on linux, but for some reason not needed on win32.
3722 nsresult rv;
3723 nsCOMPtr<nsICategoryManager> categoryManager =
3724 @@ -74,7 +74,7 @@
3725 rv = categoryManager->AddCategoryEntry(APPSTARTUP_CATEGORY,
3726 - "Type Ahead Find",
3727 + "Type Ahead Find Sea",
3728 "service,"
3729 - NS_TYPEAHEADFIND_CONTRACTID,
3730 + NS_TYPEAHEADFINDSEA_CONTRACTID,
3731 PR_TRUE, PR_TRUE, nsnull);
3732 }
3733
3734 @@ -82,22 +82,22 @@
3735 }
3736
3737
3738 -NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsTypeAheadFind,
3739 - nsTypeAheadFind::GetInstance)
3740 +NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsTypeAheadFindSea,
3741 + nsTypeAheadFindSea::GetInstance)
3742
3743 static void PR_CALLBACK
3744 -TypeAheadFindModuleDtor(nsIModule* self)
3745 +TypeAheadFindSeaModuleDtor(nsIModule* self)
3746 {
3747 - nsTypeAheadFind::ReleaseInstance();
3748 + nsTypeAheadFindSea::ReleaseInstance();
3749 }
3750
3751 static const nsModuleComponentInfo components[] =
3752 {
3753 - { "TypeAheadFind Component", NS_TYPEAHEADFIND_CID,
3754 - NS_TYPEAHEADFIND_CONTRACTID, nsTypeAheadFindConstructor,
3755 - nsTypeAheadFindRegistrationProc, nsnull // Unregistration proc
3756 + { "TypeAheadFindSea Component", NS_TYPEAHEADFINDSEA_CID,
3757 + NS_TYPEAHEADFINDSEA_CONTRACTID, nsTypeAheadFindSeaConstructor,
3758 + nsTypeAheadFindSeaRegistrationProc, nsnull // Unregistration proc
3759 }
3760 };
3761
3762 -NS_IMPL_NSGETMODULE_WITH_DTOR(nsTypeAheadFind, components,
3763 - TypeAheadFindModuleDtor)
3764 +NS_IMPL_NSGETMODULE_WITH_DTOR(nsTypeAheadFindSea, components,
3765 + TypeAheadFindSeaModuleDtor)
3766 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/typeaheadfind.pkg mozilla/extensions/typeaheadfind/src/typeaheadfind.pkg
3767 --- mozilla.orig/extensions/typeaheadfind/src/typeaheadfind.pkg 2005-03-26 00:12:02.000000000 -0500
3768 +++ mozilla/extensions/typeaheadfind/src/typeaheadfind.pkg 1969-12-31 19:00:00.000000000 -0500
3769 @@ -1,9 +0,0 @@
3770 -# why not ship this with GRE/embedding, if we're building it?
3771 -
3772 -[xpfe-browser browser]
3773 -#if SHARED_LIBRARY
3774 -dist/bin/components/@SHARED_LIBRARY@
3775 -#else
3776 -!staticcomp @LIBRARY@ @MODULE_NAME@
3777 -#endif
3778 -!xpt dist/bin/components/typeaheadfind.xpt
3779 diff -urN --exclude=CVS mozilla.orig/extensions/typeaheadfind/src/typeaheadfindsea.pkg mozilla/extensions/typeaheadfind/src/typeaheadfindsea.pkg
3780 --- mozilla.orig/extensions/typeaheadfind/src/typeaheadfindsea.pkg 1969-12-31 19:00:00.000000000 -0500
3781 +++ mozilla/extensions/typeaheadfind/src/typeaheadfindsea.pkg 2005-03-26 11:39:29.000000000 -0500
3782 @@ -0,0 +1,9 @@
3783 +# why not ship this with GRE/embedding, if we're building it?
3784 +
3785 +[xpfe-browser browser]
3786 +#if SHARED_LIBRARY
3787 +dist/bin/components/@SHARED_LIBRARY@
3788 +#else
3789 +!staticcomp @LIBRARY@ @MODULE_NAME@
3790 +#endif
3791 +!xpt dist/bin/components/typeaheadfindsea.xpt
3792
3793
3794
3795 1.1 src/patchsets/mozilla-firefox/2.0.0.19/063_firefox-rpath-3.patch
3796
3797 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/063_firefox-rpath-3.patch?rev=1.1&view=markup
3798 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/063_firefox-rpath-3.patch?rev=1.1&content-type=text/plain
3799
3800 Index: 063_firefox-rpath-3.patch
3801 ===================================================================
3802 # Gentoo http://bugs.gentoo.org/show_bug.cgi?id=100597
3803
3804 --- mozilla/config/rules.mk.orig 2006-07-07 06:13:36.000000000 +0200
3805 +++ mozilla/config/rules.mk 2006-07-19 13:22:04.000000000 +0200
3806 @@ -510,7 +510,12 @@
3807 #
3808 ifeq ($(OS_ARCH),Linux)
3809 ifdef IS_COMPONENT
3810 +DSO_LDOPTS += -Wl,-rpath,'$$ORIGIN:$$ORIGIN/..'
3811 +OS_LDFLAGS += -Wl,-rpath,'$$ORIGIN:$$ORIGIN/..'
3812 EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
3813 +else
3814 +DSO_LDOPTS += -Wl,-rpath,'$$ORIGIN'
3815 +OS_LDFLAGS += -Wl,-rpath,'$$ORIGIN'
3816 endif
3817 endif
3818
3819
3820
3821
3822 1.1 src/patchsets/mozilla-firefox/2.0.0.19/064_firefox-nsplugins-v2.patch
3823
3824 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/064_firefox-nsplugins-v2.patch?rev=1.1&view=markup
3825 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/064_firefox-nsplugins-v2.patch?rev=1.1&content-type=text/plain
3826
3827 Index: 064_firefox-nsplugins-v2.patch
3828 ===================================================================
3829 # Gentoo's Add a search path for plugins. by agriffis
3830
3831 --- mozilla/xpcom/io/nsAppFileLocationProvider.cpp.orig 2006-07-16 22:38:44.000000000 +0200
3832 +++ mozilla/xpcom/io/nsAppFileLocationProvider.cpp 2006-07-16 22:39:41.000000000 +0200
3833 @@ -215,6 +215,14 @@
3834 if (NS_SUCCEEDED(rv))
3835 rv = localFile->AppendRelativeNativePath(PLUGINS_DIR_NAME);
3836 }
3837 + else if (nsCRT::strcmp(prop, GENTOO_NSPLUGINS_DIR) == 0)
3838 + {
3839 + rv = NS_NewNativeLocalFile(nsDependentCString(GENTOO_NSPLUGINS_DIR), PR_TRUE, getter_AddRefs(localFile));
3840 + }
3841 + else if (nsCRT::strcmp(prop, GENTOO_NSBROWSER_PLUGINS_DIR) == 0)
3842 + {
3843 + rv = NS_NewNativeLocalFile(nsDependentCString(GENTOO_NSBROWSER_PLUGINS_DIR), PR_TRUE, getter_AddRefs(localFile));
3844 + }
3845 #if defined(XP_MAC) || defined(XP_MACOSX)
3846 else if (nsCRT::strcmp(prop, NS_MACOSX_USER_PLUGIN_DIR) == 0)
3847 {
3848 @@ -617,7 +625,7 @@
3849
3850 *_retval = new nsAppDirectoryEnumerator(this, keys);
3851 #else
3852 - static const char* keys[] = { nsnull, NS_USER_PLUGINS_DIR, NS_APP_PLUGINS_DIR, nsnull };
3853 + static const char* keys[] = { nsnull, GENTOO_NSPLUGINS_DIR, GENTOO_NSBROWSER_PLUGINS_DIR, NS_USER_PLUGINS_DIR, NS_APP_PLUGINS_DIR, nsnull };
3854 if (!keys[0] && !(keys[0] = PR_GetEnv("MOZ_PLUGIN_PATH"))) {
3855 static const char nullstr = 0;
3856 keys[0] = &nullstr;
3857
3858
3859
3860 1.1 src/patchsets/mozilla-firefox/2.0.0.19/090_xul-gcc4.3.patch
3861
3862 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/090_xul-gcc4.3.patch?rev=1.1&view=markup
3863 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/090_xul-gcc4.3.patch?rev=1.1&content-type=text/plain
3864
3865 Index: 090_xul-gcc4.3.patch
3866 ===================================================================
3867 http://lists.opensuse.org/opensuse-commit/2007-11/msg00823.html
3868
3869 diff -Naur mozilla-orig/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h mozilla/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h
3870 --- mozilla-orig/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h 2006-05-20 11:20:48.000000000 -0600
3871 +++ mozilla/modules/libpr0n/encoders/jpeg/nsJPEGEncoder.h 2008-01-06 22:13:39.000000000 -0600
3872 @@ -39,8 +39,10 @@
3873 #include "imgIEncoder.h"
3874 #ifdef MOZILLA_1_8_BRANCH
3875 #define imgIEncoder imgIEncoder_MOZILLA_1_8_BRANCH
3876 +#ifndef NS_DECL_IMGIENCODER
3877 #define NS_DECL_IMGIENCODER NS_DECL_IMGIENCODER_MOZILLA_1_8_BRANCH
3878 #endif
3879 +#endif
3880
3881 // needed for JPEG library
3882 #include <stdio.h>
3883 @@ -69,6 +71,14 @@
3884
3885 nsJPEGEncoder();
3886
3887 + NS_IMETHOD InitFromData(const PRUint8* aData,
3888 + PRUint32 aLength, // (unused, req'd by JS)
3889 + PRUint32 aWidth,
3890 + PRUint32 aHeight,
3891 + PRUint32 aStride,
3892 + PRUint32 aInputFormat,
3893 + const nsAString& aOutputOptions);
3894 +
3895 private:
3896 ~nsJPEGEncoder();
3897
3898 diff -Naur mozilla-orig/modules/libpr0n/encoders/png/nsPNGEncoder.h mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.h
3899 --- mozilla-orig/modules/libpr0n/encoders/png/nsPNGEncoder.h 2006-05-20 11:20:49.000000000 -0600
3900 +++ mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.h 2008-01-06 22:11:36.000000000 -0600
3901 @@ -38,8 +38,10 @@
3902 #include "imgIEncoder.h"
3903 #ifdef MOZILLA_1_8_BRANCH
3904 #define imgIEncoder imgIEncoder_MOZILLA_1_8_BRANCH
3905 +#ifndef NS_DECL_IMGIENCODER
3906 #define NS_DECL_IMGIENCODER NS_DECL_IMGIENCODER_MOZILLA_1_8_BRANCH
3907 #endif
3908 +#endif
3909
3910 #include <png.h>
3911
3912 @@ -63,6 +65,14 @@
3913
3914 nsPNGEncoder();
3915
3916 + NS_IMETHOD InitFromData(const PRUint8* aData,
3917 + PRUint32 aLength, // (unused, req'd by JS)
3918 + PRUint32 aWidth,
3919 + PRUint32 aHeight,
3920 + PRUint32 aStride,
3921 + PRUint32 aInputFormat,
3922 + const nsAString& aOutputOptions);
3923 +
3924 private:
3925 ~nsPNGEncoder();
3926
3927 diff -Naur mozilla-orig/modules/libpr0n/public/imgIEncoder.idl mozilla/modules/libpr0n/public/imgIEncoder.idl
3928 --- mozilla-orig/modules/libpr0n/public/imgIEncoder.idl 2006-05-20 11:20:49.000000000 -0600
3929 +++ mozilla/modules/libpr0n/public/imgIEncoder.idl 2008-01-06 22:15:40.000000000 -0600
3930 @@ -96,6 +96,6 @@
3931 [scriptable, uuid(CCC5B3AD-3E67-4e3d-97E1-B06B2E96FEF8)]
3932 interface imgIEncoder : nsISupports
3933 {
3934 - void encodeClipboardImage(in nsIClipboardImage aClipboardImage, out nsIFile aImageFile);
3935 + /* void encodeClipboardImage(in nsIClipboardImage aClipboardImage, out nsIFile aImageFile); */
3936 };
3937
3938
3939
3940
3941 1.1 src/patchsets/mozilla-firefox/2.0.0.19/401_firefox-1.5-theme-change.patch
3942
3943 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/401_firefox-1.5-theme-change.patch?rev=1.1&view=markup
3944 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/401_firefox-1.5-theme-change.patch?rev=1.1&content-type=text/plain
3945
3946 Index: 401_firefox-1.5-theme-change.patch
3947 ===================================================================
3948 Index: layout/base/nsPresContext.cpp
3949 ===================================================================
3950 RCS file: /cvsroot/mozilla/layout/base/nsPresContext.cpp,v
3951 retrieving revision 3.288.12.2.4.1
3952 diff -d -u -p -r3.288.12.2.4.1 nsPresContext.cpp
3953 --- layout/base/nsPresContext.cpp 21 Apr 2006 23:30:50 -0000 3.288.12.2.4.1
3954 +++ layout/base/nsPresContext.cpp 26 Sep 2006 19:26:40 -0000
3955 @@ -73,6 +73,9 @@
3956 #include "nsIDOMDocument.h"
3957 #include "nsAutoPtr.h"
3958 #include "nsEventStateManager.h"
3959 +#include "nsIEventQueue.h"
3960 +#include "nsIEventQueueService.h"
3961 +
3962 #ifdef IBMBIDI
3963 #include "nsBidiPresUtils.h"
3964 #endif // IBMBIDI
3965 @@ -267,6 +270,7 @@ nsPresContext::~nsPresContext()
3966 NS_IF_RELEASE(mDeviceContext);
3967 NS_IF_RELEASE(mLookAndFeel);
3968 NS_IF_RELEASE(mLangGroup);
3969 + NS_IF_RELEASE(mEventQueueService);
3970 }
3971
3972 NS_IMPL_ISUPPORTS2(nsPresContext, nsPresContext, nsIObserver)
3973 @@ -285,6 +289,17 @@ static const char* const kGenericFont[]
3974 ".fantasy."
3975 };
3976
3977 +// Set to true when LookAndFeelChanged needs to be called. This is used
3978 +// because the look and feel is a service, so there's no need to notify it from
3979 +// more than one prescontext.
3980 +static PRBool sLookAndFeelChanged;
3981 +
3982 +// Set to true when ThemeChanged needs to be called on mTheme. This is used
3983 +// because mTheme is a service, so there's no need to notify it from more than
3984 +// one prescontext.
3985 +static PRBool sThemeChanged;
3986 +
3987 +
3988 void
3989 nsPresContext::GetFontPreferences()
3990 {
3991 @@ -709,6 +724,9 @@ nsPresContext::Init(nsIDeviceContext* aD
3992 this);
3993 #endif
3994
3995 + rv = CallGetService(NS_EVENTQUEUESERVICE_CONTRACTID, &mEventQueueService);
3996 + NS_ENSURE_SUCCESS(rv, rv);
3997 +
3998 // Initialize our state from the user preferences
3999 GetUserPreferences();
4000
4001 @@ -1180,33 +1198,126 @@ nsPresContext::GetTheme()
4002 void
4003 nsPresContext::ThemeChanged()
4004 {
4005 + if (!mPendingThemeChanged) {
4006 + sLookAndFeelChanged = PR_TRUE;
4007 + sThemeChanged = PR_TRUE;
4008 +
4009 + nsCOMPtr<nsIEventQueue> eventQ;
4010 + mEventQueueService->
4011 + GetSpecialEventQueue(nsIEventQueueService::UI_THREAD_EVENT_QUEUE,
4012 + getter_AddRefs(eventQ));
4013 + if (!eventQ) {
4014 + return;
4015 + }
4016 +
4017 + PLEvent* evt = new PLEvent();
4018 + if (!evt) {
4019 + return;
4020 + }
4021 +
4022 + PL_InitEvent(evt, this, nsPresContext::ThemeChangedInternal,
4023 + nsPresContext::DestroyThemeChangeEvt);
4024 +
4025 + // After this point, event destruction will release |this|
4026 + NS_ADDREF_THIS();
4027 +
4028 + nsresult rv = eventQ->PostEvent(evt);
4029 + if (NS_FAILED(rv)) {
4030 + PL_DestroyEvent(evt);
4031 + } else {
4032 + mPendingThemeChanged = PR_TRUE;
4033 + }
4034 + }
4035 +}
4036 +
4037 +void* PR_CALLBACK
4038 +nsPresContext::ThemeChangedInternal(PLEvent *aEvent)
4039 +{
4040 + nsPresContext* pc = NS_STATIC_CAST(nsPresContext*, aEvent->owner);
4041 +
4042 + pc->mPendingThemeChanged = PR_FALSE;
4043 +
4044 // Tell the theme that it changed, so it can flush any handles to stale theme
4045 // data.
4046 - if (mTheme)
4047 - mTheme->ThemeChanged();
4048 + if (pc->mTheme && sThemeChanged) {
4049 + pc->mTheme->ThemeChanged();
4050 + sThemeChanged = PR_FALSE;
4051 + }
4052
4053 // Clear all cached nsILookAndFeel colors.
4054 - if (mLookAndFeel)
4055 - mLookAndFeel->LookAndFeelChanged();
4056 + if (pc->mLookAndFeel && sLookAndFeelChanged) {
4057 + pc->mLookAndFeel->LookAndFeelChanged();
4058 + sLookAndFeelChanged = PR_FALSE;
4059 + }
4060
4061 // We have to clear style data because the assumption of style rule
4062 // immutability has been violated since any style rule that uses
4063 // system colors or fonts (and probably -moz-appearance as well) has
4064 // changed.
4065 - nsPresContext::ClearStyleDataAndReflow();
4066 + pc->ClearStyleDataAndReflow();
4067 +
4068 + return nsnull;
4069 +}
4070 +
4071 +
4072 +void PR_CALLBACK
4073 +nsPresContext::DestroyThemeChangeEvt(PLEvent* aEvent)
4074 +{
4075 + nsPresContext* pc = NS_STATIC_CAST(nsPresContext*, aEvent->owner);
4076 + NS_RELEASE(pc);
4077 + delete aEvent;
4078 }
4079
4080 void
4081 nsPresContext::SysColorChanged()
4082 {
4083 - if (mLookAndFeel) {
4084 + if (!mPendingSysColorChanged) {
4085 + sLookAndFeelChanged = PR_TRUE;
4086 +
4087 + nsCOMPtr<nsIEventQueue> eventQ;
4088 + mEventQueueService->
4089 + GetSpecialEventQueue(nsIEventQueueService::UI_THREAD_EVENT_QUEUE,
4090 + getter_AddRefs(eventQ));
4091 + if (!eventQ) {
4092 + return;
4093 + }
4094 +
4095 + PLEvent* evt = new PLEvent();
4096 + if (!evt) {
4097 + return;
4098 + }
4099 +
4100 + PL_InitEvent(evt, this, nsPresContext::SysColorChangedInternal,
4101 + nsPresContext::DestroySysColorChangeEvt);
4102 +
4103 + // After this point, event destruction will release |this|
4104 + NS_ADDREF_THIS();
4105 +
4106 + nsresult rv = eventQ->PostEvent(evt);
4107 + if (NS_FAILED(rv)) {
4108 + PL_DestroyEvent(evt);
4109 + } else {
4110 + mPendingSysColorChanged = PR_TRUE;
4111 + }
4112 + }
4113 +}
4114 +
4115 +void* PR_CALLBACK
4116 +nsPresContext::SysColorChangedInternal(PLEvent *aEvent)
4117 +{
4118 + nsPresContext* pc = NS_STATIC_CAST(nsPresContext*, aEvent->owner);
4119 +
4120 + pc->mPendingSysColorChanged = PR_FALSE;
4121 +
4122 + if (pc->mLookAndFeel && sLookAndFeelChanged) {
4123 // Don't use the cached values for the system colors
4124 - mLookAndFeel->LookAndFeelChanged();
4125 + pc->mLookAndFeel->LookAndFeelChanged();
4126 + sLookAndFeelChanged = PR_FALSE;
4127 }
4128 -
4129 +
4130 // Reset default background and foreground colors for the document since
4131 // they may be using system colors
4132 - GetDocumentColorPreferences();
4133 + pc->GetDocumentColorPreferences();
4134
4135 // Clear out all of the style data since it may contain RGB values
4136 // which originated from system colors.
4137 @@ -1222,7 +1333,17 @@ nsPresContext::SysColorChanged()
4138 // data without reflowing/updating views will lead to incorrect change hints
4139 // later, because when generating change hints, any style structs which have
4140 // been cleared and not reread are assumed to not be used at all.
4141 - ClearStyleDataAndReflow();
4142 + pc->ClearStyleDataAndReflow();
4143 +
4144 + return nsnull;
4145 +}
4146 +
4147 +void PR_CALLBACK
4148 +nsPresContext::DestroySysColorChangeEvt(PLEvent* aEvent)
4149 +{
4150 + nsPresContext* pc = NS_STATIC_CAST(nsPresContext*, aEvent->owner);
4151 + NS_RELEASE(pc);
4152 + delete aEvent;
4153 }
4154
4155 void
4156 Index: layout/base/nsPresContext.h
4157 ===================================================================
4158 RCS file: /cvsroot/mozilla/layout/base/nsPresContext.h,v
4159 retrieving revision 3.150.4.2
4160 diff -d -u -p -r3.150.4.2 nsPresContext.h
4161 --- layout/base/nsPresContext.h 29 Aug 2005 16:15:39 -0000 3.150.4.2
4162 +++ layout/base/nsPresContext.h 26 Sep 2006 19:26:40 -0000
4163 @@ -56,6 +56,7 @@
4164 #include "nsCRT.h"
4165 #include "nsIPrintSettings.h"
4166 #include "nsPropertyTable.h"
4167 +#include "plevent.h"
4168 #ifdef IBMBIDI
4169 class nsBidiPresUtils;
4170 #endif // IBMBIDI
4171 @@ -76,6 +77,7 @@ class nsIAtom;
4172 class nsIEventStateManager;
4173 class nsIURI;
4174 class nsILookAndFeel;
4175 +class nsIEventQueueService;
4176 class nsICSSPseudoComparator;
4177 class nsIAtom;
4178 struct nsStyleStruct;
4179 @@ -627,6 +629,14 @@ public:
4180 const nscoord* GetBorderWidthTable() { return mBorderWidthTable; }
4181
4182 protected:
4183 + static NS_HIDDEN_(void*) PR_CALLBACK ThemeChangedInternal(PLEvent* aEvent);
4184 + static NS_HIDDEN_(void*) PR_CALLBACK SysColorChangedInternal(PLEvent* aEvent);
4185 + static NS_HIDDEN_(void) PR_CALLBACK DestroyThemeChangeEvt(PLEvent* aEvent);
4186 + static NS_HIDDEN_(void) PR_CALLBACK DestroySysColorChangeEvt(PLEvent* aEvent);
4187 +
4188 + friend void* PR_CALLBACK ThemeChangedInternal(PLEvent* aEvent);
4189 + friend void* PR_CALLBACK SysColorChangedInternal(PLEvent* aEvent);
4190 +
4191 NS_HIDDEN_(void) SetImgAnimations(nsIContent *aParent, PRUint16 aMode);
4192 NS_HIDDEN_(void) GetDocumentColorPreferences();
4193
4194 @@ -654,6 +664,7 @@ protected:
4195 // from gfx back to layout.
4196 nsIEventStateManager* mEventManager; // [STRONG]
4197 nsILookAndFeel* mLookAndFeel; // [STRONG]
4198 + nsIEventQueueService *mEventQueueService; // [STRONG]
4199 nsIAtom* mMedium; // initialized by subclass ctors;
4200 // weak pointer to static atom
4201
4202 @@ -724,6 +735,8 @@ protected:
4203 unsigned mCanPaginatedScroll : 1;
4204 unsigned mDoScaledTwips : 1;
4205 unsigned mEnableJapaneseTransform : 1;
4206 + unsigned mPendingSysColorChanged : 1;
4207 + unsigned mPendingThemeChanged : 1;
4208 #ifdef IBMBIDI
4209 unsigned mIsVisual : 1;
4210 unsigned mIsBidiSystem : 1;
4211
4212
4213
4214 1.1 src/patchsets/mozilla-firefox/2.0.0.19/402_firefox-2.0-pango-cursor.patch
4215
4216 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/402_firefox-2.0-pango-cursor.patch?rev=1.1&view=markup
4217 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/402_firefox-2.0-pango-cursor.patch?rev=1.1&content-type=text/plain
4218
4219 Index: 402_firefox-2.0-pango-cursor.patch
4220 ===================================================================
4221 # Upstream bug #335810
4222
4223 Index: mozilla/gfx/src/gtk/nsFontMetricsPango.cpp
4224 ===================================================================
4225 RCS file: /cvsroot/mozilla/gfx/src/gtk/nsFontMetricsPango.cpp,v
4226 retrieving revision 1.24
4227 diff -d -u -p -6 -r1.24 nsFontMetricsPango.cpp
4228 --- mozilla/gfx/src/gtk/nsFontMetricsPango.cpp 25 Aug 2006 01:02:34 -0000 1.24
4229 +++ mozilla/gfx/src/gtk/nsFontMetricsPango.cpp 6 Sep 2006 07:01:49 -0000
4230 @@ -948,13 +948,12 @@ nsFontMetricsPango::GetClusterInfo(const
4231 PRInt32
4232 nsFontMetricsPango::GetPosition(const PRUnichar *aText, PRUint32 aLength,
4233 nsPoint aPt)
4234 {
4235 int trailing = 0;
4236 int inx = 0;
4237 - gboolean found = FALSE;
4238 const gchar *curChar;
4239 PRInt32 retval = 0;
4240
4241 float f = mDeviceContext->AppUnitsToDevUnits();
4242
4243 PangoLayout *layout = pango_layout_new(mPangoContext);
4244 @@ -974,28 +973,18 @@ nsFontMetricsPango::GetPosition(const PR
4245 }
4246
4247 // Set up the pango layout
4248 pango_layout_set_text(layout, text, strlen(text));
4249 FixupSpaceWidths(layout, text);
4250
4251 - found = pango_layout_xy_to_index(layout, localX, localY,
4252 - &inx, &trailing);
4253 + pango_layout_xy_to_index(layout, localX, localY,
4254 + &inx, &trailing);
4255
4256 // Convert the index back to the utf-16 index
4257 curChar = text;
4258
4259 - // Jump to the end if it's not found.
4260 - if (!found) {
4261 - if (inx == 0)
4262 - retval = 0;
4263 - else if (trailing)
4264 - retval = aLength;
4265 -
4266 - goto loser;
4267 - }
4268 -
4269 for (PRUint32 curOffset=0; curOffset < aLength;
4270 curOffset++, curChar = g_utf8_find_next_char(curChar, NULL)) {
4271
4272 // Check for a match before checking for a surrogate pair
4273 if (curChar - text == inx) {
4274 retval = curOffset;
4275
4276
4277
4278 1.1 src/patchsets/mozilla-firefox/2.0.0.19/803_fbsd-3.patch
4279
4280 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/803_fbsd-3.patch?rev=1.1&view=markup
4281 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/803_fbsd-3.patch?rev=1.1&content-type=text/plain
4282
4283 Index: 803_fbsd-3.patch
4284 ===================================================================
4285 --- a/config/rules.mk 2007-07-03 17:39:53 +0100
4286 +++ b/config/rules.mk 2007-07-03 17:41:50 +0100
4287 @@ -462,6 +462,8 @@
4288 endif
4289
4290 ifeq ($(OS_ARCH),FreeBSD)
4291 +DSO_LDOPTS += -Wl,-rpath,'$(mozappdir)'
4292 +OS_LDFLAGS += -Wl,-rpath,'$(mozappdir)'
4293 EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc
4294 endif
4295
4296
4297
4298
4299 1.1 src/patchsets/mozilla-firefox/2.0.0.19/811_fbsd7-1.patch
4300
4301 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/811_fbsd7-1.patch?rev=1.1&view=markup
4302 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/mozilla-firefox/2.0.0.19/811_fbsd7-1.patch?rev=1.1&content-type=text/plain
4303
4304 Index: 811_fbsd7-1.patch
4305 ===================================================================
4306 --- mozilla/security/coreconf/FreeBSD.mk.old 2009-01-25 14:34:25 +0000
4307 +++ mozilla/security/coreconf/FreeBSD.mk 2009-01-25 14:34:42 +0000
4308 @@ -65,7 +65,7 @@
4309
4310 ARCH = freebsd
4311
4312 -MOZ_OBJFORMAT := $(shell test -x /usr/bin/objformat && /usr/bin/objformat || echo aout)
4313 +MOZ_OBJFORMAT := $(shell test -x /usr/bin/objformat && /usr/bin/objformat || echo elf)
4314
4315 ifeq ($(MOZ_OBJFORMAT),elf)
4316 DLL_SUFFIX = so
4317 --- mozilla/nsprpub/configure.in.old 2009-01-25 14:34:52 +0000
4318 +++ mozilla/nsprpub/configure.in 2009-01-25 14:35:04 +0000
4319 @@ -1137,7 +1137,7 @@
4320 AC_DEFINE(HAVE_BSD_FLOCK)
4321 AC_DEFINE(HAVE_SOCKLEN_T)
4322 CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall"
4323 - MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
4324 + MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
4325 if test "$MOZ_OBJFORMAT" = "elf"; then
4326 DLL_SUFFIX=so
4327 else
4328 --- mozilla/directory/c-sdk/config/FreeBSD.mk.old 2009-01-25 14:35:25 +0000
4329 +++ mozilla/directory/c-sdk/config/FreeBSD.mk 2009-01-25 14:35:41 +0000
4330 @@ -70,7 +70,7 @@
4331
4332 ARCH = freebsd
4333
4334 -MOZ_OBJFORMAT := $(shell test -x /usr/bin/objformat && /usr/bin/objformat || echo aout)
4335 +MOZ_OBJFORMAT := $(shell test -x /usr/bin/objformat && /usr/bin/objformat || echo elf)
4336
4337 ifeq ($(MOZ_OBJFORMAT),elf)
4338 DLL_SUFFIX = so
4339 --- mozilla/directory/c-sdk/configure.in.old 2009-01-25 14:35:16 +0000
4340 +++ mozilla/directory/c-sdk/configure.in 2009-01-25 14:35:34 +0000
4341 @@ -1037,7 +1037,7 @@
4342 AC_DEFINE(FREEBSD)
4343 AC_DEFINE(HAVE_BSD_FLOCK)
4344 CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall"
4345 - MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
4346 + MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
4347 if test "$MOZ_OBJFORMAT" = "elf"; then
4348 DLL_SUFFIX=so
4349 else
4350 --- mozilla/configure.in.old 2009-01-25 13:53:32 +0000
4351 +++ mozilla/configure.in 2009-01-25 13:53:39 +0000
4352 @@ -1556,7 +1556,7 @@
4353 ;;
4354
4355 *-freebsd*)
4356 - if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` != "elf"; then
4357 + if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo elf` != "elf"; then
4358 DLL_SUFFIX=".so.1.0"
4359 DSO_LDOPTS="-shared"
4360 fi