~ubuntu-branches/debian/sid/gcc-4.8/sid

« back to all changes in this revision

Viewing changes to .svn/pristine/03/035ce5d7cf76a761217065cb02b75ecae01283f1.svn-base

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2014-12-19 19:48:34 UTC
  • Revision ID: package-import@ubuntu.com-20141219194834-4dz1q7rrn5pad823
Tags: 4.8.4-1
* GCC 4.8.4 release.
  - Fix PR target/61407 (darwin), PR middle-end/58624 (ice),
    PR sanitizer/64265 (wrong code).
* Require recent binutils to pass go test failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
ifeq ($(with_libgcc),yes)
 
2
  $(lib_binaries)       += libgcc
 
3
endif
 
4
ifeq ($(with_cdev),yes)
 
5
  $(lib_binaries)  += libgcc-dev
 
6
endif
 
7
 
 
8
ifeq ($(with_lib64gcc),yes)
 
9
  $(lib_binaries)       += lib64gcc
 
10
endif
 
11
ifeq ($(with_lib64gccdev),yes)
 
12
  $(lib_binaries)  += lib64gcc-dev
 
13
endif
 
14
ifeq ($(with_lib32gcc),yes)
 
15
  $(lib_binaries)       += lib32gcc
 
16
endif
 
17
ifeq ($(with_lib32gccdev),yes)
 
18
  $(lib_binaries)  += lib32gcc-dev
 
19
endif
 
20
ifeq ($(with_libn32gcc),yes)
 
21
  $(lib_binaries)       += libn32gcc
 
22
endif
 
23
ifeq ($(with_libn32gccdev),yes)
 
24
  $(lib_binaries)  += libn32gcc-dev
 
25
endif
 
26
ifeq ($(with_libx32gcc),yes)
 
27
  $(lib_binaries)       += libx32gcc
 
28
endif
 
29
ifeq ($(with_libx32gccdev),yes)
 
30
  $(lib_binaries)  += libx32gcc-dev
 
31
endif
 
32
ifeq ($(with_libhfgcc),yes)
 
33
  $(lib_binaries)       += libhfgcc
 
34
endif
 
35
ifeq ($(with_libhfgccdev),yes)
 
36
  $(lib_binaries)  += libhfgcc-dev
 
37
endif
 
38
ifeq ($(with_libsfgcc),yes)
 
39
  $(lib_binaries)       += libsfgcc
 
40
endif
 
41
ifeq ($(with_libsfgccdev),yes)
 
42
  $(lib_binaries)  += libsfgcc-dev
 
43
endif
 
44
 
 
45
header_files = \
 
46
        $(gcc_lib_dir)/include/std*.h \
 
47
        $(shell for h in \
 
48
                    README features.h arm_neon.h loongson.h \
 
49
                    {cpuid,decfloat,float,iso646,limits,mm3dnow,mm_malloc}.h \
 
50
                    {ppu_intrinsics,paired,spu2vmx,vec_types,si2vmx}.h \
 
51
                    {,a,b,e,i,n,p,s,t,w,x}mmintrin.h mmintrin-common.h \
 
52
                    {abm,adx,avx,avx2,bmi,bmi2,f16c,fma,fma4,fxsr,ia32,}intrin.h \
 
53
                    {lwp,lzcnt,popcnt,prfchw,rdseed,rtm,tbm,x86,xop,xsave{,opt},xtest,}intrin.h \
 
54
                    {cross-stdarg,syslimits,unwind,unwind-arm-common,varargs}.h; \
 
55
                do \
 
56
                  test -e $(d)/$(gcc_lib_dir)/include/$$h \
 
57
                    && echo $(gcc_lib_dir)/include/$$h; \
 
58
                  test -e $(d)/$(gcc_lib_dir)/include-fixed/$$h \
 
59
                    && echo $(gcc_lib_dir)/include-fixed/$$h; \
 
60
                done) \
 
61
        $(shell for d in \
 
62
                  asm bits gnu linux $(TARGET_ALIAS) \
 
63
                  $(subst $(DEB_TARGET_GNU_CPU),$(biarch_cpu),$(TARGET_ALIAS)); \
 
64
                do \
 
65
                  test -e $(d)/$(gcc_lib_dir)/include/$$d \
 
66
                    && echo $(gcc_lib_dir)/include/$$d; \
 
67
                  test -e $(d)/$(gcc_lib_dir)/include-fixed/$$d \
 
68
                    && echo $(gcc_lib_dir)/include-fixed/$$d; \
 
69
                done)
 
