Contents of /trunk/mozilla-thunderbird/patches/mozilla-firefox-1.5.0.4-visibility-pragma.patch
Parent Directory | Revision Log
Revision 153 -
(show 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 | 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 |