1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
7 SDESC[standard]= GNU Compiler collection (GCC), Series 7
8 HOMEPAGE= https://gcc.gnu.org/
9 CONTACT= John_Marino[draco@marino.st]
12 SITES[main]= GCC/releases/gcc-7.2.0
13 DISTFILE[1]= gcc-7.2.0.tar.xz:main
15 SPKGS[standard]= complete
23 OPTIONS_AVAILABLE= none
24 OPTIONS_STANDARD= none
26 BUILD_DEPENDS= gmp:static:standard
30 BUILDRUN_DEPENDS= binutils:single:ravensys
31 EXRUN[fortran_run]= gcc7:libs:standard
32 EXRUN[cxx_run]= gcc7:libs:standard
33 EXRUN[compilers]= gcc7:cxx_run:standard
34 EXRUN[ada_run]= gcc7:libs:standard
36 USES= cpe gmake iconv:build libtool makeinfo perl:build
40 LICENSE= GPLv2+:compilers LGPL21:compilers GPLv3+:compilers
41 LGPL3:compilers GPLv3RLE:compilers
43 LICENSE_FILE= GPLv2+:{{WRKSRC}}/COPYING
44 LGPL21:{{WRKSRC}}/COPYING.LIB
45 GPLv3+:{{WRKSRC}}/COPYING3
46 LGPL3:{{WRKSRC}}/COPYING3.LIB
47 GPLv3RLE:{{WRKSRC}}/COPYING.RUNTIME
49 PREFIX= {{LOCALBASE}}/toolchain/{{NAMEBASE}}
51 infopages:cppinternals
66 CONFIGURE_OUTSOURCE= yes
67 CONFIGURE_ARGS= --enable-languages="c,c++,ada,fortran"
68 --with-local-prefix={{LOCALBASE}}
70 --with-gmp={{LOCALBASE}}
71 --with-mpc={{LOCALBASE}}
72 --with-mpfr={{LOCALBASE}}
73 {{ICONV_CONFIGURE_ARG}}
75 --enable-threads=posix
76 --enable-checking=release
80 --disable-libsanitizer
85 --with-as={{LOCALBASE}}/toolchain/bin/as
86 --with-pkgversion="Ravenports"
88 INSTALL_TARGET= install-strip
89 PLIST_SUB= GCCVER=7.2.0
90 TARGET={{CONFIGURE_TARGET}}
92 VAR_OPSYS[freebsd]= CONFIGURE_ARGS=--disable-libstdcxx-pch
93 CONFIGURE_ARGS=--with-ld={{LOCALBASE}}/toolchain/bin/ld
94 VAR_OPSYS[sunos]= CONFIGURE_ARGS=--without-gnu-ld
95 CONFIGURE_ARGS=--with-ld={{LOCALBASE}}/toolchain/bin/ld.sun
96 CONFIGURE_ENV=LD=ld.sun
97 VAR_OPSYS[linux]= CONFIGURE_ARGS=--with-ld={{LOCALBASE}}/toolchain/bin/ld
98 VAR_OPSYS[dragonfly]= CONFIGURE_ARGS=--with-ld={{LOCALBASE}}/toolchain/bin/ld
101 # Update LINK_SPEC to add gcc-aux lib runpath in every binary
102 @${ECHO} "Configuring LINK_SPEC runpath"
103 @${REINPLACE_CMD} -e 's;\@PREFIX\@;${PREFIX:H};' \
104 -e 's;\@GCCAUX\@;${NAMEBASE};' \
105 ${WRKSRC}/gcc/config/dragonfly.h \
106 ${WRKSRC}/gcc/config/sol2.h \
107 ${WRKSRC}/gcc/config/i386/freebsd64.h \
108 ${WRKSRC}/gcc/config/i386/freebsd.h \
109 ${WRKSRC}/gcc/config/i386/gnu-user64.h \
110 ${WRKSRC}/gcc/config/aarch64/aarch64-freebsd.h
111 # Ensure dwarf4-compatible addr2line
112 ${REINPLACE_CMD} -e 's|/usr/bin/addr2line|${PREFIX:H}/bin/addr2line|g'\
113 ${WRKSRC}/gcc/ada/traceback_symbolic.c
114 ${REINPLACE_CMD} -e 's|static:crtbeginT.o%s;||' \
115 ${WRKSRC}/gcc/config/freebsd-spec.h
117 post-install-freebsd:
118 ${RM} -r ${STAGEDIR}${PREFIX}/lib/gcc/${CONFIGURE_TARGET}/7.2.0/include-fixed
120 post-install-dragonfly:
121 ${RM} -r ${STAGEDIR}${PREFIX}/lib/gcc/${CONFIGURE_TARGET}/7.2.0/include-fixed
124 cp ${STAGEDIR}${PREFIX}/bin/gcc ${STAGEDIR}${PREFIX}/bin/cc
125 cp ${STAGEDIR}${PREFIX}/bin/g++ ${STAGEDIR}${PREFIX}/bin/CC
126 ${RM} ${STAGEDIR}${MANPREFIX}/man/man7/*
127 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/gcc/${CONFIGURE_TARGET}/7.2.0/adalib/libgnarl.so
128 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/gcc/${CONFIGURE_TARGET}/7.2.0/adalib/libgnat.so
131 ${REINPLACE_CMD} -e 's|cp -p -r |cp -RP |' \
132 ${WRKSRC}/gcc/Makefile.in
133 ${REINPLACE_CMD} -e 's| install-gcc-specs||' \
134 ${WRKSRC}/gcc/ada/gcc-interface/Makefile.in
136 [FILE:329:descriptions/desc.compilers]
137 This is series 6 of the GNU Compiler Collection (GCC)
139 This compiler supports the following languages: C, C++, Fortran and Ada.
140 The GNAT front-end implements the full Ada-83, Ada-95, Ada-2005 and
141 Ada-2012 standards. The C++ front-end defaults to the gnu++14 standard.
143 This package contains the compilers, drivers, and headers.
146 [FILE:104:descriptions/desc.ada_run]
147 This is series 6 of the GNU Compiler Collection (GCC)
149 This package contains the Ada runtime libraries.
152 [FILE:104:descriptions/desc.cxx_run]
153 This is series 6 of the GNU Compiler Collection (GCC)
155 This package contains the C++ runtime libraries.
158 [FILE:108:descriptions/desc.fortran_run]
159 This is series 6 of the GNU Compiler Collection (GCC)
161 This package contains the Fortran runtime libraries.
164 [FILE:162:descriptions/desc.libs]
165 This is series 6 of the GNU Compiler Collection (GCC)
167 This package contains the remaining runtime libraries after excluding
168 the Ada, C++, and Fortran libraries.
171 [FILE:126:descriptions/desc.infopages]
172 This is series 6 of the GNU Compiler Collection (GCC)
174 This package contains the man pages and info pages that come with GCC.
178 1cf7adf8ff4b5aa49041c8734bbcf1ad18cc4c94d0029aae0f4e48841088479a 62312628 gcc-7.2.0.tar.xz
181 [FILE:27477:manifests/plist.compilers]
182 %%ONLY-DRAGONFLY%%lib/gcc/%%TARGET%%/%%GCCVER%%/
185 %%ONLY-DRAGONFLY%%lib/gcc/%%TARGET%%/%%GCCVER%%/include/tgmath.h
186 %%ONLY-DRAGONFLY%%lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/config/
189 %%ONLY-DRAGONFLY%%lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/config/i386/dragonfly.h
190 %%ONLY-FREEBSD%%lib/gcc/%%TARGET%%/%%GCCVER%%/
193 %%ONLY-FREEBSD%%lib/gcc/%%TARGET%%/%%GCCVER%%/include/tgmath.h
194 %%ONLY-FREEBSD%%lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/config/
198 %%ONLY-FREEBSD%%lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/config/i386/
201 %%ONLY-LINUX%%lib/gcc/%%TARGET%%/%%GCCVER%%/
209 %%ONLY-LINUX%%lib/gcc/%%TARGET%%/%%GCCVER%%/include-fixed/
212 %%ONLY-LINUX%%lib/gcc/%%TARGET%%/%%GCCVER%%/include-fixed/linux/a.out.h
214 %%ONLY-LINUX%%lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/config/
217 %%ONLY-LINUX%%lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/config/i386/
222 %%ONLY-LINUX%%lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/config/
228 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/
234 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/include-fixed/
237 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/include-fixed/dat/dat_platform_specific.h
238 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/include-fixed/iso/
244 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/include-fixed/
246 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/include-fixed/mps/secport.h
247 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/include-fixed/netinet/
255 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/include-fixed/
259 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/include-fixed/sys/
264 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/include-fixed/
267 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/include/tgmath.h
268 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/config/i386/
271 %%ONLY-SUNOS%%lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/config/
277 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/cilk.h
278 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/cilk_api.h
279 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/cilk_api_linux.h
280 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/cilk_stub.h
281 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/cilk_undocumented.h
282 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/common.h
283 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/holder.h
284 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/hyperobject_base.h
285 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/metaprogramming.h
286 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer.h
287 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer_file.h
288 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer_list.h
289 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer_max.h
290 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer_min.h
291 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer_min_max.h
292 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer_opadd.h
293 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer_opand.h
294 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer_opmul.h
295 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer_opor.h
296 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer_opxor.h
297 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer_ostream.h
298 @comment lib/gcc/%%TARGET%%/%%GCCVER%%/include/cilk/reducer_string.h
303 %%TARGET%%-gcc-%%GCCVER%%
306 %%TARGET%%-gcc-ranlib
334 include/c++/%%GCCVER%%/%%TARGET%%/bits/
357 include/c++/%%GCCVER%%/%%TARGET%%/ext/opt_random.h
358 include/c++/%%GCCVER%%/
363 include/c++/%%GCCVER%%/backward/
372 include/c++/%%GCCVER%%/bits/
379 atomic_lockfree_defines.h
384 boost_concept_check.h
393 cxxabi_init_exception.h
395 enable_special_members.h
419 locale_facets_nonio.h
420 locale_facets_nonio.tcc
467 stl_iterator_base_funcs.h
468 stl_iterator_base_types.h
476 stl_raw_storage_iter.h
499 include/c++/%%GCCVER%%/
533 include/c++/%%GCCVER%%/debug/
553 safe_local_iterator.h
554 safe_local_iterator.tcc
557 safe_unordered_base.h
558 safe_unordered_container.h
559 safe_unordered_container.tcc
567 include/c++/%%GCCVER%%/decimal/
570 include/c++/%%GCCVER%%/
573 include/c++/%%GCCVER%%/experimental/
577 include/c++/%%GCCVER%%/experimental/bits/
586 include/c++/%%GCCVER%%/experimental/
614 include/c++/%%GCCVER%%/ext/
623 codecvt_specializations.h
638 include/c++/%%GCCVER%%/ext/pb_ds/
640 include/c++/%%GCCVER%%/ext/pb_ds/detail/bin_search_tree_/
642 constructors_destructor_fn_imps.hpp
648 iterators_fn_imps.hpp
651 policy_access_fn_imps.hpp
654 split_join_fn_imps.hpp
656 include/c++/%%GCCVER%%/ext/pb_ds/detail/binary_heap_/
659 constructors_destructor_fn_imps.hpp
667 iterators_fn_imps.hpp
668 point_const_iterator.hpp
669 policy_access_fn_imps.hpp
671 split_join_fn_imps.hpp
673 include/c++/%%GCCVER%%/ext/pb_ds/detail/binomial_heap_/
675 constructors_destructor_fn_imps.hpp
677 include/c++/%%GCCVER%%/ext/pb_ds/detail/binomial_heap_base_/
678 binomial_heap_base_.hpp
679 constructors_destructor_fn_imps.hpp
684 split_join_fn_imps.hpp
685 include/c++/%%GCCVER%%/ext/pb_ds/detail/branch_policy/
687 null_node_metadata.hpp
689 include/c++/%%GCCVER%%/ext/pb_ds/detail/cc_hash_table_map_/
692 cond_key_dtor_entry_dealtor.hpp
693 constructor_destructor_fn_imps.hpp
694 constructor_destructor_no_store_hash_fn_imps.hpp
695 constructor_destructor_store_hash_fn_imps.hpp
697 debug_no_store_hash_fn_imps.hpp
698 debug_store_hash_fn_imps.hpp
699 entry_list_fn_imps.hpp
701 erase_no_store_hash_fn_imps.hpp
702 erase_store_hash_fn_imps.hpp
704 find_store_hash_fn_imps.hpp
707 insert_no_store_hash_fn_imps.hpp
708 insert_store_hash_fn_imps.hpp
709 iterators_fn_imps.hpp
710 policy_access_fn_imps.hpp
712 resize_no_store_hash_fn_imps.hpp
713 resize_store_hash_fn_imps.hpp
716 include/c++/%%GCCVER%%/ext/pb_ds/detail/
718 container_base_dispatch.hpp
720 include/c++/%%GCCVER%%/ext/pb_ds/detail/eq_fn/
723 include/c++/%%GCCVER%%/ext/pb_ds/detail/gp_hash_table_map_/
724 constructor_destructor_fn_imps.hpp
725 constructor_destructor_no_store_hash_fn_imps.hpp
726 constructor_destructor_store_hash_fn_imps.hpp
728 debug_no_store_hash_fn_imps.hpp
729 debug_store_hash_fn_imps.hpp
731 erase_no_store_hash_fn_imps.hpp
732 erase_store_hash_fn_imps.hpp
734 find_no_store_hash_fn_imps.hpp
735 find_store_hash_fn_imps.hpp
739 insert_no_store_hash_fn_imps.hpp
740 insert_store_hash_fn_imps.hpp
742 policy_access_fn_imps.hpp
744 resize_no_store_hash_fn_imps.hpp
745 resize_store_hash_fn_imps.hpp
747 include/c++/%%GCCVER%%/ext/pb_ds/detail/hash_fn/
748 direct_mask_range_hashing_imp.hpp
749 direct_mod_range_hashing_imp.hpp
750 linear_probe_fn_imp.hpp
751 mask_based_range_hashing.hpp
752 mod_based_range_hashing.hpp
754 quadratic_probe_fn_imp.hpp
758 sample_range_hashing.hpp
759 sample_ranged_hash_fn.hpp
760 sample_ranged_probe_fn.hpp
761 include/c++/%%GCCVER%%/ext/pb_ds/detail/left_child_next_sibling_heap_/
763 constructors_destructor_fn_imps.hpp
768 iterators_fn_imps.hpp
769 left_child_next_sibling_heap_.hpp
771 point_const_iterator.hpp
772 policy_access_fn_imps.hpp
774 include/c++/%%GCCVER%%/ext/pb_ds/detail/list_update_map_/
775 constructor_destructor_fn_imps.hpp
777 entry_metadata_base.hpp
782 iterators_fn_imps.hpp
785 include/c++/%%GCCVER%%/ext/pb_ds/detail/list_update_policy/
786 lu_counter_metadata.hpp
787 sample_update_policy.hpp
788 include/c++/%%GCCVER%%/ext/pb_ds/detail/ov_tree_map_/
789 constructors_destructor_fn_imps.hpp
794 iterators_fn_imps.hpp
797 policy_access_fn_imps.hpp
798 split_join_fn_imps.hpp
800 include/c++/%%GCCVER%%/ext/pb_ds/detail/pairing_heap_/
801 constructors_destructor_fn_imps.hpp
807 split_join_fn_imps.hpp
808 include/c++/%%GCCVER%%/ext/pb_ds/detail/pat_trie_/
809 constructors_destructor_fn_imps.hpp
814 insert_join_fn_imps.hpp
815 iterators_fn_imps.hpp
818 policy_access_fn_imps.hpp
822 synth_access_traits.hpp
826 include/c++/%%GCCVER%%/ext/pb_ds/detail/
827 priority_queue_base_dispatch.hpp
828 include/c++/%%GCCVER%%/ext/pb_ds/detail/rb_tree_map_/
829 constructors_destructor_fn_imps.hpp
837 split_join_fn_imps.hpp
839 include/c++/%%GCCVER%%/ext/pb_ds/detail/rc_binomial_heap_/
840 constructors_destructor_fn_imps.hpp
845 rc_binomial_heap_.hpp
846 split_join_fn_imps.hpp
848 include/c++/%%GCCVER%%/ext/pb_ds/detail/resize_policy/
849 cc_hash_max_collision_check_resize_trigger_imp.hpp
850 hash_exponential_size_policy_imp.hpp
851 hash_load_check_resize_trigger_imp.hpp
852 hash_load_check_resize_trigger_size_base.hpp
853 hash_prime_size_policy_imp.hpp
854 hash_standard_resize_policy_imp.hpp
855 sample_resize_policy.hpp
856 sample_resize_trigger.hpp
857 sample_size_policy.hpp
858 include/c++/%%GCCVER%%/ext/pb_ds/detail/splay_tree_/
859 constructors_destructor_fn_imps.hpp
868 split_join_fn_imps.hpp
870 include/c++/%%GCCVER%%/ext/pb_ds/detail/
871 standard_policies.hpp
872 include/c++/%%GCCVER%%/ext/pb_ds/detail/thin_heap_/
873 constructors_destructor_fn_imps.hpp
878 split_join_fn_imps.hpp
881 include/c++/%%GCCVER%%/ext/pb_ds/detail/tree_policy/
882 node_metadata_selector.hpp
883 order_statistics_imp.hpp
884 sample_tree_node_update.hpp
885 include/c++/%%GCCVER%%/ext/pb_ds/detail/
887 include/c++/%%GCCVER%%/ext/pb_ds/detail/trie_policy/
888 node_metadata_selector.hpp
889 order_statistics_imp.hpp
890 prefix_search_node_update_imp.hpp
891 sample_trie_access_traits.hpp
892 sample_trie_node_update.hpp
894 trie_string_access_traits_imp.hpp
895 include/c++/%%GCCVER%%/ext/pb_ds/detail/
898 include/c++/%%GCCVER%%/ext/pb_ds/detail/unordered_iterator/
901 point_const_iterator.hpp
903 include/c++/%%GCCVER%%/ext/pb_ds/
906 list_update_policy.hpp
911 include/c++/%%GCCVER%%/ext/
933 include/c++/%%GCCVER%%/
957 include/c++/%%GCCVER%%/parallel/
967 compiletime_settings.h
1001 include/c++/%%GCCVER%%/profile/
1007 include/c++/%%GCCVER%%/profile/impl/
1010 profiler_container_size.h
1011 profiler_hash_func.h
1012 profiler_hashtable_size.h
1013 profiler_list_to_slist.h
1014 profiler_list_to_vector.h
1015 profiler_map_to_unordered_map.h
1019 profiler_vector_size.h
1020 profiler_vector_to_list.h
1021 include/c++/%%GCCVER%%/profile/
1035 include/c++/%%GCCVER%%/
1053 include/c++/%%GCCVER%%/tr1/
1087 legendre_function.tcc
1091 modified_bessel_func.tcc
1100 special_function_util.h
1116 include/c++/%%GCCVER%%/tr2/
1123 include/c++/%%GCCVER%%/
1134 lib/gcc/%%TARGET%%/%%GCCVER%%/
1137 lib/gcc/%%TARGET%%/%%GCCVER%%/finclude/
1149 lib/gcc/%%TARGET%%/%%GCCVER%%/include/
1153 avx5124fmapsintrin.h
1154 avx5124vnniwintrin.h
1161 avx512ifmavlintrin.h
1164 avx512vbmivlintrin.h
1168 avx512vpopcntdqintrin.h
1208 lib/gcc/%%TARGET%%/%%GCCVER%%/include/ssp/
1213 lib/gcc/%%TARGET%%/%%GCCVER%%/include/
1236 lib/gcc/%%TARGET%%/%%GCCVER%%/install-tools/
1239 lib/gcc/%%TARGET%%/%%GCCVER%%/install-tools/include/
1242 lib/gcc/%%TARGET%%/%%GCCVER%%/install-tools/
1245 lib/gcc/%%TARGET%%/%%GCCVER%%/
1250 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/
1252 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/ada/gcc-interface/ada-tree.def
1253 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/
1274 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/c-family/
1280 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/
1305 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/config/
1308 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/config/i386/
1318 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/config/
1321 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/
1327 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/cp/
1333 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/
1397 gimple-pretty-print.h
1422 highlev-plugin-common.h
1478 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/include/objc/objc-tree.def
1561 substring-locations.h
1568 target-hooks-macros.h
1606 tree-scalar-evolution.h
1613 tree-ssa-loop-ivopts.h
1614 tree-ssa-loop-manip.h
1615 tree-ssa-loop-niter.h
1618 tree-ssa-propagate.h
1620 tree-ssa-scopedtables.h
1622 tree-ssa-threadbackward.h
1623 tree-ssa-threadedge.h
1624 tree-ssa-threadupdate.h
1650 lib/gcc/%%TARGET%%/%%GCCVER%%/plugin/
1653 libcc1plugin.so.0.0.0
1656 libcp1plugin.so.0.0.0
1657 libexec/gcc/%%TARGET%%/%%GCCVER%%/
1663 libexec/gcc/%%TARGET%%/%%GCCVER%%/install-tools/
1668 libexec/gcc/%%TARGET%%/%%GCCVER%%/
1671 liblto_plugin.so.0.0.0
1674 libexec/gcc/%%TARGET%%/%%GCCVER%%/plugin/gengtype
1677 [FILE:27199:manifests/plist.ada_run]
1678 %%ONLY-LINUX%%lib/gcc/%%TARGET%%/%%GCCVER%%/adainclude/
1681 %%ONLY-LINUX%%lib/gcc/%%TARGET%%/%%GCCVER%%/adalib/
1684 lib/gcc/%%TARGET%%/%%GCCVER%%/adainclude/
2930 lib/gcc/%%TARGET%%/%%GCCVER%%/adalib/
3625 [FILE:262:manifests/plist.cxx_run]
3631 libstdc++.so.6.0.24-gdb.py
3634 share/gcc-%%GCCVER%%/python/libstdcxx/__init__.py
3635 share/gcc-%%GCCVER%%/python/libstdcxx/v6/
3641 [FILE:240:manifests/plist.fortran_run]
3646 libgfortran.so.4.0.0
3656 libquadmath.so.0.0.0
3659 [FILE:452:manifests/plist.libs]
3668 @comment %%ASLIB%%/libcilkrts.a
3669 @comment %%ASLIB%%/libcilkrts.so
3670 @comment %%ASLIB%%/libcilkrts.so.5
3671 @comment %%ASLIB%%/libcilkrts.so.5.0.0
3672 @comment %%ASLIB%%/libcilkrts.spec
3687 [FILE:104:manifests/plist.infopages]
3698 [FILE:39877:patches/patch-diff-ada]
3699 --- gcc/ada/adaint.c.orig
3700 +++ gcc/ada/adaint.c
3701 @@ -1174,6 +1174,47 @@
3705 +#elif defined (__ANDROID__)
3708 + * ext2 /ext3/ext4/fat16/fat32 have no path limits
3709 + * /data/local/tmp normally requires rooted devices, if it even exists
3710 + * /sdcard is the standard location for external storage. Nativeactivity
3711 + * manifest needs to authorize its use, otherwise it might not have the
3712 + * proper permissions.
3716 + char *datadir = getenv ("ANDROID_DATA");
3718 + if (datadir == NULL)
3719 + strncpy (tmp_filename, "/data/local/tmp/gnat-XXXXXX", L_tmpnam);
3721 + snprintf (tmp_filename, L_tmpnam, "%s/local/tmp/gnat-XXXXXX", datadir);
3723 + testfd = mkstemp (tmp_filename);
3730 + char *sdcard = getenv ("EXTERNAL_STORAGE");
3732 + if (sdcard == NULL)
3733 + strncpy (tmp_filename, "/sdcard/gnat-XXXXXX", L_tmpnam);
3735 + snprintf (tmp_filename, L_tmpnam, "%s/gnat-XXXXXX", sdcard);
3737 + testfd = mkstemp (tmp_filename);
3744 + tmpnam (tmp_filename);
3746 #elif defined (__linux__) || defined (__FreeBSD__) || defined (__NetBSD__) \
3747 || defined (__OpenBSD__) || defined (__GLIBC__) || defined (__ANDROID__) \
3748 || defined (__DragonFly__)
3749 @@ -1460,7 +1501,7 @@
3750 utimbuf.modtime = time_stamp;
3752 /* Set access time to now in local time. */
3753 - t = time ((time_t) 0);
3755 utimbuf.actime = mktime (localtime (&t));
3757 utime (name, &utimbuf);
3758 --- gcc/ada/cio.c.orig
3762 /* Don't use macros on GNU/Linux since they cause incompatible changes between
3763 glibc 2.0 and 2.1 */
3765 +#if defined __linux__ && !defined __ANDROID__
3769 --- gcc/ada/cstreams.c.orig
3770 +++ gcc/ada/cstreams.c
3772 #include <unixlib.h>
3776 +#if defined __linux__ && !defined __ANDROID__
3777 /* Don't use macros on GNU/Linux since they cause incompatible changes between
3778 glibc 2.0 and 2.1 */
3781 +++ gcc/ada/g-socthi-bsd.adb
3783 +------------------------------------------------------------------------------
3785 +-- GNAT COMPILER COMPONENTS --
3787 +-- G N A T . S O C K E T S . T H I N --
3791 +-- Copyright (C) 2001-2013, AdaCore --
3793 +-- GNAT is free software; you can redistribute it and/or modify it under --
3794 +-- terms of the GNU General Public License as published by the Free Soft- --
3795 +-- ware Foundation; either version 3, or (at your option) any later ver- --
3796 +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
3797 +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
3798 +-- or FITNESS FOR A PARTICULAR PURPOSE. --
3800 +-- As a special exception under Section 7 of GPL version 3, you are granted --
3801 +-- additional permissions described in the GCC Runtime Library Exception, --
3802 +-- version 3.1, as published by the Free Software Foundation. --
3804 +-- You should have received a copy of the GNU General Public License and --
3805 +-- a copy of the GCC Runtime Library Exception along with this program; --
3806 +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
3807 +-- <http://www.gnu.org/licenses/>. --
3809 +-- GNAT was originally developed by the GNAT team at New York University. --
3810 +-- Extensive contributions were provided by Ada Core Technologies Inc. --
3812 +------------------------------------------------------------------------------
3814 +-- This package provides a target dependent thin interface to the sockets
3815 +-- layer for use by the GNAT.Sockets package (g-socket.ads). This package
3816 +-- should not be directly with'ed by an applications program.
3818 +-- This is the *BSD version which uses fcntl rather than ioctl
3819 +-- The constant SCON.Thread_Blocking_IO is always true (for all platforms, not
3820 +-- just *BSD), so this binding is significantly simpler than the standard
3821 +-- one it replaces.
3823 +with GNAT.OS_Lib; use GNAT.OS_Lib;
3825 +with Interfaces.C; use Interfaces.C;
3827 +package body GNAT.Sockets.Thin is
3829 + function Syscall_Accept
3831 + Addr : System.Address;
3832 + Addrlen : not null access C.int) return C.int;
3833 + pragma Import (C, Syscall_Accept, "accept");
3834 + -- The accept() function accepts a connection on a socket. An incoming
3835 + -- connection is acknowledged and associated with an immediately created
3836 + -- socket. The original socket is returned to the listening state.
3838 + function Syscall_Connect
3840 + Name : System.Address;
3841 + Namelen : C.int) return C.int;
3842 + pragma Import (C, Syscall_Connect, "connect");
3843 + -- The connect() system call initiates a connection on a socket. If the
3844 + -- parameter S is of type SOCK_DGRAM then connect() permanently specifies
3845 + -- the peer to which datagrams are to be sent. If S is type SOCK_STREAM
3846 + -- then connect() attempts to make a connection with another socket, which
3847 + -- is identified by the parameter Name.
3849 + function Syscall_Recv
3851 + Msg : System.Address;
3853 + Flags : C.int) return C.int;
3854 + pragma Import (C, Syscall_Recv, "recv");
3855 + -- The recv() function receives a message from a socket. The call can be
3856 + -- used on a connection mode socket or a bound, connectionless socket. If
3857 + -- no messages are available at the socket, the recv() call waits for a
3858 + -- message to arrive unless the socket is non-blocking. If a socket is
3859 + -- non-blocking, the call returns a -1 and ERRNO is set to EWOULDBLOCK.
3861 + function Syscall_Recvfrom
3863 + Msg : System.Address;
3866 + From : System.Address;
3867 + Fromlen : not null access C.int) return C.int;
3868 + pragma Import (C, Syscall_Recvfrom, "recvfrom");
3869 + -- The recvfrom() system call receives a message from a socket and captures
3870 + -- the address from which the data was sent. It can be used to receive
3871 + -- data on an unconnected socket as well. If no messages are available,
3872 + -- the call waits for a message to arrive on blocking sockets. For
3873 + -- non-blocking sockets without messages, -1 is returned and ERRNO is set
3874 + -- to EAGAIN or EWOULDBLOCK.
3876 + function Syscall_Recvmsg
3878 + Msg : System.Address;
3879 + Flags : C.int) return System.CRTL.ssize_t;
3880 + pragma Import (C, Syscall_Recvmsg, "recvmsg");
3881 + -- The recvmsg call receives a message from a socket, and can be used to
3882 + -- receive data on an unconnected socket as well. If no messages are
3883 + -- available, the call waits for a message to arrive on blocking sockets.
3884 + -- For non-blocking sockets without messages, -1 is returned and ERRNO is
3885 + -- set to EAGAIN or EWOULDBLOCK.
3887 + function Syscall_Sendmsg
3889 + Msg : System.Address;
3890 + Flags : C.int) return System.CRTL.ssize_t;
3891 + pragma Import (C, Syscall_Sendmsg, "sendmsg");
3892 + -- The sendmsg() function sends a message to a socket, and can be used with
3893 + -- unconnected sockets as well (the msg is ignored in this case). The
3894 + -- function returns the number of bytes sent when successful, otherwise it
3895 + -- returns -1 and ERRNO is set (many possible values).
3897 + function Syscall_Sendto
3899 + Msg : System.Address;
3902 + To : System.Address;
3903 + Tolen : C.int) return C.int;
3904 + pragma Import (C, Syscall_Sendto, "sendto");
3905 + -- The sendto() function only works for connected sockets and it initiates
3906 + -- the transmission of a message. A successful call returns the numbers of
3907 + -- bytes sent, and a failure returns a -1 and ERRNO is set.
3909 + function Syscall_Socket
3912 + Protocol : C.int) return C.int;
3913 + pragma Import (C, Syscall_Socket, "socket");
3914 + -- The socket() function is used to create an unbound socket and returns a
3915 + -- file descriptor that can be used with other socket functions. Upon
3916 + -- failure, a -1 is returned and ERRNO is set.
3918 + procedure Disable_SIGPIPE (S : C.int);
3919 + pragma Import (C, Disable_SIGPIPE, "__gnat_disable_sigpipe");
3921 + procedure Disable_All_SIGPIPEs;
3922 + pragma Import (C, Disable_All_SIGPIPEs, "__gnat_disable_all_sigpipes");
3923 + -- Sets the process to ignore all SIGPIPE signals on platforms that
3924 + -- don't support Disable_SIGPIPE for particular streams.
3929 + Val : C.int) return C.int;
3930 + pragma Import (C, C_Fcntl, "fcntl");
3931 + -- The ioctl of 64-bit DragonFlyBSD, OpenBSD, and NetBSD does not support
3932 + -- setting a socket in non-blocking mode. fcntl must be used instead.
3940 + Addr : System.Address;
3941 + Addrlen : not null access C.int) return C.int
3943 + R : constant C.int := Syscall_Accept (S, Addr, Addrlen);
3946 + Disable_SIGPIPE (R);
3954 + function C_Connect
3956 + Name : System.Address;
3957 + Namelen : C.int) return C.int
3960 + return Syscall_Connect (S, Name, Namelen);
3963 + ------------------
3964 + -- Socket_Ioctl --
3965 + ------------------
3967 + function Socket_Ioctl
3969 + Req : SOSC.IOCTL_Req_T;
3970 + Arg : access C.int) return C.int
3973 + if Req = SOSC.FIONBIO then
3976 + flags : constant Unsigned_32 :=
3977 + Unsigned_32 (C_Fcntl (S, SOSC.F_GETFL, 0));
3978 + nonblock : constant Unsigned_32 := Unsigned_32 (SOSC.O_NDELAY);
3979 + enabled : constant Boolean := Arg.all = 1;
3980 + newval : C.int := C.int (flags);
3983 + newval := C.int (flags or nonblock);
3984 + elsif (flags and nonblock) > 0 then
3985 + newval := C.int (flags - nonblock);
3987 + return C_Fcntl (Fd => S, Cmd => SOSC.F_SETFL, Val => newval);
3991 + return C_Ioctl (S, Req, Arg);
4000 + Msg : System.Address;
4002 + Flags : C.int) return C.int
4005 + return Syscall_Recv (S, Msg, Len, Flags);
4012 + function C_Recvfrom
4014 + Msg : System.Address;
4017 + From : System.Address;
4018 + Fromlen : not null access C.int) return C.int
4021 + return Syscall_Recvfrom (S, Msg, Len, Flags, From, Fromlen);
4028 + function C_Recvmsg
4030 + Msg : System.Address;
4031 + Flags : C.int) return System.CRTL.ssize_t
4034 + return Syscall_Recvmsg (S, Msg, Flags);
4041 + function C_Sendmsg
4043 + Msg : System.Address;
4044 + Flags : C.int) return System.CRTL.ssize_t
4047 + return Syscall_Sendmsg (S, Msg, Flags);
4056 + Msg : System.Address;
4059 + To : System.Address;
4060 + Tolen : C.int) return C.int
4063 + return Syscall_Sendto (S, Msg, Len, Flags, To, Tolen);
4073 + Protocol : C.int) return C.int
4075 + R : constant C.int := Syscall_Socket (Domain, Typ, Protocol);
4077 + Disable_SIGPIPE (R);
4085 + procedure Finalize is
4090 + -------------------------
4091 + -- Host_Error_Messages --
4092 + -------------------------
4094 + package body Host_Error_Messages is separate;
4100 + procedure Initialize is
4102 + Disable_All_SIGPIPEs;
4105 + --------------------
4106 + -- Signalling_Fds --
4107 + --------------------
4109 + package body Signalling_Fds is
4111 + -- In this default implementation, we use a C version of these
4112 + -- subprograms provided by socket.c.
4114 + function C_Create (Fds : not null access Fd_Pair) return C.int;
4115 + function C_Read (Rsig : C.int) return C.int;
4116 + function C_Write (Wsig : C.int) return C.int;
4117 + procedure C_Close (Sig : C.int);
4119 + pragma Import (C, C_Create, "__gnat_create_signalling_fds");
4120 + pragma Import (C, C_Read, "__gnat_read_signalling_fd");
4121 + pragma Import (C, C_Write, "__gnat_write_signalling_fd");
4122 + pragma Import (C, C_Close, "__gnat_close_signalling_fd");
4125 + (Fds : not null access Fd_Pair) return C.int renames C_Create;
4126 + function Read (Rsig : C.int) return C.int renames C_Read;
4127 + function Write (Wsig : C.int) return C.int renames C_Write;
4128 + procedure Close (Sig : C.int) renames C_Close;
4130 + end Signalling_Fds;
4132 + --------------------------
4133 + -- Socket_Error_Message --
4134 + --------------------------
4136 + function Socket_Error_Message (Errno : Integer) return String is separate;
4138 +end GNAT.Sockets.Thin;
4139 --- gcc/ada/gnatchop.adb.orig
4140 +++ gcc/ada/gnatchop.adb
4142 Config_File_Name : constant String_Access := new String'("gnat.adc");
4143 -- The name of the file holding the GNAT configuration pragmas
4145 - Gcc : String_Access := new String'("gcc");
4146 + Gcc : String_Access := new String'("ada");
4147 -- May be modified by switch --GCC=
4149 Gcc_Set : Boolean := False;
4150 --- gcc/ada/gnatlink.adb.orig
4151 +++ gcc/ada/gnatlink.adb
4153 -- This table collects the arguments to be passed to compile the binder
4156 - Gcc : String_Access := Program_Name ("gcc", "gnatlink");
4157 + Gcc : String_Access := Program_Name ("ada", "gnatlink");
4159 Read_Mode : constant String := "r" & ASCII.NUL;
4161 --- gcc/ada/make.adb.orig
4162 +++ gcc/ada/make.adb
4164 -- Compiler, Binder & Linker Data and Subprograms --
4165 ----------------------------------------------------
4167 - Gcc : String_Access := Program_Name ("gcc", "gnatmake");
4168 + Gcc : String_Access := Program_Name ("ada", "gnatmake");
4169 Gnatbind : String_Access := Program_Name ("gnatbind", "gnatmake");
4170 Gnatlink : String_Access := Program_Name ("gnatlink", "gnatmake");
4171 -- Default compiler, binder, linker programs
4172 --- gcc/ada/mlib-prj.adb.orig
4173 +++ gcc/ada/mlib-prj.adb
4174 @@ -335,6 +335,11 @@
4176 Foreign_Sources : Boolean;
4178 + Rpath_Disabled : Boolean := False;
4179 + -- If -R is passed through the library options for the linker, it will
4180 + -- prevent the implemented libraries portion of the rpath switch from
4181 + -- being built, even if the linker is capable of supporting rpath.
4183 Rpath : String_Access := null;
4184 -- Allocated only if Path Option is supported
4187 Opts.Table (Opts.Last) :=
4188 new String'("-L" & Name_Buffer (1 .. Name_Len));
4190 - if Path_Option /= null then
4191 + if not Rpath_Disabled and then Path_Option /= null then
4192 Add_Rpath (Name_Buffer (1 .. Name_Len));
4195 @@ -1299,9 +1304,13 @@
4196 Get_Name_String (Element.Value);
4198 if Name_Len /= 0 then
4199 - Opts.Increment_Last;
4200 - Opts.Table (Opts.Last) :=
4201 - new String'(Name_Buffer (1 .. Name_Len));
4202 + if Name_Buffer (1 .. Name_Len) = "-R" then
4203 + Rpath_Disabled := True;
4205 + Opts.Increment_Last;
4206 + Opts.Table (Opts.Last) :=
4207 + new String'(Name_Buffer (1 .. Name_Len));
4211 Current := Element.Next;
4212 --- gcc/ada/mlib-utl.adb.orig
4213 +++ gcc/ada/mlib-utl.adb
4215 if Driver_Name = No_Name then
4216 if Gcc_Exec = null then
4217 if Gcc_Name = null then
4218 - Gcc_Name := Osint.Program_Name ("gcc", "gnatmake");
4219 + Gcc_Name := Osint.Program_Name ("ada", "gnatmake");
4222 Gcc_Exec := Locate_Exec_On_Path (Gcc_Name.all);
4223 --- gcc/ada/prj-makr.adb.orig
4224 +++ gcc/ada/prj-makr.adb
4227 procedure Dup2 (Old_Fd, New_Fd : File_Descriptor);
4229 - Gcc : constant String := "gcc";
4230 + Gcc : constant String := "ada";
4231 Gcc_Path : String_Access := null;
4233 Non_Empty_Node : constant Project_Node_Id := 1;
4235 +++ gcc/ada/s-trasym-bsd.adb
4237 +------------------------------------------------------------------------------
4239 +-- GNAT RUN-TIME COMPONENTS --
4241 +-- S Y S T E M . T R A C E B A C K . S Y M B O L I C --
4245 +-- Copyright (C) 1999-2009, AdaCore --
4247 +-- GNAT is free software; you can redistribute it and/or modify it under --
4248 +-- terms of the GNU General Public License as published by the Free Soft- --
4249 +-- ware Foundation; either version 2, or (at your option) any later ver- --
4250 +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
4251 +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
4252 +-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
4253 +-- for more details. You should have received a copy of the GNU General --
4254 +-- Public License distributed with GNAT; see file COPYING. If not, write --
4255 +-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
4256 +-- Boston, MA 02110-1301, USA. --
4258 +-- As a special exception, if other files instantiate generics from this --
4259 +-- unit, or you link this unit with other files to produce an executable, --
4260 +-- this unit does not by itself cause the resulting executable to be --
4261 +-- covered by the GNU General Public License. This exception does not --
4262 +-- however invalidate any other reasons why the executable file might be --
4263 +-- covered by the GNU Public License. --
4265 +-- GNAT was originally developed by the GNAT team at New York University. --
4266 +-- Extensive contributions were provided by Ada Core Technologies Inc. --
4268 +------------------------------------------------------------------------------
4270 +-- Run-time symbolic traceback support
4271 +-- This file is based on the work by Juergen Pfiefer which is still used
4272 +-- today to provide symbolic traceback support for gnu/kFreeBSD.
4273 +-- Incorporated in GNAT-AUX by John Marino <http://www.dragonlace.net>
4275 +with System.Soft_Links;
4276 +with Ada.Exceptions.Traceback; use Ada.Exceptions.Traceback;
4278 +package body System.Traceback.Symbolic is
4280 + package TSL renames System.Soft_Links;
4282 + -- To perform the raw addresses to symbolic form translation we rely on a
4283 + -- libaddr2line symbolizer which examines debug info from a provided
4284 + -- executable file name, and an absolute path is needed to ensure the file
4285 + -- is always found. This is "__gnat_locate_exec_on_path (gnat_argv [0])"
4286 + -- for our executable file, a fairly heavy operation so we cache the
4289 + Exename : System.Address;
4290 + -- Pointer to the name of the executable file to be used on all
4291 + -- invocations of the libaddr2line symbolization service.
4293 + Exename_Resolved : Boolean := False;
4294 + -- Flag to indicate whether we have performed the executable file name
4295 + -- resolution already. Relying on a not null Exename for this purpose
4296 + -- would be potentially inefficient as this is what we will get if the
4297 + -- resolution attempt fails.
4299 + ------------------------
4300 + -- Symbolic_Traceback --
4301 + ------------------------
4303 + function Symbolic_Traceback (Traceback : Tracebacks_Array) return String is
4305 + procedure convert_addresses
4306 + (filename : System.Address;
4307 + addrs : System.Address;
4308 + n_addrs : Integer;
4309 + buf : System.Address;
4310 + len : System.Address);
4311 + pragma Import (C, convert_addresses, "convert_addresses");
4312 + -- This is the procedure version of the Ada-aware addr2line. It places
4313 + -- in BUF a string representing the symbolic translation of the N_ADDRS
4314 + -- raw addresses provided in ADDRS, looked up in debug information from
4315 + -- FILENAME. LEN points to an integer which contains the size of the
4316 + -- BUF buffer at input and the result length at output.
4318 + -- Note that this procedure is *not* thread-safe.
4320 + type Argv_Array is array (0 .. 0) of System.Address;
4321 + gnat_argv : access Argv_Array;
4322 + pragma Import (C, gnat_argv, "gnat_argv");
4324 + function locate_exec_on_path
4325 + (c_exename : System.Address) return System.Address;
4326 + pragma Import (C, locate_exec_on_path, "__gnat_locate_exec_on_path");
4328 + B_Size : constant Integer := 256 * Traceback'Length;
4329 + Len : Integer := B_Size;
4330 + Res : String (1 .. B_Size);
4332 + use type System.Address;
4335 + -- The symbolic translation of an empty set of addresses is an empty
4338 + if Traceback'Length = 0 then
4342 + -- If our input set of raw addresses is not empty, resort to the
4343 + -- libaddr2line service to symbolize it all.
4345 + -- Compute, cache and provide the absolute path to our executable file
4346 + -- name as the binary file where the relevant debug information is to be
4347 + -- found. If the executable file name resolution fails, we have no
4348 + -- sensible basis to invoke the symbolizer at all.
4350 + -- Protect all this against concurrent accesses explicitly, as the
4351 + -- underlying services are potentially thread unsafe.
4353 + TSL.Lock_Task.all;
4355 + if not Exename_Resolved then
4356 + Exename := locate_exec_on_path (gnat_argv (0));
4357 + Exename_Resolved := True;
4360 + if Exename /= System.Null_Address then
4361 + Len := Res'Length;
4363 + (Exename, Traceback'Address, Traceback'Length,
4364 + Res (1)'Address, Len'Address);
4367 + TSL.Unlock_Task.all;
4369 + -- Return what the addr2line symbolizer has produced if we have called
4370 + -- it (the executable name resolution succeeded), or an empty string
4373 + if Exename /= System.Null_Address then
4374 + return Res (1 .. Len);
4379 + end Symbolic_Traceback;
4381 + function Symbolic_Traceback
4382 + (E : Ada.Exceptions.Exception_Occurrence) return String is
4384 + return Symbolic_Traceback (Tracebacks (E));
4385 + end Symbolic_Traceback;
4387 +end System.Traceback.Symbolic;
4388 --- gcc/ada/terminals.c.orig
4389 +++ gcc/ada/terminals.c
4391 /* First all usupported platforms. Add stubs for exported routines. */
4393 #if defined (VMS) || defined (__vxworks) || defined (__Lynx__) \
4394 - || defined (__ANDROID__) || defined (__PikeOS__) || defined(__DJGPP__)
4395 + || defined (__PikeOS__) || defined(__DJGPP__)
4397 #define ATTRIBUTE_UNUSED __attribute__((unused))
4399 @@ -1052,7 +1052,7 @@
4400 || defined (__OpenBSD__) \
4401 || defined (__NetBSD__) \
4402 || defined (__DragonFly__)
4407 /* Include every system header we need */
4408 @@ -1063,8 +1063,8 @@
4410 /* On some system termio is either absent or including it will disable termios
4412 -#if !defined (__hpux__) && !defined (BSD) && !defined (__APPLE__) \
4413 - && !defined (__rtems__)
4414 +#if ! defined (__hpux__) && ! defined (FREEBSD) && \
4415 + ! defined (__APPLE__) && ! defined(__rtems__)
4416 # include <termio.h>
4419 @@ -1076,10 +1076,10 @@
4420 #include <sys/types.h>
4421 #include <sys/wait.h>
4423 -#if defined (__sun__)
4425 # include <sys/stropts.h>
4427 -#if defined (BSD) || defined (__sun__)
4428 +#if defined (FREEBSD) || defined (sun)
4429 # include <sys/signal.h>
4431 #if defined (__hpux__)
4432 @@ -1087,11 +1087,15 @@
4433 # include <sys/stropts.h>
4437 +#define CDISABLE _PC_VDISABLE
4439 #define CDISABLE _POSIX_VDISABLE
4442 /* On HP-UX and Sun system, there is a bzero function but with a different
4443 signature. Use memset instead */
4444 -#if defined (__hpux__) || defined (__sun__) || defined (_AIX)
4445 +#if defined (__hpux__) || defined (sun) || defined (_AIX)
4446 # define bzero(s,n) memset (s,0,n)
4449 @@ -1109,11 +1113,11 @@
4452 /* Configurable part */
4453 -#if defined (__APPLE__) || defined (BSD)
4454 +#if defined (__APPLE__) || defined (FREEBSD)
4456 -#elif defined (__linux__)
4457 +#elif defined (linux)
4459 -#elif defined (__sun__)
4460 +#elif defined (sun)
4461 #define USE_CLONE_DEVICE "/dev/ptmx"
4462 #elif defined (_AIX)
4463 #define USE_CLONE_DEVICE "/dev/ptc"
4464 @@ -1399,7 +1403,7 @@
4465 desc->slave_fd = open (desc->slave_name, O_RDWR, 0);
4468 -#if defined (__sun__) || defined (__hpux__)
4469 +#if defined (sun) || defined (__hpux__)
4470 /* On systems such as Solaris we are using stream. We need to push the right
4471 "modules" in order to get the expected terminal behaviors. Otherwise
4472 functionalities such as termios are not available. */
4474 +++ gcc/ada/traceback_symbolic.c
4477 + Copyright (C) 1999 by Juergen Pfeifer <juergen.pfeifer@gmx.net>
4478 + Ada for Linux Team (ALT)
4479 + Heavily modified by John Marino <http://www.dragonlace.net>
4481 + Permission is hereby granted, free of charge, to any person obtaining a
4482 + copy of this software and associated documentation files (the
4483 + "Software"), to deal in the Software without restriction, including
4484 + without limitation the rights to use, copy, modify, merge, publish,
4485 + distribute, distribute with modifications, sublicense, and/or sell
4486 + copies of the Software, and to permit persons to whom the Software is
4487 + furnished to do so, subject to the following conditions:
4489 + The above copyright notice and this permission notice shall be included
4490 + in all copies or substantial portions of the Software.
4492 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
4493 + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
4494 + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
4495 + IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
4496 + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
4497 + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
4498 + THE USE OR OTHER DEALINGS IN THE SOFTWARE.
4500 + Except as contained in this notice, the name(s) of the above copyright
4501 + holders shall not be used in advertising or otherwise to promote the
4502 + sale, use or other dealings in this Software without prior written
4510 + * Running addr2line doesn't make sense for cross-compiled objects.
4511 + * Create a dummy function to satisfy g-trasym.o
4515 +convert_addresses (const char *file_name ATTRIBUTE_UNUSED,
4516 + void *addrs ATTRIBUTE_UNUSED,
4517 + int n_addr ATTRIBUTE_UNUSED,
4518 + void *buf ATTRIBUTE_UNUSED,
4519 + int *len ATTRIBUTE_UNUSED)
4528 + * use the external program /usr/bin/addr2line to convert addresses
4529 + * into file names and line numbers
4532 +#include <sys/types.h>
4533 +#include <stdlib.h>
4534 +#include <unistd.h>
4535 +#include <string.h>
4536 +#include <signal.h>
4538 +#define CLOSE_SENDPIPE close(sendpipe[0]); close(sendpipe[1])
4539 +#define CLOSE_READPIPE close(readpipe[0]); close(readpipe[1])
4540 +#define DUP2CLOSE(oldfd, newfd) dup2(oldfd, newfd); close(oldfd);
4541 +#define RESTSIG sigaction(SIGPIPE,&oact,NULL)
4543 +#define MAX_LINE 1024
4544 +#define PARENT_READ readpipe[0]
4545 +#define CHILD_WRITE readpipe[1]
4546 +#define CHILD_READ sendpipe[0]
4547 +#define PARENT_WRITE sendpipe[1]
4549 +#if defined (__sun__)
4550 +#define ADDR2LINE_PROG "/usr/gnu/bin/addr2line"
4552 +#define ADDR2LINE_PROG "/usr/bin/addr2line"
4556 +convert_addresses (const char *file_name,
4562 + int max_len = *len;
4565 + struct sigaction act, oact;
4567 + int sendpipe[2] = {-1,-1}, /* parent -> child */
4568 + readpipe[2] = {-1,-1}; /* parent <- child */
4571 + act.sa_handler = SIG_IGN;
4572 + sigemptyset(&act.sa_mask);
4574 + if (sigaction(SIGPIPE,&act,&oact) < 0)
4577 + if (pipe(sendpipe) < 0) { RESTSIG; return; }
4578 + if (pipe(readpipe) < 0) { CLOSE_SENDPIPE; RESTSIG; return; }
4579 + if ((childpid = fork()) < 0) {
4586 + if (childpid == 0) { /* child process */
4587 + close(PARENT_WRITE);
4588 + close(PARENT_READ);
4589 + if ((CHILD_READ != STDIN_FILENO) && (CHILD_WRITE != STDOUT_FILENO)) {
4590 + if ((CHILD_READ == STDOUT_FILENO) && (CHILD_WRITE == STDIN_FILENO)) {
4591 + const int temp_fd = dup(CHILD_WRITE);
4592 + close (CHILD_WRITE);
4593 + DUP2CLOSE (CHILD_READ, STDIN_FILENO);
4594 + DUP2CLOSE (temp_fd, STDOUT_FILENO);
4596 + else if ((CHILD_READ == STDIN_FILENO) && (CHILD_WRITE > 1)) {
4597 + DUP2CLOSE (CHILD_WRITE, STDOUT_FILENO);
4599 + else if ((CHILD_READ > 1) && (CHILD_WRITE == STDOUT_FILENO)) {
4600 + DUP2CLOSE (CHILD_READ, STDIN_FILENO);
4602 + else if ((CHILD_READ > 1) && (CHILD_WRITE == STDIN_FILENO)) {
4603 + DUP2CLOSE (CHILD_WRITE, STDOUT_FILENO);
4604 + DUP2CLOSE (CHILD_READ, STDIN_FILENO);
4607 + /* CHILD_READ >= 1 and CHILD_WRITE > 1 */
4608 + DUP2CLOSE (CHILD_READ, STDIN_FILENO);
4609 + DUP2CLOSE (CHILD_WRITE, STDOUT_FILENO);
4612 + /* As pointed out by Florian Weimer to JP, it is a security threat to call
4613 + the script with a user defined environment and using the path. That
4614 + would be Trojans pleasure. Therefore the absolute path to addr2line
4615 + and an empty environment is used. That should be safe.
4617 + char *const argv[] = { "addr2line",
4619 + "--demangle=gnat",
4623 + char *const envp[] = { NULL };
4624 + if (execve(ADDR2LINE_PROG, argv, envp) < 0) {
4625 + close (CHILD_WRITE);
4626 + close (CHILD_READ);
4632 + /* Below this line is parent process */
4635 + char line[MAX_LINE + 1];
4638 + long *trace_address = addrs;
4640 + close(CHILD_WRITE);
4641 + close(CHILD_READ);
4643 + for(i=0; i < n_addr; i++) {
4644 + snprintf(hex,sizeof(hex),"%#lx\n",*trace_address);
4645 + write(PARENT_WRITE,hex,strlen(hex));
4646 + n = read(PARENT_READ,line,MAX_LINE);
4651 + /* We have approx. 16 additional chars for "%#lx in " clause.
4652 + We use this info to prevent a buffer overrun. */
4653 + if (n + 16 + (*len) > max_len)
4656 + p = strchr(line,'\n');
4660 + *len += snprintf(s, (max_len - (*len)), "%#lx in %s at %s",
4661 + *trace_address, line, p+1);
4664 + *len += snprintf(s, (max_len - (*len)), "%#lx at %s",
4665 + *trace_address, line);
4669 + trace_address += 1;
4671 + close (PARENT_WRITE);
4672 + close (PARENT_READ);
4677 --- gcc/ada/gcc-interface/Makefile.in.orig
4678 +++ gcc/ada/gcc-interface/Makefile.in
4679 @@ -1227,6 +1227,7 @@
4680 ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),)
4681 LIBGNAT_TARGET_PAIRS = \
4682 a-intnam.ads<a-intnam-linux.ads \
4683 + g-socthi.adb<g-socthi-bsd.adb \
4684 s-inmaop.adb<s-inmaop-posix.adb \
4685 s-intman.adb<s-intman-android.adb \
4686 s-linux.ads<s-linux-android.ads \
4687 @@ -1311,6 +1312,7 @@
4688 a-intnam.ads<a-intnam-solaris.ads \
4689 s-inmaop.adb<s-inmaop-posix.adb \
4690 s-intman.adb<s-intman-solaris.adb \
4691 + s-trasym.adb<s-trasym-bsd.adb \
4692 s-mudido.adb<s-mudido-affinity.adb \
4693 s-osinte.adb<s-osinte-solaris.adb \
4694 s-osinte.ads<s-osinte-solaris.ads \
4695 @@ -1347,6 +1349,8 @@
4696 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
4699 + EXTRA_LIBGNAT_SRCS+= traceback_symbolic.c
4700 + EXTRA_LIBGNAT_OBJS+= traceback_symbolic.o
4701 THREADSLIB = -lposix4 -lthread
4702 MISCLIB = -lposix4 -lnsl -lsocket
4704 @@ -1495,10 +1499,45 @@
4705 LIBRARY_VERSION := $(LIB_VERSION)
4709 +ifeq ($(strip $(filter-out %86 linux-android,$(target_cpu) $(target_os))),)
4710 + LIBGNAT_TARGET_PAIRS = \
4711 + a-intnam.ads<a-intnam-linux.ads \
4712 + g-socthi.adb<g-socthi-bsd.adb \
4713 + s-inmaop.adb<s-inmaop-posix.adb \
4714 + s-intman.adb<s-intman-posix.adb \
4715 + s-linux.ads<s-linux-android.ads \
4716 + s-osinte.adb<s-osinte-android.adb \
4717 + s-osinte.ads<s-osinte-android.ads \
4718 + s-osprim.adb<s-osprim-posix.adb \
4719 + s-taprop.adb<s-taprop-posix.adb \
4720 + s-taspri.ads<s-taspri-posix.ads \
4721 + s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
4722 + $(ATOMICS_TARGET_PAIRS) \
4723 + $(X86_TARGET_PAIRS) \
4724 + system.ads<system-linux-x86.ads
4726 + TOOLS_TARGET_PAIRS = \
4727 + mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
4728 + indepsw.adb<indepsw-gnu.adb
4730 + EXTRA_LIBGNAT_OBJS=
4731 + EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
4732 + EXTRA_GNATRTL_NONTASKING_OBJS=
4737 + GNATLIB_SHARED = gnatlib-shared-dual
4738 + LIBRARY_VERSION := $(LIB_VERSION)
4742 ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
4743 LIBGNAT_TARGET_PAIRS = \
4744 a-intnam.ads<a-intnam-freebsd.ads \
4745 + g-socthi.adb<g-socthi-bsd.adb \
4746 + s-trasym.adb<s-trasym-bsd.adb \
4747 s-inmaop.adb<s-inmaop-posix.adb \
4748 s-intman.adb<s-intman-posix.adb \
4749 s-mudido.adb<s-mudido-affinity.adb \
4750 @@ -1516,6 +1555,9 @@
4751 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb
4752 GNATLIB_SHARED = gnatlib-shared-dual
4754 + EXTRA_LIBGNAT_SRCS+= traceback_symbolic.c
4755 + EXTRA_LIBGNAT_OBJS+= traceback_symbolic.o
4758 THREADSLIB= -lpthread
4760 @@ -1527,6 +1569,8 @@
4761 ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
4762 LIBGNAT_TARGET_PAIRS = \
4763 a-intnam.ads<a-intnam-freebsd.ads \
4764 + g-socthi.adb<g-socthi-bsd.adb \
4765 + s-trasym.adb<s-trasym-bsd.adb \
4766 s-inmaop.adb<s-inmaop-posix.adb \
4767 s-intman.adb<s-intman-posix.adb \
4768 s-mudido.adb<s-mudido-affinity.adb \
4769 @@ -1544,6 +1588,8 @@
4770 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb
4771 GNATLIB_SHARED = gnatlib-shared-dual
4773 + EXTRA_LIBGNAT_SRCS+= traceback_symbolic.c
4774 + EXTRA_LIBGNAT_OBJS+= traceback_symbolic.o
4775 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
4778 @@ -1557,6 +1603,8 @@
4779 ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
4780 LIBGNAT_TARGET_PAIRS = \
4781 a-intnam.ads<a-intnam-freebsd.ads \
4782 + g-socthi.adb<g-socthi-bsd.adb \
4783 + s-trasym.adb<s-trasym-bsd.adb \
4784 s-inmaop.adb<s-inmaop-posix.adb \
4785 s-intman.adb<s-intman-posix.adb \
4786 s-mudido.adb<s-mudido-affinity.adb \
4787 @@ -1574,6 +1622,8 @@
4788 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb
4789 GNATLIB_SHARED = gnatlib-shared-dual
4791 + EXTRA_LIBGNAT_SRCS+= traceback_symbolic.c
4792 + EXTRA_LIBGNAT_OBJS+= traceback_symbolic.o
4793 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
4796 @@ -1587,6 +1637,8 @@
4797 ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
4798 LIBGNAT_TARGET_PAIRS = \
4799 a-intnam.ads<a-intnam-dragonfly.ads \
4800 + g-socthi.adb<g-socthi-bsd.adb \
4801 + s-trasym.adb<s-trasym-bsd.adb \
4802 s-inmaop.adb<s-inmaop-posix.adb \
4803 s-intman.adb<s-intman-posix.adb \
4804 s-mudido.adb<s-mudido-affinity.adb \
4805 @@ -1604,6 +1656,8 @@
4806 mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb
4807 GNATLIB_SHARED = gnatlib-shared-dual
4809 + EXTRA_LIBGNAT_SRCS+= traceback_symbolic.c
4810 + EXTRA_LIBGNAT_OBJS+= traceback_symbolic.o
4811 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
4814 --- gcc/ada/gcc-interface/Make-lang.in.orig
4815 +++ gcc/ada/gcc-interface/Make-lang.in
4819 # Language-independent object files.
4820 -ADA_BACKEND = $(BACKEND) attribs.o
4821 +ADA_BACKEND = $(BACKEND2) attribs.o
4823 # List of target dependent sources, overridden below as necessary
4825 --- gcc/ada/init.c.orig
4827 @@ -2541,8 +2541,15 @@
4829 mcontext_t *mcontext = &((ucontext_t *) ucontext)->uc_mcontext;
4831 +#if defined (__i386__)
4832 + unsigned long *pc = (unsigned long *)mcontext->gregs[REG_EIP];
4833 + /* The pattern is "orl $0x0,(%esp)" for a probe in 32-bit mode. */
4834 + if (signo == SIGSEGV && pc && *pc == 0x00240c83)
4835 + mcontext->gregs[REG_ESP] += 4096 + 4 * sizeof (unsigned long);
4836 +#elif defined (__ARMEL__)
4837 /* ARM Bump has to be an even number because of odd/even architecture. */
4838 - ((mcontext_t *) mcontext)->arm_pc += 2;
4839 + mcontext->arm_pc += 2;
4846 [FILE:19397:patches/patch-diff-ada-testsuite]
4847 --- gcc/testsuite/ada/acats/run_acats.sh.orig
4848 +++ gcc/testsuite/ada/acats/run_acats.sh
4853 -# Provide which replacement.
4855 -# type -p is missing from Solaris 2 /bin/sh and /bin/ksh (ksh88), but both
4856 -# ksh93 and bash have it.
4857 -# type output format differs between ksh88 and ksh93, so avoid it if
4858 -# type -p is present. Unfortunately, HP-UX /bin/sh ignores -p with type.
4859 -# Fall back to whence which ksh88 and ksh93 provide, but bash does not.
4862 - path=`type -p $* 2>/dev/null` && { echo $path | awk '{print $NF}'; return 0; }
4863 - path=`type $* 2>/dev/null` && { echo $path | awk '{print $NF}'; return 0; }
4864 - path=`whence $* 2>/dev/null` && { echo $path; return 0; }
4868 # Set up environment to use the Ada compiler from the object tree
4870 --- gcc/testsuite/ada/acats/run_all.sh.orig
4871 +++ gcc/testsuite/ada/acats/run_all.sh
4874 # End of customization section.
4876 -# Perform arithmetic evaluation on the ARGs, and store the result in the
4877 -# global $as_val. Take advantage of shells that can avoid forks. The arguments
4878 -# must be portable across $(()) and expr.
4879 -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
4880 - eval 'as_fn_arith ()
4887 - as_val=`expr "$@" || test $? -eq 1`
4893 printf "$@" >> $dir/acats.sum
4895 echo "$@" >> $dir/acats.log
4899 + printf "%04d %7s" $1 $2
4908 if [ "$dir" = "$testdir" ]; then
4910 gnatls -v >> $dir/acats.log
4913 -if [ -n "$GCC_RUNTEST_PARALLELIZE_DIR" ]; then
4914 - dir_support=$dir/../acats/support
4917 - mv $dir/tests $dir/tests.$$ 2> /dev/null
4918 - rm -rf $dir/tests.$$ &
4921 - cp -pr $dir/../acats/tests $dir/
4923 - dir_support=$dir/support
4925 display " === acats support ==="
4926 display_noeol "Generating support files..."
4935 display " === acats tests ==="
4937 if [ $# -eq 0 ]; then
4938 @@ -228,14 +206,20 @@
4947 for chapter in $chapters; do
4948 - # Used to generate support once and finish after that.
4949 - [ "$chapter" = "NONE" ] && continue
4950 + if [ -d $dir/tests/$chapter ]; then
4951 + cd $dir/tests/$chapter
4952 + ls *.a *.ada *.adt *.am *.dep 2> /dev/null | sed -e 's/\(.*\)\..*/\1/g' | \
4953 + cut -c1-7 | sort | uniq | comm -23 - $dir/support/norun.lst \
4954 + > $dir/tests/$chapter/${chapter}.lst
4955 + countn=`wc -l < $dir/tests/$chapter/${chapter}.lst`
4956 + countdown=`expr $countdown + $countn`
4960 +for chapter in $chapters; do
4961 display Running chapter $chapter ...
4963 if [ ! -d $dir/tests/$chapter ]; then
4964 @@ -244,45 +228,11 @@
4968 - cd $dir/tests/$chapter
4969 - ls *.a *.ada *.adt *.am *.dep 2> /dev/null | sed -e 's/\(.*\)\..*/\1/g' | \
4970 - cut -c1-7 | sort | uniq | comm -23 - $dir_support/norun.lst \
4971 - > $dir/tests/$chapter/${chapter}.lst
4972 countn=`wc -l < $dir/tests/$chapter/${chapter}.lst`
4973 - as_fn_arith $glob_countn + $countn
4974 - glob_countn=$as_val
4975 + glob_countn=`expr $glob_countn + $countn`
4977 for i in `cat $dir/tests/$chapter/${chapter}.lst`; do
4979 - # If running multiple run_all.sh jobs in parallel, decide
4980 - # if we should run this test in the current instance.
4981 - if [ -n "$GCC_RUNTEST_PARALLELIZE_DIR" ]; then
4983 - # Ugh, some tests have inter-test dependencies, those
4984 - # tests have to be scheduled on the same parallel instance
4985 - # as previous test.
4986 - ce2108f | ce2108h | ce3112d) ;;
4987 - # All others can be hopefully scheduled freely.
4989 - as_fn_arith $par_countm + 1
4990 - par_countm=$as_val
4991 - [ $par_countm -eq 10 ] && par_countm=0
4992 - if [ $par_countm -eq 1 ]; then
4993 - as_fn_arith $par_count + 1
4995 - if mkdir $GCC_RUNTEST_PARALLELIZE_DIR/$par_count 2>/dev/null; then
5002 - if [ -z "$par_last" ]; then
5003 - as_fn_arith $glob_countn - 1
5004 - glob_countn=$as_val
5009 + counti=`expr $counti + 1`
5010 extraflags="-gnat95"
5011 grep $i $testdir/overflow.lst > /dev/null 2>&1
5012 if [ $? -eq 0 ]; then
5013 @@ -300,10 +250,13 @@
5014 if [ $? -eq 0 ]; then
5015 extraflags="$extraflags -fstack-check"
5017 + inform $countdown $i
5018 + countdown=`expr $countdown - 1`
5019 test=$dir/tests/$chapter/$i
5020 mkdir $test && cd $test >> $dir/acats.log 2>&1
5022 if [ $? -ne 0 ]; then
5025 failed="${failed}${i} "
5027 @@ -321,19 +274,22 @@
5028 echo "BUILD $main" >> $dir/acats.log
5031 - cxb30*) EXTERNAL_OBJECTS="$dir_support/cxb30040.o $dir_support/cxb30060.o $dir_support/cxb30130.o $dir_support/cxb30131.o";;
5032 + cxb30*) EXTERNAL_OBJECTS="$dir/support/cxb30040.o $dir/support/cxb30060.o $dir/support/cxb30130.o $dir/support/cxb30131.o";;
5033 ca1020e) rm -f ca1020e_func1.adb ca1020e_func2.adb ca1020e_proc1.adb ca1020e_proc2.adb > /dev/null 2>&1;;
5034 ca14028) rm -f ca14028_func2.ads ca14028_func3.ads ca14028_proc1.ads ca14028_proc3.ads > /dev/null 2>&1;;
5035 + cxh1001) extraflags="-a -f"; echo "pragma Normalize_Scalars;" > gnat.adc
5037 if [ "$main" = "" ]; then
5040 failed="${failed}${i} "
5045 - target_gnatmake $extraflags -I$dir_support $main >> $dir/acats.log 2>&1
5046 + target_gnatmake $extraflags -I$dir/support $main >> $dir/acats.log 2>&1
5047 if [ $? -ne 0 ]; then
5050 failed="${failed}${i} "
5053 target_run $dir/tests/$chapter/$i/$binmain > $dir/tests/$chapter/$i/${i}.log 2>&1
5054 cd $dir/tests/$chapter/$i
5055 cat ${i}.log >> $dir/acats.log
5057 egrep -e '(==== |\+\+\+\+ |\!\!\!\! )' ${i}.log > /dev/null 2>&1
5058 if [ $? -ne 0 ]; then
5059 grep 'tasking not implemented' ${i}.log > /dev/null 2>&1
5060 @@ -357,15 +314,12 @@
5061 failed="${failed}${i} "
5063 log "UNSUPPORTED: $i"
5064 - as_fn_arith $glob_countn - 1
5065 - glob_countn=$as_val
5066 - as_fn_arith $glob_countu + 1
5067 - glob_countu=$as_val
5068 + glob_countn=`expr $glob_countn - 1`
5069 + glob_countu=`expr $glob_countu + 1`
5073 - as_fn_arith $glob_countok + 1
5074 - glob_countok=$as_val
5075 + glob_countok=`expr $glob_countok + 1`
5080 +++ gcc/testsuite/ada/acats/run_remote.sh
5083 +# Run ACATS with the GNU Ada compiler
5085 +# The following functions are to be customized if you run in cross
5086 +# environment or want to change compilation flags. Note that for
5087 +# tests requiring checks not turned on by default, this script
5088 +# automatically adds the needed flags to pass (ie: -gnato or -gnatE).
5090 +# gccflags="-O3 -fomit-frame-pointer -funroll-all-loops -finline-functions"
5091 +# gnatflags="-gnatN"
5094 +gnatflags="-gnatws"
5095 +tabtarget="/data/local/testsuite"
5096 +STRIP="@REMOTE_TARGET@-strip"
5099 + # Run on rooted tablet (port 22 vs port 2222)
5101 + $STRIP_FOR_TARGET $*
5102 + /usr/bin/scp -qp $* root@tablet:$tabtarget/
5103 + /usr/bin/ssh -q tablet $tabtarget/$BN
5107 + /usr/bin/ssh -q tablet "$1"
5110 +# End of customization section.
5114 + printf "$@" >> $dir/acats.sum
5115 + printf "$@" >> $dir/acats.log
5120 + echo "$@" >> $dir/acats.sum
5121 + echo "$@" >> $dir/acats.log
5125 + echo "$@" >> $dir/acats.sum
5126 + echo "$@" >> $dir/acats.log
5130 + printf "%04d %7s" $1 $2
5137 +dir=`${PWDCMD-pwd}`
5139 +if [ "$testdir" = "" ]; then
5140 + echo You must use make check or make check-ada
5144 +if [ "$dir" = "$testdir" ]; then
5145 + echo "error: srcdir must be different than objdir, exiting."
5149 +target_gnatmake () {
5150 + echo gnatmake-cross --GCC=\"$GCC\" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC=\"$GCC\" -fPIE -pie
5151 + gnatmake-cross --GCC="$GCC" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC="$GCC" -fPIE -pie
5159 + rm -f "$binmain" *.o *.ali > /dev/null 2>&1
5163 + ls ${i}?.adb > ${i}.lst 2> /dev/null
5164 + ls ${i}*m.adb >> ${i}.lst 2> /dev/null
5165 + ls ${i}.adb >> ${i}.lst 2> /dev/null
5166 + main=`tail -1 ${i}.lst`
5170 + local mysplit=`echo $1 | awk -F/ '{print "section=" $1 "; TN=" $2 "; prog=" $3 ";"}'`
5174 +EXTERNAL_OBJECTS=""
5175 +# Global variable to communicate external objects to link with.
5177 +rm -f $dir/acats.sum $dir/acats.log $dir/transfer.lst
5179 +display "Test Run By $USER on `date`"
5181 +display " === acats configuration ==="
5183 +target=`$GCC -dumpmachine`
5185 +display target gcc is $GCC
5186 +display `$GCC -v 2>&1`
5187 +display host=`gcc -dumpmachine`
5188 +display target=$target
5189 +display `type gnatmake-cross`
5190 +gnatls-cross -v >> $dir/acats.log
5193 +# Let's be tidy and clear off the remote device first
5194 +target_cmd "cd ${tabtarget}; rm logs/*; rmdir logs; rm *"
5196 +display " === acats support ==="
5197 +display_noeol "Generating support files..."
5199 +rm -rf $dir/support
5200 +mkdir -p $dir/support
5203 +cp $testdir/support/*.ada $testdir/support/*.a $testdir/support/*.tst $dir/support
5205 +# Find out the size in bit of an address on the target
5206 +target_gnatmake $testdir/support/impbit.adb >> $dir/acats.log 2>&1
5207 +target_run $dir/support/impbit > $dir/support/impbit.out 2>&1
5208 +target_bit=`cat $dir/support/impbit.out`
5209 +echo target_bit="$target_bit" >> $dir/acats.log
5211 +# Find out a suitable asm statement
5212 +# Adapted from configure.ac gcc_cv_as_dwarf2_debug_line
5214 + ia64*-*-* | s390*-*-*)
5215 + target_insn="nop 0"
5218 + target_insn="swym 0"
5224 +echo target_insn="$target_insn" >> $dir/acats.log
5226 +sed -e "s,ACATS4GNATDIR,$dir,g" \
5227 + < $testdir/support/impdef.a > $dir/support/impdef.a
5228 +sed -e "s,ACATS4GNATDIR,$dir,g" \
5229 + -e "s,ACATS4GNATBIT,$target_bit,g" \
5230 + -e "s,ACATS4GNATINSN,$target_insn,g" \
5231 + < $testdir/support/macro.dfs > $dir/support/MACRO.DFS
5232 +sed -e "s,ACATS4GNATDIR,$dir,g" \
5233 + < $testdir/support/tsttests.dat > $dir/support/TSTTESTS.DAT
5235 +cp $testdir/tests/cd/*.c $dir/support
5236 +cp $testdir/tests/cxb/*.c $dir/support
5237 +grep -v '^#' $testdir/norun.lst | sort > $dir/support/norun.lst
5240 +mv $dir/tests $dir/tests.$$ 2> /dev/null
5241 +rm -rf $dir/tests.$$ &
5244 +cp -pr $testdir/tests $dir/
5246 +for i in $dir/support/*.ada $dir/support/*.a; do
5247 + host_gnatchop $i >> $dir/acats.log 2>&1
5250 +# These tools are used to preprocess some ACATS sources
5251 +# they need to be compiled native on the host.
5253 +host_gnatmake -q -gnatws macrosub.adb
5254 +if [ $? -ne 0 ]; then
5255 + display "**** Failed to compile macrosub"
5258 +./macrosub > macrosub.out 2>&1
5261 +host_gnatmake -q -gnatws widechr.adb
5262 +if [ $? -ne 0 ]; then
5263 + display "**** Failed to compile widechr"
5266 +./widechr > widechr.out 2>&1
5268 +rm -f $dir/support/macrosub
5269 +rm -f $dir/support/widechr
5270 +rm -f $dir/support/*.ali
5271 +rm -f $dir/support/*.o
5275 +# From here, all compilations will be made by the target compiler
5277 +display_noeol "Compiling support files..."
5280 +if [ $? -ne 0 ]; then
5281 + display "**** Failed to compile C code"
5285 +host_gnatchop *.adt >> $dir/acats.log 2>&1
5287 +target_gnatmake -c -gnato -gnatE *.ads >> $dir/acats.log 2>&1
5288 +target_gnatmake -c -gnato -gnatE *.adb >> $dir/acats.log 2>&1
5292 +display " === acats tests ==="
5294 +if [ $# -eq 0 ]; then
5295 + chapters=`cd $dir/tests; echo [a-z]*`
5305 +for chapter in $chapters; do
5306 + if [ -d $dir/tests/$chapter ]; then
5307 + cd $dir/tests/$chapter
5308 + ls *.a *.ada *.adt *.am *.dep 2> /dev/null | sed -e 's/\(.*\)\..*/\1/g' | \
5309 + cut -c1-7 | sort | uniq | comm -23 - $dir/support/norun.lst \
5310 + > $dir/tests/$chapter/${chapter}.lst
5311 + countn=`wc -l < $dir/tests/$chapter/${chapter}.lst`
5312 + countdown=`expr $countdown + $countn`
5316 +cat > $dir/execute.sh << EOF
5318 + printf "left: %04d" \$1
5325 + local total=\$(echo \$testlist | awk '{print NF}')
5327 + echo "Executing \$total tests on remote device"
5329 + for x in \$testlist; do
5330 + timeout -t 30 ./\${x} > logs/\${x}.log 2>&1
5331 + countx=\$(expr \$countx + 1)
5332 + if [ \$countx -eq 25 ]; then
5333 + total=\$(expr \$total - 25)
5340 + tar -czf remote.logs.tar.gz logs
5345 +display "All tests are being cross-compiled without execution first."
5347 +for chapter in $chapters; do
5348 + if [ ! -d $dir/tests/$chapter ]; then
5352 + countn=`wc -l < $dir/tests/$chapter/${chapter}.lst`
5353 + glob_countn=`expr $glob_countn + $countn`
5355 + for i in `cat $dir/tests/$chapter/${chapter}.lst`; do
5356 + counti=`expr $counti + 1`
5357 + extraflags="-gnat95"
5358 + grep $i $testdir/overflow.lst > /dev/null 2>&1
5359 + if [ $? -eq 0 ]; then
5360 + extraflags="$extraflags -gnato"
5362 + grep $i $testdir/elabd.lst > /dev/null 2>&1
5363 + if [ $? -eq 0 ]; then
5364 + extraflags="$extraflags -gnatE"
5366 + grep $i $testdir/floatstore.lst > /dev/null 2>&1
5367 + if [ $? -eq 0 ]; then
5368 + extraflags="$extraflags -ffloat-store"
5370 + grep $i $testdir/stackcheck.lst > /dev/null 2>&1
5371 + if [ $? -eq 0 ]; then
5372 + extraflags="$extraflags -fstack-check"
5374 + inform $countdown $i
5375 + countdown=`expr $countdown - 1`
5376 + test=$dir/tests/$chapter/$i
5377 + mkdir $test && cd $test >> $dir/acats.log 2>&1
5379 + if [ $? -ne 0 ]; then
5381 + display "FAIL: $i"
5382 + failed="${failed}${i} "
5387 + host_gnatchop -c -w `ls ${test}*.a ${test}*.ada ${test}*.adt ${test}*.am ${test}*.dep 2> /dev/null` >> $dir/acats.log 2>&1
5389 + if [ -z "$main" ]; then
5393 + binmain=`echo $main | sed -e 's/\(.*\)\..*/\1/g'`
5394 + echo "BUILD $main" >> $dir/acats.log
5395 + EXTERNAL_OBJECTS=""
5397 + cxb30*) EXTERNAL_OBJECTS="$dir/support/cxb30040.o $dir/support/cxb30060.o $dir/support/cxb30130.o $dir/support/cxb30131.o";;
5398 + ca1020e) rm -f ca1020e_func1.adb ca1020e_func2.adb ca1020e_proc1.adb ca1020e_proc2.adb > /dev/null 2>&1;;
5399 + ca14028) rm -f ca14028_func2.ads ca14028_func3.ads ca14028_proc1.ads ca14028_proc3.ads > /dev/null 2>&1;;
5400 + cxh1001) extraflags="-a -f"; echo "pragma Normalize_Scalars;" > gnat.adc
5402 + if [ "$main" = "" ]; then
5404 + display "FAIL: $i"
5405 + failed="${failed}${i} "
5410 + target_gnatmake $extraflags -I$dir/support $main >> $dir/acats.log 2>&1
5411 + if [ $? -ne 0 ]; then
5413 + display "FAIL: $i"
5414 + failed="${failed}${i} "
5418 + echo $chapter/$i/$binmain >> $dir/transfer.lst
5419 + echo "$binmain \\" >> $dir/execute.sh
5424 +echo '"' >> $dir/execute.sh
5425 +echo "cycle" >> $dir/execute.sh
5428 +display "Transfer files to remote device: root@tablet:$tabtarget/"
5430 +cat $dir/transfer.lst | xargs tar --strip-components=2 -czf - | \
5431 + target_cmd "tar -C $tabtarget -xzf -"
5433 +tar -czf - execute.sh | target_cmd "tar -C $tabtarget -xzf -"
5434 +target_cmd "cd $tabtarget; sh execute.sh"
5435 +rm -rf $dir/logs $dir/remote.logs.tar.gz
5436 +/usr/bin/scp -q root@tablet:$tabtarget/remote.logs.tar.gz $dir/
5437 +tar -xzf $dir/remote.logs.tar.gz
5439 +countdown=`wc -l < $dir/transfer.lst`
5440 +glob_countn=${countdown}
5441 +for i in `cat $dir/transfer.lst`; do
5443 + if [ "$section" != "$savedsect" ]; then
5444 + display Running chapter $section ...
5446 + savedsect=$section
5448 + #inform $countdown $TN
5449 + countdown=`expr $countdown - 1`
5450 + proglog="$dir/logs/${prog}.log"
5451 + echo "RUN $prog" >> $dir/acats.log
5452 + if [ ! -f $proglog ]; then
5453 + echo "LOG NOT FOUND!" >> $proglog
5456 + cat $proglog >> $dir/acats.log
5458 + egrep -e '(==== |\+\+\+\+ |\!\!\!\! )' $proglog > /dev/null 2>&1
5459 + if [ $? -ne 0 ]; then
5460 + grep 'tasking not implemented' $proglog > /dev/null 2>&1
5462 + if [ $? -ne 0 ]; then
5463 + display "FAIL: ${TN}"
5464 + failed="${failed}${TN} "
5466 + log "UNSUPPORTED: ${TN}"
5467 + glob_countn=`expr $glob_countn - 1`
5468 + glob_countu=`expr $glob_countu + 1`
5472 + glob_countok=`expr $glob_countok + 1`
5474 + cd $dir/tests/$section/$TN
5479 +display " === acats Summary ==="
5480 +display "# of expected passes $glob_countok"
5481 +display "# of unexpected failures `expr $glob_countn - $glob_countok`"
5483 +if [ $glob_countu -ne 0 ]; then
5484 + display "# of unsupported tests $glob_countu"
5487 +if [ $glob_countok -ne $glob_countn ]; then
5488 + display "*** FAILURES: $failed"
5491 +display "$0 completed at `date`"
5494 --- gcc/testsuite/gnat.dg/test_raise_from_pure.adb.orig
5495 +++ gcc/testsuite/gnat.dg/test_raise_from_pure.adb
5498 +-- { dg-do run { xfail *-*-openbsd* } }
5499 -- { dg-options "-O2" }
5501 -- This is an optimization test and its failure is only a missed optimization.
5502 --- gcc/testsuite/gnat.dg/unchecked_convert5.adb.orig
5503 +++ gcc/testsuite/gnat.dg/unchecked_convert5.adb
5505 --- { dg-do run { target hppa*-*-* sparc*-*-* powerpc*-*-* } }
5507 -with Unchecked_Conversion;
5509 -procedure Unchecked_Convert5 is
5511 - subtype c_1 is string(1..1);
5513 - function int2c1 is -- { dg-warning "different sizes" }
5514 - new unchecked_conversion (source => integer, target => c_1);
5520 - c1 := int2c1(16#12#);
5522 - if c1 (1) /= ASCII.Nul then
5523 - raise Program_Error;
5527 --- gcc/testsuite/gnat.dg/unchecked_convert6.adb.orig
5528 +++ gcc/testsuite/gnat.dg/unchecked_convert6.adb
5530 --- { dg-do run { target hppa*-*-* sparc*-*-* powerpc*-*-* } }
5532 -with Unchecked_Conversion;
5534 -procedure Unchecked_Convert6 is
5536 - subtype c_5 is string(1..5);
5538 - function int2c5 is -- { dg-warning "different sizes" }
5539 - new unchecked_conversion (source => integer, target => c_5);
5545 - c5 := int2c5(16#12#);
5547 - if c5 (4) /= ASCII.DC2 then
5548 - raise Program_Error;
5554 [FILE:11685:patches/patch-diff-core]
5555 --- gcc/config/dragonfly.h.orig
5556 +++ gcc/config/dragonfly.h
5559 %{static:-Bstatic} \
5561 - %{!static:--hash-style=gnu} \
5562 + %{!static:--hash-style=gnu --enable-new-dtags -rpath @PREFIX@/@GCCAUX@/lib} \
5563 %{symbolic:-Bsymbolic}"
5566 #define LINK_SPEC DFBSD_LINK_SPEC
5568 -#define DFBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.2"
5569 +#define DFBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.2"
5572 /* Use --as-needed -lgcc_s for eh support. */
5573 --- gcc/config/sol2.h.orig
5574 +++ gcc/config/sol2.h
5576 %{static:-dn -Bstatic} \
5577 %{shared:-G -dy %{!mimpure-text:-z text}} " \
5578 LINK_LIBGCC_MAPFILE_SPEC LINK_CLEARCAP_SPEC " \
5579 + %{!static:-R/lib/amd64:@PREFIX@/@GCCAUX@/lib/amd64} \
5580 %{symbolic:-Bsymbolic -G -dy -z text} \
5583 --- gcc/config/aarch64/aarch64-freebsd.h.orig
5584 +++ gcc/config/aarch64/aarch64-freebsd.h
5586 %{symbolic:-Bsymbolic} \
5587 %{static:-Bstatic} \
5589 + %{!static:--hash-style=gnu --enable-new-dtags -rpath @PREFIX@/@GCCAUX@/lib} \
5590 %{rdynamic:-export-dynamic} \
5591 %{!shared:-dynamic-linker " FBSD_DYNAMIC_LINKER " }} \
5592 -X" SUBTARGET_EXTRA_LINK_SPEC " \
5595 #define MCOUNT_NAME ".mcount"
5597 +/* Static stack checking is supported by means of probes. */
5598 +#define STACK_CHECK_STATIC_BUILTIN 1
5599 #endif /* GCC_AARCH64_FREEBSD_H */
5600 --- gcc/config/i386/freebsd.h.orig
5601 +++ gcc/config/i386/freebsd.h
5603 %{rdynamic:-export-dynamic} \
5604 -dynamic-linker %(fbsd_dynamic_linker) } \
5605 %{static:-Bstatic}} \
5606 + %{!static:--hash-style=gnu --enable-new-dtags -rpath @PREFIX@/@GCCAUX@/lib} \
5607 %{symbolic:-Bsymbolic}"
5609 /* A C statement to output to the stdio stream FILE an assembler
5610 --- gcc/config/i386/freebsd64.h.orig
5611 +++ gcc/config/i386/freebsd64.h
5613 %{rdynamic:-export-dynamic} \
5614 -dynamic-linker %(fbsd_dynamic_linker) } \
5615 %{static:-Bstatic}} \
5616 + %{!static:--hash-style=gnu -rpath @PREFIX@/@GCCAUX@/lib} \
5617 %{symbolic:-Bsymbolic}"
5618 --- gcc/Makefile.in.orig
5620 @@ -1200,7 +1200,6 @@
5628 @@ -1597,6 +1596,7 @@
5629 $(OBJS-libcommon-target) main.o c-family/cppspec.o \
5630 $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) \
5631 $(GCOV_TOOL_OBJS) $(GENGTYPE_OBJS) gcc-ar.o gcc-nm.o gcc-ranlib.o \
5632 + insn-modes.o insn-modes-ada.o \
5633 lto-wrapper.o collect-utils.o
5635 # for anything that is shared use the cc1plus profile data, as that
5636 @@ -1612,6 +1612,11 @@
5637 ALL_HOST_OBJS = $(ALL_HOST_FRONTEND_OBJS) $(ALL_HOST_BACKEND_OBJS)
5639 BACKEND = libbackend.a main.o libcommon-target.a libcommon.a \
5641 + $(CPPLIB) $(LIBDECNUMBER)
5643 +BACKEND2 = libbackend.a main.o libcommon-target.a libcommon.a \
5644 + insn-modes-ada.o \
5645 $(CPPLIB) $(LIBDECNUMBER)
5647 # This is defined to "yes" if Tree checking is enabled, which roughly means
5648 @@ -2312,6 +2317,7 @@
5650 insn-modes.c: s-modes; @true
5651 insn-modes.h: s-modes-h; @true
5652 +insn-modes-ada.c: s-modes-ada; @true
5653 min-insn-modes.c: s-modes-m; @true
5655 s-modes: build/genmodes$(build_exeext)
5656 @@ -2329,6 +2335,12 @@
5657 $(SHELL) $(srcdir)/../move-if-change tmp-min-modes.c min-insn-modes.c
5660 +s-modes-ada: s-modes
5661 + $(shell sed -e 's/: TARGET_96_ROUND_53_LONG_DOUBLE \? &ieee_extended_intel_96_round_53_format //' \
5662 + < insn-modes.c > tmp-modes-ada.c)
5663 + $(SHELL) $(srcdir)/../move-if-change tmp-modes-ada.c insn-modes-ada.c
5664 + $(STAMP) s-modes-ada
5666 insn-preds.c: s-preds; @true
5667 tm-preds.h: s-preds-h; @true
5668 tm-constrs.h: s-constrs-h; @true
5669 @@ -3536,6 +3548,9 @@
5670 ( cd $(DESTDIR)$(bindir) && \
5671 $(LN) $(GCC_INSTALL_NAME)$(exeext) $(FULL_DRIVER_NAME) ); \
5673 + if [ -f gnat1$(exeext) ] ; then \
5674 + ( cd $(DESTDIR)$(bindir) && $(LN) $(GCC_INSTALL_NAME)$(exeext) ada$(exeext) ) \
5676 if [ ! -f gcc-cross$(exeext) ] \
5677 && [ "$(GCC_INSTALL_NAME)" != "$(GCC_TARGET_INSTALL_NAME)" ]; then \
5678 rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-tmp$(exeext); \
5679 --- gcc/config/i386/gnu-user64.h.orig
5680 +++ gcc/config/i386/gnu-user64.h
5682 %{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \
5683 %{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \
5685 + %{!static:--enable-new-dtags -rpath @PREFIX@/@GCCAUX@/lib64} \
5688 %{rdynamic:-export-dynamic} \
5689 --- gcc/dwarf2out.c.orig
5691 @@ -12514,6 +12514,15 @@
5693 if (qualified_type == dtype)
5695 + tree origin = decl_ultimate_origin (name);
5697 + /* Typedef variants that have an abstract origin don't get their own
5698 + type DIE (see gen_typedef_die), so fall back on the ultimate
5699 + abstract origin instead. */
5700 + if (origin != NULL)
5701 + return modified_type_die (TREE_TYPE (origin), cv_quals, reverse,
5704 /* For a named type, use the typedef. */
5705 gen_type_die (qualified_type, context_die);
5706 return lookup_type_die (qualified_type);
5707 @@ -24346,7 +24355,7 @@
5708 gen_typedef_die (tree decl, dw_die_ref context_die)
5710 dw_die_ref type_die;
5714 if (TREE_ASM_WRITTEN (decl))
5716 @@ -24355,75 +24364,71 @@
5720 + /* As we avoid creating DIEs for local typedefs (see decl_ultimate_origin
5721 + checks in process_scope_var and modified_type_die), this should be called
5722 + only for original types. */
5723 + gcc_assert (decl_ultimate_origin (decl) == NULL);
5725 TREE_ASM_WRITTEN (decl) = 1;
5726 type_die = new_die (DW_TAG_typedef, context_die, decl);
5727 - origin = decl_ultimate_origin (decl);
5728 - if (origin != NULL)
5729 - add_abstract_origin_attribute (type_die, origin);
5732 + add_name_and_src_coords_attributes (type_die, decl);
5733 + if (DECL_ORIGINAL_TYPE (decl))
5735 - tree type = TREE_TYPE (decl);
5736 + type = DECL_ORIGINAL_TYPE (decl);
5737 + if (type == error_mark_node)
5740 + gcc_assert (type != TREE_TYPE (decl));
5741 + equate_type_number_to_die (TREE_TYPE (decl), type_die);
5745 + type = TREE_TYPE (decl);
5746 if (type == error_mark_node)
5749 - add_name_and_src_coords_attributes (type_die, decl);
5750 - if (DECL_ORIGINAL_TYPE (decl))
5751 + if (is_naming_typedef_decl (TYPE_NAME (type)))
5753 - type = DECL_ORIGINAL_TYPE (decl);
5755 - if (type == error_mark_node)
5758 - gcc_assert (type != TREE_TYPE (decl));
5759 - equate_type_number_to_die (TREE_TYPE (decl), type_die);
5760 + /* Here, we are in the case of decl being a typedef naming
5761 + an anonymous type, e.g:
5762 + typedef struct {...} foo;
5763 + In that case TREE_TYPE (decl) is not a typedef variant
5764 + type and TYPE_NAME of the anonymous type is set to the
5765 + TYPE_DECL of the typedef. This construct is emitted by
5768 + TYPE is the anonymous struct named by the typedef
5769 + DECL. As we need the DW_AT_type attribute of the
5770 + DW_TAG_typedef to point to the DIE of TYPE, let's
5771 + generate that DIE right away. add_type_attribute
5772 + called below will then pick (via lookup_type_die) that
5773 + anonymous struct DIE. */
5774 + if (!TREE_ASM_WRITTEN (type))
5775 + gen_tagged_type_die (type, context_die, DINFO_USAGE_DIR_USE);
5777 + /* This is a GNU Extension. We are adding a
5778 + DW_AT_linkage_name attribute to the DIE of the
5779 + anonymous struct TYPE. The value of that attribute
5780 + is the name of the typedef decl naming the anonymous
5781 + struct. This greatly eases the work of consumers of
5782 + this debug info. */
5783 + add_linkage_name_raw (lookup_type_die (type), decl);
5787 - if (is_naming_typedef_decl (TYPE_NAME (type)))
5789 - /* Here, we are in the case of decl being a typedef naming
5790 - an anonymous type, e.g:
5791 - typedef struct {...} foo;
5792 - In that case TREE_TYPE (decl) is not a typedef variant
5793 - type and TYPE_NAME of the anonymous type is set to the
5794 - TYPE_DECL of the typedef. This construct is emitted by
5797 - TYPE is the anonymous struct named by the typedef
5798 - DECL. As we need the DW_AT_type attribute of the
5799 - DW_TAG_typedef to point to the DIE of TYPE, let's
5800 - generate that DIE right away. add_type_attribute
5801 - called below will then pick (via lookup_type_die) that
5802 - anonymous struct DIE. */
5803 - if (!TREE_ASM_WRITTEN (type))
5804 - gen_tagged_type_die (type, context_die, DINFO_USAGE_DIR_USE);
5806 - /* This is a GNU Extension. We are adding a
5807 - DW_AT_linkage_name attribute to the DIE of the
5808 - anonymous struct TYPE. The value of that attribute
5809 - is the name of the typedef decl naming the anonymous
5810 - struct. This greatly eases the work of consumers of
5811 - this debug info. */
5812 - add_linkage_name_raw (lookup_type_die (type), decl);
5816 - add_type_attribute (type_die, type, decl_quals (decl), false,
5820 - if (is_naming_typedef_decl (decl))
5821 - /* We want that all subsequent calls to lookup_type_die with
5822 - TYPE in argument yield the DW_TAG_typedef we have just
5824 - equate_type_number_to_die (type, type_die);
5825 + add_type_attribute (type_die, type, decl_quals (decl), false,
5828 - type = TREE_TYPE (decl);
5829 + if (is_naming_typedef_decl (decl))
5830 + /* We want that all subsequent calls to lookup_type_die with
5831 + TYPE in argument yield the DW_TAG_typedef we have just
5833 + equate_type_number_to_die (type, type_die);
5835 - add_alignment_attribute (type_die, type);
5836 + add_alignment_attribute (type_die, TREE_TYPE (decl));
5838 - add_accessibility_attribute (type_die, decl);
5840 + add_accessibility_attribute (type_die, decl);
5842 if (DECL_ABSTRACT_P (decl))
5843 equate_decl_number_to_die (decl, type_die);
5844 @@ -24535,15 +24540,23 @@
5845 if (TREE_ASM_WRITTEN (type))
5848 + tree name = TYPE_NAME (type);
5849 + tree origin = decl_ultimate_origin (name);
5850 + if (origin != NULL)
5852 + gen_decl_die (origin, NULL, NULL, context_die);
5856 /* Prevent broken recursion; we can't hand off to the same type. */
5857 - gcc_assert (DECL_ORIGINAL_TYPE (TYPE_NAME (type)) != type);
5858 + gcc_assert (DECL_ORIGINAL_TYPE (name) != type);
5860 /* Give typedefs the right scope. */
5861 context_die = scope_die_for (type, context_die);
5863 TREE_ASM_WRITTEN (type) = 1;
5865 - gen_decl_die (TYPE_NAME (type), NULL, NULL, context_die);
5866 + gen_decl_die (name, NULL, NULL, context_die);
5870 @@ -24862,6 +24875,22 @@
5874 + /* Avoid creating DIEs for local typedefs and concrete static variables that
5875 + will only be pruned later. */
5876 + if ((origin || decl_ultimate_origin (decl))
5877 + && (TREE_CODE (decl_or_origin) == TYPE_DECL
5878 + || (VAR_P (decl_or_origin) && TREE_STATIC (decl_or_origin))))
5880 + origin = decl_ultimate_origin (decl_or_origin);
5881 + if (decl && VAR_P (decl) && die != NULL)
5883 + die = lookup_decl_die (origin);
5885 + equate_decl_number_to_die (decl, die);
5890 if (die != NULL && die->die_parent == NULL)
5891 add_child_die (context_die, die);
5892 else if (TREE_CODE (decl_or_origin) == IMPORTED_DECL)
5895 [FILE:1498:patches/patch-diff-cxx]
5896 --- libstdc++-v3/configure.host.orig
5897 +++ libstdc++-v3/configure.host
5900 os_include_dir="os/bsd/freebsd"
5903 + os_include_dir="os/bionic"
5906 os_include_dir="os/generic"
5908 --- libstdc++-v3/config/os/bionic/ctype_base.h.orig
5909 +++ libstdc++-v3/config/os/bionic/ctype_base.h
5911 // Non-standard typedefs.
5912 typedef const int* __to_type;
5915 +#define _U _CTYPE_U
5916 +#define _L _CTYPE_L
5917 +#define _D _CTYPE_D
5918 +#define _S _CTYPE_S
5919 +#define _P _CTYPE_P
5920 +#define _C _CTYPE_C
5921 +#define _X _CTYPE_X
5922 +#define _B _CTYPE_B
5923 +#define _N _CTYPE_D
5926 // NB: Offsets into ctype<char>::_M_table force a particular size
5927 // on the mask type. Because of this, we don't use an enum.
5929 --- libstdc++-v3/src/c++11/futex.cc.orig
5930 +++ libstdc++-v3/src/c++11/futex.cc
5932 #if defined(_GLIBCXX_HAVE_LINUX_FUTEX) && ATOMIC_INT_LOCK_FREE > 1
5936 +#include <sys/syscall.h>
5938 #include <syscall.h>
5941 #include <sys/time.h>
5943 --- libstdc++-v3/src/filesystem/dir.cc.orig
5944 +++ libstdc++-v3/src/filesystem/dir.cc
5945 @@ -146,7 +146,13 @@
5947 int err = std::exchange(errno, 0);
5948 const auto entp = readdir(dirp);
5950 + int tmperr = errno;
5954 std::swap(errno, err);
5961 [FILE:1612:patches/patch-diff-gcc-testsuite]
5962 --- gcc/testsuite/gcc.dg/format/ext-1.c.orig
5963 +++ gcc/testsuite/gcc.dg/format/ext-1.c
5968 -foo (quad_t q, u_quad_t uq, quad_t *qn, size_t z, size_t *zn, long long int ll,
5969 +foo (quad2_t q, u_quad2_t uq, quad2_t *qn, size_t z, size_t *zn, long long int ll,
5970 unsigned long long int ull, int i, unsigned int u, double d,
5971 char *s, void *p, wchar_t *ls, wint_t lc, int *n, long int l)
5973 --- gcc/testsuite/gcc.dg/format/ext-2.c.orig
5974 +++ gcc/testsuite/gcc.dg/format/ext-2.c
5979 -foo (quad_t *qp, u_quad_t *uqp, quad_t *qn, long long int *llp,
5980 +foo (quad2_t *qp, u_quad2_t *uqp, quad2_t *qn, long long int *llp,
5981 unsigned long long int *ullp, float *fp, char *s, void **pp, wchar_t *ls,
5982 int *ip, unsigned int *up)
5984 --- gcc/testsuite/gcc.dg/format/format.h.orig
5985 +++ gcc/testsuite/gcc.dg/format/format.h
5989 /* %q formats want a "quad"; GCC considers this to be a long long. */
5990 -typedef llong quad_t;
5991 -typedef ullong u_quad_t;
5992 +typedef llong quad2_t;
5993 +typedef ullong u_quad2_t;
5995 __extension__ typedef __INTMAX_TYPE__ intmax_t;
5996 __extension__ typedef __UINTMAX_TYPE__ uintmax_t;
5997 --- gcc/testsuite/gcc.dg/pch/pch.exp.orig
5998 +++ gcc/testsuite/gcc.dg/pch/pch.exp
6000 set test "largefile.c"
6001 set testh "largefile.hs"
6002 set f [open $test w]
6003 +puts $f "/* { dg-do run { target *-*-solaris* } } */"
6004 +puts $f "/* { dg-error \"dummy\" \"fool dejagnu\" { target { ! *-*-solaris* } 20 } } */"
6005 puts $f "/* { dg-timeout-factor 4.0 } */"
6007 for { set v 0 } { $v < 10000 } { incr v } {
6010 [FILE:286:sunos/patch-gcc_config.build]
6011 --- gcc/config.build.orig 2017-01-01 12:07:43 UTC
6012 +++ gcc/config.build
6017 -build_install_headers_dir=install-headers-tar
6018 +build_install_headers_dir=install-headers-cp
6019 build_file_translate=
6021 # System-specific settings.