70
 
 
71
ifeq ($(with_libssp),yes)
 
72
    header_files += $(gcc_lib_dir)/include/ssp
 
73
endif
 
74
ifeq ($(with_gomp),yes)
 
75
    header_files += $(gcc_lib_dir)/include/omp.h
 
76
endif
 
77
ifeq ($(with_qmath),yes)
 
78
    header_files += $(gcc_lib_dir)/include/quadmath{,_weak}.h
 
79
endif
 
80
 
 
81
ifeq ($(DEB_TARGET_ARCH),ia64)
 
82
    header_files += $(gcc_lib_dir)/include/ia64intrin.h
 
83
endif
 
84
 
 
85
ifeq ($(DEB_TARGET_ARCH),m68k)
 
86
    header_files += $(gcc_lib_dir)/include/math-68881.h
 
87
endif
 
88
 
 
89
ifeq ($(DEB_TARGET_ARCH),$(findstring $(DEB_TARGET_ARCH),powerpc ppc64 powerpcspe))
 
90
    header_files += $(gcc_lib_dir)/include/{altivec.h,ppc-asm.h,spe.h}
 
91
endif
 
92
 
 
93
p_lgcc          = libgcc$(GCC_SONAME)$(cross_lib_arch)
 
94
p_lgccdbg       = libgcc$(GCC_SONAME)-dbg$(cross_lib_arch)
 
95
p_lgccdev       = libgcc-$(BASE_VERSION)-dev$(cross_lib_arch)
 
96
d_lgcc          = debian/$(p_lgcc)
 
97
d_lgccdbg       = debian/$(p_lgccdbg)
 
98
d_lgccdev       = debian/$(p_lgccdev)
 
99
 
 
100
p_l32gcc        = lib32gcc$(GCC_SONAME)$(cross_lib_arch)
 
101
p_l32gccdbg     = lib32gcc$(GCC_SONAME)-dbg$(cross_lib_arch)
 
102
p_l32gccdev     = lib32gcc-$(BASE_VERSION)-dev$(cross_lib_arch)
 
103
d_l32gcc        = debian/$(p_l32gcc)
 
104
d_l32gccdbg     = debian/$(p_l32gccdbg)
 
105
d_l32gccdev     = debian/$(p_l32gccdev)
 
106
 
 
107
p_l64gcc        = lib64gcc$(GCC_SONAME)$(cross_lib_arch)
 
108
p_l64gccdbg     = lib64gcc$(GCC_SONAME)-dbg$(cross_lib_arch)
 
109
p_l64gccdev     = lib64gcc-$(BASE_VERSION)-dev$(cross_lib_arch)
 
110
d_l64gcc        = debian/$(p_l64gcc)
 
111
d_l64gccdbg     = debian/$(p_l64gccdbg)
 
112
d_l64gccdev     = debian/$(p_l64gccdev)
 
113
 
 
114
p_ln32gcc       = libn32gcc$(GCC_SONAME)$(cross_lib_arch)
 
115
p_ln32gccdbg    = libn32gcc$(GCC_SONAME)-dbg$(cross_lib_arch)
 
116
p_ln32gccdev    = libn32gcc-$(BASE_VERSION)-dev$(cross_lib_arch)
 
117
d_ln32gcc       = debian/$(p_ln32gcc)
 
118
d_ln32gccdbg    = debian/$(p_ln32gccdbg)
 
119
d_ln32gccdev    = debian/$(p_ln32gccdev)
 
120
 
 
121
p_lx32gcc       = libx32gcc$(GCC_SONAME)$(cross_lib_arch)
 
122
p_lx32gccdbg    = libx32gcc$(GCC_SONAME)-dbg$(cross_lib_arch)
 
123
p_lx32gccdev    = libx32gcc-$(BASE_VERSION)-dev$(cross_lib_arch)
 
124
d_lx32gcc       = debian/$(p_lx32gcc)
 
125
d_lx32gccdbg    = debian/$(p_lx32gccdbg)
 
126
d_lx32gccdev    = debian/$(p_lx32gccdev)
 
127
 
 
128
p_lhfgcc        = libhfgcc$(GCC_SONAME)$(cross_lib_arch)
 
129
p_lhfgccdbg     = libhfgcc$(GCC_SONAME)-dbg$(cross_lib_arch)
 
130
p_lhfgccdev     = libhfgcc-$(BASE_VERSION)-dev$(cross_lib_arch)
 
