Annotation of /trunk/mozilla-firefox/patches/mozilla-firefox-1.5.0.4-visibility-pragma.patch
Parent Directory | Revision Log
Revision 153 -
(hide annotations)
(download)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 10955 byte(s)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 10955 byte(s)
-import
1 | niro | 153 | diff -Nur mozilla/configure.in mozilla.bug307168/configure.in |
2 | --- mozilla/configure.in 2005-10-04 05:53:49.000000000 +0000 | ||
3 | +++ mozilla.bug307168/configure.in 2005-12-06 16:42:46.000000000 +0000 | ||
4 | @@ -1036,9 +1036,9 @@ | ||
5 | dnl GNU specific defaults | ||
6 | dnl ======================================================== | ||
7 | if test "$GNU_CC"; then | ||
8 | - MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' | ||
9 | - MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' | ||
10 | - DSO_LDOPTS='-shared -Wl,-h -Wl,$@' | ||
11 | + MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' | ||
12 | + MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' | ||
13 | + DSO_LDOPTS='-shared' | ||
14 | DSO_CFLAGS='' | ||
15 | DSO_PIC_CFLAGS='-fPIC' | ||
16 | _MOZ_RTTI_FLAGS_ON=${_COMPILER_PREFIX}-frtti | ||
17 | @@ -1063,9 +1063,9 @@ | ||
18 | _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT' | ||
19 | _USE_CPP_INCLUDE_FLAG=1 | ||
20 | else | ||
21 | - MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@' | ||
22 | - MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@' | ||
23 | - DSO_LDOPTS='-shared -h $@' | ||
24 | + MKSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@' | ||
25 | + MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@' | ||
26 | + DSO_LDOPTS='-shared' | ||
27 | DSO_CFLAGS='' | ||
28 | DSO_PIC_CFLAGS='-KPIC' | ||
29 | _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT' | ||
30 | @@ -1292,9 +1292,9 @@ | ||
31 | |||
32 | *-beos*) | ||
33 | no_x=yes | ||
34 | - MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@' | ||
35 | + MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' | ||
36 | _PLATFORM_DEFAULT_TOOLKIT="beos" | ||
37 | - DSO_LDOPTS='-nostart -Wl,-h -Wl,$@' | ||
38 | + DSO_LDOPTS='-nostart' | ||
39 | TK_LIBS='-lbe -lroot' | ||
40 | LIBS="$LIBS -lbe" | ||
41 | if test "$COMPILE_ENVIRONMENT"; then | ||
42 | @@ -1379,16 +1379,16 @@ | ||
43 | *-hpux*) | ||
44 | DLL_SUFFIX=".sl" | ||
45 | if test ! "$GNU_CC"; then | ||
46 | - DSO_LDOPTS='-b -Wl,+s -L$(DIST)/bin' | ||
47 | + DSO_LDOPTS='-b -Wl,+s' | ||
48 | DSO_CFLAGS="" | ||
49 | DSO_PIC_CFLAGS="+Z" | ||
50 | - MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@' | ||
51 | + MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -L$(DIST)/bin -o $@' | ||
52 | MKCSHLIB='$(LD) -b +s -L$(DIST)/bin -o $@' | ||
53 | CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on" | ||
54 | else | ||
55 | - DSO_LDOPTS='-b -E +s -L$(DIST)/bin -L$(DIST)/lib' | ||
56 | - MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@' | ||
57 | - MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@' | ||
58 | + DSO_LDOPTS='-b -E +s' | ||
59 | + MKSHLIB='$(LD) $(DSO_LDOPTS) -L$(DIST)/bin -L$(DIST)/lib -o $@' | ||
60 | + MKCSHLIB='$(LD) $(DSO_LDOPTS) -L$(DIST)/bin -L$(DIST)/lib -o $@' | ||
61 | fi | ||
62 | MOZ_POST_PROGRAM_COMMAND='chatr +s enable' | ||
63 | AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES) | ||
64 | @@ -1397,11 +1397,16 @@ | ||
65 | *-irix5*) | ||
66 | AC_DEFINE(IRIX) | ||
67 | DSO_LDOPTS='-elf -shared' | ||
68 | + | ||
69 | if test "$GNU_CC"; then | ||
70 | + MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' | ||
71 | + MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' | ||
72 | MKSHLIB_FORCE_ALL='-Wl,-all' | ||
73 | MKSHLIB_UNFORCE_ALL='-Wl,-none' | ||
74 | CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS" | ||
75 | else | ||
76 | + MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@' | ||
77 | + MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@' | ||
78 | MKSHLIB_FORCE_ALL='-all' | ||
79 | MKSHLIB_UNFORCE_ALL='-none' | ||
80 | fi | ||
81 | @@ -1755,7 +1760,7 @@ | ||
82 | if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then | ||
83 | DLL_SUFFIX=".so" | ||
84 | DSO_PIC_CFLAGS='-fPIC -DPIC' | ||
85 | - DSO_LDOPTS='-shared -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX)' | ||
86 | + DSO_LDOPTS='-shared' | ||
87 | BIN_FLAGS='-Wl,--export-dynamic' | ||
88 | else | ||
89 | DSO_PIC_CFLAGS='-fPIC -DPIC' | ||
90 | @@ -1768,6 +1773,8 @@ | ||
91 | if test "$LIBRUNPATH"; then | ||
92 | DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS" | ||
93 | fi | ||
94 | + MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@' | ||
95 | + MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@' | ||
96 | ;; | ||
97 | |||
98 | *-nto*) | ||
99 | @@ -1931,17 +1938,19 @@ | ||
100 | |||
101 | alpha*-*-osf*) | ||
102 | if test "$GNU_CC"; then | ||
103 | - DSO_LDOPTS='-shared -Wl,-soname -Wl,$@' | ||
104 | + MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@' | ||
105 | + MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@' | ||
106 | + | ||
107 | else | ||
108 | MOZ_DEBUG_FLAGS='-g' | ||
109 | ASFLAGS='-I$(topsrcdir)/xpcom/reflect/xptcall/public -g' | ||
110 | CFLAGS="$CFLAGS -ieee" | ||
111 | CXXFLAGS="$CXXFLAGS "'-noexceptions -ieee -ptr $(DIST)/cxx_repository' | ||
112 | - DSO_LDOPTS='-shared -msym -expect_unresolved \* -soname $@ -update_registry $(DIST)/so_locations' | ||
113 | + DSO_LDOPTS='-shared -msym -expect_unresolved \* -update_registry $(DIST)/so_locations' | ||
114 | DSO_CFLAGS= | ||
115 | DSO_PIC_CFLAGS= | ||
116 | - MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' | ||
117 | - MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' | ||
118 | + MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@' | ||
119 | + MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@' | ||
120 | MKSHLIB_FORCE_ALL='-all' | ||
121 | MKSHLIB_UNFORCE_ALL='-none' | ||
122 | dnl Might fix the libxpcom.so breakage on this platform as well.... | ||
123 | @@ -1973,7 +1982,7 @@ | ||
124 | AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES) | ||
125 | CXXFLAGS="$CXXFLAGS -I/usr/include/CC" | ||
126 | if test ! "$GNU_CC"; then | ||
127 | - DSO_LDOPTS='-G -h $@' | ||
128 | + DSO_LDOPTS='-G' | ||
129 | fi | ||
130 | ;; | ||
131 | |||
132 | @@ -1989,11 +1998,11 @@ | ||
133 | CXXFLAGS="$CXXFLAGS -xbuiltin=%all -features=tmplife" | ||
134 | LDFLAGS="-xildoff -zlazyload -zcombreloc $LDFLAGS" | ||
135 | MOZ_OPTIMIZE_FLAGS="-xO4" | ||
136 | - MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -o $@' | ||
137 | - MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) -G -Wl,-z -Wl,muldefs -o $@' | ||
138 | + MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $@ -o $@' | ||
139 | + KCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) -G -Wl,-z -Wl,muldefs -h $@ -o $@' | ||
140 | MKSHLIB_FORCE_ALL='-Qoption ld -z,allextract' | ||
141 | MKSHLIB_UNFORCE_ALL='' | ||
142 | - DSO_LDOPTS='-G -Qoption ld -z,muldefs -h $@' | ||
143 | + DSO_LDOPTS='-G -Qoption ld -z,muldefs' | ||
144 | AR_LIST="$AR t" | ||
145 | AR_EXTRACT="$AR x" | ||
146 | AR_DELETE="$AR d" | ||
147 | @@ -2019,7 +2028,7 @@ | ||
148 | AC_MSG_RESULT([$_res]) | ||
149 | else | ||
150 | ASFLAGS="$ASFLAGS -fPIC" | ||
151 | - DSO_LDOPTS='-G -h $@' | ||
152 | + DSO_LDOPTS='-G' | ||
153 | _WARNINGS_CFLAGS='' | ||
154 | _WARNINGS_CXXFLAGS='' | ||
155 | if test "$OS_RELEASE" = "5.3"; then | ||
156 | @@ -2378,8 +2387,25 @@ | ||
157 | fi | ||
158 | rm -f conftest.[cs] | ||
159 | ]) | ||
160 | - if test "$ac_cv_visibility_hidden" = "yes"; then | ||
161 | - AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE) | ||
162 | + if test "$ac_cv_visibility_hidden" = "yes"; then | ||
163 | + AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE) | ||
164 | + | ||
165 | + AC_CACHE_CHECK(for visibility(default) attribute, | ||
166 | + ac_cv_visibility_default, | ||
167 | + [cat > conftest.c <<EOF | ||
168 | + int foo __attribute__ ((visibility ("default"))) = 1; | ||
169 | +EOF | ||
170 | + ac_cv_visibility_default=no | ||
171 | + if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then | ||
172 | + if ! grep '\.hidden.*foo' conftest.s >/dev/null; then | ||
173 | + ac_cv_visibility_default=yes | ||
174 | + fi | ||
175 | + fi | ||
176 | + rm -f conftest.[cs] | ||
177 | + ]) | ||
178 | + if test "$ac_cv_visibility_default" = "yes"; then | ||
179 | + AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE) | ||
180 | + | ||
181 | AC_CACHE_CHECK(for visibility pragma support, | ||
182 | ac_cv_visibility_pragma, | ||
183 | [cat > conftest.c <<EOF | ||
184 | @@ -2399,12 +2425,35 @@ | ||
185 | rm -f conftest.[cs] | ||
186 | ]) | ||
187 | if test "$ac_cv_visibility_pragma" = "yes"; then | ||
188 | - AC_DEFINE(HAVE_VISIBILITY_PRAGMA) | ||
189 | - VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' | ||
190 | - WRAP_SYSTEM_INCLUDES=1 | ||
191 | - fi | ||
192 | - fi | ||
193 | -fi # GNU_CC | ||
194 | + AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297), | ||
195 | + ac_cv_have_visibility_builtin_bug, | ||
196 | + [cat > conftest.c <<EOF | ||
197 | +#pragma GCC visibility push(hidden) | ||
198 | +#pragma GCC visibility push(default) | ||
199 | +#include <string.h> | ||
200 | +#pragma GCC visibility pop | ||
201 | + | ||
202 | +__attribute__ ((visibility ("default"))) void Func() { | ||
203 | + char c[[100]]; | ||
204 | + memset(c, 0, sizeof(c)); | ||
205 | +} | ||
206 | +EOF | ||
207 | + ac_cv_have_visibility_builtin_bug=no | ||
208 | + if ! ${CC-cc} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -o conftest.so conftest.c >/dev/null 2>&1; then | ||
209 | + ac_cv_have_visibility_builtin_bug=yes | ||
210 | + fi | ||
211 | + rm -f conftest.{c,so} | ||
212 | + ]) | ||
213 | + if test "$ac_cv_have_visibility_builtin_bug" = "no"; then | ||
214 | + VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h' | ||
215 | + WRAP_SYSTEM_INCLUDES=1 | ||
216 | + else | ||
217 | + VISIBILITY_FLAGS='-fvisibility=hidden -fvisibility-inlines-hidden' | ||
218 | + fi # have visibility pragma bug | ||
219 | + fi # have visibility pragma | ||
220 | + fi # have visibility(default) attribute | ||
221 | + fi # have visibility(hidden) attribute | ||
222 | +fi # GNU_CC | ||
223 | |||
224 | AC_SUBST(WRAP_SYSTEM_INCLUDES) | ||
225 | AC_SUBST(VISIBILITY_FLAGS) | ||
226 | diff -Nur mozilla/js/src/jstypes.h mozilla.bug307168/js/src/jstypes.h | ||
227 | --- mozilla/js/src/jstypes.h 2005-09-18 04:35:05.000000000 +0000 | ||
228 | +++ mozilla.bug307168/js/src/jstypes.h 2005-12-06 16:35:57.000000000 +0000 | ||
229 | @@ -109,7 +109,7 @@ | ||
230 | |||
231 | #else /* Unix */ | ||
232 | |||
233 | -#ifdef HAVE_VISIBILITY_PRAGMA | ||
234 | +#ifdef HAVE_VISIBILITY_ATTRIBUTE | ||
235 | #define JS_EXTERNAL_VIS __attribute__((visibility ("default"))) | ||
236 | #else | ||
237 | #define JS_EXTERNAL_VIS | ||
238 | diff -Nur mozilla/modules/libreg/include/NSReg.h mozilla.bug307168/modules/libreg/include/NSReg.h | ||
239 | --- mozilla/modules/libreg/include/NSReg.h 2004-12-15 05:52:38.000000000 +0000 | ||
240 | +++ mozilla.bug307168/modules/libreg/include/NSReg.h 2005-12-06 16:35:57.000000000 +0000 | ||
241 | @@ -129,7 +129,7 @@ | ||
242 | #endif | ||
243 | #elif defined XP_MAC | ||
244 | #define VR_INTERFACE(__x) __declspec(export) __x | ||
245 | -#elif defined (HAVE_VISIBILITY_PRAGMA) | ||
246 | +#elif defined (HAVE_VISIBILITY_ATTRIBUTE) | ||
247 | #define VR_INTERFACE(type) __attribute__ ((visibility ("default"))) type | ||
248 | #else | ||
249 | #define VR_INTERFACE(type) type | ||
250 | diff -Nur mozilla/modules/zlib/src/mozzconf.h mozilla.bug307168/modules/zlib/src/mozzconf.h | ||
251 | --- mozilla/modules/zlib/src/mozzconf.h 2005-08-04 19:14:14.000000000 +0000 | ||
252 | +++ mozilla.bug307168/modules/zlib/src/mozzconf.h 2005-12-06 16:35:57.000000000 +0000 | ||
253 | @@ -41,7 +41,7 @@ | ||
254 | #undef ZLIB_DLL | ||
255 | #endif | ||
256 | |||
257 | -#ifdef HAVE_VISIBILITY_PRAGMA | ||
258 | +#ifdef HAVE_VISIBILITY_ATTRIBUTE | ||
259 | #define ZEXTERN __attribute__((visibility ("default"))) extern | ||
260 | #endif | ||
261 | |||
262 | diff -Nur mozilla/xpcom/base/nscore.h mozilla.bug307168/xpcom/base/nscore.h | ||
263 | --- mozilla/xpcom/base/nscore.h 2005-07-21 22:15:00.000000000 +0000 | ||
264 | +++ mozilla.bug307168/xpcom/base/nscore.h 2005-12-06 16:35:57.000000000 +0000 | ||
265 | @@ -105,7 +105,7 @@ | ||
266 | #define NS_VISIBILITY_HIDDEN | ||
267 | #endif | ||
268 | |||
269 | -#if defined(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE) && defined(HAVE_VISIBILITY_PRAGMA) | ||
270 | +#if defined(HAVE_VISIBILITY_ATTRIBUTE) | ||
271 | #define NS_VISIBILITY_DEFAULT __attribute__ ((visibility ("default"))) | ||
272 | #else | ||
273 | #define NS_VISIBILITY_DEFAULT |