131
d_lhfgcc        = debian/$(p_lhfgcc)
 
132
d_lhfgccdbg     = debian/$(p_lhfgccdbg)
 
133
d_lhfgccdev     = debian/$(p_lhfgccdev)
 
134
 
 
135
p_lsfgcc        = libsfgcc$(GCC_SONAME)$(cross_lib_arch)
 
136
p_lsfgccdbg     = libsfgcc$(GCC_SONAME)-dbg$(cross_lib_arch)
 
137
p_lsfgccdev     = libsfgcc-$(BASE_VERSION)-dev$(cross_lib_arch)
 
138
d_lsfgcc        = debian/$(p_lsfgcc)
 
139
d_lsfgccdbg     = debian/$(p_lsfgccdbg)
 
140
d_lsfgccdev     = debian/$(p_lsfgccdev)
 
141
 
 
142
# __do_gcc_devels(flavour,package,todir,fromdir)
 
143
define __do_gcc_devels
 
144
        dh_testdir
 
145
        dh_testroot
 
146
        mv $(install_stamp) $(install_stamp)-tmp
 
147
 
 
148
        test -n "$(2)"
 
149
        rm -rf debian/$(2)
 
150
        dh_installdirs -p$(2) $(docdir) #TODO
 
151
        dh_installdirs -p$(2) $(3)
 
152
 
 
153
        $(call __do_gcc_devels2,$(1),$(2),$(3),$(4))
 
154
 
 
155
        debian/dh_doclink -p$(2) $(p_base)
 
156
        debian/dh_rmemptydirs -p$(2)
 
157
 
 
158
        dh_strip -p$(2)
 
159
        dh_compress -p$(2)
 
160
        $(cross_shlibdeps) dh_shlibdeps -p$(2)
 
161
        $(call cross_mangle_substvars,$(2))
 
162
        dh_fixperms -p$(2)
 
163
        dh_installdeb -p$(2)
 
164
        $(cross_gencontrol) dh_gencontrol -p$(2) -- -v$(DEB_VERSION) $(common_substvars)
 
165
        $(call cross_mangle_control,$(2))
 
166
        dh_md5sums -p$(2)
 
167
        dh_builddeb -p$(2)
 
168
 
 
169
        trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
 
170
endef
 
171
 
 
172
# __do_gcc_devels2(flavour,package,todir,fromdir)
 
173
define __do_gcc_devels2
 
174
# stage1 builds static libgcc only
 
175
        $(if $(filter $(DEB_STAGE),stage1),,
 
176
                : # libgcc_s.so may be a linker script on some architectures
 
177
                set -e; \
 
178
                if [ -h $(4)/libgcc_s.so ]; then \
 
179
                  rm -f $(4)/libgcc_s.so; \
 
180
                  dh_link -p$(2) /$(libgcc_dir$(1))/libgcc_s.so.$(GCC_SONAME) \
 
181
                    $(3)/libgcc_s.so; \
 
182
                else \
 
183
                  mv $(4)/libgcc_s.so $(d)/$(3)/libgcc_s.so; \
 
184
                  dh_link -p$(2) /$(libgcc_dir$(1))/libgcc_s.so.$(GCC_SONAME) \
 
185
                    $(3)/libgcc_s.so.$(GCC_SONAME); \
 
186
                fi; \
 
187
                $(if $(1), dh_link -p$(2) /$(3)/libgcc_s.so \
 
188
                    $(gcc_lib_dir)/libgcc_s_$(1).so;)
 
189
        )
 
190
        DH_COMPAT=2 dh_movefiles -p$(2) \
 
191
                $(3)/{libgcc*,libgcov.a,*.o} \
 
192
                $(if $(1),,$(header_files)) # Only move headers for the “main” package
 
193
 
 
194
        : # libbacktrace not installed by default
 
195
        $(if $(filter yes, $(with_backtrace)),
 
196
        if [ -f $(buildlibdir)/$(1)/libbacktrace/.libs/libbacktrace.a ]; then \
 
197
          install -m644 $(buildlibdir)/$(1)/libbacktrace/.libs/libbacktrace.a \
 
198
              debian/$(2)/$(gcc_lib_dir)/$(1); \
 
199
        fi; \
 
200
        $(if $(1),,
 
201
        if [ -f $(buildlibdir)/libbacktrace/backtrace-supported.h ]; then \
 
202
          install -m644 $(buildlibdir)/libbacktrace/backtrace-supported.h \
 
203
            debian/$(2)/$(gcc_lib_dir)/include/; \
 
204
          install -m644 $(srcdir)/libbacktrace/backtrace.h \
 
205
            debian/$(2)/$(gcc_lib_dir)/include/; \
 
206
        fi
 
207
        ))
 
208
 
 
209
        : # If building a flavour, add a lintian override
 
210
        $(if $(1),
 
211
                #TODO: use a file instead of a hacky echo
 
212
                # bu do we want to use one override file (in the source package) per
 
213
                # flavour or not since they are essentially the same?
 
214
                mkdir -p debian/$(2)/usr/share/lintian/overrides
 
215
                echo "$(2) binary: binary-from-other-architecture" \
 
216
                        >> debian/$(2)/usr/share/lintian/overrides/$(2)
 
217
        )
 
218
        $(if $(filter yes, $(with_lib$(1)gmath)),
 
219
                $(call install_gcc_lib,libgcc-math,$(GCC_SONAME),$(1),$(2))
 
220
        )
 
221
        $(if $(filter yes, $(with_libssp)),
 
222
                $(call install_gcc_lib,libssp,$(SSP_SONAME),$(1),$(2))
 
223
        )
 
224
        $(if $(filter yes, $(with_ssp)),
 
225
                mv $(4)/libssp_nonshared.a debian/$(2)/$(3)/;
 
226
        )
 
227
        $(if $(filter yes, $(with_gomp)),
 
228
                $(call install_gcc_lib,libgomp,$(GOMP_SONAME),$(1),$(2))
 
229
        )
 
230
        $(if $(filter yes, $(with_itm)),
 
231
                $(call install_gcc_lib,libitm,$(ITM_SONAME),$(1),$(2))
 
232
        )
 
233
        $(if $(filter yes, $(with_atomic)),
 
234
                $(call install_gcc_lib,libatomic,$(ATOMIC_SONAME),$(1),$(2))
 
235
        )
 
236
        $(if $(filter yes, $(with_asan)),
 
237
                $(call install_gcc_lib,libasan,$(ASAN_SONAME),$(1),$(2))
 
238
                mv $(4)/libasan_preinit.o debian/$(2)/$(3)/;
 
239
        )
 
240
        $(if $(1),,$(if $(filter yes, $(with_tsan)),
 
241
                $(call install_gcc_lib,libtsan,$(TSAN_SONAME),$(1),$(2))
 
242
        ))
 
243
        $(if $(filter yes, $(with_qmath)),
 
244
                $(call install_gcc_lib,libquadmath,$(QMATH_SONAME),$(1),$(2))
 
245
        )
 
246
endef
 
247
 
 
248
# do_gcc_devels(flavour)
 
249
define do_gcc_devels
 
250
        $(call __do_gcc_devels,$(1),$(p_l$(1)gccdev),$(gcc_lib_dir$(1)),$(d)/$(usr_lib$(1)))
 
251
endef
 
252
 
 
253
 
 
254
define __do_libgcc
 
255
        dh_testdir
 
256
        dh_testroot
 
257
        mv $(install_stamp) $(install_stamp)-tmp
 
258
 
 
259
        rm -rf $(d_l) $(d_d)
 
260
 
 
261
        dh_installdirs -p$(p_l) \
 
262
                $(docdir)/$(p_l) \
 
263
                $(libgcc_dir$(2))
 
264
 
 
265
        $(if $(filter yes,$(with_shared_libgcc)),
 
266
                mv $(d)/$(usr_lib$(2))/libgcc_s.so.$(GCC_SONAME) \
 
267
                        $(d_l)/$(libgcc_dir$(2))/.
 
268
        )
 
269
 
 
270
        debian/dh_doclink -p$(p_l) $(if $(3),$(3),$(p_base))
 
271
        debian/dh_doclink -p$(p_d) $(if $(3),$(3),$(p_base))
 
272
        debian/dh_rmemptydirs -p$(p_l)
 
273
        debian/dh_rmemptydirs -p$(p_d)
 
274
        dh_strip -p$(p_l) --dbg-package=$(p_d)
 
275
 
 
276
        # see Debian #533843 for the __aeabi symbol handling; this construct is
 
277
        # just to include the symbols for dpkg versions older than 1.15.3 which
 
278
        # didn't allow bypassing the symbol blacklist
 
279
        $(if $(filter yes,$(with_shared_libgcc)),
 
280
                $(cross_makeshlibs) dh_makeshlibs -p$(p_l) -p$(p_d) \
 
281
                        -- -v$(DEB_LIBGCC_VERSION)
 
282
                $(call cross_mangle_shlibs,$(p_l))
 
283
                $(if $(filter arm-linux-gnueabi%,$(DEB_TARGET_GNU_TYPE)),
 
284
                        if head -1 $(d_l)/DEBIAN/symbols 2>/dev/null | grep -q '^lib'; then \
 
285
                          grep -q '^ __aeabi' $(d_l)/DEBIAN/symbols \
 
286
                            || cat debian/libgcc1.symbols.aeabi \
 
287
                                >> $(d_l)/DEBIAN/symbols; \
 
288
                        fi
 
289
                )
 
290
        )
 
291
 
 
292
        $(if $(DEB_STAGE),,
 
293
            DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \
 
294
                $(call shlibdirs_to_search,,$(2))
 
295
        )
 
296
        $(call cross_mangle_substvars,$(p_l))
 
297
 
 
298
        $(if $(2),,     # only for native
 
299
                mkdir -p $(d_l)/usr/share/lintian/overrides
 
300
                echo '$(p_l): package-name-doesnt-match-sonames' \
 
301
                        > $(d_l)/usr/share/lintian/overrides/$(p_l)
 
302
        )
 
303
 
 
304
        dh_compress -p$(p_l) -p$(p_d)
 
305
        dh_fixperms -p$(p_l) -p$(p_d)
 
306
        $(cross_gencontrol) dh_gencontrol -p$(p_l) -p$(p_d) \
 
307
                -- -v$(DEB_LIBGCC_VERSION) $(common_substvars)
 
308
        $(call cross_mangle_control,$(p_l))
 
309
 
 
310
        dh_installdeb -p$(p_l) -p$(p_d)
 
311
        dh_md5sums -p$(p_l) -p$(p_d)
 
312
        dh_builddeb -p$(p_l) -p$(p_d)
 
313
 
 
314
        trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
 
315
endef
 
316
 
 
317
do_libgcc = $(call __do_libgcc,lib$(1)gcc$(GCC_SONAME),$(1),$(2))
 
318
# ----------------------------------------------------------------------
 
319
 
 
320
$(binary_stamp)-libgcc: $(install_dependencies)
 
321
ifeq ($(with_standalone_gcj),yes)
 
322
        $(call do_libgcc,,$(p_jbase))
 
323
else
 
324
        $(call do_libgcc,,)
 
325
endif
 
326
 
 
327
$(binary_stamp)-lib64gcc: $(install_dependencies)
 
328
        $(call do_libgcc,64,)
 
329
 
 
330
$(binary_stamp)-lib32gcc: $(install_dependencies)
 
331
        $(call do_libgcc,32,)
 
332
 
 
333
$(binary_stamp)-libn32gcc: $(install_dependencies)
 
334
        $(call do_libgcc,n32,)
 
335
 
 
336
$(binary_stamp)-libx32gcc: $(install_dependencies)
 
337
        $(call do_libgcc,x32,)
 
338
 
 
339
$(binary_stamp)-libhfgcc: $(install_dependencies)
 
340
        $(call do_libgcc,hf)
 
341
 
 
342
$(binary_stamp)-libsfgcc: $(install_dependencies)
 
343
        $(call do_libgcc,sf)
 
344
 
 
345
$(binary_stamp)-libgcc-dev: $(install_dependencies)
 
346
        $(call do_gcc_devels,)
 
347
 
 
348
$(binary_stamp)-lib64gcc-dev: $(install_dependencies)
 
349
        $(call do_gcc_devels,64)
 
350
 
 
351
$(binary_stamp)-lib32gcc-dev: $(install_dependencies)
 
352
        $(call do_gcc_devels,32)
 
353
 
 
354
$(binary_stamp)-libn32gcc-dev: $(install_dependencies)
 
355
        $(call do_gcc_devels,n32)
 
356
 
 
357
$(binary_stamp)-libx32gcc-dev: $(install_dependencies)
 
358
        $(call do_gcc_devels,x32)
 
359
 
 
360
$(binary_stamp)-libhfgcc-dev: $(install_dependencies)
 
361
        $(call do_gcc_devels,hf)
 
362
 
 
363
$(binary_stamp)-libsfgcc-dev: $(install_dependencies)
 
364
        $(call do_gcc_devels,sf)
 
365