--- gcc-7-7.5.0.orig/debian/NEWS.gcc +++ gcc-7-7.5.0/debian/NEWS.gcc @@ -0,0 +1,865 @@ +This file contains information about GCC releases which has been generated +automatically from the online release notes. It covers releases of GCC +(and the former EGCS project) since EGCS 1.0, on the line of development +that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2, +see ONEWS. + +====================================================================== +http://gcc.gnu.org/gcc-7/index.html + + GCC 7 Release Series + Changes, New Features, and Fixes + + This page is a brief summary of some of the huge number of improvements + in GCC 7. For more information, see the "Porting to GCC 7" page and the + full GCC documentation. + +Caveats + + * GCC now uses LRA (a new local register allocator) by default for new + targets. + * The non-standard C++0x type traits has_trivial_default_constructor, + has_trivial_copy_constructor and has_trivial_copy_assign have been + removed. + * The libstdc++ Profile Mode has been deprecated and will be removed in a + future version. + * The Cilk+ extensions to the C and C++ languages have been deprecated. + +General Optimizer Improvements + + * GCC 7 can determine the return value or range of return values of some + calls to the sprintf family of functions and make it available to other + optimization passes. Some calls to the snprintf function with a zero size + argument can be folded into constants. This optimization is included in + -O1 and can be selectively controlled by the -fprintf-return-value option. + * A new store merging pass has been added. It merges constant stores to + adjacent memory locations into fewer, wider, stores. It is enabled by the + -fstore-merging option and at the -O2 optimization level or higher (and + -Os). + * A new code hoisting optimization has been added to the partial redundancy + elimination pass. It attempts to move evaluation of expressions executed + on all paths to the function exit as early as possible, which helps + primarily for code size, but can be useful for speed of generated code as + well. It is enabled by the -fcode-hoisting option and at the -O2 + optimization level or higher (and -Os). + * A new interprocedural bitwise constant propagation optimization has been + added, which propagates knowledge about which bits of variables are known + to be zero (including pointer alignment information) across the call + graph. It is enabled by the -fipa-bit-cp option if -fipa-cp is enabled as + well, and is enabled at the -O2 optimization level and higher (and -Os). + This optimization supersedes interprocedural alignment propagation of GCC + 6, and therefore the option -fipa-cp-alignment is now deprecated and + ignored. + * A new interprocedural value range propagation optimization has been + added, which propagates integral ranges that variable values can be + proven to be within across the call graph. It is enabled by the -fipa-vrp + option and at the -O2 optimization level and higher (and -Os). + * A new loop splitting optimization pass has been added. It splits certain + loops if they contain a condition that is always true on one side of the + iteration space and always false on the other into two loops where each + of the new two loops iterates just on one of the sides of the iteration + space and the condition does not need to be checked inside of the loop. + It is enabled by the -fsplit-loops option and at the -O3 optimization + level or higher. + * The shrink-wrapping optimization can now separate portions of prologues + and epilogues to improve performance if some of the work done + traditionally by prologues and epilogues is not needed on certain paths. + This is controlled by the -fshrink-wrap-separate option, enabled by + default. It requires target support, which is currently only implemented + in the PowerPC and AArch64 ports. + * AddressSanitizer gained a new sanitization option, -fsanitize-address- + use-after-scope, which enables sanitization of variables whose address is + taken and used after a scope where the variable is defined: + + int + main (int argc, char **argv) + { + char *ptr; + { + char my_char; + ptr = &my_char; + } + + *ptr = 123; + return *ptr; + } + + ==28882==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7fffb8dba990 at pc 0x0000004006d5 bp 0x7fffb8dba960 sp 0x7fffb8dba958 + WRITE of size 1 at 0x7fffb8dba990 thread T0 + #0 0x4006d4 in main /tmp/use-after-scope-1.c:10 + #1 0x7f9c71943290 in __libc_start_main (/lib64/libc.so.6+0x20290) + #2 0x400739 in _start (/tmp/a.out+0x400739) + + Address 0x7fffb8dba990 is located in stack of thread T0 at offset 32 in frame + #0 0x40067f in main /tmp/use-after-scope-1.c:3 + + This frame has 1 object(s): + [32, 33) 'my_char' <== Memory access at offset 32 is inside this variable + + The option is enabled by default with -fsanitize=address and disabled by + default with -fsanitize=kernel-address. Compared to the LLVM compiler, + where the option already exists, the implementation in the GCC compiler + has couple of improvements and advantages: + o A complex usage of gotos and case labels are properly handled and + should not report any false positive or false negatives. + o C++ temporaries are sanitized. + o Sanitization can handle invalid memory stores that are optimized + out by the LLVM compiler when using an optimization level. + * The -fsanitize=signed-integer-overflow suboption of the UndefinedBehavior + Sanitizer now diagnoses arithmetic overflows even on arithmetic + operations with generic vectors. + * Version 5 of the DWARF debugging information standard is supported + through the -gdwarf-5 option. The DWARF version 4 debugging information + remains the default until debugging information consumers are adjusted. + +New Languages and Language specific improvements + + OpenACC support in C, C++, and Fortran continues to be maintained and +improved. See the OpenACC and Offloading wiki pages for further information. + +Ada + * On mainstream native platforms, Ada programs no longer require the stack + to be made executable in order to run properly. + +BRIG (HSAIL) + +Support for processing BRIG 1.0 files was added in this release. BRIG is a +binary format for HSAIL (Heterogeneous System Architecture Intermediate +Language). The BRIG frontend can be used for implementing HSAIL "finalizers" +(compilation of HSAIL to a native ISA) for gcc-supported targets. An +implementation of an HSAIL runtime library, libhsail-rt is also included. + +C family + + * New command-line options have been added for the C and C++ compilers: + o -Wimplicit-fallthrough warns when a switch case falls through. This + warning has five different levels. The compiler is able to parse a + wide range of fallthrough comments, depending on the level. It also + handles control-flow statements, such as ifs. It's possible to + suppres the warning by either adding a fallthrough comment, or by + using a null statement: __attribute__ ((fallthrough)); (C, C++), or + [[fallthrough]]; (C++17), or [[gnu::fallthrough]]; (C++11/C++14). + This warning is enabled by -Wextra. + o -Wpointer-compare warns when a pointer is compared with a zero + character constant. Such code is now invalid in C++11 and GCC + rejects it. This warning is enabled by default. + o -Wduplicated-branches warns when an if-else has identical branches. + o -Wrestrict warns when an argument passed to a restrict-qualified + parameter aliases with another argument. + o -Wmemset-elt-size warns for memset calls, when the first argument + references an array, and the third argument is a number equal to + the number of elements of the array, but not the size of the array. + This warning is enabled by -Wall. + o -Wint-in-bool-context warns about suspicious uses of integer values + where boolean values are expected. This warning is enabled by - + Wall. + o -Wswitch-unreachable warns when a switch statement has statements + between the controlling expression and the first case label which + will never be executed. This warning is enabled by default. + o -Wexpansion-to-defined warns when defined is used outside #if. This + warning is enabled by -Wextra or -Wpedantic. + o -Wregister warns about uses of the register storage specifier. In + C++17 this keyword has been removed and for C++17 this is a + pedantic warning enabled by default. The warning is not emitted for + the GNU Explicit Register Variables extension. + o -Wvla-larger-than=N warns about unbounded uses of variable-length + arrays, and about bounded uses of variable-length arrays whose + bound can be larger than N bytes. + o -Wduplicate-decl-specifier warns when a declaration has duplicate + const, volatile, restrict or _Atomic specifier. This warning is + enabled by -Wall. + * GCC 6's C and C++ frontends were able to offer suggestions for misspelled + field names: + spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'? + return ptr->colour; + ^~~~~~ + GCC 7 greatly expands the scope of these suggestions. Firstly, it adds + fix-it hints to such suggestions: + spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'? + return ptr->colour; + ^~~~~~ + color + The suggestions now cover many other things, such as misspelled function + names: + spellcheck-identifiers.c:11:3: warning: implicit declaration of function 'gtk_widget_showall'; did you mean + 'gtk_widget_show_all'? [-Wimplicit-function-declaration] + gtk_widget_showall (w); + ^~~~~~~~~~~~~~~~~~ + gtk_widget_show_all + misspelled macro names and enum values: + spellcheck-identifiers.cc:85:11: error: 'MAX_ITEM' undeclared here (not in a function); did you mean 'MAX_ITEMS'? + int array[MAX_ITEM]; + ^~~~~~~~ + MAX_ITEMS + misspelled type names: + spellcheck-typenames.c:7:14: error: unknown type name 'singed'; did you mean 'signed'? + void test (singed char e); + ^~~~~~ + signed + and, in the C frontend, named initializers: + test.c:7:20: error: 'struct s' has no member named 'colour'; did you mean 'color'? + struct s test = { .colour = 3 }; + ^~~~~~ + color + * The preprocessor can now offer suggestions for misspelled directives, + e.g.: + test.c:5:2: error:invalid preprocessing directive #endfi; did you mean #endif? + #endfi + ^~~~~ + endif + * Warnings about format strings now underline the pertinent part of the + string, and can offer suggested fixes. In some cases, the pertinent + argument is underlined. + test.c:51:29: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'int' [-Wformat=] + printf ("foo: %d bar: %s baz: %d", 100, i + j, 102); + ~^ ~~~~~ + %d + * The new -Wdangling-else command-line option has been split out of + -Wparentheses and warns about dangling else. + * The -Wshadow warning has been split into three variants. -Wshadow=global + warns for any shadowing. This is the default when using -Wshadow without + any argument. -Wshadow=local only warns for a local variable shadowing + another local variable or parameter. -Wshadow=compatible-local only warns + for a local variable shadowing another local variable or parameter whose + type is compatible (in C++ compatible means that the type of the + shadowing variable can be converted to that of the shadowed variable). + The following example shows the different kinds of shadow warnings: + + enum operation { add, count }; + struct container { int nr; }; + + int + container_count (struct container c, int count) + { + int r = 0; + for (int count = 0; count > 0; count--) + { + struct container count = c; + r += count.nr; + } + return r; + } + + -Wshadow=compatible-local will warn for the parameter being shadowed with + the same type: + warn-test.c:8:12: warning: declaration of 'count' shadows a parameter [-Wshadow=compatible-local] + for (int count = 0; count > 0; count--) + ^~~~~ + warn-test.c:5:42: note: shadowed declaration is here + container_count (struct container c, int count) + ^~~~~ + -Wshadow=local will warn for the above and for the shadowed declaration + with incompatible type: + warn-test.c:10:24: warning: declaration of 'count' shadows a previous local [-Wshadow=local] + struct container count = c; + ^~~~~ + warn-test.c:8:12: note: shadowed declaration is here + for (int count = 0; count > 0; count--) + ^~~~~ + -Wshadow=global will warn for all of the above and the shadowing of the + global declaration: + warn-test.c:5:42: warning: declaration of 'count' shadows a global declaration [-Wshadow] + container_count (struct container c, int count) + ^~~~~ + warn-test.c:1:23: note: shadowed declaration is here + enum operation { add, count }; + ^~~~~ + * GCC 7 contains a number of enhancements that help detect buffer overflow + and other forms of invalid memory accesses. + o The -Walloc-size-larger-than=size option detects calls to standard + and user-defined memory allocation functions decorated with + attribute alloc_size whose argument exceeds the specified size + (PTRDIFF_MAX by default). The option also detects arithmetic + overflow in the computation of the size in two-argument allocation + functions like calloc where the total size is the product of the + two arguments. Since calls with an excessive size cannot succeed + they are typically the result of programming errors. Such bugs have + been known to be the source of security vulnerabilities and a + target of exploits. -Walloc-size-larger-than=PTRDIFF_MAX is + included in -Wall. + For example, the following call to malloc incorrectly tries to + avoid passing a negative argument to the function and instead ends + up unconditionally invoking it with an argument less than or equal + to zero. Since after conversion to the type of the argument of the + function (size_t) a negative argument results in a value in excess + of the maximum PTRDIFF_MAX the call is diagnosed. + + void* f (int n) + { + return malloc (n > 0 ? 0 : n); + } + + warning: argument 1 range [2147483648, 4294967295] exceeds maximum object size 2147483647 [-Walloc-size-larger-than=] + + o The -Walloc-zero option detects calls to standard and user-defined + memory allocation functions decorated with attribute alloc_size + with a zero argument. -Walloc-zero is not included in either -Wall + or -Wextra and must be explicitly enabled. + o The -Walloca option detects all calls to the alloca function in the + program. -Walloca is not included in either -Wall or -Wextra and + must be explicitly enabled. + o The -Walloca-larger-than=size option detects calls to the alloca + function whose argument either may exceed the specified size, or + that is not known to be sufficiently constrained to avoid exceeding + it. -Walloca-larger-than is not included in either -Wall or -Wextra + and must be explicitly enabled. + For example, compiling the following snippet with -Walloca-larger- + than=1024 results in a warning because even though the code appears + to call alloca only with sizes of 1kb and less, since n is signed, + a negative value would result in a call to the function well in + excess of the limit. + + void f (int n) + { + char *d; + if (n < 1025) + d = alloca (n); + else + d = malloc (n); + … + } + + warning: argument to 'alloca may be too large due to conversion from 'int' to 'long unsigned int' [-Walloca-larger-than=] + + In contrast, a call to alloca that isn't bounded at all such as in + the following function will elicit the warning below regardless of + the size argument to the option. + + void f (size_t n) + { + char *d = alloca (n); + ... + } + + warning: unbounded use of 'alloca' [-Walloca-larger-than=] + + o The -Wformat-overflow=level option detects certain and likely + buffer overflow in calls to the sprintf family of formatted output + functions. Although the option is enabled even without optimization + it works best with -O2 and higher. + For example, in the following snippet the call to sprintf is + diagnosed because even though its output has been constrained using + the modulo operation it could result in as many as three bytes if + mday were negative. The solution is to either allocate a larger + buffer or make sure the argument is not negative, for example by + changing mday's type to unsigned or by making the type of the + second operand of the modulo expression unsigned: 100U. + + void* f (int mday) + { + char *buf = malloc (3); + sprintf (buf, "%02i", mday % 100); + return buf; + } + + warning: 'sprintf may write a terminating nul past the end of the destination [-Wformat-overflow=] + note: 'sprintf' output between 3 and 4 bytes into a destination of size 3 + + o The -Wformat-truncation=level option detects certain and likely + output truncation in calls to the snprintf family of formatted + output functions. -Wformat-truncation=1 is included in -Wall and + enabled without optimization but works best with -O2 and higher. + For example, the following function attempts to format an integer + between 0 and 255 in hexadecimal, including the 0x prefix, into a + buffer of four charactars. But since the function must always + terminate output by the null character ('\0') such a buffer is only + big enough to fit just one digit plus the prefix. Therefore the + snprintf call is diagnosed. To avoid the warning either use a + bigger buffer or handle the function's return value which indicates + whether or not its output has been truncated. + + void f (unsigned x) + { + char d[4]; + snprintf (d, sizeof d, "%#02x", x & 0xff); + … + } + + warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=] + note: 'snprintf' output between 3 and 5 bytes into a destination of size 4 + + o The -Wnonnull option has been enhanced to detect a broader set of + cases of passing null pointers to functions that expect a non-null + argument (those decorated with attribute nonnull). By taking + advantage of optimizations the option can detect many more cases of + the problem than in prior GCC versions. + o The -Wstringop-overflow=type option detects buffer overflow in + calls to string handling functions like memcpy and strcpy. The + option relies on Object_Size_Checking and has an effect similar to + defining the _FORTIFY_SOURCE macro. -Wstringop-overflow=2 is + enabled by default. + For example, in the following snippet, because the call to strncat + specifies a maximum that allows the function to write past the end + of the destination, it is diagnosed. To correct the problem and + avoid the overflow the function should be called with a size of at + most sizeof d - strlen(d) - 1. + + void f (const char *fname) + { + char d[8]; + strncpy (d, "/tmp/", sizeof d); + strncat (d, fname, sizeof d); + ... + } + + warning: specified bound 8 equals the size of the destination [-Wstringop-overflow=] + + * The header provided by GCC defines macros such as INT_WIDTH + for the width in bits of integer types, if + __STDC_WANT_IEC_60559_BFP_EXT__ is defined before the header is included. + The header defines such macros as SIZE_WIDTH and INTMAX_WIDTH + for the width of some standard typedef names for integer types, again if + __STDC_WANT_IEC_60559_BFP_EXT__ is defined before the header is included; + note that GCC's implementation of this header is only used for + freestanding compilations, not hosted compilations, on most systems. + These macros come from ISO/IEC TS 18661-1:2014. + * The header provided by GCC defines the macro CR_DECIMAL_DIG, + from ISO/IEC TS 18661-1:2014, if __STDC_WANT_IEC_60559_BFP_EXT__ is + defined before the header is included. This represents the number of + decimal digits for which conversions between decimal character strings + and binary formats, in both directions, are correctly rounded, and + currently has the value of UINTMAX_MAX on all systems, reflecting that + GCC's compile-time conversions are correctly rounded for any number of + digits. + * New __builtin_add_overflow_p, __builtin_sub_overflow_p, + __builtin_mul_overflow_p built-in functions have been added. These work + similarly to their siblings without the _p suffix, but do not actually + store the result of the arithmetics anywhere, just return whether the + operation would overflow. Calls to these built-ins with integer constant + arguments evaluate to integer constants expressions. + For example, in the following, c is assigned the result of a * b only if + the multiplication does not overflow, otherwise it is assigned the value + zero. The multiplication is performed at compile-time and without + triggering a -Woverflow warning. + + enum { + a = 12345678, + b = 87654321, + c = __builtin_mul_overflow_p (a, b, a) ? 0 : a * b + }; + +C + + * The C front end now supports type names _FloatN for floating-point types + with IEEE interchange formats and _FloatNx for floating-point types with + IEEE extended formats. These type names come from ISO/IEC TS 18661-3: + 2015. + The set of types supported depends on the target for which GCC is + configured. Most targets support _Float32, _Float32x and _Float64. + _Float128 is supported on targets where IEEE binary128 encoding was + already supported as long double or __float128. _Float64x is supported on + targets where a type with either binary128 or Intel extended precision + format is available. + Constants with these types are supported using suffixes fN, FN, fNx and + FNx (e.g., 1.2f128 or 2.3F64x). Macros such as FLT128_MAX are defined in + if __STDC_WANT_IEC_60559_TYPES_EXT__ is defined before it is + included. + These new types are always distinct from each other and from float, + double and long double, even if they have the same encoding. Complex + types such as _Complex _Float128 are also supported. + Type-generic built-in functions such as __builtin_isinf support the new + types, and the following type-specific built-in functions have versions + (suffixed fN or fNx) for the new types: __builtin_copysign, + __builtin_fabs, __builtin_huge_val, __builtin_inf, __builtin_nan, + __builtin_nans. + * Compilation with -fopenmp is now compatible with the C11 _Atomic keyword. + +C++ + + * The C++ front end has experimental support for all of the current C++17 + draft with the -std=c++1z or -std=gnu++1z flags, including if constexpr, + class template argument deduction, auto template parameters, and + structured bindings. For a full list of new features, see the_C++_status + page. + * C++17 support for new of over-aligned types can be enabled in other modes + with the -faligned-new flag. + * The C++17 evaluation order requirements can be selected in other modes + with the -fstrong-eval-order flag, or disabled in C++17 mode with -fno- + strong-eval-order. + * The default semantics of inherited constructors has changed in all modes, + following P0136. Essentially, overload resolution happens as if calling + the inherited constructor directly, and the compiler fills in + construction of the other bases and members as needed. Most uses should + not need any changes. The old behavior can be restored with -fno-new- + inheriting-ctors, or -fabi-version less than 11. + * The resolution of DR 150 on matching of template template parameters, + allowing default template arguments to make a template match a parameter, + is currently enabled by default in C++17 mode only. The default can be + overridden with -f{no-,}new-ttp-matching. + * The C++ front end will now provide fix-it hints for some missing + semicolons, allowing for automatic fixes by IDEs: + + test.cc:4:11: error: expected ';' after class definition + class a {} + ^ + ; + * -Waligned-new has been added to the C++ front end. It warns about new of + type with extended alignment without -faligned-new. + +Runtime Library (libstdc++) + + * The type of exception thrown by iostreams, std::ios_base::failure, now + uses the cxx11_ABI. + * Experimental support for C++17, including the following new features: + o std::string_view; + o std::any, std::optional, and std::variant; + o std::invoke, std::is_invocable, std::is_nothrow_invocable, and + invoke_result; + o std::is_swappable, and std::is_nothrow_swappable; + o std::apply, and std::make_from_tuple; + o std::void_t, std::bool_constant, std::conjunction, std:: + disjunction, and std::negation; + o Variable templates for type traits; + o Mathematical Special Functions; + o std::chrono::floor, std::chrono::ceil, std::chrono::round, and + std::chrono::abs; + o std::clamp, std::gcd, std::lcm, 3-dimensional std::hypot; + o std::scoped_lock, std::shared_mutex, std::atomic:: + is_always_lock_free; + o std::sample, std::default_searcher, std::boyer_moore_searcher and + std::boyer_moore_horspool_searcher; + o Extraction and re-insertion of map and set nodes, try_emplace + members for maps, and functions for accessing containers std::size, + std::empty, and std::data; + o std::shared_ptr support for arrays, std::shared_ptr::weak_type, + std::enable_shared_from_this::weak_from_this(), and std:: + owner_less; + o std::byte; + o std::as_const, std::not_fn, std::has_unique_object_representations, + constexpr std::addressof. + Thanks to Daniel Krügler, Tim Shen, Edward Smith-Rowland, and Ville + Voutilainen for work on the C++17 support. + * A new power-of-two rehashing policy for use with the _Hashtable + internals, thanks to François Dumont. + +Fortran + + * Support for a number of extensions for compatibility with legacy code + with new flags: + o -fdec-structure Support for DEC STRUCTURE and UNION + o -fdec-intrinsic-ints Support for new integer intrinsics with B/I/J/ + K prefixes such as BABS, JIAND... + o -fdec-math Support for additional math intrinsics, including COTAN + and degree-valued trigonometric functions such as TAND, ASIND... + o -fdec Enable the -fdec-* family of extensions. + * New flag -finit-derived to allow default initialization of derived-type + variables. + * Improved DO loops with step equal to 1 or -1, generates faster code + without a loop preheader. A new warning, -Wundefined-do-loop, warns when + a loop iterates either to HUGE(i) (with step equal to 1), or to -HUGE(i) + (with step equal to -1). Invalid behavior can be caught at run time with + -fcheck=do enabled: + + program test + implicit none + integer(1) :: i + do i = -HUGE(i)+10, -HUGE(i)-1, -1 + print *, i + end do + end program test + + At line 8 of file do_check_12.f90 + Fortran runtime error: Loop iterates infinitely + + * Version 4.5 of the OpenMP_specification is now partially supported also + in the Fortran compiler; the largest missing item is structure element + mapping. + * User-defined derived-type input/output (UDTIO) is added. + * Derived type coarrays with allocable and pointer components is partially + supported. + * Non-constant stop codes and error stop codes (Fortran 2015 feature). + * Derived types with allocatable components of recursive type. + * Intrinsic assignment to polymorphic variables. + * Improved submodule support. + * Improved diagnostics (polymorphic results in pure functions). + +Go + + * GCC 7 provides a complete implementation of the Go 1.8.1 user packages. + * Compared to the Go 1.8.1 toolchain, the garbage collector is more + conservative and less concurrent. + * Escape analysis is available for experimental use via the -fgo-optimize- + allocs option. The -fgo-debug-escape prints information useful for + debugging escape analysis choices. + +Java (GCJ) + +The GCC Java frontend and associated libjava runtime library have been removed +from GCC. + +libgccjit + +The libgccjit API gained support for marking calls as requiring tail-call +optimization via a new entrypoint: gcc_jit_rvalue_set_bool_require_tail_call. +libgccjit performs numerous checks at the API boundary, but if these succeed, +it previously ignored errors and other diagnostics emitted within the core of +GCC, and treated the compile of a gcc_jit_context as having succeeded. As of +GCC 7 it now ensures that if any diagnostics are emitted, they are visible from +the libgccjit API, and that the the context is flagged as having failed. + +New Targets and Target Specific Improvements + +AArch64 + + * The ARMv8.3-A architecture is now supported. It can be used by specifying + the -march=armv8.3-a option. + * The option -msign-return-address= is supported to enable return address + protection using ARMv8.3-A Pointer Authentication Extensions. For more + information on the arguments accepted by this option, please refer to + AArch64-Options. + * The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point + Extensions are now supported. They can be used by specifying the - + march=armv8.2-a or -march=armv8.2-a+fp16 options. The 16-bit Floating- + Point Extensions introduce new half-precision data processing floating- + point instructions. + * Support has been added for the following processors (GCC identifiers in + parentheses): ARM Cortex-A73 (cortex-a73), Broadcom Vulcan (vulcan), + Cavium ThunderX CN81xx (thunderxt81), Cavium ThunderX CN83xx + (thunderxt83), Cavium ThunderX CN88xx (thunderxt88), Cavium ThunderX + CN88xx pass 1.x (thunderxt88p1), Cavium ThunderX 2 CN99xx (thunderx2t99), + Qualcomm Falkor (falkor). The GCC identifiers can be used as arguments to + the -mcpu or -mtune options, for example: -mcpu=cortex-a73 or - + mtune=vulcan or as arguments to the equivalent target attributes and + pragmas. + +ARC + + * Add support for ARC HS and ARC EM processors. + * Add support for ARC EM variation found in Intel QuarkSE SoCs. + * Add support for NPS400 ARC700 based CPUs. + * Thread Local Storage is now supported by ARC CPUs. + * Fix errors for ARC600 when using 32x16 multiplier option. + * Fix PIE for ARC CPUs. + * New CPU templates are supported via multilib. + +ARM + + * Support for the ARMv5 and ARMv5E architectures has been deprecated (which + have no known implementations) and will be removed in a future GCC + release. Note that ARMv5T, ARMv5TE and ARMv5TEJ architectures remain + supported. The values armv5 and armv5e of -march are thus deprecated. + * The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point + Extensions are now supported. They can be used by specifying the - + march=armv8.2-a or -march=armv8.2-a+fp16 options. The 16-bit Floating- + Point Extensions introduce new half-precision data processing floating- + point instructions. + * The ARMv8-M architecture is now supported in its two architecture + profiles: ARMv8-M Baseline and ARMv8-M Mainline with its DSP and + Floating-Point Extensions. They can be used by specifying the - + march=armv8-m.base, armv8-m.main or armv8-m.main+dsp options. + * Support has been added for the following processors (GCC identifiers in + parentheses): ARM Cortex-A73 (cortex-a73), ARM Cortex-M23 (cortex-m23) + and ARM Cortex-M33 (cortex-m33). The GCC identifiers can be used as + arguments to the -mcpu or -mtune options, for example: -mcpu=cortex-a73 + or -mtune=cortex-m33. + * A new command-line option -mpure-code has been added. It does not allow + constant data to be placed in code sections. This option is only + available when generating non-pic code for ARMv7-M targets. + * Support for the ACLE Coprocessor Intrinsics has been added. This enables + the generation of coprocessor instructions through the use of intrinsics + such as cdp, ldc, and others. + * The configure option --with-multilib-list now accepts the value rmprofile + to build multilib libraries for a range of embedded targets. See our + installation_instructions for details. + +AVR + + * On the reduced Tiny cores, the progmem variable_attribute is now properly + supported. Respective read-only variables are located in flash memory in + section .progmem.data. No special code is needed to access such + variables; the compiler automatically adds an offset of 0x4000 to all + addresses, which is needed to access variables in flash memory. As + opposed to ordinary cores where it is sufficient to specify the progmem + attribute with definitions, on the reduced Tiny cores the attribute also + has to be specified with (external) declarations: + + extern const int array[] __attribute__((__progmem__)); + + int get_value2 (void) + { + /* Access via addresses array + 0x4004 and array + 0x4005. */ + return array[2]; + } + + const int* get_address (unsigned idx) + { + /* Returns array + 0x4000 + 2 * idx. */ + return &array[idx]; + } + + * A new command-line option -Wmisspelled-isr has been added. It turns off — + or turns into errors — warnings that are reported for interrupt service + routines (ISRs) which don't follow AVR-LibC's naming convention of + prefixing ISR names with __vector. + * __builtin_avr_nops(n) is a new built-in_function that inserts n NOP + instructions into the instruction stream. n must be a value known at + compile time. + +IA-32/x86-64 + + * Support for the AVX-512 Fused Multiply Accumulation Packed Single + precision (4FMAPS), AVX-512 Vector Neural Network Instructions Word + variable precision (4VNNIW), AVX-512 Vector Population Count (VPOPCNTDQ) + and Software Guard Extensions (SGX) ISA extensions has been added. + +NVPTX + + * OpenMP target regions can now be offloaded to NVidia PTX GPGPUs. See the + Offloading_Wiki on how to configure it. + +PowerPC / PowerPC64 / RS6000 + + * The PowerPC port now uses LRA by default. + * GCC now diagnoses inline assembly that clobbers register r2. This has + always been invalid code, and is no longer quietly tolerated. + * The PowerPC port's support for ISA 3.0 (-mcpu=power9) has been enhanced + to generate more of the new instructions by default, and to provide more + built-in functions to generate code for other new instructions. + * The configuration option --enable-gnu-indirect-function is now enabled by + default on PowerPC GNU/Linux builds. + * The PowerPC port will now allow 64-bit and 32-bit integer types to be + allocated to the VSX vector registers (ISA 2.06 and above). In addition, + on ISA 3.0, 16-bit and 8-bit integer types can be allocated in the vector + registers. Previously, only 64-bit integer types were allowed in the + traditional floating point registers. + * New options -mstack-protector-guard=global, -mstack-protector-guard=tls, + -mstack-protector-guard-reg=, and -mstack-protector-guard-offset= change + how the stack protector gets the value to use as canary. + +RISC-V + + * Support for the RISC-V instruction set has been added. + +SPARC + + * The SPARC port now uses LRA by default. + * Support for the new Subtract-Extended-with-Carry instruction available in + SPARC M7 (Niagara 7) has been added. + +Operating Systems + +AIX + + * Visibility support has been enabled for AIX 7.1 and above. + +Fuchsia + + * Support has been added for the Fuchsia_OS. + +RTEMS + + * The ABI changes on ARM so that no short enums are used by default. + +Other significant improvements + + * -fverbose-asm previously emitted information on the meanings of assembly + expressions. This has been extended so that it now also prints comments + showing the source lines that correspond to the assembly, making it + easier to read the generated assembly (especially with larger functions). + For example, given this C source file: + + int test (int n) + { + int i; + int total = 0; + + for (i = 0; i < n; i++) + total += i * i; + return total; + } + + -fverbose-asm now gives output similar to this for the function body + (when compiling for x86_64, with -Os): + + .text + .globl test + .type test, @@function + test: + .LFB0: + .cfi_startproc + # example.c:4: int total = 0; + xorl %eax, %eax # + # example.c:6: for (i = 0; i < n; i++) + xorl %edx, %edx # i + .L2: + # example.c:6: for (i = 0; i < n; i++) + cmpl %edi, %edx # n, i + jge .L5 #, + # example.c:7: total += i * i; + movl %edx, %ecx # i, tmp92 + imull %edx, %ecx # i, tmp92 + # example.c:6: for (i = 0; i < n; i++) + incl %edx # i + # example.c:7: total += i * i; + addl %ecx, %eax # tmp92, + jmp .L2 # + .L5: + # example.c:10: } + ret + .cfi_endproc + + * Two new options have been added for printing fix-it hints: + o -fdiagnostics-parseable-fixits allows for fix-it hints to be + emitted in a machine-readable form, suitable for consumption by + IDEs. For example, given: + + spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'? + return ptr->colour; + ^~~~~~ + color + it will emit: + fix-it:"spellcheck-fields.cc":{52:13-52:19}:"color" + o -fdiagnostics-generate-patch will print a patch in "unified" format + after any diagnostics are printed, showing the result of applying + all fix-it hints. For the above example it would emit: + --- spellcheck-fields.cc + +++ spellcheck-fields.cc + @@ -49,5 +49,5 @@ + + color get_color(struct s *ptr) + { + - return ptr->colour; + + return ptr->color; + } + * The gcc and g++ driver programs will now provide suggestions for + misspelled arguments to command-line options. + $ gcc -c test.c -ftls-model=global-dinamic + gcc: error: unknown TLS model 'global-dinamic' + gcc: note: valid arguments to '-ftls-model=' are: global- + dynamic initial-exec local-dynamic local-exec; did you mean + 'global-dynamic'? + * The compiler will now provide suggestions for misspelled parameters. + $ gcc -c test.c --param max-early-inliner-iteration=3 + cc1: error: invalid --param name 'max-early-inliner-iteration'; + did you mean 'max-early-inliner-iterations'? + * Profile-guided optimization (PGO) instrumentation, as well as test + coverage (GCOV), can newly instrument constructors (functions marks with + __attribute__((constructor))), destructors and C++ constructors (and + destructors) of classes that are used as a type of a global variable. + * A new option -fprofile-update=atomic prevents creation of corrupted + profiles created during instrumentation run (-fprofile=generate) of an + application. Downside of the option is a speed penalty. Providing - + pthread on command line would result in selection of atomic profile + updating (when supports by a target). + * GCC's already extensive testsuite has gained some new capabilities, to + further improve the reliability of the compiler: + o GCC now has has an internal unit testing API and a suite of tests + for programmatic self-testing of subsystems. + o GCC's C frontend has been extended so that it can parse dumps of + GCC's internal representations, allowing for DejaGnu tests that + more directly exercise specific optimization passes. This covers + both the GIMPLE_representation (for testing higher-level + optimizations) and the RTL_representation, allowing for more direct + testing of lower-level details, such as register allocation and + instruction selection. + + For questions related to the use of GCC, please consult these web + pages and the GCC_manuals. If that fails, the gcc-help@gcc.gnu.org + mailing list might help. Comments on these web pages and the + development of GCC are welcome on our developer list at + gcc@gcc.gnu.org. All of our_lists have public archives. + +Copyright (C) Free Software Foundation, Inc. Verbatim copying and +distribution of this entire article is permitted in any medium, +provided this notice is preserved. These pages are maintained by the +GCC team. Last modified 2017-05-01. --- gcc-7-7.5.0.orig/debian/NEWS.html +++ gcc-7-7.5.0/debian/NEWS.html @@ -0,0 +1,1285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +GCC 7 Release Series — Changes, New Features, and Fixes +- GNU Project - Free Software Foundation (FSF) + + + + + + + + + +

GCC 7 Release Series
Changes, New Features, and Fixes

+ +

+This page is a brief summary of some of the huge number of improvements in GCC 7. +For more information, see the +Porting to GCC 7 page and the +full GCC documentation. +

+ + +

Disclaimer: GCC 7 has not been released yet, so this document is +a work-in-progress.

+ + +

Caveats

+
    +
  • GCC now uses LRA (a + new local register allocator) by default for new targets.
  • + +
  • The non-standard C++0x type traits + has_trivial_default_constructor, + has_trivial_copy_constructor and + has_trivial_copy_assign have been removed.
  • +
  • The libstdc++ + Profile + Mode has been deprecated and will be removed in a future version. +
  • + +
  • The Cilk+ extensions to the C and C++ languages have been deprecated.
  • +
+ + +

General Optimizer Improvements

+
    +
  • GCC 7 can determine the return value or range of return values of + some calls to the sprintf family of functions and make + it available to other optimization passes. Some calls to the + snprintf function with a zero size argument can be folded + into constants. This optimization is included in -O1 + and can be selectively controlled by the + -fprintf-return-value option.
  • +
  • A new store merging pass has been added. It merges constant stores to + adjacent memory locations into fewer, wider, stores. + It is enabled by the -fstore-merging option and at the + -O2 optimization level or higher (and -Os).
  • + +
  • A new code hoisting optimization has been added to the partial + redundancy elimination pass. It attempts to move evaluation of + expressions executed on all paths to the function exit as early as + possible, which helps primarily for code size, but can be useful for + speed of generated code as well. It is enabled by the + -fcode-hoisting option and at the -O2 + optimization level or higher (and -Os).
  • + +
  • A new interprocedural bitwise constant propagation optimization + has been added, which propagates knowledge about which bits of variables + are known to be zero (including pointer alignment information) across + the call graph. It is enabled by the -fipa-bit-cp + option if -fipa-cp is enabled as well, and is enabled + at the -O2 optimization level and higher (and + -Os). This optimization supersedes interprocedural + alignment propagation of GCC 6, and therefore the + option -fipa-cp-alignment is now deprecated and + ignored.
  • + +
  • A new interprocedural value range propagation optimization has been + added, which propagates integral ranges that variable values can be proven + to be within across the call graph. It is enabled by the + -fipa-vrp option and at the -O2 optimization + level and higher (and -Os).
  • + +
  • A new loop splitting optimization pass has been added. It splits + certain loops if they contain a condition that is always true on one + side of the iteration space and always false on the other into two + loops where each of the new two loops iterates just on one of the sides + of the iteration space and the condition does not need to be checked + inside of the loop. It is enabled by the -fsplit-loops + option and at the -O3 optimization level or higher.
  • + +
  • The shrink-wrapping optimization can now separate portions of + prologues and epilogues to improve performance if some of the + work done traditionally by prologues and epilogues is not needed + on certain paths. This is controlled by the + -fshrink-wrap-separate option, enabled by default. + It requires target support, which is currently only implemented in the + PowerPC and AArch64 ports.
  • + +
  • AddressSanitizer gained a new sanitization option, -fsanitize-address-use-after-scope, + which enables sanitization of variables whose address is taken and used after a scope where the + variable is defined: +
    +int
    +main (int argc, char **argv)
    +{
    +  char *ptr;
    +    {
    +      char my_char;
    +      ptr = &my_char;
    +    }
    +
    +  *ptr = 123;
    +  return *ptr;
    +}
    +
    +==28882==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7fffb8dba990 at pc 0x0000004006d5 bp 0x7fffb8dba960 sp 0x7fffb8dba958
    +WRITE of size 1 at 0x7fffb8dba990 thread T0
    +    #0 0x4006d4 in main /tmp/use-after-scope-1.c:10
    +    #1 0x7f9c71943290 in __libc_start_main (/lib64/libc.so.6+0x20290)
    +    #2 0x400739 in _start (/tmp/a.out+0x400739)
    +
    +Address 0x7fffb8dba990 is located in stack of thread T0 at offset 32 in frame
    +    #0 0x40067f in main /tmp/use-after-scope-1.c:3
    +
    +  This frame has 1 object(s):
    +    [32, 33) 'my_char' <== Memory access at offset 32 is inside this variable
    +  
    + + The option is enabled by default with -fsanitize=address and disabled + by default with -fsanitize=kernel-address. + Compared to the LLVM compiler, where the option already exists, + the implementation in the GCC compiler has couple of improvements and advantages: +
      +
    • A complex usage of gotos and case labels are properly handled and should not + report any false positive or false negatives. +
    • +
    • C++ temporaries are sanitized.
    • +
    • Sanitization can handle invalid memory stores that are optimized out + by the LLVM compiler when using an optimization level.
    • +
    + +
  • + +
  • The -fsanitize=signed-integer-overflow suboption of the + UndefinedBehavior Sanitizer now diagnoses arithmetic overflows even on + arithmetic operations with generic vectors.
  • + +
  • Version 5 of the DWARF debugging + information standard is supported through the -gdwarf-5 + option. The DWARF version 4 debugging information remains the + default until debugging information consumers are adjusted.
  • + +
+ + +

New Languages and Language specific improvements

+ + OpenACC support in C, C++, and Fortran continues to be maintained and + improved. + See the OpenACC + and Offloading wiki pages + for further information. + + +

Ada

+
    +
  • On mainstream native platforms, Ada programs no longer require the stack + to be made executable in order to run properly.
  • +
+ +

BRIG (HSAIL)

+ +

Support for processing BRIG 1.0 files was added in this release. +BRIG is a binary format for HSAIL (Heterogeneous System Architecture +Intermediate Language). The BRIG frontend can be used for implementing +HSAIL "finalizers" (compilation of HSAIL to a native ISA) for gcc-supported +targets. An implementation of an HSAIL runtime library, libhsail-rt is +also included.

+ +

C family

+
    +
  • New command-line options have been added for the C and C++ compilers: +
      +
    • -Wimplicit-fallthrough warns when a switch case falls + through. This warning has five different levels. The compiler is + able to parse a wide range of fallthrough comments, depending on + the level. It also handles control-flow statements, such as ifs. + It's possible to suppres the warning by either adding a fallthrough + comment, or by using a null statement: __attribute__ + ((fallthrough)); (C, C++), or [[fallthrough]]; + (C++17), or [[gnu::fallthrough]]; (C++11/C++14). + This warning is enabled by -Wextra.
    • +
    • -Wpointer-compare warns when a pointer is compared with + a zero character constant. Such code is now invalid in C++11 and + GCC rejects it. This warning is enabled by default.
    • +
    • -Wduplicated-branches warns when an if-else has identical + branches.
    • +
    • -Wrestrict warns when an argument passed to a + restrict-qualified parameter aliases with another + argument.
    • +
    • -Wmemset-elt-size warns for memset calls, + when the first argument references an array, and the third argument is + a number equal to the number of elements of the array, but not the size + of the array. This warning is enabled by -Wall.
    • +
    • -Wint-in-bool-context warns about suspicious uses of + integer values where boolean values are expected. This warning is + enabled by -Wall.
    • +
    • -Wswitch-unreachable warns when a switch + statement has statements between the controlling expression and the + first case label which will never be executed. This warning is enabled + by default.
    • +
    • -Wexpansion-to-defined warns when defined is + used outside #if. This warning is enabled by + -Wextra or -Wpedantic.
    • +
    • -Wregister warns about uses of the register + storage specifier. In C++17 this keyword has been removed and for C++17 + this is a pedantic warning enabled by default. The warning is not + emitted for the GNU Explicit Register Variables extension.
    • +
    • -Wvla-larger-than=N warns about unbounded uses of + variable-length arrays, and about bounded uses of variable-length + arrays whose bound can be larger than N bytes.
    • +
    • -Wduplicate-decl-specifier warns when a declaration + has duplicate const, volatile, + restrict or _Atomic specifier. This warning + is enabled by -Wall.
    • +
    +
  • +
  • GCC 6's C and C++ frontends were able to offer suggestions for + misspelled field names: +
    +spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'?
    +   return ptr->colour;
    +               ^~~~~~
    +
    + GCC 7 greatly expands the scope of these suggestions. Firstly, it + adds fix-it hints to such suggestions: +
    +spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'?
    +   return ptr->colour;
    +               ^~~~~~
    +               color
    +
    + The suggestions now cover many other things, such as misspelled + function names: +
    +spellcheck-identifiers.c:11:3: warning: implicit declaration of function 'gtk_widget_showall'; did you mean 'gtk_widget_show_all'? [-Wimplicit-function-declaration]
    +   gtk_widget_showall (w);
    +   ^~~~~~~~~~~~~~~~~~
    +   gtk_widget_show_all
    +
    + misspelled macro names and enum values: +
    +spellcheck-identifiers.cc:85:11: error: 'MAX_ITEM' undeclared here (not in a function); did you mean 'MAX_ITEMS'?
    + int array[MAX_ITEM];
    +           ^~~~~~~~
    +           MAX_ITEMS
    +
    + misspelled type names: +
    +spellcheck-typenames.c:7:14: error: unknown type name 'singed'; did you mean 'signed'?
    + void test (singed char e);
    +            ^~~~~~
    +            signed
    +
    + and, in the C frontend, named initializers: +
    +test.c:7:20: error: 'struct s' has no member named 'colour'; did you mean 'color'?
    + struct s test = { .colour = 3 };
    +                    ^~~~~~
    +                    color
    +
  • +
  • The preprocessor can now offer suggestions for misspelled + directives, e.g.: +
    +test.c:5:2: error:invalid preprocessing directive #endfi; did you mean #endif?
    + #endfi
    +  ^~~~~
    +  endif
    +
  • +
  • Warnings about format strings now underline the pertinent part of + the string, and can offer suggested fixes. In some cases, the + pertinent argument is underlined. +
    +test.c:51:29: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'int' [-Wformat=]
    +   printf ("foo: %d  bar: %s baz: %d", 100, i + j, 102);
    +                          ~^                ~~~~~
    +                          %d
    +
  • + +
  • The new -Wdangling-else command-line option has been split +out of -Wparentheses and warns about dangling else.
  • +
  • The -Wshadow warning has been split into three +variants. -Wshadow=global warns for any shadowing. This +is the default when using -Wshadow without any +argument. -Wshadow=local only warns for a local variable +shadowing another local variable or +parameter. -Wshadow=compatible-local only warns for a +local variable shadowing another local variable or parameter whose +type is compatible (in C++ compatible means that the type of the +shadowing variable can be converted to that of the shadowed variable).

    + +

    The following example shows the different kinds of shadow +warnings:

    + +
    +enum operation { add, count };
    +struct container { int nr; };
    +
    +int
    +container_count (struct container c, int count)
    +{
    +  int r = 0;
    +  for (int count = 0; count > 0; count--)
    +    {
    +      struct container count = c;
    +      r += count.nr;
    +    }
    +  return r;
    +}
    + +

    -Wshadow=compatible-local will warn for the parameter being +shadowed with the same type:

    + +
    +warn-test.c:8:12: warning: declaration of 'count' shadows a parameter [-Wshadow=compatible-local]
    +   for (int count = 0; count > 0; count--)
    +            ^~~~~
    +warn-test.c:5:42: note: shadowed declaration is here
    + container_count (struct container c, int count)
    +                                          ^~~~~
    + +

    -Wshadow=local will warn for the above and for the shadowed +declaration with incompatible type:

    + +
    +warn-test.c:10:24: warning: declaration of 'count' shadows a previous local [-Wshadow=local]
    +       struct container count = c;
    +                        ^~~~~
    +warn-test.c:8:12: note: shadowed declaration is here
    +   for (int count = 0; count > 0; count--)
    +            ^~~~~
    + +

    -Wshadow=global will warn for all of the above and the shadowing +of the global declaration:

    + +
    +warn-test.c:5:42: warning: declaration of 'count' shadows a global declaration [-Wshadow]
    + container_count (struct container c, int count)
    +                                          ^~~~~
    +warn-test.c:1:23: note: shadowed declaration is here
    + enum operation { add, count };
    +                       ^~~~~
    +
  • +
  • GCC 7 contains a number of enhancements that help detect buffer overflow + and other forms of invalid memory accesses. +
      +
    • The -Walloc-size-larger-than=size option + detects calls to standard and user-defined memory allocation + functions decorated with attribute alloc_size whose + argument exceeds the specified size + (PTRDIFF_MAX by default). The option also detects + arithmetic overflow in the computation of the size in two-argument + allocation functions like calloc where the total size + is the product of the two arguments. Since calls with an excessive + size cannot succeed they are typically the result of programming + errors. Such bugs have been known to be the source of + security vulnerabilities and a target of exploits. + -Walloc-size-larger-than=PTRDIFF_MAX is included + in -Wall.

      +

      For example, the following call to malloc incorrectly + tries to avoid passing a negative argument to the function and + instead ends up unconditionally invoking it with an argument less + than or equal to zero. Since after conversion to the type of + the argument of the function (size_t) a negative + argument results in a value in excess of the maximum + PTRDIFF_MAX the call is diagnosed.

      +
      +void* f (int n)
      +{
      +  return malloc (n > 0 ? 0 : n);
      +}
      +
      +warning: argument 1 range [2147483648, 4294967295] exceeds maximum object size 2147483647 [-Walloc-size-larger-than=]
    • +
    • The -Walloc-zero option detects calls to standard + and user-defined memory allocation functions decorated with attribute + alloc_size with a zero argument. -Walloc-zero + is not included in either -Wall or -Wextra + and must be explicitly enabled.
    • +
    • The -Walloca option detects all calls to the + alloca function in the program. -Walloca + is not included in either -Wall or -Wextra + and must be explicitly enabled.
    • +
    • The -Walloca-larger-than=size option detects + calls to the alloca function whose argument either may + exceed the specified size, or that is not known + to be sufficiently constrained to avoid exceeding it. + -Walloca-larger-than is not included in either + -Wall or -Wextra and must be explicitly + enabled.

      +

      For example, compiling the following snippet with + -Walloca-larger-than=1024 results in a warning because + even though the code appears to call alloca only with + sizes of 1kb and less, since n is signed, a negative + value would result in a call to the function well in excess of + the limit.

      +
      +void f (int n)
      +{
      +  char *d;
      +  if (n < 1025)
      +    d = alloca (n);
      +  else
      +    d = malloc (n);
      +  …
      +}
      +
      +warning: argument to 'alloca may be too large due to conversion from 'int' to 'long unsigned int' [-Walloca-larger-than=]
      +

      In contrast, a call to alloca that isn't bounded at all + such as in the following function will elicit the warning below + regardless of the size argument to the option.

      +
      +void f (size_t n)
      +{
      +  char *d = alloca (n);
      +  …
      +}
      +
      +warning: unbounded use of 'alloca' [-Walloca-larger-than=]
    • +
    • The -Wformat-overflow=level option detects + certain and likely buffer overflow in calls to the sprintf + family of formatted output functions. Although the option is enabled + even without optimization it works best with -O2 and + higher.

      +

      For example, in the following snippet the call to + sprintf is diagnosed because even though its + output has been constrained using the modulo operation it could + result in as many as three bytes if mday were negative. + The solution is to either allocate a larger buffer or make sure + the argument is not negative, for example by changing + mday's type to unsigned or by making + the type of the second operand of the modulo expression + unsigned: 100U.

      +
      +void* f (int mday)
      +{
      +  char *buf = malloc (3);
      +  sprintf (buf, "%02i", mday % 100);
      +  return buf;
      +}
      +
      +warning: 'sprintf may write a terminating nul past the end of the destination [-Wformat-overflow=]
      +note: 'sprintf' output between 3 and 4 bytes into a destination of size 3
    • +
    • The -Wformat-truncation=level option detects + certain and likely output truncation in calls to the + snprintf family of formatted output functions. + -Wformat-truncation=1 is included in -Wall + and enabled without optimization but works best with -O2 + and higher.

      +

      For example, the following function attempts to format an integer + between 0 and 255 in hexadecimal, including the 0x + prefix, into a buffer of four charactars. But since the function + must always terminate output by the null character ('\0') + such a buffer is only big enough to fit just one digit plus the prefix. + Therefore the snprintf call is diagnosed. To avoid + the warning either use a bigger buffer or handle the function's + return value which indicates whether or not its output has + been truncated.

      +
      +void f (unsigned x)
      +{
      +  char d[4];
      +  snprintf (d, sizeof d, "%#02x", x & 0xff);
      +  …
      +}
      +
      +warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
      +note: 'snprintf' output between 3 and 5 bytes into a destination of size 4
    • +
    • The -Wnonnull option has been enhanced to detect + a broader set of cases of passing null pointers to functions that + expect a non-null argument (those decorated with attribute + nonnull). By taking advantage of optimizations the + option can detect many more cases of the problem than in prior GCC + versions.
    • +
    • The -Wstringop-overflow=type option detects + buffer overflow in calls to string handling functions like + memcpy and strcpy. The option relies on + + Object Size Checking and has an effect similar to defining + the _FORTIFY_SOURCE macro. + -Wstringop-overflow=2 is enabled by default.

      +

      For example, in the following snippet, because the call to + strncat specifies a maximum that allows the function to + write past the end of the destination, it is diagnosed. To correct + the problem and avoid the overflow the function should be called + with a size of at most sizeof d - strlen(d) - 1.

      +
      +void f (const char *fname)
      +{
      +  char d[8];
      +  strncpy (d, "/tmp/", sizeof d);
      +  strncat (d, fname, sizeof d);
      +  …
      +}
      +
      +warning: specified bound 8 equals the size of the destination [-Wstringop-overflow=]
      +
    • +
    +
  • +
  • The <limits.h> header provided by GCC defines + macros such as INT_WIDTH for the width in bits of + integer types, if __STDC_WANT_IEC_60559_BFP_EXT__ is + defined before the header is included. + The <stdint.h> header defines such macros + as SIZE_WIDTH and INTMAX_WIDTH for the + width of some standard typedef names for integer types, + again if __STDC_WANT_IEC_60559_BFP_EXT__ is defined + before the header is included; note that GCC's implementation of + this header is only used for freestanding compilations, not hosted + compilations, on most systems. These macros come from ISO/IEC TS + 18661-1:2014.
  • +
  • The <float.h> header provided by GCC defines + the macro CR_DECIMAL_DIG, from ISO/IEC TS 18661-1:2014, + if __STDC_WANT_IEC_60559_BFP_EXT__ is defined before + the header is included. This represents the number of decimal + digits for which conversions between decimal character strings and + binary formats, in both directions, are correctly rounded, and + currently has the value of UINTMAX_MAX on all systems, + reflecting that GCC's compile-time conversions are correctly rounded + for any number of digits.
  • +
  • New __builtin_add_overflow_p, + __builtin_sub_overflow_p, + __builtin_mul_overflow_p built-in functions have been added. + These work similarly to their siblings without the + _p suffix, but do not actually store the result of the + arithmetics anywhere, just return whether the operation would overflow. + Calls to these built-ins with integer constant arguments evaluate to + integer constants expressions.

    +

    For example, in the following, c is assigned the result + of a * b only if the multiplication does not overflow, + otherwise it is assigned the value zero. The multiplication is + performed at compile-time and without triggering + a -Woverflow warning.

    +
    enum {
    +  a = 12345678,
    +  b = 87654321,
    +  c = __builtin_mul_overflow_p (a, b, a) ? 0 : a * b
    +};
  • + +
+ +

C

+
    +
  • The C front end now supports type + names _FloatN for floating-point types with IEEE + interchange formats and _FloatNx for + floating-point types with IEEE extended formats. These type names + come from ISO/IEC TS 18661-3:2015.

    +

    The set of types supported depends on the target for which GCC is + configured. Most targets + support _Float32, _Float32x + and _Float64. _Float128 is supported on + targets where IEEE binary128 encoding was already supported + as long double + or __float128. _Float64x is supported on + targets where a type with either binary128 or Intel extended + precision format is available.

    +

    Constants with these types are supported using + suffixes fN, FN, + fNx and FNx + (e.g., 1.2f128 or 2.3F64x). Macros such + as FLT128_MAX are defined + in <float.h> + if __STDC_WANT_IEC_60559_TYPES_EXT__ is defined before + it is included.

    +

    These new types are always distinct from each other and + from float, double and long + double, even if they have the same encoding. Complex types + such as _Complex _Float128 are also supported.

    +

    Type-generic built-in functions such + as __builtin_isinf support the new types, and the + following type-specific built-in functions have versions + (suffixed fN or fNx) for the + new + types: __builtin_copysign, __builtin_fabs, __builtin_huge_val, __builtin_inf, __builtin_nan, __builtin_nans.

  • +
  • Compilation with -fopenmp is now compatible with the + C11 _Atomic keyword.
  • +
+ +

C++

+
    +
  • The C++ front end has experimental support for all of the current C++17 + draft with the -std=c++1z or -std=gnu++1z flags, + including if constexpr, class template argument + deduction, auto template parameters, and structured bindings. + For a full list of new features, + see the C++ + status page.
  • +
  • C++17 support for new of over-aligned types can be enabled + in other modes with the -faligned-new flag.
  • +
  • The C++17 evaluation order requirements can be selected in other modes + with the -fstrong-eval-order flag, or disabled in C++17 mode + with -fno-strong-eval-order.
  • +
  • The default semantics of inherited constructors has changed in all modes, + following P0136. Essentially, + overload resolution happens as if calling the inherited constructor + directly, and the compiler fills in construction of the other bases and + members as needed. Most uses should not need any changes. The old + behavior can be restored with -fno-new-inheriting-ctors, + or -fabi-version less than 11.
  • +
  • The resolution of DR 150 on matching of template template parameters, + allowing default template arguments to make a template match a parameter, + is currently enabled by default in C++17 mode only. The default can be + overridden with -f{no-,}new-ttp-matching.
  • +
  • The C++ front end will now provide fix-it hints for some missing + semicolons, allowing for automatic fixes by IDEs: +
    +test.cc:4:11: error: expected ';' after class definition
    + class a {} 
    +           ^
    +           ;
    +
  • +
  • -Waligned-new has been added to the C++ front end. It warns + about new of type with extended alignment without + -faligned-new.
  • +
+ +

Runtime Library (libstdc++)

+
    +
  • + The type of exception thrown by iostreams, + std::ios_base::failure, now uses the + cxx11 + ABI. +
  • +
  • Experimental support for C++17, including the following new features: +
      +
    • + std::string_view; +
    • +
    • + std::any, std::optional, + and std::variant; +
    • +
    • + std::invoke, std::is_invocable, + std::is_nothrow_invocable, and invoke_result; +
    • +
    • + std::is_swappable, + and std::is_nothrow_swappable; +
    • +
    • + std::apply, + and std::make_from_tuple; +
    • +
    • + std::void_t, std::bool_constant, + std::conjunction, std::disjunction, + and std::negation; +
    • +
    • Variable templates for type traits;
    • +
    • Mathematical Special Functions;
    • +
    • + std::chrono::floor, std::chrono::ceil, + std::chrono::round, and std::chrono::abs; +
    • +
    • + std::clamp, std::gcd, std::lcm, + 3-dimensional std::hypot; +
    • +
    • + std::scoped_lock, std::shared_mutex, + std::atomic<T>::is_always_lock_free; +
    • +
    • + std::sample, std::default_searcher, + std::boyer_moore_searcher and + std::boyer_moore_horspool_searcher; +
    • +
    • + Extraction and re-insertion of map and set nodes, try_emplace + members for maps, and functions for accessing containers + std::size, std::empty, and + std::data; +
    • +
    • + std::shared_ptr support for arrays, + std::shared_ptr<T>::weak_type, + std::enable_shared_from_this<T>::weak_from_this(), + and std::owner_less<void>; +
    • +
    • std::byte;
    • +
    • std::as_const, std::not_fn, + std::has_unique_object_representations, + constexpr std::addressof. +
    • +
    + Thanks to Daniel Krügler, Tim Shen, Edward Smith-Rowland, and Ville Voutilainen for + work on the C++17 support. +
  • +
  • + A new power-of-two rehashing policy for use with the + _Hashtable internals, thanks to François Dumont. +
  • +
+ +

Fortran

+
    + +
  • + Support for a number of extensions for compatibility with legacy code + with new flags: +
      +
    • + -fdec-structure + Support for DEC STRUCTURE and UNION +
    • +
    • + -fdec-intrinsic-ints + Support for new integer intrinsics with B/I/J/K prefixes such as + BABS, JIAND... +
    • +
    • + -fdec-math + Support for additional math intrinsics, including COTAN and + degree-valued trigonometric functions such as TAND, + ASIND... +
    • +
    • + -fdec + Enable the -fdec-* family of extensions. +
    • +
    +
  • + +
  • + New flag -finit-derived to allow default initialization of + derived-type variables. +
  • + +
  • + Improved DO loops with step equal to 1 or -1, generates faster + code without a loop preheader. A new warning, -Wundefined-do-loop, + warns when a loop iterates either to HUGE(i) (with step equal + to 1), or to -HUGE(i) (with step equal to -1). Invalid behavior + can be caught at run time with -fcheck=do enabled: +
    +program test
    +  implicit none
    +  integer(1) :: i
    +  do i = -HUGE(i)+10, -HUGE(i)-1, -1
    +    print *, i
    +  end do
    +end program test
    +
    +At line 8 of file do_check_12.f90
    +Fortran runtime error: Loop iterates infinitely
    +
  • +
  • Version 4.5 of the OpenMP specification is now partially supported also in the + Fortran compiler; the largest missing item is structure element + mapping.
  • + +
  • User-defined derived-type input/output (UDTIO) is added.
  • + +
  • Derived type coarrays with allocable and pointer components + is partially supported.
  • + +
  • Non-constant stop codes and error stop codes (Fortran 2015 feature).
  • + +
  • Derived types with allocatable components of recursive type.
  • + +
  • Intrinsic assignment to polymorphic variables.
  • + +
  • Improved submodule support.
  • + +
  • Improved diagnostics (polymorphic results in pure functions).
  • +
+ +

Go

+
    +
  • GCC 7 provides a complete implementation of the Go 1.8.1 + user packages.
  • + +
  • Compared to the Go 1.8.1 toolchain, the garbage collector is more + conservative and less concurrent.
  • + +
  • Escape analysis is available for experimental use via + the -fgo-optimize-allocs option. + The -fgo-debug-escape prints information useful for + debugging escape analysis choices.
  • + +
+ +

Java (GCJ)

+ +

The GCC Java frontend and associated libjava runtime library have been +removed from GCC.

+ + +

libgccjit

+ +

The libgccjit API gained support for marking calls as requiring +tail-call optimization via a new entrypoint: +gcc_jit_rvalue_set_bool_require_tail_call.

+ +

libgccjit performs numerous checks at the API boundary, but +if these succeed, it previously ignored errors and other diagnostics emitted +within the core of GCC, and treated the compile of a gcc_jit_context +as having succeeded. As of GCC 7 it now ensures that if any diagnostics are +emitted, they are visible from the libgccjit API, and that the the context is +flagged as having failed.

+ + +

New Targets and Target Specific Improvements

+ +

AArch64

+
    +
  • + The ARMv8.3-A architecture is now supported. It can be used by + specifying the -march=armv8.3-a option. +
  • +
  • + The option -msign-return-address= is supported to enable + return address protection using ARMv8.3-A Pointer Authentication + Extensions. For more information on the arguments accepted by this + option, please refer to + + AArch64-Options. +
  • +
  • + The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point + Extensions are now supported. They can be used by specifying the + -march=armv8.2-a or -march=armv8.2-a+fp16 + options. + The 16-bit Floating-Point Extensions introduce new half-precision data + processing floating-point instructions. +
  • +
  • + Support has been added for the following processors + (GCC identifiers in parentheses): + ARM Cortex-A73 (cortex-a73), + Broadcom Vulcan (vulcan), + Cavium ThunderX CN81xx (thunderxt81), + Cavium ThunderX CN83xx (thunderxt83), + Cavium ThunderX CN88xx (thunderxt88), + Cavium ThunderX CN88xx pass 1.x (thunderxt88p1), + Cavium ThunderX 2 CN99xx (thunderx2t99), + Qualcomm Falkor (falkor). + The GCC identifiers can be used + as arguments to the -mcpu or -mtune options, + for example: -mcpu=cortex-a73 or + -mtune=vulcan or as arguments to the equivalent target + attributes and pragmas. +
  • +
+ +

ARC

+
    +
  • + Add support for ARC HS and ARC EM processors. +
  • +
  • + Add support for ARC EM variation found in Intel QuarkSE SoCs. +
  • +
  • + Add support for NPS400 ARC700 based CPUs. +
  • +
  • + Thread Local Storage is now supported by ARC CPUs. +
  • +
  • + Fix errors for ARC600 when using 32x16 multiplier option. +
  • +
  • + Fix PIE for ARC CPUs. +
  • +
  • + New CPU templates are supported via multilib. +
  • +
+ +

ARM

+
    +
  • + Support for the ARMv5 and ARMv5E architectures has been deprecated + (which have no known implementations) and will be removed in a future + GCC release. Note that ARMv5T, ARMv5TE and ARMv5TEJ architectures + remain supported. + The values armv5 and armv5e of + -march are thus deprecated. +
  • +
  • + The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point + Extensions are now supported. They can be used by specifying the + -march=armv8.2-a or -march=armv8.2-a+fp16 + options. + The 16-bit Floating-Point Extensions introduce new half-precision data + processing floating-point instructions. +
  • +
  • + The ARMv8-M architecture is now supported in its two architecture + profiles: ARMv8-M Baseline and ARMv8-M Mainline with its DSP and + Floating-Point Extensions. They can be used by specifying the + -march=armv8-m.base, armv8-m.main or + armv8-m.main+dsp options. +
  • +
  • + Support has been added for the following processors + (GCC identifiers in parentheses): ARM Cortex-A73 + (cortex-a73), ARM Cortex-M23 (cortex-m23) and + ARM Cortex-M33 (cortex-m33). + The GCC identifiers can be used + as arguments to the -mcpu or -mtune options, + for example: -mcpu=cortex-a73 or + -mtune=cortex-m33. +
  • +
  • + A new command-line option -mpure-code has been added. + It does not allow constant data to be placed in code sections. + This option is only available when generating non-pic code for ARMv7-M + targets. +
  • +
  • + Support for the ACLE Coprocessor Intrinsics has been added. This enables + the generation of coprocessor instructions through the use of intrinsics + such as cdp, ldc, and others. +
  • +
  • + The configure option --with-multilib-list now accepts the + value rmprofile to build multilib libraries for a range of + embedded targets. See our + installation + instructions for details. +
  • +
+ +

AVR

+
    +
  • On the reduced Tiny cores, the progmem + variable + attribute + is now properly supported. Respective read-only variables are located + in flash memory in section .progmem.data. No special + code is needed to access such variables; the compiler automatically + adds an offset of 0x4000 to all addresses, which is needed + to access variables in flash memory. As opposed to ordinary cores + where it is sufficient to specify the progmem attribute + with definitions, on the reduced Tiny cores the attribute also has to + be specified with (external) declarations: +
    +extern const int array[] __attribute__((__progmem__));
    +
    +int get_value2 (void)
    +{
    +  /* Access via addresses array + 0x4004 and array + 0x4005. */
    +  return array[2];
    +}
    +
    +const int* get_address (unsigned idx)
    +{
    +  /* Returns array + 0x4000 + 2 * idx. */
    +  return &array[idx];
    +}
  • +
  • A new command-line option -Wmisspelled-isr has been added. + It turns off — or turns into errors — + warnings that are reported for interrupt service routines (ISRs) + which don't follow AVR-LibC's naming convention of prefixing + ISR names with __vector.
  • +
  • __builtin_avr_nops(n) is a new + built-in + function + that inserts n NOP instructions into + the instruction stream. n must be a value known at + compile time.
  • +
+ + + +

IA-32/x86-64

+
    +
  • Support for the AVX-512 Fused Multiply Accumulation Packed Single precision + (4FMAPS), AVX-512 Vector Neural Network Instructions Word variable precision + (4VNNIW), AVX-512 Vector Population Count (VPOPCNTDQ) and Software + Guard Extensions (SGX) ISA extensions has been added.
  • +
+ + + + + + + + + +

NVPTX

+
    +
  • OpenMP target regions can now be offloaded to NVidia PTX GPGPUs. + See the Offloading Wiki + on how to configure it.
  • +
+ +

PowerPC / PowerPC64 / RS6000

+
    +
  • The PowerPC port now uses LRA by default.
  • +
  • GCC now diagnoses inline assembly that clobbers register r2. + This has always been invalid code, and is no longer quietly + tolerated.
  • +
  • The PowerPC port's support for ISA 3.0 (-mcpu=power9) + has been enhanced to generate more of the new instructions by default, and + to provide more built-in functions to generate code for other new + instructions.
  • +
  • The configuration option --enable-gnu-indirect-function + is now enabled by default on PowerPC GNU/Linux builds.
  • +
  • The PowerPC port will now allow 64-bit and 32-bit integer types to be + allocated to the VSX vector registers (ISA 2.06 and above). In addition, + on ISA 3.0, 16-bit and 8-bit integer types can be allocated in the vector + registers. Previously, only 64-bit integer types were allowed in the + traditional floating point registers.
  • +
  • New options -mstack-protector-guard=global, + -mstack-protector-guard=tls, + -mstack-protector-guard-reg=, and + -mstack-protector-guard-offset= change how the stack + protector gets the value to use as canary.
  • +
+ + + +

RISC-V

+
    +
  • Support for the RISC-V instruction set has been added.
  • +
+ + + + + +

SPARC

+
    +
  • The SPARC port now uses LRA by default.
  • +
  • Support for the new Subtract-Extended-with-Carry instruction + available in SPARC M7 (Niagara 7) has been added.
  • +
+ + +

Operating Systems

+ +

AIX

+
    +
  • Visibility support has been enabled for AIX 7.1 and above.
  • +
+ +

Fuchsia

+
    +
  • Support has been added for the + Fuchsia OS.
  • +
+ + + + + + + +

RTEMS

+
    +
  • The ABI changes on ARM so that no short enums are used by default.
  • +
+ + + + + + + + + + + +

Other significant improvements

+
    +
  • -fverbose-asm previously emitted information on the + meanings of assembly expressions. This has been extended so that + it now also prints comments showing the source lines that correspond + to the assembly, making it easier to read the generated assembly + (especially with larger functions). + For example, given this C source file: +
    +int test (int n)
    +{
    +  int i;
    +  int total = 0;
    +
    +  for (i = 0; i < n; i++)
    +    total += i * i;
    +  return total;
    +}
    +
    + -fverbose-asm now gives output similar to this for + the function body (when compiling for x86_64, with + -Os): +
    +       .text
    +       .globl  test
    +       .type   test, @@function
    +test:
    +.LFB0:
    +       .cfi_startproc
    +# example.c:4:   int total = 0;
    +       xorl    %eax, %eax      # <retval>
    +# example.c:6:   for (i = 0; i < n; i++)
    +       xorl    %edx, %edx      # i
    +.L2:
    +# example.c:6:   for (i = 0; i < n; i++)
    +       cmpl    %edi, %edx      # n, i
    +       jge     .L5     #,
    +# example.c:7:     total += i * i;
    +       movl    %edx, %ecx      # i, tmp92
    +       imull   %edx, %ecx      # i, tmp92
    +# example.c:6:   for (i = 0; i < n; i++)
    +       incl    %edx    # i
    +# example.c:7:     total += i * i;
    +       addl    %ecx, %eax      # tmp92, <retval>
    +       jmp     .L2     #
    +.L5:
    +# example.c:10: }
    +       ret
    +       .cfi_endproc
    +
  • +
  • Two new options have been added for + printing fix-it hints: +
      +
    • -fdiagnostics-parseable-fixits + allows for fix-it hints to be emitted in a machine-readable + form, suitable for consumption by IDEs. For example, given: +
      +spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'?
      +   return ptr->colour;
      +               ^~~~~~
      +               color
      +
      +it will emit: +
      +fix-it:"spellcheck-fields.cc":{52:13-52:19}:"color"
      +
    • +
    • -fdiagnostics-generate-patch will print + a patch in "unified" format after any diagnostics are printed, + showing the result of applying all fix-it hints. For the above + example it would emit: +
      +--- spellcheck-fields.cc
      ++++ spellcheck-fields.cc
      +@@ -49,5 +49,5 @@
      +
      + color get_color(struct s *ptr)
      + {
      +-  return ptr->colour;
      ++  return ptr->color;
      + }
      +
  • +
  • The gcc and g++ driver programs will now + provide suggestions for misspelled arguments to command-line options. +
    +$ gcc -c test.c -ftls-model=global-dinamic
    +gcc: error: unknown TLS model 'global-dinamic'
    +gcc: note: valid arguments to '-ftls-model=' are: global-dynamic initial-exec local-dynamic local-exec; did you mean 'global-dynamic'?
    +
  • +
  • The compiler will now provide suggestions for misspelled parameters. +
    +$ gcc -c test.c --param max-early-inliner-iteration=3 
    +cc1: error: invalid --param name 'max-early-inliner-iteration'; did you mean 'max-early-inliner-iterations'?
    +
  • + +
  • Profile-guided optimization (PGO) instrumentation, as well as test coverage (GCOV), + can newly instrument constructors (functions marks with __attribute__((constructor))), + destructors and C++ constructors (and destructors) of classes that are used + as a type of a global variable. +
  • +
  • A new option -fprofile-update=atomic prevents creation of corrupted + profiles created during instrumentation run (-fprofile=generate) + of an application. Downside of the option is a speed penalty. Providing + -pthread on command line would result in selection of atomic + profile updating (when supports by a target). +
  • +
  • +

    GCC's already extensive testsuite has gained some new + capabilities, to further improve the reliability of the compiler:

    +
      +
    • GCC now has has an internal unit testing API and a suite of tests + for programmatic self-testing of subsystems.
    • +
    • GCC's C frontend has been extended so that it can parse dumps of + GCC's internal representations, allowing for DejaGnu tests + that more directly exercise specific optimization passes. This + covers both the + + GIMPLE representation (for testing higher-level + optimizations) and the + + RTL representation, allowing for more direct testing of + lower-level details, such as register allocation and instruction + selection.
    • +
    +
  • +
+ + + + + + + + + + + + + + + + --- gcc-7-7.5.0.orig/debian/README.Bugs.m4 +++ gcc-7-7.5.0/debian/README.Bugs.m4 @@ -0,0 +1,333 @@ +Reporting Bugs in the GNU Compiler Collection for DIST +======================================================== + +Before reporting a bug, please +------------------------------ + +- Check that the behaviour really is a bug. Have a look into some + ANSI standards document. + +- Check the list of well known bugs: http://gcc.gnu.org/bugs.html#known + +- Try to reproduce the bug with a current GCC development snapshot. You + usually can get a recent development snapshot from the gcc-snapshot +ifelse(DIST,`Debian',`dnl + package in the unstable (or experimental) distribution. + + See: http://packages.debian.org/gcc-snapshot +', DIST, `Ubuntu',`dnl + package in the current development distribution. + + See: http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-snapshot/ +')dnl + +- Try to find out if the bug is a regression (an older GCC version does + not show the bug). + +- Check if the bug is already reported in the bug tracking systems. + +ifelse(DIST,`Debian',`dnl + Debian: http://bugs.debian.org/debian-gcc@lists.debian.org +', DIST, `Ubuntu',`dnl + Ubuntu: https://bugs.launchpad.net/~ubuntu-toolchain/+packagebugs + Debian: http://bugs.debian.org/debian-gcc@lists.debian.org +')dnl + Upstream: http://gcc.gnu.org/bugzilla/ + + +Where to report a bug +--------------------- + +ifelse(DIST,`Debian',`dnl +Please report bugs found in the packaging of GCC to the Debian bug tracking +system. See http://www.debian.org/Bugs/ for instructions (or use the +reportbug script). +', DIST, `Ubuntu',`dnl +Please report bugs found in the packaging of GCC to Launchpad. See below +how issues should be reported. +')dnl + +DIST's current policy is to closely follow the upstream development and +only apply a minimal set of patches (which are summarized in the README.Debian +document). + +ifelse(DIST,`Debian',`dnl +If you think you have found an upstream bug, you did check the section +above ("Before reporting a bug") and are able to provide a complete bug +report (see below "How to report a bug"), then you may help the Debian +GCC package maintainers, if you report the bug upstream and then submit +a bug report to the Debian BTS and tell us the upstream report number. +This way you are able to follow the upstream bug handling as well. If in +doubt, report the bug to the Debian BTS (but read "How to report a bug" +below). +', DIST, `Ubuntu',`dnl +If you think you have found an upstream bug, you did check the section +above ("Before reporting a bug") and are able to provide a complete bug +report (see below "How to report a bug"), then you may help the Ubuntu +GCC package maintainers, if you report the bug upstream and then submit +a bug report to Launchpad and tell us the upstream report number. +This way you are able to follow the upstream bug handling as well. If in +doubt, report the bug to Launchpad (but read "How to report a bug" below). + +Report the issue to https://bugs.launchpad.net/ubuntu/+source/SRCNAME. +')dnl + + +How to report a bug +------------------- + +There are complete instructions in the gcc info manual (found in the +gcc-doc package), section Bugs. + +The manual can be read using `M-x info' in Emacs, or if the GNU info +program is installed on your system by `info --node "(gcc)Bugs"'. Or see +the file BUGS included with the gcc source code. + +Online bug reporting instructions can be found at + + http://gcc.gnu.org/bugs.html + +[Some paragraphs taken from the above URL] + +The main purpose of a bug report is to enable us to fix the bug. The +most important prerequisite for this is that the report must be +complete and self-contained, which we explain in detail below. + +Before you report a bug, please check the list of well-known bugs and, +if possible in any way, try a current development snapshot. + +Summarized bug reporting instructions +------------------------------------- + +What we need + +Please include in your bug report all of the following items, the +first three of which can be obtained from the output of gcc -v: + + * the exact version of GCC; + * the system type; + * the options given when GCC was configured/built; + * the complete command line that triggers the bug; + * the compiler output (error messages, warnings, etc.); and + * the preprocessed file (*.i*) that triggers the bug, generated by + adding -save-temps to the complete compilation command, or, in + the case of a bug report for the GNAT front end, a complete set + of source files (see below). + +What we do not want + + * A source file that #includes header files that are left out + of the bug report (see above) + * That source file and a collection of header files. + * An attached archive (tar, zip, shar, whatever) containing all + (or some :-) of the above. + * A code snippet that won't cause the compiler to produce the + exact output mentioned in the bug report (e.g., a snippet with + just a few lines around the one that apparently triggers the + bug, with some pieces replaced with ellipses or comments for + extra obfuscation :-) + * The location (URL) of the package that failed to build (we won't + download it, anyway, since you've already given us what we need + to duplicate the bug, haven't you? :-) + * An error that occurs only some of the times a certain file is + compiled, such that retrying a sufficient number of times + results in a successful compilation; this is a symptom of a + hardware problem, not of a compiler bug (sorry) + * E-mail messages that complement previous, incomplete bug + reports. Post a new, self-contained, full bug report instead, if + possible as a follow-up to the original bug report + * Assembly files (*.s) produced by the compiler, or any binary files, + such as object files, executables, core files, or precompiled + header files + * Duplicate bug reports, or reports of bugs already fixed in the + development tree, especially those that have already been + reported as fixed last week :-) + * Bugs in the assembler, the linker or the C library. These are + separate projects, with separate mailing lists and different bug + reporting procedures + * Bugs in releases or snapshots of GCC not issued by the GNU + Project. Report them to whoever provided you with the release + * Questions about the correctness or the expected behavior of + certain constructs that are not GCC extensions. Ask them in + forums dedicated to the discussion of the programming language + + +Known Bugs and Non-Bugs +----------------------- + +[Please see /usr/share/doc/gcc/FAQ or http://gcc.gnu.org/faq.html first] + + +C++ exceptions don't work with C libraries +------------------------------------------ + +[Taken from the closed bug report #22769] C++ exceptions don't work +with C libraries, if the C code wasn't designed to be thrown through. +A solution could be to translate all C libraries with -fexceptions. +Mostly trying to throw an exception in a callback function (qsort, +Tcl command callbacks, etc ...). Example: + + #include + #include + + class A {}; + + static + int SortCondition(void const*, void const*) + { + printf("throwing 'sortcondition' exception\n"); + throw A(); + } + + int main(int argc, char *argv[]) + { + int list[2]; + + try { + SortCondition(NULL,NULL); + } catch (A) { + printf("caught test-sortcondition exception\n"); + } + try { + qsort(&list, sizeof(list)/sizeof(list[0]),sizeof(list[0]), + &SortCondition); + } catch (A) { + printf("caught real-sortcondition exception\n"); + } + return 0; +} + +Andrew Macleod responded: + +When compiled with the table driven exception handling, exception can only +be thrown through functions which have been compiled with the table driven EH. +If a function isn't compiled that way, then we do not have the frame +unwinding information required to restore the registers when unwinding. + +I believe the setjmp/longjmp mechanism will throw through things like this, +but its produces much messier code. (-fsjlj-exceptions) + +The C compiler does support exceptions, you just have to turn them on +with -fexceptions. + +Your main options are to: + a) Don't use callbacks, or at least don't throw through them. + b) Get the source and compile the library with -fexceptions (You have to + explicitly turn on exceptions in the C compiler) + c) always use -fsjlj-exceptions (boo, bad choice :-) + + +g++: "undefined reference" to static const array in class +--------------------------------------------------------- + +The following code compiles under GNU C++ 2.7.2 with correct results, +but produces the same linker error with GNU C++ 2.95.2. +Alexandre Oliva responded: + +All of them are correct. A static data member *must* be defined +outside the class body even if it is initialized within the class +body, but no diagnostic is required if the definition is missing. It +turns out that some releases do emit references to the missing symbol, +while others optimize it away. + +#include + +class Test +{ + public: + Test(const char *q); + protected: + static const unsigned char Jam_signature[4] = "JAM"; +}; + +Test::Test(const char *q) +{ + if (memcmp(q, Jam_signature, sizeof(Jam_signature)) != 0) + cerr << "Hello world!\n"; +} + +int main(void) +{ + Test::Test("JAM"); + return 0; +} + +g++: g++ causes passing non const ptr to ptr to a func with const arg + to cause an error (not a bug) +--------------------------------------------------------------------- + +Example: + +#include +void test(const char **b){ + printf ("%s\n",*b); +} +int main(void){ + char *test1="aoeu"; + test(&test1); +} + +make const +g++ const.cc -o const +const.cc: In function `int main()': +const.cc:7: passing `char **' as argument 1 of `test(const char **)' adds cv-quals without intervening `const' +make: *** [const] Error 1 + +Answer from "Martin v. Loewis" : + +> ok... maybe I missed something.. I haven't really kept up with the latest in +> C++ news. But I've never heard anything even remotly close to passing a non +> const var into a const arg being an error before. + +Thanks for your bug report. This is a not a bug in the compiler, but +in your code. The standard, in 4.4/4, puts it that way + +# A conversion can add cv-qualifiers at levels other than the first in +# multi-level pointers, subject to the following rules: +# Two pointer types T1 and T2 are similar if there exists a type T and +# integer n > 0 such that: +# T1 is cv(1,0) pointer to cv(1,1) pointer to ... cv(1,n-1) +# pointer to cv(1,n) T +# and +# T2 is cv(2,0) pointer to cv(2,1) pointer to ... cv(2,n-1) +# pointer to cv(2,n) T +# where each cv(i,j) is const, volatile, const volatile, or +# nothing. The n-tuple of cv-qualifiers after the first in a pointer +# type, e.g., cv(1,1) , cv(1,2) , ... , cv(1,n) in the pointer type +# T1, is called the cv-qualification signature of the pointer type. An +# expression of type T1 can be converted to type T2 if and only if the +# following conditions are satisfied: +# - the pointer types are similar. +# - for every j > 0, if const is in cv(1,j) then const is in cv(2,j) , +# and similarly for volatile. +# - if the cv(1,j) and cv(2,j) are different, then const is in every +# cv(2,k) for 0 < k < j. + +It is the last rule that your code violates. The standard gives then +the following example as a rationale: + +# [Note: if a program could assign a pointer of type T** to a pointer +# of type const T** (that is, if line //1 below was allowed), a +# program could inadvertently modify a const object (as it is done on +# line //2). For example, +# int main() { +# const char c = 'c'; +# char* pc; +# const char** pcc = &pc; //1: not allowed +# *pcc = &c; +# *pc = 'C'; //2: modifies a const object +# } +# - end note] + +If you question this line of reasoning, please discuss it in one of +the public C++ fora first, eg. comp.lang.c++.moderated, or +comp.std.c++. + + +cpp removes blank lines +----------------------- + +With the new cpp, you need to add -traditional to the "cpp -P" args, else +blank lines get removed. + +[EDIT ME: scan Debian bug reports and write some nice summaries ...] --- gcc-7-7.5.0.orig/debian/README.C++ +++ gcc-7-7.5.0/debian/README.C++ @@ -0,0 +1,35 @@ +libstdc++ is an implementation of the Standard C++ Library, including the +Standard Template Library (i.e. as specified by ANSI and ISO). + +Some notes on porting applications from libstdc++-2.90 (or earlier versions) +to libstdc++-v3 can be found in the libstdc++6-4.3-doc package. After the +installation of the package, look at: + + file:///usr/share/doc/gcc-4.3-base/libstdc++/html/17_intro/porting-howto.html + +On Debian GNU/Linux you find additional documentation in the +libstdc++6-4.3-doc package. After installing these packages, +point your browser to + + file:///usr/share/doc/libstdc++6-4.3-doc/libstdc++/html/index.html + +Other documentation can be found: + + http://www.sgi.com/tech/stl/ + +with a good, recent, book on C++. + +A great deal of useful C++ documentation can be found in the C++ FAQ-Lite, +maintained by Marshall Cline . It can be found at the +mirror sites linked from the following URL (this was last updated on +2010/09/11): + + http://www.parashift.com/c++-faq/ + +or use some search engin site to find it, e.g.: + + http://www.google.com/search?q=c%2B%2B+faq+lite + +Be careful not to use outdated mirors. + +Please send updates to this list as bug report for the g++ package. --- gcc-7-7.5.0.orig/debian/README.Debian +++ gcc-7-7.5.0/debian/README.Debian @@ -0,0 +1,45 @@ + The Debian GNU Compiler Collection setup + ======================================== + +Please see the README.Debian in /usr/share/doc/gcc, contained in the +gcc package for a description of the setup of the different compiler +versions. + +For general discussion about the Debian toolchain (GCC, glibc, binutils) +please use the mailing list debian-toolchain@lists.debian.org; for GCC +specific things, please use debian-gcc@lists.debian.org. When in doubt +use the debian-toolchain ML. + + +Maintainers of these packages +----------------------------- + +Matthias Klose +Ludovic Brenta (gnat) +Iain Buclaw (gdc) +Aurelien Jarno (mips*-linux) +Aurelien Jarno (s390X*-linux) + +The following ports lack maintenance in Debian: powerpc, ppc64, +sparc, sparc64 (unmentioned ports are usually handled by the Debian +porters). + +Former and/or inactive maintainers of these packages +---------------------------------------------------- + +Falk Hueffner (alpha-linux) +Ray Dassen +Jeff Bailey (hurd-i386) +Joel Baker (netbsd-i386) +Randolph Chung (ia64-linux) +Philip Blundell (arm-linux) +Ben Collins (sparc-linux) +Dan Jacobowitz (powerpc-linux) +Thiemo Seufer (mips*-linux) +Matt Taggart (hppa-linux) +Gerhard Tonn (s390-linux) +Roman Zippel (m68k-linux) +Arthur Loiret (gdc) + +=============================================================================== + --- gcc-7-7.5.0.orig/debian/README.cross +++ gcc-7-7.5.0/debian/README.cross @@ -0,0 +1,20 @@ +Building cross-compiler Debian packages +--------------------------------------- + +The packaging for cross toolchains is now in the archive, including +all frontends, and targeting all release and ports architectures. + +Cross toolchains are built from the following source packages: + + - binutils + - cross-toolchain-base + - cross-toolchain-base-ports + - gcc-7-cross + - gcc-7-cross-ports + - gcc-8-cross + - gcc-8-cross-ports + - gcc-defaults + - gcc-defaults-ports + +Issues about the cross toolchains should be filed for one of the +above source packages. --- gcc-7-7.5.0.orig/debian/README.gnat +++ gcc-7-7.5.0/debian/README.gnat @@ -0,0 +1,35 @@ +If you want to develop Ada programs and libraries on Debian, please +read the Debian Policy for Ada: + +http://people.debian.org/~lbrenta/debian-ada-policy.html + +The default Ada compiler is and always will be the package `gnat'. +Debian contains many programs and libraries compiled with it, which +are all ABI-compatible. + +Starting with gnat-4.2, Debian provides both zero-cost and +setjump/longjump versions of the run-time library. The zero-cost +exception handling mechanism is the default as it provides the best +performance. The setjump/longjump exception handling mechanism is new +and only provided as a static library. It is necessary to use this +exception handling mechanism in distributed (annex E) programs. If +you wish to use the new sjlj library: + +1) call gnatmake with --RTS=sjlj +2) call gnatbind with -static + +Do NOT link your programs with libgnat-4.2.so, because it uses the ZCX +mechanism. + + +This package also includes small tools covering specific needs. + +* When linking objects compiled from both Ada and C sources, you need + to use compatible versions of the Ada and C compilers. The + /usr/bin/gnatgcc symbolic link targets a version of the C compiler + compatible with the default Ada compiler, and may differ from the + default C compiler /usr/bin/gcc. + +* When packaging Ada sources for Debian, you may want to read the + /usr/share/ada/debian_packaging.mk Makefile snippet and/or include + it from debian/rules in order to set sensible defaults. --- gcc-7-7.5.0.orig/debian/README.libstdc++-baseline.in +++ gcc-7-7.5.0/debian/README.libstdc++-baseline.in @@ -0,0 +1,2 @@ +The libstdc++ baseline file is a list of symbols exported by the +libstdc++ library. --- gcc-7-7.5.0.orig/debian/README.maintainers +++ gcc-7-7.5.0/debian/README.maintainers @@ -0,0 +1,190 @@ +-*- Outline -*- + +Read this file if you are a Debian Developer or would like to become +one, or if you would like to create your own binary packages of GCC. + +* Overview + +From the GCC sources, Debian currently builds 3 source packages and +almost 100 binary packages, using a single set of build scripts. The +3 source packages are: + +gcc-x.y: C, C++, Fortran, Objective-C and Objective-C++, plus many + common libraries like libssp and libgcc. +gnat-x.y: Ada. + +The way we do this is quite peculiar, so listen up :) + +When we build from the gcc-x.y source package, we produce, among many +others, a gcc-x.y-source binary package that contains the pristine +upstream tarball and some Debian-specific patches. Any user can then +install this package on their Debian system, and will have the full +souces in /usr/src/gcc-x.y/gcc-.tar.bz2, along with the +Makefile snippets that unpack and patch them. + +The intended use for this package is twofold: (a) allow users to build +their own cross-compilers, and (b) build the other packages like +gnat-x.y. + +- gcc-x.y requires only a C compiler to build and produces C, C++, + Fortran, Go and Objective-C compilers and libraries. It also + produces the binary package gcc-x.y-source containing all the + sources and patches in a tarball. + +- gnat-x.y build-depends on gcc-x.y-source and an Ada compiler. It + does not even have an .orig.tar.bz2 package; it is a Debian native + package. + +The benefits of this split are many: + +- bootstrapping a subset of languages is much faster than + bootstrapping all languages and libraries (which can take a full + week on slow architectures like mips or arm) + +- the language maintainers don't have to wait for each other + +- for new ports, the absence of a port of, say, gnat-x.y does not + block the porting of gcc-x.y. + +gcc-x.y-source is also intended for interested users to build +cross-compiler packages. Debian cannot provide all possible +cross-compiler packages (i.e. all possible host, target, language and +library combinations), so instead tries to facilitate building them. + +* The build sequence + +As for all other Debian packages, you build GCC by calling +debian/rules. + +The first thing debian/rules does it to look at the top-most entry in +debian/changelog: this tells it which source package it is building. +For example, if the first entry in debian/changelog reads: + +gnat-6 (6.2.0-1) unstable; urgency=low + + * Upload as gnat-6. + + -- Ludovic Brenta Tue, 26 Jun 2007 00:26:42 +0200 + +then, debian/rules will build only the gnat binary packages. + +The second step is to build debian/control from debian/control.m4 and +a complex set of rules specified in debian/rules.conf. The resulting +control file contains only the binary packages to be built. + +The third step is to select which patches to apply (this is done in +debian/rules.defs), and then to apply the selected patches (see +debian/rules.patch). The result of this step is a generated +debian/patches/series file for use by quilt. + +The fourth step is to unpack the GCC source tarball. This tarball is +either in the build directory (when building gcc-x.y), or in +/usr/src/gcc-x.y/gcc-x.y.z.tar.xz (when building the other source +packages). + +The fifth step is to apply all patches to the unpacked sources with +quilt. + +The sixth step is to create a "build" directory, cd into it, call +../src/configure, and bootstrap the compiler and libraries selected. +This is in debian/rules2. + +The seventh step is to call "make install" in the build directory: +this installs the compiler and libraries into debian/tmp +(i.e. debian/tmp/usr/bin/gcc, etc.) + +The eighth step is to run the GCC test suite. This actually takes at +least as much time as bootstrapping, and you can disable it by setting +WITHOUT_CHECK to "yes" in the environment. + +The ninth step is to build the binary packages, i.e. the .debs. This +is done by a set of language- and architecture-dependent Makefile +snippets in the debian/rules.d/ directory, which move files from the +debian/tmp tree to the debian/ trees. + +* Making your own packages + +In this example, we will build our own gnat-x.y package. + +1) Install gcc-x.y-source, which contains the real sources: + +# aptitude install gcc-x.y-source + +2) Create a build directory: + +$ mkdir gnat-x.y-x.y.z; cd gnat-x.y-x.y.z + +3) Checkout from Subversion: + +$ svn checkout svn://svn.debian.org/gcccvs/branches/sid/gcc-x.y/debian + +4) Edit the debian/changelog file, adding a new entry at the top that + starts with "gnat-x.y". + +5) Generate the debian/control file, adjusted for gnat: + +$ debian/rules control + +8) Build: + +$ dpkg-buildpackage + +* Hints + +You need a powerful machine to build GCC. The larger, the better. +The build scripts take advantage of as many CPU threads as are +available in your box (for example: 2 threads on a dual-core amd64; 4 +threads on a dual-core POWER5; 32 threads on an 8-core UltraSPARC T1, +etc.). + +If you have 2 GB or more of physical RAM, you can achieve maximum +performance by building in a tmpfs, like this: + +1) as root, create the new tmpfs: + +# mount -t tmpfs -o size=1280m none /home/lbrenta/src/debian/ram + +By default, the tmpfs will be limited to half your physical RAM. The +beauty of it is that it only consumes as much physical RAM as +necessary to hold the files in it; deleting files frees up RAM. + +2) As your regular user, create the working directory in the tmpfs + +$ cp --archive ~/src/debian/gcc-x.y-x.y.z ~/src/debian/ram + +3) Build in there. On my dual-core, 2 GHz amd64, it takes 34 minutes + to build gnat, and the tmpfs takes 992 MiB of physical RAM but + exceeds 1 GiB during the build. + +Note that the build process uses a lot of temporary files. Your $TEMP +directory should therefore also be in a ram disk. You can achieve +that either by mounting it as tmpfs, or by setting TEMP to point to +~/src/debian/ram. + +Also note that each thread in your processor(s) will run a compiler in +it and use up RAM. Therefore your physical memory should be: + +Physical_RAM >= 1.2 + 0.4 * Threads (in GiB) + +(this is an estimate; your mileage may vary). If you have less +physical RAM than recommended, reduce the number of threads allocated +to the build process, or do not use a tmpfs to build. + +* Patching GCC + +Debian applies a large number of patches to GCC as part of the build +process. It uses quilt but the necessary debian/patches/series is not +part of the packaging scripts; instead, "debian/rules patch" generates +this file by looking at debian/control (which is itself generated!), +debian/changelog and other files. Then it applies all the patches. +At this point, you can use quilt as usual: + +$ cd ~/src/debian/gcc-x.y +$ export QUILT_PATCHES=$PWD/debian/patches +$ quilt series + +If you add new patches, remember to add them to the version control +system too. + +-- +Ludovic Brenta, 2012-04-02. --- gcc-7-7.5.0.orig/debian/README.snapshot +++ gcc-7-7.5.0/debian/README.snapshot @@ -0,0 +1,36 @@ +Debian gcc-snapshot package +=========================== + +This package contains a recent development SNAPSHOT of all files +contained in the GNU Compiler Collection (GCC). + +DO NOT USE THIS SNAPSHOT FOR BUILDING DEBIAN PACKAGES! + +This package will NEVER hit the testing distribution. It's used for +tracking gcc bugs submitted to the Debian BTS in recent development +versions of gcc. + +To use this snapshot, you should set the following environment variables: + + LD_LIBRARY_PATH=/usr/lib/gcc-snapshot/lib:$LD_LIBRARY_PATH + PATH=/usr/lib/gcc-snapshot/bin:$PATH + +You might also like to use a shell script to wrap up this +funcationality, e.g. + +place in /usr/local/bin/gcc-snapshot and chmod +x it + +----------- snip ---------- +#! /bin/sh +LD_LIBRARY_PATH=/usr/lib/gcc-snapshot/lib:$LD_LIBRARY_PATH +PATH=/usr/lib/gcc-snapshot/bin:$PATH +gcc "$@" +----------- snip ---------- + +Make the same for g++, g77, cpp, ... + +Don't forget the quotes around the $@ or gcc will not parse it's +command line correctly! + +Unset these variables before building Debian packages destined for an +upload to ftp-master.debian.org. --- gcc-7-7.5.0.orig/debian/README.source +++ gcc-7-7.5.0/debian/README.source @@ -0,0 +1,16 @@ +Patches applied to the Debian version of GCC +-------------------------------------------- + +Debian specific patches can be found in the debian/patches directory. +Quilt is used as the patch system. See /usr/share/doc/quilt/README.source +for details about quilt. + +Patches are applied by calling `debian/rules patch'. The `series' +file is constructed on the fly based on the files found in the to +debian/rules.patch "debian_patches" variable, configure scripts are +regenerated in the `patch' target. The gcc source is unpacked under +src/ this needs to be reflected in the patch header. + +The source packages gdc-x.y and gnat-x.y do not contain copies of the +source code but build-depend on the appropriate gcc-x.y-source package +instead. --- gcc-7-7.5.0.orig/debian/README.ssp +++ gcc-7-7.5.0/debian/README.ssp @@ -0,0 +1,28 @@ +Stack smashing protection is a feature of GCC that enables a program to +detect buffer overflows and immediately terminate execution, rather than +continuing execution with corrupt internal data structures. It uses +"canaries" and local variable reordering to reduce the likelihood of +stack corruption through buffer overflows. + +Options that affect stack smashing protection: + +-fstack-protector + Enables protection for functions that are vulnerable to stack + smashing, such as those that call alloca() or use pointers. + +-fstack-protector-all + Enables protection for all functions. + +-Wstack-protector + Warns about functions that will not be protected. Only active when + -fstack-protector has been used. + +Applications built with stack smashing protection should link with the +ssp library by using the option "-lssp" for systems with glibc-2.3.x or +older; glibc-2.4 and newer versions provide this functionality in libc. + +The Debian architectures alpha, hppa, ia64, m68k, mips, mipsel do not +have support for stack smashing protection. + +More documentation can be found at the project's website: +http://researchweb.watson.ibm.com/trl/projects/security/ssp/ --- gcc-7-7.5.0.orig/debian/TODO +++ gcc-7-7.5.0/debian/TODO @@ -0,0 +1,46 @@ +(It is recommended to edit this file with emacs' todoo mode) +Last updated: 2008-05-02 + +* General + +- Clean up the sprawl of debian/rules. I'm sure there are neater + ways to do some of it; perhaps split it up into some more files? + Partly done. + +- Make debian/rules control build the control file without unpacking + the sources or applying patches. Currently, it unpacks the sources, + patches them, creates the control file, and a subsequent + dpkg-buildpackage deletes the sources, re-unpacks them, and + re-patches them. + +- Reorganise debian/rules.defs to decide which packages to build in a + more straightforward and less error-prone fashion: (1) start with + all languages; override the list of languages depending on the name + of the source package (gcc-4.3, gnat-4.3, gdc-4.3). (2) + filter the list of languages depending on the target platform; (3) + depending on the languages to build, decide on which libraries to + build. + +o [Ludovic Brenta] Ada + +- Done: Link the gnat tools with libgnat.so, instead of statically. + +- Done: Build libgnatvsn containing parts of the compiler (version + string, etc.) under GNAT-Modified GPL. Link the gnat tools with it. + +- Done: Build libgnatprj containing parts of the compiler (the project + manager) under pure GPL. Link the gnat tools with it. + +- Done: Build both the zero-cost and setjump/longjump exceptions + versions of libgnat. In particular, gnat-glade (distributed systems) + works best with SJLJ. + +- Done: Re-enable running the test suite. + +- Add support for building cross-compilers. + +- Add support for multilib (not yet supported upstream). + +* Fortran + +- gfortran man page generation --- gcc-7-7.5.0.orig/debian/acats-killer.sh +++ gcc-7-7.5.0/debian/acats-killer.sh @@ -0,0 +1,62 @@ +#! /bin/sh + +# on ia64 systems, the acats hangs in unaligned memory accesses. +# kill these testcases. + +pidfile=acats-killer.pid + +usage() +{ + echo >&2 "usage: `basename $0` [-p ] " + exit 1 +} + +while [ $# -gt 0 ]; do + case $1 in + -p) + pidfile=$2 + shift + shift + ;; + -*) + usage + ;; + *) + break + esac +done + +[ $# -eq 2 ] || usage + +logfile=$1 +stopfile=$2 +interval=30 + +echo $$ > $pidfile + +while true; do + if [ -f "$stopfile" ]; then + echo "`basename $0`: finished." + rm -f $pidfile + exit 0 + fi + sleep $interval + if [ ! -f "$logfile" ]; then + continue + fi + pids=$(ps aux | awk '/testsuite\/ada\/acats\/tests/ { print $2 }') + if [ -n "$pids" ]; then + sleep $interval + pids2=$(ps aux | awk '/testsuite\/ada\/acats\/tests/ { print $2 }') + if [ "$pids" = "$pids2" ]; then + #echo kill: $pids + kill $pids + sleep 1 + pids2=$(ps aux | awk '/testsuite\/ada\/acats\/tests/ { print $2 }') + if [ "$pids" = "$pids2" ]; then + #echo kill -9: $pids + kill -9 $pids + fi + fi + fi +done --- gcc-7-7.5.0.orig/debian/ada/confirm_debian_bugs.py +++ gcc-7-7.5.0/debian/ada/confirm_debian_bugs.py @@ -0,0 +1,980 @@ +#!/usr/bin/python2 + +# Helper when migrating bugs from a gnat version to another. + +from __future__ import print_function +import os.path +import re +import shutil +import subprocess +import tempfile + +os.environ ['LC_ALL'] = 'C' + +# If True, "reassign" -> "found" and "retitle" -> "fixed". +# Once the bug tracking system is informed, please update this boolean. +same_gcc_base_version = True + +# The current version. +new_version = "7" + +for line in subprocess.check_output (("dpkg", "--status", "gnat-" + new_version)).split ("\n"): + if line.startswith ("Version: "): + deb_version = line [len ("Version: "):] + break +# Will cause an error later if deb_version is not defined. + +# Each bug has its own subdirectory in WORKSPACE. +# Every bug subdir is removed if the bug is confirmed, +# and WORKSPACE is removed if empty. +workspace = tempfile.mkdtemp (suffix = "-gnat-" + deb_version + "-bugs") + +def attempt_to_reproduce (bug, make, sources): + tmp_dir = os.path.join (workspace, "bug{}".format (bug)) + os.mkdir (tmp_dir) + + for (name, contents) in sources: + with open (os.path.join (tmp_dir, name), "w") as f: + f.write (contents) + + path = os.path.join (tmp_dir, "stderr.log") + with open (path, "w") as e: + status = subprocess.call (make, stderr=e, cwd=tmp_dir) + with open (path, "r") as e: + stderr = e.read () + return tmp_dir, status, stderr + +def reassign_and_remove_dir (bug, tmp_dir): + if same_gcc_base_version: + print ("found {} {}".format (bug, deb_version)) + else: + print ("reassign {} {} {}".format (bug, "gnat-" + new_version, deb_version)) + shutil.rmtree (tmp_dir) + +def report (bug, message, output): + print ("# {}: {}.".format (bug, message)) + for line in output.split ("\n"): + print ("# " + line) + +def report_and_retitle (bug, message, output): + report (bug, message, output) + if same_gcc_base_version: + print ("fixed {} {}".format (bug, deb_version)) + else: + print ("retitle {} [Fixed in {}] ".format (bug, new_version)) + +def check_compiles_but_should_not (bug, make, sources): + tmp_dir, status, stderr = attempt_to_reproduce (bug, make, sources) + if status == 0: + reassign_and_remove_dir (bug, tmp_dir) + else: + report_and_retitle (bug, "now fails to compile (bug is fixed?)", stderr) + +def check_reports_an_error_but_should_not (bug, make, sources, regex): + tmp_dir, status, stderr = attempt_to_reproduce (bug, make, sources) + if status == 0: + report_and_retitle (bug, "now compiles (bug is fixed?)", stderr) + elif re.search (regex, stderr): + reassign_and_remove_dir (bug, tmp_dir) + else: + report (bug, "still fails to compile, but with a new stderr", stderr) + +def check_reports_error_but_forgets_one (bug, make, sources, regex): + tmp_dir, status, stderr = attempt_to_reproduce (bug, make, sources) + if status == 0: + report (bug, "now compiles (?)", stderr); + elif re.search (regex, stderr): + report_and_retitle (bug, "now reports the error (bug is fixed ?)", stderr) + else: + reassign_and_remove_dir (bug, tmp_dir) + +def check_produces_a_faulty_executable (bug, make, sources, regex, trigger): + tmp_dir, status, stderr = attempt_to_reproduce (bug, make, sources) + if status != 0: + report (bug, "cannot compile the trigger anymore", stderr) + else: + output = subprocess.check_output ((os.path.join (tmp_dir, trigger),), cwd=tmp_dir) + if re.search (regex, output): + reassign_and_remove_dir (bug, tmp_dir) + else: + report_and_retitle (bug, "output of the trigger changed (bug fixed?)", output) + +###################################################################### + +check_reports_an_error_but_should_not ( + bug = 244936, + make = ("gnatmake", "p"), + regex = 'p\.ads:3:25: "foo" is hidden within declaration of instance', + sources = ( + ("foo.ads", """generic +procedure foo; +"""), + ("foo.adb", """procedure foo is +begin + null; +end foo; +"""), ("p.ads", """with foo; +package p is + procedure FOO is new foo; -- OK +end p; +"""))) + +check_compiles_but_should_not ( + bug = 244970, + make = ("gnatmake", "pak5"), + sources = ( + ("pak1.ads", """generic +package pak1 is +end pak1; +"""), + ("pak1-pak2.ads", """generic +package pak1.pak2 is +end pak1.pak2; +"""), + ("pak5.ads", """with pak1.pak2; +generic + with package new_pak2 is new pak1.pak2; -- ERROR: illegal use of pak1 +package pak5 is +end pak5; +"""))) + +check_reports_an_error_but_should_not ( + bug = 246187, + make = ("gnatmake", "test_43"), + regex = "Error detected at system.ads:156:5", + sources = ( + ("test_43.ads", """package Test_43 is + type T1 is private; + +private + + type T2 is record + a: T1; + end record; + type T2_Ptr is access T2; + + type T1 is record + n: T2_Ptr := new T2; + end record; + +end Test_43; +"""),)) + +check_compiles_but_should_not ( + bug = 247013, + make = ("gnatmake", "test_53"), + sources = ( + ("test_53.ads", """generic + type T1 is private; +package Test_53 is + type T2 (x: integer) is new T1; -- ERROR: x not used +end Test_53; +"""),)) + +check_compiles_but_should_not ( + bug = 247017, + make = ("gnatmake", "test_59"), + sources = ( + ("test_59.adb", """procedure Test_59 is + + generic + type T1 (<>) is private; + procedure p1(x: out T1); + + procedure p1 (x: out T1) is + b: boolean := x'constrained; --ERROR: not a discriminated type + begin + null; + end p1; + +begin + null; +end Test_59; +"""),)) + +check_compiles_but_should_not ( + bug = 247018, + make = ("gnatmake", "test_60"), + sources = ( + ("pak1.ads", """package pak1 is + generic + package pak2 is + end pak2; +end pak1; +"""), + ("test_60.ads", """with pak1; +package Test_60 is + package PAK1 is new pak1.pak2; --ERROR: illegal reference to pak1 +end Test_60; +"""))) + +check_compiles_but_should_not ( + bug = 247019, + make = ("gnatmake", "test_61"), + sources = ( + ("test_61.adb", """procedure Test_61 is + procedure p1; + + generic + package pak1 is + procedure p2 renames p1; + end pak1; + + package new_pak1 is new pak1; + procedure p1 renames new_pak1.p2; --ERROR: circular renames +begin + p1; +end Test_61; +"""),)) + +check_produces_a_faulty_executable ( + bug = 247569, + make = ("gnatmake", "test_75"), + trigger = "test_75", + regex = "failed: wrong p1 called", + sources = ( + ("test_75.adb", """with text_io; +procedure Test_75 is + generic + package pak1 is + type T1 is null record; + end pak1; + + generic + with package A is new pak1(<>); + with package B is new pak1(<>); + package pak2 is + procedure p1(x: B.T1); + procedure p1(x: A.T1); + end pak2; + + package body pak2 is + + procedure p1(x: B.T1) is + begin + text_io.put_line("failed: wrong p1 called"); + end p1; + + procedure p1(x: A.T1) is + begin + text_io.put_line("passed"); + end p1; + + x: A.T1; + begin + p1(x); + end pak2; + + package new_pak1 is new pak1; + package new_pak2 is new pak2(new_pak1, new_pak1); -- (1) + +begin + null; +end Test_75; +"""),)) + +check_compiles_but_should_not ( + bug = 247570, + make = ("gnatmake", "test_76"), + sources = ( + ("test_76.adb", """procedure Test_76 is + + generic + procedure p1; + + pragma Convention (Ada, p1); + + procedure p1 is + begin + null; + end p1; + + procedure new_p1 is new p1; + pragma Convention (Ada, new_p1); --ERROR: new_p1 already frozen + +begin + null; +end Test_76; +"""),)) + +check_produces_a_faulty_executable ( + bug = 247571, + make = ("gnatmake", "test_77"), + trigger = "test_77", + regex = "failed: wrong p1 called", + sources = ( + ("pak.ads", """package pak is + procedure p1; + procedure p1(x: integer); + pragma export(ada, p1); +end pak; +"""), + ("pak.adb", """with text_io; use text_io; +package body pak is + procedure p1 is + begin + put_line("passed"); + end; + + procedure p1(x: integer) is + begin + put_line("failed: wrong p1 called"); + end; +end pak; +"""), + ("test_77.adb", """with pak; +procedure Test_77 is + procedure p1; + pragma import(ada, p1); +begin + p1; +end Test_77; +"""))) + +check_compiles_but_should_not ( + bug = 248166, + make = ("gnatmake", "test_82"), + sources = ( + ("test_82.adb", """procedure Test_82 is + package pak1 is + type T1 is tagged null record; + end pak1; + + package body pak1 is + -- type T1 is tagged null record; -- line 7 + + function "=" (x, y : T1'class) return boolean is -- line 9 + begin + return true; + end "="; + + procedure proc (x, y : T1'class) is + b : boolean; + begin + b := x = y; --ERROR: ambiguous "=" + end proc; + + end pak1; + +begin + null; +end Test_82; +"""),)) + +check_compiles_but_should_not ( + bug = 248168, + make = ("gnatmake", "test_84"), + sources = ( + ("test_84.adb", """procedure Test_84 is + package pak1 is + type T1 is abstract tagged null record; + procedure p1(x: in out T1) is abstract; + end pak1; + + type T2 is new pak1.T1 with null record; + + protected type T3 is + end T3; + + protected body T3 is + end T3; + + procedure p1(x: in out T2) is --ERROR: declared after body of T3 + begin + null; + end p1; + +begin + null; +end Test_84; +"""),)) + +check_compiles_but_should_not ( + bug = 248678, + make = ("gnatmake", "test_80"), + sources = ( + ("test_80.ads", """package Test_80 is + generic + type T1(<>) is private; + with function "=" (Left, Right : T1) return Boolean is <>; + package pak1 is + end pak1; + + package pak2 is + type T2 is abstract tagged null record; + package new_pak1 is new pak1 (T2'Class); --ERROR: no matching "=" + end pak2; +end Test_80; +"""),)) + +check_compiles_but_should_not ( + bug = 248680, + make = ("gnatmake", "test_90"), + sources = ( + ("test_90.adb", """procedure Test_90 is + type T1 is tagged null record; + + procedure p1 (x : access T1) is + b: boolean; + y: aliased T1; + begin + B := Y'Access = X; -- ERROR: no matching "=" +-- B := X = Y'Access; -- line 11: error detected + end p1; + +begin + null; +end Test_90; +"""),)) + +check_compiles_but_should_not ( + bug = 248681, + make = ("gnatmake", "test_91"), + sources = ( + ("test_91.adb", """-- RM 8.5.4(5) +-- ...the convention of the renamed subprogram shall not be +-- Intrinsic. +with unchecked_deallocation; +procedure Test_91 is + generic -- when non generic, we get the expected error + package pak1 is + type int_ptr is access integer; + procedure free(x: in out int_ptr); + end pak1; + + package body pak1 is + procedure deallocate is new + unchecked_deallocation(integer, int_ptr); + procedure free(x: in out int_ptr) renames + deallocate; --ERROR: renaming as body can't rename intrinsic + end pak1; +begin + null; +end Test_91; +"""),)) + +check_compiles_but_should_not ( + bug = 248682, + make = ("gnatmake", "main"), + sources = ( + ("main.adb", """-- RM 6.3.1(9) +-- The default calling convention is Intrinsic for ... an attribute +-- that is a subprogram; + +-- RM 8.5.4(5) +-- ...the convention of the renamed subprogram shall not be +-- Intrinsic. +procedure main is + package pak1 is + function f1(x: integer'base) return integer'base; + end pak1; + + package body pak1 is + function f1(x: integer'base) return integer'base renames + integer'succ; --ERROR: renaming as body can't rename intrinsic + end pak1; +begin + null; +end; +"""),)) + +check_reports_an_error_but_should_not ( + bug = 253737, + make = ("gnatmake", "test_4"), + regex = 'test_4.ads:.:01: "pak2" not declared in "pak1"', + sources = ( + ("parent.ads", """generic +package parent is +end parent; +"""), + ("parent-pak2.ads", """generic +package parent.pak2 is +end parent.pak2; +"""), + ("parent-pak2-pak3.ads", """generic +package parent.pak2.pak3 is +end parent.pak2.pak3; +"""), + ("parent-pak2-pak4.ads", """with parent.pak2.pak3; +generic +package parent.pak2.pak4 is + package pak3 is new parent.pak2.pak3; +end parent.pak2.pak4; +"""), + ("pak1.ads", """with parent; +package pak1 is new parent; +"""), + ("pak6.ads", """with parent.pak2; +with pak1; +package pak6 is new pak1.pak2; +"""), + ("test_4.ads", """with parent.pak2.pak4; +with pak6; +package Test_4 is new pak6.pak4; +"""))) + +check_compiles_but_should_not ( + bug = 269948, + make = ("gnatmake", "test_119"), + sources = ( + ("test_119.ads", """-- RM 3.9.3/11 A generic actual subprogram shall not be an abstract +-- subprogram. works OK if unrelated line (A) is commented out. +package Test_119 is + generic + with function "=" (X, Y : integer) return Boolean is <>; -- Removing this allows GCC to detect the problem. + package pak1 is + function "=" (X, Y: float) return Boolean is abstract; + generic + with function Equal (X, Y : float) return Boolean is "="; --ERROR: + package pak2 is + end pak2; + end pak1; + + package new_pak1 is new pak1; + package new_pak2 is new new_pak1.pak2; +end Test_119; +"""),)) + +check_compiles_but_should_not ( + bug = 269951, + make = ("gnatmake", "test_118"), + sources = ( + ("pak1.ads", """generic +package pak1 is +end pak1; +"""), + ("pak1-foo.ads", """generic +package pak1.foo is +end pak1.foo; +"""), + ("test_118.ads", """with pak1.foo; +package Test_118 is + package pak3 is + foo: integer; + end pak3; + use pak3; + + package new_pak1 is new pak1; + use new_pak1; + + x: integer := foo; -- ERROR: foo hidden by use clauses +end Test_118; +"""),)) + +# As long as 24:14 is detected, it inhibits detection of 25:21. +check_reports_error_but_forgets_one ( + bug = 276224, + make = ("gnatmake", "test_121"), + regex = "test_121\.adb:25:21: dynamically tagged expression not allowed", + sources = ( + ("test_121.adb", """-- If the expected type for an expression or name is some specific +-- tagged type, then the expression or name shall not be dynamically +-- tagged unless it is a controlling operand in a call on a +-- dispatching operation. +procedure Test_121 is + package pak1 is + type T1 is tagged null record; + function f1 (x1: T1) return T1; + end pak1; + + package body pak1 is + function f1 (x1: T1) return T1 is + begin + return x1; + end; + end pak1; + use pak1; + + type T2 is record + a1: T1; + end record; + + z0: T1'class := T1'(null record); + z1: T1 := f1(z0); -- ERROR: gnat correctly rejects + z2: T2 := (a1 => f1(z0)); -- ERROR: gnat mistakenly allows +begin + null; +end Test_121; +"""),)) + +check_reports_an_error_but_should_not ( + bug = 276227, + make = ("gnatmake", "test_124"), + regex = 'test_124\.ads:6:35: size for "T_arr_constrained" too small, minimum allowed is 256', + sources = ( + ("test_124.ads", """package Test_124 is + type T is range 1 .. 32; + type T_arr_unconstrained is array (T range <>) of boolean; + type T_arr_constrained is new T_arr_unconstrained (T); + pragma pack (T_arr_unconstrained); + for T_arr_constrained'size use 32; +end Test_124; +"""),)) + +check_reports_an_error_but_should_not ( + bug = 278687, + make = ("gnatmake", "test_127"), + regex = 'test_127\.adb:1.:21: expected type "T2" defined at line .', + sources = ( + ("test_127.ads", """-- The second parameter of T2'Class'Read is of type T2'Class, +-- which should match an object of type T3, which is derived +-- from T2. +package test_127 is + pragma elaborate_body; +end test_127; +"""), + ("test_127.adb", """with ada.streams; +package body test_127 is + type T1 is access all ada.streams.root_stream_type'class; + type T2 is tagged null record; + type T3 is new T2 with null record; + + x: T1; + y: T3; +begin + T2'class'read(x, y); +end test_127; +"""))) + +check_compiles_but_should_not ( + bug = 278831, + make = ("gnatmake", "test_128"), + sources = ( + ("test_128.ads", """package Test_128 is + package inner is + private + type T1; + end inner; + type T1_ptr is access inner.T1; -- line 9 ERROR: gnat mistakenly accepts +end Test_128; +"""), + ("test_128.adb", """package body test_128 is + package body inner is + type T1 is new Integer; + end inner; +end Test_128; +"""))) + +# Note that we also check the absence of the next inhibited message. +check_reports_an_error_but_should_not ( + bug = 279893, + make = ("gnatmake", "test_129"), + regex = """^gcc-[0-9.]+ -c test_129\.ads +test_129\.ads:1.:49: designated type of actual does not match that of formal "T2" +test_129\.ads:1.:49: instantiation abandoned +gnatmake: "test_129\.ads" compilation error$""", + sources = ( + ("pak1.ads", """-- legal instantiation rejected; illegal instantiation accepted +-- adapted from John Woodruff c.l.a. post + +generic + type T1 is private; +package pak1 is + subtype T3 is T1; +end pak1; +"""), + ("pak2.ads", """with pak1; +generic + type T2 is private; +package pak2 is + package the_pak1 is new pak1 (T1 => T2); +end pak2; +"""), + ("pak2-pak3.ads", """generic + type T2 is access the_pak1.T3; +package pak2.pak3 is +end pak2.pak3; +"""), + ("test_129.ads", """with pak1; +with pak2.pak3; +package Test_129 is + + type T4 is null record; + type T5 is null record; + subtype T3 is T5; -- line 9: triggers the bug at line 16 + + type T4_ptr is access T4; + type T5_ptr is access T5; + + package new_pak2 is new pak2 (T2 => T4); + package new_pak3a is new new_pak2.pak3(T2 => T4_ptr); -- line 15: Legal + package new_pak3b is new new_pak2.pak3(T2 => T5_ptr); -- line 16: Illegal +end Test_129; +"""))) + +print ("# Please ignore the gnatlink message.") +check_reports_an_error_but_should_not ( + bug = 280939, + make = ("gnatmake", "test_130"), + regex = "test_130\.adb:\(\.text\+0x5\): undefined reference to \`p2\'", + sources = ( + ("pak1.ads", """-- RM 10.1.5(4) "the pragma shall have an argument that is a name +-- denoting that declaration." +-- RM 8.1(16) "The children of a parent library unit are inside the +-- parent's declarative region." + +package pak1 is + pragma Pure; +end pak1; +"""), + ("pak1-p2.ads", """procedure pak1.p2; +pragma Pure (p2); -- ERROR: need expanded name +pragma Import (ada, p2); -- ERROR: need expanded name +pragma Inline (p2); -- ERROR: need expanded name +"""), + ("test_130.adb", """with Pak1.P2; +procedure Test_130 is +begin + Pak1.P2; +end Test_130; +"""))) + +check_compiles_but_should_not ( + bug = 283833, + make = ("gnatmake", "test_132"), + sources = ( + ("pak1.ads", """-- RM 8.5.4(5) the convention of the renamed subprogram shall not +-- be Intrinsic, if the renaming-as-body completes that declaration +-- after the subprogram it declares is frozen. + +-- RM 13.14(3) the end of the declaration of a library package +-- causes freezing of each entity declared within it. + +-- RM 6.3.1(7) the default calling convention is Intrinsic for +-- any other implicitly declared subprogram unless it is a +-- dispatching operation of a tagged type. + +package pak1 is + type T1 is null record; + procedure p1 (x1: T1); + type T2 is new T1; +end pak1; +"""), + ("pak1.adb", """package body Pak1 is + procedure P1 (X1 : T1) is begin null; end P1; +end Pak1; +"""), + ("test_132.ads", """with pak1; +package Test_132 is + procedure p2 (x2: pak1.T2); +end Test_132; +"""), + ("test_132.adb", """package body Test_132 is + procedure p2 (x2: pak1.T2) renames pak1.p1; --ERROR: can't rename intrinsic +end Test_132; +"""))) + +check_compiles_but_should_not ( + bug = 283835, + make = ("gnatmake", "test_133"), + sources = ( + ("test_133.ads", """package Test_133 is + package pak1 is + type T1 is null record; + end pak1; + + package pak2 is + subtype boolean is standard.boolean; + function "=" (x, y: pak1.T1) return boolean; + end pak2; + + use pak1, pak2; + + x1: pak1.T1; + b1: boolean := x1 /= x1; -- ERROR: ambigous (gnat misses) + -- b2: boolean := x1 = x1; -- ERROR: ambigous +end Test_133; +"""), + ("test_133.adb", """package body test_133 is + package body pak2 is + function "=" (x, y: pak1.T1) return boolean is + begin + return true; + end "="; + end pak2; +end test_133; +"""))) + +check_compiles_but_should_not ( + bug = 416979, + make = ("gnatmake", "pak1"), + sources = ( + ("pak1.ads", """package pak1 is + -- RM 7.3(13), 4.9.1(1) + -- check that discriminants statically match + type T1(x1: integer) is tagged null record; + x2: integer := 2; + x3: constant integer := x2; + type T2 is new T1 (x2) with private; + type T3 is new T1 (x3) with private; +private + type T2 is new T1 (x2) with null record; --ERROR: nonstatic discriminant + type T3 is new T1 (x3) with null record; --ERROR: nonstatic discriminant +end pak1; +"""),)) + +# Once the bug box disappears, check the executable. +# check_produces_a_faulty_executable ( +check_reports_an_error_but_should_not ( + bug = 427108, + make = ("gnatmake", "test1"), + regex = "Program_Error exp_disp.adb:7840 explicit raise", + sources = ( + ("test1.adb", """-- "For the execution of a call on an inherited subprogram, +-- a call on the corresponding primitive subprogram of the +-- parent or progenitor type is performed; the normal conversion +-- of each actual parameter to the subtype of the corresponding +-- formal parameter (see 6.4.1) performs any necessary type +-- conversion as well." + +with Text_IO; use Text_IO; +procedure Test1 is + package Pak1 is + type T1 is tagged null record; + function Eq(X, Y: T1) return Boolean renames "="; + end Pak1; + + package Pak2 is + type T2 is new Pak1.T1 with record + F1: Integer; + end record; + end Pak2; + + Z1: Pak2.T2 := (F1 => 1); + Z2: Pak2.T2 := (F1 => 2); +begin + if Pak2.Eq(Z1, Z2) = Pak1.Eq(Pak1.T1(Z1), Pak1.T1(Z2)) + then Put_Line("PASSED"); + else Put_Line("FAILED"); + end if; +end Test1; +"""),)) + +check_reports_an_error_but_should_not ( + bug = 660698, + make = ("gnatmake", "proc.adb"), + regex = 'proc\.adb:17:28: there is no applicable operator "And" for type "Standard\.Integer"', + sources = ( + ("proc.adb", """procedure Proc is + package P1 is + type T is new Integer; + function "and" (L, R : in Integer) return T; + end P1; + package body P1 is + function "and" (L, R : in Integer) return T is + pragma Unreferenced (L, R); + begin + return 0; + end "and"; + end P1; + use type P1.T; + package P2 is + use P1; + end P2; + G : P1.T := Integer'(1) and Integer'(2); +begin + null; +end Proc; +"""), )) + +check_produces_a_faulty_executable ( + bug = 737225, + make = ("gnatmake", "round_decimal"), + trigger = "round_decimal", + regex = "Bug reproduced.", + sources = ( + ("round_decimal.adb", """with Ada.Text_IO; + +procedure Round_Decimal is + + -- OJBECTIVE: + -- Check that 'Round of a decimal fixed point type does round + -- away from zero if the operand is of a decimal fixed point + -- type with a smaller delta. + + Unexpected_Compiler_Bug : exception; + + type Milli is delta 0.001 digits 9; + type Centi is delta 0.01 digits 9; + + function Rounded (Value : Milli) return Centi; + -- Value, rounded using Centi'Round + + function Rounded (Value : Milli) return Centi is + begin + return Centi'Round (Value); + end Rounded; + +begin + -- Operands used directly: + if not (Milli'Round (0.999) = Milli'(0.999) + and + Centi'Round (0.999) = Centi'(1.0) + and + Centi'Round (Milli'(0.999)) = Centi'(1.0)) + then + raise Unexpected_Compiler_Bug; + end if; + if Rounded (Milli'(0.999)) /= Centi'(1.0) then + Ada.Text_IO.Put_Line ("Bug reproduced."); + end if; +end Round_Decimal; +"""),)) + +# Even if an error is reported, the problem with the atomic variable +# should be checked. +check_reports_an_error_but_should_not ( + bug = 643663, + make = ("gnatmake", "test"), + regex = 'test\.adb:4:25: no value supplied for component "Reserved"', + sources = ( + ("pkg.ads", """package Pkg is + type Byte is mod 2**8; + type Reserved_24 is mod 2**24; + + type Data_Record is + record + Data : Byte; + Reserved : Reserved_24; + end record; + + for Data_Record use + record + Data at 0 range 0 .. 7; + Reserved at 0 range 8 .. 31; + end record; + + for Data_Record'Size use 32; + for Data_Record'Alignment use 4; + + Data_Register : Data_Record; + pragma Atomic (Data_Register); +end Pkg; +"""), ("test.adb", """with Pkg; +procedure Test is +begin + Pkg.Data_Register := ( + Data => 255, + others => <> -- expected error: no value supplied for component "Reserved" + ); +end Test; +"""))) + +check_produces_a_faulty_executable ( + bug = 864969, + make = ("gnatmake", "main"), + trigger = "main", + regex = "ZZund", + sources = ( + ("main.adb", """with Ada.Locales, Ada.Text_IO; +procedure Main is +begin + Ada.Text_IO.Put_Line (String (Ada.Locales.Country) + & String (Ada.Locales.Language)); +end Main; +"""),)) + +try: + os.rmdir (workspace) +except: + print ("Some unconfirmed, not removing directory {}.".format (workspace)) --- gcc-7-7.5.0.orig/debian/ada/debian_packaging.mk +++ gcc-7-7.5.0/debian/ada/debian_packaging.mk @@ -0,0 +1,91 @@ +# Common settings for Ada Debian packaging. +# +# Copyright (C) 2012-2014 Nicolas Boulenguez +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# dpkg-dev (>= 1.16.1) provides /usr/share/dpkg/default.mk (or the +# more specific buildflags.mk) to set standard variables like +# DEB_HOST_MULTIARCH, CFLAGS, LDFLAGS...) according to the build +# environment (DEB_BUILD_OPTIONS...) and the policy (hardening +# flags...). +# You must include it before this file. +ifeq (,$(findstring /usr/share/dpkg/buildflags.mk,$(MAKEFILE_LIST))) + $(error Please include /usr/share/dpkg/default.mk (or the more specific \ + buildflags.mk) before $(lastword $(MAKEFILE_LIST))) +endif + +# Ada is not in dpkg-dev flag list. We add a sensible default here. + +# Format checking is meaningless for Ada sources. +ADAFLAGS := $(filter-out -Wformat -Werror=format-security, $(CFLAGS)) + +ifdef DPKG_EXPORT_BUILDFLAGS + export ADAFLAGS +endif + +# Avoid dpkg-shlibdeps warning about depending on a library from which +# no symbol is used, see http://wiki.debian.org/ToolChain/DSOLinking. +# Gnatmake users must upgrade to >= 4.6.4-1 to circumvent #680292. +LDFLAGS += -Wl,--as-needed + +# Warn during build time if undefined symbols. +LDFLAGS += -Wl,-z,defs + +ifdef DPKG_EXPORT_BUILDFLAGS + export LDFLAGS +endif + +###################################################################### +# C compiler version + +# GCC binaries must be compatible with GNAT at the binary level, use +# the same version. This setting is mandatory for every upstream C +# compilation ("export CC" is enough for dh_auto_configure with a +# normal ./configure). + +CC := gnatgcc + +###################################################################### +# Options for gprbuild/gnatmake. + +# Let Make delegate parallelism to gnatmake/gprbuild. +.NOTPARALLEL: + +# Use all processors unless parallel=n is set in DEB_BUILD_OPTIONS. +# http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options +BUILDER_JOBS := $(filter parallel=%,$(DEB_BUILD_OPTIONS)) +ifneq (,$(BUILDER_JOBS)) + BUILDER_JOBS := $(subst parallel=,,$(BUILDER_JOBS)) +else + BUILDER_JOBS := $(shell getconf _NPROCESSORS_ONLN) +endif +BUILDER_OPTIONS += -j$(BUILDER_JOBS) + +BUILDER_OPTIONS += -R +# Avoid lintian warning about setting an explicit library runpath. +# http://wiki.debian.org/RpathIssue + +BUILDER_OPTIONS += -v +# Make exact command lines available for automatic log checkers. + +BUILDER_OPTIONS += -eS +# Tell gnatmake to echo commands to stdout instead of stderr, avoiding +# buildds thinking it is inactive and killing it. +# -eS is the default on gprbuild. + +# You may be interested in +# -s recompile if compilation switches have changed +# (bad default because of interactions between -amxs and standard library) +# -we handle warnings as errors +# -vP2 verbose when parsing projects. --- gcc-7-7.5.0.orig/debian/bin-wrapper.in +++ gcc-7-7.5.0/debian/bin-wrapper.in @@ -0,0 +1,11 @@ +#! /bin/sh + +# some build tools are linked with a new libstdc++ and fail to run +# when building libstdc++. + +if [ -n "$LD_LIBRARY_PATH" ]; then + ma=$(dpkg-architecture -qDEB_BUILD_MULTIARCH) + export LD_LIBRARY_PATH="/lib/$ma:/usr/lib/$ma:/lib:/usr/lib:$LD_LIBRARY_PATH" +fi + +exec /usr/bin/$(basename $0) "$@" --- gcc-7-7.5.0.orig/debian/changelog +++ gcc-7-7.5.0/debian/changelog @@ -0,0 +1,4329 @@ +gcc-7 (7.5.0-1ubuntu1) focal; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 14 Nov 2019 10:17:18 +0100 + +gcc-7 (7.5.0-1) unstable; urgency=medium + + * GCC 7.5.0 release. + * Refresh patches. + + -- Matthias Klose Thu, 14 Nov 2019 10:01:51 +0100 + +gcc-7 (7.4.0-15ubuntu1) focal; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 05 Nov 2019 14:07:12 +0100 + +gcc-7 (7.4.0-15) unstable; urgency=medium + + * GCC 7.5.0 release candidate 1. + * Update to SVN 20191105 (r277823) from the gcc-7-branch. + - Fix PR target/91275 (PPC), PR libstdc++/92143, PR target/88167 (ARM), + PR debug/91887, PR tree-optimization/91812, PR tree-optimization/92131, + PR target/86040 (AVR), PR rtl-optimization/89721, PR target/89400 (ARM), + PR target/88630 (SH), PR ada/91995, PR fortran/86248, PR fortran/69455. + + -- Matthias Klose Tue, 05 Nov 2019 14:04:40 +0100 + +gcc-7 (7.4.0-14ubuntu2) eoan; urgency=medium + + * Update to SVN 20191008 (r276439) from the gcc-7-branch. + - Fix PR target/91275 (PPC). + + -- Matthias Klose Tue, 08 Oct 2019 17:24:03 +0200 + +gcc-7 (7.4.0-14ubuntu1) eoan; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 02 Oct 2019 08:02:03 +0200 + +gcc-7 (7.4.0-14) unstable; urgency=medium + + * Update to SVN 20191002 (r276439) from the gcc-7-branch. + - Fix PR fortran/91557, PR target/86712 (SH), PR target/88562 (SH), + PR target/82920 (Darwin), PR target/82920 (x86), PR target/80672 (SH), + PR target/85993 (SH), PR rtl-optimization/88751, PR fortran/91557. + * Bump standards version. + + -- Matthias Klose Wed, 02 Oct 2019 07:48:40 +0200 + +gcc-7 (7.4.0-13) unstable; urgency=medium + + * Update to SVN 20190912 (r275684) from the gcc-7-branch. + - Fix PR rtl-optimization/89795, PR fortran/91686. + * Upload without binary packages after the accidential gcc-7-source + removal from the archive. + + -- Matthias Klose Thu, 12 Sep 2019 13:33:19 +0200 + +gcc-7 (7.4.0-12ubuntu2) eoan; urgency=medium + + * Re-sync with the real 7.4.0-12 upload. + + -- Matthias Klose Mon, 09 Sep 2019 19:36:01 +0200 + +gcc-7 (7.4.0-12ubuntu1) eoan; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 01 Sep 2019 02:33:04 +0200 + +gcc-7 (7.4.0-12) unstable; urgency=medium + + * Update to SVN 20190919 (r275519) from the gcc-7-branch. + - Fix PR libgomp/90585, PR target/90811, PR middle-end/89002, PR c/90474, + PR sanitizer/90954, PR c++/90108, PR c/89933, PR c/89734, + PR tree-optimization/90637, PR tree-optimization/90930, + PR middle-end/90194, PR middle-end/90213, PR tree-optimization/90071, + PR middle-end/89677, PR target/91481 (PPC), PR target/91150 (x86), + PR middle-end/78884, PR rtl-optimization/90756, PR c/90760, + PR middle-end/90139, PR target/90811 (nvptx), PR fortran/90329, + PR fortran/90329, PR target/90187 (x86), PR tree-optimization/90208, + PR rtl-optimization/90082, PR tree-optimization/90090, + PR tree-optimization/89998. PR c/89872, PR middle-end/89621, + PR target/89752, PR rtl-optimization/89768, PR target/89752, + PR target/89726 (x86), PR debug/89704, PR rtl-optimization/89679, + PR tree-optimization/89703, PR middle-end/88588, PR middle-end/89663, + PR c/88568, PR target/89587 (PPC), PR middle-end/89590, PR c/89520, + PR middle-end/89412, PR middle-end/89091, PR middle-end/88074, + PR middle-end/89415, PR middle-end/88074, PR target/89361 (S390), + PR tree-optimization/89278, PR other/89342, PR rtl-optimization/89354, + PR tree-optimization/89314, PR middle-end/89303, PR middle-end/89281, + PR middle-end/89246, PR target/88861, PR rtl-optimization/89234, + PR target/89188, PR rtl-optimization/89195, PR target/89186, + PR middle-end/87887, PR tree-optimization/88107, PR c++/66676, + PR ipa/89104, PR middle-end/89002, PR target/87214 (x86), + PR rtl-optimization/49429, PR target/49454, PR rtl-optimization/86334, + PR target/88906, PR rtl-optimization/88870, PR c/88568, PR target/88620, + PR middle-end/82564, PR target/88594 (x86), PR debug/88644, + PR middle-end/85594, PR middle-end/88553, PR rtl-optimization/88563, + PR rtl-optimization/88470, PR rtl-optimization/88416, PR target/85593, + PR tree-optimization/87895, PR middle-end/87647, PR middle-end/85488, + PR middle-end/87649, PR target/91533, PR tree-optimization/91510, + PR rtl-optimization/91347, PR driver/91172, PR target/89222 (ARM), + PR rtl-optimization/91136, PR tree-optimization/90949, PR ipa/90939, + PR middle-end/64242, PR target/90530 (PA), PR target/90547 (x86), + PR target/89765 (PPC), PR target/86215, PR target/80556, PR target/61976, + PR target/89424 (PPC), PR middle-end/89037, PR pch/90326, PR c++/90950, + PR c++/90108, PR c/89933, PR sanitizer/89869, PR c++/89796, PR c++/60702, + PR c++/89767, PR c++/89512, PR c++/87148, PR c++/89403, PR c++/89187, + PR c++/88976, PR c++/88949, PR c++/86669, PR c++/87506, PR c++/88103, + PR c++/88181, PR fortran/90329, PR fortran/89651, PR fortran/83246, + PR fortran/89084, PR fortran/88902, PR fortran/88377, PR fortran/87725, + PR libgomp/90585, PR target/90811, PR middle-end/89002, + PR middle-end/89303, PR libstdc++/91308, PR libstdc++/51333, + PR libstdc++/90770, PR c/90474, PR sanitizer/90954, PR pch/61250, + PR c++/90108, PR c/89933, PR c/89734, PR bootstrap/87030, + PR tree-optimization/90328, PR middle-end/89578, + PR tree-optimization/87609, PR tree-optimization/87609, + PR tree-optimization/88149, PR tree-optimization/90006, + PR middle-end/89698, PR tree-optimization/88903, PR middle-end/88448, + PR middle-end/88415, PR tree-optimization/88030, PR middle-end/89572, + PR tree-optimization/87929, PR tree-optimization/89710, + PR tree-optimization/89296, PR tree-optimization/89135, + PR tree-optimization/91200, PR middle-end/91162, PR middle-end/91131, + PR tree-optimization/91126, PR tree-optimization/90278, + PR tree-optimization/90020, PR tree-optimization/91137, + PR middle-end/89392, PR target/87853 (x86), PR target/91704 (x86). + * libstdc++: Fix GCC_LINUX_FUTEX to work with C99 compilers, taken from + the trunk. + + -- Matthias Klose Mon, 09 Sep 2019 17:43:25 +0200 + +gcc-7 (7.4.0-11ubuntu1) eoan; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 20 Aug 2019 18:12:12 +0200 + +gcc-7 (7.4.0-11) unstable; urgency=medium + + * Update to SVN 20190820 (r274750) from the gcc-7-branch. + - Fix PR lto/90924, PR rtl-optimization/91347, PR driver/91172, + PR target/89222 (ARM), PR rtl-optimization/91136, + PR tree-optimization/90949, PR fortran/90786, PR fortran/90813. + * Update the Linaro support to the 7-2019.01 snapshot. + * Bump standards version. + + -- Matthias Klose Tue, 20 Aug 2019 18:09:50 +0200 + +gcc-7 (7.4.0-10ubuntu2) eoan; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + * Update the Linaro support to the 7-2019.01 snapshot. + + -- Matthias Klose Fri, 28 Jun 2019 12:54:48 +0200 + +gcc-7 (7.4.0-10) unstable; urgency=medium + + * Update to SVN 20190628 (r272781) from the gcc-7-branch. + - Fix PR libstdc++/89466, PR libstdc++/88740, PR libstdc++/90220, + PR libstdc++/90220, PR libstdc++/90220 (partial), PR libstdc++/90105, + PR libstdc++/89629, PR middle-end/64242, PR target/90530 (PARISC), + PR target/90547 (x86), PR target/89765 (PPC), PR target/86215 (x86), + PR target/80556 (x86), PR target/61976 (PPC), PR target/89424 (PPC), + PR middle-end/89037, PR target/86538 (AArch64), PR target/90075 (AArch64), + PR target/37369 (AArch64), PR fortran/90937, PR fortran/90744, + PR bootstrap/89864, PR libstdc++/90634, PR ipa/90939. + * Fix two lintian warnings. + + -- Matthias Klose Fri, 28 Jun 2019 12:00:29 +0200 + +gcc-7 (7.4.0-9ubuntu1) eoan; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 25 Apr 2019 11:38:22 +0200 + +gcc-7 (7.4.0-9) unstable; urgency=medium + + * Update to SVN 20190425 (r270566) from the gcc-7-branch. + - Fix PR target/87532 (PPC), PR target/86952 (x86), + PR target/90024 (ARM), PR target/89945 (x86), PR lto/89896, + PR web/87829, PR tree-optimization/89253, PR middle-end/89223, + PR tree-optimization/88739, PR fortran/87352, PR fortran/89904, + PR fortran/83515, PR fortran/85797, PR libgfortran/79540. + * Mark gcc-7-source as M-A: foreign. + + -- Matthias Klose Thu, 25 Apr 2019 11:30:21 +0200 + +gcc-7 (7.4.0-8ubuntu1) disco; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 26 Mar 2019 13:23:00 +0100 + +gcc-7 (7.4.0-8) unstable; urgency=medium + + * Update to SVN 20190326 (r269936) from the gcc-7-branch. + - Fix PR target/89523 (x86), PR lto/87525, PR target/84272 (AArch64), + PR lto/88147, PR c++/89585, PR fortran/84394, PR fortran/66089, + PR fortran/66695, PR fortran/77746, PR fortran/79485, PR fortran/87673, + PR fortran/71544, PR fortran/87734, PR c++/89383, PR middle-end/84552, + PR tree-optimization/86554, PR tree-optimization/88105, + PR tree-optimization/89505, PR fortran/71861, PR fortran/68009. + * Fix PR tree-optimization/89505, taken from the gcc-8 branch. + * Fix package descriptions for cross packages. + * Fix cross building gdc (Helmut Grohne). Addresses: #925040. + * Fix PR jit/87808: Don't rely on the gcc driver. Let libgccjit0 + depend on binutils and libgcc-dev. Addresses: #911668. + * Fix stripping the gcc-hppa64 package. + + -- Matthias Klose Tue, 26 Mar 2019 13:21:53 +0100 + +gcc-7 (7.4.0-7ubuntu1) disco; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sat, 09 Mar 2019 08:55:38 +0100 + +gcc-7 (7.4.0-7) unstable; urgency=medium + + * Update to SVN 20190308 (r269489) from the gcc-7-branch. + - Fix PR target/89397 (x86), PR ada/81956, PR fortran/72714, + PR fortran/77583, PR fortran/87689. + * Fix PR c++/89585, taken from the gcc-8 branch. + + -- Matthias Klose Sat, 09 Mar 2019 08:52:02 +0100 + +gcc-7 (7.4.0-6ubuntu1) disco; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Mon, 25 Feb 2019 13:47:05 +0100 + +gcc-7 (7.4.0-6) unstable; urgency=medium + + * Update to SVN 20190225 (r269187) from the gcc-7-branch. + - Fix PR libstdc++/89446, PR rtl-optimization/89242, PR ipa/89009, + PR target/88648 (ARM), PR fortran/88117, PR fortran/71066, + PR fortran/89077, PR fortran/71723. + + -- Matthias Klose Mon, 25 Feb 2019 13:37:30 +0100 + +gcc-7 (7.4.0-5ubuntu1) disco; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sat, 09 Feb 2019 23:19:08 +0100 + +gcc-7 (7.4.0-5) unstable; urgency=medium + + * Update to SVN 20190209 (r268732) from the gcc-7-branch. + - Fix PR target/88856 (S390X). Addresses: #915738. LP: #1815057. + - Fix PR target/85755 (PPC), PR target/87064 (PPC), PR target/87064 (PPC), + PR fortran/67679, PR fortran/88393, PR libfortran/88678, + PR target/88343 (PPC). + + -- Matthias Klose Sat, 09 Feb 2019 23:11:56 +0100 + +gcc-7 (7.4.0-4ubuntu1) disco; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 03 Feb 2019 11:06:27 +0100 + +gcc-7 (7.4.0-4) unstable; urgency=medium + + * Update to SVN 20190203 (r268483) from the gcc-7-branch. + - Fix PR rtl-optimization/89115 (compile time part). Addresses: #918329. + - Fix PR tree-optimization/89008, PR fortran/88298, PR fortran/57048. + * Turn on profiled bootstrap on x86_64, ARM32, AArch64, PPC64 and s390x + architectures for native builds. + + -- Matthias Klose Sun, 03 Feb 2019 10:54:14 +0100 + +gcc-7 (7.4.0-3ubuntu2) disco; urgency=medium + + * Update to SVN 20190202 (r268474) from the gcc-7-branch. + - Fix PR rtl-optimization/89115 (compile time part). Addresses: #918329. + - Fix PR tree-optimization/89008. + * Turn on profiled bootstrap on x86, ARM32, AArch64, PPC64 and s390x + architectures for native builds. + + -- Matthias Klose Sat, 02 Feb 2019 11:15:49 +0100 + +gcc-7 (7.4.0-3ubuntu1) disco; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 30 Jan 2019 22:28:16 +0100 + +gcc-7 (7.4.0-3) unstable; urgency=medium + + * Update to SVN 20190130 (r268403) from the gcc-7-branch. + - Fix PR libstdc++/64883, PR libstdc++/70694, PR c/88720, PR c/88726, + PR inline-asm/55681, PR target/88948, PR target/88998 (x86), + PR tree-optimization/89008, PR target/88938 (x86), PR ipa/88214, + PR target/84010 (SPARC), PR target/88343 (PPC), PR c++/87380, + PR target/78444 (x86), PR target/81685 (darwin), PR target/88418 (x86), + PR target/88213 (PPC), PR fortran/56386, PR fortran/58906, + PR fortran/77385, PR fortran/80260, PR fortran/82077, PR fortran/81849, + PR fortran/35031, PR fortran/82550, PR fortran/77703, PR fortran/85798, + PR fortran/85544, PR fortran/88169, PR libfortran/88776. + * Bump standards version. + + -- Matthias Klose Wed, 30 Jan 2019 22:14:13 +0100 + +gcc-7 (7.4.0-2ubuntu1) disco; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 18 Dec 2018 14:31:16 +0100 + +gcc-7 (7.4.0-2) unstable; urgency=medium + + * Update to SVN 20181218 (r267229) from the gcc-7-branch. + - Fix PR fortran/88269, PR fortran/88205, PR fortran/88206, + PR fortran/88228, PR libfortran/88137, PR rtl-optimization/88253, + PR rtl-optimization/88001, PR target/87496 (PPC), PR fortran/88138, + PR fortran/88155, PR fortran/88249. + * gcc-7-source: Depend on lsb-release. + + -- Matthias Klose Tue, 18 Dec 2018 13:18:08 +0100 + +gcc-7 (7.4.0-1ubuntu1) disco; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 06 Dec 2018 13:48:27 +0100 + +gcc-7 (7.4.0-1) unstable; urgency=medium + + * GCC 7.4.0 release. + * Back-out the gcc-search-prefixed-as-ld patch. See #915194. + + -- Matthias Klose Thu, 06 Dec 2018 13:45:39 +0100 + +gcc-7 (7.3.0-31ubuntu1) disco; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 29 Nov 2018 13:25:21 +0100 + +gcc-7 (7.3.0-31) unstable; urgency=medium + + * GCC 7.4.0 release candidate 1. + * Update to SVN 20181129 (r266612) from the gcc-7-branch. + - Fix PR libstdc++/88199, PR libstdc++/87822, PR tree-optimization/79351, + PR bootstrap/81033, PR target/81733, PR target/52795, + PR middle-end/87645, PR middle-end/87610, PR tree-optimization/87665, + PR tree-optimization/87745, PR tree-optimization/87665, + PR middle-end/86139, PR middle-end/86076, PR target/88051 (x86), + PR target/82961, PR target/87867 (ARM), PR tree-optimization/84777, + PR rtl-optimization/84003, PR target/87853 (x86), PR target/87928 (x86), + PR rtl-optimization/85925, PR debug/88006, PR debug/87462, + PR middle-end/58372, PR c++/84281, PR c++/87075, PR fortran/88073, + PR fortran/88143, PR fortran/87597. + * Backport the libstdc++ mersenne twister optimization for AArch64, so that + the random header is the same on all architectures (Ubuntu only). + LP: #1799955. + * Fix VCS attribute in the control file. Addresses: #912405. + + -- Matthias Klose Thu, 29 Nov 2018 12:32:23 +0100 + +gcc-7 (7.3.0-30ubuntu1) disco; urgency=medium + + * Backport the libstdc++ mersenne twister optimization for AArch64, so that + the random header is the same on all architectures (Ubuntu only). + LP: #1799955. + + -- Matthias Klose Tue, 04 Sep 2018 17:28:42 +0200 + +gcc-7 (7.3.0-30) unstable; urgency=medium + + * Update to SVN 20181030 (r265622) from the gcc-7-branch. + - Fix PR middle-end/86542, PR middle-end/86539, PR middle-end/86660, + PR libstdc++/87749, PR libstdc++/87704, PR libstdc++/79433, + PR libstdc++/87641, PR libstdc++/86751, PR libstdc++/78595, + PR libstdc++/87061, PR libstdc++/70966, PR libstdc++/77854, + PR libstdc++/87538, PR tree-optimization/87473, PR middle-end/87623, + PR target/87511 (AArch64), PR target/87550 (x86), PR middle-end/87248, + PR rtl-optimization/87065, PR middle-end/86627, PR middle-end/86542, + PR middle-end/86539, PR middle-end/86660, PR middle-end/87024, + PR middle-end/86505, PR target/87370 (x86), PR target/87517 (x86), + PR target/87522 (x86), PR other/87353, PR target/87467 (x86), + PR target/87033 (PPC), PR debug/86687, PR c++/3698, PR c++/86208, + PR fortran/86421. + * Don't configure native builds with --with-sysroot. Apparently this cannot + be completely overridden with the command line option --sysroot. + * Update VCS attributes in the control file. + + -- Matthias Klose Tue, 30 Oct 2018 13:52:34 +0100 + +gcc-7 (7.3.0-29) unstable; urgency=medium + + * Update to SVN 20180904 (r264075) from the gcc-7-branch. + - Fix PR sanitizer/86022, PR tree-optimization/85859, PR target/86662, + PR target/87014 (x86), PR c++/86763. + + -- Matthias Klose Tue, 04 Sep 2018 12:27:14 +0200 + +gcc-7 (7.3.0-28ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 14 Aug 2018 13:55:24 +0200 + +gcc-7 (7.3.0-28) unstable; urgency=medium + + * Update to SVN 20180814 (r264534) from the gcc-7-branch. + - Fix PR libstdc++/86138, PR libstdc++/85672, PR libstdc++/84654, + PR libstdc++/80893, PR libstdc++/80893, PR libstdc++/68519, + PR libstdc++/86292, PR libstdc++/60555, PR libstdc++/86861, + PR libstdc++/86734, PR rtl-optimization/85645, PR rtl-optimization/85645, + PR target/86197 (PPC), PR middle-end/86705, PR c++/86728. + - Fix PR bootstrap/86724. Closes: #905539. + + [ Matthias Klose ] + * Add some basic autopkg tests for Ada, C, C++, Go, OpenMP and Fortran. + * Build again using gnat-7. + + [ Nicolas Boulenguez ] + * gnat: Improve the ada-gcc-name patch. + + -- Matthias Klose Tue, 14 Aug 2018 13:27:39 +0200 + +gcc-7 (7.3.0-27ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Fri, 20 Jul 2018 13:57:51 +0200 + +gcc-7 (7.3.0-27) unstable; urgency=medium + + * Update to SVN 20180720 (r262899) from the gcc-7-branch. + - Fix PR target/84168 (AArch64). + + [ Nicolas Boulenguez ] + * ada-verbose patch: Make the ada build more verbose. + * Update the ada-gcc-name patch again. See #856274. Closes: #903694. + + [ Matthias Klose ] + * Rewrite debian/README.cross. + * Build using gnat-6, avoiding the broken gnat in 7.3.0-26. + + -- Matthias Klose Fri, 20 Jul 2018 12:55:24 +0200 + +gcc-7 (7.3.0-26ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 17 Jul 2018 14:03:53 +0200 + +gcc-7 (7.3.0-26) unstable; urgency=medium + + * Update to SVN 20180717 (r262814) from the gcc-7-branch. + - Fix PR target/84829, PR fortran/83184, PR fortran/86417, + PR fortran/83183, PR fortran/86325. + + [ Nicolas Boulenguez ] + * Update the ada-gcc-name patch, not appending the suffix twice. + Addresses: #856274. + + -- Matthias Klose Tue, 17 Jul 2018 12:20:13 +0200 + +gcc-7 (7.3.0-25ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 12 Jul 2018 10:28:13 +0200 + +gcc-7 (7.3.0-25) unstable; urgency=medium + + * Update to SVN 20180712 (r262577) from the gcc-7-branch. + - Fix PR c++/86291, PR libstdc++/86272, PR libstdc++/86127, + PR target/85904, PR libstdc++/85098, PR libstdc++/85671, PR hsa/86371, + PR libstdc++/83982, PR libstdc++/84087, PR target/86314 (x86), + PR c++/86378, PR c++/80290, PR c++/86291, PR fortran/82969, + PR fortran/86242. + * Enable decimal float support on kfreebsd-amd64. Closes: #897416. + + -- Matthias Klose Thu, 12 Jul 2018 10:16:26 +0200 + +gcc-7 (7.3.0-24ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 26 Jun 2018 10:04:47 +0200 + +gcc-7 (7.3.0-24) unstable; urgency=medium + + * Update to SVN 20180626 (r262132) from the gcc-7-branch. + - Fix PR jit/85384, PR libstdc++/86138, PR c++/86210, PR c/85696, + PR c++/85662, PR c/85696, PR c/84999, PR c/84853, PR target/84786 (x86), + PR tree-optimization/85989, PR tree-optimization/86231, + PR middle-end/85878, PR target/85945, PR c++/86025, PR c++/85659, + PR web/85578, PR tree-optimization/85529, PR tree-optimization/85446, + PR rtl-optimization/85431, PR target/85430 (x86), + PR rtl-optimization/85300, PR tree-optimization/85257, PR debug/85252, + PR rtl-optimization/85167, PR target/85095, PR inline-asm/85022, + PR inline-asm/85034, PR inline-asm/85022, PR inline-asm/84941, + PR sanitizer/85018, PR debug/84875, PR c/84953, PR target/84990, + PR sanitizer/78651, PR sanitizer/78651, PR target/84899, + PR tree-optimization/84841, PR c++/79085, PR target/84860, + PR middle-end/84834, PR target/84827, PR target/84786, PR target/84772, + PR c++/84767, PR tree-optimization/84739, PR target/84700, + PR middle-end/82063, PR c++/85952, PR c/85696, PR c++/85662, + PR c++/84463, PR c++/85210, PR c++/85208, PR inline-asm/85172, + PR c++/85147, PR c++/85140, PR c++/84791, PR c++/85076, PR c++/85068, + PR c++/84961, PR c++/84874, PR c++/84222, PR c++/84076, PR c++/80598, + PR c++/84662, PR fortran/83118, PR fortran/85313, PR fortran/86110, + PR target/85424 (PPC), PR fortran/82972, PR fortran/83088, + PR fortran/85851. + + [ Nicolas Boulenguez ] + * Remove Ludovic Brenta's work to let Ada build tools link with freshly + built libgnat.so, this is now handled by upstream testsuite. + + -- Matthias Klose Tue, 26 Jun 2018 09:52:10 +0200 + +gcc-7 (7.3.0-23ubuntu2) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 17 Jun 2018 06:24:58 +0200 + +gcc-7 (7.3.0-23) unstable; urgency=medium + + * Update to SVN 20180617 (r261686) from the gcc-7-branch. + - Fix PR libstdc++/86169. + * Fix applying the powerpcspe patches. + * Fix running the gnat testsuite. + + -- Matthias Klose Sun, 17 Jun 2018 09:34:13 +0200 + +gcc-7 (7.3.0-22) unstable; urgency=medium + + * Update to SVN 20180614 (r261597) from the gcc-7-branch. + - Fix PR sanitizer/84761, PR target/85755 (PPC), PR target/63177 (PPC), + PR middle-end/85588, PR middle-end/85567, PR tree-optimization/85597, + PR tree-optimization/85712, PR c++/85815, PR c++/86060, PR fortran/44491, + PR fortran/38351, PR fortran/63514, PR fortran/78278, PR fortran/86059, + PR fortran/85138, PR fortran/85996, PR fortran/86051, PR fortran/86045, + PR fortran/85641, PR fortran/85981, PR libgfortran/86070, + PR libgfortran/85840, PR fortran/86110. + * Fix PR middle-end/86139, taken from the gcc-8-branch. Addresses: #901290. + + -- Matthias Klose Thu, 14 Jun 2018 16:31:52 +0200 + +gcc-7 (7.3.0-21ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 31 May 2018 13:27:08 +0200 + +gcc-7 (7.3.0-21) unstable; urgency=medium + + * Update to SVN 20180531 (r260992) from the gcc-7-branch. + - Fix PR sanitizer/86012, libsanitizer build on sparc64. + + -- Matthias Klose Thu, 31 May 2018 13:22:03 +0200 + +gcc-7 (7.3.0-20) unstable; urgency=medium + + * Update to SVN 20180529 (r260895) from the gcc-7-branch. + - Fix PR sanitizer/85835, PR libstdc++/85812, PR libstdc++/67554, + PR libstdc++/82966, PR target/85903 (x86), PR target/85698 (PPC), + PR ipa/85655, PR fortran/85543, PR fortran/85779, PR fortran/85780, + PR fortran/85895, PR fortran/80657, PR fortran/82275, PR fortran/82923, + PR fortran/66694, PR fortran/82617, PR fortran/83149, PR fortran/83898, + PR fortran/84546, PR fortran/85542, PR fortran/68846, PR fortran/70864. + * gnat-*: Don't search the target dirs when calling dh_shlibdeps. + + -- Matthias Klose Tue, 29 May 2018 15:02:12 +0200 + +gcc-7 (7.3.0-19ubuntu2) cosmic; urgency=medium + + * Update to SVN 20180514 (r260228) from the gcc-7-branch. + - Fix PR fortran/85542, PR fortran/68846, PR fortran/70864. + * gnat-*: Don't search the target dirs when calling dh_shlibdeps. + + -- Matthias Klose Mon, 14 May 2018 11:27:51 -0400 + +gcc-7 (7.3.0-19ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sat, 12 May 2018 11:12:38 -0400 + +gcc-7 (7.3.0-19) unstable; urgency=medium + + * Update to SVN 20180512 (r260198) from the gcc-7-branch. + - Fix PR libstdc++/80506, PR c++/85646, PR fortran/85507, + PR fortran/70870, PR fortran/85521, PR fortran/85687. + * Fix name of the g++ multiarch include directory. Addresses: #898323. + + -- Matthias Klose Sat, 12 May 2018 11:01:49 -0400 + +gcc-7 (7.3.0-18ubuntu2) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + * + + -- Matthias Klose Tue, 30 Oct 2018 14:00:04 +0100 + +gcc-7 (7.3.0-29ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 04 Sep 2018 12:49:56 +0200 + +gcc-7 (7.3.0-29) unstable; urgency=medium + + * Update to SVN 20180904 (r264075) from the gcc-7-branch. + - Fix PR sanitizer/86022, PR tree-optimization/85859, PR target/86662, + PR target/87014 (x86), PR c++/86763. + + -- Matthias Klose Tue, 04 Sep 2018 12:27:14 +0200 + +gcc-7 (7.3.0-28ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 14 Aug 2018 13:55:24 +0200 + +gcc-7 (7.3.0-28) unstable; urgency=medium + + * Update to SVN 20180814 (r264534) from the gcc-7-branch. + - Fix PR libstdc++/86138, PR libstdc++/85672, PR libstdc++/84654, + PR libstdc++/80893, PR libstdc++/80893, PR libstdc++/68519, + PR libstdc++/86292, PR libstdc++/60555, PR libstdc++/86861, + PR libstdc++/86734, PR rtl-optimization/85645, PR rtl-optimization/85645, + PR target/86197 (PPC), PR middle-end/86705, PR c++/86728. + - Fix PR bootstrap/86724. Closes: #905539. + + [ Matthias Klose ] + * Add some basic autopkg tests for Ada, C, C++, Go, OpenMP and Fortran. + * Build again using gnat-7. + + [ Nicolas Boulenguez ] + * gnat: Improve the ada-gcc-name patch. + + -- Matthias Klose Tue, 14 Aug 2018 13:27:39 +0200 + +gcc-7 (7.3.0-27ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Fri, 20 Jul 2018 13:57:51 +0200 + +gcc-7 (7.3.0-27) unstable; urgency=medium + + * Update to SVN 20180720 (r262899) from the gcc-7-branch. + - Fix PR target/84168 (AArch64). + + [ Nicolas Boulenguez ] + * ada-verbose patch: Make the ada build more verbose. + * Update the ada-gcc-name patch again. See #856274. Closes: #903694. + + [ Matthias Klose ] + * Rewrite debian/README.cross. + * Build using gnat-6, avoiding the broken gnat in 7.3.0-26. + + -- Matthias Klose Fri, 20 Jul 2018 12:55:24 +0200 + +gcc-7 (7.3.0-26ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 17 Jul 2018 14:03:53 +0200 + +gcc-7 (7.3.0-26) unstable; urgency=medium + + * Update to SVN 20180717 (r262814) from the gcc-7-branch. + - Fix PR target/84829, PR fortran/83184, PR fortran/86417, + PR fortran/83183, PR fortran/86325. + + [ Nicolas Boulenguez ] + * Update the ada-gcc-name patch, not appending the suffix twice. + Addresses: #856274. + + -- Matthias Klose Tue, 17 Jul 2018 12:20:13 +0200 + +gcc-7 (7.3.0-25ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 12 Jul 2018 10:28:13 +0200 + +gcc-7 (7.3.0-25) unstable; urgency=medium + + * Update to SVN 20180712 (r262577) from the gcc-7-branch. + - Fix PR c++/86291, PR libstdc++/86272, PR libstdc++/86127, + PR target/85904, PR libstdc++/85098, PR libstdc++/85671, PR hsa/86371, + PR libstdc++/83982, PR libstdc++/84087, PR target/86314 (x86), + PR c++/86378, PR c++/80290, PR c++/86291, PR fortran/82969, + PR fortran/86242. + * Enable decimal float support on kfreebsd-amd64. Closes: #897416. + + -- Matthias Klose Thu, 12 Jul 2018 10:16:26 +0200 + +gcc-7 (7.3.0-24ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 26 Jun 2018 10:04:47 +0200 + +gcc-7 (7.3.0-24) unstable; urgency=medium + + * Update to SVN 20180626 (r262132) from the gcc-7-branch. + - Fix PR jit/85384, PR libstdc++/86138, PR c++/86210, PR c/85696, + PR c++/85662, PR c/85696, PR c/84999, PR c/84853, PR target/84786 (x86), + PR tree-optimization/85989, PR tree-optimization/86231, + PR middle-end/85878, PR target/85945, PR c++/86025, PR c++/85659, + PR web/85578, PR tree-optimization/85529, PR tree-optimization/85446, + PR rtl-optimization/85431, PR target/85430 (x86), + PR rtl-optimization/85300, PR tree-optimization/85257, PR debug/85252, + PR rtl-optimization/85167, PR target/85095, PR inline-asm/85022, + PR inline-asm/85034, PR inline-asm/85022, PR inline-asm/84941, + PR sanitizer/85018, PR debug/84875, PR c/84953, PR target/84990, + PR sanitizer/78651, PR sanitizer/78651, PR target/84899, + PR tree-optimization/84841, PR c++/79085, PR target/84860, + PR middle-end/84834, PR target/84827, PR target/84786, PR target/84772, + PR c++/84767, PR tree-optimization/84739, PR target/84700, + PR middle-end/82063, PR c++/85952, PR c/85696, PR c++/85662, + PR c++/84463, PR c++/85210, PR c++/85208, PR inline-asm/85172, + PR c++/85147, PR c++/85140, PR c++/84791, PR c++/85076, PR c++/85068, + PR c++/84961, PR c++/84874, PR c++/84222, PR c++/84076, PR c++/80598, + PR c++/84662, PR fortran/83118, PR fortran/85313, PR fortran/86110, + PR target/85424 (PPC), PR fortran/82972, PR fortran/83088, + PR fortran/85851. + + [ Nicolas Boulenguez ] + * Remove Ludovic Brenta's work to let Ada build tools link with freshly + built libgnat.so, this is now handled by upstream testsuite. + + -- Matthias Klose Tue, 26 Jun 2018 09:52:10 +0200 + +gcc-7 (7.3.0-23ubuntu2) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 17 Jun 2018 06:24:58 +0200 + +gcc-7 (7.3.0-23) unstable; urgency=medium + + * Update to SVN 20180617 (r261686) from the gcc-7-branch. + - Fix PR libstdc++/86169. + * Fix applying the powerpcspe patches. + * Fix running the gnat testsuite. + + -- Matthias Klose Sun, 17 Jun 2018 09:34:13 +0200 + +gcc-7 (7.3.0-22) unstable; urgency=medium + + * Update to SVN 20180614 (r261597) from the gcc-7-branch. + - Fix PR sanitizer/84761, PR target/85755 (PPC), PR target/63177 (PPC), + PR middle-end/85588, PR middle-end/85567, PR tree-optimization/85597, + PR tree-optimization/85712, PR c++/85815, PR c++/86060, PR fortran/44491, + PR fortran/38351, PR fortran/63514, PR fortran/78278, PR fortran/86059, + PR fortran/85138, PR fortran/85996, PR fortran/86051, PR fortran/86045, + PR fortran/85641, PR fortran/85981, PR libgfortran/86070, + PR libgfortran/85840, PR fortran/86110. + * Fix PR middle-end/86139, taken from the gcc-8-branch. Addresses: #901290. + + -- Matthias Klose Thu, 14 Jun 2018 16:31:52 +0200 + +gcc-7 (7.3.0-21ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 31 May 2018 13:27:08 +0200 + +gcc-7 (7.3.0-21) unstable; urgency=medium + + * Update to SVN 20180531 (r260992) from the gcc-7-branch. + - Fix PR sanitizer/86012, libsanitizer build on sparc64. + + -- Matthias Klose Thu, 31 May 2018 13:22:03 +0200 + +gcc-7 (7.3.0-20) unstable; urgency=medium + + * Update to SVN 20180529 (r260895) from the gcc-7-branch. + - Fix PR sanitizer/85835, PR libstdc++/85812, PR libstdc++/67554, + PR libstdc++/82966, PR target/85903 (x86), PR target/85698 (PPC), + PR ipa/85655, PR fortran/85543, PR fortran/85779, PR fortran/85780, + PR fortran/85895, PR fortran/80657, PR fortran/82275, PR fortran/82923, + PR fortran/66694, PR fortran/82617, PR fortran/83149, PR fortran/83898, + PR fortran/84546, PR fortran/85542, PR fortran/68846, PR fortran/70864. + * gnat-*: Don't search the target dirs when calling dh_shlibdeps. + + -- Matthias Klose Tue, 29 May 2018 15:02:12 +0200 + +gcc-7 (7.3.0-19ubuntu2) cosmic; urgency=medium + + * Update to SVN 20180514 (r260228) from the gcc-7-branch. + - Fix PR fortran/85542, PR fortran/68846, PR fortran/70864. + * gnat-*: Don't search the target dirs when calling dh_shlibdeps. + + -- Matthias Klose Mon, 14 May 2018 11:27:51 -0400 + +gcc-7 (7.3.0-19ubuntu1) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sat, 12 May 2018 11:12:38 -0400 + +gcc-7 (7.3.0-19) unstable; urgency=medium + + * Update to SVN 20180512 (r260198) from the gcc-7-branch. + - Fix PR libstdc++/80506, PR c++/85646, PR fortran/85507, + PR fortran/70870, PR fortran/85521, PR fortran/85687. + * Fix name of the g++ multiarch include directory. Addresses: #898323. + + -- Matthias Klose Sat, 12 May 2018 11:01:49 -0400 + +gcc-7 (7.3.0-18ubuntu2) cosmic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 06 May 2018 14:13:31 +0200 + +gcc-7 (7.3.0-18) unstable; urgency=medium + + * Update to SVN 20180506 (r259973) from the gcc-7-branch. + - Fix PR middle-end/84955, PR libstdc++/pr66689, PR libstdc++/68397, + PR libstdc++/84769, PR libstdc++/85632, PR fortran/81773, + PR fortran/83606. + * Update the Linaro support to the 7-2018.04 snapshot. + * Don't configure with --with-as and --with-ld, but search the triplet + prefixed as and ld in the same places as as/ld. Closes: #896057, #897896. + * Enable decimal float support on kfreebsd-amd64. Closes: #897416. + + -- Matthias Klose Sun, 06 May 2018 13:25:30 +0200 + +gcc-7 (7.3.0-17ubuntu1) cosmic; urgency=medium + + * Update to SVN 20180502 (r259836) from the gcc-7-branch. + - Fix PR middle-end/84955, PR libstdc++/pr66689, PR libstdc++/68397, + PR fortran/81773, PR fortran/83606. + * Update the Linaro support to the 7-2018.04 snapshot. + + -- Matthias Klose Wed, 02 May 2018 15:31:26 +0200 + +gcc-7 (7.3.0-17) unstable; urgency=medium + + [ Matthias Klose ] + * Update to SVN 20180427 (r259697) from the gcc-7-branch. + - Fix PR libstdc++/85222, PR libstdc++/85442, PR target/85261 (ARM), + PR sanitizer/85389, PR c/84873, PR tree-optimization/85284, + PR middle-end/85244, PR tree-optimization/85168, PR lto/85405, + PR lto/85405, PR sanitizer/85081, PR ipa/84963, PR ipa/84658, + PR target/83660 (PPC), PR middle-end/85496, PR target/83969 (PPC). + * Update the gcc-foffload-default patch. LP: #1721355. + * Use the binutils in the build chroot if present. + * Don't use dwz for GCC backports. + + [ Aurelien Jarno ] + * Enable logwatch on riscv64. + + -- Matthias Klose Sat, 28 Apr 2018 15:20:26 +0200 + +gcc-7 (7.3.0-16ubuntu3) bionic; urgency=medium + + * Update to SVN 20180415 (r259389) from the gcc-7-branch. + - Fix PR libstdc++/85222. + * Remove our own PR libstdc++/85222 backport. + + -- Matthias Klose Sun, 15 Apr 2018 06:52:13 +0200 + +gcc-7 (7.3.0-16ubuntu2) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + * Update the gcc-foffload-default patch. LP: #1721355. + + -- Matthias Klose Thu, 12 Apr 2018 00:45:22 +0200 + +gcc-7 (7.3.0-16) unstable; urgency=medium + + * Update to SVN 20180411 (r259316) from the gcc-7-branch. + - Fix PR target/85203 (ARM), PR target/84748 (AArch64), PR c++/85279, + PR target/85196 (SPARC). + * Use triplet-prefixed as and ld (Helmut Grohne). Addresses: #895251. + * Link libasan, liblsan, libubsan always with --no-as-needed. LP: #1762683. + * Backport r251558 from the trunk, addresses Linaro #3718. LP: #1759369. + * Fix PR libstdc++/85222, taken from the trunk. + * Use --push-state --as-needed and --pop-state instead of --as-needed and + --no-as-needed for linking libgcc. + + -- Matthias Klose Wed, 11 Apr 2018 19:10:46 +0200 + +gcc-7 (7.3.0-15ubuntu2) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Fri, 06 Apr 2018 13:00:39 +0200 + +gcc-7 (7.3.0-15) unstable; urgency=medium + + * Update to SVN 20180405 (r259156) from the gcc-7-branch. + - Fix PR target/85100 (x86), PR target/85193 (x86), + PR rtl-optimization/84878, PR target/85056 (nvptx), + PR target/84912 (PPC), PR target/80546 (PPC), PR c++/82152, + PR c++/84665, PR c++/85006, PR c++/85118, PR c++/85148, + PR c++/85113, PR c++/64095, PR c++/85060. + * Don't install i586 symlinks anymore for i386 builds in sid. + * Fix zlib-dev dependencies for the libphobos cross multilib packages. + * Fix dependency generation for libatomic and libquadmath cross packages. + + -- Matthias Klose Thu, 05 Apr 2018 23:34:09 +0200 + +gcc-7 (7.3.0-14ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 01 Apr 2018 20:57:18 +0200 + +gcc-7 (7.3.0-14) unstable; urgency=medium + + * Update to SVN 20180401 (r258998) from the gcc-7-branch. + - Fix PR c++/84783, PR target/84826 (ARM32), PR target/81647 (AArch64), + PR target/85026 (ARM32), PR target/82411 (PPC), PR fortran/85084, + PR fortran/85001. + * Build a native compiler with a cross directory layout using the + FORCE_CROSS_LAYOUT environment variable. + + -- Matthias Klose Sun, 01 Apr 2018 20:53:29 +0200 + +gcc-7 (7.3.0-13ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 28 Mar 2018 00:34:39 +0800 + +gcc-7 (7.3.0-13) unstable; urgency=medium + + * Update to SVN 20180327 (r258888) from the gcc-7-branch. + - Fix PR libstdc++/77691, PR target/82518 (ARM32), PR target/83789 (PPC), + PR tree-optimization/84956, PR target/84574 (x86), PR c++/78489, + PR c++/84489, PR c++/71834, PR c++/84937, PR c++/80227, PR c++/84839, + PR c++/84798, PR c++/84355, PR c++/82336, PR c++/84854, PR c++/84927, + PR c++/71638, PR fortran/85001, PR fortran/84931, PR fortran/77414, + PR fortran/65453, PR target/82989 (ARM32). + * Fix PR sanitizer/84761, taken from the trunk. Addresses: #892096. + * Fix control file generation for nolang=biarch builds (Helmut Grohne). + Addresses: #891289. + * Simplify architecture to gnu-type mapping (Helmut Grohne). + Addresses: #893493. + * Fix PR target/85026 (ARM32), taken from the trunk. + + -- Matthias Klose Wed, 28 Mar 2018 00:15:04 +0800 + +gcc-7 (7.3.0-12ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 18 Mar 2018 22:15:33 +0800 + +gcc-7 (7.3.0-12) unstable; urgency=medium + + * Update to SVN 20180318 (r258626) from the gcc-7-branch. + - Fix PR libstdc++/84769, PR libstdc++/84773, PR libstdc++/83662, + PR tree-optimization/84485, PR ada/82813, PR fortran/83939, + PR target/83451 (PA), PR fortran/78741. + + [ John David Anglin ] + * Switch hppa-linux to caller-copies ABI (as done in GCC 8). Closes: #892848. + + [ Aurelien Jarno ] + * Default to PIE on riscv64. + * Temporarily do not build-depend on gdb on riscv64. + + [ Matthias Klose ] + * Update the Linaro support to the 7-2018.01 snapshot. + + -- Matthias Klose Sun, 18 Mar 2018 22:11:44 +0800 + +gcc-7 (7.3.0-11ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Mon, 12 Mar 2018 07:59:22 +0100 + +gcc-7 (7.3.0-11) unstable; urgency=medium + + * Update to SVN 20180312 (r258443) from the gcc-7-branch. + - Fix PR target/83984 (PA), PR c++/84785, PR fortran/84734. + + [ Svante Signell ] + * Update go patches for hurd-i386. + + [ Matthias Klose ] + * Fix typo in lib32asan symbols file for s390x. + + [ Aurelien Jarno ] + * Fix PR target/84475, taken from the trunk. + * Disable gnat and go on riscv64. + * Backport RISC-V libffi support from upstream. + + -- Matthias Klose Mon, 12 Mar 2018 07:51:27 +0100 + +gcc-7 (7.3.0-10) unstable; urgency=medium + + * Fix typo in libasan symbols file for s390x. + + -- Matthias Klose Sat, 10 Mar 2018 17:37:35 +0700 + +gcc-7 (7.3.0-9ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sat, 10 Mar 2018 10:43:42 +0700 + +gcc-7 (7.3.0-9) unstable; urgency=medium + + * Update to SVN 20180310 (r258405) from the gcc-7-branch. + * Update libasan symbols files for s390x. + + -- Matthias Klose Sat, 10 Mar 2018 10:31:12 +0700 + +gcc-7 (7.3.0-8ubuntu3) bionic; urgency=medium + + * Update libasan symbols files for s390x. + + -- Matthias Klose Fri, 09 Mar 2018 15:47:38 +0700 + +gcc-7 (7.3.0-8ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Fri, 09 Mar 2018 13:17:18 +0700 + +gcc-7 (7.3.0-8) unstable; urgency=medium + + * Update to SVN 20180309 (r258378) from the gcc-7-branch. + - Fix PR fortran/64124, PR fortran/70409. + * Build libasan and libubsan packages on s390x. + + -- Matthias Klose Fri, 09 Mar 2018 13:06:52 +0700 + +gcc-7 (7.3.0-6ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 08 Mar 2018 10:29:50 +0700 + +gcc-7 (7.3.0-6) unstable; urgency=medium + + * Update to SVN 20180308 (r258348) from the gcc-7-branch. + - Fix PR fortran/84418, PR libgomp/84096, PR libstdc++/84671, + PR libstdc++/84532, PR target/84209 (AVR), PR c/84310, PR target/79747, + PR other/80589, PR gcov-profile/84137, PR gcov-profile/83879, + PR rtl-optimization/82675, PR c/84229, PR ipa/81360, PR target/81572, + PR tree-optimization/84486, PR middle-end/84607, PR target/84524 (x86), + PR ipa/84628, PR inline-asm/84625, PR bootstrap/82916, PR c++/84444, + PR ipa/84425, PR c/82210, PR sanitizer/83987, PR rtl-optimization/84308, + PR sanitizer/84285, PR c++/83659, PR tree-optimization/81661, + PR tree-optimization/84117, PR rtl-optimization/83986, PR target/83930, + PR middle-end/84040, PR middle-end/83977, PR middle-end/83945, + PR preprocessor/83722, PR tree-optimization/83605, PR target/84039 (x86), + PR target/84530 (x86), PR target/83790 (nvptx), PR preprocessor/69869, + PR rtl-optimization/83496, PR c++/84684, PR c++/84686, PR c++/84558, + PR c++/84557, PR c++/84445, PR c++/84449, PR c++/84448, PR c++/84430, + PR c++/84192, PR c++/84341, PR c++/83659, PR c++/84082, PR c++/83993, + PR c++/84031, PR c++/83958, PR c++/83824, PR c++/83817, PR c++/84489, + PR c++/71569, PR c++/71569, PR c++/71784, PR c++/84496, PR c++/84441, + PR c++/84520, PR c++/81589, PR c++/84015, PR fortran/56667, + PR fortran/83076, PR fortran/71085, PR fortran/51434, PR fortran/80965, + PR fortran/78990, PR fortran/84418, PR fortran/84116, PR fortran/83633, + PR fortran/78238, PR fortran/30792, PR fortran/84511, PR fortran/84346, + PR fortran/84506, PR fortran/81116, PR fortran/84495, PR lto/81440, + PR ipa/81360, PR lto/81004, PR lto/83954, PR lto/83954, + target/81228 (AArch64, closes: #882417). + + [ Aurelien Jarno ] + * Configure s390x build with --with-arch=z196 on Debian. + * Drop libgo-s390x-default-isa.diff patch. + * Disable multilib on riscv64. + * Update gcc-as-needed.diff, gcc-hash-style-both.diff and + gcc-hash-style-gnu.diff for riscv64. + * Update gcc-multiarch.diff for riscv64. + + [ Karsten Merker ] + * Force the riscv64 ISA to rv64imafdc and ABI to lp64d. + + [ Matthias Klose ] + * Fix cross-building libgnat on armel, when not building the common libraries. + + [ Dann Frazier ] + * Fix PR target/81356 (AArch64): Avoid memory access w/ __builtin_strcpy of + empty string, taken from the trunk. LP: #1742289. + - aarch64-simd: Avoid emitting dup insn by using canonical form for fnma. + - aarch64/thunderx2: Add pipeline/scheduling info for missing insn types. + + -- Matthias Klose Thu, 08 Mar 2018 17:02:46 +0700 + +gcc-7 (7.3.0-5ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 20 Feb 2018 13:42:54 +0700 + +gcc-7 (7.3.0-5) unstable; urgency=medium + + * Update to SVN 20180220 (r257837) from the gcc-7-branch. + - Fix PR libstdc++/81797, PR fortran/82007, PR libgfortran/84412. + * Fix cross-building libcilkrts, when not building the common libraries. + + -- Matthias Klose Tue, 20 Feb 2018 13:27:46 +0700 + +gcc-7 (7.3.0-4ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 18 Feb 2018 15:54:15 +0700 + +gcc-7 (7.3.0-4) unstable; urgency=medium + + * Update to SVN 20180218 (r257787) from the gcc-7-branch. + - S/390: Disable branch prediction for indirect branches. + - Fix PR tree-optimization/84233 (closes: #889724), + PR target/PR84295 (s390), PR target/84113 (PPC), PR target/84154 (PPC), + PR target/83758 (PPC), PR target/84279 (PPC), PR c++/83990, + PR target/84089 (PA), PR fortran/68560, PR fortran/35299, + PR fortran/54223, PR fortran/84276, PR target/79242 (MSP430). + PR target/82096 (ARM), PR tree-optimization/84190, PR c++/84151, + PR c++/81853, PR c++/84420, PR c++/83835, PR c++/82664, PR c++/82764, + PR c++/83227, PR c++/84045, PR fortran/84270. + * Fix PR c++/83204, taken from the trunk. Closes: #882855. + * Refresh patches. + * Configure with --disable-libquadmath-support when not explicitly enabled. + + -- Matthias Klose Sun, 18 Feb 2018 15:19:16 +0700 + +gcc-7 (7.3.0-3ubuntu1) bionic; urgency=medium + + * Update to SVN 20180209 (r257526) from the gcc-7-branch. + - S/390: Disable branch prediction for indirect branches. + - Fix PR tree-optimization/84233 (closes: #889724), + PR target/PR84295 (s390), PR target/84113 (PPC). + * Fix PR c++/83204, taken from the trunk. Closes: #882855. + + -- Matthias Klose Fri, 09 Feb 2018 15:59:15 +0100 + +gcc-7 (7.3.0-3) unstable; urgency=medium + + * Update to SVN 20180208 (r257477) from the gcc-7-branch. + - Fix PR fortran/82994, PR fortran/82049. + * Stop building more packages now built by gcc-8. + + -- Matthias Klose Thu, 08 Feb 2018 09:10:11 +0100 + +gcc-7 (7.3.0-2) unstable; urgency=medium + + * Update to SVN 20180207 (r257455) from the gcc-7-branch. + - Fix PR libstdc++/81076, PR libstdc++/83830, PR rtl-optimization/83985, + PR target/83862 (PPC), PR target/83399 (PPC), PR c++/82878, PR c++/78495, + PR libstdc++/83833, PR libstdc++/83658, PR libstdc++/83833, PR c++/82461, + PR bootstrap/80867, PR rtl-optimization/84071, PR target/68467 (m68k), + PR target/81763 (x86), PR target/84033 (PPC), PR target/83905 (x86), + PR target/56010 (PPC), PR target/83743 (PPC), PR rtl-optimization/84123, + PR target/83370 (AArch64), PR tree-optimization/82795. + * Stop building packages now built by gcc-8. + * Include arm_cmse.h header for ARM32 architectures. + * Store basename only in gfortran .mod files. Closes: #889133. + + -- Matthias Klose Wed, 07 Feb 2018 19:26:12 +0100 + +gcc-7 (7.3.0-1ubuntu1) bionic; urgency=medium + + * GCC 7.3.0 release. + + -- Matthias Klose Thu, 25 Jan 2018 12:34:11 +0100 + +gcc-7 (7.3.0-1) unstable; urgency=medium + + * GCC 7.3.0 release. + * Ignore bootstrap comparison failures in gcc/d on alpha. Addresses: #888394. + + -- Matthias Klose Thu, 25 Jan 2018 12:07:10 +0100 + +gcc-7 (7.2.0-20ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 23 Jan 2018 22:44:26 +0100 + +gcc-7 (7.2.0-20) unstable; urgency=medium + + * GCC 7.3 release candidate 2. + * Update to SVN 20180122 (r256970) from the gcc-7-branch. + - Fix PR libstdc++/83834, PR libstdc++/83626, PR target/83946 (PPC), + PR target/80870 (SH), PR tree-optimization/81877, PR middle-end/81782, + PR target/83687 (ARM), PR ipa/82352, PR ipa/83549, + PR tree-optimization/83552, PR rtl-optimization/83424, + PR target/83839 (x86), PR target/81481 (closes: #887327), + PR target/83629 (PPC), PR target/83330 (x86), PR target/83677 (PPC), + PR target/83628 (alpha), PR target/83628 (alpha), PR target/81819 (RX), + PR rtl-optimization/83565 (closes: #887066), + PR bootstrap/81926, PR target/81821 (RX), PR middle-end/83713, + PR target/82975 (ARM), PR target/83628 (alpha), PR c++/81843, + PR c++/72801, PR c++/82331, PR c++/82760, PR fortran/83900, + PR fortran/83900, PR fortran/80768, PR fortran/83864, PR fortran/78814, + PR fortran/82367, PR fortran/83093, PR libgfortran/83811. + * Install the msa.h header for mips targets (YunQiang Su). Closes: #887066. + * Fix mipsen r6 biarch configs (YunQiang Su). Closes: #886977. + + -- Matthias Klose Tue, 23 Jan 2018 13:20:11 +0100 + +gcc-7 (7.2.0-19ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 07 Jan 2018 10:09:10 +0100 + +gcc-7 (7.2.0-19) unstable; urgency=medium + + * Update to SVN 20180107 (r256317) from the gcc-7-branch. + - Fix PR libstdc++/82522, PR debug/83550, PR middle-end/83608, + PR middle-end/83609, PR middle-end/83623, PR c++/83553, PR lto/82027, + PR c/83448, PR rtl-optimization/80747, PR rtl-optimization/83512, + PR tree-optimization/83523, PR tree-optimization/83521, PR ipa/82801, + PR ipa/83346, PR target/83467 (x86), PR tree-optimization/82726, + PR tree-optimization/70754, PR target/83387 (PPC), PR c++/83556, + PR c++/83116, PR Fortran/83679, PR fortran/83650, PR Fortran/83548, + PR libgfortran/83649, PR libgfortran/83613, PR libgfortran/81937, + PR libgfortran/78549, PR libstdc++/83600, PR libstdc++/83598, + PR libstdc++/83279, PR libstdc++/83626, PR libstdc++/83626, + PR preprocessor/83492. + * debian/rules2: Fix typo for N32 conditions (YunQiang Su). Closes: #886316. + * More libffi mips r6 updates (YunQiang Su). Addresses: #886201. + * libgo: Backport upstream sparc64 fix (James Clark). Closes: #884642. + * Default to PIE on the hurd (Samuel Thibault). Closes: #885056. + * Use internal libunwind for ia64 cross-builds. Closes: #885931. + * Strip -z,defs from linker options for internal libunwind (James Clarke). + Closes: #885937. + * Fix rtlibs stage build with debhelper 10.9.1 (Helmut Grohne). + Closes: #879054. + + -- Matthias Klose Sun, 07 Jan 2018 08:55:48 +0100 + +gcc-7 (7.2.0-18ubuntu2) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sat, 16 Dec 2017 10:04:11 +0100 + +gcc-7 (7.2.0-18) unstable; urgency=medium + + * Update to SVN 20171216 (r255739) from the gcc-7-branch. + - Fix PR target/80101 (PPC), PR libstdc++/83427, PR libstdc++/59568, + PR libstdc++/83395, PR c++/83059, PR c/81875, PR tree-optimization/83269, + PR tree-optimization/83198, PR tree-optimization/80631, + PR target/81906 (x86), PR c++/81212, PR target/78643 (x86), + PR target/80583 (x86), PR target/80819 (x86), PR rtl-optimization/81553, + PR sanitizer/83014, PR middle-end/82253, PR debug/83084, + PR target/82880 (mips), PR bootstrap/83439, PR target/66488 (MingW), + PR tree-optimization/82060, PR tree-optimization/82102, + PR middle-end/82128, PR tree-optimization/82402, + PR tree-optimization/82697, PR middle-end/82765, + PR tree-optimization/82902, PR target/80210 (PPC), PR target/81959 (PPC), + PR c++/83205, PR c++/81197, PR c++/83217, PR c++/79650, PR c++/80259, + PR c++/81888, PR c++/81675, PR c++/82781, PR fortran/81304, + PR fortran/81841. + * Move the .gox files into the gccgo packages. Closes: #883136. + * Re-enable gccgo on m68k. Closes: #883794. + * libffi: mips/n32.S: disable .set mips4 on mips r6 (YunQiang Su). + * Fix shlibs search path for mips64 cross targets. Addresses: #883988. + * Set the armel port baseline to armv5te. Closes: #882174. + + -- Matthias Klose Sat, 16 Dec 2017 09:49:29 +0100 + +gcc-7 (7.2.0-17ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 05 Dec 2017 14:58:41 +0100 + +gcc-7 (7.2.0-17) unstable; urgency=medium + + * Update to SVN 20171205 (r255408) from the gcc-7-branch. + - Fix PR rtl-optimization/82621, PR target/83111 (SH), + PR rtl-optimization/82044, PR tree-optimization/82042, + PR gcov-profile/82457, PR sanitizer/82792, PR gcov-profile/82633, + PR driver/81829, PR sanitizer/82545, PR target/77687 (PPC), + PR fortran/79072, PR fortran/78686, PR libgfortran/78549, + PR fortran/83021 (closes: #881918), PR libstdc++/82522, + PR libstdc++/83134, PR libstdc++/82685, PR libstdc++/83226, + PR target/82941 (x86), PR target/82942 (x86), PR target/82990 (x86), + PR 81288/target (PPC), PR target/82717 (RISC-V), PR ipa/82808, + PR libgfortran/83168, PR libgfortran/83191, PR libgfortran/83225. + + [ Matthias Klose ] + * Update sanitizer and libcc1 symbols. + * Remove libgphobos symbols files. + * libcc1: Fix setting the compiler name, taken from the trunk. + * Don't revert the fix for PR target/55947, fixed for GCC 7. + * Build cilkrts libs when not building common libs (removed in GCC 8). + * Update the Linaro support to the 7-2017.11 snapshot (no changes). + * Apply proposed patch for PR target/70216, __builtin_trap() on SH. + Closes: #883433. + + [ Aurelien Jarno / Svante Signell ] + * Do not enable go on GNU/kFreeBSD, it has been wrongly enabled in + 7.2.0-15. Closes: #881656. + + -- Matthias Klose Tue, 05 Dec 2017 12:28:35 +0100 + +gcc-7 (7.2.0-16ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 15 Nov 2017 21:44:36 +0100 + +gcc-7 (7.2.0-16) unstable; urgency=medium + + * Apply the libgo patches for the Hurd conditionally. + + -- Matthias Klose Wed, 15 Nov 2017 21:36:47 +0100 + +gcc-7 (7.2.0-15) unstable; urgency=medium + + * Update to SVN 20171115 (r254781) from the gcc-7-branch. + - Fix PR fortran/82934, PR fortran/78619, PR fortran/82869, + PR tree-optimization/82985, PR tree-optimization/81790, + PR debug/82155. + * Fix libgo build on ia64 (Jason Duerstock). Closes: #881372. + * Port libgo to the Hurd (Svante Signell). + * Compress debug symbols for compiler binaries with dwz. + * Fix PR other/82880, gcc --help=target hangs on mips (James Cowgill). + Closes: #880962. + * Add support for a plethora of mips r6 packages (YunQiang Su). + Closes: #881729. + * gcc-7-base: Add breaks to gnat (<< 7). Closes: #881775. + + -- Matthias Klose Wed, 15 Nov 2017 20:02:41 +0100 + +gcc-7 (7.2.0-14) unstable; urgency=medium + + * Remove the gcc-mips64-stack-spilling patch, applied upstream. + * Remove the build dependency on autogen. + + -- Matthias Klose Thu, 09 Nov 2017 13:04:27 +0100 + +gcc-7 (7.2.0-13ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 09 Nov 2017 12:21:54 +0100 + +gcc-7 (7.2.0-13) unstable; urgency=medium + + * Update to SVN 20171109 (r254567) from the gcc-7-branch. + - Fix PR c++/82159, PR sanitizer/81715, PR rtl-optimization/82192, + PR c/82234, PR target/82703 (x86), PR c++/82085, PR c++/82373, + PR fortran/81758, PR libgfortran/81938, PR c++/81702, PR target/82772, + PR fortran/80554, PR fortran/80850, PR libgcc/82635, + PR rtl-optimization/64682, PR rtl-optimization/69567, + PR rtl-optimization/69737, PR rtl-optimization/82683, + PR rtl-optimization/81803, PR middle-end/60580, PR fortran/78641, + PR fortran/69739, PR fortran/82796, PR fortran/81735. + - Fix subminor version number. Closes: #879823. + * Bump libunwind (build-)dependency for ia64. Closes: #879959. + * libgcc and libstdc++ symbols files updates for mipsn32. + + -- Matthias Klose Thu, 09 Nov 2017 11:56:16 +0100 + +gcc-7 (7.2.0-12ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 25 Oct 2017 12:34:22 +0200 + +gcc-7 (7.2.0-12) unstable; urgency=medium + + * Update to SVN 20171025 (r254073) from the gcc-7-branch. + - Fix PR sanitizer/82595, PR libstdc++/81395, PR libstdc++/82481, + PR libstdc++/79433, PR tree-optimization/82603, PR target/82445 (ARM), + PR tree-optimization/82436, PR rtl-optimization/82602, + PR middle-end/82556, PR tree-optimization/82549, PR c++/82560, + PR fortran/82312, PR fortran/79795, PR libfortran/82233. + * Install the gcov.h header file. + * Do the extra/optional dance ... + * Override hardening-no-pie flags for compiler executables. + + -- Matthias Klose Wed, 25 Oct 2017 12:10:43 +0200 + +gcc-7 (7.2.0-11) unstable; urgency=medium + + * Update to SVN 20171017 (r253807) from the gcc-7-branch. + - Fix PR fortran/52832, PR fortran/80120, PR fortran/81903, + PR fortran/82121, PR fortran/67543, PR fortran/78152, PR fortran/81048. + - Fix libgo bootstrap on s390x and alpha, introduced by the mips backport. + * Mask __float128 from CUDA compilers. LP: #1717257. + * Update the Linaro support to the 7-2017.10 snapshot. + + -- Matthias Klose Tue, 17 Oct 2017 14:42:35 +0200 + +gcc-7 (7.2.0-10) unstable; urgency=medium + + * Update to SVN 20171014 (r253748) from the gcc-7-branch. + - Fix PR go/80914, PR target/82274 (x86), PR target/82524 (x86). + * Set QUILT_PATCH_OPTS='-E' for applying patches (James Cowgill). + + -- Matthias Klose Sat, 14 Oct 2017 07:12:28 +0200 + +gcc-7 (7.2.0-9) unstable; urgency=medium + + * Update to SVN 20171010 (r253580) from the gcc-7-branch. + - Fix PR fortran/80118, PR tree-optimization/82337, PR sanitizer/82379, + PR target/71727 (AArch64), PR c++/82406, PR c++/70029, PR c++/82299, + PR c++/82406, PR c++/70029, PR c++/81525, PR ada/82393. + - libgo: use golang arch names as the default GOARCHs on MIPS. + Closes: #876639. + * Fix builds without hppa64 cross compiler and new debhelper. Closes: #877589. + * Fix build dependency on realpath. Closes: #877821. + + -- Matthias Klose Tue, 10 Oct 2017 12:35:39 +0200 + +gcc-7 (7.2.0-8ubuntu2) artful; urgency=medium + + * Dont't apply the PR 67165 backport on armhf. + + -- Matthias Klose Wed, 04 Oct 2017 05:55:11 +0200 + +gcc-7 (7.2.0-8ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 01 Oct 2017 23:51:25 +0200 + +gcc-7 (7.2.0-8) unstable; urgency=medium + + * Update to SVN 20171001 (r253234) from the gcc-7-branch. + - Fix PR tree-optimization/82244, PR tree-optimization/82276, + PR tree-optimization/82264, PR tree-optimization/82285, PR c/82340, + PR tree-optimization/82291, PR c++/82159. + * Fix "privacy breeches" for NEWS.html file. + * Build lsan and tsan packages on arm64, ppc64 and ppc64el. + * Fix PR other/67165, libbacktrace support for compressed debug sections, + taken from the trunk. + + -- Matthias Klose Sun, 01 Oct 2017 23:35:36 +0200 + +gcc-7 (7.2.0-7ubuntu4) artful; urgency=medium + + * Fix lsan/tsan symbols files for arm64 and ppc64el. + + -- Matthias Klose Thu, 28 Sep 2017 02:56:39 +0200 + +gcc-7 (7.2.0-7ubuntu3) artful; urgency=medium + + * Update to SVN 20170927 (r253234) from the gcc-7-branch. + - Fix PR tree-optimization/82244, PR tree-optimization/82276, + PR tree-optimization/82264, PR tree-optimization/82285, + PR tree-optimization/82291. + * Fix "privacy breeches" for NEWS.html file. + * Build lsan and tsan packages on arm64, ppc64 and ppc64el. + + -- Matthias Klose Wed, 27 Sep 2017 18:16:17 +0200 + +gcc-7 (7.2.0-7ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sat, 23 Sep 2017 11:42:38 +0200 + +gcc-7 (7.2.0-7) unstable; urgency=medium + + * Update to SVN 20170923 (r253114) from the gcc-7-branch. + - Fix PR libstdc++/79162, PR libstdc++/79162, PR libstdc++/82262, + PR libstdc++/82254, PR target/81996 (PPC), PR target/71951 (AArch64), + PR sanitizer/81929. + * Fix PR go/82284, taken from the trunk. Closes: #876353. + + -- Matthias Klose Sat, 23 Sep 2017 11:31:21 +0200 + +gcc-7 (7.2.0-6ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 20 Sep 2017 11:21:01 +0200 + +gcc-7 (7.2.0-6) unstable; urgency=medium + + * Update to SVN 20170920 (r253002) from the gcc-7-branch. + - Fix PR target/82112 (PPC), PR c++/81355, PR tree-optimization/82084, + PR tree-optimization/82108, PR target/81325 (PPC), PR c++/81236, + PR c++/80767, PR c++/82030, PR c++/80935, PR c++/81671, PR c++/81525, + PR c++/81314, PR libgfortran/78387. + * Fix fortran cross compiler build with debhelper 10.9. Closes: #876246. + * Strip the compiler binaries again. Closes: #872672. + * Bump binutils dependency to 2.29.1 for sid/buster. + + -- Matthias Klose Wed, 20 Sep 2017 11:13:31 +0200 + +gcc-7 (7.2.0-5ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Fri, 15 Sep 2017 12:19:48 +0200 + +gcc-7 (7.2.0-5) unstable; urgency=medium + + * Update to SVN 20170915 (r252791) from the gcc-7-branch. + - Fix PR c/81687, PR c/45784, PR c++/81852, PR target/82181 (xtensa), + PR target/80695 (PPC), PR target/81988 (SPARC), PR middle-end/81768, + PR sanitizer/81923, PR target/81621, PR driver/81650, + PR middle-end/81052, PR tree-optimization/81987, PR bootstrap/81926, + PR libstdc++/79162, PR libstdc++/81468, PR libstdc++/81835, + PR libstdc++/70483, PR libstdc++/70483, PR target/81833 (PPC), + PR other/39851, PR ipa/81128, PR inline-asm/82001, PR c++/81355, + PR tree-opt/81696. + * Enable libgo tests and rebuilds with make -C (Svante Signell). + Closes: #873929. + * Fix PR sanitizer/77631, support separate debug info in libbacktrace. + * Update the Linaro support to the 7-2017.09 snapshot. + + -- Matthias Klose Fri, 15 Sep 2017 12:15:21 +0200 + +gcc-7 (7.2.0-4ubuntu2) artful; urgency=medium + + * Update to SVN 20170912 (r251998) from the gcc-7-branch. + - Fix PR c/81687, PR c/45784, PR c++/81852, PR target/82181 (xtensa), + PR target/80695 (PPC), PR target/81988 (SPARC), PR middle-end/81768, + PR sanitizer/81923, PR target/81621, PR driver/81650, + PR middle-end/81052, PR tree-optimization/81987, PR bootstrap/81926. + + -- Matthias Klose Tue, 12 Sep 2017 11:38:01 +0200 + +gcc-7 (7.2.0-5) unstable; urgency=medium + + * Update to SVN 20170915 (r252791) from the gcc-7-branch. + - Fix PR c/81687, PR c/45784, PR c++/81852, PR target/82181 (xtensa), + PR target/80695 (PPC), PR target/81988 (SPARC), PR middle-end/81768, + PR sanitizer/81923, PR target/81621, PR driver/81650, + PR middle-end/81052, PR tree-optimization/81987, PR bootstrap/81926, + PR libstdc++/79162, PR libstdc++/81468, PR libstdc++/81835, + PR libstdc++/70483, PR libstdc++/70483, PR target/81833 (PPC), + PR other/39851, PR ipa/81128, PR inline-asm/82001, PR c++/81355, + PR tree-opt/81696. + * Enable libgo tests and rebuilds with make -C (Svante Signell). + Closes: #873929. + * Fix PR sanitizer/77631, support separate debug info in libbacktrace. + * Update the Linaro support to the 7-2017.09 snapshot. + + -- Matthias Klose Fri, 15 Sep 2017 12:15:21 +0200 + +gcc-7 (7.2.0-4ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 06 Sep 2017 11:07:43 +0200 + +gcc-7 (7.2.0-4) unstable; urgency=medium + + * Update to SVN 20170906 (r251753) from the gcc-7-branch. + - Fix PR c++/82039, PR libstdc++/81912, PR libstdc++/81891, + PR libstdc++/81599, PR libstdc++/81338, PR tree-optimization/81503, + PR ada/79542, PR ada/62235, PR fortran/81770. + * Fix PR target/81833 (PPC), taken from the trunk. Closes: #871565. + + -- Matthias Klose Wed, 06 Sep 2017 10:38:05 +0200 + +gcc-7 (7.2.0-3ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sat, 02 Sep 2017 14:02:06 +0200 + +gcc-7 (7.2.0-3) unstable; urgency=high + + * Update to SVN 20170901 (r251583) from the gcc-7-branch. + - Fix PR target/81504 (PPC), PR c++/82040. + * Apply proposed patch for PR target/81803 (James Cowgill), conditionally + for mips* targets. Closes: #871514. + * Bump standards version. + + -- Matthias Klose Sat, 02 Sep 2017 13:55:18 +0200 + +gcc-7 (7.2.0-2ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 30 Aug 2017 12:23:25 +0200 + +gcc-7 (7.2.0-2) unstable; urgency=medium + + * Update to SVN 20170830 (r251446) from the gcc-7-branch. + - Fix PR target/72804 (PPC), PR target/80210 (PPC), PR target/81910 (AVR), + PR target/79883 (AVR), PR fortran/81296, PR fortran/80164, + PR target/81593 (PPC), PR target/81170 (PPC), PR target/81295 (PPC), + PR tree-optimization/81977, PR debug/81993 (closes: #873609), + PR middle-end/81088, PR middle-end/81065, PR sanitizer/80932, + PR middle-end/81884, PR tree-optimization/81181, + PR tree-optimization/81723, PR target/81921 (x86), PR c++/81607. + * Update the Linaro support to the 7-2017.08 snapshot. + * Restore configuring with --with-mode=thumb on armhf. Closes: #873584. + * Default to PIE on powerpc again, now that PR target/81170 and + PR target/81295 are fixed. Closes: #856224. + + -- Matthias Klose Wed, 30 Aug 2017 11:47:42 +0200 + +gcc-7 (7.2.0-1ubuntu2) artful; urgency=medium + + * Update to SVN 20170824 (r251336) from the gcc-7-branch. + - Fix PR target/72804 (PPC), PR target/80210 (PPC), PR target/81910 (AVR), + PR target/79883 (AVR), PR fortran/81296, PR fortran/80164. + * Update the Linaro support to the 7-2017.08 snapshot. + + -- Matthias Klose Thu, 24 Aug 2017 17:33:34 +0200 + +gcc-7 (7.2.0-1ubuntu1) artful; urgency=medium + + * Update to SVN 20170818 (r251184) from the gcc-7-branch. + + -- Matthias Klose Fri, 18 Aug 2017 18:54:43 +0200 + +gcc-7 (7.2.0-1) unstable; urgency=medium + + * GCC 7.2.0 release. + * Update libgcc1 symbols file for s390x. + * Apply proposed patch for PR driver/81829. Closes: #853537. + + -- Matthias Klose Fri, 18 Aug 2017 18:34:45 +0200 + +gcc-7 (7.1.0-13ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 08 Aug 2017 11:43:39 -0400 + +gcc-7 (7.1.0-13) unstable; urgency=medium + + * GCC 7.2 release candidate 2. + * Don't build the gc enabled libobjc for cross compilers. Closes: #870895. + * Configure cross-build-native builds with --program-prefix (Adrian + Glaubitz). Closes: #871034. + * Update build dependencies for powerpcspe. Closes: #868186. + * Fix PR tree-optimization/81723, taken from the trunk. Closes: #853345. + + -- Matthias Klose Tue, 08 Aug 2017 11:12:56 -0400 + +gcc-7 (7.1.0-12ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 03 Aug 2017 09:57:19 -0400 + +gcc-7 (7.1.0-12) unstable; urgency=medium + + * GCC 7.2 release candidate 1. + * Update to SVN 20170803 (r250853) from the gcc-7-branch. + + -- Matthias Klose Thu, 03 Aug 2017 09:20:48 -0400 + +gcc-7 (7.1.0-11ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Mon, 31 Jul 2017 23:34:35 +0200 + +gcc-7 (7.1.0-11) unstable; urgency=medium + + * Update to SVN 20170731 (r250749) from the gcc-7-branch. + + [ Matthias Klose ] + * Update sanitizer symbols for ppc64 and sparc64. + + [ Nicolas Boulenguez ] + * Only build gnatvsn as a native library. + + -- Matthias Klose Mon, 24 Jul 2017 13:41:34 +0200 + +gcc-7 (7.1.0-10ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Mon, 24 Jul 2017 10:55:47 +0200 + +gcc-7 (7.1.0-10) unstable; urgency=medium + + * Update to SVN 20170722 (r250453) from the gcc-7-branch. + + [ Nicolas Boulenguez ] + * libgnatvsn: embed xutil rident for version 2017 of asis package. + + [ Matthias Klose ] + * Fix gnat cross build on m68k (Adrian Glaubitz). Closes: #862927. + * Enable gnat cross build on m68k. Closes: #868365. + * Update the Linaro support to the 7-2017.07 snapshot. + * Stop ignoring symbol mismatches for runtime libraries. + + [ Aurelien Jarno ] + * libgo-s390x-default-isa.diff: do not build libgo with -march=z196, + use the default ISA instead. + + -- Matthias Klose Sat, 22 Jul 2017 15:06:36 +0200 + +gcc-7 (7.1.0-9ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 05 Jul 2017 19:28:21 +0200 + +gcc-7 (7.1.0-9) unstable; urgency=medium + + * Update to SVN 20170705 (r250006) from the gcc-7-branch. + + [ Matthias Klose ] + * gcc-linaro-revert-r49596.diff: fix build for the linaro branch. + * Don't configure powerpc with --enable-default-pie, fails to build. + See #856224, PR target/81295. + + [ Nicolas Boulenguez ] + * ada-gcc-name.diff: unpatch gnatchop. Addresses: #856274. + * Link libgnat with libatomic on armel. Closes: #861734. + * libgnat-dev: use multiarch paths in project and to install .ali files. + * Build Ada on armel, kfreebsd-*, hurd-i386; #86173[457] are closed. + + -- Matthias Klose Wed, 05 Jul 2017 19:21:55 +0200 + +gcc-7 (7.1.0-8ubuntu2) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 29 Jun 2017 17:42:16 +0200 + +gcc-7 (7.1.0-8) unstable; urgency=medium + + * Update to SVN 20170629 (r249793) from the gcc-7-branch. + + [ Matthias Klose ] + * Move the liblto_plugin from the cpp to the gcc package. + * libstdc++6: Add more Breaks to smoothen upgrades from jessie to stretch. + Addresses: #863845, #863745. + * Don't provide libobjc_gc symlinks for the libobjc multilib packages. + * Configure with --enable-default-pie on ppc64 (Adrian Glaubitz) and + powerpc (Mathieu Malaterre). Addresses: #856224. + + [ Nicolas Boulenguez ] + * Update ada/confirm_debian_bugs.py for gcc-7. + * Drop ada-driver-check.diff, the problem is unreproducible. + * Stop symlinking gcc-7-7 -> gcc-7. See #856274 and #814977. + * gnatmake: compile once even with SOURCE_DATE_EPOCH. Closes: #866029. + + -- Matthias Klose Thu, 29 Jun 2017 17:36:03 +0200 + +gcc-7 (7.1.0-7ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 20 Jun 2017 14:19:39 +0200 + +gcc-7 (7.1.0-7) unstable; urgency=medium + + * Update to SVN 20170618 (r249347) from the gcc-7-branch. + + [ Matthias Klose ] + * Update to SVN 20170524 (r248432) from the gcc-7-branch. + * Don't build libada with -O3 (ftbfs on ppc64el). + * Update sanitizer symbol files (Helmut Grohne). Closes: #864835. + + [ Aurelien Jarno ] + * Remove proposed patch for PR65618, the issue has been fixed upstream + another way. + + [ Nicolas Boulenguez ] + * Ada: link system.ads to system-freebsd.ads on hurd and *freebsd + system-freebsd-x86.ads does not exist anymore. Closes: #861735, #861737. + * Ada: prevent parallel gnatmake invokations for gnattools. Closes: #857831. + * Drop generated and obsolete debian/source.lintian-overrides. + * Drop debian/relink, never executed and redundant with ada patches. + * Ada: Drop dpkg-buildflags usage in patches. Closes: #863289. + * ada: Drop references to obsolete termio-h.diff. Closes: #845159. + * ada-749574.diff: replace work-around with fix and forward it. + * ada-kfreebsd.diff: reduce a lot thanks to Ada2012 syntax. + * ada-link-lib.diff: remove dubious parts. + + -- Matthias Klose Sun, 18 Jun 2017 15:31:39 +0200 + +gcc-7 (7.1.0-6ubuntu2) artful; urgency=medium + + * Update to SVN 20170524 (r248432) from the gcc-7-branch. + * Don't build libada with -O3 (ftbfs on ppc64el). + * Restore building gnattools sequentially. Reopens #857831. + + -- Matthias Klose Wed, 24 May 2017 15:18:49 -0700 + +gcc-7 (7.1.0-6ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Mon, 22 May 2017 16:38:40 -0700 + +gcc-7 (7.1.0-6) experimental; urgency=medium + + * Update to SVN 20170522 (r248347) from the gcc-7-branch. + - Fix PR libstdc++/80796, PR libstdc++/80478, PR libstdc++/80761, + PR target/80799 (x86), PR ada/80784, PR fortran/78659, PR fortran/80752, + PR libgfortran/80727. + + [ Matthias Klose ] + * Re-add unwind support on kfreebsd-amd64 (James Clarke). + * Work around #814977 (gnat calling gcc-7-7) by providing a gcc-7-7 + symlink. + * Fix gnat build dependencies on x32. + * Build gnat on mips64 and powerpcspe. + * Update the Linaro support to the 7-2017.05 snapshot. + * Fix libmpx dependency generation for cross builds. + * Build again gnat cross compilers on 32bit archs targeting 64bit targets. + + [ Nicolas Boulenguez ] + * Remove ada-gnattools-noparallel patch, apparently fixed. Closes: #857831. + * Reduce diff with upstream in ada-gnattools-cross patch. + * debian/rules2: Simplify build flags transmission. + * Append build flags from dpkg during Ada target builds. + + -- Matthias Klose Mon, 22 May 2017 12:43:09 -0700 + +gcc-7 (7.1.0-5ubuntu2) artful; urgency=medium + + * Update to SVN 20170519 (r248295) from the gcc-7-branch. + - Fix PR libstdc++/80796, PR libstdc++/80478, PR libstdc++/80761, + PR target/80799 (x86), PR ada/80784, PR fortran/78659, PR fortran/80752, + PR libgfortran/80727. + * Starting with 17.10, enable PIE on armhf, arm64 and i386. + * Build from the Linaro gcc-7 branch on armhf and arm64. + * Re-add unwind support on kfreebsd-amd64 (James Clarke). + * Work around #814977 (gnat calling gcc-7-7) by providing a gcc-7-7 + symlink. + * Fix gnat build dependencies on x32. + * Build gnat on mips64 and powerpcspe. + * Update the Linaro support to the 7-2017.05 snapshot. + + -- Matthias Klose Fri, 19 May 2017 12:07:42 -0700 + +gcc-7 (7.1.0-5ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 14 May 2017 09:15:57 -0700 + +gcc-7 (7.1.0-5) experimental; urgency=medium + + * Update to SVN 20170514 (r248033) from the gcc-7-branch. + * Disable offload compilers for snapshot builds. + * Build libgo when not building common libs. + * Fix building libgfortran and libgphobos when building without common libs. + * Build gnat on x32. + + -- Matthias Klose Sun, 14 May 2017 08:50:34 -0700 + +gcc-7 (7.1.0-4ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Fri, 05 May 2017 11:57:06 +0200 + +gcc-7 (7.1.0-4) experimental; urgency=medium + + * Update to SVN 20170505 (r247630) from the gcc-7-branch. + * Add sh3 support to gcc-multiarch patch. Closes: #861760. + * Remove libquadmath/gdtoa license from debian/copyright (files removed). + * Fix gdc build on sh4 (sh5 support was removed upstream). + * Disable gnat on KFreeBSD (see #861737) and the Hurd (see #861735) for now. + * Disable running the testsuite on KFreeBSD and the Hurd, hanging on + the buildds. + + -- Matthias Klose Fri, 05 May 2017 11:27:27 +0200 + +gcc-7 (7.1.0-3ubuntu1) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 04 May 2017 00:02:42 +0200 + +gcc-7 (7.1.0-3) experimental; urgency=medium + + * Update to SVN 20170503 (r247549) from the gcc-7-branch. + * Fix gdc build on sparc. + * Update the gdc-cross-install-location patch for GCC 7. + * Bump libgphobos soname. + * dpkg-buildflags stopped fiddling around with spec files; remove + the code removing and warning about dpkg's specs. + * Don't build the native gnat on armel. See issue #861734. + + -- Matthias Klose Wed, 03 May 2017 16:51:15 +0200 + +gcc-7 (7.1.0-2) experimental; urgency=medium + + * Update the disable-gdc-tests patch for GCC 7.1. + + -- Matthias Klose Tue, 02 May 2017 18:35:14 +0200 + +gcc-7 (7.1.0-1ubuntu2) artful; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 02 May 2017 18:13:00 +0200 + +gcc-7 (7.1.0-1) experimental; urgency=medium + + * GCC 7.1.0 release. + * Update NEWS.html and NEWS.gcc. + * Update gdc to the gdc-7 branch 20170502. + * Add multiarch bits for non-glibc architectures (musl, uclibc) (Helmut + Grohne). Closes: #861588. + * Fix dependency on gcc-base package for rtlibs stage build (Helmut Grohne). + Closes: #859938. + + -- Matthias Klose Tue, 02 May 2017 18:07:07 +0200 + +gcc-7 (7-20170407-0ubuntu2) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170407. + + -- Matthias Klose Fri, 07 Apr 2017 13:40:05 +0200 + +gcc-7 (7-20170322-0ubuntu1) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170322. + + -- Matthias Klose Wed, 22 Mar 2017 09:08:47 +0100 + +gcc-7 (7-20170316-1ubuntu3) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170316. + + -- Matthias Klose Thu, 16 Mar 2017 22:18:58 +0100 + +gcc-7 (7-20170316-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170316. + * Install the gcov-dump utility. + * Allow to use lld with -fuse-ld=ld.lld. + * Build gnattools sequentially (fails with parallel build). See #857831. + * Add profile to the autogen build dependency. + * Re-add the generated Makefile.in changes to the gdc-libphobos-build patch. + + -- Matthias Klose Thu, 16 Mar 2017 12:34:18 +0100 + +gcc-7 (7-20170314-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170314. + + [ Matthias Klose ] + * Bump binutils version requirement to 2.28. + * Fix libcc1.so symlink for cross compilers. Addresses: #856875. + * Fix base package name for rtlibs stage build (Helmut Grohne). + Closes: #857074. + * Update the cross-install-location patch (Helmut Grohne). Closes: #855565. + * Fix symlinks to man pages in the hppa64 package. Addresses: #857583. + * Don't ship the gnatgcc manpage symlink when building GFDL packages. + Addresses: #857384. + * Allow bootstrapping with libc headers installed in multiarch location. + (Helmut Grohne). Closes: #857535 + * gccbrig: Depend on hsail-tools. + + [ Nicolas Boulenguez ] + * Create the libgnatsvn packages again. Closes: #857606. + * Replace libgnat-BV.overrides with a fixed command. + * Install gnatvsn.gpr project into /u/s/gpr instead of + /u/s/ada/adainclude. Debian is migrating to GPRbuild's upstream layout. + * Avoid hardcoding the version in the ada-gcc-name patch. + * Reorganize Ada patches. See #857606 for details. + + -- Matthias Klose Tue, 14 Mar 2017 10:42:24 +0100 + +gcc-7 (7-20170303-0ubuntu2) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170303. + + -- Matthias Klose Fri, 03 Mar 2017 10:27:49 +0100 + +gcc-7 (7-20170302-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170302. + + [ Matthias Klose ] + * Update gdc to trunk 20170227. + * Update libcc1 symbols file. + * Bump binutils version requirement. + * Allow to disable brig in DEB_BUILD_OPTIONS. Closes: #856452. + * Build the nvptx offload compilers. + * Add the newlib copyright, used for the gcc-7-offload-nvptx package. + * Install the libcp1plugin. + * Fix the installation directory of the ada-sjlj includes and libraries. + + [ Nicolas Boulenguez ] + * Use SOURCE_DATE_EPOCH for reproducible ALI timestamps. Closes: #856042. + * Remove obsolete references to libgnatprj, but keep existing + references to libgnatvsn as it will be restored. Closes: #844367. + * Drop obsolete and unapplied ada-default-project-path.diff. + + -- Matthias Klose Thu, 02 Mar 2017 10:12:34 +0100 + +gcc-7 (7-20170226-1ubuntu1) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170121. + + -- Matthias Klose Sun, 26 Feb 2017 17:21:13 +0100 + +gcc-7 (7-20170226-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170226. + + -- Matthias Klose Sun, 26 Feb 2017 17:00:48 +0100 + +gcc-7 (7-20170221-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170221. + * Update gdc to trunk 20170221. + + [ Matthias Klose ] + * Fix some hppa64 related build issues. Addresses: #853023. + * Allow setting offload targets by OFFLOAD_TARGET_DEFAULT. + * Again, disable go on m68k. Closes: #853906. + * Configure with --enable-default-pie on sparc and sparc64 (James Clark). + Addresses: #854090. + * Configure with --enable-default-pie on kfreebsd-* (Steven Chamberlain). + * Build gccbrig and the libhsail-rt library for i386. + * Configure staged builds with --disable-libmpx and --disable-libhsail-rt. + * Fix target architecture for sparc non-multilib builds (Adrian Glaubitz). + Addresses: #855197. + * Bump binutils version requirement. + + [ Aurelien Jarno ] + * Disable lxc1/sxc1 instruction on mips and mipsel. + * Disable madd4 instructions on mipsel, mips64el and mipsn32el. + + -- Matthias Klose Tue, 21 Feb 2017 14:54:12 +0100 + +gcc-7 (7-20170129-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170129. + * Fix removing the RUNPATH from the asan, tsan, ubsan, cilkrts, gfortran + and gphobos runtime libraries. + * Let the gnatgcc symlinks point to the versioned names. Addresses: #839209. + * Build the BRIG frontend on amd64. + * Install new intrinsics headers. Closes: #852551. + * libgo version bumped to 11. + * Package gccbrig and the libhsail-rt library. + + -- Matthias Klose Sun, 29 Jan 2017 13:51:35 +0100 + +gcc-7 (7-20170121-1ubuntu1) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170121. + + -- Matthias Klose Sat, 21 Jan 2017 21:03:01 +0100 + +gcc-7 (7-20170121-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170121. + * Configure --with-gcc-major-version-only, drop the gcc-base-version, + gccgo-version and gdc-base-version patches. + * Adjust the g++-multiarch-incdir patch for reverted upstream patch, + causing bootstrap regression (PR 78880). Closes: #852104. + + -- Matthias Klose Sat, 21 Jan 2017 20:34:04 +0100 + +gcc-7 (7-20170118-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170118. + * Always configure sparc builds --with-cpu-32=ultrasparc (James Clark). + * Enable gccgo on m68k (John Paul Adrian Glaubitz). Addresses: #850749. + * Install the unprefixed man pages for gcc-ar, -nm and ranlib. + Closes: #851698. + + -- Matthias Klose Wed, 18 Jan 2017 22:41:11 +0100 + +gcc-7 (7-20170105-1ubuntu1) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170105. + + -- Matthias Klose Thu, 05 Jan 2017 14:41:15 +0100 + +gcc-7 (7-20170105-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170105. + * Update zlib to 1.2.10. + * Always configure sparc builds --with-cpu-32=ultrasparc (James Clark). + + -- Matthias Klose Thu, 05 Jan 2017 14:19:02 +0100 + +gcc-7 (7-20161229-1ubuntu2) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161229. + + -- Matthias Klose Thu, 29 Dec 2016 07:57:28 +0100 + +gcc-7 (7-20161229-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161229. + * Update gdc to trunk 20161229. + * Build the cilk runtime on armel, armhf, sparc and sparc64. + * Use --push-state/--pop-state for gold as well when linking libtsan. + * In GCC ICE dumps, prefix each line with the PID of the driver. + * Apply proposed patch for PR target/78748. + * Apply proposed patch for PR libstdc++/64735. + * Don't mark libphobos multilib packages as M-A: same. + * Configure libphobos builds with --with-target-system-zlib. + * Ignore dpkg's pie specs when pie is not enabled. Addresses: #848129. + + -- Matthias Klose Thu, 29 Dec 2016 07:38:54 +0100 + +gcc-7 (7-20161217-0ubuntu1) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161217. + + -- Matthias Klose Sat, 17 Dec 2016 14:09:52 +0100 + +gcc-7 (7-20161212-0ubuntu2) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161212. + * Apply proposed patch for PR target/78748. + + -- Matthias Klose Mon, 12 Dec 2016 17:08:48 +0100 + +gcc-7 (7-20161208-0ubuntu1) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161208. + - Revert r243346, breaking bootstrap on AArch64. + * Build the cilk runtime on armel, armhf, sparc and sparc64. + * Use --push-state/--pop-state for gold as well when linking libtsan. + * In GCC ICE dumps, prefix each line with the PID of the driver. + + -- Matthias Klose Thu, 08 Dec 2016 12:08:40 +0100 + +gcc-7 (7-20161203-0ubuntu2) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161203. + + -- Matthias Klose Sat, 03 Dec 2016 12:00:35 +0100 + +gcc-7 (7-20161201-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161201. + + * Install missing vecintrin.h header on s390x. + * Install missing avx512 intrinsics headers on x86*. Closes: #846075. + + -- Matthias Klose Thu, 01 Dec 2016 14:38:26 +0100 + +gcc-7 (7-20161125-1ubuntu1) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161125. + + [ Matthias Klose ] + + [ Svante Signell ] + * GNU/Hurd port for gccgo. + + -- Matthias Klose Fri, 25 Nov 2016 13:30:48 +0100 + +gcc-7 (7-20161125-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161125. + + [ Matthias Klose ] + * Update libgphobos symbol files. + * libphobos: Fix ARM32 multilib detection for system zlib. + * Update libgphobos symbols files for ARM32 targets. + * Build the GC enabled libobjc using the system libgc when available + * Mark libgphobos symbols changing with the file location (sic!) as optional. + * Add pkg-config to the build dependencies. + * Drop the work around for PR libstdc++/65913. + * gdc: Link with the shared libgphobos runtime by default. + * Fix PR middle-end/78501, proposed patch. + * Fix dependency generation for libgphobos multilib builds. + * Drop the ada-revert-pr63225 patch, only needed for libgnatvsn. + * Always apply the ada patches. + + [ YunQiang Su ] + * Update gnat patches for GCC 7, stop building libgnatvsn and libgnatprj. + Addresses: #844367. + + -- Matthias Klose Fri, 25 Nov 2016 12:41:07 +0100 + +gcc-7 (7-20161123-0ubuntu1) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161117. + * Disable x32 multilib builds (broken in libgo). + * Disable go on powerpc and s390x (broken in libgo). + + -- Matthias Klose Tue, 22 Nov 2016 16:51:14 +0100 + +gcc-7 (7-20161117-0ubuntu1) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161117. + + -- Matthias Klose Thu, 17 Nov 2016 14:18:21 +0100 + +gcc-7 (7-20161116-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161116. + * Build shared phobos runtime libraries (not yet enabled by default). + * Add symbols for libobjc_gc library. + + -- Matthias Klose Wed, 16 Nov 2016 19:16:39 +0100 + +gcc-7 (7-20161115-1ubuntu1) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161115. + + -- Matthias Klose Tue, 15 Nov 2016 15:23:57 +0100 + +gcc-7 (7-20161115-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161115. + * More symbol files updates. + * Update gdc to the trunk 20161113. + * Update conflicts with GCC 6 packages. Closes: #844296. + + -- Matthias Klose Tue, 15 Nov 2016 13:02:02 +0100 + +gcc-7 (7-20161112-1ubuntu2) zesty; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161112. + + -- Matthias Klose Sat, 12 Nov 2016 13:21:36 +0100 + +gcc-7 (7-20161112-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161112. + * Remove gij/gcj packages, removed upstream. + * Don't build gdc and gnat for now. + + -- Matthias Klose Sat, 12 Nov 2016 11:17:17 +0100 + +gcc-6 (6.2.0-13ubuntu1) zesty; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 09 Nov 2016 21:04:13 +0100 + +gcc-6 (6.2.0-13) unstable; urgency=medium + + * Update to SVN 20161109 (r241998, 6.2.1) from the gcc-6-branch. + - Fix PR c/71115, PR target/78229 (closes: #843379), + PR tree-optimization/77768, PR c++/78039 (closes: #841316), + PR libgcc/78064, PR driver/78206. + * Fix using the gcc-6-source package (Stephen Kitt). Closes: #843476. + * Fix PR target/77822 (AArch64), taken from the trunk. Closes: #839249. + * Fix PR target/77822 (s390x), proposed patch. + * Update libiberty to the trunk 20161108. Addresses security issues: + CVE-2016-6131, CVE-2016-4493, CVE-2016-4492, CVE-2016-4490, + CVE-2016-4489, CVE-2016-4488, CVE-2016-4487, CVE-2016-2226. + + -- Matthias Klose Wed, 09 Nov 2016 20:42:53 +0100 + +gcc-6 (6.2.0-11ubuntu1) zesty; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 03 Nov 2016 15:27:16 +0100 + +gcc-6 (6.2.0-11) unstable; urgency=medium + + * Update to SVN 20161103 (r241817, 6.2.1) from the gcc-6-branch. + - Fix PR debug/77773, PR middle-end/72747, PR tree-optimization/78047, + PR tree-optimization/77879, PR tree-optimization/77839, + PR tree-optimization/77745, PR tree-optimization/77648, + PR target/78166 (PA), PR rtl-optimization/78038, PR middle-end/78128, + PR middle-end/71002, PR fortran/69544, PR fortran/78178, + PR fortran/71902, PR fortran/67219, PR fortran/71891, PR lto/78129, + PR libgfortran/78123. + * Fix symlinks for gcj manual pages. Closes: #842407. + * Fix ICE in tree_to_shwi, Linaro issue #2575. + + -- Matthias Klose Thu, 03 Nov 2016 14:10:24 +0100 + +gcc-6 (6.2.0-10ubuntu1) zesty; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 27 Oct 2016 22:12:20 +0200 + +gcc-6 (6.2.0-10) unstable; urgency=medium + + * Update to SVN 20161027 (r241619, 6.2.1) from the gcc-6-branch. + - Fix PR libstdc++/77288, PR libstdc++/77727, PR libstdc++/78052, + PR tree-optimization/77550, PR tree-optimization/77916, + PR fortran/71895, PR fortran/77763, PR fortran/61420, PR fortran/78013, + PR fortran/78021, PR fortran/72832, PR fortran/78092, PR fortran/78108, + PR target/78057 (x86), PR target/78037 (x86). + * Include go-relocation-test-gcc620-sparc64.obj.uue to fix libgo's + debug/elf TestDWARFRelocations test case (James Clark). + * Reapply fix for PR c++/71912, apply proposed fix for PR c++/78039. + Closes: #841292. + * Don't install alternatives for go and gofmt. The preferred way to do that + is to install the golang-any package. + * For Debian builds, don't enable bind now by default when linking with pie + by default. + + -- Matthias Klose Thu, 27 Oct 2016 15:27:07 +0200 + +gcc-6 (6.2.0-9) unstable; urgency=medium + + * Regenerate the control file. + + -- Matthias Klose Thu, 20 Oct 2016 10:46:44 +0200 + +gcc-6 (6.2.0-8ubuntu1) zesty; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 19 Oct 2016 18:47:57 +0200 + +gcc-6 (6.2.0-8) unstable; urgency=medium + + * Update to SVN 20161019 (r241346, 6.2.1) from the gcc-6-branch. + - Fix PR libstdc++/77990, PR target/77991 (x86). + * Install arm_fp16.h header on arm* architectures for Linaro builds. + * Backport upstream revisions from trunk (James Clark). Closes: #840574. + - r240457 (add getrandom for MIPS/SPARC) + - r241051 (fix getrandom on sparc64 and clone on sparc*) + - r241072 (make rawClone no_split_stack) + - r241084 (don't use pt_regs; unnecessary, and seemingly not defined by + the included headers on arm64) + - r241171 (sparc64 relocations, e1fc2925 in go master, now also in + gofrontend/gccgo) + * Revert fix for PR c++/71912, causing PR c++/78039. Addresses: #841292. + + -- Matthias Klose Wed, 19 Oct 2016 08:57:23 +0200 + +gcc-6 (6.2.0-7ubuntu11) zesty; urgency=medium + + * Build using the Linaro branch on armhf and arm64. + + -- Matthias Klose Tue, 18 Oct 2016 09:09:47 +0200 + +gcc-6 (6.2.0-7) unstable; urgency=medium + + * Update to SVN 20161018 (r241301, 6.2.1) from the gcc-6-branch. + - Fix PR libstdc++/77987, PR libstdc++/77322, PR libstdc++/72820, + PR libstdc++/77994, PR tree-optimization/77937, PR c++/71912, + PR tree-optimization/77937, PR tree-optimization/77943, + PR bootstrap/77995, PR fortran/77978, PR fortran/77915, PR fortran/77942. + + [ Matthias Klose ] + * Backport Mips go closure support, taken from libffi. Closes: #839132. + * Configure with --enable-default-pie and pass -z now when pie is enabled; + on amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el s390x. + Closes: #835148. + * Update the Linaro support to the 6-2016.10 snapshot. + + [ Aurelien Jarno ] + * Enable logwatch on mips64el. + + -- Matthias Klose Tue, 18 Oct 2016 13:53:00 +0200 + +gcc-6 (6.2.0-6) unstable; urgency=medium + + * Update to SVN 20161010 (r240906, 6.2.1) from the gcc-6-branch. + - Fix PR libstdc++/68323, PR libstdc++/77794, PR libstdc++/77795, + PR libstdc++/77801, PR libgcc/77519, PR target/77756 (x86), + PR target/77670 (PPC), PR rtl-optimization/71709, PR c++/77804, + PR fortran/41922, PR fortran/60774, PR fortran/61318, PR fortran/68566, + PR fortran/69514, PR fortran/69867, PR fortran/69962, PR fortran/70006, + PR fortran/71067, PR fortran/71730, PR fortran/71799, PR fortran/71859, + PR fortran/71862, PR fortran/77260, PR fortran/77351, PR fortran/77372, + PR fortran/77380, PR fortran/77391, PR fortran/77420, PR fortran/77429, + PR fortran/77460, PR fortran/77506, PR fortran/77507, PR fortran/77612, + PR fortran/77694, PR libgfortran/77707, PR libstdc++/70101, + PR libstdc++/77864, PR libstdc++/70564, PR target/77874 (x86), + PR target/77759 (sparc), PR fortran/77406, PR fortran/58991, + PR fortran/58992. + * Really fix gij installation on hppa. Closes: #838111. + * Install alternatives for go and gofmt. Closes: #840190. + + -- Matthias Klose Mon, 10 Oct 2016 05:20:07 +0200 + +gcc-6 (6.2.0-5ubuntu12) yakkety; urgency=medium + + * Update to SVN 20161005 (r240765, 6.2.1) from the gcc-6-branch. + - Fix PR libstdc++/68323, PR libstdc++/77794, PR libstdc++/77795, + PR libstdc++/77801, PR libgcc/77519, PR target/77756 (x86), + PR target/77670 (PPC), PR rtl-optimization/71709, PR c++/77804, + PR fortran/41922, PR fortran/60774, PR fortran/61318, PR fortran/68566, + PR fortran/69514, PR fortran/69867, PR fortran/69962, PR fortran/70006, + PR fortran/71067, PR fortran/71730, PR fortran/71799, PR fortran/71859, + PR fortran/71862, PR fortran/77260, PR fortran/77351, PR fortran/77372, + PR fortran/77380, PR fortran/77391, PR fortran/77420, PR fortran/77429, + PR fortran/77460, PR fortran/77506, PR fortran/77507, PR fortran/77612, + PR fortran/77694, PR libgfortran/77707. + * Really fix gij installation on hppa. Closes: #838111. + * Strip again the compiler binaries. + + -- Matthias Klose Wed, 05 Oct 2016 09:01:56 +0200 + +gcc-6 (6.2.0-5ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 28 Sep 2016 15:58:48 +0200 + +gcc-6 (6.2.0-5) unstable; urgency=medium + + * Update to SVN 20160927 (r240553, 6.2.1) from the gcc-6-branch. + - Fix PR sanitizer/77396, PR libstdc++/77645, PR libstdc++/77645, + PR target/77326 (AVR), PR target/77349 (PPC), PR middle-end/77594, + PR sanitizer/68260, PR fortran/77516, PR target/69255 (x86), + PR c++/77553, PR c++/77539, PR fortran/77500, PR c/77450, + PR middle-end/77436, PR tree-optimization/77514, PR middle-end/77544, + PR tree-optimization/77514, PR middle-end/77605, PR middle-end/77679, + PR tree-optimization/77621, PR target/77621 (x86), PR c++/71979. + * Fix gij installation on hppa. Closes: #838111. + * Fix PR rtl-optimization/71709, taken from the trunk. LP: #1628207. + * Apply workaround for PR libstdc++/77686. Addresses: #838438. + + -- Matthias Klose Wed, 28 Sep 2016 15:53:28 +0200 + +gcc-6 (6.2.0-4) unstable; urgency=medium + + * Update to SVN 20160914 (r240133, 6.2.1) from the gcc-6-branch. + - Fix PR rtl-optimization/77452, PR c++/77427. + * gcj: Depend on the ecj1 standalone binary. + * Configure native builds using --with-program-prefix. + * Fix ICE in gdc symbol mangling (Iain Buclaw). LP: #1620681. + * Backport from libffi trunk (Stefan Bühler): + - Always check for PaX MPROTECT on linux, make EMUTRAMP experimental. + - dlmmap_locked always needs locking as it always modifies execsize. + + -- Matthias Klose Thu, 15 Sep 2016 19:22:35 +0200 + +gcc-6 (6.2.0-3ubuntu15) yakkety; urgency=medium + + * Update to SVN 20160914 (r240133, 6.2.1) from the gcc-6-branch. + - PR c++/77427. + * Fix updating gcj-6-jdk. LP: #1623337. + + -- Matthias Klose Wed, 14 Sep 2016 13:33:20 +0200 + +gcc-6 (6.2.0-3ubuntu14) yakkety; urgency=medium + + * Update to SVN 20160910 (r240069, 6.2.1) from the gcc-6-branch. + - Fix PR rtl-optimization/77452. + * gcj: Depend on the ecj1 standalone binary. + * Configure native builds using --with-program-prefix. + * Fix ICE in gdc symbol mangling (Iain Buclaw). LP: #1620681. + * Restore the AArch64 vulcan support for non Linaro builds. + + -- Matthias Klose Sun, 11 Sep 2016 12:50:59 +0200 + +gcc-6 (6.2.0-3ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 04 Sep 2016 13:28:31 +0200 + +gcc-6 (6.2.0-3) unstable; urgency=medium + + * Update to SVN 20160901 (r239944, 6.2.1) from the gcc-6-branch. + - Fix PR fortran/71014, PR libstdc++/77395, PR tree-optimization/72866, + PR debug/77363, PR middle-end/77377, PR middle-end/77259, + PR target/71910 (cygwin), PR target/77281 (ARM), + PR tree-optimization/71077, PR tree-optimization/68542, PR fortran/77352, + PR fortran/77374, PR fortran/71014, PR fortran/69281. + * Fix setting the stage1 C++ compiler. + * gdc: Always link with -ldl when linking with -lgphobos. + Closes: #835255, #835757. + * Fix building D code with external C++ references. + + -- Matthias Klose Sun, 04 Sep 2016 12:38:47 +0200 + +gcc-6 (6.2.0-2ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 31 Aug 2016 12:38:54 +0200 + +gcc-6 (6.2.0-2) unstable; urgency=medium + + * Update to SVN 20160830 (r239868, 6.2.1) from the gcc-6-branch. + - Fix PR libstdc++/77334, PR tree-optimization/76783, + PR tree-optimization/72851, PR target/72867 (x86), PR middle-end/71700, + PR target/77403 (x86), PR target/77270 (x86), PR target/77270 (x86), + PR lto/70955, PR target/72863 (PPC), PR tree-optimization/76490, + PR fortran/77358. + * Call default_file_start from s390_asm_file_start, taken from the trunk. + * Update multiarch patches for mips* r6 (YunQiang Su). + * Fix install location of D header files for cross builds (YunQiang Su). + Closes: #835847. + * Fix PR c++/77379, taken from the trunk. + * Update the Linaro support to the 6-2016.08 snapshot. + + -- Matthias Klose Wed, 31 Aug 2016 12:28:38 +0200 + +gcc-6 (6.2.0-1ubuntu12) yakkety; urgency=medium + + * Update to SVN 20160824 (r239726, 6.2.1) from the gcc-6-branch. + - Fix PR libstdc++/77334, PR tree-optimization/76783, + PR tree-optimization/72851, PR target/72867 (x86), PR middle-end/71700, + * Call default_file_start from s390_asm_file_start, taken from the trunk. + + -- Matthias Klose Wed, 24 Aug 2016 08:12:10 +0200 + +gcc-6 (6.2.0-1ubuntu11) yakkety; urgency=medium + + * GCC 6.2 release. + + -- Matthias Klose Mon, 22 Aug 2016 15:23:46 +0200 + +gcc-6 (6.2.0-1) unstable; urgency=medium + + * GCC 6.2 release. + * Update gdc to the gdc-6 branch 20160822. + + -- Matthias Klose Mon, 22 Aug 2016 14:15:21 +0200 + +gcc-6 (6.1.1-12ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Mon, 15 Aug 2016 17:56:19 +0200 + +gcc-6 (6.1.1-12) unstable; urgency=medium + + * GCC 6.2 release candidate 1. + * Update to SVN 20160815 (r239482, 6.1.1) from the gcc-6-branch. + Fix PR target/71869 (PPC), PR target/72805 (x86), PR target/70677 (AVR), + PR c++/72415, PR sanitizer/71042, PR libstdc++/71964, PR libstdc++/70940, + PR c/67410, PR c/72816, PR driver/72765, PR debug/71906, + PR tree-optimization/73434, PR tree-optimization/72824, PR target/76342, + PR target/72843, PR c/71512, PR tree-optimization/71083, PR target/72819, + PR target/72853, PR tree-optimization/72824, PR ipa/71981, PR ipa/68273, + PR tree-optimization/71881, PR target/72802, PR target/72802, + PR rtl-optimization/71976, PR c++/71972, PR c++/72868, PR c++/73456, + PR c++/72800, PR c++/68724, PR debug/71906, PR fortran/71936, + PR fortran/72698, PR fortran/70524, PR fortran/71795, PR libgfortran/71123, + PR libgfortran/73142. + + [ Matthias Klose ] + * Fix running the libjava testsuite. + * Revert fix for PR target/55947, causing PR libstdc++/72813. LP: #1610220. + * Update the Linaro support to the 6-2016.07 snapshot. + + [ Aurelien Jarno ] + * Replace proposed fix for PR ipa/68273 by the corresponding patch taken + from trunk. + + -- Matthias Klose Mon, 15 Aug 2016 17:51:10 +0200 + +gcc-6 (6.1.1-11ubuntu12) yakkety; urgency=medium + + * Update to SVN 20160805 (r239167, 6.1.1) from the gcc-6-branch. + Fix PR target/71869 (PPC), PR target/72805 (x86), PR target/70677 (AVR), + PR c++/72415. + + * Fix running the libjava testsuite. + * Revert fix for PR target/55947, causing PR libstdc++/72813. LP: #1610220. + + -- Matthias Klose Fri, 05 Aug 2016 15:09:39 +0200 + +gcc-6 (6.1.1-11ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 03 Aug 2016 21:55:46 +0200 + +gcc-6 (6.1.1-11) unstable; urgency=medium + + * Update to SVN 20160802 (r238981, 6.1.1) from the gcc-6-branch. + - Fix PR target/72767 (AVR), PR target/71151 (AVR), PR c/7652, + PR target/71216 (PPC), PR target/72103 (PPC), PR c++/72457, PR c++/71576, + PR c++/71833, PR fortran/71883. + + [ Nicolas Boulenguez ] + * debian/ada/confirm_debian_bugs.py: Update for GCC 6. Closes: #832799. + + [ Matthias Klose ] + * Backport AArch64 Vulcan cost models (Dann Frazier). LP: #1603587. + + -- Matthias Klose Wed, 03 Aug 2016 21:53:37 +0200 + +gcc-6 (6.1.1-10ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 24 Jul 2016 20:28:46 +0200 + +gcc-6 (6.1.1-10) unstable; urgency=medium + + * Update to SVN 20160724 (r238695, 6.1.1) from the gcc-6-branch. + - Fix PR libstdc++/71856, PR libstdc++/71320, PR c++/71214, + PR sanitizer/71953, PR fortran/71688, PR rtl-optimization/71916, + PR debug/71855, PR middle-end/71874, PR target/71493 (PPC), + PR rtl-optimization/71634, PR target/71733 (PPC), PR ipa/71624, + PR target/71805 (PPC), PR target/70098 (PPC), PR target/71763 (PPC), + PR middle-end/71758, PR tree-optimization/71823, PR middle-end/71606, + PR tree-optimization/71518, PR target/71806 (PPC), PR target/71720 (PPC), + PR middle-end/64516, PR tree-optimization/71264, PR middle-end/71423, + PR tree-optimization/71521, PR tree-optimization/71452, PR target/50739, + PR tree-optimization/71522, PR c++/55922, PR c++/63151, PR c++/70709, + PR c++/70778, PR c++/71738, PR c++/71350, PR c++/71748, PR c++/52746, + PR c++/69223, PR c++/71630, PR c++/71913, PR c++/71728, PR c++/71941, + PR c++/70822, PR c++/70106, PR c++/67565, PR c++/67579, PR c++/71843, + PR c++/70781, PR c++/71896, PR c++/71092, PR c++/71117, PR c++/71495, + PR c++/71511, PR c++/71513, PR c++/71604, PR c++/54430, PR c++/71711, + PR c++/71814, PR c++/71718, PR c++/70824, PR c++/71909, PR c++/71835, + PR c++/71828, PR c++/71822, PR c++/71871, PR c++/70869, PR c++/71054, + PR fortran/71807, PR fortran/70842, PR fortran/71764, PR fortran/71623, + PR fortran/71783. + + [ Matthias Klose ] + * Build-depend on gnat-6 instead of gnat-5 on development distros. + + [ Aurelien Jarno ] + * Replace libjava-mips64el-proposed.diff by the corresponding patch + taken from trunk. + + -- Matthias Klose Sun, 24 Jul 2016 19:42:10 +0200 + +gcc-6 (6.1.1-9ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 05 Jul 2016 15:15:56 +0200 + +gcc-6 (6.1.1-9) unstable; urgency=medium + + * Update to SVN 20160705 (r237999, 6.1.1) from the gcc-6-branch. + - Fix PR fortran/71717, PR libstdc++/71313, PR c/71685, PR c++/71739, + PR target/71670 (PPC), PR middle-end/71626, PR target/71559 (x86), + PR target/71656 (PPC), PR target/71698 (PPC), PR driver/71651, + PR fortran/71687, PR fortran/71704, PR fortran/71705. + * Mark cross compilers as M-A: foreign. Addresses: #827136. + * On sparc64, configure with --with-cpu-32=ultrasparc, drop the + sparc-force-cpu patch. Closes: #809509. + + -- Matthias Klose Tue, 05 Jul 2016 11:19:50 +0200 + +gcc-6 (6.1.1-8ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 30 Jun 2016 15:41:06 +0200 + +gcc-6 (6.1.1-8) unstable; urgency=medium + + * Update to SVN 20160630 (r237878, 6.1.1) from the gcc-6-branch. + - Fix PR tree-optimization/71647, PR target/30417 (AVR), + PR target/71103 (AVR), PR tree-optimization/71588, PR middle-end/71581, + PR c++/71528, PR fortran/70673, PR middle-end/71693. + + [ Aurelien Jarno ] + * Apply proposed patch from Matthew Fortune to fix libjava on mips64el. + + [ Matthias Klose ] + * Add AArch64 Vulcan cpu support (Dann Frazier). LP: #1594452. + * gfortran: Suggest libcoarrays-dev. Closes: #827995. + * cpp: Breaks libmagics++-dev (<< 2.28.0-4). Closes: #825278. + * Optimize for mips32r2 for o32 (YunQiang Su). Closes: #827801. + + -- Matthias Klose Thu, 30 Jun 2016 14:12:55 +0200 + +gcc-6 (6.1.1-7ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Mon, 20 Jun 2016 20:27:58 +0200 + +gcc-6 (6.1.1-7) unstable; urgency=medium + + * Update to SVN 20160620 (r237590, 6.1.1) from the gcc-6-branch. + - Fix PR middle-end/71373, PR c/71381, PR libstdc++/71545, PR c/68657, + PR sanitizer/71498, PR middle-end/71529, PR target/71103 (AVR), + PR target/71554 (x86), PR middle-end/71494, PR c++/71448, + PR tree-optimization/71405, PR tree-optimization/71505, + PR target/71379 (s390), PR target/71186 (PPC), PR target/70915 (PPC), + PR c++/70572, PR c++/71516, PR c/71381. + * Fix libgnatprj build to avoid undefined symbols (YunQiang Su). + Closes: #826503. + * Add build support for tilegx (Helmut Grohne). Closes: #827578. + * Drop support for loongson 2f (YunQiang Su). Closes: #827554. + + -- Matthias Klose Mon, 20 Jun 2016 13:41:44 +0200 + +gcc-6 (6.1.1-6ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 09 Jun 2016 19:27:27 +0200 + +gcc-6 (6.1.1-6) unstable; urgency=medium + + * Update to SVN 20160609 (r237267, 6.1.1) from the gcc-6-branch. + - Fix PR target/71389 (x86), PR tree-optimization/71259, + PR target/70830 (ARM), PR target/67310 (x86), PR c++/71442, + PR c++/70847, PR c++/71330, PR c++/71393, PR fortran/69659. + * gdc: Fix linking the runtime library. Addresses: #826645. + * Fix building libgnatprj on powerpc, and on PIE enabled builds (YunQiang Su). + Closes: #826365. + + -- Matthias Klose Thu, 09 Jun 2016 18:19:42 +0200 + +gcc-6 (6.1.1-5ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Fri, 03 Jun 2016 19:46:59 +0200 + +gcc-6 (6.1.1-5) unstable; urgency=medium + + * Update to SVN 20160603 (r237075, 6.1.1) from the gcc-6-branch. + - Fix PR libstdc++/70762, PR libstdc++/69703, PR libstdc++/69703, + PR libstdc++/71038, PR libstdc++/71036, PR libstdc++/71037, + PR libstdc++/71005, PR libstdc++/71004, PR libstdc++/70609, PR c/71171, + PR middle-end/71279, PR c++/71147, PR c++/71257, + PR tree-optimization/70884, PR c++/71210, PR tree-optimization/71031, + PR c++/69872, PR c++/71257, PR c++/70344, PR c++/71184, PR fortran/66461, + PR fortran/71204, PR libffi/65567, PR c++/71349, PR target/71201, + PR middle-end/71371, PR debug/71057, PR target/71056 (ARM32), + PR tree-optimization/69068, PR middle-end/71002, PR bootstrap/71071, + PR c++/71372, PR c++/70972, PR c++/71166, PR c++/71227, PR c++/60095, + PR c++/69515, PR c++/69009, PR c++/71173, PR c++/70522, PR c++/70584, + PR c++/70735, PR c++/71306, PR c++/71349, PR c++/71105, PR c++/71147, + PR ada/71358, PR ada/71317, PR fortran/71156, PR middle-end/71387. + * Fix cross building libgnatprj on i386 targeting 64bit archs (YunQiang Su). + Closes: #823126. + * Detect hard float for non-linux or non-glibc arm-*-*eabihf builds (Helmut + Grohne). Closes: #823894. + * Update embedded timestamp setting patch, backported from the trunk. + * gccgo: Combine combine gccgo's ld() and ldShared() methods + in cmd/go (Michael Hudson-Doyle). LP: #1586872. + + -- Matthias Klose Fri, 03 Jun 2016 18:58:40 +0200 + +gcc-6 (6.1.1-4ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 19 May 2016 17:24:36 +0200 + +gcc-6 (6.1.1-4) unstable; urgency=medium + + * Update to SVN 20160519 (r236478, 6.1.1) from the gcc-6-branch. + - Fix PR sanitizer/71160, PR c++/70498, PR target/71161 (x86), + PR fortran/70856, PR c++/71100, PR target/71145 (alpha), PR c++/70466, + PR target/70860 (nvptx), PR target/70809 (AArch64), PR hsa/70857, + PR driver/68463, PR target/70947 (PPC), PR ipa/70760, PR middle-end/70931, + PR middle-end/70941, PR tree-optimization/71006, PR target/70830 (ARM), + PR fortran/69603, PR fortran/71047, PR fortran/56226, PR ipa/70646. + * libgnat{prj,svn}-dev: Don't recommend gnat when building cross compiler + packages. + + -- Matthias Klose Thu, 19 May 2016 18:40:49 +0200 + +gcc-6 (6.1.1-3ubuntu11) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 12 May 2016 02:33:19 +0200 + +gcc-6 (6.1.1-3) unstable; urgency=medium + + * Update to SVN 20160511 (r236071, 6.1.1) from the gcc-6-branch. + - Fix PR libstdc++/71049, PR middle-end/70877, PR tree-optimization/70876, + PR target/70963, PR tree-optimization/70916, PR debug/70935. + * Enable gdc for sh4. + + -- Matthias Klose Wed, 11 May 2016 22:35:33 +0200 + +gcc-6 (6.1.1-2ubuntu12) yakkety; urgency=medium + + * Fix package replacements with gccgo-6 packages. LP: #1578247, #1578250. + + -- Matthias Klose Tue, 10 May 2016 14:31:52 +0200 + +gcc-6 (6.1.1-2) unstable; urgency=medium + + * Update to SVN 20160510 (r236071, 6.1.1) from the gcc-6-branch. + - Fix PR tree-optimization/70956, PR sanitizer/70875, PR sanitizer/70342, + PR ada/70969, PR ada/70900. + + [ Matthias Klose ] + * Call dh_makeshlibs with the --noscripts option when building a + cross compiler. + * Fix building cross gnat libs when not building the common libs. + * Fix building cross mips* multilibs when not building the common libs. + * Re-enable gnat build on some architectures for snapshot builds. + * Don't build gnat cross compilers on 32bit archs targeting 64bit targets. + Addresses: #823126. + * Avoid empty architecture lists in build dependencies. Closes: #823280. + * Tighten debhelper build dependency for cross build dependencies. + * Allow build dependencies for musl configurations (Helmut Grohne). + Closes: #823769. + * Fix dependency resolution for libraries not built anymore from + this source package. + + [ Samuel Thibault ] + * patches/ada-hurd.diff: Fix Get_Page_Size type. + + -- Matthias Klose Tue, 10 May 2016 13:34:49 +0200 + +gcc-6 (6.1.1-1) unstable; urgency=medium + + * GCC 6.1.0 release. + - Fix PR bootstrap/70704, PR tree-optimization/70780, PR libgfortran/70684, + PR middle-end/70626, PR java/70839, PR target/70858, PR ada/70759, + PR ada/70786, PR c++/70540, PR middle-end/70626. + * Update to SVN 20160430 (r235678, 6.1.1) from the gcc-6-branch. + - Fix PR middle-end/70680, PR target/70750 (x86), PR ipa/70785, + PR sanitizer/70712, PR target/70728 (x86). + - Don't encode the minor version in the gcj abi version. + + [ Aurelien Jarno ] + * Apply proposed patch for PR target/68273 (Wrong code on mips/mipsel due to + (invalid?) peeking at alignments in function_arg) on mips and mipsel. + + [ Matthias Klose ] + * Always configure with --enable-targets=powerpcle-linux on ppc64el. + * Stop building libcc1 and libgccjit0, when not building common libs. + * Rename libgccjit-5-dbg to libgccjit0-dbg. + * Fix libjava testsuite with dejagnu 1.6, taken from the trunk. + * Allow embedded timestamps by C/C++ macros to be set externally (Eduard + Sanou). + * Add missing libstdc++ symbol to symbols file. + * libstdc++-doc: Ignore warnings about formulas and long identifiers in + man pages. + * Default the 32bit x86 architectures to i686, keep i585 symlinks. + See https://lists.debian.org/debian-devel/2015/09/msg00589.html + * Build-depend on debhelper (>= 9) and dpkg-dev (>= 1.17.14). + * Update gdc to the gdc-6 branch 20160430. + + -- Matthias Klose Sat, 30 Apr 2016 13:31:12 +0200 + +gcc-6 (6.1.1-0ubuntu12) yakkety; urgency=medium + + * GCC 6.1.0 release. + - Fix PR bootstrap/70704, PR tree-optimization/70780, PR libgfortran/70684. + * Update to SVN 20160428 (r235548, 6.1.1) from the gcc-6-branch. + - Fix PR middle-end/70680, PR target/70750 (x86), PR ipa/70785, + PR sanitizer/70712, PR target/70728 (x86). + - Don't encode the minor version in the gcj abi version. + * Always configure with --enable-targets=powerpcle-linux on ppc64el. + * Stop building libcc1 and libgccjit0, when not building common libs. + * Rename libgccjit-5-dbg to libgccjit0-dbg. + * Fix libjava testsuite with dejagnu 1.6, taken from the trunk. + * Re-enable running the tests. + + -- Matthias Klose Thu, 28 Apr 2016 10:33:38 +0200 + +gcc-6 (6.0.1-2ubuntu12) yakkety; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sat, 23 Apr 2016 18:24:49 +0200 + +gcc-6 (6.0.1-2) unstable; urgency=medium + + * GCC 6.1 release candidate 2. + * Update gdc to the trunk 20160423. + + -- Matthias Klose Sat, 23 Apr 2016 17:56:52 +0200 + +gcc-6 (6.0.1-1ubuntu11) xenial; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Fri, 15 Apr 2016 18:38:06 +0200 + +gcc-6 (6.0.1-1) experimental; urgency=medium + + * GCC 6 release candidate 1. + + [ Michael Hudson-Doyle ] + * cmd/go: deduplicate gccgo afiles by package path, not *Package. LP: #1566552. + + -- Matthias Klose Fri, 15 Apr 2016 18:32:25 +0200 + +gcc-6 (6-20160405-0ubuntu1) xenial; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160405. + + -- Matthias Klose Tue, 05 Apr 2016 17:10:35 +0200 + +gcc-6 (6-20160319-0ubuntu11) xenial; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160319. + + -- Matthias Klose Sat, 19 Mar 2016 12:17:24 +0100 + +gcc-6 (6-20160313-0ubuntu11) xenial; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160313. + + -- Matthias Klose Sun, 13 Mar 2016 10:19:12 +0100 + +gcc-6 (6-20160227-0ubuntu11) xenial; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160227. + + -- Matthias Klose Sat, 27 Feb 2016 11:02:40 +0100 + +gcc-6 (6-20160225-0ubuntu11) xenial; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160225. + + -- Matthias Klose Thu, 25 Feb 2016 02:09:51 +0100 + +gcc-6 (6-20160225-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160225. + * Update gdc to the trunk 20160224. + * Install missing architecture specific plugin header files. + * Fix PR target/69885, bootstrap error on m68k. + + -- Matthias Klose Thu, 25 Feb 2016 02:00:57 +0100 + +gcc-6 (6-20160220-0ubuntu11) xenial; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160220. + + -- Matthias Klose Sat, 20 Feb 2016 04:38:26 +0100 + +gcc-6 (6-20160206-0ubuntu11) xenial; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160206. + + -- Matthias Klose Sat, 06 Feb 2016 12:07:51 +0100 + +gcc-6 (6-20160205-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160205. + - Fix PR tree-optimization/69320. Closes: #811921. + - Fix PR c++/68782. Closes: #812287. + - Fix PR tree-optimization/69328. Closes: #812247. + - Fix PR target/69421. Closes: #812246. + - Fix PR c++/69379. Closes: #812068. + - Fix PR lto/69393. Closes: #812062. + - Fix PR tree-optimization/69166. Closes: #812061. + * Update gdc to the trunk 20160205. + - Fix data corruption bug when passing around longdoubles. + Closes: #812080. + * Add more conflicts to GCC 5's debug and doc packages. Closes: #813081. + * Fix dependency generation for armel/armhf multilib cross targets. + * Fix libc dependency generation for multilib cross targets. + * Build libitm on alpha, s390x, sh4, sparc64. + + -- Matthias Klose Fri, 05 Feb 2016 18:08:37 +0100 + +gcc-6 (6-20160122-1) experimental; urgency=medium + + * Fix gnat build failure on KFreeBSD (Steven Chamberlain). Closes: #811372. + * Fix dependencies on target libraries which are not built anymore + from this source. + * Bump libmpx soname. Closes: #812084. + * Apply proposed patch for PR target/69129. Closes: #810081. + * Apply proposed patch for PR go/66904, pass linker flags from + "#cgo pkg-config:" directives (Michael Hudson). + * Configure with --enable-fix-cortex-a53-843419 on AArch64. + + -- Matthias Klose Fri, 22 Jan 2016 13:33:19 +0100 + +gcc-6 (6-20160117-1ubuntu1) xenial; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160117. + + -- Matthias Klose Sun, 17 Jan 2016 12:34:33 +0100 + +gcc-6 (6-20160117-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160117. + * Update gdc to the trunk 20160115. + * Update libgnatvsn/libgnatprj conflicts. Closes: #810809. + * Fix gnat build failures on the Hurd and KFreeBSD (Svante Signell). + Closes: #811063. + * Build libstdc++-6-doc with a fixed doxygen. Closes: #810717. + + -- Matthias Klose Sun, 17 Jan 2016 12:14:39 +0100 + +gcc-6 (6-20160109-1ubuntu1) xenial; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160109. + + -- Matthias Klose Sat, 09 Jan 2016 12:03:28 +0100 + +gcc-6 (6-20160109-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160109. + * Install new header file pkuintrin.h. Closes: #809807. + * Fix libcc1-0 dependency for cross compilers. + + -- Matthias Klose Sat, 09 Jan 2016 11:49:50 +0100 + +gcc-6 (6-20160105-0ubuntu1) xenial; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160105. + * Install new header file pkuintrin.h. Closes: #809807. + * Fix libgcc1-0 dependency for cross compilers. + + -- Matthias Klose Sat, 02 Jan 2016 15:55:27 +0100 + +gcc-6 (6-20160103-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160101. + + -- Matthias Klose Sun, 03 Jan 2016 12:47:13 +0100 + +gcc-6 (6-20160101-0ubuntu2) xenial; urgency=medium + + * Bump the libgcj version. + + -- Matthias Klose Sat, 02 Jan 2016 15:55:27 +0100 + +gcc-6 (6-20160101-0ubuntu1) xenial; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160101. + + -- Matthias Klose Fri, 01 Jan 2016 21:40:43 +0100 + +gcc-6 (6-20151221-0ubuntu1) xenial; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20151220. + + -- Matthias Klose Mon, 21 Dec 2015 15:56:05 +0100 + +gcc-6 (6-20151220-1ubuntu1) xenial; urgency=medium + + * Test build for xenial. + + -- Matthias Klose Sun, 20 Dec 2015 14:11:14 +0100 + +gcc-6 (6-20151220-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20151220. + * Update libstdc++-dbg conflicts. Closes: #807885. + * Set target tools and build dependencies for cross builds. + * Relax gcj-6-{jre,jre-headless,jdk} dependencies on libgcj16. + * Fix cross build issues. + + -- Matthias Klose Sun, 20 Dec 2015 13:46:12 +0100 + +gcc-6 (6-20151219-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20151219. + * Update libstdc++-dbg conflicts. Closes: #807885. + * Set target tools and build dependencies for cross builds. + + -- Matthias Klose Sat, 19 Dec 2015 10:17:25 +0100 + +gcc-6 (6-20151213-1ubuntu2) xenial; urgency=medium + + * Test build for xenial. + + -- Matthias Klose Sun, 13 Dec 2015 15:04:49 +0100 + +gcc-6 (6-20151213-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20151213. + * Update the ada-kfreebsd and ada-m68k patches. + * Fix cross-building without having the common cross libraries installed. + * Allow unstripped, non-optimized debug builds with setting DEB_BUILD_OPTIONS + including gccdebug. + * Remove obsolete libgccmath packaging support. + * Define SONAME macros whether the libraries are built or not. + + -- Matthias Klose Sun, 13 Dec 2015 13:24:55 +0100 + +gcc-6 (6-20151211-1ubuntu3) xenial; urgency=medium + + * Test build for xenial. + + -- Matthias Klose Fri, 11 Dec 2015 17:42:35 +0100 + +gcc-6 (6-20151211-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20151211. + * Update gnat and gdc patches, re-enable gnat and gdc. + + -- Matthias Klose Fri, 11 Dec 2015 12:35:03 +0100 + +gcc-6 (6-20151210-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from 20151210. + + -- Matthias Klose Thu, 10 Dec 2015 22:09:13 +0100 + +gcc-5 (5.3.1-3ubuntu1) xenial; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + - Build using GCC Linaro on armhf and arm64. + + -- Matthias Klose Tue, 08 Dec 2015 02:21:55 +0100 + +gcc-5 (5.3.1-3) unstable; urgency=medium + + * Update to SVN 20151207 (r231361, 5.3.1) from the gcc-5-branch. + * Remove upstreamed chunks from the ada-kfreebsd patch. + + -- Matthias Klose Tue, 08 Dec 2015 02:10:51 +0100 + +gcc-5 (5.3.1-2ubuntu2) xenial; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + - Build using GCC Linaro on armhf and arm64. + + -- Matthias Klose Mon, 07 Dec 2015 00:00:19 +0100 + +gcc-5 (5.3.1-2) unstable; urgency=medium + + * Update to SVN 20151206 (r231339, 5.3.1) from the gcc-5-branch. + * Re-enable building gdc/libphobos, fixing the profiled build. + * Fix PR sanitizer/67899, build failure on sparc/sparc64. + + -- Matthias Klose Sun, 06 Dec 2015 19:15:46 +0100 + +gcc-5 (5.3.1-1ubuntu1) xenial; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + - Build using GCC Linaro on armhf and arm64. + + -- Matthias Klose Sat, 05 Dec 2015 11:40:27 +0100 + +gcc-5 (5.3.1-1) unstable; urgency=medium + + * Update to SVN 20151205 (r231314, 5.3.1) from the gcc-5-branch. + + -- Matthias Klose Sat, 05 Dec 2015 11:36:26 +0100 + +gcc-5 (5.3.1-0ubuntu2) xenial; urgency=medium + + * Update libgcc symbols file. + + -- Matthias Klose Fri, 04 Dec 2015 18:52:20 +0100 + +gcc-5 (5.3.1-0ubuntu1) xenial; urgency=medium + + * Update to SVN 20151204 (r231267, 5.3.1) from the gcc-5-branch. + * Build using GCC Linaro on armhf and arm64. + + -- Matthias Klose Fri, 04 Dec 2015 15:04:01 +0100 + +gcc-5 (5.3.0-3) unstable; urgency=medium + + * Update libgcc symbols file. + * Restore libgcc.symbols.aebi. + * Disabled profiled bootstraps for backports. + + -- Matthias Klose Sat, 05 Dec 2015 07:50:48 +0100 + +gcc-5 (5.3.0-1) experimental; urgency=medium + + * GCC 5.3 release. + - Fix PR libstdc++/65142 (CVE-2015-5276). + * Update gdc to the gcc-5 branch 20151130. + * Enable the profiled bootstrap on amd64, arm64, armel armhf, i386, powerpc, + ppc64, ppc64el, s390x, x32 (excluding builds from the Linaro branch). + * Move test summary into the gcc-test-results package. + * Simplify libatomic, libcilkrts, libgcc, libgfortran, libgomp, libitm, + libmpx, libquadmath symbols files using versioned symbol references. + Closes: #806784. + * Only build the hppa64 cross compiler when either building the native compiler, + or when cross building the native compiler. Closes: #806479. + * Configure staged build with --enable-linker-build-id. + + -- Matthias Klose Fri, 04 Dec 2015 12:01:04 +0100 + +gcc-5 (5.2.1-27ubuntu1) xenial; urgency=medium + + * Configure with --enable-default-pie on s390x. + + -- Matthias Klose Mon, 30 Nov 2015 00:49:40 +0100 + +gcc-5 (5.2.1-27) unstable; urgency=medium + + * Update to SVN 20151129 (r231053, 5.2.1) from the gcc-5-branch. + * Don't strip cc1plus when shipping with unstripped frontends. + * Relax libgnatvsn5-dev-*-cross and libgnatprj5-dev-*-cross dependencies + on gnat-5-*-linux-gnu. + * Fix setting the explicit libc dependency for cross builds. + * Don't build m4-nofpu multilibs on sh4, install the default multilib + into the standard location. + * Stop building gnat on mips64, see https://gcc.gnu.org/PR65337 (#806370). + * Update the patch for PR go/67508 and re-enable Go on sparc and sparc64. + * Fix gnat sparc/sparc64 architecture detection. + * Update libgcc and libstdc++ symbols files. + * Don't ship the gcov tools in the gcc-hppa64-linux-gnu package. + * Run the autoconf generation in parallel. + * Add --enable-default-pie option to GCC configure, taken from the trunk. + * Enable gnat for m68k cross builds. + * Link gnat tools, gnat libs and libgccjit with the defaults LDFLAGS. + * Skip non-default multilib and libstdc++-v3 debug builds in bootstrap builds. + * Ship an empty debian/rules.parameters in the gcc-5-source package. + + -- Matthias Klose Sun, 29 Nov 2015 23:48:58 +0100 + +gcc-5 (5.2.1-26ubuntu1) xenial; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 25 Nov 2015 17:29:15 +0100 + +gcc-5 (5.2.1-26) unstable; urgency=medium + + * Update to SVN 20151125 (r230897, 5.2.1) from the gcc-5-branch. + * Fix the rtlibs stage build. Closes: #806186. + * Fix packaging the cross libphobos package. + * Build the hppa64 cross compiler on x86 architectures. + * gcc-5-hppa64-linux-gnu: Stop providing unversioned tools using + alternatives. Build a gcc-hppa64-linux-gnu package instead. + * Split out a gcc-5-test-results package from g++-5, allowing a post + build analysis, and reducing the size of the g++-5 package. + + -- Matthias Klose Wed, 25 Nov 2015 20:33:08 +0100 + +gcc-5 (5.2.1-25ubuntu1) xenial; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Mon, 23 Nov 2015 06:06:11 +0100 + +gcc-5 (5.2.1-25) unstable; urgency=medium + + * Update to SVN 20151123 (r230734, 5.2.1) from the gcc-5-branch. + * Fix libgcc4-dbg dependency on libgcc4. Closes: #805839. + * Fix building epoch prefixed cross packages. + + -- Matthias Klose Mon, 23 Nov 2015 05:48:00 +0100 + +gcc-5 (5.2.1-24ubuntu3) xenial; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sat, 21 Nov 2015 12:21:06 +0100 + +gcc-5 (5.2.1-24) unstable; urgency=medium + + * Update to SVN 20151121 (r230703, 5.2.1) from the gcc-5-branch. + * Fix PR libstdc++/56158, taken from the trunk. Closes: #804521. LP: #1514309. + * Don't try to build a gnat cross compiler when there is no gnat compiler + for the build architecture. + * Update gnat build dependencies for backports. + * Parallelize building documentation and parallelize the packaging step. + * Update the Linaro support to the 5-2015.11 snapshot. + + -- Matthias Klose Sat, 21 Nov 2015 11:22:16 +0100 + +gcc-5 (5.2.1-23ubuntu1) xenial; urgency=medium + + * Again, configure with --enable-targets=powerpcle-linux on ppc64el. + + -- Matthias Klose Wed, 28 Oct 2015 12:18:49 +0100 + +gcc-5 (5.2.1-23) unstable; urgency=medium + + * Update to SVN 20151028 (r229478, 5.2.1) from the gcc-5-branch. + + [ Matthias Klose ] + * Update the Linaro support to the 5-2015.10 snapshot. + * gcj: On ppc64el, use the same jvm archdir name as for openjdk (ppc64le). + * gcj: Fix priority of java alternatives. Closes: #803055. + * gnat-5: Reintroduce the unversioned gnatgcc name. Closes: #802838. + + [ Aurelien Jarno ] + * Replace proposed patch for PR rtl-optimization/67736 by the one + committed on trunk. + + -- Matthias Klose Wed, 28 Oct 2015 10:36:54 +0100 + +gcc-5 (5.2.1-22ubuntu5) xenial; urgency=medium + + * Revert the fix for PR ipa/67056, causing an ICE. + + -- Matthias Klose Fri, 23 Oct 2015 19:13:51 +0200 + +gcc-5 (5.2.1-22ubuntu4) xenial; urgency=medium + + * Update to SVN 20151022 (r229176, 5.2.1) from the gcc-5-branch. + * Fix PR ipa/67056, taken from the trunk. Closes: #788299. + * Target POWER8 on ppc64el. + * Again, don't strip the compiler binaries for more verbose ICEs. + + -- Matthias Klose Thu, 22 Oct 2015 17:32:47 +0200 + +gcc-5 (5.2.1-22ubuntu2) wily; urgency=medium + + * Strip the compiler binaries for the release. + + -- Matthias Klose Fri, 16 Oct 2015 12:17:17 +0200 + +gcc-5 (5.2.1-22ubuntu1) wily; urgency=medium + + * gcj: On ppc64el, use the same jvm archdir name as for openjdk (ppc64le). + + -- Matthias Klose Sun, 11 Oct 2015 10:13:52 +0200 + +gcc-5 (5.2.1-22) unstable; urgency=medium + + * Update to SVN 20151010 (r228681, 5.2.1) from the gcc-5-branch. + - Fix PR libstdc++/65913, PR libstdc++/67173, PR libstdc++/67747, + PR c/67730, PR middle-end/67563, PR lto/67699, PR tree-optimization/67821, + PR debug/58315. + + [ Matthias Klose ] + * Restore the work around for PR libstdc++/65913, still needed at least + for powerpc. + * Rename gcc-5-hppa64 to gcc-5-hppa64-linux-gnu, update (build) dependency + on binutils. Closes: #800563. + * Adjust setting DH_COMPAT for dh_movefiles with updated debhelper supporting + globbing of arguments. Closes: #800250. + * Build-depend on gnat-5 instead of gnat-4.9. + + [ Aurelien Jarno ] + * Do not Use --with-mips-plt on mips and mipsel. Closes: #799811. + + -- Matthias Klose Sat, 10 Oct 2015 22:17:09 +0200 + +gcc-5 (5.2.1-21ubuntu2) wily; urgency=medium + + * Restore the work around for PR libstdc++/65913, still needed at least + for powerpc. + + -- Matthias Klose Sun, 04 Oct 2015 02:21:30 +0200 + +gcc-5 (5.2.1-21ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sat, 03 Oct 2015 21:30:44 +0200 + +gcc-5 (5.2.1-21) unstable; urgency=medium + + * Update to SVN 20151003 (r228449, 5.2.1) from the gcc-5-branch. + * Fix building gnat. Closes: #800781. + + -- Matthias Klose Sat, 03 Oct 2015 17:28:45 +0200 + +gcc-5 (5.2.1-20ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Fri, 02 Oct 2015 11:35:22 +0200 + +gcc-5 (5.2.1-20) unstable; urgency=medium + + * Update to SVN 20151002 (r228373, 5.2.1) from the gcc-5-branch. + * Fix packaging the ada cross library packages. + + -- Matthias Klose Fri, 02 Oct 2015 10:24:38 +0200 + +gcc-5 (5.2.1-19ubuntu1) wily; urgency=medium + + * Configure --with-arch=zEC12 on s390x Ubuntu. + + -- Matthias Klose Wed, 30 Sep 2015 22:55:14 +0200 + +gcc-5 (5.2.1-19) unstable; urgency=medium + + * Update to SVN 20150930 (r228302, 5.2.1) from the gcc-5-branch. + - Fix PR ipa/66424. Closes: #800318. + + [ Matthias Klose ] + * Update the Linaro support to the 5-2015.09 snapshot. + * Fix PR libstdc++/67707, taken from the trunk. LP: #1499564. + * Ship libgcj.spec in gcj-5 instead of gcj-5-jdk. Closes: #800010. + * gcj-5: Suggest gcj-5-jdk. + * Fix base dependency for ada cross library packages. + * Add ${shlibs:Depends} for libgnatvsn and libgnatprj. + * Link lrealpath.o into libgnatprj. Closes: #800045. + * libgnat{svn,prj}-dev: For cross builds, move adainclude and adalib files + into the gcc libdir. + * Default to POWER8 on ppc64el. + * armv8: Fix slt lda missing conditional code (taken from the trunk). + * Fix lintian pre-depends-directly-on-multiarch-support warnings. + + [ Aurelien Jarno ] + * Apply proposed patch for PR rtl-optimization/67736 when building for + mips64 or mips64el. Closes: #800321. + + -- Matthias Klose Wed, 30 Sep 2015 20:36:50 +0200 + +gcc-5 (5.2.1-18ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 23 Sep 2015 03:10:37 +0200 + +gcc-5 (5.2.1-18) unstable; urgency=medium + + * Update to SVN 20150922 (r228023, 5.2.1) from the gcc-5-branch. + + [ Matthias Klose ] + * gcc-5-plugin-dev: Depend on libmpc-dev. Closes: #798997. + * Fix PR libstdc++/65913, taken from the trunk. Closes: #797577. + + [ YunQiang Su ] + * Build again the gnat-5-sjlj package. Closes: #798782. + * Fix gnat cross builds, and cross building gnat. + + -- Matthias Klose Tue, 22 Sep 2015 23:15:17 +0200 + +gcc-5 (5.2.1-17ubuntu5) wily; urgency=medium + + * Don't assume --push-state/--pop-state being available for every linker. + LP: #1496743. + + -- Matthias Klose Tue, 22 Sep 2015 20:54:29 +0200 + +gcc-5 (5.2.1-17ubuntu4) wily; urgency=medium + + * gcc-5-plugin-dev: Depend on libmpc-dev. Closes: #798997. + * Work around PR c++/65913, link with -latomic when linking with -lstdc++. + Closes: #797577. + + -- Matthias Klose Tue, 15 Sep 2015 17:57:31 +0200 + +gcc-5 (5.2.1-17ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Fri, 11 Sep 2015 03:24:48 +0200 + +gcc-5 (5.2.1-17) unstable; urgency=medium + + * Update to SVN 20150911 (r227671, 5.2.1) from the gcc-5-branch. + - Fix PR c++/67369, ICE on valid code. LP: #1489173. + + [ Matthias Klose ] + * Build-depend on linux-libc-dev [m68k] for gcc and gcc-snapshot builds. + Closes: #796906. + * Don't ignore anymore bootstrap comparison failures on sh4. Closes: #796939. + * Fix stage1 cross build for KFreeBSD. Closes: #796901. + * libgo: Fix PR go/67508, rewrite lfstack packing/unpacking to look more + like that in Go (Michael Hudson). LP: #1472650. + * Fix PR target/67143 (AArch64), ICE on valid code. LP: #1481333. + + [ Aurelien Jarno ] + * Use --with-mips-plt on mips*. + * Build for R2 ISA on mips, mips64 and mips64el. + * Optimize for R2 ISA on mipsel. + * Only apply mips-fix-loongson2f-nop on mipsel. + + [ YunQiang Su ] + * Fix running the acats tests. Closes: #798531. + + -- Matthias Klose Fri, 11 Sep 2015 03:17:20 +0200 + +gcc-5 (5.2.1-16ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 03 Sep 2015 16:00:26 +0200 + +gcc-5 (5.2.1-16) unstable; urgency=medium + + * Update to SVN 20150903 (r227431, 5.2.1) from the gcc-5-branch. + - Backport the filesystem TS library. + * libstdc++-dev: Install libstdc++fs.a. + * Again, configure with --enable-targets=powerpcle-linux on ppc64el. + * Apply proposed patch for PR target/67211 (ppc64el). + * libgo-dev: Install libgolibbegin.a. + * Apply proposed patch for PR target/67280 (ARM). LP: #1482320. + + -- Matthias Klose Thu, 03 Sep 2015 12:16:15 +0200 + +gcc-5 (5.2.1-15ubuntu5) wily; urgency=medium + + * Fix libstdc++-breaks (add version for the clustalx breaks). + + -- Matthias Klose Tue, 25 Aug 2015 17:56:26 +0200 + +gcc-5 (5.2.1-15ubuntu3) wily; urgency=medium + + * Update to SVN 20150825 (r227166, 5.2.1) from the gcc-5-branch. + - Backport the filesystem TS library. + * libstdc++-dev: Install libstdc++fs.a. + * Again, configure with --enable-targets=powerpcle-linux on ppc64el. + * Apply proposed patch for PR target/67211 (ppc64el). + * libgo-dev: Install libgolibbegin.a. + * Add the PR libstdc++/66145 breaks for wily. + + -- Matthias Klose Tue, 25 Aug 2015 15:56:11 +0200 + +gcc-5 (5.2.1-15ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 09 Aug 2015 13:20:15 +0200 + +gcc-5 (5.2.1-15) unstable; urgency=medium + + * Update to SVN 20150808 (r226731, 5.2.1) from the gcc-5-branch. + * Adjust libstdc++-breaks: Break libantlr-dev instead of antlr; + adjust libreoffice version (closes: #794203), drop xxsd break (see + #793289), remove cython breaks (closes: #794511), add breaks for + packages built using cython (chemps2, fiona, guiqwt, htseq, imposm, + pysph, pytaglib, python-scipy, python-sfml, rasterio). + * Ignore missing libstdc++ symbols on sparc64 (work around #792204). + + -- Matthias Klose Sat, 08 Aug 2015 11:18:24 +0200 + +gcc-5 (5.2.1-14) unstable; urgency=high + + * Fix libstdc++6 breaks. + + -- Matthias Klose Fri, 31 Jul 2015 04:12:08 +0200 + +gcc-5 (5.2.1-13) unstable; urgency=high + + * Upload to unstable (https://wiki.debian.org/GCC5). See also + https://lists.debian.org/debian-devel-announce/2015/07/msg00000.html + * Update to SVN 20150730 (r226411, 5.2.1) from the gcc-5-branch. + - Fix PR libstdc++/67015. Closes: #793784. + * Fix version macros in the plugin-header.h header. Closes: #793478. + * libstdc++6: Add breaks for issues tagged with gcc-pr66145. + * Add libcpprest2.4 to libstdc++6 breaks. Closes: #784655. + * Fix PR c++/66857, taken from the trunk. + * Ignore differences in gcc/real.o in the bootstrap build for + sh*-*linux-gnu targets. According to PR 67002, "A rare indeterminacy + of the register choice. Both codes are valid. It seems very hard to + find where has this indeterminacy come from". Suggested by Adrian + Glaubitz. + + -- Matthias Klose Thu, 30 Jul 2015 21:51:25 +0200 + +gcc-5 (5.2.1-12ubuntu2) wily; urgency=medium + + * Update to SVN 20150729 (r226354, 5.2.1) from the gcc-5-branch. + - Fix PR libstdc++/67015. Closes: #793784. + + -- Matthias Klose Wed, 29 Jul 2015 17:59:18 +0200 + +gcc-5 (5.2.1-12ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 22 Jul 2015 21:17:54 +0200 + +gcc-5 (5.2.1-12) experimental; urgency=medium + + * Update to SVN 20150723 (r226105, 5.2.1) from the gcc-5-branch. + * Fix PR libstdc++/66145, std::ios_base::failure objects thrown from + libstdc++.so using the gcc4-compatible ABI. + Just build src/c++11/functexcept.cc using the new ABI. It will break + code, which will be handled in the archive by adding Breaks for the + affected packages. Third party code using such code will need a rebuild. + * Remove the work around to build with -O1 on sh4. + + -- Matthias Klose Thu, 23 Jul 2015 14:18:44 +0200 + +gcc-5 (5.2.1-11ubuntu1) wily; urgency=medium + + * Configure without --disable-libstdcxx-dual-abi. + * Configure with --with-default-libstdcxx-abi=new. + + -- Matthias Klose Fri, 17 Jul 2015 08:14:56 +0200 + +gcc-5 (5.2.1-1ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 16 Jul 2015 16:58:50 +0200 + +gcc-5 (5.2.1-1) experimental; urgency=medium + + * GCC 5.2 release. + * Update to SVN 20150716 (r225880, 5.2.1) from the gcc-5-branch. + * Require version 5.2 for the libstdc++6 cxx symbols. + * Ignore missing libstdc++ symbols on sparc64 (work around #792204). + * Go escape analysis: analyze multiple result type assertions (taken + from the trunk). + + -- Matthias Klose Thu, 16 Jul 2015 15:35:44 +0200 + +gcc-5 (5.1.1-14ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sat, 11 Jul 2015 13:00:26 +0200 + +gcc-5 (5.1.1-14) unstable; urgency=medium + + * Update to SVN 20150711 (r225710, 5.1.1) from the gcc-5-branch. + + -- Matthias Klose Sat, 11 Jul 2015 11:57:19 +0200 + +gcc-5 (5.1.1-13ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 07 Jul 2015 14:29:11 +0200 + +gcc-5 (5.1.1-13) unstable; urgency=medium + + * Update to SVN 20150706 (r225471, 5.1.1) from the gcc-5-branch. + * Update libasan symbol files. + * Configure --with-fp-32=xx on all mips targets, setting MIPS O32 default + to FPXX (YunQiang Su). Closes: #789612. + * Update libgccjit symbol file. + * Add x32 symbols files for libgcc1 and libstdc++6. + * libgccjit0: Add breaks for python-gccjit and python3-gccjit. + + -- Matthias Klose Mon, 06 Jul 2015 19:55:08 +0200 + +gcc-5 (5.1.1-12ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 23 Jun 2015 12:53:45 +0200 + +gcc-5 (5.1.1-12) unstable; urgency=medium + + * Update to SVN 20150622 (r224724, 5.1.1) from the gcc-5-branch. + * Update symbols files for mips64 libatomic and libstdc++ (YunQiang Su). + Closes: #788990. + * Fix "empty-binary-package" lintian warnings. + + -- Matthias Klose Mon, 22 Jun 2015 14:37:49 +0200 + +gcc-5 (5.1.1-11ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 17 Jun 2015 14:38:38 +0200 + +gcc-5 (5.1.1-11) unstable; urgency=medium + + * Update to SVN 20150616 (r224519, 5.1.1) from the gcc-5-branch. + * gccgo: escape: Analyze binary expressions (taken from the trunk). + * Explicitly build with -Wl,--no-relax on alpha again. + * Build with -O1 on sh4 (try to work around PR target/66358). + + -- Matthias Klose Tue, 16 Jun 2015 16:11:59 +0200 + +gcc-5 (5.1.1-10) unstable; urgency=medium + + * Update to SVN 20150613 (r224454, 5.1.1) from the gcc-5-branch. + * Make removal of byte-compiled libstdc++ pretty printer files more + robust. Closes: #787630. + * Fix mips 32bit (o32) multilib builds (YunQiang Su). + * Build target libraries with -Wl,-z,relro. + * Build libstdc++6 when building the common libraries. + * Fix a bunch of lintian warnings. + + -- Matthias Klose Sat, 13 Jun 2015 12:59:17 +0200 + +gcc-5 (5.1.1-9ubuntu2) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 03 Jun 2015 01:02:23 +0200 + +gcc-5 (5.1.1-9) unstable; urgency=medium + + * Update to SVN 20150602 (r224029, 5.1.1) from the gcc-5-branch. + * Remove byte-compiled libstdc++ pretty printer files on upgrade. + Closes: #785939. + * Fix dangling libgccjit.so symlink. + * Fix base dependency for rtlibs stage builds. + * Fix build failure of the hppa64 cross compiler, introduced by the + gnat cross patches. Closes: #786692. + * Update README.source (Michael Vogt). + * libgo: syscall.Sendfile(): Apply proposed patch for PR go/66378. + (Michael Vogt). LP: #1460530. + * Set CC and CXX matching the same GCC version for the stage1 build. + * Work around PR go/66368, build libgo with -fno-stack-protector. + LP: #1454183. + + -- Matthias Klose Wed, 03 Jun 2015 00:49:41 +0200 + +gcc-5 (5.1.1-8ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Thu, 28 May 2015 12:51:48 +0200 + +gcc-5 (5.1.1-8) unstable; urgency=medium + + * Update to SVN 20150528 (r223816, 5.1.1) from the gcc-5-branch. + * Set the priorities of the *-dev-*-cross packages to extra. + * Prepare to change the base dependency for *-cross packages. + * Fix dependencies for stage1 and stage2 builds. + * Relax dependencies on binary indep *-dev-*-cross packages. + * Disable building gdc on sh4 (bootstrap comparison failure). + + -- Matthias Klose Thu, 28 May 2015 15:51:00 +0200 + +gcc-5 (5.1.1-7) unstable; urgency=medium + + * Update to SVN 20150522 (r223579, 5.1.1) from the gcc-5-branch. + * Add description for the ada-gnattools-cross patch (YunQiang Su). + * Provide a rtlibs stage to build a subset of target library packages. + * Make symbols file symlinking for cross builds more robust. + * Prefer gnatgcc-5 over gnatgcc when building native packages. + * Various fixes to build a gnat cross compiler: + - Fix dependencies of packages. + - Fix building libgnatprj and libgnatvsn (still needed to figure + out if these are target or host libraries). + * Fix building cross compilers with dpkg 1.18. + + -- Matthias Klose Fri, 22 May 2015 18:20:01 +0200 + +gcc-5 (5.1.1-6ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + * Fix dependencies for stage1 and stage2 builds. + * Disable building gdc on sh4. + + -- Matthias Klose Tue, 19 May 2015 18:29:02 +0200 + +gcc-5 (5.1.1-6) unstable; urgency=medium + + * Update to SVN 20150519 (r223346, 5.1.1) from the gcc-5-branch. + * Don't build gdc-multilib on armel. + * Remove old CFLAGS/LDFLAGS settings to build gdc. + * Remove reference to .ico file in NEWS.html. + * Fix gcc's dependency on libcc1-0 for native builds. + * Fix stripping the rpath when cross-building cross compilers. + * Remove work arounds to build 64bit multilibs on 32bit targets, + now properly fixed upstream. + * Partially apply patches to build a gnat cross compiler (submitted + by YunQiang Su). + - gnatmake: Call the versioned gnatbind and gnatlink commands. + Closes: #782257. + - Allow libgnatprj and libgnatvsn to cross build. Addresses: #783372. + - New patch ada-gnattools-cross.diff (no documentation). + * Backport patch for gccgo: + - gccgo: If unary & does not escape, the var does not escape. + * Apply the backported patches for the go escape analysis. Need to + be enabled with -fgo-optimize-alloc (this option may go away again). + * Re-enable running the tests. + + -- Matthias Klose Tue, 19 May 2015 10:33:40 +0200 + +gcc-5 (5.1.1-5ubuntu4) wily; urgency=medium + + * Update to SVN 20150513 (r223155, 5.1.1) from the gcc-5-branch. + * Don't build gdc-multilib on armel. + + -- Matthias Klose Wed, 13 May 2015 14:36:20 +0200 + +gcc-5 (5.1.1-5ubuntu3) wily; urgency=medium + + * Fix gnat build dependencies. + + -- Matthias Klose Sun, 10 May 2015 02:46:32 +0200 + +gcc-5 (5.1.1-5ubuntu2) wily; urgency=medium + + * Update to SVN 20150509 (r222970, 5.1.1) from the gcc-5-branch. + * Fix gotools configury. + * Configure with + --disable-libstdcxx-dual-abi --with-default-libstdcxx-abi=c++98 + While libstdc++ provides a dual ABI to support both the c++98 and c++11 + ABI, there is no committment on compatibility of the old experimental + c++11 ABI from GCC 4.9 and the stable c++11 ABI in GCC 5. + Closes: #784655. + + -- Matthias Klose Sat, 09 May 2015 19:24:57 +0200 + +gcc-5 (5.1.1-5ubuntu1) wily; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 05 May 2015 17:52:14 +0200 + +gcc-5 (5.1.1-5) unstable; urgency=medium + + * Update to SVN 20150507 (r222873, 5.1.1) from the gcc-5-branch. + * Fix 32bit libstdc++ symbols files for kfreebsd-amd64. + * libx32phobos-dev: Don't depend on libx32z-dev, when not available. + * Fix gotools configury. + * Configure with + --disable-libstdcxx-dual-abi --with-default-libstdcxx-abi=c++98 + While libstdc++ provides a dual ABI to support both the c++98 and c++11 + ABI, there is no committment on compatibility of the old experimental + c++11 ABI from GCC 4.9 and the stable c++11 ABI in GCC 5. + Closes: #784655. + + -- Matthias Klose Fri, 08 May 2015 18:48:49 +0200 + +gcc-5 (5.1.1-4) unstable; urgency=medium + + * Update to SVN 20150503 (r222751, 5.1.1) from the gcc-5-branch. + - Fix build failure on alpha. + * Fix applying the cross-biarch patch for stage1 builds. + * Fix libstdc++ symbols files for kfreebsd-amd64. + * Remove libn32phobos-5-dev from the control file. + * Really disable gnat on x32. + + -- Matthias Klose Sat, 02 May 2015 19:18:57 +0200 + +gcc-5 (5.1.1-3) unstable; urgency=high + + * Update to SVN 20150430 (r222660, 5.1.1) from the gcc-5-branch. + * Fix libstdc++ symbols files for kfreebsd-i386. + * PR libstdc++/62258, fix for std::uncaught_exception, taken from the trunk. + LP: #1439451. + * Backport patches for gccgo (not yet applied): + - Consider multi-result calls in escape analysis. + - Propagate escape info from closures to enclosed variables. + - Analyze function values and conversions. + - Use backend interface for stack allocation. + * More libstdc++ symbols updates for the Hurd and KFreeBSD. + * config-ml.in: Add D support. + * Update cross-biarch.diff to support D and Go. + * Apply the cross-biarch patch for every cross build. + + -- Matthias Klose Thu, 30 Apr 2015 15:42:05 +0200 + +gcc-5 (5.1.1-2) unstable; urgency=medium + + * Update to SVN 20150428 (r222550, 5.1.1) from the gcc-5-branch. + * Fix the gnat build dependency. + * Don't build go and gofmt for cross compilers. + + -- Matthias Klose Tue, 28 Apr 2015 23:57:14 +0200 + +gcc-5 (5.1.1-1) unstable; urgency=medium + + * GCC 5.1.0 release. + * Update to SVN 20150424 (r222416, 5.1.1) from the gcc-5-branch. + * Update NEWS files. + * Apply the ada-bootstrap-compare patch for snapshot builds as well. + * Update libasan, libgomp and libstdc++ symbols files. + * Don't ignore errors in dh_makeshlibs and dh_shlibdeps anymore, symbols + files should be uptodate now. + * Split out the sjlj build related things from the ada-acats patch into + a new ada-acats-sjlj patch. + * Don't build libx32phobos-5-dev when not building x32 multilibs. + * Fix standard C++ include directory for cross builds. Closes: #783241. + * Ignore bootstrap comparison failure on ia64. Filed upstream as + PR middle-end/65874. + * gccgo: Add (don't yet apply) a patch to implement escape analysis (taken + from the trunk). Turned off by default, enable with -fgo-optimize-alloc. + + -- Matthias Klose Fri, 24 Apr 2015 18:42:39 +0200 + +gcc-5 (5.1.0-0ubuntu11) vivid; urgency=medium + + * GCC 5.1.0 release. + * Update NEWS files. + * gccgo: Implement escape analysis (taken from the trunk). Turned off + by default, enable with -fgo-optimize-alloc. + + -- Matthias Klose Wed, 22 Apr 2015 14:54:11 +0200 + +gcc-5 (5.1~rc2-0ubuntu12) vivid; urgency=medium + + * Fix libasan symbols. + + -- Matthias Klose Wed, 22 Apr 2015 00:12:03 +0200 + +gcc-5 (5.1~rc2-0ubuntu11) vivid; urgency=medium + + * GCC 5.1 release candidate 2. + * Update to SVN 20150421 (r222253) from the gcc-5-branch. + + -- Matthias Klose Tue, 21 Apr 2015 18:53:06 +0200 + +gcc-5 (5.1~rc1-0ubuntu12) vivid; urgency=medium + + * Update to SVN 20150419 (r222218) from the gcc-5-branch. + * Apply the ada-bootstrap-compare patch for snapshot builds as well. + * Update libasan, libgomp and libstdc++ symbols files. + * Don't ignore errors in dh_makeshlibs and dh_shlibdeps anymore, symbols + files should be uptodate now. + * Split out the sjlj build related things from the ada-acats patch into + a new ada-acats-sjlj patch. + * Ignore bootstrap comparison failure on ia64. Filed upstream as + PR middle-end/65874. + + -- Matthias Klose Sun, 19 Apr 2015 15:57:49 +0200 + +gcc-5 (5.1~rc1-0ubuntu11) vivid; urgency=medium + + * GCC 5.1 release candidate 1. + * Update to SVN 20150414 (r222066) from the gcc-5-branch. + * Update GDC to the gcc-5 branch, 20140414. + * Don't build libobjc, when not building the common libraries. + * Don't run the gccjit tests on KFreeBSD. Works around #782444:. + * Fix not building libs built by the next GCC version. + + -- Matthias Klose Tue, 14 Apr 2015 03:01:02 +0200 + +gcc-5 (5-20150410-0ubuntu11) vivid; urgency=medium + + * Update to SVN 20150410. + * Fix /usr/include/c++/5.0.0 symlink. + * Re-enable building the D frontend. Closes: #782254. + * gccgo: Install libnetgo. + + -- Matthias Klose Sat, 11 Apr 2015 02:21:24 +0200 + +gcc-5 (5-20150404-0ubuntu11) vivid; urgency=medium + + * Update to SVN 20150404. + * Don't explicitly configure --with-gxx-include-dir and an absolute path, + so the toolchain remains relocatible. Instead, canonicalize the include + path names at runtime. + + -- Matthias Klose Sat, 04 Apr 2015 23:34:58 +0200 + +gcc-5 (5-20150401-0ubuntu12) vivid; urgency=medium + + * Update to SVN 20150401. + * Don't link libgnatprj using --no-allow-shlib-undefined on older releases. + * Don't build libmpx on older releases. + * Remove the work around to build libgccjit on arm64. + * Fix the libgccjit build using the just built compiler. + * Don't break other gcc, gcj, gnat -base packages for backports, only + needed for dist-upgrades. + * Don't add -gtoggle to STAGE3_CFLAGS (disabling the bootstrap comparison). + Instead, ignore the one differing file (gcc/ada/a-except.o) for now. + See #781457, PR ada/65618. + * Update libasan, libtsan, libgfortran and libstdc++ symbols files. + * Add symbols files for libmpx, libgccjit and libcc1. + + -- Matthias Klose Wed, 01 Apr 2015 11:27:39 +0200 + +gcc-5 (5-20150329-1ubuntu11) vivid; urgency=medium + + * Update to SVN 20150329. + + -- Matthias Klose Sun, 29 Mar 2015 19:13:54 +0200 + +gcc-5 (5-20150329-1) experimental; urgency=medium + + * Update to SVN 20150329. + * Fix building the gnat-5-doc package. + * Fix gnat build dependencies. + * Fix installation of the gnat upstream ChangeLog. Closes: #781451. + * Restore the bootstrap-debug.mk patch to the ada-mips patch + for debugging purposes. See #781457. + + -- Matthias Klose Sun, 29 Mar 2015 18:53:29 +0200 + +gcc-5 (5-20150328-0ubuntu11) vivid; urgency=medium + + * Update to SVN 20150328. + * Fix building the gnat-5-doc package. + * Fix installation of the gnat upstream ChangeLog. Closes: #781451. + * Restore the bootstrap-debug.mk patch to the ada-mips patch + for debugging purposes. See #781457. + + -- Matthias Klose Sat, 28 Mar 2015 15:08:55 +0100 + +gcc-5 (5-20150327-1) experimental; urgency=medium + + * Update to SVN 20150327. + * Update libcc1 build support. + * Fix syntax in libstdc++ symbols file. Closes: #780991. + * Fix PR go/65417: Add support for PPC32 relocs to debug/elf. LP: #1431388. + * Fix PR go/65462: Fix go get dependencies. LP: #1432497. + * Limit the omp.h multilib fix to Linux. Closes: #778440. + * For ICEs, dump the preprocessed source file to stderr when in a + distro build environment. + * Remove the bootstrap-debug.mk patch from the ada-mips patch. + * gnat related work (partly based on #780640): + - Update patches for GCC 5. + - Build the gnat packages from the gcc-5 source package. + - Don't build a gnat-base package from the gcc-5 source. + - Stop building the gnat-5-sjlj package for now, patch needs an update. + - Fix the packaging when not building the gnat-5-sjlj package. + - Don't apply the ada-symbolic-tracebacks, patch needs an update. + - Fix the libgnatprj build, build with -DIN_GCC. + * Replace cloog/ppl build bits with isl build bits. + + -- Matthias Klose Fri, 27 Mar 2015 21:05:16 +0100 + +gcc-5 (5-20150321-1ubuntu12) vivid; urgency=medium + + * Update to SVN 20150321. + * Move the libcc1plugin from the gcc-5-plugin-dev package into the + gcc-5 package. + * Configure with --enable-checking=yes (instead of =release). + + -- Matthias Klose Sat, 21 Mar 2015 15:28:30 +0100 + +gcc-5 (5-20150316-1ubuntu11) vivid; urgency=medium + + * Update to SVN 20150316. + + -- Matthias Klose Mon, 16 Mar 2015 11:56:03 +0100 + +gcc-5 (5-20150314-1ubuntu11) vivid; urgency=medium + + * Update to SVN 20150314. + + -- Matthias Klose Sat, 14 Mar 2015 14:29:28 +0100 + +gcc-5 (5-20150312-1ubuntu11) vivid; urgency=medium + + * Update to SVN 20150312. + - PR go/65404, enable cgo on arm64 and powerpc. LP: #1431032. + * Fix libmpx multilib builds. + + -- Matthias Klose Thu, 12 Mar 2015 23:11:21 +0100 + +gcc-5 (5-20150311-1ubuntu12) vivid; urgency=medium + + * Update to SVN 20150311. + - libgo: Add arm64 to the pointer size map (Michael Hudson). + - libgo: Add ppc to the pointer size map. + * Enable libmpx builds on amd64 and i386. + * Update the gcc-multiarch patch for mips64 (YunQiang Su). + Closes: #776402, #780271. + + -- Matthias Klose Wed, 11 Mar 2015 19:56:38 +0100 + +gcc-5 (5-20150307-1ubuntu11) vivid; urgency=medium + + * Update to SVN 20150307. + - Update gccgo to Go 1.4.2. + * Enable libsanitizer for AArch64 and POWERPC LE (asan, ubsan). + * Remove the support to build empty libsanitizer packages on powerpc + and ppc64; libsanitizer should be stable on these architectures. + * Fix libcc1.so symlink. Closes: #779341. + * Revert the fix for PR65150 on armel and armhf to restore bootstrap. + * Don't strip the libgo library, or some things won't work as documented, + like runtime.Callers. Still keep the -dbg packages and check if some + debug information can be stripped. + * gccgo-5: Install alternatives for go and gofmt. + + -- Matthias Klose Sat, 07 Mar 2015 12:36:40 +0100 + +gcc-5 (5-20150226-1) experimental; urgency=medium + + * Update to SVN 20150226. + - Fix PR c/65040 (closes: #778514), PR tree-optimization/65053 + (closes: #778070, #778071), PR c++/64898 (closes: #778472). + * Allow not to strip the compiler executables to be able to print backtraces + for ICEs. + * Fix gnat build on mips64el (James Cowgill). Addresses: #779191. + * Fix the hppa64 cross build (John David Anglin). Closes: #778658. + * Fix libstdc++ pretty printers for Python3. Closes: #778436. + + -- Matthias Klose Thu, 26 Feb 2015 08:18:23 +0100 + +gcc-5 (5-20150205-0ubuntu11) vivid; urgency=medium + + * Update to SVN 20150205. + + -- Matthias Klose Thu, 05 Feb 2015 01:57:43 +0100 + +gcc-5 (5-20150203-0ubuntu12) vivid; urgency=medium + + * Don't disable bootstrap mode for the jit build on arm64, gets + miscompiled. + + -- Matthias Klose Tue, 03 Feb 2015 13:39:02 +0100 + +gcc-5 (5-20150203-0ubuntu11) vivid; urgency=medium + + * Update to SVN 20150203. + + -- Matthias Klose Tue, 03 Feb 2015 13:39:02 +0100 + +gcc-5 (5-20150129-0ubuntu2) vivid; urgency=medium + + * Fix the libstdc++ build. + + -- Matthias Klose Thu, 29 Jan 2015 19:09:16 +0100 + +gcc-5 (5-20150129-0ubuntu1) vivid; urgency=medium + + * Update to SVN 20150129. + * Configure --with-default-libstdcxx-abi=c++11 for development, + --with-default-libstdcxx-abi=c++98 for backports. + + -- Matthias Klose Thu, 29 Jan 2015 17:47:03 +0100 + +gcc-5 (5-20150128-0ubuntu1) vivid; urgency=medium + + * Update to SVN 20150128. + * Update GDC for GCC 5. + * Build GDC multilib packages. + * Update cross-install-location.diff for gcc-5. Closes: #776100. + * Re-enable libgccjit on AArch64. + + -- Matthias Klose Wed, 28 Jan 2015 23:30:09 +0100 + +gcc-5 (5-20150127-0ubuntu2) vivid; urgency=medium + + * Disable libgccjit on AArch64, compiler issue + + -- Matthias Klose Tue, 27 Jan 2015 18:05:12 +0100 + +gcc-5 (5-20150127-0ubuntu1) vivid; urgency=medium + + * Update to SVN 20150127. + * Disable libgccjit on AArch64. + + -- Matthias Klose Tue, 27 Jan 2015 14:39:03 +0100 + +gcc-5 (5-20150126-0ubuntu3) vivid; urgency=medium + + * Update to SVN 20150126. + * More symbol file updates. + * Fix libbacktrace and libsanitizer multilib builds. + * Fix libssp builds on 64bit architectures. + + -- Matthias Klose Mon, 26 Jan 2015 18:22:53 +0100 + +gcc-5 (5-20150121-0ubuntu2) vivid; urgency=medium + + * GCC 5. + * Build new binary packages libcc1-0, libgccjit0, libgccjit-5-dev, + libgccjit-5-dbg, libgccjit-5-doc. + * Update symbols files (still incomplete). + + -- Matthias Klose Tue, 20 Jan 2015 12:45:13 +0100 + +gcc-4.9 (4.9.2-10ubuntu2) vivid; urgency=medium + + * Update to SVN 20150116 (r219730) from the gcc-4_9-branch. + - Fix PR libstdc++/64476, PR libstdc++/60966, PR libstdc++/64239, + PR middle-end/63704 (ice on valid), PR target/64513 (x86), + PR rtl-optimization/64286 (wrong code), PR tree-optimization/64563 (ice), + PR middle-end/64391 (ice on valid), PR c++/54442 (ice on valid), + PR target/64358 (rs6000, wrong code), PR target/63424 (AArch64, ice on + valid), PR target/64479 (SH), PR rtl-optimization/64536, PR target/64505 + (rs6000), PR target/61413 (ARM, wrong code), PR target/64507 (SH), + PR target/64409 (x32, ice on valid), PR c++/64487 (ice on valid), + PR c++/64352, PR c++/64251 (rejects valid), PR c++/64297 (ice on valid), + PR c++/64029 (ice on valid), PR c++/63657 (diagnostic), PR c++/38958 + (diagnostic), PR c++/63658 (rejects valid), PR ada/64492 (build), + PR fortran/64528 (ice on valid), PR fortran/63733 (wrong code), + PR fortran/56867 (wrong code), PR fortran/64244 (ice on valid). + * Update the Linaro support to the 4.9-2015.01 release. + + -- Matthias Klose Fri, 16 Jan 2015 14:28:09 +0100 + +gcc-4.9 (4.9.2-10ubuntu1) vivid; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 31 Dec 2014 04:54:06 +0100 + +gcc-4.9 (4.9.2-10) unstable; urgency=medium + + * Really add x32 multilib packages for i386 cross builds to the control file. + Closes: #773265. + * Use the final binutils 2.25 release. + * Tighten the gcc-4.9 dependency on libgcc-4.9-dev (YunQiang Su). + + -- Matthias Klose Thu, 25 Dec 2014 18:10:51 +0100 + +gcc-4.9 (4.9.2-9) unstable; urgency=medium + + * Update to SVN 20141220 (r218987) from the gcc-4_9-branch. + - Fix PR libstdc++/64302, PR libstdc++/64303, PR c++/60955, + PR rtl-optimization/64010 (wrong code), PR sanitizer/64265 (wrong code). + * Add x32 multilib packages for i386 cross builds to the control file. + Closes: #773265. + * Fix mips64el multilib cross builds. Closes: #772665. + * libphobos-4.x-dev: Stop providing libphobos-dev, now a real package. + + -- Matthias Klose Sat, 20 Dec 2014 07:47:15 +0100 + +gcc-4.9 (4.9.2-8) unstable; urgency=medium + + * Update to SVN 20141214 (r218721) from the gcc-4_9-branch. + - Fix PR tree-optimization/62021 (ice), PR middle-end/64225 (missed + optimization), PR libstdc++/64239, PR rtl-optimization/64037 (wrong + code), PR target/64200 (x86, ice), PR tree-optimization/64269 (ice). + * Don't build libphobos multilibs, there is no gdc-multilib build. + * Really disable the sanitizer libs on powerpc, ppc64 and ppc64el. + * Paste config.log files to stdout in case of build errors. + + -- Matthias Klose Sun, 14 Dec 2014 18:43:49 +0100 + +gcc-4.9 (4.9.2-7ubuntu3) vivid; urgency=medium + + * Fix the powerpc build. + + -- Matthias Klose Thu, 11 Dec 2014 15:52:15 +0100 + +gcc-4.9 (4.9.2-7ubuntu2) vivid; urgency=medium + + * Update to SVN 20141211 (r218620) from the gcc-4_9-branch. + - Fix PR tree-optimization/62021 (ice), PR middle-end/64225 (missed + optimization). + * Don't build libphobos multilibs, there is no gdc-multilib built. + * Really disable the sanitizer libs on powerpc, ppc64 and ppc64el. + * Paste config.log files to stdout in case of build errors. + + -- Matthias Klose Thu, 11 Dec 2014 12:04:13 +0100 + +gcc-4.9 (4.9.2-7ubuntu1) vivid; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 10 Dec 2014 15:27:33 +0100 + +gcc-4.9 (4.9.2-7) unstable; urgency=medium + + * Update to SVN 20141210 (r218575) from the gcc-4_9-branch. + - Fix PR libstdc++/64203, PR target/55351 (SH), PR tree-optimization/61686, + PR bootstrap/64213. + - libgcc hppa backports. + * Fix cross builds with dpkg-architecture unconditionally exporting + target variables. For now specify the target architecture + in debian/target. This still needs to work with older dpkg versions, + so don't "simplify" the packaging. Closes: #768167. + + -- Matthias Klose Wed, 10 Dec 2014 13:32:42 +0100 + +gcc-4.9 (4.9.2-6ubuntu1) vivid; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Tue, 09 Dec 2014 13:47:24 +0100 + +# For older changelog entries, run 'apt-get changelog gcc-4.9-base' --- gcc-7-7.5.0.orig/debian/compat +++ gcc-7-7.5.0/debian/compat @@ -0,0 +1 @@ +9 --- gcc-7-7.5.0.orig/debian/control +++ gcc-7-7.5.0/debian/control @@ -0,0 +1,2113 @@ +Source: gcc-7 +Section: devel +Priority: optional +Maintainer: Ubuntu Core developers +XSBC-Original-Maintainer: Debian GCC Maintainers +Uploaders: Matthias Klose +Standards-Version: 4.4.1 +Build-Depends: debhelper (>= 9.20141010), dpkg-dev (>= 1.17.14), g++-multilib [amd64 armel armhf i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32] , + libc6.1-dev (>= 2.13-0ubuntu6) [alpha ia64] | libc0.3-dev (>= 2.13-0ubuntu6) [hurd-i386] | libc0.1-dev (>= 2.13-0ubuntu6) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= 2.13-0ubuntu6), libc6-dev (>= 2.13-31) [armel armhf], libc6-dev-amd64 [i386 x32], libc6-dev-sparc64 [sparc], libc6-dev-sparc [sparc64], libc6-dev-s390 [s390x], libc6-dev-s390x [s390], libc6-dev-i386 [amd64 x32], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el s390x sparc64 x32], libn32gcc1 [mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el], lib64gcc1 [i386 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el powerpc sparc s390 x32], libc6-dev-mips64 [mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el], libc6-dev-mipsn32 [mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el], libc6-dev-mips32 [mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el], libc6-dev-x32 [amd64 i386], libx32gcc1 [amd64 i386], libc6-dev-armhf [armel], libhfgcc1 [armel], libc6-dev-armel [armhf], libsfgcc1 [armhf], libc6.1-dbg [alpha ia64] | libc0.3-dbg [hurd-i386] | libc0.1-dbg [kfreebsd-i386 kfreebsd-amd64] | libc6-dbg, + kfreebsd-kernel-headers (>= 0.84) [kfreebsd-any], linux-libc-dev [m68k], + m4, libtool, autoconf2.64, gcc-8-base, + dwz, libunwind8-dev [ia64], libatomic-ops-dev [ia64], + gawk, lzma, xz-utils, patchutils, + zlib1g-dev, systemtap-sdt-dev [linux-any kfreebsd-any hurd-any], + binutils:native (>= 2.30) | binutils-multiarch:native (>= 2.30), binutils-hppa64-linux-gnu:native (>= 2.30) [hppa amd64 i386 x32], + gperf (>= 3.0.1), bison (>= 1:2.3), flex, gettext, + gdb:native [!riscv64], nvptx-tools [amd64], + texinfo (>= 4.3), locales, sharutils, + procps, gnat-7:native [!m32r !riscv64 !sh3 !sh3eb !sh4eb !m68k], g++-7:native, netbase, + libisl-dev, libmpc-dev (>= 1.1), libmpfr-dev (>= 3.0.0-9~), libgmp-dev (>= 2:5.0.1~), lib32z1-dev [amd64 kfreebsd-amd64], lib64z1-dev [i386], libx32z1-dev [amd64 kfreebsd-amd64 i386], + dejagnu [!m68k !hurd-amd64 !hurd-i386 !hurd-alpha !kfreebsd-amd64 !kfreebsd-i386 !kfreebsd-alpha], coreutils (>= 2.26) | realpath (>= 1.9.12), chrpath, lsb-release, quilt, + pkg-config, libgc-dev, + g++-7-alpha-linux-gnu [alpha] , gobjc-7-alpha-linux-gnu [alpha] , gfortran-7-alpha-linux-gnu [alpha] , gdc-7-alpha-linux-gnu [alpha] , gccgo-7-alpha-linux-gnu [alpha] , gnat-7-alpha-linux-gnu [alpha] , g++-7-x86-64-linux-gnu [amd64] , gobjc-7-x86-64-linux-gnu [amd64] , gfortran-7-x86-64-linux-gnu [amd64] , gdc-7-x86-64-linux-gnu [amd64] , gccgo-7-x86-64-linux-gnu [amd64] , gnat-7-x86-64-linux-gnu [amd64] , g++-7-arm-linux-gnueabi [armel] , gobjc-7-arm-linux-gnueabi [armel] , gfortran-7-arm-linux-gnueabi [armel] , gdc-7-arm-linux-gnueabi [armel] , gccgo-7-arm-linux-gnueabi [armel] , gnat-7-arm-linux-gnueabi [armel] , g++-7-arm-linux-gnueabihf [armhf] , gobjc-7-arm-linux-gnueabihf [armhf] , gfortran-7-arm-linux-gnueabihf [armhf] , gdc-7-arm-linux-gnueabihf [armhf] , gccgo-7-arm-linux-gnueabihf [armhf] , gnat-7-arm-linux-gnueabihf [armhf] , g++-7-aarch64-linux-gnu [arm64] , gobjc-7-aarch64-linux-gnu [arm64] , gfortran-7-aarch64-linux-gnu [arm64] , gdc-7-aarch64-linux-gnu [arm64] , gccgo-7-aarch64-linux-gnu [arm64] , gnat-7-aarch64-linux-gnu [arm64] , g++-7-i686-linux-gnu [i386] , gobjc-7-i686-linux-gnu [i386] , gfortran-7-i686-linux-gnu [i386] , gdc-7-i686-linux-gnu [i386] , gccgo-7-i686-linux-gnu [i386] , gnat-7-i686-linux-gnu [i386] , g++-7-mips-linux-gnu [mips] , gobjc-7-mips-linux-gnu [mips] , gfortran-7-mips-linux-gnu [mips] , gdc-7-mips-linux-gnu [mips] , gccgo-7-mips-linux-gnu [mips] , gnat-7-mips-linux-gnu [mips] , g++-7-mipsel-linux-gnu [mipsel] , gobjc-7-mipsel-linux-gnu [mipsel] , gfortran-7-mipsel-linux-gnu [mipsel] , gdc-7-mipsel-linux-gnu [mipsel] , gccgo-7-mipsel-linux-gnu [mipsel] , gnat-7-mipsel-linux-gnu [mipsel] , g++-7-mips64-linux-gnuabi64 [mips64] , gobjc-7-mips64-linux-gnuabi64 [mips64] , gfortran-7-mips64-linux-gnuabi64 [mips64] , gdc-7-mips64-linux-gnuabi64 [mips64] , gccgo-7-mips64-linux-gnuabi64 [mips64] , gnat-7-mips64-linux-gnuabi64 [mips64] , g++-7-mips64el-linux-gnuabi64 [mips64el] , gobjc-7-mips64el-linux-gnuabi64 [mips64el] , gfortran-7-mips64el-linux-gnuabi64 [mips64el] , gdc-7-mips64el-linux-gnuabi64 [mips64el] , gccgo-7-mips64el-linux-gnuabi64 [mips64el] , gnat-7-mips64el-linux-gnuabi64 [mips64el] , g++-7-mips64-linux-gnuabin32 [mipsn32] , gobjc-7-mips64-linux-gnuabin32 [mipsn32] , gfortran-7-mips64-linux-gnuabin32 [mipsn32] , gdc-7-mips64-linux-gnuabin32 [mipsn32] , gccgo-7-mips64-linux-gnuabin32 [mipsn32] , gnat-7-mips64-linux-gnuabin32 [mipsn32] , g++-7-powerpc-linux-gnu [powerpc] , gobjc-7-powerpc-linux-gnu [powerpc] , gfortran-7-powerpc-linux-gnu [powerpc] , gdc-7-powerpc-linux-gnu [powerpc] , gccgo-7-powerpc-linux-gnu [powerpc] , gnat-7-powerpc-linux-gnu [powerpc] , g++-7-powerpc64-linux-gnu [ppc64] , gobjc-7-powerpc64-linux-gnu [ppc64] , gfortran-7-powerpc64-linux-gnu [ppc64] , gdc-7-powerpc64-linux-gnu [ppc64] , gccgo-7-powerpc64-linux-gnu [ppc64] , gnat-7-powerpc64-linux-gnu [ppc64] , g++-7-powerpc64le-linux-gnu [ppc64el] , gobjc-7-powerpc64le-linux-gnu [ppc64el] , gfortran-7-powerpc64le-linux-gnu [ppc64el] , gdc-7-powerpc64le-linux-gnu [ppc64el] , gccgo-7-powerpc64le-linux-gnu [ppc64el] , gnat-7-powerpc64le-linux-gnu [ppc64el] , g++-7-m68k-linux-gnu [m68k] , gobjc-7-m68k-linux-gnu [m68k] , gfortran-7-m68k-linux-gnu [m68k] , gdc-7-m68k-linux-gnu [m68k] , g++-7-sh4-linux-gnu [sh4] , gobjc-7-sh4-linux-gnu [sh4] , gfortran-7-sh4-linux-gnu [sh4] , gnat-7-sh4-linux-gnu [sh4] , g++-7-sparc64-linux-gnu [sparc64] , gobjc-7-sparc64-linux-gnu [sparc64] , gfortran-7-sparc64-linux-gnu [sparc64] , gdc-7-sparc64-linux-gnu [sparc64] , gccgo-7-sparc64-linux-gnu [sparc64] , gnat-7-sparc64-linux-gnu [sparc64] , g++-7-s390x-linux-gnu [s390x] , gobjc-7-s390x-linux-gnu [s390x] , gfortran-7-s390x-linux-gnu [s390x] , gdc-7-s390x-linux-gnu [s390x] , gccgo-7-s390x-linux-gnu [s390x] , gnat-7-s390x-linux-gnu [s390x] , g++-7-x86-64-linux-gnux32 [x32] , gobjc-7-x86-64-linux-gnux32 [x32] , gfortran-7-x86-64-linux-gnux32 [x32] , gdc-7-x86-64-linux-gnux32 [x32] , gccgo-7-x86-64-linux-gnux32 [x32] , gnat-7-x86-64-linux-gnux32 [x32] , g++-7-mips64el-linux-gnuabin32 [mipsn32el] , gobjc-7-mips64el-linux-gnuabin32 [mipsn32el] , gfortran-7-mips64el-linux-gnuabin32 [mipsn32el] , gdc-7-mips64el-linux-gnuabin32 [mipsn32el] , gccgo-7-mips64el-linux-gnuabin32 [mipsn32el] , gnat-7-mips64el-linux-gnuabin32 [mipsn32el] , g++-7-mipsisa32r6-linux-gnu [mipsr6] , gobjc-7-mipsisa32r6-linux-gnu [mipsr6] , gfortran-7-mipsisa32r6-linux-gnu [mipsr6] , gdc-7-mipsisa32r6-linux-gnu [mipsr6] , gccgo-7-mipsisa32r6-linux-gnu [mipsr6] , gnat-7-mipsisa32r6-linux-gnu [mipsr6] , g++-7-mipsisa32r6el-linux-gnu [mipsr6el] , gobjc-7-mipsisa32r6el-linux-gnu [mipsr6el] , gfortran-7-mipsisa32r6el-linux-gnu [mipsr6el] , gdc-7-mipsisa32r6el-linux-gnu [mipsr6el] , gccgo-7-mipsisa32r6el-linux-gnu [mipsr6el] , gnat-7-mipsisa32r6el-linux-gnu [mipsr6el] , g++-7-mipsisa64r6-linux-gnuabi64 [mips64r6] , gobjc-7-mipsisa64r6-linux-gnuabi64 [mips64r6] , gfortran-7-mipsisa64r6-linux-gnuabi64 [mips64r6] , gdc-7-mipsisa64r6-linux-gnuabi64 [mips64r6] , gccgo-7-mipsisa64r6-linux-gnuabi64 [mips64r6] , gnat-7-mipsisa64r6-linux-gnuabi64 [mips64r6] , g++-7-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gobjc-7-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gfortran-7-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gdc-7-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gccgo-7-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gnat-7-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , g++-7-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gobjc-7-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gfortran-7-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gdc-7-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gccgo-7-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gnat-7-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , g++-7-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gobjc-7-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gfortran-7-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gdc-7-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gccgo-7-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gnat-7-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , +Build-Depends-Indep: doxygen (>= 1.7.2), graphviz (>= 2.2), ghostscript, texlive-latex-base, xsltproc, libxml2-utils, docbook-xsl-ns +Homepage: http://gcc.gnu.org/ +Vcs-Browser: https://salsa.debian.org/toolchain-team/gcc/tree/gcc-7-debian +Vcs-Git: https://salsa.debian.org/toolchain-team/gcc.git -b gcc-7-debian +XS-Testsuite: autopkgtest + +Package: gcc-7-base +Architecture: any +Multi-Arch: same +Section: libs +Priority: required +Depends: ${misc:Depends} +Replaces: ${base:Replaces} +Breaks: ${base:Breaks} +Description: GCC, the GNU Compiler Collection (base package) + This package contains files common to all languages and libraries + contained in the GNU Compiler Collection (GCC). + +Package: libgcc-7-dev +X-DH-Build-For-Type: target +Architecture: any +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libgcc}, ${dep:libssp}, ${dep:libgomp}, ${dep:libitm}, + ${dep:libatomic}, ${dep:libbtrace}, ${dep:libasan}, ${dep:liblsan}, + ${dep:libtsan}, ${dep:libubsan}, ${dep:libcilkrts}, ${dep:libvtv}, + ${dep:libmpx}, + ${dep:libqmath}, ${dep:libunwinddev}, ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Replaces: gccgo-7 (<< ${gcc:Version}) +Description: GCC support library (development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. + +Package: libgcc4 +X-DH-Build-For-Type: target +Architecture: hppa +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +Section: libs +Priority: required +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: GCC support library + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + +Package: libgcc4-dbg +X-DH-Build-For-Type: target +Architecture: hppa +Multi-Arch: same +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgcc4 (= ${gcc:EpochVersion}), ${misc:Depends} +Description: GCC support library (debug symbols) + Debug symbols for the GCC support library. + +Package: lib64gcc-7-dev +X-DH-Build-For-Type: target +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +Description: GCC support library (64bit development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. + +Package: lib32gcc-7-dev +X-DH-Build-For-Type: target +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +Description: GCC support library (32 bit development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. + +Package: libhfgcc-7-dev +X-DH-Build-For-Type: target +Architecture: armel +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +Description: GCC support library (hard float ABI development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. + +Package: libsfgcc-7-dev +X-DH-Build-For-Type: target +Architecture: armhf +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +Description: GCC support library (soft float ABI development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. + +Package: libn32gcc-7-dev +X-DH-Build-For-Type: target +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +Description: GCC support library (n32 development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. + +Package: libx32gcc-7-dev +X-DH-Build-For-Type: target +Architecture: amd64 i386 +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +Description: GCC support library (x32 development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. + +Package: gcc-7 +Architecture: any +Section: devel +Priority: optional +Depends: cpp-7 (= ${gcc:Version}), gcc-7-base (= ${gcc:Version}), + ${dep:libcc1}, + binutils (>= ${binutils:Version}), + ${dep:libgccdev}, ${shlibs:Depends}, ${misc:Depends} +Recommends: ${dep:libcdev} +Replaces: gccgo-7 (<< ${gcc:Version}), cpp-7 (<< 7.1.1-8) +Suggests: ${gcc:multilib}, gcc-7-doc (>= ${gcc:SoftVersion}), + gcc-7-locales (>= ${gcc:SoftVersion}), + libgcc1-dbg (>= ${libgcc:Version}), + libgomp1-dbg (>= ${gcc:Version}), + libitm1-dbg (>= ${gcc:Version}), + libatomic1-dbg (>= ${gcc:Version}), + libasan4-dbg (>= ${gcc:Version}), + liblsan0-dbg (>= ${gcc:Version}), + libtsan0-dbg (>= ${gcc:Version}), + libubsan0-dbg (>= ${gcc:Version}), + libcilkrts5-dbg (>= ${gcc:Version}), + libmpx2-dbg (>= ${gcc:Version}), + libquadmath0-dbg (>= ${gcc:Version}) +Provides: c-compiler +Description: GNU C compiler + This is the GNU C compiler, a fairly portable optimizing compiler for C. + +Package: gcc-7-multilib +Architecture: amd64 armel armhf i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), ${dep:libcbiarchdev}, ${dep:libgccbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +Description: GNU C compiler (multilib support) + This is the GNU C compiler, a fairly portable optimizing compiler for C. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: gcc-7-test-results +Architecture: any +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${misc:Depends} +Replaces: g++-5 (<< 5.2.1-28) +Description: Test results for the GCC test suite + This package contains the test results for running the GCC test suite + for a post build analysis. + +Package: gcc-7-plugin-dev +Architecture: any +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), libgmp-dev (>= 2:5.0.1~), libmpc-dev (>= 1.1), ${shlibs:Depends}, ${misc:Depends} +Description: Files for GNU GCC plugin development. + This package contains (header) files for GNU GCC plugin development. It + is only used for the development of GCC plugins, but not needed to run + plugins. + +Package: gcc-7-hppa64-linux-gnu +Architecture: hppa amd64 i386 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), + binutils-hppa64-linux-gnu | binutils-hppa64, + ${shlibs:Depends}, ${misc:Depends} +Description: GNU C compiler (cross compiler for hppa64) + This is the GNU C compiler, a fairly portable optimizing compiler for C. + +Package: cpp-7 +Architecture: any +Section: interpreters +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Suggests: gcc-7-locales (>= ${gcc:SoftVersion}) +Replaces: gccgo-7 (<< ${gcc:Version}) +Breaks: libmagics++-dev (<< 2.28.0-4), hardening-wrapper (<< 2.8+nmu3) +Description: GNU C preprocessor + A macro processor that is used automatically by the GNU C compiler + to transform programs before actual compilation. + . + This package has been separated from gcc for the benefit of those who + require the preprocessor but not the compiler. + +Package: cpp-7-doc +Architecture: all +Section: doc +Priority: optional +Depends: gcc-7-base (>= ${gcc:SoftVersion}), dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Description: Documentation for the GNU C preprocessor (cpp) + Documentation for the GNU C preprocessor in info format. + +Package: gcc-7-locales +Architecture: all +Section: devel +Priority: optional +Depends: gcc-7-base (>= ${gcc:SoftVersion}), cpp-7 (>= ${gcc:SoftVersion}), ${misc:Depends} +Recommends: gcc-7 (>= ${gcc:SoftVersion}) +Description: GCC, the GNU compiler collection (native language support files) + Native language support for GCC. Lets GCC speak your language, + if translations are available. + . + Please do NOT submit bug reports in other languages than "C". + Always reset your language settings to use the "C" locales. + +Package: g++-7 +Architecture: any +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), libstdc++-7-dev (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Provides: c++-compiler, c++abi2-dev +Suggests: ${gxx:multilib}, gcc-7-doc (>= ${gcc:SoftVersion}), libstdc++6-7-dbg (>= ${gcc:Version}) +Description: GNU C++ compiler + This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. + +Package: g++-7-multilib +Architecture: amd64 armel armhf i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), g++-7 (= ${gcc:Version}), gcc-7-multilib (= ${gcc:Version}), ${dep:libcxxbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +Suggests: ${dep:libcxxbiarchdbg} +Description: GNU C++ compiler (multilib support) + This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: libgomp1 +X-DH-Build-For-Type: target +Section: libs +Architecture: any +Provides: libgomp1-armel [armel], libgomp1-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: GCC OpenMP (GOMP) support library + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libgomp1-dbg +X-DH-Build-For-Type: target +Architecture: any +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgomp1 (= ${gcc:Version}), ${misc:Depends} +Provides: libgomp1-dbg-armel [armel], libgomp1-dbg-armhf [armhf] +Multi-Arch: same +Description: GCC OpenMP (GOMP) support library (debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib32gomp1 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: GCC OpenMP (GOMP) support library (32bit) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib32gomp1-dbg +X-DH-Build-For-Type: target +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32gomp1 (= ${gcc:Version}), ${misc:Depends} +Description: GCC OpenMP (GOMP) support library (32 bit debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib64gomp1 +X-DH-Build-For-Type: target +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: GCC OpenMP (GOMP) support library (64bit) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib64gomp1-dbg +X-DH-Build-For-Type: target +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64gomp1 (= ${gcc:Version}), ${misc:Depends} +Description: GCC OpenMP (GOMP) support library (64bit debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libn32gomp1 +X-DH-Build-For-Type: target +Section: libs +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: GCC OpenMP (GOMP) support library (n32) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libn32gomp1-dbg +X-DH-Build-For-Type: target +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libn32gomp1 (= ${gcc:Version}), ${misc:Depends} +Description: GCC OpenMP (GOMP) support library (n32 debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + +Package: libasan4 +X-DH-Build-For-Type: target +Section: libs +Architecture: any +Provides: libasan4-armel [armel], libasan4-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libasan4-dbg +X-DH-Build-For-Type: target +Architecture: any +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libasan4 (= ${gcc:Version}), ${misc:Depends} +Provides: libasan4-dbg-armel [armel], libasan4-dbg-armhf [armhf] +Multi-Arch: same +Description: AddressSanitizer -- a fast memory error detector (debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib32asan4 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: AddressSanitizer -- a fast memory error detector (32bit) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib32asan4-dbg +X-DH-Build-For-Type: target +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32asan4 (= ${gcc:Version}), ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector (32 bit debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib64asan4 +X-DH-Build-For-Type: target +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector (64bit) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib64asan4-dbg +X-DH-Build-For-Type: target +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64asan4 (= ${gcc:Version}), ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector (64bit debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +#Package: libn32asan`'ASAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: optional +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: AddressSanitizer -- a fast memory error detector (n32) +# AddressSanitizer (ASan) is a fast memory error detector. It finds +# use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +#Package: libn32asan`'ASAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: optional +#Depends: BASELDEP, libdep(asan`'ASAN_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: AddressSanitizer -- a fast memory error detector (n32 debug symbols) +# AddressSanitizer (ASan) is a fast memory error detector. It finds +# use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libx32asan4 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector (x32) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libx32asan4-dbg +X-DH-Build-For-Type: target +Architecture: amd64 i386 +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32asan4 (= ${gcc:Version}), ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector (x32 debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libhfasan4 +X-DH-Build-For-Type: target +Section: libs +Architecture: armel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: libasan4-armhf [armel] +Description: AddressSanitizer -- a fast memory error detector (hard float ABI) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libhfasan4-dbg +X-DH-Build-For-Type: target +Architecture: armel +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libhfasan4 (= ${gcc:Version}), ${misc:Depends} +Conflicts: libasan4-armel [armhf] +Description: AddressSanitizer -- a fast memory error detector (hard float ABI debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libsfasan4 +X-DH-Build-For-Type: target +Section: libs +Architecture: armhf +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector (soft float ABI) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libsfasan4-dbg +X-DH-Build-For-Type: target +Architecture: armhf +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libsfasan4 (= ${gcc:Version}), ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector (soft float ABI debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libubsan0 +X-DH-Build-For-Type: target +Section: libs +Architecture: any +Provides: libubsan0-armel [armel], libubsan0-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (runtime) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libubsan0-dbg +X-DH-Build-For-Type: target +Architecture: any +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libubsan0 (= ${gcc:Version}), ${misc:Depends} +Provides: libubsan0-dbg-armel [armel], libubsan0-dbg-armhf [armhf] +Multi-Arch: same +Description: UBSan -- undefined behaviour sanitizer (debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: lib32ubsan0 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: UBSan -- undefined behaviour sanitizer (32bit) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: lib32ubsan0-dbg +X-DH-Build-For-Type: target +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32ubsan0 (= ${gcc:Version}), ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (32 bit debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: lib64ubsan0 +X-DH-Build-For-Type: target +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (64bit) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: lib64ubsan0-dbg +X-DH-Build-For-Type: target +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64ubsan0 (= ${gcc:Version}), ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (64bit debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +#Package: libn32ubsan`'UBSAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: optional +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: UBSan -- undefined behaviour sanitizer (n32) +# UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. +# Various computations will be instrumented to detect undefined behavior +# at runtime. Available for C and C++. + +#Package: libn32ubsan`'UBSAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: optional +#Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: UBSan -- undefined behaviour sanitizer (n32 debug symbols) +# UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. +# Various computations will be instrumented to detect undefined behavior +# at runtime. Available for C and C++. + +Package: libx32ubsan0 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (x32) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libx32ubsan0-dbg +X-DH-Build-For-Type: target +Architecture: amd64 i386 +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32ubsan0 (= ${gcc:Version}), ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (x32 debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libhfubsan0 +X-DH-Build-For-Type: target +Section: libs +Architecture: armel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: libubsan0-armhf [armel] +Description: UBSan -- undefined behaviour sanitizer (hard float ABI) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libhfubsan0-dbg +X-DH-Build-For-Type: target +Architecture: armel +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libhfubsan0 (= ${gcc:Version}), ${misc:Depends} +Conflicts: libubsan0-armel [armhf] +Description: UBSan -- undefined behaviour sanitizer (hard float ABI debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libsfubsan0 +X-DH-Build-For-Type: target +Section: libs +Architecture: armhf +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (soft float ABI) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libsfubsan0-dbg +X-DH-Build-For-Type: target +Architecture: armhf +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libsfubsan0 (= ${gcc:Version}), ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (soft float ABI debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libcilkrts5 +X-DH-Build-For-Type: target +Section: libs +Architecture: any +Provides: libcilkrts5-armel [armel], libcilkrts5-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Intel Cilk Plus language extensions (runtime) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libcilkrts5-dbg +X-DH-Build-For-Type: target +Architecture: any +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libcilkrts5 (= ${gcc:Version}), ${misc:Depends} +Provides: libcilkrts5-dbg-armel [armel], libcilkrts5-dbg-armhf [armhf] +Multi-Arch: same +Description: Intel Cilk Plus language extensions (debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: lib32cilkrts5 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: Intel Cilk Plus language extensions (32bit) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: lib32cilkrts5-dbg +X-DH-Build-For-Type: target +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32cilkrts5 (= ${gcc:Version}), ${misc:Depends} +Description: Intel Cilk Plus language extensions (32 bit debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: lib64cilkrts5 +X-DH-Build-For-Type: target +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Intel Cilk Plus language extensions (64bit) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: lib64cilkrts5-dbg +X-DH-Build-For-Type: target +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64cilkrts5 (= ${gcc:Version}), ${misc:Depends} +Description: Intel Cilk Plus language extensions (64bit debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libx32cilkrts5 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Intel Cilk Plus language extensions (x32) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libx32cilkrts5-dbg +X-DH-Build-For-Type: target +Architecture: amd64 i386 +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32cilkrts5 (= ${gcc:Version}), ${misc:Depends} +Description: Intel Cilk Plus language extensions (x32 debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libhfcilkrts5 +X-DH-Build-For-Type: target +Section: libs +Architecture: armel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: libcilkrts5-armhf [armel] +Description: Intel Cilk Plus language extensions (hard float ABI) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libhfcilkrts5-dbg +X-DH-Build-For-Type: target +Architecture: armel +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libhfcilkrts5 (= ${gcc:Version}), ${misc:Depends} +Conflicts: libcilkrts5-armel [armhf] +Description: Intel Cilk Plus language extensions (hard float ABI debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libsfcilkrts5 +X-DH-Build-For-Type: target +Section: libs +Architecture: armhf +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Intel Cilk Plus language extensions (soft float ABI) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libsfcilkrts5-dbg +X-DH-Build-For-Type: target +Architecture: armhf +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libsfcilkrts5 (= ${gcc:Version}), ${misc:Depends} +Description: Intel Cilk Plus language extensions (soft float ABI debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libgccjit-7-doc +Section: doc +Architecture: all +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${misc:Depends} +Conflicts: libgccjit-5-doc, libgccjit-6-doc +Description: GCC just-in-time compilation (documentation) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. + +Package: libgccjit-7-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgccjit0 (>= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +Suggests: libgccjit-7-dbg +Description: GCC just-in-time compilation (development files) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. + +Package: gobjc++-7 +Architecture: any +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gobjc-7 (= ${gcc:Version}), g++-7 (= ${gcc:Version}), ${shlibs:Depends}, libobjc-7-dev (= ${gcc:Version}), ${misc:Depends} +Suggests: ${gobjcxx:multilib}, gcc-7-doc (>= ${gcc:SoftVersion}) +Provides: objc++-compiler +Description: GNU Objective-C++ compiler + This is the GNU Objective-C++ compiler, which compiles + Objective-C++ on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. + +Package: gobjc++-7-multilib +Architecture: amd64 armel armhf i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gobjc++-7 (= ${gcc:Version}), g++-7-multilib (= ${gcc:Version}), gobjc-7-multilib (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: GNU Objective-C++ compiler (multilib support) + This is the GNU Objective-C++ compiler, which compiles Objective-C++ on + platforms supported by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: gobjc-7 +Architecture: any +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), ${dep:libcdev}, ${shlibs:Depends}, libobjc-7-dev (= ${gcc:Version}), ${misc:Depends} +Suggests: ${gobjc:multilib}, gcc-7-doc (>= ${gcc:SoftVersion}), libobjc4-dbg (>= ${gcc:Version}) +Provides: objc-compiler +Description: GNU Objective-C compiler + This is the GNU Objective-C compiler, which compiles + Objective-C on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. + +Package: gobjc-7-multilib +Architecture: amd64 armel armhf i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gobjc-7 (= ${gcc:Version}), gcc-7-multilib (= ${gcc:Version}), ${dep:libobjcbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +Description: GNU Objective-C compiler (multilib support) + This is the GNU Objective-C compiler, which compiles Objective-C on platforms + supported by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: libobjc-7-dev +X-DH-Build-For-Type: target +Architecture: any +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgcc-7-dev (= ${gcc:Version}), libobjc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Description: Runtime library for GNU Objective-C applications (development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: lib64objc-7-dev +X-DH-Build-For-Type: target +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64gcc-7-dev (= ${gcc:Version}), lib64objc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (64bit development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: lib32objc-7-dev +X-DH-Build-For-Type: target +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32gcc-7-dev (= ${gcc:Version}), lib32objc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (32bit development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: libn32objc-7-dev +X-DH-Build-For-Type: target +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libn32gcc-7-dev (= ${gcc:Version}), libn32objc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (n32 development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: libx32objc-7-dev +X-DH-Build-For-Type: target +Architecture: amd64 i386 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32gcc-7-dev (= ${gcc:Version}), libx32objc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (x32 development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: libhfobjc-7-dev +X-DH-Build-For-Type: target +Architecture: armel +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libhfgcc-7-dev (= ${gcc:Version}), libhfobjc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (hard float ABI development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: libsfobjc-7-dev +X-DH-Build-For-Type: target +Architecture: armhf +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libsfgcc-7-dev (= ${gcc:Version}), libsfobjc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (soft float development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: gfortran-7 +Architecture: any +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), libgfortran-7-dev (= ${gcc:Version}), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Provides: fortran95-compiler, ${fortran:mod-version} +Suggests: ${gfortran:multilib}, gfortran-7-doc, + libgfortran4-dbg (>= ${gcc:Version}), + libcoarrays-dev +Description: GNU Fortran compiler + This is the GNU Fortran compiler, which compiles + Fortran on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. + +Package: gfortran-7-multilib +Architecture: amd64 armel armhf i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gfortran-7 (= ${gcc:Version}), gcc-7-multilib (= ${gcc:Version}), ${dep:libgfortranbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +Description: GNU Fortran compiler (multilib support) + This is the GNU Fortran compiler, which compiles Fortran on platforms + supported by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: gfortran-7-doc +Architecture: all +Section: doc +Priority: optional +Depends: gcc-7-base (>= ${gcc:SoftVersion}), dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Description: Documentation for the GNU Fortran compiler (gfortran) + Documentation for the GNU Fortran compiler in info format. + +Package: libgfortran-7-dev +X-DH-Build-For-Type: target +Architecture: any +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgcc-7-dev (= ${gcc:Version}), libgfortran4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Description: Runtime library for GNU Fortran applications (development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: lib64gfortran-7-dev +X-DH-Build-For-Type: target +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64gcc-7-dev (= ${gcc:Version}), lib64gfortran4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (64bit development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: lib32gfortran-7-dev +X-DH-Build-For-Type: target +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32gcc-7-dev (= ${gcc:Version}), lib32gfortran4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (32bit development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: libn32gfortran-7-dev +X-DH-Build-For-Type: target +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libn32gcc-7-dev (= ${gcc:Version}), libn32gfortran4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (n32 development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: libx32gfortran-7-dev +X-DH-Build-For-Type: target +Architecture: amd64 i386 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32gcc-7-dev (= ${gcc:Version}), libx32gfortran4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (x32 development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: libhfgfortran-7-dev +X-DH-Build-For-Type: target +Architecture: armel +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libhfgcc-7-dev (= ${gcc:Version}), libhfgfortran4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (hard float ABI development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: libsfgfortran-7-dev +X-DH-Build-For-Type: target +Architecture: armhf +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libsfgcc-7-dev (= ${gcc:Version}), libsfgfortran4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (soft float ABI development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: libgfortran4 +X-DH-Build-For-Type: target +Section: libs +Architecture: any +Provides: libgfortran4-armel [armel], libgfortran4-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libgfortran4-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: any +Provides: libgfortran4-dbg-armel [armel], libgfortran4-dbg-armhf [armhf] +Multi-Arch: same +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgfortran4 (= ${gcc:Version}), libgcc1-dbg (>= ${libgcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Fortran applications (debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: lib64gfortran4 +X-DH-Build-For-Type: target +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (64bit) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: lib64gfortran4-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64gfortran4 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Fortran applications (64bit debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: lib32gfortran4 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: Runtime library for GNU Fortran applications (32bit) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: lib32gfortran4-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32gfortran4 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Fortran applications (32 bit debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libn32gfortran4 +X-DH-Build-For-Type: target +Section: libs +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (n32) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libn32gfortran4-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libn32gfortran4 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Fortran applications (n32 debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libx32gfortran4 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (x32) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libx32gfortran4-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32gfortran4 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Fortran applications (x32 debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libhfgfortran4 +X-DH-Build-For-Type: target +Section: libs +Architecture: armel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: libgfortran4-armhf [armel] +Description: Runtime library for GNU Fortran applications (hard float ABI) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libhfgfortran4-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: armel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libhfgfortran4 (= ${gcc:Version}), ${misc:Depends} +Conflicts: libgfortran4-dbg-armhf [armel] +Description: Runtime library for GNU Fortran applications (hard float ABI debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libsfgfortran4 +X-DH-Build-For-Type: target +Section: libs +Architecture: armhf +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: libgfortran4-armel [armhf] +Description: Runtime library for GNU Fortran applications (soft float ABI) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libsfgfortran4-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: armhf +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libsfgfortran4 (= ${gcc:Version}), ${misc:Depends} +Conflicts: libgfortran4-dbg-armel [armhf] +Description: Runtime library for GNU Fortran applications (hard float ABI debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: gccgo-7 +Architecture: any +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), libgo11 (>= ${gcc:Version}), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Provides: go-compiler +Suggests: ${go:multilib}, gccgo-7-doc, libgo11-dbg (>= ${gcc:Version}) +Conflicts: ${golang:Conflicts} +Breaks: libgo11 (<< 7.2.0-18) +Replaces: libgo11 (<< 7.2.0-18) +Description: GNU Go compiler + This is the GNU Go compiler, which compiles Go on platforms supported + by the gcc compiler. It uses the gcc backend to generate optimized code. + +Package: gccgo-7-multilib +Architecture: amd64 armel armhf i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gccgo-7 (= ${gcc:Version}), gcc-7-multilib (= ${gcc:Version}), ${dep:libgobiarch}, ${shlibs:Depends}, ${misc:Depends} +Suggests: ${dep:libgobiarchdbg} +Breaks: lib32go11 (<< 7.2.0-18), + libn32go11 (<< 7.2.0-18), + libx32go11 (<< 7.2.0-18), + lib64go11 (<< 7.2.0-18) +Replaces: lib32go11 (<< 7.2.0-18), + libn32go11 (<< 7.2.0-18), + libx32go11 (<< 7.2.0-18), + lib64go11 (<< 7.2.0-18) +Description: GNU Go compiler (multilib support) + This is the GNU Go compiler, which compiles Go on platforms supported + by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: gccgo-7-doc +Architecture: all +Section: doc +Priority: optional +Depends: gcc-7-base (>= ${gcc:SoftVersion}), dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Description: Documentation for the GNU Go compiler (gccgo) + Documentation for the GNU Go compiler in info format. + +Package: libgo11 +X-DH-Build-For-Type: target +Section: libs +Architecture: any +Provides: libgo11-armel [armel], libgo11-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: libgo3, libgo8 +Description: Runtime library for GNU Go applications + Library needed for GNU Go applications linked against the + shared library. + +Package: libgo11-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: any +Provides: libgo11-dbg-armel [armel], libgo11-dbg-armhf [armhf] +Multi-Arch: same +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgo11 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Go applications (debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. + +Package: lib64go11 +X-DH-Build-For-Type: target +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: lib64go3, lib64go8 +Description: Runtime library for GNU Go applications (64bit) + Library needed for GNU Go applications linked against the + shared library. + +Package: lib64go11-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64go11 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Go applications (64bit debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. + +Package: lib32go11 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Replaces: lib32go3, lib32go8 +Description: Runtime library for GNU Go applications (32bit) + Library needed for GNU Go applications linked against the + shared library. + +Package: lib32go11-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32go11 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Go applications (32 bit debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. + +Package: libn32go11 +X-DH-Build-For-Type: target +Section: libs +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libn32go3, libn32go8 +Description: Runtime library for GNU Go applications (n32) + Library needed for GNU Go applications linked against the + shared library. + +Package: libn32go11-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libn32go11 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Go applications (n32 debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. + +Package: libx32go11 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libx32go3, libx32go8 +Description: Runtime library for GNU Go applications (x32) + Library needed for GNU Go applications linked against the + shared library. + +Package: libx32go11-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32go11 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Go applications (x32 debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. + +Package: libstdc++-7-dev +X-DH-Build-For-Type: target +Architecture: any +Multi-Arch: same +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgcc-7-dev (= ${gcc:Version}), + libstdc++6 (>= ${gcc:Version}), ${dep:libcdev}, ${misc:Depends} +Conflicts: libg++27-dev, libg++272-dev (<< 2.7.2.8-1), libstdc++2.8-dev, + libg++2.8-dev, libstdc++2.9-dev, libstdc++2.9-glibc2.1-dev, + libstdc++2.10-dev (<< 1:2.95.3-2), libstdc++3.0-dev +Suggests: libstdc++-7-doc +Provides: libstdc++-dev +Description: GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libstdc++-7-pic +X-DH-Build-For-Type: target +Architecture: any +Multi-Arch: same +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libstdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), ${misc:Depends} +Description: GNU Standard C++ Library v3 (shared library subset kit) + This is used to develop subsets of the libstdc++ shared libraries for + use on custom installation floppies and in embedded systems. + . + Unless you are making one of those, you will not need this package. + +Package: libstdc++6-7-dbg +X-DH-Build-For-Type: target +Architecture: any +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libstdc++6 (>= ${gcc:Version}), + libgcc1-dbg (>= ${libgcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Provides: libstdc++6-7-dbg-armel [armel], libstdc++6-7-dbg-armhf [armhf] +Multi-Arch: same +Recommends: libstdc++-7-dev (= ${gcc:Version}) +Conflicts: libstdc++5-dbg, libstdc++5-3.3-dbg, libstdc++6-dbg, + libstdc++6-4.0-dbg, libstdc++6-4.1-dbg, libstdc++6-4.2-dbg, + libstdc++6-4.3-dbg, libstdc++6-4.4-dbg, libstdc++6-4.5-dbg, + libstdc++6-4.6-dbg, libstdc++6-4.7-dbg, libstdc++6-4.8-dbg, + libstdc++6-4.9-dbg, libstdc++6-5-dbg, libstdc++6-6-dbg +Description: GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: lib32stdc++-7-dev +X-DH-Build-For-Type: target +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32gcc-7-dev (= ${gcc:Version}), + lib32stdc++6 (>= ${gcc:Version}), libstdc++-7-dev (= ${gcc:Version}), ${misc:Depends} +Description: GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: lib32stdc++6-7-dbg +X-DH-Build-For-Type: target +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32stdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), lib32gcc1-dbg (>= ${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +Conflicts: lib32stdc++6-dbg, lib32stdc++6-4.0-dbg, + lib32stdc++6-4.1-dbg, lib32stdc++6-4.2-dbg, lib32stdc++6-4.3-dbg, + lib32stdc++6-4.4-dbg, lib32stdc++6-4.5-dbg, lib32stdc++6-4.6-dbg, + lib32stdc++6-4.7-dbg, lib32stdc++6-4.8-dbg, lib32stdc++6-4.9-dbg, + lib32stdc++6-5-dbg, lib32stdc++6-6-dbg +Description: GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: lib64stdc++-7-dev +X-DH-Build-For-Type: target +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64gcc-7-dev (= ${gcc:Version}), + lib64stdc++6 (>= ${gcc:Version}), libstdc++-7-dev (= ${gcc:Version}), ${misc:Depends} +Description: GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: lib64stdc++6-7-dbg +X-DH-Build-For-Type: target +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64stdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), lib64gcc1-dbg (>= ${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +Conflicts: lib64stdc++6-dbg, lib64stdc++6-4.0-dbg, + lib64stdc++6-4.1-dbg, lib64stdc++6-4.2-dbg, lib64stdc++6-4.3-dbg, + lib64stdc++6-4.4-dbg, lib64stdc++6-4.5-dbg, lib64stdc++6-4.6-dbg, + lib64stdc++6-4.7-dbg, lib64stdc++6-4.8-dbg, lib64stdc++6-4.9-dbg, + lib64stdc++6-5-dbg, lib64stdc++6-6-dbg +Description: GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: libn32stdc++-7-dev +X-DH-Build-For-Type: target +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libn32gcc-7-dev (= ${gcc:Version}), + libn32stdc++6 (>= ${gcc:Version}), libstdc++-7-dev (= ${gcc:Version}), ${misc:Depends} +Description: GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libn32stdc++6-7-dbg +X-DH-Build-For-Type: target +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libn32stdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), libn32gcc1-dbg (>= ${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +Conflicts: libn32stdc++6-dbg, libn32stdc++6-4.0-dbg, + libn32stdc++6-4.1-dbg, libn32stdc++6-4.2-dbg, libn32stdc++6-4.3-dbg, + libn32stdc++6-4.4-dbg, libn32stdc++6-4.5-dbg, libn32stdc++6-4.6-dbg, + libn32stdc++6-4.7-dbg, libn32stdc++6-4.8-dbg, libn32stdc++6-4.9-dbg, + libn32stdc++6-5-dbg, libn32stdc++6-6-dbg +Description: GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: libx32stdc++-7-dev +X-DH-Build-For-Type: target +Architecture: amd64 i386 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32gcc-7-dev (= ${gcc:Version}), libx32stdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), ${misc:Depends} +Description: GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libx32stdc++6-7-dbg +X-DH-Build-For-Type: target +Architecture: amd64 i386 +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32stdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), libx32gcc1-dbg (>= ${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +Conflicts: libx32stdc++6-dbg, libx32stdc++6-4.6-dbg, + libx32stdc++6-4.7-dbg, libx32stdc++6-4.8-dbg, libx32stdc++6-4.9-dbg, + libx32stdc++6-5-dbg, libx32stdc++6-6-dbg +Description: GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: libhfstdc++-7-dev +X-DH-Build-For-Type: target +Architecture: armel +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libhfgcc-7-dev (= ${gcc:Version}), + libhfstdc++6 (>= ${gcc:Version}), libstdc++-7-dev (= ${gcc:Version}), ${misc:Depends} +Description: GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libhfstdc++6-7-dbg +X-DH-Build-For-Type: target +Architecture: armel +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libhfstdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), libhfgcc1-dbg (>= ${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +Conflicts: libhfstdc++6-dbg, libhfstdc++6-4.3-dbg, libhfstdc++6-4.4-dbg, libhfstdc++6-4.5-dbg, libhfstdc++6-4.6-dbg, libhfstdc++6-4.7-dbg, libhfstdc++6-4.8-dbg, libhfstdc++6-4.9-dbg, libhfstdc++6-5-dbg, libhfstdc++6-6-dbg, libstdc++6-armhf [armel] +Description: GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: libsfstdc++-7-dev +X-DH-Build-For-Type: target +Architecture: armhf +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libsfgcc-7-dev (= ${gcc:Version}), + libsfstdc++6 (>= ${gcc:Version}), libstdc++-7-dev (= ${gcc:Version}), ${misc:Depends} +Description: GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libsfstdc++6-7-dbg +X-DH-Build-For-Type: target +Architecture: armhf +Section: debug +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libsfstdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), libsfgcc1-dbg (>= ${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +Conflicts: libsfstdc++6-dbg, libsfstdc++6-4.3-dbg, libsfstdc++6-4.4-dbg, libsfstdc++6-4.5-dbg, libsfstdc++6-4.6-dbg, libsfstdc++6-4.7-dbg, libsfstdc++6-4.8-dbg, libsfstdc++6-4.9-dbg, libsfstdc++6-5-dbg, libhfstdc++6-6-dbg, libstdc++6-armel [armhf] +Description: GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: libstdc++-7-doc +Architecture: all +Section: doc +Priority: optional +Depends: gcc-7-base (>= ${gcc:SoftVersion}), ${misc:Depends} +Conflicts: libstdc++5-doc, libstdc++5-3.3-doc, libstdc++6-doc, + libstdc++6-4.0-doc, libstdc++6-4.1-doc, libstdc++6-4.2-doc, libstdc++6-4.3-doc, + libstdc++6-4.4-doc, libstdc++6-4.5-doc, libstdc++6-4.6-doc, libstdc++6-4.7-doc, + libstdc++-4.8-doc, libstdc++-4.9-doc, libstdc++-5-doc, libstdc++-6-doc +Description: GNU Standard C++ Library v3 (documentation files) + This package contains documentation files for the GNU stdc++ library. + . + One set is the distribution documentation, the other set is the + source documentation including a namespace list, class hierarchy, + alphabetical list, compound list, file list, namespace members, + compound members and file members. + +Package: gnat-7 +Architecture: any +Priority: optional +Pre-Depends: ${misc:Pre-Depends} +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (>= ${gcc:SoftVersion}), ${dep:libgnat}, ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Suggests: gnat-7-doc, ada-reference-manual-2012, gnat-7-sjlj +Breaks: gnat (<< 4.6.1), dh-ada-library (<< 6.0), gnat-4.6-base (= 4.6.4-2), + gnat-4.9-base (= 4.9-20140330-1) +Replaces: gnat (<< 4.6.1), dh-ada-library (<< 6.0), gnat-4.6-base (= 4.6.4-2), + gnat-4.9-base (= 4.9-20140330-1) +# Takes over symlink from gnat (<< 4.6.1): /usr/bin/gnatgcc. +# Takes over file from dh-ada-library (<< 6.0): debian_packaging.mk. +# g-base 4.6.4-2, 4.9-20140330-1 contain debian_packaging.mk by mistake. +# Newer versions of gnat and dh-ada-library will not provide these files. +Conflicts: gnat (<< 4.1), gnat-3.1, gnat-3.2, gnat-3.3, gnat-3.4, gnat-3.5, + gnat-4.0, gnat-4.1, gnat-4.2, gnat-4.3, gnat-4.4, gnat-4.6, gnat-4.7, gnat-4.8, + gnat-4.9, gnat-5, gnat-6 +# These other packages will continue to provide /usr/bin/gnatmake and +# other files. +Description: GNU Ada compiler + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + This package provides the compiler, tools and runtime library that handles + exceptions using the default zero-cost mechanism. + +Package: gnat-7-sjlj +Architecture: any +Priority: optional +Pre-Depends: ${misc:Pre-Depends} +Depends: gcc-7-base (= ${gcc:Version}), gnat-7 (= ${gnat:Version}), ${misc:Depends} +Description: GNU Ada compiler (setjump/longjump runtime library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + This package provides an alternative runtime library that handles + exceptions using the setjump/longjump mechanism (as a static library + only). You can install it to supplement the normal compiler. + +Package: libgnat-7 +X-DH-Build-For-Type: target +Section: libs +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: runtime for applications compiled with GNAT (shared library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the runtime shared library. + +Package: libgnat-7-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgnat-7 (= ${gnat:Version}), ${misc:Depends} +Description: runtime for applications compiled with GNAT (debugging symbols) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the debugging symbols. + +Package: libgnatvsn7-dev +X-DH-Build-For-Type: target +Section: libdevel +Architecture: any +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gnat-7 (= ${gnat:Version}), + libgnatvsn7 (= ${gnat:Version}), ${misc:Depends} +Conflicts: libgnatvsn-dev (<< 7), + libgnatvsn4.1-dev, libgnatvsn4.3-dev, libgnatvsn4.4-dev, + libgnatvsn4.5-dev, libgnatvsn4.6-dev, libgnatvsn4.9-dev, + libgnatvsn5-dev, libgnatvsn6-dev, +Description: GNU Ada compiler selected components (development files) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnatvsn library exports selected GNAT components for use in other + packages, most notably ASIS tools. It is licensed under the GNAT-Modified + GPL, allowing to link proprietary programs with it. + . + This package contains the development files and static library. + +Package: libgnatvsn7 +X-DH-Build-For-Type: target +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Section: libs +Depends: gcc-7-base (= ${gcc:Version}), libgnat-7 (= ${gnat:Version}), + ${shlibs:Depends}, ${misc:Depends} +Description: GNU Ada compiler selected components (shared library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnatvsn library exports selected GNAT components for use in other + packages, most notably ASIS tools. It is licensed under the GNAT-Modified + GPL, allowing to link proprietary programs with it. + . + This package contains the runtime shared library. + +Package: libgnatvsn7-dbg +X-DH-Build-For-Type: target +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Section: debug +Depends: gcc-7-base (= ${gcc:Version}), libgnatvsn7 (= ${gnat:Version}), ${misc:Depends} +Suggests: gnat +Description: GNU Ada compiler selected components (debugging symbols) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnatvsn library exports selected GNAT components for use in other + packages, most notably ASIS tools. It is licensed under the GNAT-Modified + GPL, allowing to link proprietary programs with it. + . + This package contains the debugging symbols. + +Package: gnat-7-doc +Architecture: all +Section: doc +Priority: optional +Depends: dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Suggests: gnat-7 +Conflicts: gnat-4.1-doc, gnat-4.2-doc, + gnat-4.3-doc, gnat-4.4-doc, + gnat-4.6-doc, gnat-4.9-doc, + gnat-5-doc, gnat-6-doc, +Description: GNU Ada compiler (documentation) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the documentation in info format. + +Package: gdc-7 +Architecture: any +Priority: optional +Depends: gcc-7-base (>= ${gcc:SoftVersion}), g++-7 (>= ${gcc:SoftVersion}), ${dep:gdccross}, ${dep:phobosdev}, ${shlibs:Depends}, ${misc:Depends} +Provides: gdc, d-compiler, d-v2-compiler +Replaces: gdc (<< 4.4.6-5) +Description: GNU D compiler (version 2) + This is the GNU D compiler, which compiles D on platforms supported by gcc. + It uses the gcc backend to generate optimised code. + . + This compiler supports D language version 2. + +Package: gdc-7-multilib +Architecture: any +Priority: optional +Depends: gcc-7-base (>= ${gcc:SoftVersion}), gdc-7 (= ${gcc:Version}), gcc-7-multilib (= ${gcc:Version}), ${dep:libphobosbiarchdev}${shlibs:Depends}, ${misc:Depends} +Description: GNU D compiler (version 2, multilib support) + This is the GNU D compiler, which compiles D on platforms supported by gcc. + It uses the gcc backend to generate optimised code. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: libgphobos-7-dev +X-DH-Build-For-Type: target +Architecture: amd64 armel armhf i386 x32 kfreebsd-amd64 kfreebsd-i386 +Multi-Arch: same +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgphobos71 (>= ${gdc:Version}), + zlib1g-dev, ${shlibs:Depends}, ${misc:Depends} +Description: Phobos D standard library + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libgphobos71 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 armel armhf i386 x32 kfreebsd-amd64 kfreebsd-i386 +Multi-Arch: same +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: libgphobos68 +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libgphobos71-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: amd64 armel armhf i386 x32 kfreebsd-amd64 kfreebsd-i386 +Multi-Arch: same +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgphobos71 (= ${gdc:Version}), ${misc:Depends} +Replaces: libgphobos68-dbg +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib64gphobos-7-dev +X-DH-Build-For-Type: target +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64gphobos71 (>= ${gdc:Version}), + lib64gcc-7-dev (= ${gcc:Version}), lib64z1-dev, ${shlibs:Depends}, ${misc:Depends} +Description: Phobos D standard library (64bit development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib64gphobos71 +X-DH-Build-For-Type: target +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: lib64gphobos68 +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib64gphobos71-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64gphobos71 (= ${gdc:Version}), ${misc:Depends} +Replaces: lib64gphobos68-dbg +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib32gphobos-7-dev +X-DH-Build-For-Type: target +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32gphobos71 (>= ${gdc:Version}), + lib32gcc-7-dev (= ${gcc:Version}), lib32z1-dev, ${shlibs:Depends}, ${misc:Depends} +Description: Phobos D standard library (32bit development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib32gphobos71 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: lib32gphobos68 +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib32gphobos71-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32gphobos71 (= ${gdc:Version}), ${misc:Depends} +Replaces: lib32gphobos68-dbg +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libx32gphobos-7-dev +X-DH-Build-For-Type: target +Architecture: amd64 i386 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32gphobos71 (>= ${gdc:Version}), + libx32gcc-7-dev (= ${gcc:Version}), ${dep:libx32z}, ${shlibs:Depends}, ${misc:Depends} +Description: Phobos D standard library (x32 development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libx32gphobos71 +X-DH-Build-For-Type: target +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: libx32gphobos68 +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libx32gphobos71-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32gphobos71 (= ${gdc:Version}), ${misc:Depends} +Replaces: libx32gphobos68-dbg +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libhfgphobos-7-dev +X-DH-Build-For-Type: target +Architecture: armel +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libhfgphobos71 (>= ${gdc:Version}), + libhfgcc-7-dev (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Phobos D standard library (hard float ABI development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libhfgphobos71 +X-DH-Build-For-Type: target +Section: libs +Architecture: armel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: libhfgphobos68 +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libhfgphobos71-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: armel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libhfgphobos71 (= ${gdc:Version}), ${misc:Depends} +Replaces: libhfgphobos68-dbg +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libsfgphobos-7-dev +X-DH-Build-For-Type: target +Architecture: armhf +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libsfgphobos71 (>= ${gdc:Version}), + libsfgcc-7-dev (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Phobos D standard library (soft float ABI development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libsfgphobos71 +X-DH-Build-For-Type: target +Section: libs +Architecture: armhf +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: libsfgphobos68 +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libsfgphobos71-dbg +X-DH-Build-For-Type: target +Section: debug +Architecture: armhf +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libsfgphobos71 (= ${gdc:Version}), ${misc:Depends} +Replaces: libsfgphobos68-dbg +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: gccbrig-7 +Architecture: any +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), ${dep:libcdev}, + hsail-tools, + ${shlibs:Depends}, libhsail-rt-7-dev (= ${gcc:Version}), ${misc:Depends} +Suggests: ${gccbrig:multilib}, + libhsail-rt0-dbg (>= ${gcc:Version}) +Provides: brig-compiler +Description: GNU BRIG (HSA IL) frontend + This is the GNU BRIG (HSA IL) frontend. + The consumed format is a binary representation. The textual HSAIL + can be compiled to it with a separate assembler. + +Package: libhsail-rt-7-dev +X-DH-Build-For-Type: target +Architecture: any +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgcc-7-dev (= ${gcc:Version}), libhsail-rt0 (>= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Description: HSAIL runtime library (development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +#Package: gcc`'PV-soft-float +#Architecture: arm armel armhf +#Priority: PRI(optional) +#Depends: BASEDEP, depifenabled(`cdev',`gcc`'PV (= ${gcc:Version}),') ${shlibs:Depends}, ${misc:Depends} +#Conflicts: gcc-4.4-soft-float, gcc-4.5-soft-float, gcc-4.6-soft-float +#BUILT_USING`'dnl +#Description: GCC soft-floating-point gcc libraries (ARM) +# These are versions of basic static libraries such as libgcc.a compiled +# with the -msoft-float option, for CPUs without a floating-point unit. + +Package: gcc-7-doc +Architecture: all +Section: doc +Priority: optional +Depends: gcc-7-base (>= ${gcc:SoftVersion}), dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Conflicts: gcc-docs (<< 2.95.2) +Replaces: gcc (<=2.7.2.3-4.3), gcc-docs (<< 2.95.2) +Description: Documentation for the GNU compilers (gcc, gobjc, g++) + Documentation for the GNU compilers in info format. + +Package: gcc-7-offload-nvptx +Architecture: amd64 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), ${dep:libcdev}, + nvptx-tools, libgomp-plugin-nvptx1 (>= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +Description: GCC offloading compiler to NVPTX + The package provides offloading support for NVidia PTX. OpenMP and OpenACC + programs linked with -fopenmp will by default add PTX code into the binaries, + which can be offloaded to NVidia PTX capable devices if available. + +Package: libgomp-plugin-nvptx1 +Architecture: amd64 +Multi-Arch: same +Section: libs +Depends: gcc-7-base (= ${gcc:Version}), libgomp1, ${shlibs:Depends}, ${misc:Depends} +Suggests: libcuda1 +Description: GCC OpenMP v4.5 plugin for offloading to NVPTX + This package contains libgomp plugin for offloading to NVidia + PTX. The plugin needs libcuda.so.1 shared library that has to be + installed separately. + +Package: gcc-7-source +Multi-Arch: foreign +Architecture: all +Priority: optional +Depends: make, autoconf2.64, quilt, patchutils, sharutils, gawk, lsb-release, + ${misc:Depends} +Description: Source of the GNU Compiler Collection + This package contains the sources and patches which are needed to + build the GNU Compiler Collection (GCC). --- gcc-7-7.5.0.orig/debian/control.m4 +++ gcc-7-7.5.0/debian/control.m4 @@ -0,0 +1,5857 @@ +divert(-1) + +define(`checkdef',`ifdef($1, , `errprint(`error: undefined macro $1 +')m4exit(1)')') +define(`errexit',`errprint(`error: undefined macro `$1' +')m4exit(1)') + +dnl The following macros must be defined, when called: +dnl ifdef(`SRCNAME', , errexit(`SRCNAME')) +dnl ifdef(`PV', , errexit(`PV')) +dnl ifdef(`ARCH', , errexit(`ARCH')) + +dnl The architecture will also be defined (-D__i386__, -D__powerpc__, etc.) + +define(`PN', `$1') +ifdef(`PRI', `', ` + define(`PRI', `$1') +') +define(`MAINTAINER', `Debian GCC Maintainers ') + +define(`depifenabled', `ifelse(index(enabled_languages, `$1'), -1, `', `$2')') +define(`ifenabled', `ifelse(index(enabled_languages, `$1'), -1, `dnl', `$2')') + +ifdef(`TARGET',`ifdef(`CROSS_ARCH',`',`undefine(`MULTIARCH')')') +define(`CROSS_ARCH', ifdef(`CROSS_ARCH', CROSS_ARCH, `all')) +define(`libdep', `lib$2$1`'LS`'AQ (ifelse(`$3',`',`>=',`$3') ifelse(`$4',`',`${gcc:Version}',`$4'))') +define(`libdevdep', `lib$2$1`'LS`'AQ (ifelse(`$3',`',`=',`$3') ifelse(`$4',`',`${gcc:Version}',`$4'))') +define(`libidevdep', `lib$2$1`'LS`'AQ (ifelse(`$3',`',`=',`$3') ifelse(`$4',`',`${gcc:Version}',`$4'))') +ifdef(`TARGET',`ifelse(CROSS_ARCH,`all',` +define(`libidevdep', `lib$2$1`'LS`'AQ (>= ifelse(`$4',`',`${gcc:SoftVersion}',`$4'))') +')') +define(`libdbgdep', `lib$2$1`'LS`'AQ (ifelse(`$3',`',`>=',`$3') ifelse(`$4',`',`${gcc:Version}',`$4'))') + +define(`BUILT_USING', ifelse(add_built_using,yes,`Built-Using: ${Built-Using} +')) +define(`TARGET_PACKAGE',`X-DH-Build-For-Type: target +') + +divert`'dnl +dnl -------------------------------------------------------------------------- +Source: SRCNAME +Section: devel +Priority: PRI(optional) +ifelse(DIST,`Ubuntu',`dnl +ifelse(regexp(SRCNAME, `gnat\|gdc-'),0,`dnl +Maintainer: Ubuntu MOTU Developers +', `dnl +Maintainer: Ubuntu Core developers +')dnl SRCNAME +XSBC-Original-Maintainer: MAINTAINER +', `dnl +Maintainer: MAINTAINER +')dnl DIST +ifelse(regexp(SRCNAME, `gnat'),0,`dnl +Uploaders: Ludovic Brenta +', regexp(SRCNAME, `gdc'),0,`dnl +Uploaders: Iain Buclaw , Matthias Klose +', `dnl +Uploaders: Matthias Klose +')dnl SRCNAME +Standards-Version: 4.4.1 +ifdef(`TARGET',`dnl cross +Build-Depends: DEBHELPER_BUILD_DEP DPKG_BUILD_DEP + LIBC_BUILD_DEP, LIBC_BIARCH_BUILD_DEP + kfreebsd-kernel-headers (>= 0.84) [kfreebsd-any], linux-libc-dev [m68k], + dwz, LIBUNWIND_BUILD_DEP LIBATOMIC_OPS_BUILD_DEP AUTO_BUILD_DEP + SOURCE_BUILD_DEP CROSS_BUILD_DEP + ISL_BUILD_DEP MPC_BUILD_DEP MPFR_BUILD_DEP GMP_BUILD_DEP, + zlib1g-dev, gawk, lzma, xz-utils, patchutils, + pkg-config, libgc-dev, + zlib1g-dev, SDT_BUILD_DEP + bison (>= 1:2.3), flex, coreutils (>= 2.26) | realpath (>= 1.9.12), lsb-release, quilt +',`dnl native +Build-Depends: DEBHELPER_BUILD_DEP DPKG_BUILD_DEP GCC_MULTILIB_BUILD_DEP + LIBC_BUILD_DEP, LIBC_BIARCH_BUILD_DEP LIBC_DBG_DEP + kfreebsd-kernel-headers (>= 0.84) [kfreebsd-any], linux-libc-dev [m68k], + AUTO_BUILD_DEP BASE_BUILD_DEP + dwz, libunwind8-dev [ia64], libatomic-ops-dev [ia64], + gawk, lzma, xz-utils, patchutils, + zlib1g-dev, SDT_BUILD_DEP + BINUTILS_BUILD_DEP, + gperf (>= 3.0.1), bison (>= 1:2.3), flex, gettext, + gdb`'NT [!riscv64], OFFLOAD_BUILD_DEP + texinfo (>= 4.3), locales, sharutils, + procps, FORTRAN_BUILD_DEP GNAT_BUILD_DEP GO_BUILD_DEP GDC_BUILD_DEP + ISL_BUILD_DEP MPC_BUILD_DEP MPFR_BUILD_DEP GMP_BUILD_DEP PHOBOS_BUILD_DEP + CHECK_BUILD_DEP coreutils (>= 2.26) | realpath (>= 1.9.12), chrpath, lsb-release, quilt, + pkg-config, libgc-dev, + TARGET_TOOL_BUILD_DEP +Build-Depends-Indep: LIBSTDCXX_BUILD_INDEP +')dnl +ifelse(regexp(SRCNAME, `gnat'),0,`dnl +Homepage: http://gcc.gnu.org/ +', regexp(SRCNAME, `gdc'),0,`dnl +Homepage: http://gdcproject.org/ +', `dnl +Homepage: http://gcc.gnu.org/ +')dnl SRCNAME +Vcs-Browser: https://salsa.debian.org/toolchain-team/gcc/tree/gcc-7-debian +Vcs-Git: https://salsa.debian.org/toolchain-team/gcc.git -b gcc-7-debian +XS-Testsuite: autopkgtest + +ifelse(regexp(SRCNAME, `gcc-snapshot'),0,`dnl +Package: gcc-snapshot`'TS +Architecture: any +Section: devel +Priority: optional +Depends: binutils`'TS (>= ${binutils:Version}), ${dep:libcbiarchdev}, ${dep:libcdev}, ${dep:libunwinddev}, ${snap:depends}, ${shlibs:Depends}, ${dep:ecj}, python, ${misc:Depends} +Recommends: ${snap:recommends} +Suggests: ${dep:gold} +Provides: c++-compiler`'TS`'ifdef(`TARGET',`',`, c++abi2-dev') +BUILT_USING`'dnl +Description: SNAPSHOT of the GNU Compiler Collection + This package contains a recent development SNAPSHOT of all files + contained in the GNU Compiler Collection (GCC). + . + The source code for this package has been exported from SVN trunk. + . + DO NOT USE THIS SNAPSHOT FOR BUILDING DEBIAN PACKAGES! + . + This package will NEVER hit the testing distribution. It is used for + tracking gcc bugs submitted to the Debian BTS in recent development + versions of gcc. +',`dnl gcc-X.Y + +dnl default base package dependencies +define(`BASEDEP', `gcc`'PV`'TS-base (= ${gcc:Version})') +define(`SOFTBASEDEP', `gcc`'PV`'TS-base (>= ${gcc:SoftVersion})') + +ifdef(`TARGET',` +define(`BASELDEP', `gcc`'PV`'ifelse(CROSS_ARCH,`all',`-cross')-base`'GCC_PORTS_BUILD (= ${gcc:Version})') +define(`SOFTBASELDEP', `gcc`'PV`'ifelse(CROSS_ARCH, `all',`-cross')-base`'GCC_PORTS_BUILD (>= ${gcc:SoftVersion})') +',`dnl +define(`BASELDEP', `BASEDEP') +define(`SOFTBASELDEP', `SOFTBASEDEP') +') + +ifelse(index(SRCNAME, `gnat'), 0, ` +define(`BASEDEP', `gnat`'PV-base (= ${gnat:Version})') +define(`SOFTBASEDEP', `gnat`'PV-base (>= ${gnat:SoftVersion})') +') + +ifenabled(`gccbase',` +Package: gcc`'PV`'TS-base +Architecture: any +Multi-Arch: same +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`optional',`PRI(required)') +Depends: ${misc:Depends} +Replaces: ${base:Replaces} +Breaks: ${base:Breaks} +BUILT_USING`'dnl +Description: GCC, the GNU Compiler Collection (base package) + This package contains files common to all languages and libraries + contained in the GNU Compiler Collection (GCC). +ifdef(`BASE_ONLY', `dnl + . + This version of GCC is not yet available for this architecture. + Please use the compilers from the gcc-snapshot package for testing. +')`'dnl +')`'dnl gccbase + +ifenabled(`gcclbase',` +Package: gcc`'PV-cross-base`'GCC_PORTS_BUILD +Architecture: all +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`optional',`PRI(required)') +Depends: ${misc:Depends} +BUILT_USING`'dnl +Description: GCC, the GNU Compiler Collection (library base package) + This empty package contains changelog and copyright files common to + all libraries contained in the GNU Compiler Collection (GCC). +ifdef(`BASE_ONLY', `dnl + . + This version of GCC is not yet available for this architecture. + Please use the compilers from the gcc-snapshot package for testing. +')`'dnl +')`'dnl gcclbase + +ifenabled(`gnatbase',` +Package: gnat`'PV-base`'TS +Architecture: any +# "all" causes build instabilities for "any" dependencies (see #748388). +Section: libs +Priority: PRI(optional) +Depends: ${misc:Depends} +Breaks: gcc-4.6 (<< 4.6.1-8~) +BUILT_USING`'dnl +Description: GNU Ada compiler (common files) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + This package contains files common to all GNAT related packages. +')`'dnl gnatbase + +ifenabled(`libgcc',` +Package: libgcc1`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`optional',required) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Provides: ifdef(`TARGET',`libgcc1-TARGET-dcv1',`libgcc1-armel [armel], libgcc1-armhf [armhf]') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +')`'dnl +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET',` (TARGET)', `') + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libgcc1-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gcc1,,=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libgcc1-dbg-armel [armel], libgcc1-dbg-armhf [armhf] +')dnl +ifdef(`MULTIARCH',`Multi-Arch: same +')dnl +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libgcc2`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`m68k') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`optional',required) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libgcc2-TARGET-dcv1 +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +')`'dnl +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET',` (TARGET)', `') + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libgcc2-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`m68k') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gcc2,,=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libgcc + +ifenabled(`cdev',` +Package: libgcc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgcc}, ${dep:libssp}, ${dep:libgomp}, ${dep:libitm}, + ${dep:libatomic}, ${dep:libbtrace}, ${dep:libasan}, ${dep:liblsan}, + ${dep:libtsan}, ${dep:libubsan}, ${dep:libcilkrts}, ${dep:libvtv}, + ${dep:libmpx}, + ${dep:libqmath}, ${dep:libunwinddev}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Replaces: gccgo-7 (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl libgcc + +Package: libgcc4`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`hppa') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +')`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`optional',required) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET',` (TARGET)', `') + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libgcc4-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`hppa') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gcc4,,=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +ifenabled(`lib64gcc',` +Package: lib64gcc1`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${misc:Depends} +ifdef(`TARGET',`Provides: lib64gcc1-TARGET-dcv1 +',`')`'dnl +Conflicts: libdep(gcc`'GCC_SO,,<=,1:3.3-0pre9) +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET',` (TARGET)', `') (64bit) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: lib64gcc1-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gcc1,64,=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl lib64gcc + +ifenabled(`cdev',` +Package: lib64gcc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (64bit development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl cdev + +ifenabled(`lib32gcc',` +Package: lib32gcc1`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${misc:Depends} +Conflicts: ${confl:lib32} +ifdef(`TARGET',`Provides: lib32gcc1-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GCC support library (32 bit Version) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: lib32gcc1-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gcc1,32,=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl lib32gcc1 + +ifenabled(`cdev',` +Package: lib32gcc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (32 bit development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl cdev + +ifenabled(`libneongcc',` +Package: libgcc1-neon`'LS +TARGET_PACKAGE`'dnl +Architecture: NEON_ARCHS +Section: libs +Priority: optional +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library [neon optimized] + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneongcc1 + +ifenabled(`libhfgcc',` +Package: libhfgcc1`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${misc:Depends} +ifdef(`TARGET',`Provides: libhfgcc1-TARGET-dcv1 +',`Conflicts: libgcc1-armhf [biarchhf_archs] +')`'dnl +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET',` (TARGET)', `') (hard float ABI) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libhfgcc1-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gcc1,hf,=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgcc1-dbg-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libhfgcc + +ifenabled(`cdev',` +ifenabled(`armml',` +Package: libhfgcc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (hard float ABI development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl armml +')`'dnl cdev + +ifenabled(`libsfgcc',` +Package: libsfgcc1`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${misc:Depends} +ifdef(`TARGET',`Provides: libsfgcc1-TARGET-dcv1 +',`Conflicts: libgcc1-armel [biarchsf_archs] +')`'dnl +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET',` (TARGET)', `') (soft float ABI) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libsfgcc1-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gcc1,sf,=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgcc1-dbg-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libsfgcc + +ifenabled(`cdev',` +ifenabled(`armml',` +Package: libsfgcc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (soft float ABI development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl armml +')`'dnl cdev + +ifenabled(`libn32gcc',` +Package: libn32gcc1`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${misc:Depends} +Conflicts: libdep(gcc`'GCC_SO,,<=,1:3.3-0pre9) +ifdef(`TARGET',`Provides: libn32gcc1-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET',` (TARGET)', `') (n32) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libn32gcc1-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gcc1,n32,=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libn32gcc + +ifenabled(`cdev',` +Package: libn32gcc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (n32 development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl cdev + +ifenabled(`libx32gcc',` +Package: libx32gcc1`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${misc:Depends} +ifdef(`TARGET',`Provides: libx32gcc1-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET',` (TARGET)', `') (x32) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libx32gcc1-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gcc1,x32,=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libx32gcc + +ifenabled(`cdev',` +ifenabled(`x32dev',` +Package: libx32gcc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (x32 development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl x32dev +')`'dnl cdev + +ifenabled(`cdev',` +Package: gcc`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: optional +Depends: cpp`'PV`'TS (= ${gcc:Version}),ifenabled(`gccbase',` BASEDEP,') + ifenabled(`gccxbase',` BASEDEP,') + ${dep:libcc1}, + binutils`'TS (>= ${binutils:Version}), + ${dep:libgccdev}, ${shlibs:Depends}, ${misc:Depends} +Recommends: ${dep:libcdev} +Replaces: gccgo-7 (<< ${gcc:Version}), cpp`'PV`'TS (<< 7.1.1-8) +Suggests: ${gcc:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}), + gcc`'PV-locales (>= ${gcc:SoftVersion}), + libdbgdep(gcc`'GCC_SO-dbg,,>=,${libgcc:Version}), + libdbgdep(gomp`'GOMP_SO-dbg,), + libdbgdep(itm`'ITM_SO-dbg,), + libdbgdep(atomic`'ATOMIC_SO-dbg,), + libdbgdep(asan`'ASAN_SO-dbg,), + libdbgdep(lsan`'LSAN_SO-dbg,), + libdbgdep(tsan`'TSAN_SO-dbg,), + libdbgdep(ubsan`'UBSAN_SO-dbg,), +ifenabled(`libvtv',`',` + libdbgdep(vtv`'VTV_SO-dbg,), +')`'dnl + libdbgdep(cilkrts`'CILKRTS_SO-dbg,), + libdbgdep(mpx`'MPX_SO-dbg,), + libdbgdep(quadmath`'QMATH_SO-dbg,) +Provides: c-compiler`'TS +ifdef(`TARGET',`Conflicts: gcc-multilib +')`'dnl +BUILT_USING`'dnl +Description: GNU C compiler`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') + This is the GNU C compiler, a fairly portable optimizing compiler for C. +ifdef(`TARGET', `dnl + . + This package contains C cross-compiler for TARGET architecture. +')`'dnl + +ifenabled(`multilib',` +Package: gcc`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: optional +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), ${dep:libcbiarchdev}, ${dep:libgccbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU C compiler (multilib support)`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') + This is the GNU C compiler, a fairly portable optimizing compiler for C. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib + +ifenabled(`testresults',` +Package: gcc`'PV-test-results +Architecture: any +Section: devel +Priority: optional +Depends: BASEDEP, ${misc:Depends} +Replaces: g++-5 (<< 5.2.1-28) +BUILT_USING`'dnl +Description: Test results for the GCC test suite + This package contains the test results for running the GCC test suite + for a post build analysis. +')`'dnl testresults + +ifenabled(`plugindev',` +Package: gcc`'PV-plugin-dev`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: optional +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), GMP_BUILD_DEP MPC_BUILD_DEP ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Files for GNU GCC plugin development. + This package contains (header) files for GNU GCC plugin development. It + is only used for the development of GCC plugins, but not needed to run + plugins. +')`'dnl plugindev +')`'dnl cdev + +ifenabled(`cdev',` +Package: gcc`'PV-hppa64-linux-gnu +Architecture: ifdef(`TARGET',`any',hppa amd64 i386 x32) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: PRI(optional) +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), + binutils-hppa64-linux-gnu | binutils-hppa64, + ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU C compiler (cross compiler for hppa64) + This is the GNU C compiler, a fairly portable optimizing compiler for C. +')`'dnl cdev + +ifenabled(`cdev',` +Package: cpp`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: ifdef(`TARGET',`devel',`interpreters') +Priority: optional +Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends} +Suggests: gcc`'PV-locales (>= ${gcc:SoftVersion}) +Replaces: gccgo-7 (<< ${gcc:Version}) +Breaks: libmagics++-dev (<< 2.28.0-4)ifdef(`TARGET',`',`, hardening-wrapper (<< 2.8+nmu3)') +BUILT_USING`'dnl +Description: GNU C preprocessor + A macro processor that is used automatically by the GNU C compiler + to transform programs before actual compilation. + . + This package has been separated from gcc for the benefit of those who + require the preprocessor but not the compiler. +ifdef(`TARGET', `dnl + . + This package contains preprocessor configured for TARGET architecture. +')`'dnl + +ifdef(`TARGET', `', ` +ifenabled(`gfdldoc',` +Package: cpp`'PV-doc +Architecture: all +Section: doc +Priority: PRI(optional) +Depends: gcc`'PV-base (>= ${gcc:SoftVersion}), dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Description: Documentation for the GNU C preprocessor (cpp) + Documentation for the GNU C preprocessor in info `format'. +')`'dnl gfdldoc +')`'dnl native + +ifdef(`TARGET', `', ` +Package: gcc`'PV-locales +Architecture: all +Section: devel +Priority: PRI(optional) +Depends: SOFTBASEDEP, cpp`'PV (>= ${gcc:SoftVersion}), ${misc:Depends} +Recommends: gcc`'PV (>= ${gcc:SoftVersion}) +Description: GCC, the GNU compiler collection (native language support files) + Native language support for GCC. Lets GCC speak your language, + if translations are available. + . + Please do NOT submit bug reports in other languages than "C". + Always reset your language settings to use the "C" locales. +')`'dnl native +')`'dnl cdev + +ifenabled(`c++',` +ifenabled(`c++dev',` +Package: g++`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: optional +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), libidevdep(stdc++`'PV-dev,,=), ${shlibs:Depends}, ${misc:Depends} +Provides: c++-compiler`'TS`'ifdef(`TARGET',`',`, c++abi2-dev') +Suggests: ${gxx:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}), libdbgdep(stdc++CXX_SO`'PV-dbg,) +BUILT_USING`'dnl +Description: GNU C++ compiler`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') + This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. +ifdef(`TARGET', `dnl + . + This package contains C++ cross-compiler for TARGET architecture. +')`'dnl + +ifenabled(`multilib',` +Package: g++`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: optional +Depends: BASEDEP, g++`'PV`'TS (= ${gcc:Version}), gcc`'PV-multilib`'TS (= ${gcc:Version}), ${dep:libcxxbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +Suggests: ${dep:libcxxbiarchdbg} +BUILT_USING`'dnl +Description: GNU C++ compiler (multilib support)`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') + This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib +')`'dnl c++dev +')`'dnl c++ + +ifdef(`TARGET', `', ` +ifenabled(`ssp',` +Package: libssp`'SSP_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: any +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC stack smashing protection library + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. + +Package: lib32ssp`'SSP_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: biarch32_archs +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libssp0 (<< 4.1) +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: GCC stack smashing protection library (32bit) + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. + +Package: lib64ssp`'SSP_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: biarch64_archs +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libssp0 (<< 4.1) +BUILT_USING`'dnl +Description: GCC stack smashing protection library (64bit) + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. + +Package: libn32ssp`'SSP_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: biarchn32_archs +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libssp0 (<< 4.1) +BUILT_USING`'dnl +Description: GCC stack smashing protection library (n32) + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. + +Package: libx32ssp`'SSP_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: biarchx32_archs +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libssp0 (<< 4.1) +BUILT_USING`'dnl +Description: GCC stack smashing protection library (x32) + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. + +Package: libhfssp`'SSP_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: biarchhf_archs +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC stack smashing protection library (hard float ABI) + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. + +Package: libsfssp`'SSP_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: biarchsf_archs +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC stack smashing protection library (soft float ABI) + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. +')`'dnl +')`'dnl native + +ifenabled(`libgomp',` +Package: libgomp`'GOMP_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libgomp'GOMP_SO`-armel [armel], libgomp'GOMP_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libgomp`'GOMP_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gomp`'GOMP_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libgomp'GOMP_SO`-dbg-armel [armel], libgomp'GOMP_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib32gomp`'GOMP_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (32bit) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib32gomp`'GOMP_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gomp`'GOMP_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (32 bit debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib64gomp`'GOMP_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (64bit) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib64gomp`'GOMP_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gomp`'GOMP_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (64bit debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libn32gomp`'GOMP_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (n32) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libn32gomp`'GOMP_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gomp`'GOMP_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (n32 debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + +ifenabled(`libx32gomp',` +Package: libx32gomp`'GOMP_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (x32) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libx32gomp`'GOMP_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gomp`'GOMP_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (x32 debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers +')`'dnl libx32gomp + +ifenabled(`libhfgomp',` +Package: libhfgomp`'GOMP_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgomp'GOMP_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (hard float ABI) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libhfgomp`'GOMP_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gomp`'GOMP_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgomp'GOMP_SO`-dbg-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (hard float ABI debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers +')`'dnl libhfgomp + +ifenabled(`libsfgomp',` +Package: libsfgomp`'GOMP_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgomp'GOMP_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (soft float ABI) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libsfgomp`'GOMP_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(gomp`'GOMP_SO,sf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgomp'GOMP_SO`-dbg-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (soft float ABI debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers +')`'dnl libsfgomp + +ifenabled(`libneongomp',` +Package: libgomp`'GOMP_SO-neon`'LS +TARGET_PACKAGE`'dnl +Architecture: NEON_ARCHS +Section: libs +Priority: optional +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library [neon optimized] + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneongomp +')`'dnl libgomp + +ifenabled(`libitm',` +Package: libitm`'ITM_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libitm'ITM_SO`-armel [armel], libitm'ITM_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: libitm`'ITM_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(itm`'ITM_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libitm'ITM_SO`-dbg-armel [armel], libitm'ITM_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: lib32itm`'ITM_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (32bit) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: lib32itm`'ITM_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(itm`'ITM_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (32 bit debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: lib64itm`'ITM_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (64bit) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: lib64itm`'ITM_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(itm`'ITM_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (64bit debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +#Package: libn32itm`'ITM_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: optional +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: GNU Transactional Memory Library (n32) +# GNU Transactional Memory Library (libitm) provides transaction support for +# accesses to the memory of a process, enabling easy-to-use synchronization of +# accesses to shared memory by several threads. + +#Package: libn32itm`'ITM_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: optional +#Depends: BASELDEP, libdep(itm`'ITM_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: GNU Transactional Memory Library (n32 debug symbols) +# GNU Transactional Memory Library (libitm) provides transaction support for +# accesses to the memory of a process, enabling easy-to-use synchronization of +# accesses to shared memory by several threads. + +ifenabled(`libx32itm',` +Package: libx32itm`'ITM_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (x32) + This manual documents the usage and internals of libitm. It provides + transaction support for accesses to the memory of a process, enabling + easy-to-use synchronization of accesses to shared memory by several threads. + +Package: libx32itm`'ITM_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(itm`'ITM_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (x32 debug symbols) + This manual documents the usage and internals of libitm. It provides + transaction support for accesses to the memory of a process, enabling + easy-to-use synchronization of accesses to shared memory by several threads. +')`'dnl libx32itm + +ifenabled(`libhfitm',` +Package: libhfitm`'ITM_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libitm'ITM_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (hard float ABI) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: libhfitm`'ITM_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(itm`'ITM_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libitm'ITM_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (hard float ABI debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. +')`'dnl libhfitm + +ifenabled(`libsfitm',` +Package: libsfitm`'ITM_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (soft float ABI) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: libsfitm`'ITM_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(itm`'ITM_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (soft float ABI debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. +')`'dnl libsfitm + +ifenabled(`libneonitm',` +Package: libitm`'ITM_SO-neon`'LS +TARGET_PACKAGE`'dnl +Architecture: NEON_ARCHS +Section: libs +Priority: optional +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library [neon optimized] + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonitm +')`'dnl libitm + +ifenabled(`libatomic',` +Package: libatomic`'ATOMIC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libatomic'ATOMIC_SO`-armel [armel], libatomic'ATOMIC_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libatomic`'ATOMIC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libatomic'ATOMIC_SO`-dbg-armel [armel], libatomic'ATOMIC_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: lib32atomic`'ATOMIC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (32bit) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: lib32atomic`'ATOMIC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (32 bit debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: lib64atomic`'ATOMIC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (64bit) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: lib64atomic`'ATOMIC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (64bit debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libn32atomic`'ATOMIC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (n32) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libn32atomic`'ATOMIC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (n32 debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +ifenabled(`libx32atomic',` +Package: libx32atomic`'ATOMIC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (x32) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libx32atomic`'ATOMIC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (x32 debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. +')`'dnl libx32atomic + +ifenabled(`libhfatomic',` +Package: libhfatomic`'ATOMIC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libatomic'ATOMIC_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (hard float ABI) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libhfatomic`'ATOMIC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libatomic'ATOMIC_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (hard float ABI debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. +')`'dnl libhfatomic + +ifenabled(`libsfatomic',` +Package: libsfatomic`'ATOMIC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (soft float ABI) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libsfatomic`'ATOMIC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (soft float ABI debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. +')`'dnl libsfatomic + +ifenabled(`libneonatomic',` +Package: libatomic`'ATOMIC_SO-neon`'LS +TARGET_PACKAGE`'dnl +Architecture: NEON_ARCHS +Section: libs +Priority: optional +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions [neon optimized] + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonatomic +')`'dnl libatomic + +ifenabled(`libasan',` +Package: libasan`'ASAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libasan'ASAN_SO`-armel [armel], libasan'ASAN_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libasan`'ASAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(asan`'ASAN_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libasan'ASAN_SO`-dbg-armel [armel], libasan'ASAN_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib32asan`'ASAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (32bit) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib32asan`'ASAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(asan`'ASAN_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (32 bit debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib64asan`'ASAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (64bit) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib64asan`'ASAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(asan`'ASAN_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (64bit debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +#Package: libn32asan`'ASAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: optional +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: AddressSanitizer -- a fast memory error detector (n32) +# AddressSanitizer (ASan) is a fast memory error detector. It finds +# use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +#Package: libn32asan`'ASAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: optional +#Depends: BASELDEP, libdep(asan`'ASAN_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: AddressSanitizer -- a fast memory error detector (n32 debug symbols) +# AddressSanitizer (ASan) is a fast memory error detector. It finds +# use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +ifenabled(`libx32asan',` +Package: libx32asan`'ASAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (x32) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libx32asan`'ASAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(asan`'ASAN_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (x32 debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. +')`'dnl libx32asan + +ifenabled(`libhfasan',` +Package: libhfasan`'ASAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libasan'ASAN_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (hard float ABI) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libhfasan`'ASAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(asan`'ASAN_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libasan'ASAN_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (hard float ABI debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. +')`'dnl libhfasan + +ifenabled(`libsfasan',` +Package: libsfasan`'ASAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (soft float ABI) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libsfasan`'ASAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(asan`'ASAN_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (soft float ABI debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. +')`'dnl libsfasan + +ifenabled(`libneonasan',` +Package: libasan`'ASAN_SO-neon`'LS +TARGET_PACKAGE`'dnl +Architecture: NEON_ARCHS +Section: libs +Priority: optional +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector [neon optimized] + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonasan +')`'dnl libasan + +ifenabled(`liblsan',` +Package: liblsan`'LSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (runtime) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. + +Package: liblsan`'LSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(lsan`'LSAN_SO,,=), ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. + +ifenabled(`lib32lsan',` +Package: lib32lsan`'LSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (32bit) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer (empty package). + +Package: lib32lsan`'LSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(lsan`'LSAN_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (32 bit debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer (empty package). +')`'dnl lib32lsan + +ifenabled(`lib64lsan',` +#Package: lib64lsan`'LSAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +#Priority: optional +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: LeakSanitizer -- a memory leak detector (64bit) +# LeakSanitizer (Lsan) is a memory leak detector which is integrated +# into AddressSanitizer. + +#Package: lib64lsan`'LSAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +#Section: debug +#Priority: optional +#Depends: BASELDEP, libdep(lsan`'LSAN_SO,64,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: LeakSanitizer -- a memory leak detector (64bit debug symbols) +# LeakSanitizer (Lsan) is a memory leak detector which is integrated +# into AddressSanitizer. +')`'dnl lib64lsan + +ifenabled(`libn32lsan',` +#Package: libn32lsan`'LSAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: optional +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: LeakSanitizer -- a memory leak detector (n32) +# LeakSanitizer (Lsan) is a memory leak detector which is integrated +# into AddressSanitizer. + +#Package: libn32lsan`'LSAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: optional +#Depends: BASELDEP, libdep(lsan`'LSAN_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: LeakSanitizer -- a memory leak detector (n32 debug symbols) +# LeakSanitizer (Lsan) is a memory leak detector which is integrated +# into AddressSanitizer. +')`'dnl libn32lsan + +ifenabled(`libx32lsan',` +Package: libx32lsan`'LSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (x32) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer (empty package). + +Package: libx32lsan`'LSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(lsan`'LSAN_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (x32 debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer (empty package). +')`'dnl libx32lsan + +ifenabled(`libhflsan',` +Package: libhflsan`'LSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: liblsan'LSAN_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (hard float ABI) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. + +Package: libhflsan`'LSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(lsan`'LSAN_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: liblsan'LSAN_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (hard float ABI debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. +')`'dnl libhflsan + +ifenabled(`libsflsan',` +Package: libsflsan`'LSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (soft float ABI) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. + +Package: libsflsan`'LSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(lsan`'LSAN_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (soft float ABI debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. +')`'dnl libsflsan + +ifenabled(`libneonlsan',` +Package: liblsan`'LSAN_SO-neon`'LS +TARGET_PACKAGE`'dnl +Architecture: NEON_ARCHS +Section: libs +Priority: optional +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector [neon optimized] + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonlsan +')`'dnl liblsan + +ifenabled(`libtsan',` +Package: libtsan`'TSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libtsan'TSAN_SO`-armel [armel], libtsan'TSAN_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (runtime) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: libtsan`'TSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(tsan`'TSAN_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libtsan'TSAN_SO`-dbg-armel [armel], libtsan'TSAN_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +ifenabled(`lib32tsan',` +Package: lib32tsan`'TSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (32bit) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: lib32tsan`'TSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(tsan`'TSAN_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (32 bit debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. +')`'dnl lib32tsan + +ifenabled(`lib64tsan',` +Package: lib64tsan`'TSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (64bit) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: lib64tsan`'TSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(tsan`'TSAN_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (64bit debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. +')`'dnl lib64tsan + +ifenabled(`libn32tsan',` +Package: libn32tsan`'TSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (n32) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: libn32tsan`'TSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(tsan`'TSAN_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (n32 debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. +')`'dnl libn32tsan + +ifenabled(`libx32tsan',` +Package: libx32tsan`'TSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (x32) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: libx32tsan`'TSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(tsan`'TSAN_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (x32 debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. +')`'dnl libx32tsan + +ifenabled(`libhftsan',` +Package: libhftsan`'TSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libtsan'TSAN_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (hard float ABI) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: libhftsan`'TSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(tsan`'TSAN_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libtsan'TSAN_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (hard float ABI debug symbols) +')`'dnl libhftsan + +ifenabled(`libsftsan',` +Package: libsftsan`'TSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (soft float ABI) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: libsftsan`'TSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(tsan`'TSAN_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (soft float ABI debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. +')`'dnl libsftsan + +ifenabled(`libneontsan',` +Package: libtsan`'TSAN_SO-neon`'LS +TARGET_PACKAGE`'dnl +Architecture: NEON_ARCHS +Section: libs +Priority: optional +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races [neon optimized] + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneontsan +')`'dnl libtsan + +ifenabled(`libubsan',` +Package: libubsan`'UBSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libubsan'UBSAN_SO`-armel [armel], libubsan'UBSAN_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (runtime) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libubsan`'UBSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libubsan'UBSAN_SO`-dbg-armel [armel], libubsan'UBSAN_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +ifenabled(`lib32ubsan',` +Package: lib32ubsan`'UBSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (32bit) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: lib32ubsan`'UBSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (32 bit debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. +')`'dnl lib32ubsan + +ifenabled(`lib64ubsan',` +Package: lib64ubsan`'UBSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (64bit) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: lib64ubsan`'UBSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (64bit debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. +')`'dnl lib64ubsan + +ifenabled(`libn32ubsan',` +#Package: libn32ubsan`'UBSAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: optional +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: UBSan -- undefined behaviour sanitizer (n32) +# UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. +# Various computations will be instrumented to detect undefined behavior +# at runtime. Available for C and C++. + +#Package: libn32ubsan`'UBSAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: optional +#Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: UBSan -- undefined behaviour sanitizer (n32 debug symbols) +# UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. +# Various computations will be instrumented to detect undefined behavior +# at runtime. Available for C and C++. +')`'dnl libn32ubsan + +ifenabled(`libx32ubsan',` +Package: libx32ubsan`'UBSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (x32) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libx32ubsan`'UBSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (x32 debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. +')`'dnl libx32ubsan + +ifenabled(`libhfubsan',` +Package: libhfubsan`'UBSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libubsan'UBSAN_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (hard float ABI) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libhfubsan`'UBSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libubsan'UBSAN_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (hard float ABI debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. +')`'dnl libhfubsan + +ifenabled(`libsfubsan',` +Package: libsfubsan`'UBSAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (soft float ABI) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libsfubsan`'UBSAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (soft float ABI debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. +')`'dnl libsfubsan + +ifenabled(`libneonubsan',` +Package: libubsan`'UBSAN_SO-neon`'LS +TARGET_PACKAGE`'dnl +Architecture: NEON_ARCHS +Section: libs +Priority: optional +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer [neon optimized] + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonubsan +')`'dnl libubsan + +ifenabled(`libvtv',` +Package: libvtv`'VTV_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (runtime) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: libvtv`'VTV_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(vtv`'VTV_SO,,=), ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: GNU vtable verification library (debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +ifenabled(`lib32vtv',` +Package: lib32vtv`'VTV_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: GNU vtable verification library (32bit) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: lib32vtv`'VTV_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(vtv`'VTV_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (32 bit debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. +')`'dnl lib32vtv + +ifenabled(`lib64vtv',` +Package: lib64vtv`'VTV_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (64bit) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: lib64vtv`'VTV_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(vtv`'VTV_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (64bit debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. +')`'dnl lib64vtv + +ifenabled(`libn32vtv',` +Package: libn32vtv`'VTV_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (n32) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: libn32vtv`'VTV_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(vtv`'VTV_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (n32 debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. +')`'dnl libn32vtv + +ifenabled(`libx32vtv',` +Package: libx32vtv`'VTV_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (x32) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: libx32vtv`'VTV_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(vtv`'VTV_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (x32 debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. +')`'dnl libx32vtv + +ifenabled(`libhfvtv',` +Package: libhfvtv`'VTV_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libvtv'VTV_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GNU vtable verification library (hard float ABI) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: libhfvtv`'VTV_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(vtv`'VTV_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libvtv'VTV_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GNU vtable verification library (hard float ABI debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. +')`'dnl libhfvtv + +ifenabled(`libsfvtv',` +Package: libsfvtv`'VTV_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (soft float ABI) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: libsfvtv`'VTV_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(vtv`'VTV_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (soft float ABI debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. +')`'dnl libsfvtv + +ifenabled(`libneonvtv',` +Package: libvtv`'VTV_SO-neon`'LS +TARGET_PACKAGE`'dnl +Architecture: NEON_ARCHS +Section: libs +Priority: optional +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library [neon optimized] + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonvtv +')`'dnl libvtv + +ifenabled(`libcilkrts',` +Package: libcilkrts`'CILKRTS_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libcilkrts'CILKRTS_SO`-armel [armel], libcilkrts'CILKRTS_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (runtime) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libcilkrts`'CILKRTS_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libcilkrts'CILKRTS_SO`-dbg-armel [armel], libcilkrts'CILKRTS_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +ifenabled(`lib32cilkrts',` +Package: lib32cilkrts`'CILKRTS_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (32bit) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: lib32cilkrts`'CILKRTS_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (32 bit debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. +')`'dnl lib32cilkrts + +ifenabled(`lib64cilkrts',` +Package: lib64cilkrts`'CILKRTS_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (64bit) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: lib64cilkrts`'CILKRTS_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (64bit debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. +')`'dnl lib64cilkrts + +ifenabled(`libn32cilkrts',` +Package: libn32cilkrts`'CILKRTS_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (n32) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libn32cilkrts`'CILKRTS_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (n32 debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. +')`'dnl libn32cilkrts + +ifenabled(`libx32cilkrts',` +Package: libx32cilkrts`'CILKRTS_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (x32) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libx32cilkrts`'CILKRTS_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (x32 debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. +')`'dnl libx32cilkrts + +ifenabled(`libhfcilkrts',` +Package: libhfcilkrts`'CILKRTS_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libcilkrts'CILKRTS_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (hard float ABI) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libhfcilkrts`'CILKRTS_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libcilkrts'CILKRTS_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (hard float ABI debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. +')`'dnl libhfcilkrts + +ifenabled(`libsfcilkrts',` +Package: libsfcilkrts`'CILKRTS_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (soft float ABI) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libsfcilkrts`'CILKRTS_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (soft float ABI debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. +')`'dnl libsfcilkrts + +ifenabled(`libneoncilkrts',` +Package: libcilkrts`'CILKRTS_SO-neon`'LS +TARGET_PACKAGE`'dnl +Architecture: NEON_ARCHS +Section: libs +Priority: optional +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions [neon optimized] + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneoncilkrts +')`'dnl libcilkrts + +ifenabled(`libmpx',` +Package: libmpx`'MPX_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libmpx'MPX_SO`-armel [armel], libmpx'MPX_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: libmpx0 (<< 6-20160120-1) +BUILT_USING`'dnl +Description: Intel memory protection extensions (runtime) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: libmpx`'MPX_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(mpx`'MPX_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libmpx'MPX_SO`-dbg-armel [armel], libmpx'MPX_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: Intel memory protection extensions (debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +ifenabled(`lib32mpx',` +Package: lib32mpx`'MPX_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Replaces: lib32mpx0 (<< 6-20160120-1) +BUILT_USING`'dnl +Description: Intel memory protection extensions (32bit) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: lib32mpx`'MPX_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(mpx`'MPX_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (32 bit debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. +')`'dnl lib32mpx + +ifenabled(`lib64mpx',` +Package: lib64mpx`'MPX_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: lib64mpx0 (<< 6-20160120-1) +BUILT_USING`'dnl +Description: Intel memory protection extensions (64bit) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: lib64mpx`'MPX_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(mpx`'MPX_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (64bit debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. +')`'dnl lib64mpx + +ifenabled(`libn32mpx',` +Package: libn32mpx`'MPX_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (n32) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: libn32mpx`'MPX_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(mpx`'MPX_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (n32 debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. +')`'dnl libn32mpx + +ifenabled(`libx32mpx',` +Package: libx32mpx`'MPX_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (x32) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: libx32mpx`'MPX_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(mpx`'MPX_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (x32 debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. +')`'dnl libx32mpx + +ifenabled(`libhfmpx',` +Package: libhfmpx`'MPX_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libmpx'MPX_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: Intel memory protection extensions (hard float ABI) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: libhfmpx`'MPX_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(mpx`'MPX_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libmpx'MPX_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: Intel memory protection extensions (hard float ABI debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. +')`'dnl libhfmpx + +ifenabled(`libsfmpx',` +Package: libsfmpx`'MPX_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (soft float ABI) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: libsfmpx`'MPX_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(mpx`'MPX_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (soft float ABI debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. +')`'dnl libsfmpx +')`'dnl libmpx + +ifenabled(`libbacktrace',` +Package: libbacktrace`'BTRACE_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libbacktrace'BTRACE_SO`-armel [armel], libbacktrace'BTRACE_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: libbacktrace`'BTRACE_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libbacktrace'BTRACE_SO`-dbg-armel [armel], libbacktrace'BTRACE_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: stack backtrace library (debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: lib32backtrace`'BTRACE_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: stack backtrace library (32bit) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: lib32backtrace`'BTRACE_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (32 bit debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: lib64backtrace`'BTRACE_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (64bit) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: lib64backtrace`'BTRACE_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (64bit debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: libn32backtrace`'BTRACE_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (n32) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: libn32backtrace`'BTRACE_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (n32 debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +ifenabled(`libx32backtrace',` +Package: libx32backtrace`'BTRACE_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (x32) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: libx32backtrace`'BTRACE_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (x32 debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. +')`'dnl libx32backtrace + +ifenabled(`libhfbacktrace',` +Package: libhfbacktrace`'BTRACE_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libbacktrace'BTRACE_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: stack backtrace library (hard float ABI) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: libhfbacktrace`'BTRACE_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,hf,=), ${misc:Depends} +wifdef(`TARGET',`dnl',`Conflicts: libbacktrace'BTRACE_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: stack backtrace library (hard float ABI debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. +')`'dnl libhfbacktrace + +ifenabled(`libsfbacktrace',` +Package: libsfbacktrace`'BTRACE_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (soft float ABI) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: libsfbacktrace`'BTRACE_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (soft float ABI debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. +')`'dnl libsfbacktrace + +ifenabled(`libneonbacktrace',` +Package: libbacktrace`'BTRACE_SO-neon`'LS +TARGET_PACKAGE`'dnl +Architecture: NEON_ARCHS +Section: libs +Priority: optional +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library [neon optimized] + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonbacktrace +')`'dnl libbacktrace + + +ifenabled(`libqmath',` +Package: libquadmath`'QMATH_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: libquadmath`'QMATH_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(quadmath`'QMATH_SO,,=), ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. + +Package: lib32quadmath`'QMATH_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (32bit) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: lib32quadmath`'QMATH_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(quadmath`'QMATH_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (32 bit debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. + +Package: lib64quadmath`'QMATH_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (64bit) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: lib64quadmath`'QMATH_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(quadmath`'QMATH_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (64bit debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. + +#Package: libn32quadmath`'QMATH_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: optional +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: GCC Quad-Precision Math Library (n32) +# A library, which provides quad-precision mathematical functions on targets +# supporting the __float128 datatype. The library is used to provide on such +# targets the REAL(16) type in the GNU Fortran compiler. + +#Package: libn32quadmath`'QMATH_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: optional +#Depends: BASELDEP, libdep(quadmath`'QMATH_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: GCC Quad-Precision Math Library (n32 debug symbols) +# A library, which provides quad-precision mathematical functions on targets +# supporting the __float128 datatype. + +ifenabled(`libx32qmath',` +Package: libx32quadmath`'QMATH_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (x32) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: libx32quadmath`'QMATH_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(quadmath`'QMATH_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (x32 debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. +')`'dnl libx32qmath + +ifenabled(`libhfqmath',` +Package: libhfquadmath`'QMATH_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (hard float ABI) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: libhfquadmath`'QMATH_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(quadmath`'QMATH_SO,hf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (hard float ABI debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. +')`'dnl libhfqmath + +ifenabled(`libsfqmath',` +Package: libsfquadmath`'QMATH_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (soft float ABI) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: libsfquadmath`'QMATH_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(quadmath`'QMATH_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (hard float ABI debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. +')`'dnl libsfqmath +')`'dnl libqmath + +ifenabled(`libcc1',` +Package: libcc1-`'CC1_SO +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC cc1 plugin for GDB + libcc1 is a plugin for GDB. +')`'dnl libcc1 + +ifenabled(`libjit',` +Package: libgccjit`'GCCJIT_SO +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASEDEP, libgcc`'PV-dev, binutils, ${shlibs:Depends}, ${misc:Depends} +Breaks: python-gccjit (<< 0.4-4), python3-gccjit (<< 0.4-4) +BUILT_USING`'dnl +Description: GCC just-in-time compilation (shared library) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. + +Package: libgccjit`'GCCJIT_SO-dbg +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASEDEP, libgccjit`'GCCJIT_SO (= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +Breaks: libgccjit-5-dbg, libgccjit-6-dbg +Replaces: libgccjit-5-dbg, libgccjit-6-dbg +BUILT_USING`'dnl +Description: GCC just-in-time compilation (debug information) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. +')`'dnl libjit + +ifenabled(`jit',` +Package: libgccjit`'PV-doc +Section: doc +Architecture: all +Priority: optional +Depends: BASEDEP, ${misc:Depends} +Conflicts: libgccjit-5-doc, libgccjit-6-doc +Description: GCC just-in-time compilation (documentation) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. + +Package: libgccjit`'PV-dev +Section: ifdef(`TARGET',`devel',`libdevel') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASEDEP, libgccjit`'GCCJIT_SO (>= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Suggests: libgccjit`'PV-dbg +Description: GCC just-in-time compilation (development files) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. +')`'dnl jit + +ifenabled(`objpp',` +ifenabled(`objppdev',` +Package: gobjc++`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: optional +Depends: BASEDEP, gobjc`'PV`'TS (= ${gcc:Version}), g++`'PV`'TS (= ${gcc:Version}), ${shlibs:Depends}, libidevdep(objc`'PV-dev,,=), ${misc:Depends} +Suggests: ${gobjcxx:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}) +Provides: objc++-compiler`'TS +BUILT_USING`'dnl +Description: GNU Objective-C++ compiler + This is the GNU Objective-C++ compiler, which compiles + Objective-C++ on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. +')`'dnl obcppdev + +ifenabled(`multilib',` +Package: gobjc++`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: optional +Depends: BASEDEP, gobjc++`'PV`'TS (= ${gcc:Version}), g++`'PV-multilib`'TS (= ${gcc:Version}), gobjc`'PV-multilib`'TS (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Objective-C++ compiler (multilib support) + This is the GNU Objective-C++ compiler, which compiles Objective-C++ on + platforms supported by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib +')`'dnl obcpp + +ifenabled(`objc',` +ifenabled(`objcdev',` +Package: gobjc`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: optional +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), ${dep:libcdev}, ${shlibs:Depends}, libidevdep(objc`'PV-dev,,=), ${misc:Depends} +Suggests: ${gobjc:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}), libdbgdep(objc`'OBJC_SO-dbg,) +Provides: objc-compiler`'TS +ifdef(`__sparc__',`Conflicts: gcc`'PV-sparc64', `dnl') +BUILT_USING`'dnl +Description: GNU Objective-C compiler + This is the GNU Objective-C compiler, which compiles + Objective-C on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. + +ifenabled(`multilib',` +Package: gobjc`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: optional +Depends: BASEDEP, gobjc`'PV`'TS (= ${gcc:Version}), gcc`'PV-multilib`'TS (= ${gcc:Version}), ${dep:libobjcbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Objective-C compiler (multilib support)`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') + This is the GNU Objective-C compiler, which compiles Objective-C on platforms + supported by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib + +Package: libobjc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,), libdep(objc`'OBJC_SO,), ${shlibs:Depends}, ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: lib64objc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,64), libdep(objc`'OBJC_SO,64), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (64bit development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: lib32objc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,32), libdep(objc`'OBJC_SO,32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (32bit development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: libn32objc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,n32), libdep(objc`'OBJC_SO,n32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (n32 development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +ifenabled(`x32dev',` +Package: libx32objc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,x32), libdep(objc`'OBJC_SO,x32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (x32 development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. +')`'dnl libx32objc + +ifenabled(`armml',` +Package: libhfobjc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,hf), libdep(objc`'OBJC_SO,hf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (hard float ABI development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. +')`'dnl armml + +ifenabled(`armml',` +Package: libsfobjc`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,sf), libdep(objc`'OBJC_SO,sf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (soft float development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. +')`'dnl armml +')`'dnl objcdev + +ifenabled(`libobjc',` +Package: libobjc`'OBJC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libobjc'OBJC_SO`-armel [armel], libobjc'OBJC_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +ifelse(OBJC_SO,`2',`Breaks: ${multiarch:breaks} +',`')')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications + Library needed for GNU ObjC applications linked against the shared library. + +Package: libobjc`'OBJC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libobjc'OBJC_SO`-dbg-armel [armel], libobjc'OBJC_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Priority: optional +Depends: BASELDEP, libdep(objc`'OBJC_SO,,=), libdbgdep(gcc`'GCC_SO-dbg,,>=,${libgcc:Version}), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl libobjc + +ifenabled(`lib64objc',` +Package: lib64objc`'OBJC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (64bit) + Library needed for GNU ObjC applications linked against the shared library. + +Package: lib64objc`'OBJC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, libdep(objc`'OBJC_SO,64,=), libdbgdep(gcc`'GCC_SO-dbg,64,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (64 bit debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl lib64objc + +ifenabled(`lib32objc',` +Package: lib32objc`'OBJC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (32bit) + Library needed for GNU ObjC applications linked against the shared library. + +Package: lib32objc`'OBJC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, libdep(objc`'OBJC_SO,32,=), libdbgdep(gcc`'GCC_SO-dbg,32,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (32 bit debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl lib32objc + +ifenabled(`libn32objc',` +Package: libn32objc`'OBJC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (n32) + Library needed for GNU ObjC applications linked against the shared library. + +Package: libn32objc`'OBJC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, libdep(objc`'OBJC_SO,n32,=), libdbgdep(gcc`'GCC_SO-dbg,n32,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (n32 debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl libn32objc + +ifenabled(`libx32objc',` +Package: libx32objc`'OBJC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (x32) + Library needed for GNU ObjC applications linked against the shared library. + +Package: libx32objc`'OBJC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, libdep(objc`'OBJC_SO,x32,=), libdbgdep(gcc`'GCC_SO-dbg,x32,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (x32 debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl libx32objc + +ifenabled(`libhfobjc',` +Package: libhfobjc`'OBJC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libobjc'OBJC_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (hard float ABI) + Library needed for GNU ObjC applications linked against the shared library. + +Package: libhfobjc`'OBJC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, libdep(objc`'OBJC_SO,hf,=), libdbgdep(gcc`'GCC_SO-dbg,hf,>=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libobjc'OBJC_SO`-dbg-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (hard float ABI debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl libhfobjc + +ifenabled(`libsfobjc',` +Package: libsfobjc`'OBJC_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libobjc'OBJC_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (soft float ABI) + Library needed for GNU ObjC applications linked against the shared library. + +Package: libsfobjc`'OBJC_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, libdep(objc`'OBJC_SO,sf,=), libdbgdep(gcc`'GCC_SO-dbg,sf,>=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libobjc'OBJC_SO`-dbg-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (soft float ABI debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl libsfobjc + +ifenabled(`libneonobjc',` +Package: libobjc`'OBJC_SO-neon`'LS +TARGET_PACKAGE`'dnl +Section: libs +Architecture: NEON_ARCHS +Priority: PRI(optional) +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications [NEON version] + Library needed for GNU ObjC applications linked against the shared library. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonobjc +')`'dnl objc + +ifenabled(`fortran',` +ifenabled(`fdev',` +Package: gfortran`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: optional +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), libidevdep(gfortran`'PV-dev,,=), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Provides: fortran95-compiler, ${fortran:mod-version} +Suggests: ${gfortran:multilib}, gfortran`'PV-doc, + libdbgdep(gfortran`'FORTRAN_SO-dbg,), + libcoarrays-dev +BUILT_USING`'dnl +Description: GNU Fortran compiler + This is the GNU Fortran compiler, which compiles + Fortran on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. + +ifenabled(`multilib',` +Package: gfortran`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: optional +Depends: BASEDEP, gfortran`'PV`'TS (= ${gcc:Version}), gcc`'PV-multilib`'TS (= ${gcc:Version}), ${dep:libgfortranbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Fortran compiler (multilib support)`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') + This is the GNU Fortran compiler, which compiles Fortran on platforms + supported by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib + +ifenabled(`gfdldoc',` +Package: gfortran`'PV-doc +Architecture: all +Section: doc +Priority: PRI(optional) +Depends: gcc`'PV-base (>= ${gcc:SoftVersion}), dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Description: Documentation for the GNU Fortran compiler (gfortran) + Documentation for the GNU Fortran compiler in info `format'. +')`'dnl gfdldoc + +Package: libgfortran`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',), libdep(gfortran`'FORTRAN_SO,), ${shlibs:Depends}, ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: lib64gfortran`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',64), libdep(gfortran`'FORTRAN_SO,64), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (64bit development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: lib32gfortran`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',32), libdep(gfortran`'FORTRAN_SO,32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (32bit development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: libn32gfortran`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',n32), libdep(gfortran`'FORTRAN_SO,n32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (n32 development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +ifenabled(`x32dev',` +Package: libx32gfortran`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',x32), libdep(gfortran`'FORTRAN_SO,x32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (x32 development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. +')`'dnl libx32gfortran + +ifenabled(`armml',` +Package: libhfgfortran`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',hf), libdep(gfortran`'FORTRAN_SO,hf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (hard float ABI development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. +')`'dnl armml + +ifenabled(`armml',` +Package: libsfgfortran`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',sf), libdep(gfortran`'FORTRAN_SO,sf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (soft float ABI development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. +')`'dnl armml +')`'dnl fdev + +ifenabled(`libgfortran',` +Package: libgfortran`'FORTRAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libgfortran'FORTRAN_SO`-armel [armel], libgfortran'FORTRAN_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libgfortran`'FORTRAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libgfortran'FORTRAN_SO`-dbg-armel [armel], libgfortran'FORTRAN_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Priority: optional +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,,=), libdbgdep(gcc`'GCC_SO-dbg,,>=,${libgcc:Version}), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl libgfortran + +ifenabled(`lib64gfortran',` +Package: lib64gfortran`'FORTRAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (64bit) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: lib64gfortran`'FORTRAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (64bit debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl lib64gfortran + +ifenabled(`lib32gfortran',` +Package: lib32gfortran`'FORTRAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (32bit) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: lib32gfortran`'FORTRAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (32 bit debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl lib32gfortran + +ifenabled(`libn32gfortran',` +Package: libn32gfortran`'FORTRAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (n32) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libn32gfortran`'FORTRAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (n32 debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl libn32gfortran + +ifenabled(`libx32gfortran',` +Package: libx32gfortran`'FORTRAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (x32) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libx32gfortran`'FORTRAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (x32 debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl libx32gfortran + +ifenabled(`libhfgfortran',` +Package: libhfgfortran`'FORTRAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgfortran'FORTRAN_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (hard float ABI) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libhfgfortran`'FORTRAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgfortran'FORTRAN_SO`-dbg-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (hard float ABI debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl libhfgfortran + +ifenabled(`libsfgfortran',` +Package: libsfgfortran`'FORTRAN_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgfortran'FORTRAN_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (soft float ABI) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libsfgfortran`'FORTRAN_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,sf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgfortran'FORTRAN_SO`-dbg-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (hard float ABI debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl libsfgfortran + +ifenabled(`libneongfortran',` +Package: libgfortran`'FORTRAN_SO-neon`'LS +TARGET_PACKAGE`'dnl +Section: libs +Architecture: NEON_ARCHS +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +')`'dnl +Priority: optional +Depends: BASELDEP, libgcc1-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications [NEON version] + Library needed for GNU Fortran applications linked against the + shared library. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneongfortran +')`'dnl fortran + +ifenabled(`ggo',` +ifenabled(`godev',` +Package: gccgo`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: optional +Depends: BASEDEP, ifdef(`STANDALONEGO',`${dep:libcc1}, ',`gcc`'PV`'TS (= ${gcc:Version}), ')libidevdep(go`'GO_SO,,>=), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Provides: go-compiler +Suggests: ${go:multilib}, gccgo`'PV-doc, libdbgdep(go`'GO_SO-dbg,) +Conflicts: ${golang:Conflicts} +Breaks: libgo`'GO_SO`'LS (<< 7.2.0-18) +Replaces: libgo`'GO_SO`'LS (<< 7.2.0-18) +BUILT_USING`'dnl +Description: GNU Go compiler + This is the GNU Go compiler, which compiles Go on platforms supported + by the gcc compiler. It uses the gcc backend to generate optimized code. + +ifenabled(`multilib',` +Package: gccgo`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: optional +Depends: BASEDEP, gccgo`'PV`'TS (= ${gcc:Version}), ifdef(`STANDALONEGO',,`gcc`'PV-multilib`'TS (= ${gcc:Version}), ')${dep:libgobiarch}, ${shlibs:Depends}, ${misc:Depends} +Suggests: ${dep:libgobiarchdbg} +Breaks: lib32go`'GO_SO`'LS (<< 7.2.0-18), + libn32go`'GO_SO`'LS (<< 7.2.0-18), + libx32go`'GO_SO`'LS (<< 7.2.0-18), + lib64go`'GO_SO`'LS (<< 7.2.0-18) +Replaces: lib32go`'GO_SO`'LS (<< 7.2.0-18), + libn32go`'GO_SO`'LS (<< 7.2.0-18), + libx32go`'GO_SO`'LS (<< 7.2.0-18), + lib64go`'GO_SO`'LS (<< 7.2.0-18) +BUILT_USING`'dnl +Description: GNU Go compiler (multilib support)`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') + This is the GNU Go compiler, which compiles Go on platforms supported + by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib + +ifenabled(`gfdldoc',` +Package: gccgo`'PV-doc +Architecture: all +Section: doc +Priority: PRI(optional) +Depends: gcc`'PV-base (>= ${gcc:SoftVersion}), dpkg (>= 1.15.4) | install-info, ${misc:Depends} +BUILT_USING`'dnl +Description: Documentation for the GNU Go compiler (gccgo) + Documentation for the GNU Go compiler in info `format'. +')`'dnl gfdldoc +')`'dnl godev + +ifenabled(`libggo',` +Package: libgo`'GO_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libgo'GO_SO`-armel [armel], libgo'GO_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: libgo3`'LS, libgo8`'LS +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications + Library needed for GNU Go applications linked against the + shared library. + +Package: libgo`'GO_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libgo'GO_SO`-dbg-armel [armel], libgo'GO_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Priority: optional +Depends: BASELDEP, libdep(go`'GO_SO,,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. +')`'dnl libgo + +ifenabled(`lib64ggo',` +Package: lib64go`'GO_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: lib64go3`'LS, lib64go8`'LS +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (64bit) + Library needed for GNU Go applications linked against the + shared library. + +Package: lib64go`'GO_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, libdep(go`'GO_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (64bit debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. +')`'dnl lib64go + +ifenabled(`lib32ggo',` +Package: lib32go`'GO_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Replaces: lib32go3`'LS, lib32go8`'LS +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (32bit) + Library needed for GNU Go applications linked against the + shared library. + +Package: lib32go`'GO_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, libdep(go`'GO_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (32 bit debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. +')`'dnl lib32go + +ifenabled(`libn32ggo',` +Package: libn32go`'GO_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libn32go3`'LS, libn32go8`'LS +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (n32) + Library needed for GNU Go applications linked against the + shared library. + +Package: libn32go`'GO_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, libdep(go`'GO_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (n32 debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. +')`'dnl libn32go + +ifenabled(`libx32ggo',` +Package: libx32go`'GO_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libx32go3`'LS, libx32go8`'LS +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (x32) + Library needed for GNU Go applications linked against the + shared library. + +Package: libx32go`'GO_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, libdep(go`'GO_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (x32 debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. +')`'dnl libx32go +')`'dnl ggo + +ifenabled(`c++',` +ifenabled(`libcxx',` +Package: libstdc++CXX_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`optional',PRI(important)) +Depends: BASELDEP, ${dep:libc}, ${shlibs:Depends}, ${misc:Depends} +Provides: ifdef(`TARGET',`libstdc++CXX_SO-TARGET-dcv1',`libstdc++'CXX_SO`-armel [armel], libstdc++'CXX_SO`-armhf [armhf]') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks}, PR66145BREAKS +')`'dnl +Conflicts: scim (<< 1.4.2-1) +Replaces: libstdc++CXX_SO`'PV-dbg`'LS (<< 4.9.0-3) +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3`'ifdef(`TARGET',` (TARGET)', `') + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libcxx + +ifenabled(`lib32cxx',` +Package: lib32stdc++CXX_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: optional +Depends: BASELDEP, libdep(gcc1,32), ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +ifdef(`TARGET',`Provides: lib32stdc++CXX_SO-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (32 bit Version) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl lib32cxx + +ifenabled(`lib64cxx',` +Package: lib64stdc++CXX_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: optional +Depends: BASELDEP, libdep(gcc1,64), ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: lib64stdc++CXX_SO-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3`'ifdef(`TARGET',` (TARGET)', `') (64bit) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl lib64cxx + +ifenabled(`libn32cxx',` +Package: libn32stdc++CXX_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: optional +Depends: BASELDEP, libdep(gcc1,n32), ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libn32stdc++CXX_SO-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3`'ifdef(`TARGET',` (TARGET)', `') (n32) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libn32cxx + +ifenabled(`libx32cxx',` +Package: libx32stdc++CXX_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: optional +Depends: BASELDEP, libdep(gcc1,x32), ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libx32stdc++CXX_SO-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3`'ifdef(`TARGET',` (TARGET)', `') (x32) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libx32cxx + +ifenabled(`libhfcxx',` +Package: libhfstdc++CXX_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: optional +Depends: BASELDEP, libdep(gcc1,hf), ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libhfstdc++CXX_SO-TARGET-dcv1 +',`')`'dnl +ifdef(`TARGET',`dnl',`Conflicts: libstdc++'CXX_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3`'ifdef(`TARGET',` (TARGET)', `') (hard float ABI) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libhfcxx + +ifenabled(`libsfcxx',` +Package: libsfstdc++CXX_SO`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: optional +Depends: BASELDEP, libdep(gcc1,sf), ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libsfstdc++CXX_SO-TARGET-dcv1 +',`')`'dnl +ifdef(`TARGET',`dnl',`Conflicts: libstdc++'CXX_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3`'ifdef(`TARGET',` (TARGET)', `') (soft float ABI) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libsfcxx + +ifenabled(`libneoncxx',` +Package: libstdc++CXX_SO-neon`'LS +TARGET_PACKAGE`'dnl +Architecture: NEON_ARCHS +Section: libs +Priority: optional +Depends: BASELDEP, libc6-neon`'LS, libgcc1-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 [NEON version] + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl + +ifenabled(`c++dev',` +Package: libstdc++`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,,=), + libdep(stdc++CXX_SO,,>=), ${dep:libcdev}, ${misc:Depends} +ifdef(`TARGET',`',`dnl native +Conflicts: libg++27-dev, libg++272-dev (<< 2.7.2.8-1), libstdc++2.8-dev, + libg++2.8-dev, libstdc++2.9-dev, libstdc++2.9-glibc2.1-dev, + libstdc++2.10-dev (<< 1:2.95.3-2), libstdc++3.0-dev +Suggests: libstdc++`'PV-doc +')`'dnl native +Provides: libstdc++-dev`'LS`'ifdef(`TARGET',`, libstdc++-dev-TARGET-dcv1') +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libstdc++`'PV-pic`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: optional +Depends: BASELDEP, libdep(stdc++CXX_SO,), + libdevdep(stdc++`'PV-dev,), ${misc:Depends} +ifdef(`TARGET',`Provides: libstdc++-pic-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (shared library subset kit)`'ifdef(`TARGET',` (TARGET)', `') + This is used to develop subsets of the libstdc++ shared libraries for + use on custom installation floppies and in embedded systems. + . + Unless you are making one of those, you will not need this package. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libstdc++CXX_SO`'PV-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(stdc++CXX_SO,), + libdbgdep(gcc`'GCC_SO-dbg,,>=,${libgcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Provides: ifdef(`TARGET',`libstdc++CXX_SO-dbg-TARGET-dcv1',`libstdc++'CXX_SO`'PV`-dbg-armel [armel], libstdc++'CXX_SO`'PV`-dbg-armhf [armhf]') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Recommends: libdevdep(stdc++`'PV-dev,) +Conflicts: libstdc++5-dbg`'LS, libstdc++5-3.3-dbg`'LS, libstdc++6-dbg`'LS, + libstdc++6-4.0-dbg`'LS, libstdc++6-4.1-dbg`'LS, libstdc++6-4.2-dbg`'LS, + libstdc++6-4.3-dbg`'LS, libstdc++6-4.4-dbg`'LS, libstdc++6-4.5-dbg`'LS, + libstdc++6-4.6-dbg`'LS, libstdc++6-4.7-dbg`'LS, libstdc++6-4.8-dbg`'LS, + libstdc++6-4.9-dbg`'LS, libstdc++6-5-dbg`'LS, libstdc++6-6-dbg`'LS +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: lib32stdc++`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,32), + libdep(stdc++CXX_SO,32), libdevdep(stdc++`'PV-dev,), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: lib32stdc++CXX_SO`'PV-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(stdc++CXX_SO,32), + libdevdep(stdc++`'PV-dev,), libdbgdep(gcc`'GCC_SO-dbg,32,>=,${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: lib32stdc++CXX_SO-dbg-TARGET-dcv1 +',`')`'dnl +Conflicts: lib32stdc++6-dbg`'LS, lib32stdc++6-4.0-dbg`'LS, + lib32stdc++6-4.1-dbg`'LS, lib32stdc++6-4.2-dbg`'LS, lib32stdc++6-4.3-dbg`'LS, + lib32stdc++6-4.4-dbg`'LS, lib32stdc++6-4.5-dbg`'LS, lib32stdc++6-4.6-dbg`'LS, + lib32stdc++6-4.7-dbg`'LS, lib32stdc++6-4.8-dbg`'LS, lib32stdc++6-4.9-dbg`'LS, + lib32stdc++6-5-dbg`'LS, lib32stdc++6-6-dbg`'LS +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: lib64stdc++`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,64), + libdep(stdc++CXX_SO,64), libdevdep(stdc++`'PV-dev,), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: lib64stdc++CXX_SO`'PV-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(stdc++CXX_SO,64), + libdevdep(stdc++`'PV-dev,), libdbgdep(gcc`'GCC_SO-dbg,64,>=,${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: lib64stdc++CXX_SO-dbg-TARGET-dcv1 +',`')`'dnl +Conflicts: lib64stdc++6-dbg`'LS, lib64stdc++6-4.0-dbg`'LS, + lib64stdc++6-4.1-dbg`'LS, lib64stdc++6-4.2-dbg`'LS, lib64stdc++6-4.3-dbg`'LS, + lib64stdc++6-4.4-dbg`'LS, lib64stdc++6-4.5-dbg`'LS, lib64stdc++6-4.6-dbg`'LS, + lib64stdc++6-4.7-dbg`'LS, lib64stdc++6-4.8-dbg`'LS, lib64stdc++6-4.9-dbg`'LS, + lib64stdc++6-5-dbg`'LS, lib64stdc++6-6-dbg`'LS +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libn32stdc++`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,n32), + libdep(stdc++CXX_SO,n32), libdevdep(stdc++`'PV-dev,), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libn32stdc++CXX_SO`'PV-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(stdc++CXX_SO,n32), + libdevdep(stdc++`'PV-dev,), libdbgdep(gcc`'GCC_SO-dbg,n32,>=,${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libn32stdc++CXX_SO-dbg-TARGET-dcv1 +',`')`'dnl +Conflicts: libn32stdc++6-dbg`'LS, libn32stdc++6-4.0-dbg`'LS, + libn32stdc++6-4.1-dbg`'LS, libn32stdc++6-4.2-dbg`'LS, libn32stdc++6-4.3-dbg`'LS, + libn32stdc++6-4.4-dbg`'LS, libn32stdc++6-4.5-dbg`'LS, libn32stdc++6-4.6-dbg`'LS, + libn32stdc++6-4.7-dbg`'LS, libn32stdc++6-4.8-dbg`'LS, libn32stdc++6-4.9-dbg`'LS, + libn32stdc++6-5-dbg`'LS, libn32stdc++6-6-dbg`'LS +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +ifenabled(`x32dev',` +Package: libx32stdc++`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,x32), libdep(stdc++CXX_SO,x32), + libdevdep(stdc++`'PV-dev,), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl x32dev + +ifenabled(`libx32dbgcxx',` +Package: libx32stdc++CXX_SO`'PV-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(stdc++CXX_SO,x32), + libdevdep(stdc++`'PV-dev,), libdbgdep(gcc`'GCC_SO-dbg,x32,>=,${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libx32stdc++CXX_SO-dbg-TARGET-dcv1 +',`')`'dnl +Conflicts: libx32stdc++6-dbg`'LS, libx32stdc++6-4.6-dbg`'LS, + libx32stdc++6-4.7-dbg`'LS, libx32stdc++6-4.8-dbg`'LS, libx32stdc++6-4.9-dbg`'LS, + libx32stdc++6-5-dbg`'LS, libx32stdc++6-6-dbg`'LS +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libx32dbgcxx + +ifenabled(`libhfdbgcxx',` +Package: libhfstdc++`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,hf), + libdep(stdc++CXX_SO,hf), libdevdep(stdc++`'PV-dev,), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libhfstdc++CXX_SO`'PV-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(stdc++CXX_SO,hf), + libdevdep(stdc++`'PV-dev,), libdbgdep(gcc`'GCC_SO-dbg,hf,>=,${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libhfstdc++CXX_SO-dbg-TARGET-dcv1 +',`')`'dnl +ifdef(`TARGET',`dnl',`Conflicts: libhfstdc++6-dbg`'LS, libhfstdc++6-4.3-dbg`'LS, libhfstdc++6-4.4-dbg`'LS, libhfstdc++6-4.5-dbg`'LS, libhfstdc++6-4.6-dbg`'LS, libhfstdc++6-4.7-dbg`'LS, libhfstdc++6-4.8-dbg`'LS, libhfstdc++6-4.9-dbg`'LS, libhfstdc++6-5-dbg`'LS, libhfstdc++6-6-dbg`'LS, libstdc++'CXX_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libhfdbgcxx + +ifenabled(`libsfdbgcxx',` +Package: libsfstdc++`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,sf), + libdep(stdc++CXX_SO,sf), libdevdep(stdc++`'PV-dev,), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libsfstdc++CXX_SO`'PV-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: optional +Depends: BASELDEP, libdep(stdc++CXX_SO,sf), + libdevdep(stdc++`'PV-dev,), libdbgdep(gcc`'GCC_SO-dbg,sf,>=,${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libsfstdc++CXX_SO-dbg-TARGET-dcv1 +',`')`'dnl +ifdef(`TARGET',`dnl',`Conflicts: libsfstdc++6-dbg`'LS, libsfstdc++6-4.3-dbg`'LS, libsfstdc++6-4.4-dbg`'LS, libsfstdc++6-4.5-dbg`'LS, libsfstdc++6-4.6-dbg`'LS, libsfstdc++6-4.7-dbg`'LS, libsfstdc++6-4.8-dbg`'LS, libsfstdc++6-4.9-dbg`'LS, libsfstdc++6-5-dbg`'LS, libhfstdc++6-6-dbg`'LS, libstdc++'CXX_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libsfdbgcxx + +ifdef(`TARGET', `', ` +Package: libstdc++`'PV-doc +Architecture: all +Section: doc +Priority: PRI(optional) +Depends: gcc`'PV-base (>= ${gcc:SoftVersion}), ${misc:Depends} +Conflicts: libstdc++5-doc, libstdc++5-3.3-doc, libstdc++6-doc, + libstdc++6-4.0-doc, libstdc++6-4.1-doc, libstdc++6-4.2-doc, libstdc++6-4.3-doc, + libstdc++6-4.4-doc, libstdc++6-4.5-doc, libstdc++6-4.6-doc, libstdc++6-4.7-doc, + libstdc++-4.8-doc, libstdc++-4.9-doc, libstdc++-5-doc, libstdc++-6-doc +Description: GNU Standard C++ Library v3 (documentation files) + This package contains documentation files for the GNU stdc++ library. + . + One set is the distribution documentation, the other set is the + source documentation including a namespace list, class hierarchy, + alphabetical list, compound list, file list, namespace members, + compound members and file members. +')`'dnl native +')`'dnl c++dev +')`'dnl c++ + +ifenabled(`ada',` +Package: gnat`'-GNAT_V`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: optional +ifdef(`MULTIARCH', `Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Depends: BASEDEP, gcc`'PV`'TS (>= ${gcc:SoftVersion}), ${dep:libgnat}, ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Suggests: gnat`'PV-doc, ada-reference-manual-2012, gnat`'-GNAT_V-sjlj +Breaks: gnat (<< 4.6.1), dh-ada-library (<< 6.0), gnat-4.6-base (= 4.6.4-2), + gnat-4.9-base (= 4.9-20140330-1) +Replaces: gnat (<< 4.6.1), dh-ada-library (<< 6.0), gnat-4.6-base (= 4.6.4-2), + gnat-4.9-base (= 4.9-20140330-1) +# Takes over symlink from gnat (<< 4.6.1): /usr/bin/gnatgcc. +# Takes over file from dh-ada-library (<< 6.0): debian_packaging.mk. +# g-base 4.6.4-2, 4.9-20140330-1 contain debian_packaging.mk by mistake. +# Newer versions of gnat and dh-ada-library will not provide these files. +Conflicts: gnat (<< 4.1), gnat-3.1, gnat-3.2, gnat-3.3, gnat-3.4, gnat-3.5, + gnat-4.0, gnat-4.1, gnat-4.2, gnat-4.3, gnat-4.4, gnat-4.6, gnat-4.7, gnat-4.8, + gnat-4.9, gnat-5`'TS, gnat-6`'TS +# These other packages will continue to provide /usr/bin/gnatmake and +# other files. +BUILT_USING`'dnl +Description: GNU Ada compiler + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + This package provides the compiler, tools and runtime library that handles + exceptions using the default zero-cost mechanism. + +ifenabled(`adasjlj',` +Package: gnat`'-GNAT_V-sjlj`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: optional +ifdef(`MULTIARCH', `Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Depends: BASEDEP, gnat`'-GNAT_V`'TS (= ${gnat:Version}), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Ada compiler (setjump/longjump runtime library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + This package provides an alternative runtime library that handles + exceptions using the setjump/longjump mechanism (as a static library + only). You can install it to supplement the normal compiler. +')`'dnl adasjlj + +ifenabled(`libgnat',` +Package: libgnat`'-GNAT_V`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: runtime for applications compiled with GNAT (shared library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the runtime shared library. + +Package: libgnat`'-GNAT_V-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Depends: BASELDEP, libgnat`'-GNAT_V`'LS (= ${gnat:Version}), ${misc:Depends} +BUILT_USING`'dnl +Description: runtime for applications compiled with GNAT (debugging symbols) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the debugging symbols. + +ifdef(`TARGET',`',` +Package: libgnatvsn`'GNAT_V-dev`'LS +TARGET_PACKAGE`'dnl +Section: libdevel +Architecture: any +Priority: optional +Depends: BASELDEP, gnat`'PV`'TS (= ${gnat:Version}), + libgnatvsn`'GNAT_V`'LS (= ${gnat:Version}), ${misc:Depends} +Conflicts: libgnatvsn-dev (<< `'GNAT_V), + libgnatvsn4.1-dev, libgnatvsn4.3-dev, libgnatvsn4.4-dev, + libgnatvsn4.5-dev, libgnatvsn4.6-dev, libgnatvsn4.9-dev, + libgnatvsn5-dev`'LS, libgnatvsn6-dev`'LS, +BUILT_USING`'dnl +Description: GNU Ada compiler selected components (development files) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnatvsn library exports selected GNAT components for use in other + packages, most notably ASIS tools. It is licensed under the GNAT-Modified + GPL, allowing to link proprietary programs with it. + . + This package contains the development files and static library. + +Package: libgnatvsn`'GNAT_V`'LS +TARGET_PACKAGE`'dnl +Architecture: any +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: PRI(optional) +Section: libs +Depends: BASELDEP, libgnat`'-GNAT_V`'LS (= ${gnat:Version}), + ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Ada compiler selected components (shared library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnatvsn library exports selected GNAT components for use in other + packages, most notably ASIS tools. It is licensed under the GNAT-Modified + GPL, allowing to link proprietary programs with it. + . + This package contains the runtime shared library. + +Package: libgnatvsn`'GNAT_V-dbg`'LS +TARGET_PACKAGE`'dnl +Architecture: any +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: optional +Section: debug +Depends: BASELDEP, libgnatvsn`'GNAT_V`'LS (= ${gnat:Version}), ${misc:Depends} +Suggests: gnat +BUILT_USING`'dnl +Description: GNU Ada compiler selected components (debugging symbols) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnatvsn library exports selected GNAT components for use in other + packages, most notably ASIS tools. It is licensed under the GNAT-Modified + GPL, allowing to link proprietary programs with it. + . + This package contains the debugging symbols. +')`'dnl native +')`'dnl libgnat + +ifenabled(`lib64gnat',` +Package: lib64gnat`'-GNAT_V +Section: libs +Architecture: biarch64_archs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: runtime for applications compiled with GNAT (64 bits shared library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the runtime shared library for 64 bits architectures. +')`'dnl libgnat + +ifenabled(`gfdldoc',` +Package: gnat`'PV-doc +Architecture: all +Section: doc +Priority: PRI(optional) +Depends: dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Suggests: gnat`'PV +Conflicts: gnat-4.1-doc, gnat-4.2-doc, + gnat-4.3-doc, gnat-4.4-doc, + gnat-4.6-doc, gnat-4.9-doc, + gnat-5-doc, gnat-6-doc, +BUILT_USING`'dnl +Description: GNU Ada compiler (documentation) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the documentation in info `format'. +')`'dnl gfdldoc +')`'dnl ada + +ifenabled(`d ',` +Package: gdc`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: optional +Depends: SOFTBASEDEP, g++`'PV`'TS (>= ${gcc:SoftVersion}), ${dep:gdccross}, ${dep:phobosdev}, ${shlibs:Depends}, ${misc:Depends} +Provides: gdc, d-compiler, d-v2-compiler +Replaces: gdc (<< 4.4.6-5) +BUILT_USING`'dnl +Description: GNU D compiler (version 2)`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') + This is the GNU D compiler, which compiles D on platforms supported by gcc. + It uses the gcc backend to generate optimised code. + . + This compiler supports D language version 2. + +ifenabled(`multilib',` +Package: gdc`'PV-multilib`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: optional +Depends: SOFTBASEDEP, gdc`'PV`'TS (= ${gcc:Version}), gcc`'PV-multilib`'TS (= ${gcc:Version}), ${dep:libphobosbiarchdev}${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU D compiler (version 2, multilib support)`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') + This is the GNU D compiler, which compiles D on platforms supported by gcc. + It uses the gcc backend to generate optimised code. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib + +ifenabled(`libphobos',` +Package: libgphobos`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`libphobos_archs') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Section: libdevel +Priority: optional +Depends: BASELDEP, libgphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + zlib1g-dev, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libgphobos`'PHOBOS_V`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`libphobos_archs') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: libgphobos68`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libgphobos`'PHOBOS_V-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`libphobos_archs') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Priority: optional +Depends: BASELDEP, libgphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +Replaces: libgphobos68-dbg`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib64gphobos`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, lib64gphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + libdevdep(gcc`'PV-dev,64), ifdef(`TARGET',`',`lib64z1-dev,') ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (64bit development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib64gphobos`'PHOBOS_V`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: lib64gphobos68`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib64gphobos`'PHOBOS_V-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, lib64gphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +Replaces: lib64gphobos68-dbg`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib32gphobos`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, lib32gphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + libdevdep(gcc`'PV-dev,32), ifdef(`TARGET',`',`lib32z1-dev,') ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (32bit development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib32gphobos`'PHOBOS_V`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: lib32gphobos68`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib32gphobos`'PHOBOS_V-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, lib32gphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +Replaces: lib32gphobos68-dbg`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +ifenabled(`libn32phobos',` +Package: libn32gphobos`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libn32gphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + libdevdep(gcc`'PV-dev,n32), ifdef(`TARGET',`',`libn32z1-dev,') ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (n32 development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libn32gphobos`'PHOBOS_V`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libn32gphobos`'PHOBOS_V-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, libn32gphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ +')`'dnl libn32phobos + +ifenabled(`libx32phobos',` +Package: libx32gphobos`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libx32gphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + libdevdep(gcc`'PV-dev,x32), ifdef(`TARGET',`',`${dep:libx32z},') ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (x32 development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libx32gphobos`'PHOBOS_V`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: libx32gphobos68`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libx32gphobos`'PHOBOS_V-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, libx32gphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +Replaces: libx32gphobos68-dbg`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ +')`'dnl libx32phobos + +ifenabled(`armml',` +Package: libhfgphobos`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libhfgphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + libdevdep(gcc`'PV-dev,hf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (hard float ABI development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libhfgphobos`'PHOBOS_V`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: libhfgphobos68`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libhfgphobos`'PHOBOS_V-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, libhfgphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +Replaces: libhfgphobos68-dbg`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libsfgphobos`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libsfgphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + libdevdep(gcc`'PV-dev,sf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (soft float ABI development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libsfgphobos`'PHOBOS_V`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: libsfgphobos68`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libsfgphobos`'PHOBOS_V-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, libsfgphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +Replaces: libsfgphobos68-dbg`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ +')`'dnl armml +')`'dnl libphobos +')`'dnl d + +ifenabled(`brig',` +ifenabled(`brigdev',` +Package: gccbrig`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: optional +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), ${dep:libcdev}, + hsail-tools, + ${shlibs:Depends}, libidevdep(hsail-rt`'PV-dev,,=), ${misc:Depends} +Suggests: ${gccbrig:multilib}, + libdbgdep(hsail-rt`'HSAIL_SO-dbg,) +Provides: brig-compiler`'TS +BUILT_USING`'dnl +Description: GNU BRIG (HSA IL) frontend + This is the GNU BRIG (HSA IL) frontend. + The consumed format is a binary representation. The textual HSAIL + can be compiled to it with a separate assembler. + +ifenabled(`multiXXXlib',` +Package: gccbrig`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: optional +Depends: BASEDEP, gccbrig`'PV`'TS (= ${gcc:Version}), + gcc`'PV-multilib`'TS (= ${gcc:Version}), ${dep:libhsailrtbiarchdev}, + ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU BRIG (HSA IL) frontend (multilib support)`'ifdef(`TARGET',` (cross compiler for TARGET architecture)', `') + This is the GNU BRIG (HSA IL) frontend. + The consumed format is a binary representation. The textual HSAIL + can be compiled to it with a separate assembler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib + +Package: libhsail-rt`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,), libdep(hsail-rt`'HSAIL_SO,), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: HSAIL runtime library (development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +ifenabled(`lib64hsail',` +Package: lib64hsail-rt`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,64), libdep(hsail-rt`'HSAIL_SO,64), + ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (64bit development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl lib64hsail + +ifenabled(`lib32hsail',` +Package: lib32hsail-rt`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,32), libdep(hsail-rt`'HSAIL_SO,32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (32bit development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl lib32hsail + +ifenabled(`libn32hsail',` +Package: libn32hsail-rt`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,n32), libdep(hsail-rt`'HSAIL_SO,n32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (n32 development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libn32hsail + +ifenabled(`x32dev',` +ifenabled(`libx32hsail',` +Package: libx32hsail-rt`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,x32), libdep(hsail-rt`'HSAIL_SO,x32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (x32 development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libx32hsail +')`'dnl x32dev + +ifenabled(`armml',` +ifenabled(`libhfhsail',` +Package: libhfhsail-rt`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,hf), libdep(hsail-rt`'HSAIL_SO,hf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (hard float ABI development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libhfhsail +')`'dnl armml + +ifenabled(`armml',` +ifenabled(`libsfhsail',` +Package: libsfhsail-rt`'PV-dev`'LS +TARGET_PACKAGE`'dnl +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: libdevel +Priority: optional +Depends: BASELDEP, libdevdep(gcc`'PV-dev,sf), libdep(hsail-rt`'HSAIL_SO,sf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (soft float development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libsfhsail +')`'dnl armml +')`'dnl hsailrtdev + +ifenabled(`libhsail',` +Package: libhsail-rt`'HSAIL_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libhsail-rt'HSAIL_SO`-armel [armel], libhsail-rt'HSAIL_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +ifelse(HSAIL_SO,`2',`Breaks: ${multiarch:breaks} +',`')')`'dnl +Priority: optional +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: libhsail-rt`'HSAIL_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libhsail-rt'HSAIL_SO`-dbg-armel [armel], libhsail-rt'HSAIL_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Priority: optional +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,,=), libdbgdep(gcc`'GCC_SO-dbg,,>=,${libgcc:Version}), ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libhsail + +ifenabled(`lib64hsail',` +Package: lib64hsail-rt`'HSAIL_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (64bit) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: lib64hsail-rt`'HSAIL_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: optional +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,64,=), libdbgdep(gcc`'GCC_SO-dbg,64,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (64 bit debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl lib64hsail + +ifenabled(`lib32hsail',` +Package: lib32hsail-rt`'HSAIL_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: HSAIL runtime library (32bit) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: lib32hsail-rt`'HSAIL_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: optional +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,32,=), libdbgdep(gcc`'GCC_SO-dbg,32,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (32 bit debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl lib32hsail + +ifenabled(`libn32hsail',` +Package: libn32hsail-rt`'HSAIL_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (n32) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: libn32hsail-rt`'HSAIL_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: optional +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,n32,=), libdbgdep(gcc`'GCC_SO-dbg,n32,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (n32 debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libn32hsail + +ifenabled(`libx32hsail',` +Package: libx32hsail-rt`'HSAIL_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (x32) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: libx32hsail-rt`'HSAIL_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: optional +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,x32,=), libdbgdep(gcc`'GCC_SO-dbg,x32,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (x32 debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libx32hsail + +ifenabled(`libhfhsail',` +Package: libhfhsail-rt`'HSAIL_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libhsail-rt'HSAIL_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: HSAIL runtime library (hard float ABI) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: libhfhsail-rt`'HSAIL_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: optional +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,hf,=), libdbgdep(gcc`'GCC_SO-dbg,hf,>=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libhsail-rt'HSAIL_SO`-dbg-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: HSAIL runtime library (hard float ABI debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libhfhsailrt + +ifenabled(`libsfhsail',` +Package: libsfhsail-rt`'HSAIL_SO`'LS +TARGET_PACKAGE`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libhsail-rt'HSAIL_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: HSAIL runtime library (soft float ABI) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: libsfhsail-rt`'HSAIL_SO-dbg`'LS +TARGET_PACKAGE`'dnl +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: optional +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,sf,=), libdbgdep(gcc`'GCC_SO-dbg,sf,>=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libhsail-rt'HSAIL_SO`-dbg-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: HSAIL runtime library (soft float ABI debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libsfhsailrt +')`'dnl brig + +ifdef(`TARGET',`',`dnl +ifenabled(`libs',` +#Package: gcc`'PV-soft-float +#Architecture: arm armel armhf +#Priority: PRI(optional) +#Depends: BASEDEP, depifenabled(`cdev',`gcc`'PV (= ${gcc:Version}),') ${shlibs:Depends}, ${misc:Depends} +#Conflicts: gcc-4.4-soft-float, gcc-4.5-soft-float, gcc-4.6-soft-float +#BUILT_USING`'dnl +#Description: GCC soft-floating-point gcc libraries (ARM) +# These are versions of basic static libraries such as libgcc.a compiled +# with the -msoft-float option, for CPUs without a floating-point unit. +')`'dnl commonlibs +')`'dnl + +ifenabled(`fixincl',` +Package: fixincludes +Architecture: any +Priority: PRI(optional) +Depends: BASEDEP, gcc`'PV (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Fix non-ANSI header files + FixIncludes was created to fix non-ANSI system header files. Many + system manufacturers supply proprietary headers that are not ANSI compliant. + The GNU compilers cannot compile non-ANSI headers. Consequently, the + FixIncludes shell script was written to fix the header files. + . + Not all packages with header files are installed on the system, when the + package is built, so we make fixincludes available at build time of other + packages, such that checking tools like lintian can make use of it. +')`'dnl fixincl + +ifenabled(`cdev',` +ifdef(`TARGET', `', ` +ifenabled(`gfdldoc',` +Package: gcc`'PV-doc +Architecture: all +Section: doc +Priority: PRI(optional) +Depends: gcc`'PV-base (>= ${gcc:SoftVersion}), dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Conflicts: gcc-docs (<< 2.95.2) +Replaces: gcc (<=2.7.2.3-4.3), gcc-docs (<< 2.95.2) +Description: Documentation for the GNU compilers (gcc, gobjc, g++) + Documentation for the GNU compilers in info `format'. +')`'dnl gfdldoc +')`'dnl native +')`'dnl cdev + +ifenabled(`olnvptx',` +Package: gcc`'PV-offload-nvptx +Architecture: amd64 +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: optional +Depends: BASEDEP, gcc`'PV (= ${gcc:Version}), ${dep:libcdev}, + nvptx-tools, libgomp-plugin-nvptx`'GOMP_SO (>= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC offloading compiler to NVPTX + The package provides offloading support for NVidia PTX. OpenMP and OpenACC + programs linked with -fopenmp will by default add PTX code into the binaries, + which can be offloaded to NVidia PTX capable devices if available. + +ifenabled(`libgompnvptx',` +Package: libgomp-plugin-nvptx`'GOMP_SO +Architecture: amd64 +Multi-Arch: same +Section: libs +Depends: BASEDEP, libgomp`'GOMP_SO`'LS, ${shlibs:Depends}, ${misc:Depends} +Suggests: libcuda1 +BUILT_USING`'dnl +Description: GCC OpenMP v4.5 plugin for offloading to NVPTX + This package contains libgomp plugin for offloading to NVidia + PTX. The plugin needs libcuda.so.1 shared library that has to be + installed separately. +')`'dnl libgompnvptx +')`'dnl olnvptx + +ifdef(`TARGET',`',`dnl +ifenabled(`libnof',` +#Package: gcc`'PV-nof +#Architecture: powerpc +#Priority: PRI(optional) +#Depends: BASEDEP, ${shlibs:Depends}ifenabled(`cdev',`, gcc`'PV (= ${gcc:Version})'), ${misc:Depends} +#Conflicts: gcc-3.2-nof +#BUILT_USING`'dnl +#Description: GCC no-floating-point gcc libraries (powerpc) +# These are versions of basic static libraries such as libgcc.a compiled +# with the -msoft-float option, for CPUs without a floating-point unit. +')`'dnl libnof +')`'dnl + +ifenabled(`source',` +Package: gcc`'PV-source +Multi-Arch: foreign +Architecture: all +Priority: PRI(optional) +Depends: make, autoconf2.64, quilt, patchutils, sharutils, gawk, lsb-release, + ${misc:Depends} +Description: Source of the GNU Compiler Collection + This package contains the sources and patches which are needed to + build the GNU Compiler Collection (GCC). +')`'dnl source +dnl +')`'dnl gcc-X.Y +dnl last line in file --- gcc-7-7.5.0.orig/debian/copyright +++ gcc-7-7.5.0/debian/copyright @@ -0,0 +1,1404 @@ +This is the Debian GNU/Linux prepackaged version of the GNU compiler +collection, containing Ada, C, C++, Fortran 95, Objective-C, +Objective-C++, and Treelang compilers, documentation, and support +libraries. In addition, Debian provides the gdc compiler, either in +the same source package, or built from a separate same source package. +Packaging is done by the Debian GCC Maintainers +, with sources obtained from: + + ftp://gcc.gnu.org/pub/gcc/releases/ (for full releases) + svn://gcc.gnu.org/svn/gcc/ (for prereleases) + http://bitbucket.org/goshawk/gdc (for D) + https://github.com/MentorEmbedded/nvptx-newlib/ (for newlib-nvptx) + +The current gcc-7 source package is taken from the SVN gcc-7-branch. + +Changes: See changelog.Debian.gz + +Debian splits the GNU Compiler Collection into packages for each language, +library, and documentation as follows: + +Language Compiler package Library package Documentation +--------------------------------------------------------------------------- +Ada gnat-7 libgnat-7 gnat-7-doc +BRIG gccbrig-7 libhsail-rt0 +C gcc-7 gcc-7-doc +C++ g++-7 libstdc++6 libstdc++6-7-doc +D gdc-7 +Fortran 95 gfortran-7 libgfortran3 gfortran-7-doc +Go gccgo-7 libgo0 +Objective C gobjc-7 libobjc2 +Objective C++ gobjc++-7 + +For some language run-time libraries, Debian provides source files, +development files, debugging symbols and libraries containing position- +independent code in separate packages: + +Language Sources Development Debugging Position-Independent +------------------------------------------------------------------------------ +C++ libstdc++6-7-dbg libstdc++6-7-pic +D libphobos-7-dev + +Additional packages include: + +All languages: +libgcc1, libgcc2, libgcc4 GCC intrinsics (platform-dependent) +gcc-7-base Base files common to all compilers +gcc-7-soft-float Software floating point (ARM only) +gcc-7-source The sources with patches + +Ada: +libgnatvsn-dev, libgnatvsn7 GNAT version library + +C: +cpp-7, cpp-7-doc GNU C Preprocessor +libssp0-dev, libssp0 GCC stack smashing protection library +libquadmath0 Math routines for the __float128 type +fixincludes Fix non-ANSI header files + +C, C++ and Fortran 95: +libgomp1-dev, libgomp1 GCC OpenMP (GOMP) support library +libitm1-dev, libitm1 GNU Transactional Memory Library + +Biarch support: On some 64-bit platforms which can also run 32-bit code, +Debian provides additional packages containing 32-bit versions of some +libraries. These packages have names beginning with 'lib32' instead of +'lib', for example lib32stdc++6. Similarly, on some 32-bit platforms which +can also run 64-bit code, Debian provides additional packages with names +beginning with 'lib64' instead of 'lib'. These packages contain 64-bit +versions of the libraries. (At this time, not all platforms and not all +libraries support biarch.) The license terms for these lib32 or lib64 +packages are identical to the ones for the lib packages. + + +COPYRIGHT STATEMENTS AND LICENSING TERMS + + +GCC is Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, +1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Files that have exception clauses are licensed under the terms of the +GNU General Public License; either version 3, or (at your option) any +later version. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', version 3 of this +license in `/usr/share/common-licenses/GPL-3'. + +The following runtime libraries are licensed under the terms of the +GNU General Public License (v3 or later) with version 3.1 of the GCC +Runtime Library Exception (included in this file): + + - libgcc (libgcc/, gcc/libgcc2.[ch], gcc/unwind*, gcc/gthr*, + gcc/coretypes.h, gcc/crtstuff.c, gcc/defaults.h, gcc/dwarf2.h, + gcc/emults.c, gcc/gbl-ctors.h, gcc/gcov-io.h, gcc/libgcov.c, + gcc/tsystem.h, gcc/typeclass.h). + - libatomic + - libdecnumber + - libgomp + - libitm + - libssp + - libstdc++-v3 + - libobjc + - libgfortran + - The libgnat-7 Ada support library and libgnatvsn library. + - Various config files in gcc/config/ used in runtime libraries. + - libvtv + +The libbacktrace library is licensed under the following terms: + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + (1) Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + (2) Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + (3) The name of the author may not be used to + endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + +The libsanitizer libraries (libasan, liblsan, libtsan, libubsan) are +licensed under the following terms: + +Copyright (c) 2009-2014 by the LLVM contributors. + +All rights reserved. + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +The libffi library is licensed under the following terms: + + libffi - Copyright (c) 1996-2003 Red Hat, Inc. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + ``Software''), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + +The documentation is licensed under the GNU Free Documentation License (v1.2). +On Debian GNU/Linux systems, the complete text of this license is in +`/usr/share/common-licenses/GFDL-1.2'. + + +GCC RUNTIME LIBRARY EXCEPTION + +Version 3.1, 31 March 2009 + +Copyright (C) 2009 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +This GCC Runtime Library Exception ("Exception") is an additional +permission under section 7 of the GNU General Public License, version +3 ("GPLv3"). It applies to a given file (the "Runtime Library") that +bears a notice placed by the copyright holder of the file stating that +the file is governed by GPLv3 along with this Exception. + +When you use GCC to compile a program, GCC may combine portions of +certain GCC header files and runtime libraries with the compiled +program. The purpose of this Exception is to allow compilation of +non-GPL (including proprietary) programs to use, in this way, the +header files and runtime libraries covered by this Exception. + +0. Definitions. + +A file is an "Independent Module" if it either requires the Runtime +Library for execution after a Compilation Process, or makes use of an +interface provided by the Runtime Library, but is not otherwise based +on the Runtime Library. + +"GCC" means a version of the GNU Compiler Collection, with or without +modifications, governed by version 3 (or a specified later version) of +the GNU General Public License (GPL) with the option of using any +subsequent versions published by the FSF. + +"GPL-compatible Software" is software whose conditions of propagation, +modification and use would permit combination with GCC in accord with +the license of GCC. + +"Target Code" refers to output from any compiler for a real or virtual +target processor architecture, in executable form or suitable for +input to an assembler, loader, linker and/or execution +phase. Notwithstanding that, Target Code does not include data in any +format that is used as a compiler intermediate representation, or used +for producing a compiler intermediate representation. + +The "Compilation Process" transforms code entirely represented in +non-intermediate languages designed for human-written code, and/or in +Java Virtual Machine byte code, into Target Code. Thus, for example, +use of source code generators and preprocessors need not be considered +part of the Compilation Process, since the Compilation Process can be +understood as starting with the output of the generators or +preprocessors. + +A Compilation Process is "Eligible" if it is done using GCC, alone or +with other GPL-compatible software, or if it is done without using any +work based on GCC. For example, using non-GPL-compatible Software to +optimize any GCC intermediate representations would not qualify as an +Eligible Compilation Process. + +1. Grant of Additional Permission. + +You have permission to propagate a work of Target Code formed by +combining the Runtime Library with Independent Modules, even if such +propagation would otherwise violate the terms of GPLv3, provided that +all Target Code was generated by Eligible Compilation Processes. You +may then convey such a combination under terms of your choice, +consistent with the licensing of the Independent Modules. + +2. No Weakening of GCC Copyleft. + +The availability of this Exception does not imply any general +presumption that third-party software is unaffected by the copyleft +requirements of the license of GCC. + + +libquadmath/*.[hc]: + + Copyright (C) 2010 Free Software Foundation, Inc. + Written by Francois-Xavier Coudert + Written by Tobias Burnus + +This file is part of the libiberty library. +Libiberty is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +Libiberty is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +libquadmath/math: + +atanq.c, expm1q.c, j0q.c, j1q.c, log1pq.c, logq.c: + Copyright 2001 by Stephen L. Moshier + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +coshq.c, erfq.c, jnq.c, lgammaq.c, powq.c, roundq.c: + Changes for 128-bit __float128 are + Copyright (C) 2001 Stephen L. Moshier + and are incorporated herein by permission of the author. The author + reserves the right to distribute this material elsewhere under different + copying permissions. These modifications are distributed here under + the following terms: + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +ldexpq.c: + * Conversion to long double by Ulrich Drepper, + * Cygnus Support, drepper@cygnus.com. + +cosq_kernel.c, expq.c, sincos_table.c, sincosq.c, sincosq_kernel.c, +sinq_kernel.c, truncq.c: + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +isinfq.c: + * Written by J.T. Conklin . + * Change for long double by Jakub Jelinek + * Public domain. + +llroundq.c, lroundq.c, tgammaq.c: + Copyright (C) 1997, 1999, 2002, 2004 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997 and + Jakub Jelinek , 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +log10q.c: + Cephes Math Library Release 2.2: January, 1991 + Copyright 1984, 1991 by Stephen L. Moshier + Adapted for glibc November, 2001 + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +remaining files: + + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + + +gcc/go/gofrontend, libgo: + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +libcilkrts, libmpx: + Copyright (C) 2009-2014, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + +D: +gdc-7 GNU D Compiler +libphobos-7-dev D standard runtime library + +The D source package is made up of the following components. + +The D front-end for GCC: + - d/* + +Copyright (C) 2004-2007 David Friedman +Modified by Vincenzo Ampolo, Michael Parrot, Iain Buclaw, (C) 2009, 2010 + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', version 2 of this +license in `/usr/share/common-licenses/GPL-2'. + + +The DMD Compiler implementation of the D programming language: + - d/dmd/* + +Copyright (c) 1999-2010 by Digital Mars +All Rights Reserved +written by Walter Bright +http://www.digitalmars.com +License for redistribution is by either the Artistic License or +the GNU General Public License (v1). + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', the Artistic +license in `/usr/share/common-licenses/Artistic'. + + +The Zlib data compression library: + - d/phobos/etc/c/zlib/* + + (C) 1995-2004 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + +The Phobos standard runtime library: + - d/phobos/* + +Unless otherwise marked within the file, each file in the source +is under the following licenses: + +Copyright (C) 2004-2005 by Digital Mars, www.digitalmars.com +Written by Walter Bright + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, in both source and binary form, subject to the following +restrictions: + + o The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + o Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + o This notice may not be removed or altered from any source + distribution. + +By plainly marking modifications, something along the lines of adding to each +file that has been changed a "Modified by Foo Bar" line +underneath the "Written by" line would be adequate. + +The libhsail-rt library is licensed under the following terms: + + Copyright (C) 2015-2017 Free Software Foundation, Inc. + Contributed by Pekka Jaaskelainen + for General Processor Tech. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + +libhsail-rt/rt/fp16.c is licensed under the following terms: + + Copyright (C) 2008-2017 Free Software Foundation, Inc. + Contributed by CodeSourcery. + + This file is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 3, or (at your option) any + later version. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . + +newlib-nvptx-20yymmdd/: + +Upstream Authors: +newlib@sources.redhat.com +Jeff Johnston +Tom Fitzsimmons + +The newlib subdirectory is a collection of software from several sources. +Each file may have its own copyright/license that is embedded in the source +file. + +This list documents those licenses which are more restrictive than +a BSD-like license or require the copyright notice +to be duplicated in documentation and/or other materials associated with +the distribution. Certain licenses documented here only apply to +specific targets. Certain clauses only apply if you are building the +code as part of your binary. + +Note that this list may omit certain licenses that +only pertain to the copying/modifying of the individual source code. +If you are distributing the source code, then you do not need to +worry about these omitted licenses, so long as you do not modify the +copyright information already in place. + +Parts of this work are licensed under the terms of the GNU General +Public License. On Debian systems, the complete text of this license +can be found in /usr/share/common-licenses/GPL. + +Parts of this work are licensed under the terms of the GNU Library +General Public License. On Debian systems, the complete text of this +license be found in /usr/share/common-licenses/LGPL. + +(1) University of California, Berkeley + +[1a] + +Copyright (c) 1990 The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that the above copyright notice and this paragraph are +duplicated in all such forms and that any documentation, +and other materials related to such distribution and use +acknowledge that the software was developed +by the University of California, Berkeley. The name of the +University may not be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +[1b] + +Copyright (c) 1990 The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that the above copyright notice and this paragraph are +duplicated in all such forms and that any documentation, +advertising materials, and other materials related to such +distribution and use acknowledge that the software was developed +by the University of California, Berkeley. The name of the +University may not be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +[1c] + +Copyright (c) 1981, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 +The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1d] + +Copyright (c) 1988, 1990, 1993 Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1e] + +Copyright (c) 1982, 1986, 1989, 1991, 1993, 1994 +The Regents of the University of California. All rights reserved. +(c) UNIX System Laboratories, Inc. +All or some portions of this file are derived from material licensed +to the University of California by American Telephone and Telegraph +Co. or Unix System Laboratories, Inc. and are reproduced herein with +the permission of UNIX System Laboratories, Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1f] + +Copyright (c) 1987, 1988, 2000 Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that: (1) source distributions retain this entire copyright +notice and comment, and (2) distributions including binaries display +the following acknowledgement: ``This product includes software +developed by the University of California, Berkeley and its contributors'' +in the documentation or other materials provided with the distribution +and in all advertising materials mentioning features or use of this +software. Neither the name of the University nor the names of its +contributors may be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +------------------------------------------------------------- + Please note that in some of the above alternate licenses, there is a + statement regarding that acknowledgement must be made in any + advertising materials for products using the code. This restriction + no longer applies due to the following license change: + + ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change + + In some cases the defunct clause has been removed in modified newlib code and + in some cases, the clause has been left as-is. +------------------------------------------------------------- + +(2) Cygwin (cygwin targets only) + +Copyright 2001 Red Hat, Inc. + +This software is a copyrighted work licensed under the terms of the +Cygwin license. Please consult the file "CYGWIN_LICENSE" for +details. + +(3) David M. Gay at AT&T + +The author of this software is David M. Gay. + +Copyright (c) 1991 by AT&T. + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire notice +is included in all copies of any software which is or includes a copy +or modification of this software and in all copies of the supporting +documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY +REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY +OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +(4) Advanced Micro Devices + +Copyright 1989, 1990 Advanced Micro Devices, Inc. + +This software is the property of Advanced Micro Devices, Inc (AMD) which +specifically grants the user the right to modify, use and distribute this +software provided this notice is not removed or altered. All other rights +are reserved by AMD. + +AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +USE OF THIS SOFTWARE. + +So that all may benefit from your experience, please report any problems +or suggestions about this software to the 29K Technical Support Center at +800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. + +Advanced Micro Devices, Inc. +29K Support Products +Mail Stop 573 +5900 E. Ben White Blvd. +Austin, TX 78741 +800-292-9263 + +(5) C.W. Sandmann + +Copyright (C) 1993 C.W. Sandmann + +This file may be freely distributed as long as the author's name remains. + +(6) Eric Backus + +(C) Copyright 1992 Eric Backus + +This software may be used freely so long as this copyright notice is +left intact. There is no warrantee on this software. + +(7) Sun Microsystems + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunPro, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + +(8) Hewlett Packard + +(c) Copyright 1986 HEWLETT-PACKARD COMPANY + +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: + permission to use, copy, modify, and distribute this file +for any purpose is hereby granted without fee, provided that +the above copyright notice and this notice appears in all +copies, and that the name of Hewlett-Packard Company not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Hewlett-Packard Company makes no representations about the +suitability of this software for any purpose. + +(9) Hans-Peter Nilsson + +Copyright (C) 2001 Hans-Peter Nilsson + +Permission to use, copy, modify, and distribute this software is +freely granted, provided that the above copyright notice, this notice +and the following disclaimer are preserved with no changes. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. + +(10) Stephane Carrez (m68hc11-elf/m68hc12-elf targets only) + +Copyright (C) 1999, 2000, 2001, 2002 Stephane Carrez (stcarrez@nerim.fr) + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +(11) Christopher G. Demetriou + +Copyright (c) 2001 Christopher G. Demetriou +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(12) SuperH, Inc. + +Copyright 2002 SuperH, Inc. All rights reserved + +This software is the property of SuperH, Inc (SuperH) which specifically +grants the user the right to modify, use and distribute this software +provided this notice is not removed or altered. All other rights are +reserved by SuperH. + +SUPERH MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO +THIS SOFTWARE. IN NO EVENT SHALL SUPERH BE LIABLE FOR INDIRECT, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR ARISING FROM +THE FURNISHING, PERFORMANCE, OR USE OF THIS SOFTWARE. + +So that all may benefit from your experience, please report any problems +or suggestions about this software to the SuperH Support Center via +e-mail at softwaresupport@superh.com . + +SuperH, Inc. +405 River Oaks Parkway +San Jose +CA 95134 +USA + +(13) Royal Institute of Technology + +Copyright (c) 1999 Kungliga Tekniska Hgskolan +(Royal Institute of Technology, Stockholm, Sweden). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of KTH nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY KTH AND ITS CONTRIBUTORS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KTH OR ITS CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(14) Alexey Zelkin + +Copyright (c) 2000, 2001 Alexey Zelkin +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(15) Andrey A. Chernov + +Copyright (C) 1997 by Andrey A. Chernov, Moscow, Russia. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(16) FreeBSD + +Copyright (c) 1997-2002 FreeBSD Project. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(17) S. L. Moshier + +Author: S. L. Moshier. + +Copyright (c) 1984,2000 S.L. Moshier + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire notice +is included in all copies of any software which is or includes a copy +or modification of this software and in all copies of the supporting +documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION +OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS +SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +(18) Citrus Project + +Copyright (c)1999 Citrus Project, +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(19) Todd C. Miller + +Copyright (c) 1998 Todd C. Miller +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(20) DJ Delorie (i386) + +Copyright (C) 1991 DJ Delorie +All rights reserved. + +Redistribution and use in source and binary forms is permitted +provided that the above copyright notice and following paragraph are +duplicated in all such forms. + +This file is distributed WITHOUT ANY WARRANTY; without even the implied +warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +(21) Free Software Foundation LGPL License (*-linux* targets only) + + Copyright (C) 1990-1999, 2000, 2001 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Mark Kettenis , 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA + +(22) Xavier Leroy LGPL License (i[3456]86-*-linux* targets only) + +Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Library General Public License for more details. + +(23) Intel (i960) + +Copyright (c) 1993 Intel Corporation + +Intel hereby grants you permission to copy, modify, and distribute this +software and its documentation. Intel grants this permission provided +that the above copyright notice appears in all copies and that both the +copyright notice and this permission notice appear in supporting +documentation. In addition, Intel grants this permission provided that +you prominently mark as "not part of the original" any modifications +made to this software or documentation, and that the name of Intel +Corporation not be used in advertising or publicity pertaining to +distribution of the software or the documentation without specific, +written prior permission. + +Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR +IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or +representations regarding the use of, or the results of the use of, +the software and documentation in terms of correctness, accuracy, +reliability, currentness, or otherwise; and you rely on the software, +documentation and results solely at your own risk. + +IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, +LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES +OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM +PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + +(24) Hewlett-Packard (hppa targets only) + +(c) Copyright 1986 HEWLETT-PACKARD COMPANY + +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: + permission to use, copy, modify, and distribute this file +for any purpose is hereby granted without fee, provided that +the above copyright notice and this notice appears in all +copies, and that the name of Hewlett-Packard Company not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Hewlett-Packard Company makes no representations about the +suitability of this software for any purpose. + +(25) Henry Spencer (only *-linux targets) + +Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved. +This software is not subject to any license of the American Telephone +and Telegraph Company or of the Regents of the University of California. + +Permission is granted to anyone to use this software for any purpose on +any computer system, and to alter it and redistribute it, subject +to the following restrictions: + +1. The author is not responsible for the consequences of use of this + software, no matter how awful, even if they arise from flaws in it. + +2. The origin of this software must not be misrepresented, either by + explicit claim or by omission. Since few users ever read sources, + credits must appear in the documentation. + +3. Altered versions must be plainly marked as such, and must not be + misrepresented as being the original software. Since few users + ever read sources, credits must appear in the documentation. + +4. This notice may not be removed or altered. + +(26) Mike Barcroft + +Copyright (c) 2001 Mike Barcroft +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(27) Konstantin Chuguev (--enable-newlib-iconv) + +Copyright (c) 1999, 2000 + Konstantin Chuguev. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + + iconv (Charset Conversion Library) v2.0 + +(27) Artem Bityuckiy (--enable-newlib-iconv) + +Copyright (c) 2003, Artem B. Bityuckiy, SoftMine Corporation. +Rights transferred to Franklin Electronic Publishers. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(28) Red Hat Incorporated + +Unless otherwise stated in each remaining newlib file, the remaining +files in the newlib subdirectory default to the following copyright. +It should be noted that Red Hat Incorporated now owns copyrights +belonging to Cygnus Solutions and Cygnus Support. + +Copyright (c) 1994, 1997, 2001, 2002, 2003, 2004 Red Hat Incorporated. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + The name of Red Hat Incorporated may not be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --- gcc-7-7.5.0.orig/debian/copyright.in +++ gcc-7-7.5.0/debian/copyright.in @@ -0,0 +1,1404 @@ +This is the Debian GNU/Linux prepackaged version of the GNU compiler +collection, containing Ada, C, C++, Fortran 95, Objective-C, +Objective-C++, and Treelang compilers, documentation, and support +libraries. In addition, Debian provides the gdc compiler, either in +the same source package, or built from a separate same source package. +Packaging is done by the Debian GCC Maintainers +, with sources obtained from: + + ftp://gcc.gnu.org/pub/gcc/releases/ (for full releases) + svn://gcc.gnu.org/svn/gcc/ (for prereleases) + http://bitbucket.org/goshawk/gdc (for D) + https://github.com/MentorEmbedded/nvptx-newlib/ (for newlib-nvptx) + +The current gcc-@BV@ source package is taken from the SVN @SVN_BRANCH@. + +Changes: See changelog.Debian.gz + +Debian splits the GNU Compiler Collection into packages for each language, +library, and documentation as follows: + +Language Compiler package Library package Documentation +--------------------------------------------------------------------------- +Ada gnat-@BV@ libgnat-@BV@ gnat-@BV@-doc +BRIG gccbrig-@BV@ libhsail-rt0 +C gcc-@BV@ gcc-@BV@-doc +C++ g++-@BV@ libstdc++6 libstdc++6-@BV@-doc +D gdc-@BV@ +Fortran 95 gfortran-@BV@ libgfortran3 gfortran-@BV@-doc +Go gccgo-@BV@ libgo0 +Objective C gobjc-@BV@ libobjc2 +Objective C++ gobjc++-@BV@ + +For some language run-time libraries, Debian provides source files, +development files, debugging symbols and libraries containing position- +independent code in separate packages: + +Language Sources Development Debugging Position-Independent +------------------------------------------------------------------------------ +C++ libstdc++6-@BV@-dbg libstdc++6-@BV@-pic +D libphobos-@BV@-dev + +Additional packages include: + +All languages: +libgcc1, libgcc2, libgcc4 GCC intrinsics (platform-dependent) +gcc-@BV@-base Base files common to all compilers +gcc-@BV@-soft-float Software floating point (ARM only) +gcc-@BV@-source The sources with patches + +Ada: +libgnatvsn-dev, libgnatvsn@BV@ GNAT version library + +C: +cpp-@BV@, cpp-@BV@-doc GNU C Preprocessor +libssp0-dev, libssp0 GCC stack smashing protection library +libquadmath0 Math routines for the __float128 type +fixincludes Fix non-ANSI header files + +C, C++ and Fortran 95: +libgomp1-dev, libgomp1 GCC OpenMP (GOMP) support library +libitm1-dev, libitm1 GNU Transactional Memory Library + +Biarch support: On some 64-bit platforms which can also run 32-bit code, +Debian provides additional packages containing 32-bit versions of some +libraries. These packages have names beginning with 'lib32' instead of +'lib', for example lib32stdc++6. Similarly, on some 32-bit platforms which +can also run 64-bit code, Debian provides additional packages with names +beginning with 'lib64' instead of 'lib'. These packages contain 64-bit +versions of the libraries. (At this time, not all platforms and not all +libraries support biarch.) The license terms for these lib32 or lib64 +packages are identical to the ones for the lib packages. + + +COPYRIGHT STATEMENTS AND LICENSING TERMS + + +GCC is Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, +1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Files that have exception clauses are licensed under the terms of the +GNU General Public License; either version 3, or (at your option) any +later version. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', version 3 of this +license in `/usr/share/common-licenses/GPL-3'. + +The following runtime libraries are licensed under the terms of the +GNU General Public License (v3 or later) with version 3.1 of the GCC +Runtime Library Exception (included in this file): + + - libgcc (libgcc/, gcc/libgcc2.[ch], gcc/unwind*, gcc/gthr*, + gcc/coretypes.h, gcc/crtstuff.c, gcc/defaults.h, gcc/dwarf2.h, + gcc/emults.c, gcc/gbl-ctors.h, gcc/gcov-io.h, gcc/libgcov.c, + gcc/tsystem.h, gcc/typeclass.h). + - libatomic + - libdecnumber + - libgomp + - libitm + - libssp + - libstdc++-v3 + - libobjc + - libgfortran + - The libgnat-@BV@ Ada support library and libgnatvsn library. + - Various config files in gcc/config/ used in runtime libraries. + - libvtv + +The libbacktrace library is licensed under the following terms: + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + (1) Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + (2) Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + (3) The name of the author may not be used to + endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + +The libsanitizer libraries (libasan, liblsan, libtsan, libubsan) are +licensed under the following terms: + +Copyright (c) 2009-2014 by the LLVM contributors. + +All rights reserved. + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +The libffi library is licensed under the following terms: + + libffi - Copyright (c) 1996-2003 Red Hat, Inc. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + ``Software''), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + +The documentation is licensed under the GNU Free Documentation License (v1.2). +On Debian GNU/Linux systems, the complete text of this license is in +`/usr/share/common-licenses/GFDL-1.2'. + + +GCC RUNTIME LIBRARY EXCEPTION + +Version 3.1, 31 March 2009 + +Copyright (C) 2009 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +This GCC Runtime Library Exception ("Exception") is an additional +permission under section 7 of the GNU General Public License, version +3 ("GPLv3"). It applies to a given file (the "Runtime Library") that +bears a notice placed by the copyright holder of the file stating that +the file is governed by GPLv3 along with this Exception. + +When you use GCC to compile a program, GCC may combine portions of +certain GCC header files and runtime libraries with the compiled +program. The purpose of this Exception is to allow compilation of +non-GPL (including proprietary) programs to use, in this way, the +header files and runtime libraries covered by this Exception. + +0. Definitions. + +A file is an "Independent Module" if it either requires the Runtime +Library for execution after a Compilation Process, or makes use of an +interface provided by the Runtime Library, but is not otherwise based +on the Runtime Library. + +"GCC" means a version of the GNU Compiler Collection, with or without +modifications, governed by version 3 (or a specified later version) of +the GNU General Public License (GPL) with the option of using any +subsequent versions published by the FSF. + +"GPL-compatible Software" is software whose conditions of propagation, +modification and use would permit combination with GCC in accord with +the license of GCC. + +"Target Code" refers to output from any compiler for a real or virtual +target processor architecture, in executable form or suitable for +input to an assembler, loader, linker and/or execution +phase. Notwithstanding that, Target Code does not include data in any +format that is used as a compiler intermediate representation, or used +for producing a compiler intermediate representation. + +The "Compilation Process" transforms code entirely represented in +non-intermediate languages designed for human-written code, and/or in +Java Virtual Machine byte code, into Target Code. Thus, for example, +use of source code generators and preprocessors need not be considered +part of the Compilation Process, since the Compilation Process can be +understood as starting with the output of the generators or +preprocessors. + +A Compilation Process is "Eligible" if it is done using GCC, alone or +with other GPL-compatible software, or if it is done without using any +work based on GCC. For example, using non-GPL-compatible Software to +optimize any GCC intermediate representations would not qualify as an +Eligible Compilation Process. + +1. Grant of Additional Permission. + +You have permission to propagate a work of Target Code formed by +combining the Runtime Library with Independent Modules, even if such +propagation would otherwise violate the terms of GPLv3, provided that +all Target Code was generated by Eligible Compilation Processes. You +may then convey such a combination under terms of your choice, +consistent with the licensing of the Independent Modules. + +2. No Weakening of GCC Copyleft. + +The availability of this Exception does not imply any general +presumption that third-party software is unaffected by the copyleft +requirements of the license of GCC. + + +libquadmath/*.[hc]: + + Copyright (C) 2010 Free Software Foundation, Inc. + Written by Francois-Xavier Coudert + Written by Tobias Burnus + +This file is part of the libiberty library. +Libiberty is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +Libiberty is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +libquadmath/math: + +atanq.c, expm1q.c, j0q.c, j1q.c, log1pq.c, logq.c: + Copyright 2001 by Stephen L. Moshier + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +coshq.c, erfq.c, jnq.c, lgammaq.c, powq.c, roundq.c: + Changes for 128-bit __float128 are + Copyright (C) 2001 Stephen L. Moshier + and are incorporated herein by permission of the author. The author + reserves the right to distribute this material elsewhere under different + copying permissions. These modifications are distributed here under + the following terms: + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +ldexpq.c: + * Conversion to long double by Ulrich Drepper, + * Cygnus Support, drepper@cygnus.com. + +cosq_kernel.c, expq.c, sincos_table.c, sincosq.c, sincosq_kernel.c, +sinq_kernel.c, truncq.c: + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +isinfq.c: + * Written by J.T. Conklin . + * Change for long double by Jakub Jelinek + * Public domain. + +llroundq.c, lroundq.c, tgammaq.c: + Copyright (C) 1997, 1999, 2002, 2004 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997 and + Jakub Jelinek , 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +log10q.c: + Cephes Math Library Release 2.2: January, 1991 + Copyright 1984, 1991 by Stephen L. Moshier + Adapted for glibc November, 2001 + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +remaining files: + + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + + +gcc/go/gofrontend, libgo: + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +libcilkrts, libmpx: + Copyright (C) 2009-2014, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + +D: +gdc-@BV@ GNU D Compiler +libphobos-@BV@-dev D standard runtime library + +The D source package is made up of the following components. + +The D front-end for GCC: + - d/* + +Copyright (C) 2004-2007 David Friedman +Modified by Vincenzo Ampolo, Michael Parrot, Iain Buclaw, (C) 2009, 2010 + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', version 2 of this +license in `/usr/share/common-licenses/GPL-2'. + + +The DMD Compiler implementation of the D programming language: + - d/dmd/* + +Copyright (c) 1999-2010 by Digital Mars +All Rights Reserved +written by Walter Bright +http://www.digitalmars.com +License for redistribution is by either the Artistic License or +the GNU General Public License (v1). + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', the Artistic +license in `/usr/share/common-licenses/Artistic'. + + +The Zlib data compression library: + - d/phobos/etc/c/zlib/* + + (C) 1995-2004 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + +The Phobos standard runtime library: + - d/phobos/* + +Unless otherwise marked within the file, each file in the source +is under the following licenses: + +Copyright (C) 2004-2005 by Digital Mars, www.digitalmars.com +Written by Walter Bright + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, in both source and binary form, subject to the following +restrictions: + + o The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + o Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + o This notice may not be removed or altered from any source + distribution. + +By plainly marking modifications, something along the lines of adding to each +file that has been changed a "Modified by Foo Bar" line +underneath the "Written by" line would be adequate. + +The libhsail-rt library is licensed under the following terms: + + Copyright (C) 2015-2017 Free Software Foundation, Inc. + Contributed by Pekka Jaaskelainen + for General Processor Tech. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + +libhsail-rt/rt/fp16.c is licensed under the following terms: + + Copyright (C) 2008-2017 Free Software Foundation, Inc. + Contributed by CodeSourcery. + + This file is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 3, or (at your option) any + later version. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . + +newlib-nvptx-20yymmdd/: + +Upstream Authors: +newlib@sources.redhat.com +Jeff Johnston +Tom Fitzsimmons + +The newlib subdirectory is a collection of software from several sources. +Each file may have its own copyright/license that is embedded in the source +file. + +This list documents those licenses which are more restrictive than +a BSD-like license or require the copyright notice +to be duplicated in documentation and/or other materials associated with +the distribution. Certain licenses documented here only apply to +specific targets. Certain clauses only apply if you are building the +code as part of your binary. + +Note that this list may omit certain licenses that +only pertain to the copying/modifying of the individual source code. +If you are distributing the source code, then you do not need to +worry about these omitted licenses, so long as you do not modify the +copyright information already in place. + +Parts of this work are licensed under the terms of the GNU General +Public License. On Debian systems, the complete text of this license +can be found in /usr/share/common-licenses/GPL. + +Parts of this work are licensed under the terms of the GNU Library +General Public License. On Debian systems, the complete text of this +license be found in /usr/share/common-licenses/LGPL. + +(1) University of California, Berkeley + +[1a] + +Copyright (c) 1990 The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that the above copyright notice and this paragraph are +duplicated in all such forms and that any documentation, +and other materials related to such distribution and use +acknowledge that the software was developed +by the University of California, Berkeley. The name of the +University may not be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +[1b] + +Copyright (c) 1990 The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that the above copyright notice and this paragraph are +duplicated in all such forms and that any documentation, +advertising materials, and other materials related to such +distribution and use acknowledge that the software was developed +by the University of California, Berkeley. The name of the +University may not be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +[1c] + +Copyright (c) 1981, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 +The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1d] + +Copyright (c) 1988, 1990, 1993 Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1e] + +Copyright (c) 1982, 1986, 1989, 1991, 1993, 1994 +The Regents of the University of California. All rights reserved. +(c) UNIX System Laboratories, Inc. +All or some portions of this file are derived from material licensed +to the University of California by American Telephone and Telegraph +Co. or Unix System Laboratories, Inc. and are reproduced herein with +the permission of UNIX System Laboratories, Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1f] + +Copyright (c) 1987, 1988, 2000 Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that: (1) source distributions retain this entire copyright +notice and comment, and (2) distributions including binaries display +the following acknowledgement: ``This product includes software +developed by the University of California, Berkeley and its contributors'' +in the documentation or other materials provided with the distribution +and in all advertising materials mentioning features or use of this +software. Neither the name of the University nor the names of its +contributors may be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +------------------------------------------------------------- + Please note that in some of the above alternate licenses, there is a + statement regarding that acknowledgement must be made in any + advertising materials for products using the code. This restriction + no longer applies due to the following license change: + + ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change + + In some cases the defunct clause has been removed in modified newlib code and + in some cases, the clause has been left as-is. +------------------------------------------------------------- + +(2) Cygwin (cygwin targets only) + +Copyright 2001 Red Hat, Inc. + +This software is a copyrighted work licensed under the terms of the +Cygwin license. Please consult the file "CYGWIN_LICENSE" for +details. + +(3) David M. Gay at AT&T + +The author of this software is David M. Gay. + +Copyright (c) 1991 by AT&T. + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire notice +is included in all copies of any software which is or includes a copy +or modification of this software and in all copies of the supporting +documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY +REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY +OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +(4) Advanced Micro Devices + +Copyright 1989, 1990 Advanced Micro Devices, Inc. + +This software is the property of Advanced Micro Devices, Inc (AMD) which +specifically grants the user the right to modify, use and distribute this +software provided this notice is not removed or altered. All other rights +are reserved by AMD. + +AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +USE OF THIS SOFTWARE. + +So that all may benefit from your experience, please report any problems +or suggestions about this software to the 29K Technical Support Center at +800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. + +Advanced Micro Devices, Inc. +29K Support Products +Mail Stop 573 +5900 E. Ben White Blvd. +Austin, TX 78741 +800-292-9263 + +(5) C.W. Sandmann + +Copyright (C) 1993 C.W. Sandmann + +This file may be freely distributed as long as the author's name remains. + +(6) Eric Backus + +(C) Copyright 1992 Eric Backus + +This software may be used freely so long as this copyright notice is +left intact. There is no warrantee on this software. + +(7) Sun Microsystems + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunPro, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + +(8) Hewlett Packard + +(c) Copyright 1986 HEWLETT-PACKARD COMPANY + +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: + permission to use, copy, modify, and distribute this file +for any purpose is hereby granted without fee, provided that +the above copyright notice and this notice appears in all +copies, and that the name of Hewlett-Packard Company not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Hewlett-Packard Company makes no representations about the +suitability of this software for any purpose. + +(9) Hans-Peter Nilsson + +Copyright (C) 2001 Hans-Peter Nilsson + +Permission to use, copy, modify, and distribute this software is +freely granted, provided that the above copyright notice, this notice +and the following disclaimer are preserved with no changes. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. + +(10) Stephane Carrez (m68hc11-elf/m68hc12-elf targets only) + +Copyright (C) 1999, 2000, 2001, 2002 Stephane Carrez (stcarrez@nerim.fr) + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +(11) Christopher G. Demetriou + +Copyright (c) 2001 Christopher G. Demetriou +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(12) SuperH, Inc. + +Copyright 2002 SuperH, Inc. All rights reserved + +This software is the property of SuperH, Inc (SuperH) which specifically +grants the user the right to modify, use and distribute this software +provided this notice is not removed or altered. All other rights are +reserved by SuperH. + +SUPERH MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO +THIS SOFTWARE. IN NO EVENT SHALL SUPERH BE LIABLE FOR INDIRECT, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR ARISING FROM +THE FURNISHING, PERFORMANCE, OR USE OF THIS SOFTWARE. + +So that all may benefit from your experience, please report any problems +or suggestions about this software to the SuperH Support Center via +e-mail at softwaresupport@superh.com . + +SuperH, Inc. +405 River Oaks Parkway +San Jose +CA 95134 +USA + +(13) Royal Institute of Technology + +Copyright (c) 1999 Kungliga Tekniska Hgskolan +(Royal Institute of Technology, Stockholm, Sweden). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of KTH nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY KTH AND ITS CONTRIBUTORS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KTH OR ITS CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(14) Alexey Zelkin + +Copyright (c) 2000, 2001 Alexey Zelkin +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(15) Andrey A. Chernov + +Copyright (C) 1997 by Andrey A. Chernov, Moscow, Russia. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(16) FreeBSD + +Copyright (c) 1997-2002 FreeBSD Project. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(17) S. L. Moshier + +Author: S. L. Moshier. + +Copyright (c) 1984,2000 S.L. Moshier + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire notice +is included in all copies of any software which is or includes a copy +or modification of this software and in all copies of the supporting +documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION +OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS +SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +(18) Citrus Project + +Copyright (c)1999 Citrus Project, +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(19) Todd C. Miller + +Copyright (c) 1998 Todd C. Miller +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(20) DJ Delorie (i386) + +Copyright (C) 1991 DJ Delorie +All rights reserved. + +Redistribution and use in source and binary forms is permitted +provided that the above copyright notice and following paragraph are +duplicated in all such forms. + +This file is distributed WITHOUT ANY WARRANTY; without even the implied +warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +(21) Free Software Foundation LGPL License (*-linux* targets only) + + Copyright (C) 1990-1999, 2000, 2001 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Mark Kettenis , 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA + +(22) Xavier Leroy LGPL License (i[3456]86-*-linux* targets only) + +Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Library General Public License for more details. + +(23) Intel (i960) + +Copyright (c) 1993 Intel Corporation + +Intel hereby grants you permission to copy, modify, and distribute this +software and its documentation. Intel grants this permission provided +that the above copyright notice appears in all copies and that both the +copyright notice and this permission notice appear in supporting +documentation. In addition, Intel grants this permission provided that +you prominently mark as "not part of the original" any modifications +made to this software or documentation, and that the name of Intel +Corporation not be used in advertising or publicity pertaining to +distribution of the software or the documentation without specific, +written prior permission. + +Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR +IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or +representations regarding the use of, or the results of the use of, +the software and documentation in terms of correctness, accuracy, +reliability, currentness, or otherwise; and you rely on the software, +documentation and results solely at your own risk. + +IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, +LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES +OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM +PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + +(24) Hewlett-Packard (hppa targets only) + +(c) Copyright 1986 HEWLETT-PACKARD COMPANY + +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: + permission to use, copy, modify, and distribute this file +for any purpose is hereby granted without fee, provided that +the above copyright notice and this notice appears in all +copies, and that the name of Hewlett-Packard Company not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Hewlett-Packard Company makes no representations about the +suitability of this software for any purpose. + +(25) Henry Spencer (only *-linux targets) + +Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved. +This software is not subject to any license of the American Telephone +and Telegraph Company or of the Regents of the University of California. + +Permission is granted to anyone to use this software for any purpose on +any computer system, and to alter it and redistribute it, subject +to the following restrictions: + +1. The author is not responsible for the consequences of use of this + software, no matter how awful, even if they arise from flaws in it. + +2. The origin of this software must not be misrepresented, either by + explicit claim or by omission. Since few users ever read sources, + credits must appear in the documentation. + +3. Altered versions must be plainly marked as such, and must not be + misrepresented as being the original software. Since few users + ever read sources, credits must appear in the documentation. + +4. This notice may not be removed or altered. + +(26) Mike Barcroft + +Copyright (c) 2001 Mike Barcroft +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(27) Konstantin Chuguev (--enable-newlib-iconv) + +Copyright (c) 1999, 2000 + Konstantin Chuguev. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + + iconv (Charset Conversion Library) v2.0 + +(27) Artem Bityuckiy (--enable-newlib-iconv) + +Copyright (c) 2003, Artem B. Bityuckiy, SoftMine Corporation. +Rights transferred to Franklin Electronic Publishers. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(28) Red Hat Incorporated + +Unless otherwise stated in each remaining newlib file, the remaining +files in the newlib subdirectory default to the following copyright. +It should be noted that Red Hat Incorporated now owns copyrights +belonging to Cygnus Solutions and Cygnus Support. + +Copyright (c) 1994, 1997, 2001, 2002, 2003, 2004 Red Hat Incorporated. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + The name of Red Hat Incorporated may not be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --- gcc-7-7.5.0.orig/debian/cpp-BV-CRB.preinst.in +++ gcc-7-7.5.0/debian/cpp-BV-CRB.preinst.in @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +if [ "$1" = "upgrade" ] || [ "$1" = "configure" ]; then + update-alternatives --quiet --remove @TARGET@-cpp /usr/bin/@TARGET@-cpp-@BV@ +fi + +#DEBHELPER# + +exit 0 --- gcc-7-7.5.0.orig/debian/cpp-BV-doc.doc-base.cpp +++ gcc-7-7.5.0/debian/cpp-BV-doc.doc-base.cpp @@ -0,0 +1,16 @@ +Document: cpp-@BV@ +Title: The GNU C preprocessor +Author: Various +Abstract: The C preprocessor is a "macro processor" that is used automatically + by the C compiler to transform your program before actual compilation. + It is called a macro processor because it allows you to define "macros", + which are brief abbreviations for longer constructs. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/cpp.html +Files: /usr/share/doc/gcc-@BV@-base/cpp.html + +Format: info +Index: /usr/share/info/cpp-@BV@.info.gz +Files: /usr/share/info/cpp-@BV@* --- gcc-7-7.5.0.orig/debian/cpp-BV-doc.doc-base.cppint +++ gcc-7-7.5.0/debian/cpp-BV-doc.doc-base.cppint @@ -0,0 +1,17 @@ +Document: cppinternals-@BV@ +Title: The GNU C preprocessor (internals) +Author: Various +Abstract: This brief manual documents the internals of cpplib, and + explains some of the tricky issues. It is intended that, along with + the comments in the source code, a reasonably competent C programmer + should be able to figure out what the code is doing, and why things + have been implemented the way they have. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/cppinternals.html +Files: /usr/share/doc/gcc-@BV@-base/cppinternals.html + +Format: info +Index: /usr/share/info/cppinternals-@BV@.info.gz +Files: /usr/share/info/cppinternals-@BV@* --- gcc-7-7.5.0.orig/debian/dh_doclink +++ gcc-7-7.5.0/debian/dh_doclink @@ -0,0 +1,12 @@ +#! /bin/sh + +pkg=`echo $1 | sed 's/^-p//'` +target=$2 + +[ -d debian/$pkg/usr/share/doc ] || mkdir -p debian/$pkg/usr/share/doc +if [ -d debian/$pkg/usr/share/doc/$p -a ! -h debian/$pkg/usr/share/doc/$p ] +then + echo "WARNING: removing doc directory $pkg" + rm -rf debian/$pkg/usr/share/doc/$pkg +fi +ln -sf $target debian/$pkg/usr/share/doc/$pkg --- gcc-7-7.5.0.orig/debian/dh_rmemptydirs +++ gcc-7-7.5.0/debian/dh_rmemptydirs @@ -0,0 +1,10 @@ +#! /bin/sh -e + +pkg=`echo $1 | sed 's/^-p//'` + +: # remove empty directories, when all components are in place +for d in `find debian/$pkg -depth -type d -empty 2> /dev/null`; do \ + while rmdir $d 2> /dev/null; do d=`dirname $d`; done; \ +done + +exit 0 --- gcc-7-7.5.0.orig/debian/dummy-man.1 +++ gcc-7-7.5.0/debian/dummy-man.1 @@ -0,0 +1,29 @@ +.TH @NAME@ 1 "May 24, 2003" @name@ "Debian Free Documentation" +.SH NAME +@name@ \- A program with a man page covered by the GFDL with invariant sections +.SH SYNOPSIS +@name@ [\fB\s-1OPTION\s0\fR] ... [\fI\s-1ARGS\s0\fR...] + +.SH DESCRIPTION + +\fB@name@\fR is documented by a man page, which is covered by the "GNU +Free Documentation License" (GFDL) containing invariant sections. +.P +In November 2002, version 1.2 of the GNU Free Documentation License (GNU +FDL) was released by the Free Software Foundation after a long period +of consultation. Unfortunately, some concerns raised by members of the +Debian Project were not addressed, and as such the GNU FDL can apply +to works that do not pass the Debian Free Software Guidelines (DFSG), +and may thus only be included in the non-free component of the Debian +archive, not the Debian distribution itself. + +.SH "SEE ALSO" +.BR http://gcc.gnu.org/onlinedocs/ +for the complete documentation, +.BR http://lists.debian.org/debian-legal/2003/debian-legal-200304/msg00307.html +for a proposed statement of Debian with respect to the GFDL, +.BR gfdl(7) + +.SH AUTHOR +This manual page was written by the Debian GCC maintainers, +for the Debian GNU/Linux system. --- gcc-7-7.5.0.orig/debian/dummy.texi +++ gcc-7-7.5.0/debian/dummy.texi @@ -0,0 +1 @@ +@c This file is empty because the original one has a non DFSG free license (GFDL) --- gcc-7-7.5.0.orig/debian/fixincludes.in +++ gcc-7-7.5.0/debian/fixincludes.in @@ -0,0 +1,8 @@ +#! /bin/sh + +PATH="/@LIBEXECDIR@/install-tools:$PATH" + +TARGET_MACHINE=`dpkg-architecture -qDEB_HOST_GNU_TYPE` +export TARGET_MACHINE + +exec fixinc.sh "$@" --- gcc-7-7.5.0.orig/debian/g++-BV-CRB.preinst.in +++ gcc-7-7.5.0/debian/g++-BV-CRB.preinst.in @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +if [ "$1" = "upgrade" ] || [ "$1" = "configure" ]; then + update-alternatives --quiet --remove @TARGET@-g++ /usr/bin/@TARGET@-g++-@BV@ +fi + +#DEBHELPER# + +exit 0 --- gcc-7-7.5.0.orig/debian/gcc-BV-CRB.preinst.in +++ gcc-7-7.5.0/debian/gcc-BV-CRB.preinst.in @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +if [ "$1" = "upgrade" ] || [ "$1" = "configure" ]; then + update-alternatives --quiet --remove @TARGET@-gcc /usr/bin/@TARGET@-gcc-@BV@ + update-alternatives --quiet --remove @TARGET@-gcov /usr/bin/@TARGET@-gcov-@BV@ +fi + +#DEBHELPER# + +exit 0 --- gcc-7-7.5.0.orig/debian/gcc-BV-doc.doc-base.gcc +++ gcc-7-7.5.0/debian/gcc-BV-doc.doc-base.gcc @@ -0,0 +1,14 @@ +Document: gcc-@BV@ +Title: The GNU C and C++ compiler +Author: Various +Abstract: This manual documents how to run, install and port the GNU compiler, + as well as its new features and incompatibilities, and how to report bugs. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/gcc.html +Files: /usr/share/doc/gcc-@BV@-base/gcc.html + +Format: info +Index: /usr/share/info/gcc-@BV@.info.gz +Files: /usr/share/info/gcc-@BV@* --- gcc-7-7.5.0.orig/debian/gcc-BV-doc.doc-base.gccint +++ gcc-7-7.5.0/debian/gcc-BV-doc.doc-base.gccint @@ -0,0 +1,17 @@ +Document: gccint-@BV@ +Title: Internals of the GNU C and C++ compiler +Author: Various +Abstract: This manual documents the internals of the GNU compilers, + including how to port them to new targets and some information about + how to write front ends for new languages. It corresponds to GCC + version @BV@.x. The use of the GNU compilers is documented in a + separate manual. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/gccint.html +Files: /usr/share/doc/gcc-@BV@-base/gccint.html + +Format: info +Index: /usr/share/info/gccint-@BV@.info.gz +Files: /usr/share/info/gccint-@BV@* --- gcc-7-7.5.0.orig/debian/gcc-BV-doc.doc-base.gomp +++ gcc-7-7.5.0/debian/gcc-BV-doc.doc-base.gomp @@ -0,0 +1,15 @@ +Document: gcc-@BV@-gomp +Title: The GNU OpenMP Implementation (for GCC @BV@) +Author: Various +Abstract: This manual documents the usage of libgomp, the GNU implementation + of the OpenMP Application Programming Interface (API) for multi-platform + shared-memory parallel programming in C/C++ and Fortran. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/libgomp.html +Files: /usr/share/doc/gcc-@BV@-base/libgomp.html + +Format: info +Index: /usr/share/info/libgomp-@BV@.info.gz +Files: /usr/share/info/libgomp-@BV@* --- gcc-7-7.5.0.orig/debian/gcc-BV-doc.doc-base.itm +++ gcc-7-7.5.0/debian/gcc-BV-doc.doc-base.itm @@ -0,0 +1,16 @@ +Document: gcc-@BV@-itm +Title: The GNU Transactional Memory Library (for GCC @BV@) +Author: Various +Abstract: This manual documents the usage and internals of libitm, + the GNU Transactional Memory Library. It provides transaction support + for accesses to a process' memory, enabling easy-to-use synchronization + of accesses to shared memory by several threads. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/libitm.html +Files: /usr/share/doc/gcc-@BV@-base/libitm.html + +Format: info +Index: /usr/share/info/libitm-@BV@.info.gz +Files: /usr/share/info/libitm-@BV@* --- gcc-7-7.5.0.orig/debian/gcc-BV-doc.doc-base.qmath +++ gcc-7-7.5.0/debian/gcc-BV-doc.doc-base.qmath @@ -0,0 +1,14 @@ +Document: gcc-@BV@-qmath +Title: The GCC Quad-Precision Math Library (for GCC @BV@) +Author: Various +Abstract: This manual documents the usage of libquadmath, the GCC + Quad-Precision Math Library Application Programming Interface (API). +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/libquadmath.html +Files: /usr/share/doc/gcc-@BV@-base/libquadmath.html + +Format: info +Index: /usr/share/info/libquadmath-@BV@.info.gz +Files: /usr/share/info/libquadmath-@BV@* --- gcc-7-7.5.0.orig/debian/gcc-BV-hppa64-linux-gnu.overrides +++ gcc-7-7.5.0/debian/gcc-BV-hppa64-linux-gnu.overrides @@ -0,0 +1,3 @@ +gcc-@BV@-hppa64-linux-gnu binary: binary-from-other-architecture +gcc-@BV@-hppa64-linux-gnu binary: binary-without-manpage +gcc-@BV@-hppa64-linux-gnu binary: hardening-no-pie --- gcc-7-7.5.0.orig/debian/gcc-BV-multilib.overrides +++ gcc-7-7.5.0/debian/gcc-BV-multilib.overrides @@ -0,0 +1 @@ +gcc-@BV@-multilib binary: binary-from-other-architecture --- gcc-7-7.5.0.orig/debian/gcc-BV-source.overrides +++ gcc-7-7.5.0/debian/gcc-BV-source.overrides @@ -0,0 +1,5 @@ +gcc-@BV@-source: changelog-file-not-compressed + +# these are patches taken over unmodified from 4.3 +gcc-@BV@-source: script-not-executable +gcc-@BV@-source: shell-script-fails-syntax-check --- gcc-7-7.5.0.orig/debian/gcc-XX-BV.1 +++ gcc-7-7.5.0/debian/gcc-XX-BV.1 @@ -0,0 +1,17 @@ +.TH GCC-@TOOL@-@BV@ 1 "May 8, 2012" gcc-@TOOL@-@BV@ "" +.SH NAME +gcc-@TOOL@ \- a wrapper around @TOOL@ adding the --plugin option + +.SH SYNOPSIS +gcc-@TOOL@ [\fB\s-1OPTION\s0\fR] ... [\fI\s-1ARGS\s0\fR...] + +.SH DESCRIPTION + +\fBgcc-@TOOL@\fR is a wrapper around @TOOL@(1) adding the appropriate +\fB\-\-plugin\fR option for the GCC @BV@ compiler. + +.SH OPTIONS +See @TOOL@(1) for a list of options that @TOOL@ understands. + +.SH "SEE ALSO" +.BR @TOOL@(1) --- gcc-7-7.5.0.orig/debian/gcc-dummy.texi +++ gcc-7-7.5.0/debian/gcc-dummy.texi @@ -0,0 +1,41 @@ +\input texinfo @c -*-texinfo-*- +@c %**start of header + +@settitle The GNU Compiler Collection (GCC) + +@c Create a separate index for command line options. +@defcodeindex op +@c Merge the standard indexes into a single one. +@syncodeindex fn cp +@syncodeindex vr cp +@syncodeindex ky cp +@syncodeindex pg cp +@syncodeindex tp cp + +@paragraphindent 1 + +@c %**end of header + +@copying +The current documentation is licensed under the same terms as the Debian packaging. +@end copying +@ifnottex +@dircategory Programming +@direntry +* @name@: (@name@). The GNU Compiler Collection (@name@). +@end direntry +@sp 1 +@end ifnottex + +@summarycontents +@contents +@page + +@node Top +@top Introduction +@cindex introduction +The official GNU compilers' documentation is released under the terms +of the GNU Free Documentation License with cover texts. This has been +considered non free by the Debian Project. Thus you will find it in the +non-free section of the Debian archive. +@bye --- gcc-7-7.5.0.orig/debian/gcc-snapshot.overrides +++ gcc-7-7.5.0/debian/gcc-snapshot.overrides @@ -0,0 +1,10 @@ +gcc-snapshot binary: bad-permissions-for-ali-file + +# keep patched ltdl copy +gcc-snapshot binary: embedded-library + +gcc-snapshot binary: binary-from-other-architecture +gcc-snapshot binary: extra-license-file +gcc-snapshot binary: jar-not-in-usr-share +gcc-snapshot binary: triplet-dir-and-architecture-mismatch +gcc-snapshot binary: unstripped-binary-or-object --- gcc-7-7.5.0.orig/debian/gcc-snapshot.prerm +++ gcc-7-7.5.0/debian/gcc-snapshot.prerm @@ -0,0 +1,5 @@ +#! /bin/sh -e + +rm -f /usr/lib/gcc-snapshot/share/python/*.py[co] + +#DEBHELPER# --- gcc-7-7.5.0.orig/debian/gcc.css +++ gcc-7-7.5.0/debian/gcc.css @@ -0,0 +1,106 @@ +/* CSS for the GCC web site. + + Gerald Pfeifer + */ + +body { background-color: white; color: black; } + +a:link { color: #0066bb; text-decoration: none; } +a:visited { color: #003399; text-decoration: none; } +a:hover { color: darkorange; text-decoration: none; } + +h1 { color: darkslategray; text-align:center; } +h2 { color: darkslategray; } + +.highlight{ color: darkslategray; font-weight:bold; } +.smaller { font-size: 80%; } + +.no-margin-top { margin-top:0; } +.twocolumns { column-counts:2; -moz-column-count:2; } +.imgleft { margin: 5px 20px; float: left; } + +td.news { width: 50%; padding-right: 8px; } +td.news h2 { font-size: 1.2em; margin-top: 0; margin-bottom: 2%; } +td.news dl { margin-top:0; } +td.news dt { color:darkslategrey; font-weight:bold; margin-top:0.3em; } +td.news dd { margin-left:3ex; margin-top:0.1em; margin-bottom:0.1em; } +td.news .date { color:darkslategrey; font-size:90%; margin-left:0.1ex; } + +td.status { width: 50%; padding-left: 12px; border-left: #3366cc thin solid; } +td.status h2 { font-size: 1.2em; margin-top:0; margin-bottom: 1%; } +td.status dl { margin-top:0; } +td.status .version { font-weight:bold; } +td.status .regress { font-size: 80%; } +td.status dd { margin-left:3ex; } + +table.nav { + padding-left: 32px; + border-spacing: 0pt; +} + +table.navitem { + border-spacing: 0pt; +} + +table.navitem tr:nth-child(1) { + border-color: #3366cc; + border-style: solid; + border-width: thin; + color: #f2f2f9; + background-color: #0066dd; + font-weight: bold; +} +table.navitem tr:nth-child(2) { + padding-top: 3px; + padding-left: 8px; + padding-bottom: 3px; + background-color: #f2f2f9; + font-size: smaller; +} + +div.copyright { + font-size: smaller; + background: #f2f2f9; + border: 2px solid #3366cc; + border-style: solid; + border-width: thin; + padding: 4px; +} +div.copyright p:nth-child(3) { margin-bottom: 0; } + +.boldcyan { font-weight:bold; color:cyan; } +.boldlime { font-weight:bold; color:lime; } +.boldmagenta { font-weight:bold; color:magenta; } +.boldred { font-weight:bold; color:red; } +.boldblue { font-weight:bold; color:blue; } +.green { color:green; } + +/* Quote an e-mail. The first
has the sender, the second the quote. */ +blockquote.mail div:nth-child(2) { border-left: solid blue; padding-left: 4pt; } + +/* C++ status tables. */ +table.cxxstatus th, table.cxxstatus td { border: 1px solid gray; } +table.cxxstatus td:nth-child(3) { text-align:center; } +table.cxxstatus tr.separator { background: #f2f2f9; } + +.supported { background-color: lightgreen; } +.unsupported { background-color: lightsalmon; } + +/* Online documentation. */ + +pre.smallexample { + font-size: medium; + background: #f2f2f9; + padding: 4px; +} + +/* Classpath versus libgcj merge status page. */ + +.classpath-only { background-color: #FFFFAA; } +.libgcj-only { background-color: #FFFFAA; } +.VM-specific { background-color: #CCCCFF; } +.GCJ-specific { background-color: #CCCCFF; } +.needsmerge { background-color: #FF9090; } +.merged { background-color: #22FF22; } +.merged-expected-diff { background-color: #22FF22; } +.merged-unexpected-diff { background-color: #FF4444; } --- gcc-7-7.5.0.orig/debian/gccgo-BV-doc.doc-base +++ gcc-7-7.5.0/debian/gccgo-BV-doc.doc-base @@ -0,0 +1,17 @@ +Document: gccgo-@BV@ +Title: The GNU Go compiler (version @BV@) +Author: Various +Abstract: This manual describes how to use gccgo, the GNU compiler for + the Go programming language. This manual is specifically about + gccgo. For more information about the Go programming + language in general, including language specifications and standard + package documentation, see http://golang.org/. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/gccgo.html +Files: /usr/share/doc/gcc-@BV@-base/gccgo.html + +Format: info +Index: /usr/share/info/gccgo-@BV@.info.gz +Files: /usr/share/info/gccgo-@BV@* --- gcc-7-7.5.0.orig/debian/gen-libstdc-breaks.sh +++ gcc-7-7.5.0/debian/gen-libstdc-breaks.sh @@ -0,0 +1,178 @@ +#! /bin/sh + +# https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=gcc-pr66145;users=debian-gcc@lists.debian.org + +vendor=Debian +if dpkg-vendor --derives-from Ubuntu; then + vendor=Ubuntu +fi + +if [ "$vendor" = Debian ]; then + : + pkgs=$(echo ' +antlr +libaqsis1 +libassimp3 +blockattack +boo +libboost-date-time1.54.0 +libboost-date-time1.55.0 +libcpprest2.4 +printer-driver-brlaser +c++-annotations +clustalx +libdavix0 +libdballe6 +dff +libdiet-sed2.8 +libdiet-client2.8 +libdiet-admin2.8 +digikam-private-libs +emscripten +ergo +fceux +flush +libfreefem++ +freeorion +fslview +fwbuilder +libgazebo5 +libgetfem4++ +libgmsh2 +gnote +gnudatalanguage +python-healpy +innoextract +libinsighttoolkit4.7 +libdap17 +libdapclient6 +libdapserver7 +libkolabxml1 +libpqxx-4.0 +libreoffice-core +librime1 +libwibble-dev +lightspark +libmarisa0 +mira-assembler +mongodb +mongodb-server +ncbi-blast+ +libogre-1.8.0 +libogre-1.9.0 +openscad +libopenwalnut1 +passepartout +pdf2djvu +photoprint +plastimatch +plee-the-bear +povray +powertop +psi4 +python3-taglib +realtimebattle +ruby-passenger +libapache2-mod-passenger +schroot +sqlitebrowser +tecnoballz +wesnoth-1.12-core +widelands +libwreport2 +xflr5 +libxmltooling6') +else + pkgs=$(echo ' +antlr +libaqsis1 +libassimp3 +blockattack +boo +libboost-date-time1.55.0 +libcpprest2.2 +printer-driver-brlaser +c++-annotations +chromium-browser +clustalx +libdavix0 +libdballe6 +dff +libdiet-sed2.8 +libdiet-client2.8 +libdiet-admin2.8 +libkgeomap2 +libmediawiki1 +libkvkontakte1 +emscripten +ergo +fceux +flush +libfreefem++ +freeorion +fslview +fwbuilder +libgazebo5 +libgetfem4++ +libgmsh2 +gnote +gnudatalanguage +python-healpy +innoextract +libinsighttoolkit4.6 +libdap17 +libdapclient6 +libdapserver7 +libkolabxml1 +libpqxx-4.0 +libreoffice-core +librime1 +libwibble-dev +lightspark +libmarisa0 +mira-assembler +mongodb +mongodb-server +ncbi-blast+ +libogre-1.8.0 +libogre-1.9.0 +openscad +libopenwalnut1 +passepartout +pdf2djvu +photoprint +plastimatch +plee-the-bear +povray +powertop +psi4 +python3-taglib +realtimebattle +ruby-passenger +libapache2-mod-passenger +sqlitebrowser +tecnoballz +wesnoth-1.12-core +widelands +libwreport2 +xflr5 +libxmltooling6') +fi + +fn=debian/libstdc++-breaks.$vendor +rm -f $fn +echo $pkgs +for p in $pkgs; do + #echo $p + if ! apt-cache show --no-all-versions $p >/dev/null; then + echo "not found: $p" + fi + v=$(apt-cache show --no-all-versions $p | awk '/^Version/ {print $2}') + case "$p" in + libboost-date-time*) + echo "$p," >> $fn + ;; + *) + echo "$p (<= $v)," >> $fn + esac +done --- gcc-7-7.5.0.orig/debian/gfortran-BV-CRB.preinst.in +++ gcc-7-7.5.0/debian/gfortran-BV-CRB.preinst.in @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +if [ "$1" = "upgrade" ] || [ "$1" = "configure" ]; then + update-alternatives --quiet --remove @TARGET@-gfortran /usr/bin/@TARGET@-gfortran-@BV@ +fi + +#DEBHELPER# + +exit 0 --- gcc-7-7.5.0.orig/debian/gfortran-BV-doc.doc-base +++ gcc-7-7.5.0/debian/gfortran-BV-doc.doc-base @@ -0,0 +1,14 @@ +Document: gfortran-@BV@ +Title: The GNU Fortran Compiler +Author: Various +Abstract: This manual documents how to run, install and port `gfortran', + as well as its new features and incompatibilities, and how to report bugs. +Section: Programming/Fortran + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/fortran/gfortran.html +Files: /usr/share/doc/gcc-@BV@-base/fortran/gfortran.html + +Format: info +Index: /usr/share/info/gfortran-@BV@.info.gz +Files: /usr/share/info/gfortran-@BV@* --- gcc-7-7.5.0.orig/debian/gnat-BV-doc.doc-base.rm +++ gcc-7-7.5.0/debian/gnat-BV-doc.doc-base.rm @@ -0,0 +1,16 @@ +Document: gnat-rm-@BV@ +Title: GNAT (GNU Ada) Reference Manual +Author: Various +Abstract: This manual contains useful information in writing programs + using the GNAT compiler. It includes information on implementation + dependent characteristics of GNAT, including all the information + required by Annex M of the standard. +Section: Programming/Ada + +Format: html +Index: /usr/share/doc/gnat-@BV@-doc/gnat_rm.html +Files: /usr/share/doc/gnat-@BV@-doc/gnat_rm.html + +Format: info +Index: /usr/share/info/gnat_rm-@BV@.info.gz +Files: /usr/share/info/gnat_rm-@BV@* --- gcc-7-7.5.0.orig/debian/gnat-BV-doc.doc-base.style +++ gcc-7-7.5.0/debian/gnat-BV-doc.doc-base.style @@ -0,0 +1,16 @@ +Document: gnat-style-@BV@ +Title: GNAT Coding Style +Author: Various +Abstract: Most of GNAT is written in Ada using a consistent style to + ensure readability of the code. This document has been written to + help maintain this consistent style, while having a large group of + developers work on the compiler. +Section: Programming/Ada + +Format: html +Index: /usr/share/doc/gnat-@BV@-doc/gnat-style.html +Files: /usr/share/doc/gnat-@BV@-doc/gnat-style.html + +Format: info +Index: /usr/share/info/gnat-style-@BV@.info.gz +Files: /usr/share/info/gnat-style-@BV@* --- gcc-7-7.5.0.orig/debian/gnat-BV-doc.doc-base.ug +++ gcc-7-7.5.0/debian/gnat-BV-doc.doc-base.ug @@ -0,0 +1,16 @@ +Document: gnat-ugn-@BV@ +Title: GNAT User's Guide for Unix Platforms +Author: Various +Abstract: This guide describes the use of GNAT, a compiler and + software development toolset for the full Ada 95 programming language. + It describes the features of the compiler and tools, and details how + to use them to build Ada 95 applications. +Section: Programming/Ada + +Format: html +Index: /usr/share/doc/gnat-@BV@-doc/gnat_ugn.html +Files: /usr/share/doc/gnat-@BV@-doc/gnat_ugn.html + +Format: info +Index: /usr/share/info/gnat_ugn-@BV@.info.gz +Files: /usr/share/info/gnat_ugn-@BV@* --- gcc-7-7.5.0.orig/debian/gnat.1 +++ gcc-7-7.5.0/debian/gnat.1 @@ -0,0 +1,43 @@ +.\" Hey, Emacs! This is an -*- nroff -*- source file. +.\" +.\" Copyright (C) 1996 Erick Branderhorst +.\" Copyright (C) 2011 Nicolas Boulenguez +.\" +.\" This is free software; you can redistribute it and/or modify it under +.\" the terms of the GNU General Public License as published by the Free +.\" Software Foundation; either version 2, or (at your option) any later +.\" version. +.\" +.\" This is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" for more details. +.\" +.\" You should have received a copy of the GNU General Public License with +.\" your Debian GNU/Linux system, in /usr/doc/copyright/GPL, or with the +.\" dpkg source package as the file COPYING. If not, write to the Free +.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +.\" +.\" +.TH "GNAT TOOLBOX" 1 "Jun 2002" "Debian Project" "Debian Linux" +.SH NAME +gnat, gnatbind, gnatbl, gnatchop, gnatfind, gnathtml, gnatkr, gnatlink, +gnatls, gnatmake, gnatprep, gnatpsta, gnatpsys, gnatxref \- +GNAT toolbox +.SH DESCRIPTION +Those programs are part of GNU GNAT, a freely available Ada 95 compiler. +.PP +For accessing the full GNAT manuals, use +.B info gnat-ug-4.8 +and +.B info gnat-rm-4.8 +for the sections related to the reference manual. +If those sections cannot be found, you will have to install the +gnat-4.4-doc package as well (since these manuals contain invariant parts, +the package is located in the non-free part of the Debian archive). +You may also browse +.B http://gcc.gnu.org/onlinedocs +which provides the GCC online documentation. +.SH AUTHOR +This manpage has been written by Samuel Tardieu , for the +Debian GNU/Linux project. --- gcc-7-7.5.0.orig/debian/lib32asan4.overrides +++ gcc-7-7.5.0/debian/lib32asan4.overrides @@ -0,0 +1,2 @@ +# automake gets it wrong for the multilib build +lib32asan4 binary: binary-or-shlib-defines-rpath --- gcc-7-7.5.0.orig/debian/lib32asan4.symbols +++ gcc-7-7.5.0/debian/lib32asan4.symbols @@ -0,0 +1,7 @@ +libasan.so.4 lib32asan4 #MINVER# +#include "libasan.symbols.common" +#include "libasan.symbols.32" + (arch=s390x)__interceptor___tls_get_addr_internal@Base 7 + (arch=s390x)__interceptor___tls_get_offset@Base 7 + (arch=s390x)__tls_get_addr_internal@Base 7 + (arch=s390x)__tls_get_offset@Base 7 --- gcc-7-7.5.0.orig/debian/lib32gccLC.postinst +++ gcc-7-7.5.0/debian/lib32gccLC.postinst @@ -0,0 +1,12 @@ +#! /bin/sh -e + +case "$1" in + configure) + docdir=/usr/share/doc/lib32gcc@LC@ + if [ -d $docdir ] && [ ! -h $docdir ]; then + rm -rf $docdir + ln -s gcc-@BV@-base $docdir + fi +esac + +#DEBHELPER# --- gcc-7-7.5.0.orig/debian/lib32gphobos71.lintian-overrides +++ gcc-7-7.5.0/debian/lib32gphobos71.lintian-overrides @@ -0,0 +1,2 @@ +# no usable zconf.h header in lib32z1-dev +lib32gphobos71 binary: embedded-library --- gcc-7-7.5.0.orig/debian/lib32stdc++6.symbols.amd64 +++ gcc-7-7.5.0/debian/lib32stdc++6.symbols.amd64 @@ -0,0 +1,14 @@ +libstdc++.so.6 lib32stdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + __gxx_personality_v0@CXXABI_1.3 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 +#(optional)_Z16__VLTRegisterSetPPvPKvjjS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z17__VLTRegisterPairPPvPKvjS2_@CXXABI_1.3.8 4.9.0 +#(optional)_Z21__VLTRegisterSetDebugPPvPKvjjS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z22__VLTRegisterPairDebugPPvPKvjS2_PKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)_Z24__VLTVerifyVtablePointerPPvPKv@CXXABI_1.3.8 4.9.0 +#(optional)_Z29__VLTVerifyVtablePointerDebugPPvPKvPKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)__VLTChangePermission@CXXABI_1.3.8 4.9.0 --- gcc-7-7.5.0.orig/debian/lib32stdc++6.symbols.kfreebsd-amd64 +++ gcc-7-7.5.0/debian/lib32stdc++6.symbols.kfreebsd-amd64 @@ -0,0 +1,7 @@ +libstdc++.so.6 lib32stdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + __gxx_personality_v0@CXXABI_1.3 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 --- gcc-7-7.5.0.orig/debian/lib32stdc++6.symbols.ppc64 +++ gcc-7-7.5.0/debian/lib32stdc++6.symbols.ppc64 @@ -0,0 +1,9 @@ +libstdc++.so.6 lib32stdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.excprop" + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.32bit" +#include "libstdc++6.symbols.money.f128" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 --- gcc-7-7.5.0.orig/debian/lib32stdc++6.symbols.s390x +++ gcc-7-7.5.0/debian/lib32stdc++6.symbols.s390x @@ -0,0 +1,558 @@ +libstdc++.so.6 lib32stdc++6 #MINVER# +#include "libstdc++6.symbols.common" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.f128" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx17__pool_alloc_base16_M_get_free_listEm@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx17__pool_alloc_base9_M_refillEm@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx6__poolILb0EE16_M_reclaim_blockEPcm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb0EE16_M_reserve_blockEmm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE16_M_reclaim_blockEPcm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE16_M_reserve_blockEmm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx9free_list6_M_getEm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsgetnEPci@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsputnEPKci@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsgetnEPwi@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsputnEPKwi@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@CXXABI_1.3 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc@GLIBCXX_3.4.5 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE2atEm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKw@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE8_M_limitEmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEEixEm@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs15_M_check_lengthEmmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs15_M_check_lengthEmmPKc@GLIBCXX_3.4.5 4.1.1 + _ZNKSs16find_last_not_ofEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs2atEm@GLIBCXX_3.4 4.1.1 + _ZNKSs4copyEPcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs4findERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs6substrEmm@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEmmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEmmPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEmmRKSs@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEmmRKSsmm@GLIBCXX_3.4 4.1.1 + _ZNKSs8_M_checkEmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs8_M_limitEmm@GLIBCXX_3.4 4.1.1 + _ZNKSsixEm@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE6_M_putEPcmPKcPK2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE6_M_putEPwmPKwPK2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERS0_PKcS4_m@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_m@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIcE12_M_transformEPcPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIwE12_M_transformEPwPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcmcRSt8ios_basePcS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcmcS6_PcS7_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcmwRSt8ios_basePwS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcmwPKwPwS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES3_S3_RiiimRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES3_S3_RiPPKcmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES3_S3_RiPPKcmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.14 4.5.0 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES3_S3_RiiimRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES3_S3_RiPPKwmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES3_S3_RiPPKwmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.14 4.5.0 + _ZNSbIwSt11char_traitsIwESaIwEE10_S_compareEmm@GLIBCXX_3.4.16 4.7 + _ZNKSt8valarrayImE4sizeEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEmwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE14_M_replace_auxEmmmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeEmmPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE18_S_construct_aux_2EmwRKS1_@GLIBCXX_3.4.14 4.5.0 + _ZNSbIwSt11char_traitsIwESaIwEE2atEm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_m@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEmmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE5eraseEmm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendEmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignEmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6resizeEm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7reserveEm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEixEm@GLIBCXX_3.4 4.1.1 + _ZNSi3getEPci@GLIBCXX_3.4 4.1.1 + _ZNSi3getEPcic@GLIBCXX_3.4 4.1.1 + _ZNSi4readEPci@GLIBCXX_3.4 4.1.1 + _ZNSi5seekgExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSi6ignoreEi@GLIBCXX_3.4 4.1.1 + _ZNSi6ignoreEi@GLIBCXX_3.4.5 4.1.1 + _ZNSi6ignoreEii@GLIBCXX_3.4 4.1.1 + _ZNSi7getlineEPci@GLIBCXX_3.4 4.1.1 + _ZNSi7getlineEPcic@GLIBCXX_3.4 4.1.1 + _ZNSi8readsomeEPci@GLIBCXX_3.4 4.1.1 + _ZNSo5seekpExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSo5writeEPKci@GLIBCXX_3.4 4.1.1 + _ZNSo8_M_writeEPKci@GLIBCXX_3.4 4.1.1 + _ZNSs10_S_compareEmm@GLIBCXX_3.4.16 4.7 + _ZNSs12_S_constructEmcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs14_M_replace_auxEmmmc@GLIBCXX_3.4 4.1.1 + _ZNSs15_M_replace_safeEmmPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs18_S_construct_aux_2EmcRKSaIcE@GLIBCXX_3.4.14 4.5.0 + _ZNSs2atEm@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4.5 4.1.1 + _ZNSs4_Rep8_M_cloneERKSaIcEm@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep9_S_createEmmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs5eraseEmm@GLIBCXX_3.4 4.1.1 + _ZNSs6appendEPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs6appendERKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSs6appendEmc@GLIBCXX_3.4 4.1.1 + _ZNSs6assignEPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs6assignERKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSs6assignEmc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmPKc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmRKSs@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmRKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmmc@GLIBCXX_3.4 4.1.1 + _ZNSs6resizeEm@GLIBCXX_3.4 4.1.1 + _ZNSs6resizeEmc@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_copyEPcPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_copyEPcPKcm@GLIBCXX_3.4.5 4.1.1 + _ZNSs7_M_moveEPcPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_moveEPcPKcm@GLIBCXX_3.4.5 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmPKc@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmRKSs@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmRKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmmc@GLIBCXX_3.4 4.1.1 + _ZNSs7reserveEm@GLIBCXX_3.4 4.1.1 + _ZNSs9_M_assignEPcmc@GLIBCXX_3.4 4.1.1 + _ZNSs9_M_assignEPcmc@GLIBCXX_3.4.5 4.1.1 + _ZNSs9_M_mutateEmmm@GLIBCXX_3.4 4.1.1 + _ZNSsC1EPKcmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1ERKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSsC1ERKSsmmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1EmcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2EPKcmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2ERKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSsC2ERKSsmmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2EmcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsixEm@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC1EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC1EPci@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC2EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC2EPci@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1EPSt17__timepunct_cacheIcEm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2EPSt17__timepunct_cacheIcEm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1EPSt17__timepunct_cacheIwEm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2EPSt17__timepunct_cacheIwEm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE6xsgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE6xsputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE7seekoffExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE8xsputn_2EPKciS2_i@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf8_M_allocEm@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf8_M_setupEPcS0_i@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPFPvmEPFvS0_E@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKai@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKhi@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPaiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPciS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPhiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1Ei@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPFPvmEPFvS0_E@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKai@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKhi@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPaiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPciS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPhiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2Ei@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE13_M_set_bufferEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE13_M_set_bufferEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwiw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi@GLIBCXX_3.4.5 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEij@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwiw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_writeEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIcEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIcEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_gbumpEi@GLIBCXX_3.4.16 4.7 + _ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_pbumpEi@GLIBCXX_3.4.16 4.7 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_gbumpEi@GLIBCXX_3.4.16 4.7 + _ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_pbumpEi@GLIBCXX_3.4.16 4.7 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcmm@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS4_x@GLIBCXX_3.4.16 4.7 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwmm@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS4_x@GLIBCXX_3.4.16 4.7 + _ZNSt15messages_bynameIcEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIcEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb0EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb0EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC1EP15__locale_structPKtbm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC1EPKtbm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC2EP15__locale_structPKtbm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC2EPKtbm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@GLIBCXX_3.4 4.1.1 + _ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetEm@GLIBCXX_3.4.7 4.1.1 + _ZNSt6locale5_ImplC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC1ERKS0_m@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2ERKS0_m@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1EPSt16__numpunct_cacheIcEm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2EPSt16__numpunct_cacheIcEm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1EPSt16__numpunct_cacheIwEm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2EPSt16__numpunct_cacheIwEm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEC1ERKS0_@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEC2ERKS0_@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEixEm@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZSt11_Hash_bytesPKvmm@CXXABI_1.3.5 4.6 + _ZSt15_Fnv_hash_bytesPKvmm@CXXABI_1.3.5 4.6 + _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_i@GLIBCXX_3.4.9 4.2.1 + _ZSt16__ostream_insertIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_i@GLIBCXX_3.4.9 4.2.1 + _ZSt17__copy_streambufsIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_@GLIBCXX_3.4.6 4.1.1 + _ZSt17__copy_streambufsIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_@GLIBCXX_3.4.6 4.1.1 + _ZSt17__verify_groupingPKcmRKSs@GLIBCXX_3.4.10 4.3 + _ZSt21__copy_streambufs_eofIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_Rb@GLIBCXX_3.4.9 4.2.1 + _ZSt21__copy_streambufs_eofIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_Rb@GLIBCXX_3.4.9 4.2.1 + _ZThn8_NSdD0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSdD1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt9strstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt9strstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSdD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSdD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSiD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSiD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSoD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSoD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10istrstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10istrstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10ostrstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10ostrstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt9strstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt9strstreamD1Ev@GLIBCXX_3.4 4.1.1 + _Znam@GLIBCXX_3.4 4.1.1 + _ZnamRKSt9nothrow_t@GLIBCXX_3.4 4.1.1 + _Znwm@GLIBCXX_3.4 4.1.1 + _ZnwmRKSt9nothrow_t@GLIBCXX_3.4 4.1.1 + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.32bit.s390" + _ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@GLIBCXX_3.4 4.1.1 --- gcc-7-7.5.0.orig/debian/lib32stdc++6.symbols.sparc64 +++ gcc-7-7.5.0/debian/lib32stdc++6.symbols.sparc64 @@ -0,0 +1,9 @@ +libstdc++.so.6 lib32stdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.excprop" + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.32bit" +#include "libstdc++6.symbols.money.f128" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 --- gcc-7-7.5.0.orig/debian/lib32stdc++CXX.postinst +++ gcc-7-7.5.0/debian/lib32stdc++CXX.postinst @@ -0,0 +1,12 @@ +#! /bin/sh -e + +case "$1" in + configure) + docdir=/usr/share/doc/lib32stdc++@CXX@ + if [ -d $docdir ] && [ ! -h $docdir ]; then + rm -rf $docdir + ln -s gcc-@BV@-base $docdir + fi +esac + +#DEBHELPER# --- gcc-7-7.5.0.orig/debian/lib64asan4.overrides +++ gcc-7-7.5.0/debian/lib64asan4.overrides @@ -0,0 +1,2 @@ +# automake gets it wrong for the multilib build +lib64asan4 binary: binary-or-shlib-defines-rpath --- gcc-7-7.5.0.orig/debian/lib64asan4.symbols +++ gcc-7-7.5.0/debian/lib64asan4.symbols @@ -0,0 +1,3 @@ +libasan.so.4 lib64asan4 #MINVER# +#include "libasan.symbols.common" +#include "libasan.symbols.64" --- gcc-7-7.5.0.orig/debian/lib64gccLC.postinst +++ gcc-7-7.5.0/debian/lib64gccLC.postinst @@ -0,0 +1,12 @@ +#! /bin/sh -e + +case "$1" in + configure) + docdir=/usr/share/doc/lib64gcc@LC@ + if [ -d $docdir ] && [ ! -h $docdir ]; then + rm -rf $docdir + ln -s gcc-@BV@-base $docdir + fi +esac + +#DEBHELPER# --- gcc-7-7.5.0.orig/debian/lib64gphobos71.lintian-overrides +++ gcc-7-7.5.0/debian/lib64gphobos71.lintian-overrides @@ -0,0 +1,2 @@ +# no usable zconf.h header in lib64z1-dev +lib64gphobos71 binary: embedded-library --- gcc-7-7.5.0.orig/debian/lib64stdc++6.symbols.i386 +++ gcc-7-7.5.0/debian/lib64stdc++6.symbols.i386 @@ -0,0 +1,40 @@ +libstdc++.so.6 lib64stdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# acosl@GLIBCXX_3.4.3 4.1.1 +#DEPRECATED: 4.2.2-4# asinl@GLIBCXX_3.4.3 4.1.1 +#DEPRECATED: 4.2.2-4# atan2l@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# atanl@GLIBCXX_3.4.3 4.1.1 +#DEPRECATED: 4.2.2-4# ceill@GLIBCXX_3.4.3 4.1.1 +#DEPRECATED: 4.2.2-4# coshl@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# cosl@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# expl@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# floorl@GLIBCXX_3.4.3 4.1.1 +#DEPRECATED: 4.2.2-4# fmodl@GLIBCXX_3.4.3 4.1.1 +#DEPRECATED: 4.2.2-4# frexpl@GLIBCXX_3.4.3 4.1.1 +#DEPRECATED: 4.2.2-4# hypotl@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# ldexpf@GLIBCXX_3.4.3 4.1.1 +#DEPRECATED: 4.2.2-4# ldexpl@GLIBCXX_3.4.3 4.1.1 +#DEPRECATED: 4.2.2-4# log10l@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# logl@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# modfl@GLIBCXX_3.4.3 4.1.1 +#DEPRECATED: 4.2.2-4# powf@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# powl@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# sinhl@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# sinl@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# sqrtl@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# tanhl@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# tanl@GLIBCXX_3.4 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 +#(optional)_Z16__VLTRegisterSetPPvPKvmmS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z17__VLTRegisterPairPPvPKvmS2_@CXXABI_1.3.8 4.9.0 +#(optional)_Z21__VLTRegisterSetDebugPPvPKvmmS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z22__VLTRegisterPairDebugPPvPKvmS2_PKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)_Z24__VLTVerifyVtablePointerPPvPKv@CXXABI_1.3.8 4.9.0 +#(optional)_Z29__VLTVerifyVtablePointerDebugPPvPKvPKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)__VLTChangePermission@CXXABI_1.3.8 4.9.0 --- gcc-7-7.5.0.orig/debian/lib64stdc++6.symbols.powerpc +++ gcc-7-7.5.0/debian/lib64stdc++6.symbols.powerpc @@ -0,0 +1,11 @@ +libstdc++.so.6 lib64stdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.f128" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.64bit" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 --- gcc-7-7.5.0.orig/debian/lib64stdc++6.symbols.s390 +++ gcc-7-7.5.0/debian/lib64stdc++6.symbols.s390 @@ -0,0 +1,12 @@ +libstdc++.so.6 lib64stdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# ldexpf@GLIBCXX_3.4.3 4.1.1 +#DEPRECATED: 4.2.2-4# powf@GLIBCXX_3.4 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.64bit" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 --- gcc-7-7.5.0.orig/debian/lib64stdc++6.symbols.sparc +++ gcc-7-7.5.0/debian/lib64stdc++6.symbols.sparc @@ -0,0 +1,11 @@ +libstdc++.so.6 lib64stdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + _ZN9__gnu_cxx12__atomic_addEPVli@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVli@GLIBCXX_3.4 4.1.1 +# FIXME: Currently no ldbl symbols in the 64bit libstdc++ on sparc. +# #include "libstdc++6.symbols.ldbl.64bit" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 --- gcc-7-7.5.0.orig/debian/lib64stdc++CXX.postinst +++ gcc-7-7.5.0/debian/lib64stdc++CXX.postinst @@ -0,0 +1,12 @@ +#! /bin/sh -e + +case "$1" in + configure) + docdir=/usr/share/doc/lib64stdc++@CXX@ + if [ -d $docdir ] && [ ! -h $docdir ]; then + rm -rf $docdir + ln -s gcc-@BV@-base $docdir + fi +esac + +#DEBHELPER# --- gcc-7-7.5.0.orig/debian/libasan.symbols.16 +++ gcc-7-7.5.0/debian/libasan.symbols.16 @@ -0,0 +1,38 @@ + __sanitizer_syscall_post_impl_chown16@Base 5 + __sanitizer_syscall_post_impl_fchown16@Base 5 + __sanitizer_syscall_post_impl_getegid16@Base 5 + __sanitizer_syscall_post_impl_geteuid16@Base 5 + __sanitizer_syscall_post_impl_getgid16@Base 5 + __sanitizer_syscall_post_impl_getgroups16@Base 5 + __sanitizer_syscall_post_impl_getresgid16@Base 5 + __sanitizer_syscall_post_impl_getresuid16@Base 5 + __sanitizer_syscall_post_impl_getuid16@Base 5 + __sanitizer_syscall_post_impl_lchown16@Base 5 + __sanitizer_syscall_post_impl_setfsgid16@Base 5 + __sanitizer_syscall_post_impl_setfsuid16@Base 5 + __sanitizer_syscall_post_impl_setgid16@Base 5 + __sanitizer_syscall_post_impl_setgroups16@Base 5 + __sanitizer_syscall_post_impl_setregid16@Base 5 + __sanitizer_syscall_post_impl_setresgid16@Base 5 + __sanitizer_syscall_post_impl_setresuid16@Base 5 + __sanitizer_syscall_post_impl_setreuid16@Base 5 + __sanitizer_syscall_post_impl_setuid16@Base 5 + __sanitizer_syscall_pre_impl_chown16@Base 5 + __sanitizer_syscall_pre_impl_fchown16@Base 5 + __sanitizer_syscall_pre_impl_getegid16@Base 5 + __sanitizer_syscall_pre_impl_geteuid16@Base 5 + __sanitizer_syscall_pre_impl_getgid16@Base 5 + __sanitizer_syscall_pre_impl_getgroups16@Base 5 + __sanitizer_syscall_pre_impl_getresgid16@Base 5 + __sanitizer_syscall_pre_impl_getresuid16@Base 5 + __sanitizer_syscall_pre_impl_getuid16@Base 5 + __sanitizer_syscall_pre_impl_lchown16@Base 5 + __sanitizer_syscall_pre_impl_setfsgid16@Base 5 + __sanitizer_syscall_pre_impl_setfsuid16@Base 5 + __sanitizer_syscall_pre_impl_setgid16@Base 5 + __sanitizer_syscall_pre_impl_setgroups16@Base 5 + __sanitizer_syscall_pre_impl_setregid16@Base 5 + __sanitizer_syscall_pre_impl_setresgid16@Base 5 + __sanitizer_syscall_pre_impl_setresuid16@Base 5 + __sanitizer_syscall_pre_impl_setreuid16@Base 5 + __sanitizer_syscall_pre_impl_setuid16@Base 5 --- gcc-7-7.5.0.orig/debian/libasan.symbols.32 +++ gcc-7-7.5.0/debian/libasan.symbols.32 @@ -0,0 +1,26 @@ + (arch=!ppc64 !sparc64)__interceptor_ptrace@Base 7 + (arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)_ZdaPvj@Base 5 + (arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)_ZdaPvjSt11align_val_t@Base 7 + (arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)_ZdlPvj@Base 5 + (arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)_ZdlPvjSt11align_val_t@Base 7 + (arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)_Znaj@Base 4.8 + (arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)_ZnajRKSt9nothrow_t@Base 4.8 + (arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)_ZnajSt11align_val_t@Base 7 + (arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)_ZnajSt11align_val_tRKSt9nothrow_t@Base 7 + (arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)_Znwj@Base 4.8 + (arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)_ZnwjRKSt9nothrow_t@Base 4.8 + (arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)_ZnwjSt11align_val_t@Base 7 + (arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)_ZnwjSt11align_val_tRKSt9nothrow_t@Base 7 + (arch=s390x)_ZdaPvm@Base 7.3 + (arch=s390x)_ZdaPvmSt11align_val_t@Base 7.3 + (arch=s390x)_ZdlPvm@Base 7.3 + (arch=s390x)_ZdlPvmSt11align_val_t@Base 7.3 + (arch=s390x)_Znam@Base 7.3 + (arch=s390x)_ZnamRKSt9nothrow_t@Base 7.3 + (arch=s390x)_ZnamSt11align_val_t@Base 7.3 + (arch=s390x)_ZnamSt11align_val_tRKSt9nothrow_t@Base 7.3 + (arch=s390x)_Znwm@Base 7.3 + (arch=s390x)_ZnwmRKSt9nothrow_t@Base 7.3 + (arch=s390x)_ZnwmSt11align_val_t@Base 7.3 + (arch=s390x)_ZnwmSt11align_val_tRKSt9nothrow_t@Base 7.3 + (arch=!ppc64 !sparc64)ptrace@Base 7 --- gcc-7-7.5.0.orig/debian/libasan.symbols.64 +++ gcc-7-7.5.0/debian/libasan.symbols.64 @@ -0,0 +1,15 @@ + __interceptor_shmctl@Base 4.9 + (arch=base-any-linux-amd64 base-any-linux-arm64 any-linux-mips64 any-linux-mips64el)__sanitizer_print_memory_profile@Base 7 + _ZdaPvm@Base 5 + _ZdaPvmSt11align_val_t@Base 7 + _ZdlPvm@Base 5 + _ZdlPvmSt11align_val_t@Base 7 + _Znam@Base 4.8 + _ZnamRKSt9nothrow_t@Base 4.8 + _ZnamSt11align_val_t@Base 7 + _ZnamSt11align_val_tRKSt9nothrow_t@Base 7 + _Znwm@Base 4.8 + _ZnwmRKSt9nothrow_t@Base 4.8 + _ZnwmSt11align_val_t@Base 7 + _ZnwmSt11align_val_tRKSt9nothrow_t@Base 7 + shmctl@Base 4.9 --- gcc-7-7.5.0.orig/debian/libasan.symbols.common +++ gcc-7-7.5.0/debian/libasan.symbols.common @@ -0,0 +1,1667 @@ + _ZN11__sanitizer11CheckFailedEPKciS1_yy@Base 4.8 + _ZN11__sanitizer7OnPrintEPKc@Base 4.9 + _ZdaPv@Base 4.8 + _ZdaPvRKSt9nothrow_t@Base 4.8 + _ZdaPvSt11align_val_t@Base 7 + _ZdaPvSt11align_val_tRKSt9nothrow_t@Base 7 + _ZdlPv@Base 4.8 + _ZdlPvRKSt9nothrow_t@Base 4.8 + _ZdlPvSt11align_val_t@Base 7 + _ZdlPvSt11align_val_tRKSt9nothrow_t@Base 7 + __asan_addr_is_in_fake_stack@Base 5 + __asan_address_is_poisoned@Base 4.8 + __asan_after_dynamic_init@Base 4.8 + __asan_alloca_poison@Base 6.2 + __asan_allocas_unpoison@Base 6.2 + __asan_backtrace_alloc@Base 4.9 + __asan_backtrace_close@Base 4.9 + __asan_backtrace_create_state@Base 4.9 + __asan_backtrace_dwarf_add@Base 4.9 + __asan_backtrace_free@Base 4.9 + __asan_backtrace_get_view@Base 4.9 + __asan_backtrace_initialize@Base 4.9 + __asan_backtrace_open@Base 4.9 + __asan_backtrace_pcinfo@Base 4.9 + __asan_backtrace_qsort@Base 4.9 + __asan_backtrace_release_view@Base 4.9 + __asan_backtrace_syminfo@Base 4.9 + __asan_backtrace_vector_finish@Base 4.9 + __asan_backtrace_vector_grow@Base 4.9 + __asan_backtrace_vector_release@Base 4.9 + __asan_before_dynamic_init@Base 4.8 + __asan_cplus_demangle_builtin_types@Base 4.9 + __asan_cplus_demangle_fill_ctor@Base 4.9 + __asan_cplus_demangle_fill_dtor@Base 4.9 + __asan_cplus_demangle_fill_extended_operator@Base 4.9 + __asan_cplus_demangle_fill_name@Base 4.9 + __asan_cplus_demangle_init_info@Base 4.9 + __asan_cplus_demangle_mangled_name@Base 4.9 + __asan_cplus_demangle_operators@Base 4.9 + __asan_cplus_demangle_print@Base 4.9 + __asan_cplus_demangle_print_callback@Base 4.9 + __asan_cplus_demangle_type@Base 4.9 + __asan_cplus_demangle_v3@Base 4.9 + __asan_cplus_demangle_v3_callback@Base 4.9 + __asan_describe_address@Base 4.8 + __asan_exp_load16@Base 6.2 + __asan_exp_load1@Base 6.2 + __asan_exp_load2@Base 6.2 + __asan_exp_load4@Base 6.2 + __asan_exp_load8@Base 6.2 + __asan_exp_loadN@Base 6.2 + __asan_exp_store16@Base 6.2 + __asan_exp_store1@Base 6.2 + __asan_exp_store2@Base 6.2 + __asan_exp_store4@Base 6.2 + __asan_exp_store8@Base 6.2 + __asan_exp_storeN@Base 6.2 + __asan_get_alloc_stack@Base 5 + __asan_get_current_fake_stack@Base 5 + __asan_get_free_stack@Base 5 + __asan_get_report_access_size@Base 5 + __asan_get_report_access_type@Base 5 + __asan_get_report_address@Base 5 + __asan_get_report_bp@Base 5 + __asan_get_report_description@Base 5 + __asan_get_report_pc@Base 5 + __asan_get_report_sp@Base 5 + __asan_get_shadow_mapping@Base 5 + __asan_handle_no_return@Base 4.8 + __asan_init@Base 6.2 + __asan_internal_memcmp@Base 4.9 + __asan_internal_memcpy@Base 4.9 + __asan_internal_memset@Base 4.9 + __asan_internal_strcmp@Base 4.9 + __asan_internal_strlen@Base 4.9 + __asan_internal_strncmp@Base 4.9 + __asan_internal_strnlen@Base 4.9 + __asan_is_gnu_v3_mangled_ctor@Base 4.9 + __asan_is_gnu_v3_mangled_dtor@Base 4.9 + __asan_java_demangle_v3@Base 4.9 + __asan_java_demangle_v3_callback@Base 4.9 + __asan_load16@Base 5 + __asan_load16_noabort@Base 6.2 + __asan_load1@Base 5 + __asan_load1_noabort@Base 6.2 + __asan_load2@Base 5 + __asan_load2_noabort@Base 6.2 + __asan_load4@Base 5 + __asan_load4_noabort@Base 6.2 + __asan_load8@Base 5 + __asan_load8_noabort@Base 6.2 + __asan_loadN@Base 5 + __asan_loadN_noabort@Base 6.2 + __asan_load_cxx_array_cookie@Base 5 + __asan_locate_address@Base 5 + __asan_memcpy@Base 5 + __asan_memmove@Base 5 + __asan_memset@Base 5 + __asan_option_detect_stack_use_after_return@Base 4.9 + __asan_poison_cxx_array_cookie@Base 5 + __asan_poison_intra_object_redzone@Base 5 + __asan_poison_memory_region@Base 4.8 + __asan_poison_stack_memory@Base 4.8 + __asan_print_accumulated_stats@Base 4.8 + __asan_region_is_poisoned@Base 4.8 + __asan_register_globals@Base 4.8 + __asan_register_image_globals@Base 7 + __asan_report_error@Base 4.8 + __asan_report_exp_load16@Base 6.2 + __asan_report_exp_load1@Base 6.2 + __asan_report_exp_load2@Base 6.2 + __asan_report_exp_load4@Base 6.2 + __asan_report_exp_load8@Base 6.2 + __asan_report_exp_load_n@Base 6.2 + __asan_report_exp_store16@Base 6.2 + __asan_report_exp_store1@Base 6.2 + __asan_report_exp_store2@Base 6.2 + __asan_report_exp_store4@Base 6.2 + __asan_report_exp_store8@Base 6.2 + __asan_report_exp_store_n@Base 6.2 + __asan_report_load16@Base 4.8 + __asan_report_load16_noabort@Base 6.2 + __asan_report_load1@Base 4.8 + __asan_report_load1_noabort@Base 6.2 + __asan_report_load2@Base 4.8 + __asan_report_load2_noabort@Base 6.2 + __asan_report_load4@Base 4.8 + __asan_report_load4_noabort@Base 6.2 + __asan_report_load8@Base 4.8 + __asan_report_load8_noabort@Base 6.2 + __asan_report_load_n@Base 4.8 + __asan_report_load_n_noabort@Base 6.2 + __asan_report_present@Base 5 + __asan_report_store16@Base 4.8 + __asan_report_store16_noabort@Base 6.2 + __asan_report_store1@Base 4.8 + __asan_report_store1_noabort@Base 6.2 + __asan_report_store2@Base 4.8 + __asan_report_store2_noabort@Base 6.2 + __asan_report_store4@Base 4.8 + __asan_report_store4_noabort@Base 6.2 + __asan_report_store8@Base 4.8 + __asan_report_store8_noabort@Base 6.2 + __asan_report_store_n@Base 4.8 + __asan_report_store_n_noabort@Base 6.2 + __asan_rt_version@Base 5 + __asan_set_death_callback@Base 4.8 + __asan_set_error_report_callback@Base 4.8 + __asan_set_shadow_00@Base 7 + __asan_set_shadow_f1@Base 7 + __asan_set_shadow_f2@Base 7 + __asan_set_shadow_f3@Base 7 + __asan_set_shadow_f5@Base 7 + __asan_set_shadow_f8@Base 7 + __asan_shadow_memory_dynamic_address@Base 7 + __asan_stack_free_0@Base 4.9 + __asan_stack_free_10@Base 4.9 + __asan_stack_free_1@Base 4.9 + __asan_stack_free_2@Base 4.9 + __asan_stack_free_3@Base 4.9 + __asan_stack_free_4@Base 4.9 + __asan_stack_free_5@Base 4.9 + __asan_stack_free_6@Base 4.9 + __asan_stack_free_7@Base 4.9 + __asan_stack_free_8@Base 4.9 + __asan_stack_free_9@Base 4.9 + __asan_stack_malloc_0@Base 4.9 + __asan_stack_malloc_10@Base 4.9 + __asan_stack_malloc_1@Base 4.9 + __asan_stack_malloc_2@Base 4.9 + __asan_stack_malloc_3@Base 4.9 + __asan_stack_malloc_4@Base 4.9 + __asan_stack_malloc_5@Base 4.9 + __asan_stack_malloc_6@Base 4.9 + __asan_stack_malloc_7@Base 4.9 + __asan_stack_malloc_8@Base 4.9 + __asan_stack_malloc_9@Base 4.9 + __asan_store16@Base 5 + __asan_store16_noabort@Base 6.2 + __asan_store1@Base 5 + __asan_store1_noabort@Base 6.2 + __asan_store2@Base 5 + __asan_store2_noabort@Base 6.2 + __asan_store4@Base 5 + __asan_store4_noabort@Base 6.2 + __asan_store8@Base 5 + __asan_store8_noabort@Base 6.2 + __asan_storeN@Base 5 + __asan_storeN_noabort@Base 6.2 + __asan_test_only_reported_buggy_pointer@Base 5 + __asan_unpoison_intra_object_redzone@Base 5 + __asan_unpoison_memory_region@Base 4.8 + __asan_unpoison_stack_memory@Base 4.8 + __asan_unregister_globals@Base 4.8 + __asan_unregister_image_globals@Base 7 +#MISSING: 7# __asan_version_mismatch_check_v6@Base 6.2 + __asan_version_mismatch_check_v8@Base 7 + __cxa_atexit@Base 4.9 + __cxa_throw@Base 4.8 + __getdelim@Base 5 + __interceptor___cxa_atexit@Base 4.9 + __interceptor___cxa_throw@Base 4.8 + __interceptor___getdelim@Base 5 + __interceptor___isoc99_fprintf@Base 5 + __interceptor___isoc99_fscanf@Base 4.8 + __interceptor___isoc99_printf@Base 5 + __interceptor___isoc99_scanf@Base 4.8 + __interceptor___isoc99_snprintf@Base 5 + __interceptor___isoc99_sprintf@Base 5 + __interceptor___isoc99_sscanf@Base 4.8 + __interceptor___isoc99_vfprintf@Base 5 + __interceptor___isoc99_vfscanf@Base 4.8 + __interceptor___isoc99_vprintf@Base 5 + __interceptor___isoc99_vscanf@Base 4.8 + __interceptor___isoc99_vsnprintf@Base 5 + __interceptor___isoc99_vsprintf@Base 5 + __interceptor___isoc99_vsscanf@Base 4.8 + __interceptor___libc_memalign@Base 4.8 + __interceptor___lxstat64@Base 7 + __interceptor___lxstat@Base 7 + __interceptor___overflow@Base 5 + __interceptor___strdup@Base 7 + __interceptor___uflow@Base 5 + __interceptor___underflow@Base 5 + __interceptor___woverflow@Base 5 + __interceptor___wuflow@Base 5 + __interceptor___wunderflow@Base 5 + __interceptor___xpg_strerror_r@Base 4.9 + __interceptor___xstat64@Base 7 + __interceptor___xstat@Base 7 + __interceptor__exit@Base 4.9 + __interceptor__longjmp@Base 4.8 + __interceptor__obstack_begin@Base 5 + __interceptor__obstack_begin_1@Base 5 + __interceptor__obstack_newchunk@Base 5 + __interceptor_accept4@Base 4.9 + __interceptor_accept@Base 4.9 + __interceptor_aligned_alloc@Base 5 + __interceptor_asctime@Base 4.8 + __interceptor_asctime_r@Base 4.8 + __interceptor_asprintf@Base 5 + __interceptor_atoi@Base 4.8 + __interceptor_atol@Base 4.8 + __interceptor_atoll@Base 4.8 + __interceptor_backtrace@Base 4.9 + __interceptor_backtrace_symbols@Base 4.9 + __interceptor_calloc@Base 4.8 + __interceptor_canonicalize_file_name@Base 4.9 + __interceptor_capget@Base 5 + __interceptor_capset@Base 5 + __interceptor_cfree@Base 4.8 + __interceptor_clock_getres@Base 4.9 + __interceptor_clock_gettime@Base 4.9 + __interceptor_clock_settime@Base 4.9 + __interceptor_confstr@Base 4.9 + __interceptor_ctermid@Base 7 + __interceptor_ctime@Base 4.8 + __interceptor_ctime_r@Base 4.8 + __interceptor_dlclose@Base 5 + __interceptor_dlopen@Base 5 + __interceptor_drand48_r@Base 4.9 + __interceptor_endgrent@Base 5 + __interceptor_endpwent@Base 5 + __interceptor_ether_aton@Base 4.9 + __interceptor_ether_aton_r@Base 4.9 + __interceptor_ether_hostton@Base 4.9 + __interceptor_ether_line@Base 4.9 + __interceptor_ether_ntoa@Base 4.9 + __interceptor_ether_ntoa_r@Base 4.9 + __interceptor_ether_ntohost@Base 4.9 + __interceptor_eventfd_read@Base 7 + __interceptor_eventfd_write@Base 7 + __interceptor_fclose@Base 5 + __interceptor_fdopen@Base 5 + __interceptor_fflush@Base 5 + __interceptor_fgetgrent@Base 5 + __interceptor_fgetgrent_r@Base 5 + __interceptor_fgetpwent@Base 5 + __interceptor_fgetpwent_r@Base 5 + __interceptor_fgetxattr@Base 5 + __interceptor_flistxattr@Base 5 + __interceptor_fmemopen@Base 5 + __interceptor_fopen64@Base 5 + __interceptor_fopen@Base 5 + __interceptor_fopencookie@Base 6.2 + __interceptor_fork@Base 5 + __interceptor_fprintf@Base 5 + __interceptor_free@Base 4.8 + __interceptor_freopen64@Base 5 + __interceptor_freopen@Base 5 + __interceptor_frexp@Base 4.9 + __interceptor_frexpf@Base 4.9 + __interceptor_frexpl@Base 4.9 + __interceptor_fscanf@Base 4.8 + __interceptor_fstatfs64@Base 4.9 + __interceptor_fstatfs@Base 4.9 + __interceptor_fstatvfs64@Base 4.9 + __interceptor_fstatvfs@Base 4.9 + __interceptor_ftime@Base 5 + __interceptor_get_current_dir_name@Base 4.9 + __interceptor_getaddrinfo@Base 4.9 + __interceptor_getcwd@Base 4.9 + __interceptor_getdelim@Base 4.9 + __interceptor_getgrent@Base 5 + __interceptor_getgrent_r@Base 5 + __interceptor_getgrgid@Base 4.9 + __interceptor_getgrgid_r@Base 4.9 + __interceptor_getgrnam@Base 4.9 + __interceptor_getgrnam_r@Base 4.9 + __interceptor_getgroups@Base 4.9 + __interceptor_gethostbyaddr@Base 4.9 + __interceptor_gethostbyaddr_r@Base 4.9 + __interceptor_gethostbyname2@Base 4.9 + __interceptor_gethostbyname2_r@Base 4.9 + __interceptor_gethostbyname@Base 4.9 + __interceptor_gethostbyname_r@Base 4.9 + __interceptor_gethostent@Base 4.9 + __interceptor_gethostent_r@Base 4.9 + __interceptor_getifaddrs@Base 5 + __interceptor_getitimer@Base 4.9 + __interceptor_getline@Base 4.9 + __interceptor_getmntent@Base 4.9 + __interceptor_getmntent_r@Base 4.9 + __interceptor_getnameinfo@Base 4.9 + __interceptor_getpass@Base 5 + __interceptor_getpeername@Base 4.9 + __interceptor_getpwent@Base 5 + __interceptor_getpwent_r@Base 5 + __interceptor_getpwnam@Base 4.9 + __interceptor_getpwnam_r@Base 4.9 + __interceptor_getpwuid@Base 4.9 + __interceptor_getpwuid_r@Base 4.9 + __interceptor_getresgid@Base 5 + __interceptor_getresuid@Base 5 + __interceptor_getsockname@Base 4.9 + __interceptor_getsockopt@Base 4.9 + __interceptor_getxattr@Base 5 + __interceptor_glob64@Base 4.9 + __interceptor_glob@Base 4.9 + __interceptor_gmtime@Base 4.8 + __interceptor_gmtime_r@Base 4.8 + __interceptor_iconv@Base 4.9 + __interceptor_if_indextoname@Base 5 + __interceptor_if_nametoindex@Base 5 + __interceptor_index@Base 4.8 + __interceptor_inet_aton@Base 4.9 + __interceptor_inet_ntop@Base 4.9 + __interceptor_inet_pton@Base 4.9 + __interceptor_initgroups@Base 4.9 + __interceptor_ioctl@Base 4.9 + __interceptor_lgamma@Base 4.9 + __interceptor_lgamma_r@Base 4.9 + __interceptor_lgammaf@Base 4.9 + __interceptor_lgammaf_r@Base 4.9 + __interceptor_lgammal@Base 4.9 + __interceptor_lgammal_r@Base 4.9 + __interceptor_lgetxattr@Base 5 + __interceptor_listxattr@Base 5 + __interceptor_llistxattr@Base 5 + __interceptor_localtime@Base 4.8 + __interceptor_localtime_r@Base 4.8 + __interceptor_longjmp@Base 4.8 + __interceptor_lrand48_r@Base 4.9 + __interceptor_mallinfo@Base 4.8 + __interceptor_malloc@Base 4.8 + __interceptor_malloc_stats@Base 4.8 + __interceptor_malloc_usable_size@Base 4.8 + __interceptor_mallopt@Base 4.8 + __interceptor_mbsnrtowcs@Base 4.9 + __interceptor_mbsrtowcs@Base 4.9 + __interceptor_mbstowcs@Base 4.9 + __interceptor_memalign@Base 4.8 + __interceptor_memchr@Base 5 + __interceptor_memcmp@Base 4.8 + __interceptor_memcpy@Base 4.8 + __interceptor_memmem@Base 7 + __interceptor_memmove@Base 4.8 + __interceptor_memrchr@Base 5 + __interceptor_memset@Base 4.8 + __interceptor_mincore@Base 6.2 + __interceptor_mktime@Base 5 + __interceptor_mlock@Base 4.8 + __interceptor_mlockall@Base 4.8 + __interceptor_modf@Base 4.9 + __interceptor_modff@Base 4.9 + __interceptor_modfl@Base 4.9 + __interceptor_munlock@Base 4.8 + __interceptor_munlockall@Base 4.8 + __interceptor_open_memstream@Base 5 + __interceptor_open_wmemstream@Base 5 + __interceptor_opendir@Base 6.2 + __interceptor_poll@Base 4.9 + __interceptor_posix_memalign@Base 4.8 + __interceptor_ppoll@Base 4.9 + __interceptor_prctl@Base 4.8 + __interceptor_pread64@Base 4.8 + __interceptor_pread@Base 4.8 + __interceptor_preadv64@Base 4.9 + __interceptor_preadv@Base 4.9 + __interceptor_printf@Base 5 + __interceptor_process_vm_readv@Base 6.2 + __interceptor_process_vm_writev@Base 6.2 + __interceptor_pthread_attr_getaffinity_np@Base 4.9 + __interceptor_pthread_attr_getdetachstate@Base 4.9 + __interceptor_pthread_attr_getguardsize@Base 4.9 + __interceptor_pthread_attr_getinheritsched@Base 4.9 + __interceptor_pthread_attr_getschedparam@Base 4.9 + __interceptor_pthread_attr_getschedpolicy@Base 4.9 + __interceptor_pthread_attr_getscope@Base 4.9 + __interceptor_pthread_attr_getstack@Base 4.9 + __interceptor_pthread_attr_getstacksize@Base 4.9 + __interceptor_pthread_barrierattr_getpshared@Base 5 + __interceptor_pthread_condattr_getclock@Base 5 + __interceptor_pthread_condattr_getpshared@Base 5 + __interceptor_pthread_create@Base 4.8 + __interceptor_pthread_getschedparam@Base 4.9 + __interceptor_pthread_join@Base 6.2 + __interceptor_pthread_mutex_lock@Base 4.9 + __interceptor_pthread_mutex_unlock@Base 4.9 + __interceptor_pthread_mutexattr_getprioceiling@Base 5 + __interceptor_pthread_mutexattr_getprotocol@Base 5 + __interceptor_pthread_mutexattr_getpshared@Base 5 + __interceptor_pthread_mutexattr_getrobust@Base 5 + __interceptor_pthread_mutexattr_getrobust_np@Base 5 + __interceptor_pthread_mutexattr_gettype@Base 5 + __interceptor_pthread_rwlockattr_getkind_np@Base 5 + __interceptor_pthread_rwlockattr_getpshared@Base 5 + __interceptor_pthread_setcancelstate@Base 6.2 + __interceptor_pthread_setcanceltype@Base 6.2 + __interceptor_pthread_setname_np@Base 4.9 + __interceptor_pvalloc@Base 4.8 + __interceptor_pwrite64@Base 4.8 + __interceptor_pwrite@Base 4.8 + __interceptor_pwritev64@Base 4.9 + __interceptor_pwritev@Base 4.9 + __interceptor_rand_r@Base 5 + __interceptor_random_r@Base 4.9 + __interceptor_read@Base 4.8 + __interceptor_readdir64@Base 4.9 + __interceptor_readdir64_r@Base 4.9 + __interceptor_readdir@Base 4.9 + __interceptor_readdir_r@Base 4.9 + __interceptor_readv@Base 4.9 + __interceptor_realloc@Base 4.8 + __interceptor_realpath@Base 4.9 + __interceptor_recv@Base 7 + __interceptor_recvfrom@Base 7 + __interceptor_recvmsg@Base 4.9 + __interceptor_remquo@Base 4.9 + __interceptor_remquof@Base 4.9 + __interceptor_remquol@Base 4.9 + __interceptor_scandir64@Base 4.9 + __interceptor_scandir@Base 4.9 + __interceptor_scanf@Base 4.8 + __interceptor_sched_getaffinity@Base 4.9 + __interceptor_sched_getparam@Base 6.2 + __interceptor_sem_destroy@Base 6.2 + __interceptor_sem_getvalue@Base 6.2 + __interceptor_sem_init@Base 6.2 + __interceptor_sem_post@Base 6.2 + __interceptor_sem_timedwait@Base 6.2 + __interceptor_sem_trywait@Base 6.2 + __interceptor_sem_wait@Base 6.2 + __interceptor_send@Base 7 + __interceptor_sendmsg@Base 7 + __interceptor_sendto@Base 7 + __interceptor_setgrent@Base 5 + __interceptor_setitimer@Base 4.9 + __interceptor_setlocale@Base 4.9 + __interceptor_setpwent@Base 5 + __interceptor_sigaction@Base 4.8 + __interceptor_sigemptyset@Base 4.9 + __interceptor_sigfillset@Base 4.9 + __interceptor_siglongjmp@Base 4.8 + __interceptor_signal@Base 4.8 + __interceptor_sigpending@Base 4.9 + __interceptor_sigprocmask@Base 4.9 + __interceptor_sigtimedwait@Base 4.9 + __interceptor_sigwait@Base 4.9 + __interceptor_sigwaitinfo@Base 4.9 + __interceptor_sincos@Base 4.9 + __interceptor_sincosf@Base 4.9 + __interceptor_sincosl@Base 4.9 + __interceptor_snprintf@Base 5 + __interceptor_sprintf@Base 5 + __interceptor_sscanf@Base 4.8 + __interceptor_statfs64@Base 4.9 + __interceptor_statfs@Base 4.9 + __interceptor_statvfs64@Base 4.9 + __interceptor_statvfs@Base 4.9 + __interceptor_strcasecmp@Base 4.8 + __interceptor_strcasestr@Base 6.2 + __interceptor_strcat@Base 4.8 + __interceptor_strchr@Base 4.8 + __interceptor_strchrnul@Base 7 + __interceptor_strcmp@Base 4.8 + __interceptor_strcpy@Base 4.8 + __interceptor_strcspn@Base 6.2 + __interceptor_strdup@Base 4.8 + __interceptor_strerror@Base 4.9 + __interceptor_strerror_r@Base 4.9 + __interceptor_strlen@Base 4.8 + __interceptor_strncasecmp@Base 4.8 + __interceptor_strncat@Base 4.8 + __interceptor_strncmp@Base 4.8 + __interceptor_strncpy@Base 4.8 + __interceptor_strnlen@Base 4.8 + __interceptor_strpbrk@Base 6.2 + __interceptor_strptime@Base 4.9 + __interceptor_strrchr@Base 7 + __interceptor_strspn@Base 6.2 + __interceptor_strstr@Base 6.2 + __interceptor_strtoimax@Base 4.9 + __interceptor_strtol@Base 4.8 + __interceptor_strtoll@Base 4.8 + __interceptor_strtoumax@Base 4.9 + __interceptor_swapcontext@Base 4.8 + __interceptor_sysinfo@Base 4.9 + __interceptor_tcgetattr@Base 4.9 + __interceptor_tempnam@Base 4.9 + __interceptor_textdomain@Base 4.9 + __interceptor_time@Base 4.9 + __interceptor_timerfd_gettime@Base 5 + __interceptor_timerfd_settime@Base 5 + __interceptor_times@Base 4.9 + __interceptor_tmpnam@Base 4.9 + __interceptor_tmpnam_r@Base 4.9 + __interceptor_tsearch@Base 5 + __interceptor_ttyname_r@Base 7 + __interceptor_valloc@Base 4.8 + __interceptor_vasprintf@Base 5 + __interceptor_vfprintf@Base 5 + __interceptor_vfscanf@Base 4.8 + __interceptor_vprintf@Base 5 + __interceptor_vscanf@Base 4.8 + __interceptor_vsnprintf@Base 5 + __interceptor_vsprintf@Base 5 + __interceptor_vsscanf@Base 4.8 + __interceptor_wait3@Base 4.9 + __interceptor_wait4@Base 4.9 + __interceptor_wait@Base 4.9 + __interceptor_waitid@Base 4.9 + __interceptor_waitpid@Base 4.9 + __interceptor_wcrtomb@Base 6.2 + __interceptor_wcslen@Base 4.9 + __interceptor_wcsnrtombs@Base 4.9 + __interceptor_wcsrtombs@Base 4.9 + __interceptor_wcstombs@Base 4.9 + __interceptor_wordexp@Base 4.9 + __interceptor_write@Base 4.8 + __interceptor_writev@Base 4.9 + __interceptor_xdr_bool@Base 5 + __interceptor_xdr_bytes@Base 5 + __interceptor_xdr_char@Base 5 + __interceptor_xdr_double@Base 5 + __interceptor_xdr_enum@Base 5 + __interceptor_xdr_float@Base 5 + __interceptor_xdr_hyper@Base 5 + __interceptor_xdr_int16_t@Base 5 + __interceptor_xdr_int32_t@Base 5 + __interceptor_xdr_int64_t@Base 5 + __interceptor_xdr_int8_t@Base 5 + __interceptor_xdr_int@Base 5 + __interceptor_xdr_long@Base 5 + __interceptor_xdr_longlong_t@Base 5 + __interceptor_xdr_quad_t@Base 5 + __interceptor_xdr_short@Base 5 + __interceptor_xdr_string@Base 5 + __interceptor_xdr_u_char@Base 5 + __interceptor_xdr_u_hyper@Base 5 + __interceptor_xdr_u_int@Base 5 + __interceptor_xdr_u_long@Base 5 + __interceptor_xdr_u_longlong_t@Base 5 + __interceptor_xdr_u_quad_t@Base 5 + __interceptor_xdr_u_short@Base 5 + __interceptor_xdr_uint16_t@Base 5 + __interceptor_xdr_uint32_t@Base 5 + __interceptor_xdr_uint64_t@Base 5 + __interceptor_xdr_uint8_t@Base 5 + __interceptor_xdrmem_create@Base 5 + __interceptor_xdrstdio_create@Base 5 + __isoc99_fprintf@Base 5 + __isoc99_fscanf@Base 4.8 + __isoc99_printf@Base 5 + __isoc99_scanf@Base 4.8 + __isoc99_snprintf@Base 5 + __isoc99_sprintf@Base 5 + __isoc99_sscanf@Base 4.8 + __isoc99_vfprintf@Base 5 + __isoc99_vfscanf@Base 4.8 + __isoc99_vprintf@Base 5 + __isoc99_vscanf@Base 4.8 + __isoc99_vsnprintf@Base 5 + __isoc99_vsprintf@Base 5 + __isoc99_vsscanf@Base 4.8 + __libc_memalign@Base 4.8 + __lsan_disable@Base 4.9 + __lsan_do_leak_check@Base 4.9 + __lsan_do_recoverable_leak_check@Base 6.2 + __lsan_enable@Base 4.9 + __lsan_ignore_object@Base 4.9 + __lsan_register_root_region@Base 5 + __lsan_unregister_root_region@Base 5 + __lxstat64@Base 7 + __lxstat@Base 7 + __overflow@Base 5 + __sanitizer_annotate_contiguous_container@Base 4.9 + __sanitizer_contiguous_container_find_bad_address@Base 6.2 + __sanitizer_cov@Base 4.9 + __sanitizer_cov_dump@Base 4.9 + __sanitizer_cov_indir_call16@Base 5 + __sanitizer_cov_init@Base 5 + __sanitizer_cov_module_init@Base 5 + __sanitizer_cov_trace_basic_block@Base 6.2 + __sanitizer_cov_trace_cmp1@Base 7 + __sanitizer_cov_trace_cmp2@Base 7 + __sanitizer_cov_trace_cmp4@Base 7 + __sanitizer_cov_trace_cmp8@Base 7 + __sanitizer_cov_trace_cmp@Base 6.2 + __sanitizer_cov_trace_div4@Base 7 + __sanitizer_cov_trace_div8@Base 7 + __sanitizer_cov_trace_func_enter@Base 6.2 + __sanitizer_cov_trace_gep@Base 7 + __sanitizer_cov_trace_pc_guard@Base 7 + __sanitizer_cov_trace_pc_guard_init@Base 7 + __sanitizer_cov_trace_pc_indir@Base 7 + __sanitizer_cov_trace_switch@Base 6.2 + __sanitizer_cov_with_check@Base 6.2 + __sanitizer_finish_switch_fiber@Base 7 + __sanitizer_get_allocated_size@Base 5 + __sanitizer_get_coverage_guards@Base 6.2 + __sanitizer_get_current_allocated_bytes@Base 5 + __sanitizer_get_estimated_allocated_size@Base 5 + __sanitizer_get_free_bytes@Base 5 + __sanitizer_get_heap_size@Base 5 + __sanitizer_get_number_of_counters@Base 6.2 + __sanitizer_get_ownership@Base 5 + __sanitizer_get_total_unique_caller_callee_pairs@Base 6.2 + __sanitizer_get_total_unique_coverage@Base 6.2 + __sanitizer_get_unmapped_bytes@Base 5 + __sanitizer_install_malloc_and_free_hooks@Base 7 + __sanitizer_maybe_open_cov_file@Base 5 + __sanitizer_print_stack_trace@Base 4.9 + __sanitizer_ptr_cmp@Base 5 + __sanitizer_ptr_sub@Base 5 + __sanitizer_report_error_summary@Base 4.8 + __sanitizer_reset_coverage@Base 6.2 + __sanitizer_sandbox_on_notify@Base 4.8 + __sanitizer_set_death_callback@Base 6.2 + __sanitizer_set_report_fd@Base 7 + __sanitizer_set_report_path@Base 4.8 + __sanitizer_start_switch_fiber@Base 7 + __sanitizer_symbolize_global@Base 7 + __sanitizer_symbolize_pc@Base 7 + __sanitizer_syscall_post_impl_accept4@Base 4.9 + __sanitizer_syscall_post_impl_accept@Base 4.9 + __sanitizer_syscall_post_impl_access@Base 4.9 + __sanitizer_syscall_post_impl_acct@Base 4.9 + __sanitizer_syscall_post_impl_add_key@Base 4.9 + __sanitizer_syscall_post_impl_adjtimex@Base 4.9 + __sanitizer_syscall_post_impl_alarm@Base 4.9 + __sanitizer_syscall_post_impl_bdflush@Base 4.9 + __sanitizer_syscall_post_impl_bind@Base 4.9 + __sanitizer_syscall_post_impl_brk@Base 4.9 + __sanitizer_syscall_post_impl_capget@Base 4.9 + __sanitizer_syscall_post_impl_capset@Base 4.9 + __sanitizer_syscall_post_impl_chdir@Base 4.9 + __sanitizer_syscall_post_impl_chmod@Base 4.9 + __sanitizer_syscall_post_impl_chown@Base 4.9 + __sanitizer_syscall_post_impl_chroot@Base 4.9 + __sanitizer_syscall_post_impl_clock_adjtime@Base 4.9 + __sanitizer_syscall_post_impl_clock_getres@Base 4.9 + __sanitizer_syscall_post_impl_clock_gettime@Base 4.9 + __sanitizer_syscall_post_impl_clock_nanosleep@Base 4.9 + __sanitizer_syscall_post_impl_clock_settime@Base 4.9 + __sanitizer_syscall_post_impl_close@Base 4.9 + __sanitizer_syscall_post_impl_connect@Base 4.9 + __sanitizer_syscall_post_impl_creat@Base 4.9 + __sanitizer_syscall_post_impl_delete_module@Base 4.9 + __sanitizer_syscall_post_impl_dup2@Base 4.9 + __sanitizer_syscall_post_impl_dup3@Base 4.9 + __sanitizer_syscall_post_impl_dup@Base 4.9 + __sanitizer_syscall_post_impl_epoll_create1@Base 4.9 + __sanitizer_syscall_post_impl_epoll_create@Base 4.9 + __sanitizer_syscall_post_impl_epoll_ctl@Base 4.9 + __sanitizer_syscall_post_impl_epoll_pwait@Base 4.9 + __sanitizer_syscall_post_impl_epoll_wait@Base 4.9 + __sanitizer_syscall_post_impl_eventfd2@Base 4.9 + __sanitizer_syscall_post_impl_eventfd@Base 4.9 + __sanitizer_syscall_post_impl_exit@Base 4.9 + __sanitizer_syscall_post_impl_exit_group@Base 4.9 + __sanitizer_syscall_post_impl_faccessat@Base 4.9 + __sanitizer_syscall_post_impl_fchdir@Base 4.9 + __sanitizer_syscall_post_impl_fchmod@Base 4.9 + __sanitizer_syscall_post_impl_fchmodat@Base 4.9 + __sanitizer_syscall_post_impl_fchown@Base 4.9 + __sanitizer_syscall_post_impl_fchownat@Base 4.9 + __sanitizer_syscall_post_impl_fcntl64@Base 4.9 + __sanitizer_syscall_post_impl_fcntl@Base 4.9 + __sanitizer_syscall_post_impl_fdatasync@Base 4.9 + __sanitizer_syscall_post_impl_fgetxattr@Base 4.9 + __sanitizer_syscall_post_impl_flistxattr@Base 4.9 + __sanitizer_syscall_post_impl_flock@Base 4.9 + __sanitizer_syscall_post_impl_fork@Base 4.9 + __sanitizer_syscall_post_impl_fremovexattr@Base 4.9 + __sanitizer_syscall_post_impl_fsetxattr@Base 4.9 + __sanitizer_syscall_post_impl_fstat64@Base 4.9 + __sanitizer_syscall_post_impl_fstat@Base 4.9 + __sanitizer_syscall_post_impl_fstatat64@Base 4.9 + __sanitizer_syscall_post_impl_fstatfs64@Base 4.9 + __sanitizer_syscall_post_impl_fstatfs@Base 4.9 + __sanitizer_syscall_post_impl_fsync@Base 4.9 + __sanitizer_syscall_post_impl_ftruncate@Base 4.9 + __sanitizer_syscall_post_impl_futimesat@Base 4.9 + __sanitizer_syscall_post_impl_get_mempolicy@Base 4.9 + __sanitizer_syscall_post_impl_get_robust_list@Base 4.9 + __sanitizer_syscall_post_impl_getcpu@Base 4.9 + __sanitizer_syscall_post_impl_getcwd@Base 4.9 + __sanitizer_syscall_post_impl_getdents64@Base 4.9 + __sanitizer_syscall_post_impl_getdents@Base 4.9 + __sanitizer_syscall_post_impl_getegid@Base 4.9 + __sanitizer_syscall_post_impl_geteuid@Base 4.9 + __sanitizer_syscall_post_impl_getgid@Base 4.9 + __sanitizer_syscall_post_impl_getgroups@Base 4.9 + __sanitizer_syscall_post_impl_gethostname@Base 4.9 + __sanitizer_syscall_post_impl_getitimer@Base 4.9 + __sanitizer_syscall_post_impl_getpeername@Base 4.9 + __sanitizer_syscall_post_impl_getpgid@Base 4.9 + __sanitizer_syscall_post_impl_getpgrp@Base 4.9 + __sanitizer_syscall_post_impl_getpid@Base 4.9 + __sanitizer_syscall_post_impl_getppid@Base 4.9 + __sanitizer_syscall_post_impl_getpriority@Base 4.9 + __sanitizer_syscall_post_impl_getresgid@Base 4.9 + __sanitizer_syscall_post_impl_getresuid@Base 4.9 + __sanitizer_syscall_post_impl_getrlimit@Base 4.9 + __sanitizer_syscall_post_impl_getrusage@Base 4.9 + __sanitizer_syscall_post_impl_getsid@Base 4.9 + __sanitizer_syscall_post_impl_getsockname@Base 4.9 + __sanitizer_syscall_post_impl_getsockopt@Base 4.9 + __sanitizer_syscall_post_impl_gettid@Base 4.9 + __sanitizer_syscall_post_impl_gettimeofday@Base 4.9 + __sanitizer_syscall_post_impl_getuid@Base 4.9 + __sanitizer_syscall_post_impl_getxattr@Base 4.9 + __sanitizer_syscall_post_impl_init_module@Base 4.9 + __sanitizer_syscall_post_impl_inotify_add_watch@Base 4.9 + __sanitizer_syscall_post_impl_inotify_init1@Base 4.9 + __sanitizer_syscall_post_impl_inotify_init@Base 4.9 + __sanitizer_syscall_post_impl_inotify_rm_watch@Base 4.9 + __sanitizer_syscall_post_impl_io_cancel@Base 4.9 + __sanitizer_syscall_post_impl_io_destroy@Base 4.9 + __sanitizer_syscall_post_impl_io_getevents@Base 4.9 + __sanitizer_syscall_post_impl_io_setup@Base 4.9 + __sanitizer_syscall_post_impl_io_submit@Base 4.9 + __sanitizer_syscall_post_impl_ioctl@Base 4.9 + __sanitizer_syscall_post_impl_ioperm@Base 4.9 + __sanitizer_syscall_post_impl_ioprio_get@Base 4.9 + __sanitizer_syscall_post_impl_ioprio_set@Base 4.9 + __sanitizer_syscall_post_impl_ipc@Base 4.9 + __sanitizer_syscall_post_impl_kexec_load@Base 4.9 + __sanitizer_syscall_post_impl_keyctl@Base 4.9 + __sanitizer_syscall_post_impl_kill@Base 4.9 + __sanitizer_syscall_post_impl_lchown@Base 4.9 + __sanitizer_syscall_post_impl_lgetxattr@Base 4.9 + __sanitizer_syscall_post_impl_link@Base 4.9 + __sanitizer_syscall_post_impl_linkat@Base 4.9 + __sanitizer_syscall_post_impl_listen@Base 4.9 + __sanitizer_syscall_post_impl_listxattr@Base 4.9 + __sanitizer_syscall_post_impl_llistxattr@Base 4.9 + __sanitizer_syscall_post_impl_llseek@Base 4.9 + __sanitizer_syscall_post_impl_lookup_dcookie@Base 4.9 + __sanitizer_syscall_post_impl_lremovexattr@Base 4.9 + __sanitizer_syscall_post_impl_lseek@Base 4.9 + __sanitizer_syscall_post_impl_lsetxattr@Base 4.9 + __sanitizer_syscall_post_impl_lstat64@Base 4.9 + __sanitizer_syscall_post_impl_lstat@Base 4.9 + __sanitizer_syscall_post_impl_madvise@Base 4.9 + __sanitizer_syscall_post_impl_mbind@Base 4.9 + __sanitizer_syscall_post_impl_migrate_pages@Base 4.9 + __sanitizer_syscall_post_impl_mincore@Base 4.9 + __sanitizer_syscall_post_impl_mkdir@Base 4.9 + __sanitizer_syscall_post_impl_mkdirat@Base 4.9 + __sanitizer_syscall_post_impl_mknod@Base 4.9 + __sanitizer_syscall_post_impl_mknodat@Base 4.9 + __sanitizer_syscall_post_impl_mlock@Base 4.9 + __sanitizer_syscall_post_impl_mlockall@Base 4.9 + __sanitizer_syscall_post_impl_mmap_pgoff@Base 4.9 + __sanitizer_syscall_post_impl_mount@Base 4.9 + __sanitizer_syscall_post_impl_move_pages@Base 4.9 + __sanitizer_syscall_post_impl_mprotect@Base 4.9 + __sanitizer_syscall_post_impl_mq_getsetattr@Base 4.9 + __sanitizer_syscall_post_impl_mq_notify@Base 4.9 + __sanitizer_syscall_post_impl_mq_open@Base 4.9 + __sanitizer_syscall_post_impl_mq_timedreceive@Base 4.9 + __sanitizer_syscall_post_impl_mq_timedsend@Base 4.9 + __sanitizer_syscall_post_impl_mq_unlink@Base 4.9 + __sanitizer_syscall_post_impl_mremap@Base 4.9 + __sanitizer_syscall_post_impl_msgctl@Base 4.9 + __sanitizer_syscall_post_impl_msgget@Base 4.9 + __sanitizer_syscall_post_impl_msgrcv@Base 4.9 + __sanitizer_syscall_post_impl_msgsnd@Base 4.9 + __sanitizer_syscall_post_impl_msync@Base 4.9 + __sanitizer_syscall_post_impl_munlock@Base 4.9 + __sanitizer_syscall_post_impl_munlockall@Base 4.9 + __sanitizer_syscall_post_impl_munmap@Base 4.9 + __sanitizer_syscall_post_impl_name_to_handle_at@Base 4.9 + __sanitizer_syscall_post_impl_nanosleep@Base 4.9 + __sanitizer_syscall_post_impl_newfstat@Base 4.9 + __sanitizer_syscall_post_impl_newfstatat@Base 4.9 + __sanitizer_syscall_post_impl_newlstat@Base 4.9 + __sanitizer_syscall_post_impl_newstat@Base 4.9 + __sanitizer_syscall_post_impl_newuname@Base 4.9 + __sanitizer_syscall_post_impl_ni_syscall@Base 4.9 + __sanitizer_syscall_post_impl_nice@Base 4.9 + __sanitizer_syscall_post_impl_old_getrlimit@Base 4.9 + __sanitizer_syscall_post_impl_old_mmap@Base 4.9 + __sanitizer_syscall_post_impl_old_readdir@Base 4.9 + __sanitizer_syscall_post_impl_old_select@Base 4.9 + __sanitizer_syscall_post_impl_oldumount@Base 4.9 + __sanitizer_syscall_post_impl_olduname@Base 4.9 + __sanitizer_syscall_post_impl_open@Base 4.9 + __sanitizer_syscall_post_impl_open_by_handle_at@Base 4.9 + __sanitizer_syscall_post_impl_openat@Base 4.9 + __sanitizer_syscall_post_impl_pause@Base 4.9 + __sanitizer_syscall_post_impl_pciconfig_iobase@Base 4.9 + __sanitizer_syscall_post_impl_pciconfig_read@Base 4.9 + __sanitizer_syscall_post_impl_pciconfig_write@Base 4.9 + __sanitizer_syscall_post_impl_perf_event_open@Base 4.9 + __sanitizer_syscall_post_impl_personality@Base 4.9 + __sanitizer_syscall_post_impl_pipe2@Base 4.9 + __sanitizer_syscall_post_impl_pipe@Base 4.9 + __sanitizer_syscall_post_impl_pivot_root@Base 4.9 + __sanitizer_syscall_post_impl_poll@Base 4.9 + __sanitizer_syscall_post_impl_ppoll@Base 4.9 + __sanitizer_syscall_post_impl_pread64@Base 4.9 + __sanitizer_syscall_post_impl_preadv@Base 4.9 + __sanitizer_syscall_post_impl_prlimit64@Base 4.9 + __sanitizer_syscall_post_impl_process_vm_readv@Base 4.9 + __sanitizer_syscall_post_impl_process_vm_writev@Base 4.9 + __sanitizer_syscall_post_impl_pselect6@Base 4.9 + __sanitizer_syscall_post_impl_ptrace@Base 4.9 + __sanitizer_syscall_post_impl_pwrite64@Base 4.9 + __sanitizer_syscall_post_impl_pwritev@Base 4.9 + __sanitizer_syscall_post_impl_quotactl@Base 4.9 + __sanitizer_syscall_post_impl_read@Base 4.9 + __sanitizer_syscall_post_impl_readlink@Base 4.9 + __sanitizer_syscall_post_impl_readlinkat@Base 4.9 + __sanitizer_syscall_post_impl_readv@Base 4.9 + __sanitizer_syscall_post_impl_reboot@Base 4.9 + __sanitizer_syscall_post_impl_recv@Base 4.9 + __sanitizer_syscall_post_impl_recvfrom@Base 4.9 + __sanitizer_syscall_post_impl_recvmmsg@Base 4.9 + __sanitizer_syscall_post_impl_recvmsg@Base 4.9 + __sanitizer_syscall_post_impl_remap_file_pages@Base 4.9 + __sanitizer_syscall_post_impl_removexattr@Base 4.9 + __sanitizer_syscall_post_impl_rename@Base 4.9 + __sanitizer_syscall_post_impl_renameat@Base 4.9 + __sanitizer_syscall_post_impl_request_key@Base 4.9 + __sanitizer_syscall_post_impl_restart_syscall@Base 4.9 + __sanitizer_syscall_post_impl_rmdir@Base 4.9 + __sanitizer_syscall_post_impl_rt_sigaction@Base 7 + __sanitizer_syscall_post_impl_rt_sigpending@Base 4.9 + __sanitizer_syscall_post_impl_rt_sigprocmask@Base 4.9 + __sanitizer_syscall_post_impl_rt_sigqueueinfo@Base 4.9 + __sanitizer_syscall_post_impl_rt_sigtimedwait@Base 4.9 + __sanitizer_syscall_post_impl_rt_tgsigqueueinfo@Base 4.9 + __sanitizer_syscall_post_impl_sched_get_priority_max@Base 4.9 + __sanitizer_syscall_post_impl_sched_get_priority_min@Base 4.9 + __sanitizer_syscall_post_impl_sched_getaffinity@Base 4.9 + __sanitizer_syscall_post_impl_sched_getparam@Base 4.9 + __sanitizer_syscall_post_impl_sched_getscheduler@Base 4.9 + __sanitizer_syscall_post_impl_sched_rr_get_interval@Base 4.9 + __sanitizer_syscall_post_impl_sched_setaffinity@Base 4.9 + __sanitizer_syscall_post_impl_sched_setparam@Base 4.9 + __sanitizer_syscall_post_impl_sched_setscheduler@Base 4.9 + __sanitizer_syscall_post_impl_sched_yield@Base 4.9 + __sanitizer_syscall_post_impl_select@Base 4.9 + __sanitizer_syscall_post_impl_semctl@Base 4.9 + __sanitizer_syscall_post_impl_semget@Base 4.9 + __sanitizer_syscall_post_impl_semop@Base 4.9 + __sanitizer_syscall_post_impl_semtimedop@Base 4.9 + __sanitizer_syscall_post_impl_send@Base 4.9 + __sanitizer_syscall_post_impl_sendfile64@Base 4.9 + __sanitizer_syscall_post_impl_sendfile@Base 4.9 + __sanitizer_syscall_post_impl_sendmmsg@Base 4.9 + __sanitizer_syscall_post_impl_sendmsg@Base 4.9 + __sanitizer_syscall_post_impl_sendto@Base 4.9 + __sanitizer_syscall_post_impl_set_mempolicy@Base 4.9 + __sanitizer_syscall_post_impl_set_robust_list@Base 4.9 + __sanitizer_syscall_post_impl_set_tid_address@Base 4.9 + __sanitizer_syscall_post_impl_setdomainname@Base 4.9 + __sanitizer_syscall_post_impl_setfsgid@Base 4.9 + __sanitizer_syscall_post_impl_setfsuid@Base 4.9 + __sanitizer_syscall_post_impl_setgid@Base 4.9 + __sanitizer_syscall_post_impl_setgroups@Base 4.9 + __sanitizer_syscall_post_impl_sethostname@Base 4.9 + __sanitizer_syscall_post_impl_setitimer@Base 4.9 + __sanitizer_syscall_post_impl_setns@Base 4.9 + __sanitizer_syscall_post_impl_setpgid@Base 4.9 + __sanitizer_syscall_post_impl_setpriority@Base 4.9 + __sanitizer_syscall_post_impl_setregid@Base 4.9 + __sanitizer_syscall_post_impl_setresgid@Base 4.9 + __sanitizer_syscall_post_impl_setresuid@Base 4.9 + __sanitizer_syscall_post_impl_setreuid@Base 4.9 + __sanitizer_syscall_post_impl_setrlimit@Base 4.9 + __sanitizer_syscall_post_impl_setsid@Base 4.9 + __sanitizer_syscall_post_impl_setsockopt@Base 4.9 + __sanitizer_syscall_post_impl_settimeofday@Base 4.9 + __sanitizer_syscall_post_impl_setuid@Base 4.9 + __sanitizer_syscall_post_impl_setxattr@Base 4.9 + __sanitizer_syscall_post_impl_sgetmask@Base 4.9 + __sanitizer_syscall_post_impl_shmat@Base 4.9 + __sanitizer_syscall_post_impl_shmctl@Base 4.9 + __sanitizer_syscall_post_impl_shmdt@Base 4.9 + __sanitizer_syscall_post_impl_shmget@Base 4.9 + __sanitizer_syscall_post_impl_shutdown@Base 4.9 + __sanitizer_syscall_post_impl_sigaction@Base 7 + __sanitizer_syscall_post_impl_signal@Base 4.9 + __sanitizer_syscall_post_impl_signalfd4@Base 4.9 + __sanitizer_syscall_post_impl_signalfd@Base 4.9 + __sanitizer_syscall_post_impl_sigpending@Base 4.9 + __sanitizer_syscall_post_impl_sigprocmask@Base 4.9 + __sanitizer_syscall_post_impl_socket@Base 4.9 + __sanitizer_syscall_post_impl_socketcall@Base 4.9 + __sanitizer_syscall_post_impl_socketpair@Base 4.9 + __sanitizer_syscall_post_impl_splice@Base 4.9 + __sanitizer_syscall_post_impl_spu_create@Base 4.9 + __sanitizer_syscall_post_impl_spu_run@Base 4.9 + __sanitizer_syscall_post_impl_ssetmask@Base 4.9 + __sanitizer_syscall_post_impl_stat64@Base 4.9 + __sanitizer_syscall_post_impl_stat@Base 4.9 + __sanitizer_syscall_post_impl_statfs64@Base 4.9 + __sanitizer_syscall_post_impl_statfs@Base 4.9 + __sanitizer_syscall_post_impl_stime@Base 4.9 + __sanitizer_syscall_post_impl_swapoff@Base 4.9 + __sanitizer_syscall_post_impl_swapon@Base 4.9 + __sanitizer_syscall_post_impl_symlink@Base 4.9 + __sanitizer_syscall_post_impl_symlinkat@Base 4.9 + __sanitizer_syscall_post_impl_sync@Base 4.9 + __sanitizer_syscall_post_impl_syncfs@Base 4.9 + __sanitizer_syscall_post_impl_sysctl@Base 4.9 + __sanitizer_syscall_post_impl_sysfs@Base 4.9 + __sanitizer_syscall_post_impl_sysinfo@Base 4.9 + __sanitizer_syscall_post_impl_syslog@Base 4.9 + __sanitizer_syscall_post_impl_tee@Base 4.9 + __sanitizer_syscall_post_impl_tgkill@Base 4.9 + __sanitizer_syscall_post_impl_time@Base 4.9 + __sanitizer_syscall_post_impl_timer_create@Base 4.9 + __sanitizer_syscall_post_impl_timer_delete@Base 4.9 + __sanitizer_syscall_post_impl_timer_getoverrun@Base 4.9 + __sanitizer_syscall_post_impl_timer_gettime@Base 4.9 + __sanitizer_syscall_post_impl_timer_settime@Base 4.9 + __sanitizer_syscall_post_impl_timerfd_create@Base 4.9 + __sanitizer_syscall_post_impl_timerfd_gettime@Base 4.9 + __sanitizer_syscall_post_impl_timerfd_settime@Base 4.9 + __sanitizer_syscall_post_impl_times@Base 4.9 + __sanitizer_syscall_post_impl_tkill@Base 4.9 + __sanitizer_syscall_post_impl_truncate@Base 4.9 + __sanitizer_syscall_post_impl_umask@Base 4.9 + __sanitizer_syscall_post_impl_umount@Base 4.9 + __sanitizer_syscall_post_impl_uname@Base 4.9 + __sanitizer_syscall_post_impl_unlink@Base 4.9 + __sanitizer_syscall_post_impl_unlinkat@Base 4.9 + __sanitizer_syscall_post_impl_unshare@Base 4.9 + __sanitizer_syscall_post_impl_uselib@Base 4.9 + __sanitizer_syscall_post_impl_ustat@Base 4.9 + __sanitizer_syscall_post_impl_utime@Base 4.9 + __sanitizer_syscall_post_impl_utimensat@Base 4.9 + __sanitizer_syscall_post_impl_utimes@Base 4.9 + __sanitizer_syscall_post_impl_vfork@Base 4.9 + __sanitizer_syscall_post_impl_vhangup@Base 4.9 + __sanitizer_syscall_post_impl_vmsplice@Base 4.9 + __sanitizer_syscall_post_impl_wait4@Base 4.9 + __sanitizer_syscall_post_impl_waitid@Base 4.9 + __sanitizer_syscall_post_impl_waitpid@Base 4.9 + __sanitizer_syscall_post_impl_write@Base 4.9 + __sanitizer_syscall_post_impl_writev@Base 4.9 + __sanitizer_syscall_pre_impl_accept4@Base 4.9 + __sanitizer_syscall_pre_impl_accept@Base 4.9 + __sanitizer_syscall_pre_impl_access@Base 4.9 + __sanitizer_syscall_pre_impl_acct@Base 4.9 + __sanitizer_syscall_pre_impl_add_key@Base 4.9 + __sanitizer_syscall_pre_impl_adjtimex@Base 4.9 + __sanitizer_syscall_pre_impl_alarm@Base 4.9 + __sanitizer_syscall_pre_impl_bdflush@Base 4.9 + __sanitizer_syscall_pre_impl_bind@Base 4.9 + __sanitizer_syscall_pre_impl_brk@Base 4.9 + __sanitizer_syscall_pre_impl_capget@Base 4.9 + __sanitizer_syscall_pre_impl_capset@Base 4.9 + __sanitizer_syscall_pre_impl_chdir@Base 4.9 + __sanitizer_syscall_pre_impl_chmod@Base 4.9 + __sanitizer_syscall_pre_impl_chown@Base 4.9 + __sanitizer_syscall_pre_impl_chroot@Base 4.9 + __sanitizer_syscall_pre_impl_clock_adjtime@Base 4.9 + __sanitizer_syscall_pre_impl_clock_getres@Base 4.9 + __sanitizer_syscall_pre_impl_clock_gettime@Base 4.9 + __sanitizer_syscall_pre_impl_clock_nanosleep@Base 4.9 + __sanitizer_syscall_pre_impl_clock_settime@Base 4.9 + __sanitizer_syscall_pre_impl_close@Base 4.9 + __sanitizer_syscall_pre_impl_connect@Base 4.9 + __sanitizer_syscall_pre_impl_creat@Base 4.9 + __sanitizer_syscall_pre_impl_delete_module@Base 4.9 + __sanitizer_syscall_pre_impl_dup2@Base 4.9 + __sanitizer_syscall_pre_impl_dup3@Base 4.9 + __sanitizer_syscall_pre_impl_dup@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_create1@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_create@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_ctl@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_pwait@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_wait@Base 4.9 + __sanitizer_syscall_pre_impl_eventfd2@Base 4.9 + __sanitizer_syscall_pre_impl_eventfd@Base 4.9 + __sanitizer_syscall_pre_impl_exit@Base 4.9 + __sanitizer_syscall_pre_impl_exit_group@Base 4.9 + __sanitizer_syscall_pre_impl_faccessat@Base 4.9 + __sanitizer_syscall_pre_impl_fchdir@Base 4.9 + __sanitizer_syscall_pre_impl_fchmod@Base 4.9 + __sanitizer_syscall_pre_impl_fchmodat@Base 4.9 + __sanitizer_syscall_pre_impl_fchown@Base 4.9 + __sanitizer_syscall_pre_impl_fchownat@Base 4.9 + __sanitizer_syscall_pre_impl_fcntl64@Base 4.9 + __sanitizer_syscall_pre_impl_fcntl@Base 4.9 + __sanitizer_syscall_pre_impl_fdatasync@Base 4.9 + __sanitizer_syscall_pre_impl_fgetxattr@Base 4.9 + __sanitizer_syscall_pre_impl_flistxattr@Base 4.9 + __sanitizer_syscall_pre_impl_flock@Base 4.9 + __sanitizer_syscall_pre_impl_fork@Base 4.9 + __sanitizer_syscall_pre_impl_fremovexattr@Base 4.9 + __sanitizer_syscall_pre_impl_fsetxattr@Base 4.9 + __sanitizer_syscall_pre_impl_fstat64@Base 4.9 + __sanitizer_syscall_pre_impl_fstat@Base 4.9 + __sanitizer_syscall_pre_impl_fstatat64@Base 4.9 + __sanitizer_syscall_pre_impl_fstatfs64@Base 4.9 + __sanitizer_syscall_pre_impl_fstatfs@Base 4.9 + __sanitizer_syscall_pre_impl_fsync@Base 4.9 + __sanitizer_syscall_pre_impl_ftruncate@Base 4.9 + __sanitizer_syscall_pre_impl_futimesat@Base 4.9 + __sanitizer_syscall_pre_impl_get_mempolicy@Base 4.9 + __sanitizer_syscall_pre_impl_get_robust_list@Base 4.9 + __sanitizer_syscall_pre_impl_getcpu@Base 4.9 + __sanitizer_syscall_pre_impl_getcwd@Base 4.9 + __sanitizer_syscall_pre_impl_getdents64@Base 4.9 + __sanitizer_syscall_pre_impl_getdents@Base 4.9 + __sanitizer_syscall_pre_impl_getegid@Base 4.9 + __sanitizer_syscall_pre_impl_geteuid@Base 4.9 + __sanitizer_syscall_pre_impl_getgid@Base 4.9 + __sanitizer_syscall_pre_impl_getgroups@Base 4.9 + __sanitizer_syscall_pre_impl_gethostname@Base 4.9 + __sanitizer_syscall_pre_impl_getitimer@Base 4.9 + __sanitizer_syscall_pre_impl_getpeername@Base 4.9 + __sanitizer_syscall_pre_impl_getpgid@Base 4.9 + __sanitizer_syscall_pre_impl_getpgrp@Base 4.9 + __sanitizer_syscall_pre_impl_getpid@Base 4.9 + __sanitizer_syscall_pre_impl_getppid@Base 4.9 + __sanitizer_syscall_pre_impl_getpriority@Base 4.9 + __sanitizer_syscall_pre_impl_getresgid@Base 4.9 + __sanitizer_syscall_pre_impl_getresuid@Base 4.9 + __sanitizer_syscall_pre_impl_getrlimit@Base 4.9 + __sanitizer_syscall_pre_impl_getrusage@Base 4.9 + __sanitizer_syscall_pre_impl_getsid@Base 4.9 + __sanitizer_syscall_pre_impl_getsockname@Base 4.9 + __sanitizer_syscall_pre_impl_getsockopt@Base 4.9 + __sanitizer_syscall_pre_impl_gettid@Base 4.9 + __sanitizer_syscall_pre_impl_gettimeofday@Base 4.9 + __sanitizer_syscall_pre_impl_getuid@Base 4.9 + __sanitizer_syscall_pre_impl_getxattr@Base 4.9 + __sanitizer_syscall_pre_impl_init_module@Base 4.9 + __sanitizer_syscall_pre_impl_inotify_add_watch@Base 4.9 + __sanitizer_syscall_pre_impl_inotify_init1@Base 4.9 + __sanitizer_syscall_pre_impl_inotify_init@Base 4.9 + __sanitizer_syscall_pre_impl_inotify_rm_watch@Base 4.9 + __sanitizer_syscall_pre_impl_io_cancel@Base 4.9 + __sanitizer_syscall_pre_impl_io_destroy@Base 4.9 + __sanitizer_syscall_pre_impl_io_getevents@Base 4.9 + __sanitizer_syscall_pre_impl_io_setup@Base 4.9 + __sanitizer_syscall_pre_impl_io_submit@Base 4.9 + __sanitizer_syscall_pre_impl_ioctl@Base 4.9 + __sanitizer_syscall_pre_impl_ioperm@Base 4.9 + __sanitizer_syscall_pre_impl_ioprio_get@Base 4.9 + __sanitizer_syscall_pre_impl_ioprio_set@Base 4.9 + __sanitizer_syscall_pre_impl_ipc@Base 4.9 + __sanitizer_syscall_pre_impl_kexec_load@Base 4.9 + __sanitizer_syscall_pre_impl_keyctl@Base 4.9 + __sanitizer_syscall_pre_impl_kill@Base 4.9 + __sanitizer_syscall_pre_impl_lchown@Base 4.9 + __sanitizer_syscall_pre_impl_lgetxattr@Base 4.9 + __sanitizer_syscall_pre_impl_link@Base 4.9 + __sanitizer_syscall_pre_impl_linkat@Base 4.9 + __sanitizer_syscall_pre_impl_listen@Base 4.9 + __sanitizer_syscall_pre_impl_listxattr@Base 4.9 + __sanitizer_syscall_pre_impl_llistxattr@Base 4.9 + __sanitizer_syscall_pre_impl_llseek@Base 4.9 + __sanitizer_syscall_pre_impl_lookup_dcookie@Base 4.9 + __sanitizer_syscall_pre_impl_lremovexattr@Base 4.9 + __sanitizer_syscall_pre_impl_lseek@Base 4.9 + __sanitizer_syscall_pre_impl_lsetxattr@Base 4.9 + __sanitizer_syscall_pre_impl_lstat64@Base 4.9 + __sanitizer_syscall_pre_impl_lstat@Base 4.9 + __sanitizer_syscall_pre_impl_madvise@Base 4.9 + __sanitizer_syscall_pre_impl_mbind@Base 4.9 + __sanitizer_syscall_pre_impl_migrate_pages@Base 4.9 + __sanitizer_syscall_pre_impl_mincore@Base 4.9 + __sanitizer_syscall_pre_impl_mkdir@Base 4.9 + __sanitizer_syscall_pre_impl_mkdirat@Base 4.9 + __sanitizer_syscall_pre_impl_mknod@Base 4.9 + __sanitizer_syscall_pre_impl_mknodat@Base 4.9 + __sanitizer_syscall_pre_impl_mlock@Base 4.9 + __sanitizer_syscall_pre_impl_mlockall@Base 4.9 + __sanitizer_syscall_pre_impl_mmap_pgoff@Base 4.9 + __sanitizer_syscall_pre_impl_mount@Base 4.9 + __sanitizer_syscall_pre_impl_move_pages@Base 4.9 + __sanitizer_syscall_pre_impl_mprotect@Base 4.9 + __sanitizer_syscall_pre_impl_mq_getsetattr@Base 4.9 + __sanitizer_syscall_pre_impl_mq_notify@Base 4.9 + __sanitizer_syscall_pre_impl_mq_open@Base 4.9 + __sanitizer_syscall_pre_impl_mq_timedreceive@Base 4.9 + __sanitizer_syscall_pre_impl_mq_timedsend@Base 4.9 + __sanitizer_syscall_pre_impl_mq_unlink@Base 4.9 + __sanitizer_syscall_pre_impl_mremap@Base 4.9 + __sanitizer_syscall_pre_impl_msgctl@Base 4.9 + __sanitizer_syscall_pre_impl_msgget@Base 4.9 + __sanitizer_syscall_pre_impl_msgrcv@Base 4.9 + __sanitizer_syscall_pre_impl_msgsnd@Base 4.9 + __sanitizer_syscall_pre_impl_msync@Base 4.9 + __sanitizer_syscall_pre_impl_munlock@Base 4.9 + __sanitizer_syscall_pre_impl_munlockall@Base 4.9 + __sanitizer_syscall_pre_impl_munmap@Base 4.9 + __sanitizer_syscall_pre_impl_name_to_handle_at@Base 4.9 + __sanitizer_syscall_pre_impl_nanosleep@Base 4.9 + __sanitizer_syscall_pre_impl_newfstat@Base 4.9 + __sanitizer_syscall_pre_impl_newfstatat@Base 4.9 + __sanitizer_syscall_pre_impl_newlstat@Base 4.9 + __sanitizer_syscall_pre_impl_newstat@Base 4.9 + __sanitizer_syscall_pre_impl_newuname@Base 4.9 + __sanitizer_syscall_pre_impl_ni_syscall@Base 4.9 + __sanitizer_syscall_pre_impl_nice@Base 4.9 + __sanitizer_syscall_pre_impl_old_getrlimit@Base 4.9 + __sanitizer_syscall_pre_impl_old_mmap@Base 4.9 + __sanitizer_syscall_pre_impl_old_readdir@Base 4.9 + __sanitizer_syscall_pre_impl_old_select@Base 4.9 + __sanitizer_syscall_pre_impl_oldumount@Base 4.9 + __sanitizer_syscall_pre_impl_olduname@Base 4.9 + __sanitizer_syscall_pre_impl_open@Base 4.9 + __sanitizer_syscall_pre_impl_open_by_handle_at@Base 4.9 + __sanitizer_syscall_pre_impl_openat@Base 4.9 + __sanitizer_syscall_pre_impl_pause@Base 4.9 + __sanitizer_syscall_pre_impl_pciconfig_iobase@Base 4.9 + __sanitizer_syscall_pre_impl_pciconfig_read@Base 4.9 + __sanitizer_syscall_pre_impl_pciconfig_write@Base 4.9 + __sanitizer_syscall_pre_impl_perf_event_open@Base 4.9 + __sanitizer_syscall_pre_impl_personality@Base 4.9 + __sanitizer_syscall_pre_impl_pipe2@Base 4.9 + __sanitizer_syscall_pre_impl_pipe@Base 4.9 + __sanitizer_syscall_pre_impl_pivot_root@Base 4.9 + __sanitizer_syscall_pre_impl_poll@Base 4.9 + __sanitizer_syscall_pre_impl_ppoll@Base 4.9 + __sanitizer_syscall_pre_impl_pread64@Base 4.9 + __sanitizer_syscall_pre_impl_preadv@Base 4.9 + __sanitizer_syscall_pre_impl_prlimit64@Base 4.9 + __sanitizer_syscall_pre_impl_process_vm_readv@Base 4.9 + __sanitizer_syscall_pre_impl_process_vm_writev@Base 4.9 + __sanitizer_syscall_pre_impl_pselect6@Base 4.9 + __sanitizer_syscall_pre_impl_ptrace@Base 4.9 + __sanitizer_syscall_pre_impl_pwrite64@Base 4.9 + __sanitizer_syscall_pre_impl_pwritev@Base 4.9 + __sanitizer_syscall_pre_impl_quotactl@Base 4.9 + __sanitizer_syscall_pre_impl_read@Base 4.9 + __sanitizer_syscall_pre_impl_readlink@Base 4.9 + __sanitizer_syscall_pre_impl_readlinkat@Base 4.9 + __sanitizer_syscall_pre_impl_readv@Base 4.9 + __sanitizer_syscall_pre_impl_reboot@Base 4.9 + __sanitizer_syscall_pre_impl_recv@Base 4.9 + __sanitizer_syscall_pre_impl_recvfrom@Base 4.9 + __sanitizer_syscall_pre_impl_recvmmsg@Base 4.9 + __sanitizer_syscall_pre_impl_recvmsg@Base 4.9 + __sanitizer_syscall_pre_impl_remap_file_pages@Base 4.9 + __sanitizer_syscall_pre_impl_removexattr@Base 4.9 + __sanitizer_syscall_pre_impl_rename@Base 4.9 + __sanitizer_syscall_pre_impl_renameat@Base 4.9 + __sanitizer_syscall_pre_impl_request_key@Base 4.9 + __sanitizer_syscall_pre_impl_restart_syscall@Base 4.9 + __sanitizer_syscall_pre_impl_rmdir@Base 4.9 + __sanitizer_syscall_pre_impl_rt_sigaction@Base 7 + __sanitizer_syscall_pre_impl_rt_sigpending@Base 4.9 + __sanitizer_syscall_pre_impl_rt_sigprocmask@Base 4.9 + __sanitizer_syscall_pre_impl_rt_sigqueueinfo@Base 4.9 + __sanitizer_syscall_pre_impl_rt_sigtimedwait@Base 4.9 + __sanitizer_syscall_pre_impl_rt_tgsigqueueinfo@Base 4.9 + __sanitizer_syscall_pre_impl_sched_get_priority_max@Base 4.9 + __sanitizer_syscall_pre_impl_sched_get_priority_min@Base 4.9 + __sanitizer_syscall_pre_impl_sched_getaffinity@Base 4.9 + __sanitizer_syscall_pre_impl_sched_getparam@Base 4.9 + __sanitizer_syscall_pre_impl_sched_getscheduler@Base 4.9 + __sanitizer_syscall_pre_impl_sched_rr_get_interval@Base 4.9 + __sanitizer_syscall_pre_impl_sched_setaffinity@Base 4.9 + __sanitizer_syscall_pre_impl_sched_setparam@Base 4.9 + __sanitizer_syscall_pre_impl_sched_setscheduler@Base 4.9 + __sanitizer_syscall_pre_impl_sched_yield@Base 4.9 + __sanitizer_syscall_pre_impl_select@Base 4.9 + __sanitizer_syscall_pre_impl_semctl@Base 4.9 + __sanitizer_syscall_pre_impl_semget@Base 4.9 + __sanitizer_syscall_pre_impl_semop@Base 4.9 + __sanitizer_syscall_pre_impl_semtimedop@Base 4.9 + __sanitizer_syscall_pre_impl_send@Base 4.9 + __sanitizer_syscall_pre_impl_sendfile64@Base 4.9 + __sanitizer_syscall_pre_impl_sendfile@Base 4.9 + __sanitizer_syscall_pre_impl_sendmmsg@Base 4.9 + __sanitizer_syscall_pre_impl_sendmsg@Base 4.9 + __sanitizer_syscall_pre_impl_sendto@Base 4.9 + __sanitizer_syscall_pre_impl_set_mempolicy@Base 4.9 + __sanitizer_syscall_pre_impl_set_robust_list@Base 4.9 + __sanitizer_syscall_pre_impl_set_tid_address@Base 4.9 + __sanitizer_syscall_pre_impl_setdomainname@Base 4.9 + __sanitizer_syscall_pre_impl_setfsgid@Base 4.9 + __sanitizer_syscall_pre_impl_setfsuid@Base 4.9 + __sanitizer_syscall_pre_impl_setgid@Base 4.9 + __sanitizer_syscall_pre_impl_setgroups@Base 4.9 + __sanitizer_syscall_pre_impl_sethostname@Base 4.9 + __sanitizer_syscall_pre_impl_setitimer@Base 4.9 + __sanitizer_syscall_pre_impl_setns@Base 4.9 + __sanitizer_syscall_pre_impl_setpgid@Base 4.9 + __sanitizer_syscall_pre_impl_setpriority@Base 4.9 + __sanitizer_syscall_pre_impl_setregid@Base 4.9 + __sanitizer_syscall_pre_impl_setresgid@Base 4.9 + __sanitizer_syscall_pre_impl_setresuid@Base 4.9 + __sanitizer_syscall_pre_impl_setreuid@Base 4.9 + __sanitizer_syscall_pre_impl_setrlimit@Base 4.9 + __sanitizer_syscall_pre_impl_setsid@Base 4.9 + __sanitizer_syscall_pre_impl_setsockopt@Base 4.9 + __sanitizer_syscall_pre_impl_settimeofday@Base 4.9 + __sanitizer_syscall_pre_impl_setuid@Base 4.9 + __sanitizer_syscall_pre_impl_setxattr@Base 4.9 + __sanitizer_syscall_pre_impl_sgetmask@Base 4.9 + __sanitizer_syscall_pre_impl_shmat@Base 4.9 + __sanitizer_syscall_pre_impl_shmctl@Base 4.9 + __sanitizer_syscall_pre_impl_shmdt@Base 4.9 + __sanitizer_syscall_pre_impl_shmget@Base 4.9 + __sanitizer_syscall_pre_impl_shutdown@Base 4.9 + __sanitizer_syscall_pre_impl_sigaction@Base 7 + __sanitizer_syscall_pre_impl_signal@Base 4.9 + __sanitizer_syscall_pre_impl_signalfd4@Base 4.9 + __sanitizer_syscall_pre_impl_signalfd@Base 4.9 + __sanitizer_syscall_pre_impl_sigpending@Base 4.9 + __sanitizer_syscall_pre_impl_sigprocmask@Base 4.9 + __sanitizer_syscall_pre_impl_socket@Base 4.9 + __sanitizer_syscall_pre_impl_socketcall@Base 4.9 + __sanitizer_syscall_pre_impl_socketpair@Base 4.9 + __sanitizer_syscall_pre_impl_splice@Base 4.9 + __sanitizer_syscall_pre_impl_spu_create@Base 4.9 + __sanitizer_syscall_pre_impl_spu_run@Base 4.9 + __sanitizer_syscall_pre_impl_ssetmask@Base 4.9 + __sanitizer_syscall_pre_impl_stat64@Base 4.9 + __sanitizer_syscall_pre_impl_stat@Base 4.9 + __sanitizer_syscall_pre_impl_statfs64@Base 4.9 + __sanitizer_syscall_pre_impl_statfs@Base 4.9 + __sanitizer_syscall_pre_impl_stime@Base 4.9 + __sanitizer_syscall_pre_impl_swapoff@Base 4.9 + __sanitizer_syscall_pre_impl_swapon@Base 4.9 + __sanitizer_syscall_pre_impl_symlink@Base 4.9 + __sanitizer_syscall_pre_impl_symlinkat@Base 4.9 + __sanitizer_syscall_pre_impl_sync@Base 4.9 + __sanitizer_syscall_pre_impl_syncfs@Base 4.9 + __sanitizer_syscall_pre_impl_sysctl@Base 4.9 + __sanitizer_syscall_pre_impl_sysfs@Base 4.9 + __sanitizer_syscall_pre_impl_sysinfo@Base 4.9 + __sanitizer_syscall_pre_impl_syslog@Base 4.9 + __sanitizer_syscall_pre_impl_tee@Base 4.9 + __sanitizer_syscall_pre_impl_tgkill@Base 4.9 + __sanitizer_syscall_pre_impl_time@Base 4.9 + __sanitizer_syscall_pre_impl_timer_create@Base 4.9 + __sanitizer_syscall_pre_impl_timer_delete@Base 4.9 + __sanitizer_syscall_pre_impl_timer_getoverrun@Base 4.9 + __sanitizer_syscall_pre_impl_timer_gettime@Base 4.9 + __sanitizer_syscall_pre_impl_timer_settime@Base 4.9 + __sanitizer_syscall_pre_impl_timerfd_create@Base 4.9 + __sanitizer_syscall_pre_impl_timerfd_gettime@Base 4.9 + __sanitizer_syscall_pre_impl_timerfd_settime@Base 4.9 + __sanitizer_syscall_pre_impl_times@Base 4.9 + __sanitizer_syscall_pre_impl_tkill@Base 4.9 + __sanitizer_syscall_pre_impl_truncate@Base 4.9 + __sanitizer_syscall_pre_impl_umask@Base 4.9 + __sanitizer_syscall_pre_impl_umount@Base 4.9 + __sanitizer_syscall_pre_impl_uname@Base 4.9 + __sanitizer_syscall_pre_impl_unlink@Base 4.9 + __sanitizer_syscall_pre_impl_unlinkat@Base 4.9 + __sanitizer_syscall_pre_impl_unshare@Base 4.9 + __sanitizer_syscall_pre_impl_uselib@Base 4.9 + __sanitizer_syscall_pre_impl_ustat@Base 4.9 + __sanitizer_syscall_pre_impl_utime@Base 4.9 + __sanitizer_syscall_pre_impl_utimensat@Base 4.9 + __sanitizer_syscall_pre_impl_utimes@Base 4.9 + __sanitizer_syscall_pre_impl_vfork@Base 4.9 + __sanitizer_syscall_pre_impl_vhangup@Base 4.9 + __sanitizer_syscall_pre_impl_vmsplice@Base 4.9 + __sanitizer_syscall_pre_impl_wait4@Base 4.9 + __sanitizer_syscall_pre_impl_waitid@Base 4.9 + __sanitizer_syscall_pre_impl_waitpid@Base 4.9 + __sanitizer_syscall_pre_impl_write@Base 4.9 + __sanitizer_syscall_pre_impl_writev@Base 4.9 + __sanitizer_unaligned_load16@Base 4.9 + __sanitizer_unaligned_load32@Base 4.9 + __sanitizer_unaligned_load64@Base 4.9 + __sanitizer_unaligned_store16@Base 4.9 + __sanitizer_unaligned_store32@Base 4.9 + __sanitizer_unaligned_store64@Base 4.9 + __sanitizer_update_counter_bitset_and_clear_counters@Base 6.2 + __sanitizer_verify_contiguous_container@Base 5 + __strdup@Base 7 + __uflow@Base 5 + __underflow@Base 5 + __woverflow@Base 5 + __wuflow@Base 5 + __wunderflow@Base 5 + __xpg_strerror_r@Base 4.9 + __xstat64@Base 7 + __xstat@Base 7 + _exit@Base 4.9 + _longjmp@Base 4.8 + _obstack_begin@Base 5 + _obstack_begin_1@Base 5 + _obstack_newchunk@Base 5 + accept4@Base 4.9 + accept@Base 4.9 + aligned_alloc@Base 5 + asctime@Base 4.8 + asctime_r@Base 4.8 + asprintf@Base 5 + atoi@Base 4.8 + atol@Base 4.8 + atoll@Base 4.8 + backtrace@Base 4.9 + backtrace_symbols@Base 4.9 + calloc@Base 4.8 + canonicalize_file_name@Base 4.9 + capget@Base 5 + capset@Base 5 + cfree@Base 4.8 + clock_getres@Base 4.9 + clock_gettime@Base 4.9 + clock_settime@Base 4.9 + confstr@Base 4.9 + ctermid@Base 7 + ctime@Base 4.8 + ctime_r@Base 4.8 + dlclose@Base 5 + dlopen@Base 5 + drand48_r@Base 4.9 + endgrent@Base 5 + endpwent@Base 5 + ether_aton@Base 4.9 + ether_aton_r@Base 4.9 + ether_hostton@Base 4.9 + ether_line@Base 4.9 + ether_ntoa@Base 4.9 + ether_ntoa_r@Base 4.9 + ether_ntohost@Base 4.9 + eventfd_read@Base 7 + eventfd_write@Base 7 + fclose@Base 5 + fdopen@Base 5 + fflush@Base 5 + fgetgrent@Base 5 + fgetgrent_r@Base 5 + fgetpwent@Base 5 + fgetpwent_r@Base 5 + fgetxattr@Base 5 + flistxattr@Base 5 + fmemopen@Base 5 + fopen64@Base 5 + fopen@Base 5 + fopencookie@Base 6.2 + fork@Base 5 + fprintf@Base 5 + free@Base 4.8 + freopen64@Base 5 + freopen@Base 5 + frexp@Base 4.9 + frexpf@Base 4.9 + frexpl@Base 4.9 + fscanf@Base 4.8 + fstatfs64@Base 4.9 + fstatfs@Base 4.9 + fstatvfs64@Base 4.9 + fstatvfs@Base 4.9 + ftime@Base 5 + get_current_dir_name@Base 4.9 + getaddrinfo@Base 4.9 + getcwd@Base 4.9 + getdelim@Base 4.9 + getgrent@Base 5 + getgrent_r@Base 5 + getgrgid@Base 4.9 + getgrgid_r@Base 4.9 + getgrnam@Base 4.9 + getgrnam_r@Base 4.9 + getgroups@Base 4.9 + gethostbyaddr@Base 4.9 + gethostbyaddr_r@Base 4.9 + gethostbyname2@Base 4.9 + gethostbyname2_r@Base 4.9 + gethostbyname@Base 4.9 + gethostbyname_r@Base 4.9 + gethostent@Base 4.9 + gethostent_r@Base 4.9 + getifaddrs@Base 5 + getitimer@Base 4.9 + getline@Base 4.9 + getmntent@Base 4.9 + getmntent_r@Base 4.9 + getnameinfo@Base 4.9 + getpass@Base 5 + getpeername@Base 4.9 + getpwent@Base 5 + getpwent_r@Base 5 + getpwnam@Base 4.9 + getpwnam_r@Base 4.9 + getpwuid@Base 4.9 + getpwuid_r@Base 4.9 + getresgid@Base 5 + getresuid@Base 5 + getsockname@Base 4.9 + getsockopt@Base 4.9 + getxattr@Base 5 + glob64@Base 4.9 + glob@Base 4.9 + gmtime@Base 4.8 + gmtime_r@Base 4.8 + iconv@Base 4.9 + if_indextoname@Base 5 + if_nametoindex@Base 5 + index@Base 4.8 + inet_aton@Base 4.9 + inet_ntop@Base 4.9 + inet_pton@Base 4.9 + initgroups@Base 4.9 + ioctl@Base 4.9 + lgamma@Base 4.9 + lgamma_r@Base 4.9 + lgammaf@Base 4.9 + lgammaf_r@Base 4.9 + lgammal@Base 4.9 + lgammal_r@Base 4.9 + lgetxattr@Base 5 + listxattr@Base 5 + llistxattr@Base 5 + localtime@Base 4.8 + localtime_r@Base 4.8 + longjmp@Base 4.8 + lrand48_r@Base 4.9 + mallinfo@Base 4.8 + malloc@Base 4.8 + malloc_stats@Base 4.8 + malloc_usable_size@Base 4.8 + mallopt@Base 4.8 + mbsnrtowcs@Base 4.9 + mbsrtowcs@Base 4.9 + mbstowcs@Base 4.9 + memalign@Base 4.8 + memchr@Base 5 + memcmp@Base 4.8 + memcpy@Base 4.8 + memmem@Base 7 + memmove@Base 4.8 + memrchr@Base 5 + memset@Base 4.8 + mincore@Base 6.2 + mktime@Base 5 + mlock@Base 4.8 + mlockall@Base 4.8 + modf@Base 4.9 + modff@Base 4.9 + modfl@Base 4.9 + munlock@Base 4.8 + munlockall@Base 4.8 + open_memstream@Base 5 + open_wmemstream@Base 5 + opendir@Base 6.2 + poll@Base 4.9 + posix_memalign@Base 4.8 + ppoll@Base 4.9 + prctl@Base 4.8 + pread64@Base 4.8 + pread@Base 4.8 + preadv64@Base 4.9 + preadv@Base 4.9 + printf@Base 5 + process_vm_readv@Base 6.2 + process_vm_writev@Base 6.2 + pthread_attr_getaffinity_np@Base 4.9 + pthread_attr_getdetachstate@Base 4.9 + pthread_attr_getguardsize@Base 4.9 + pthread_attr_getinheritsched@Base 4.9 + pthread_attr_getschedparam@Base 4.9 + pthread_attr_getschedpolicy@Base 4.9 + pthread_attr_getscope@Base 4.9 + pthread_attr_getstack@Base 4.9 + pthread_attr_getstacksize@Base 4.9 + pthread_barrierattr_getpshared@Base 5 + pthread_condattr_getclock@Base 5 + pthread_condattr_getpshared@Base 5 + pthread_create@Base 4.8 + pthread_getschedparam@Base 4.9 + pthread_join@Base 6.2 + pthread_mutex_lock@Base 4.9 + pthread_mutex_unlock@Base 4.9 + pthread_mutexattr_getprioceiling@Base 5 + pthread_mutexattr_getprotocol@Base 5 + pthread_mutexattr_getpshared@Base 5 + pthread_mutexattr_getrobust@Base 5 + pthread_mutexattr_getrobust_np@Base 5 + pthread_mutexattr_gettype@Base 5 + pthread_rwlockattr_getkind_np@Base 5 + pthread_rwlockattr_getpshared@Base 5 + pthread_setcancelstate@Base 6.2 + pthread_setcanceltype@Base 6.2 + pthread_setname_np@Base 4.9 + pvalloc@Base 4.8 + pwrite64@Base 4.8 + pwrite@Base 4.8 + pwritev64@Base 4.9 + pwritev@Base 4.9 + rand_r@Base 5 + random_r@Base 4.9 + read@Base 4.8 + readdir64@Base 4.9 + readdir64_r@Base 4.9 + readdir@Base 4.9 + readdir_r@Base 4.9 + readv@Base 4.9 + realloc@Base 4.8 + realpath@Base 4.9 + recv@Base 7 + recvfrom@Base 7 + recvmsg@Base 4.9 + remquo@Base 4.9 + remquof@Base 4.9 + remquol@Base 4.9 + scandir64@Base 4.9 + scandir@Base 4.9 + scanf@Base 4.8 + sched_getaffinity@Base 4.9 + sched_getparam@Base 6.2 + sem_destroy@Base 6.2 + sem_getvalue@Base 6.2 + sem_init@Base 6.2 + sem_post@Base 6.2 + sem_timedwait@Base 6.2 + sem_trywait@Base 6.2 + sem_wait@Base 6.2 + send@Base 7 + sendmsg@Base 7 + sendto@Base 7 + setgrent@Base 5 + setitimer@Base 4.9 + setlocale@Base 4.9 + setpwent@Base 5 + sigaction@Base 4.8 + sigemptyset@Base 4.9 + sigfillset@Base 4.9 + siglongjmp@Base 4.8 + signal@Base 4.8 + sigpending@Base 4.9 + sigprocmask@Base 4.9 + sigtimedwait@Base 4.9 + sigwait@Base 4.9 + sigwaitinfo@Base 4.9 + sincos@Base 4.9 + sincosf@Base 4.9 + sincosl@Base 4.9 + snprintf@Base 5 + sprintf@Base 5 + sscanf@Base 4.8 + statfs64@Base 4.9 + statfs@Base 4.9 + statvfs64@Base 4.9 + statvfs@Base 4.9 + strcasecmp@Base 4.8 + strcasestr@Base 6.2 + strcat@Base 4.8 + strchr@Base 4.8 + strchrnul@Base 7 + strcmp@Base 4.8 + strcpy@Base 4.8 + strcspn@Base 6.2 + strdup@Base 4.8 + strerror@Base 4.9 + strerror_r@Base 4.9 + strlen@Base 4.8 + strncasecmp@Base 4.8 + strncat@Base 4.8 + strncmp@Base 4.8 + strncpy@Base 4.8 + strnlen@Base 4.8 + strpbrk@Base 6.2 + strptime@Base 4.9 + strrchr@Base 7 + strspn@Base 6.2 + strstr@Base 6.2 + strtoimax@Base 4.9 + strtol@Base 4.8 + strtoll@Base 4.8 + strtoumax@Base 4.9 + swapcontext@Base 4.8 + sysinfo@Base 4.9 + tcgetattr@Base 4.9 + tempnam@Base 4.9 + textdomain@Base 4.9 + time@Base 4.9 + timerfd_gettime@Base 5 + timerfd_settime@Base 5 + times@Base 4.9 + tmpnam@Base 4.9 + tmpnam_r@Base 4.9 + tsearch@Base 5 + ttyname_r@Base 7 + valloc@Base 4.8 + vasprintf@Base 5 + vfprintf@Base 5 + vfscanf@Base 4.8 + vprintf@Base 5 + vscanf@Base 4.8 + vsnprintf@Base 5 + vsprintf@Base 5 + vsscanf@Base 4.8 + wait3@Base 4.9 + wait4@Base 4.9 + wait@Base 4.9 + waitid@Base 4.9 + waitpid@Base 4.9 + wcrtomb@Base 6.2 + wcslen@Base 4.9 + wcsnrtombs@Base 4.9 + wcsrtombs@Base 4.9 + wcstombs@Base 4.9 + wordexp@Base 4.9 + write@Base 4.8 + writev@Base 4.9 + xdr_bool@Base 5 + xdr_bytes@Base 5 + xdr_char@Base 5 + xdr_double@Base 5 + xdr_enum@Base 5 + xdr_float@Base 5 + xdr_hyper@Base 5 + xdr_int16_t@Base 5 + xdr_int32_t@Base 5 + xdr_int64_t@Base 5 + xdr_int8_t@Base 5 + xdr_int@Base 5 + xdr_long@Base 5 + xdr_longlong_t@Base 5 + xdr_quad_t@Base 5 + xdr_short@Base 5 + xdr_string@Base 5 + xdr_u_char@Base 5 + xdr_u_hyper@Base 5 + xdr_u_int@Base 5 + xdr_u_long@Base 5 + xdr_u_longlong_t@Base 5 + xdr_u_quad_t@Base 5 + xdr_u_short@Base 5 + xdr_uint16_t@Base 5 + xdr_uint32_t@Base 5 + xdr_uint64_t@Base 5 + xdr_uint8_t@Base 5 + xdrmem_create@Base 5 + xdrstdio_create@Base 5 + (optional)backtrace_uncompress_zdebug@Base 7 --- gcc-7-7.5.0.orig/debian/libasan4.symbols +++ gcc-7-7.5.0/debian/libasan4.symbols @@ -0,0 +1,28 @@ +libasan.so.4 libasan4 #MINVER# +#include "libasan.symbols.common" +(arch=!arm64 !alpha !amd64 !ia64 !mips64el !ppc64 !ppc64el !s390x !sparc64 !kfreebsd-amd64)#include "libasan.symbols.32" +(arch=arm64 alpha amd64 ia64 mips64el ppc64 ppc64el s390x sparc64 kfreebsd-amd64)#include "libasan.symbols.64" +(arch=armel armhf sparc64 x32)#include "libasan.symbols.16" +# these are missing on some archs ... + (arch=!s390x)__interceptor___tls_get_addr@Base 5 + (arch=!powerpc !ppc64 !ppc64el !s390x)__tls_get_addr@Base 5 + (arch=powerpc ppc64 ppc64el)__tls_get_addr_opt@Base 7 + (arch=s390x)__interceptor___tls_get_addr_internal@Base 7 + (arch=s390x)__interceptor___tls_get_offset@Base 7 + (arch=s390x)__tls_get_addr_internal@Base 7 + (arch=s390x)__tls_get_offset@Base 7 + (arch=!armel !powerpc !sparc !sparc64)__interceptor_ptrace@Base 4.9 + (arch=!armel !powerpc !sparc !sparc64)ptrace@Base 4.9 + (arch=any-amd64 x32 any-mips any-mipsel)internal_sigreturn@Base 7 + (arch=armel armhf)__interceptor___aeabi_memclr4@Base 5 + (arch=armel armhf)__interceptor___aeabi_memclr8@Base 5 + (arch=armel armhf)__interceptor___aeabi_memclr@Base 5 + (arch=armel armhf)__interceptor___aeabi_memcpy4@Base 5 + (arch=armel armhf)__interceptor___aeabi_memcpy8@Base 5 + (arch=armel armhf)__interceptor___aeabi_memcpy@Base 5 + (arch=armel armhf)__interceptor___aeabi_memmove4@Base 5 + (arch=armel armhf)__interceptor___aeabi_memmove8@Base 5 + (arch=armel armhf)__interceptor___aeabi_memmove@Base 5 + (arch=armel armhf)__interceptor___aeabi_memset4@Base 5 + (arch=armel armhf)__interceptor___aeabi_memset8@Base 5 + (arch=armel armhf)__interceptor___aeabi_memset@Base 5 --- gcc-7-7.5.0.orig/debian/libatomic.symbols +++ gcc-7-7.5.0/debian/libatomic.symbols @@ -0,0 +1,4 @@ +libatomic.so.1 #PACKAGE# #MINVER# + (symver)LIBATOMIC_1.0 4.8 + (symver)LIBATOMIC_1.1 4.9 + (symver)LIBATOMIC_1.2 6 --- gcc-7-7.5.0.orig/debian/libcc1-0.symbols +++ gcc-7-7.5.0/debian/libcc1-0.symbols @@ -0,0 +1,64 @@ +libcc1.so.0 libcc1-0 #MINVER# + (optional=abi_c++98)_ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag@Base 5 + (optional=abi_c++98)_ZNSt6vectorISsSaISsEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPSsS1_EERKSs@Base 5 + (optional=abi_c++11)_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12emplace_backIJS5_EEEvDpOT_@Base 6 + (optional=abi_c++11)_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_emplace_back_auxIJRKS5_EEEvDpOT_@Base 6 + (optional=abi_c++11)_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_emplace_back_auxIJS5_EEEvDpOT_@Base 6 + _xexit_cleanup@Base 5 + (optional=abi_c++11)_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_@Base 7 + (optional=abi_c++11)_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_@Base 7 + concat@Base 5 + concat_copy2@Base 5 + concat_copy@Base 5 + concat_length@Base 5 + gcc_c_fe_context@Base 5 + gcc_cp_fe_context@Base 7 + htab_clear_slot@Base 5 + htab_collisions@Base 5 + htab_create@Base 5 + htab_create_alloc@Base 5 + htab_create_alloc_ex@Base 5 + htab_create_typed_alloc@Base 5 + htab_delete@Base 5 + htab_elements@Base 5 + htab_empty@Base 5 + htab_eq_pointer@Base 5 + htab_find@Base 5 + htab_find_slot@Base 5 + htab_find_slot_with_hash@Base 5 + htab_find_with_hash@Base 5 + htab_hash_pointer@Base 5 + htab_hash_string@Base 5 + htab_remove_elt@Base 5 + htab_remove_elt_with_hash@Base 5 + htab_set_functions_ex@Base 5 + htab_size@Base 5 + htab_traverse@Base 5 + htab_traverse_noresize@Base 5 + htab_try_create@Base 5 + iterative_hash@Base 5 + libiberty_concat_ptr@Base 5 + reconcat@Base 5 + xcalloc@Base 5 + xexit@Base 5 + xmalloc@Base 5 + xmalloc_failed@Base 5 + xmalloc_set_program_name@Base 5 + xre_comp@Base 5 + xre_compile_fastmap@Base 5 + xre_compile_pattern@Base 5 + xre_exec@Base 5 + xre_match@Base 5 + xre_match_2@Base 5 + xre_max_failures@Base 5 + xre_search@Base 5 + xre_search_2@Base 5 + xre_set_registers@Base 5 + xre_set_syntax@Base 5 + xre_syntax_options@Base 5 + xrealloc@Base 5 + xregcomp@Base 5 + xregerror@Base 5 + xregexec@Base 5 + xregfree@Base 5 + xstrdup@Base 7 --- gcc-7-7.5.0.orig/debian/libcilkrts.symbols +++ gcc-7-7.5.0/debian/libcilkrts.symbols @@ -0,0 +1,4 @@ +libcilkrts.so.5 #PACKAGE# #MINVER# + (symver)CILKABI0 4.9 + (symver)CILKABI1 4.9 + (symver)CILKLIB1.02 4.9 --- gcc-7-7.5.0.orig/debian/libgcc.symbols +++ gcc-7-7.5.0/debian/libgcc.symbols @@ -0,0 +1,26 @@ +libgcc_s.so.1 #PACKAGE# #MINVER# + (symver)GCC_3.0 1:3.0 + (symver)GCC_3.3 1:3.3 + (symver)GCC_3.3.1 1:3.3.1 +# __gcc_personality_sj0, __gcc_personality_v0 +#(symver|optional)GCC_3.3.2 1:3.3.2 + (symver|arch=armel armhf mips mipsel mipsn32 mips64 mips64el powerpc powerpcspe sh4)GCC_3.3.4 1:3.3.4 + (symver)GCC_3.4 1:3.4 + (symver)GCC_3.4.2 1:3.4.2 +#(symver|arch-bits=32)GCC_3.4.4 1:3.4.4 + (symver|arch=!armel !armhf !any-i386 !mips !mipsel !powerpc !powerpcspe !s390 !sh4 !sparc)GCC_3.4.4 1:3.4.4 + (symver|arch=armel armhf|ignore-blacklist)GCC_3.5 1:3.5 + (symver)GCC_4.0.0 1:4.0 + (symver|arch=powerpc s390 s390x)GCC_4.1.0 1:4.1 + (symver)GCC_4.2.0 1:4.2 + (symver)GCC_4.3.0 1:4.3 + (symver|arch=any-i386 mips mipsel mipsn32 mips64 mips64el)GCC_4.4.0 1:4.4 + (symver|arch=arm64 any-i386 mipsn32 mips64 mips64el)GCC_4.5.0 1:4.5 +#(symver|optional)GCC_4.6.0 1:4.6 + (symver)GCC_4.7.0 1:4.7 + (symver|arch=any-amd64 any-i386 x32)GCC_4.8.0 1:4.8 + (symver|arch=!any-amd64 !x32 !sparc64 !s390x)GLIBC_2.0 1:4.2 + (symver|arch=s390x sh4 sparc64)GLIBC_2.2 1:4.2 + (symver|arch=sparc)GCC_LDBL_3.0@GCC_LDBL_3.0 1:3.0 + (symver|arch=alpha sparc)GCC_LDBL_4.0.0@GCC_LDBL_4.0.0 1:4.0 + (symver)GCC_7.0.0 1:7 --- gcc-7-7.5.0.orig/debian/libgcc.symbols.aeabi +++ gcc-7-7.5.0/debian/libgcc.symbols.aeabi @@ -0,0 +1,69 @@ + __aeabi_cdcmpeq@GCC_3.5 1:3.5 + __aeabi_cdcmple@GCC_3.5 1:3.5 + __aeabi_cdrcmple@GCC_3.5 1:3.5 + __aeabi_cfcmpeq@GCC_3.5 1:3.5 + __aeabi_cfcmple@GCC_3.5 1:3.5 + __aeabi_cfrcmple@GCC_3.5 1:3.5 + __aeabi_d2f@GCC_3.5 1:3.5 + __aeabi_d2iz@GCC_3.5 1:3.5 + __aeabi_d2lz@GCC_3.5 1:3.5 + __aeabi_d2uiz@GCC_3.5 1:3.5 + __aeabi_d2ulz@GCC_3.5 1:3.5 + __aeabi_dadd@GCC_3.5 1:3.5 + __aeabi_dcmpeq@GCC_3.5 1:3.5 + __aeabi_dcmpge@GCC_3.5 1:3.5 + __aeabi_dcmpgt@GCC_3.5 1:3.5 + __aeabi_dcmple@GCC_3.5 1:3.5 + __aeabi_dcmplt@GCC_3.5 1:3.5 + __aeabi_dcmpun@GCC_3.5 1:3.5 + __aeabi_ddiv@GCC_3.5 1:3.5 + __aeabi_dmul@GCC_3.5 1:3.5 + __aeabi_dneg@GCC_3.5 1:3.5 + __aeabi_drsub@GCC_3.5 1:3.5 + __aeabi_dsub@GCC_3.5 1:3.5 + __aeabi_f2d@GCC_3.5 1:3.5 + __aeabi_f2iz@GCC_3.5 1:3.5 + __aeabi_f2lz@GCC_3.5 1:3.5 + __aeabi_f2uiz@GCC_3.5 1:3.5 + __aeabi_f2ulz@GCC_3.5 1:3.5 + __aeabi_fadd@GCC_3.5 1:3.5 + __aeabi_fcmpeq@GCC_3.5 1:3.5 + __aeabi_fcmpge@GCC_3.5 1:3.5 + __aeabi_fcmpgt@GCC_3.5 1:3.5 + __aeabi_fcmple@GCC_3.5 1:3.5 + __aeabi_fcmplt@GCC_3.5 1:3.5 + __aeabi_fcmpun@GCC_3.5 1:3.5 + __aeabi_fdiv@GCC_3.5 1:3.5 + __aeabi_fmul@GCC_3.5 1:3.5 + __aeabi_fneg@GCC_3.5 1:3.5 + __aeabi_frsub@GCC_3.5 1:3.5 + __aeabi_fsub@GCC_3.5 1:3.5 + __aeabi_i2d@GCC_3.5 1:3.5 + __aeabi_i2f@GCC_3.5 1:3.5 + __aeabi_idiv@GCC_3.5 1:3.5 + __aeabi_idiv0@GCC_3.5 1:4.5.0 + __aeabi_idivmod@GCC_3.5 1:3.5 + __aeabi_l2d@GCC_3.5 1:3.5 + __aeabi_l2f@GCC_3.5 1:3.5 + __aeabi_lasr@GCC_3.5 1:3.5 + __aeabi_lcmp@GCC_3.5 1:3.5 + __aeabi_ldivmod@GCC_3.5 1:3.5 + __aeabi_ldiv0@GCC_3.5 1:4.5.0 + __aeabi_llsl@GCC_3.5 1:3.5 + __aeabi_llsr@GCC_3.5 1:3.5 + __aeabi_lmul@GCC_3.5 1:3.5 + __aeabi_ui2d@GCC_3.5 1:3.5 + __aeabi_ui2f@GCC_3.5 1:3.5 + __aeabi_uidiv@GCC_3.5 1:3.5 + __aeabi_uidivmod@GCC_3.5 1:3.5 + __aeabi_ul2d@GCC_3.5 1:3.5 + __aeabi_ul2f@GCC_3.5 1:3.5 + __aeabi_ulcmp@GCC_3.5 1:3.5 + __aeabi_uldivmod@GCC_3.5 1:3.5 + __aeabi_unwind_cpp_pr0@GCC_3.5 1:3.5 + __aeabi_unwind_cpp_pr1@GCC_3.5 1:3.5 + __aeabi_unwind_cpp_pr2@GCC_3.5 1:3.5 + __aeabi_uread4@GCC_3.5 1:3.5 + __aeabi_uread8@GCC_3.5 1:3.5 + __aeabi_uwrite4@GCC_3.5 1:3.5 + __aeabi_uwrite8@GCC_3.5 1:3.5 --- gcc-7-7.5.0.orig/debian/libgcc2.symbols.m68k +++ gcc-7-7.5.0/debian/libgcc2.symbols.m68k @@ -0,0 +1,162 @@ +libgcc_s.so.2 libgcc2 #MINVER# + GCC_3.0@GCC_3.0 4.2.1 + GCC_3.3.1@GCC_3.3.1 4.2.1 + GCC_3.3.4@GCC_3.3.4 4.4.5 + GCC_3.3@GCC_3.3 4.2.1 + GCC_3.4.2@GCC_3.4.2 4.2.1 + GCC_3.4@GCC_3.4 4.2.1 + GCC_4.0.0@GCC_4.0.0 4.2.1 + GCC_4.2.0@GCC_4.2.0 4.2.1 + GCC_4.3.0@GCC_4.3.0 4.3.0 + GCC_4.5.0@GCC_4.5.0 4.5 + GCC_4.7.0@GCC_4.7.0 4.7 + GLIBC_2.0@GLIBC_2.0 4.2.1 + _Unwind_Backtrace@GCC_3.3 4.2.1 + _Unwind_DeleteException@GCC_3.0 4.2.1 + _Unwind_FindEnclosingFunction@GCC_3.3 4.2.1 + _Unwind_Find_FDE@GCC_3.0 4.2.1 + _Unwind_ForcedUnwind@GCC_3.0 4.2.1 + _Unwind_GetCFA@GCC_3.3 4.2.1 + _Unwind_GetDataRelBase@GCC_3.0 4.2.1 + _Unwind_GetGR@GCC_3.0 4.2.1 + _Unwind_GetIP@GCC_3.0 4.2.1 + _Unwind_GetIPInfo@GCC_4.2.0 4.2.1 + _Unwind_GetLanguageSpecificData@GCC_3.0 4.2.1 + _Unwind_GetRegionStart@GCC_3.0 4.2.1 + _Unwind_GetTextRelBase@GCC_3.0 4.2.1 + _Unwind_RaiseException@GCC_3.0 4.2.1 + _Unwind_Resume@GCC_3.0 4.2.1 + _Unwind_Resume_or_Rethrow@GCC_3.3 4.2.1 + _Unwind_SetGR@GCC_3.0 4.2.1 + _Unwind_SetIP@GCC_3.0 4.2.1 + __absvdi2@GCC_3.0 4.2.1 + __absvsi2@GCC_3.0 4.2.1 + __adddf3@GCC_3.0 4.4.5 + __addsf3@GCC_3.0 4.4.5 + __addvdi3@GCC_3.0 4.2.1 + __addvsi3@GCC_3.0 4.2.1 + __addxf3@GCC_3.0 4.4.5 + __ashldi3@GCC_3.0 4.2.1 + __ashrdi3@GCC_3.0 4.2.1 + __bswapdi2@GCC_4.3.0 4.3.0 + __bswapsi2@GCC_4.3.0 4.3.0 + __clear_cache@GCC_3.0 4.2.1 + __clrsbdi2@GCC_4.7.0 4.7 + __clrsbsi2@GCC_4.7.0 4.7 + __clzdi2@GCC_3.4 4.2.1 + __clzsi2@GCC_3.4 4.2.1 + __cmpdi2@GCC_3.0 4.2.1 + __ctzdi2@GCC_3.4 4.2.1 + __ctzsi2@GCC_3.4 4.2.1 + __deregister_frame@GLIBC_2.0 4.2.1 + __deregister_frame_info@GLIBC_2.0 4.2.1 + __deregister_frame_info_bases@GCC_3.0 4.2.1 + __divdc3@GCC_4.0.0 4.2.1 + __divdf3@GCC_3.0 4.4.5 + __divdi3@GLIBC_2.0 4.2.1 + __divsc3@GCC_4.0.0 4.2.1 + __divsf3@GCC_3.0 4.4.5 + __divsi3@GCC_3.0 4.4.5 + __divxc3@GCC_4.0.0 4.2.1 + __divxf3@GCC_3.0 4.4.5 + __emutls_get_address@GCC_4.3.0 4.3.0 + __emutls_register_common@GCC_4.3.0 4.3.0 + __enable_execute_stack@GCC_3.4.2 4.2.1 + __eqdf2@GCC_3.0 4.4.5 + __eqsf2@GCC_3.0 4.4.5 + __eqxf2@GCC_3.0 4.4.5 + __extenddfxf2@GCC_3.0 4.4.5 + __extendsfdf2@GCC_3.0 4.4.5 + __extendsfxf2@GCC_3.0 4.4.5 + __ffsdi2@GCC_3.0 4.2.1 + __ffssi2@GCC_4.3.0 4.3.0 + __fixdfdi@GCC_3.0 4.2.1 + __fixdfsi@GCC_3.0 4.4.5 + __fixsfdi@GCC_3.0 4.2.1 + __fixsfsi@GCC_3.0 4.4.5 + __fixunsdfdi@GCC_3.0 4.2.1 + __fixunsdfsi@GCC_3.0 4.2.1 + __fixunssfdi@GCC_3.0 4.2.1 + __fixunssfsi@GCC_3.0 4.2.1 + __fixunsxfdi@GCC_3.0 4.2.1 + __fixunsxfsi@GCC_3.0 4.2.1 + __fixxfdi@GCC_3.0 4.2.1 + __fixxfsi@GCC_3.0 4.4.5 + __floatdidf@GCC_3.0 4.2.1 + __floatdisf@GCC_3.0 4.2.1 + __floatdixf@GCC_3.0 4.2.1 + __floatsidf@GCC_3.0 4.4.5 + __floatsisf@GCC_3.0 4.4.5 + __floatsixf@GCC_3.0 4.4.5 + __floatundidf@GCC_4.2.0 4.2.1 + __floatundisf@GCC_4.2.0 4.2.1 + __floatundixf@GCC_4.2.0 4.2.1 + __floatunsidf@GCC_4.2.0 4.4.5 + __floatunsisf@GCC_4.2.0 4.4.5 + __floatunsixf@GCC_4.2.0 4.4.5 + __frame_state_for@GLIBC_2.0 4.2.1 + __gcc_personality_v0@GCC_3.3.1 4.2.1 + __gedf2@GCC_3.0 4.4.5 + __gesf2@GCC_3.0 4.4.5 + __gexf2@GCC_3.0 4.4.5 + __gtdf2@GCC_3.0 4.4.5 + __gtsf2@GCC_3.0 4.4.5 + __gtxf2@GCC_3.0 4.4.5 + __ledf2@GCC_3.0 4.4.5 + __lesf2@GCC_3.0 4.4.5 + __lexf2@GCC_3.0 4.4.5 + __lshrdi3@GCC_3.0 4.2.1 + __ltdf2@GCC_3.0 4.4.5 + __ltsf2@GCC_3.0 4.4.5 + __ltxf2@GCC_3.0 4.4.5 + __moddi3@GLIBC_2.0 4.2.1 + __modsi3@GCC_3.0 4.4.5 + __muldc3@GCC_4.0.0 4.2.1 + __muldf3@GCC_3.0 4.4.5 + __muldi3@GCC_3.0 4.2.1 + __mulsc3@GCC_4.0.0 4.2.1 + __mulsf3@GCC_3.0 4.4.5 + __mulsi3@GCC_3.0 4.4.5 + __mulvdi3@GCC_3.0 4.2.1 + __mulvsi3@GCC_3.0 4.2.1 + __mulxc3@GCC_4.0.0 4.2.1 + __mulxf3@GCC_3.0 4.4.5 + __nedf2@GCC_3.0 4.4.5 + __negdf2@GCC_3.0 4.4.5 + __negdi2@GCC_3.0 4.2.1 + __negsf2@GCC_3.0 4.4.5 + __negvdi2@GCC_3.0 4.2.1 + __negvsi2@GCC_3.0 4.2.1 + __negxf2@GCC_3.0 4.4.5 + __nesf2@GCC_3.0 4.4.5 + __nexf2@GCC_3.0 4.4.5 + __paritydi2@GCC_3.4 4.2.1 + __paritysi2@GCC_3.4 4.2.1 + __popcountdi2@GCC_3.4 4.2.1 + __popcountsi2@GCC_3.4 4.2.1 + __powidf2@GCC_4.0.0 4.2.1 + __powisf2@GCC_4.0.0 4.2.1 + __powixf2@GCC_4.0.0 4.2.1 + __register_frame@GLIBC_2.0 4.2.1 + __register_frame_info@GLIBC_2.0 4.2.1 + __register_frame_info_bases@GCC_3.0 4.2.1 + __register_frame_info_table@GLIBC_2.0 4.2.1 + __register_frame_info_table_bases@GCC_3.0 4.2.1 + __register_frame_table@GLIBC_2.0 4.2.1 + __subdf3@GCC_3.0 4.4.5 + __subsf3@GCC_3.0 4.4.5 + __subvdi3@GCC_3.0 4.2.1 + __subvsi3@GCC_3.0 4.2.1 + __subxf3@GCC_3.0 4.4.5 + __truncdfsf2@GCC_3.0 4.4.5 + __truncxfdf2@GCC_3.0 4.4.5 + __truncxfsf2@GCC_3.0 4.4.5 + __ucmpdi2@GCC_3.0 4.2.1 + __udivdi3@GLIBC_2.0 4.2.1 + __udivmoddi4@GCC_3.0 4.2.1 + __udivsi3@GCC_3.0 4.4.5 + __umoddi3@GLIBC_2.0 4.2.1 + __umodsi3@GCC_3.0 4.4.5 + __unorddf2@GCC_3.3.4 4.4.5 + __unordsf2@GCC_3.3.4 4.4.5 + __unordxf2@GCC_4.5.0 4.7 --- gcc-7-7.5.0.orig/debian/libgcc4.symbols.hppa +++ gcc-7-7.5.0/debian/libgcc4.symbols.hppa @@ -0,0 +1,96 @@ +libgcc_s.so.4 libgcc4 #MINVER# + GCC_3.0@GCC_3.0 4.1.1 + GCC_3.3.1@GCC_3.3.1 4.1.1 + GCC_3.3@GCC_3.3 4.1.1 + GCC_3.4.2@GCC_3.4.2 4.1.1 + GCC_3.4@GCC_3.4 4.1.1 + GCC_4.0.0@GCC_4.0.0 4.1.1 + GCC_4.2.0@GCC_4.2.0 4.1.1 + GCC_4.3.0@GCC_4.3.0 4.3 + GCC_4.7.0@GCC_4.7.0 1:4.7 + GLIBC_2.0@GLIBC_2.0 4.1.1 + _Unwind_Backtrace@GCC_3.3 4.1.1 + _Unwind_DeleteException@GCC_3.0 4.1.1 + _Unwind_FindEnclosingFunction@GCC_3.3 4.1.1 + _Unwind_Find_FDE@GCC_3.0 4.1.1 + _Unwind_ForcedUnwind@GCC_3.0 4.1.1 + _Unwind_GetCFA@GCC_3.3 4.1.1 + _Unwind_GetDataRelBase@GCC_3.0 4.1.1 + _Unwind_GetGR@GCC_3.0 4.1.1 + _Unwind_GetIP@GCC_3.0 4.1.1 + _Unwind_GetIPInfo@GCC_4.2.0 4.1.1 + _Unwind_GetLanguageSpecificData@GCC_3.0 4.1.1 + _Unwind_GetRegionStart@GCC_3.0 4.1.1 + _Unwind_GetTextRelBase@GCC_3.0 4.1.1 + _Unwind_RaiseException@GCC_3.0 4.1.1 + _Unwind_Resume@GCC_3.0 4.1.1 + _Unwind_Resume_or_Rethrow@GCC_3.3 4.1.1 + _Unwind_SetGR@GCC_3.0 4.1.1 + _Unwind_SetIP@GCC_3.0 4.1.1 + __absvdi2@GCC_3.0 4.1.1 + __absvsi2@GCC_3.0 4.1.1 + __addvdi3@GCC_3.0 4.1.1 + __addvsi3@GCC_3.0 4.1.1 + __ashldi3@GCC_3.0 4.1.1 + __ashrdi3@GCC_3.0 4.1.1 + __bswapdi2@GCC_4.3.0 4.3 + __bswapsi2@GCC_4.3.0 4.3 + __clear_cache@GCC_3.0 4.1.1 + __clrsbdi2@GCC_4.7.0 4.7 + __clrsbsi2@GCC_4.7.0 4.7 + __clzdi2@GCC_3.4 4.1.1 + __clzsi2@GCC_3.4 4.1.1 + __cmpdi2@GCC_3.0 4.1.1 + __ctzdi2@GCC_3.4 4.1.1 + __ctzsi2@GCC_3.4 4.1.1 + __deregister_frame@GLIBC_2.0 4.1.1 + __deregister_frame_info@GLIBC_2.0 4.1.1 + __deregister_frame_info_bases@GCC_3.0 4.1.1 + __divdc3@GCC_4.0.0 4.1.1 + __divdi3@GLIBC_2.0 4.1.1 + __divsc3@GCC_4.0.0 4.1.1 + __emutls_get_address@GCC_4.3.0 4.3 + __emutls_register_common@GCC_4.3.0 4.3 + __enable_execute_stack@GCC_3.4.2 4.1.1 + __ffsdi2@GCC_3.0 4.1.1 + __ffssi2@GCC_4.3.0 4.3 + __fixdfdi@GCC_3.0 4.1.1 + __fixsfdi@GCC_3.0 4.1.1 + __fixunsdfdi@GCC_3.0 4.1.1 + __fixunsdfsi@GCC_3.0 4.1.1 + __fixunssfdi@GCC_3.0 4.1.1 + __fixunssfsi@GCC_3.0 4.1.1 + __floatdidf@GCC_3.0 4.1.1 + __floatdisf@GCC_3.0 4.1.1 + __floatundidf@GCC_4.2.0 4.2.1 + __floatundisf@GCC_4.2.0 4.2.1 + __frame_state_for@GLIBC_2.0 4.1.1 + __gcc_personality_v0@GCC_3.3.1 4.1.1 + __lshrdi3@GCC_3.0 4.1.1 + __moddi3@GLIBC_2.0 4.1.1 + __muldc3@GCC_4.0.0 4.1.1 + __muldi3@GCC_3.0 4.1.1 + __mulsc3@GCC_4.0.0 4.1.1 + __mulvdi3@GCC_3.0 4.1.1 + __mulvsi3@GCC_3.0 4.1.1 + __negdi2@GCC_3.0 4.1.1 + __negvdi2@GCC_3.0 4.1.1 + __negvsi2@GCC_3.0 4.1.1 + __paritydi2@GCC_3.4 4.1.1 + __paritysi2@GCC_3.4 4.1.1 + __popcountdi2@GCC_3.4 4.1.1 + __popcountsi2@GCC_3.4 4.1.1 + __powidf2@GCC_4.0.0 4.1.1 + __powisf2@GCC_4.0.0 4.1.1 + __register_frame@GLIBC_2.0 4.1.1 + __register_frame_info@GLIBC_2.0 4.1.1 + __register_frame_info_bases@GCC_3.0 4.1.1 + __register_frame_info_table@GLIBC_2.0 4.1.1 + __register_frame_info_table_bases@GCC_3.0 4.1.1 + __register_frame_table@GLIBC_2.0 4.1.1 + __subvdi3@GCC_3.0 4.1.1 + __subvsi3@GCC_3.0 4.1.1 + __ucmpdi2@GCC_3.0 4.1.1 + __udivdi3@GLIBC_2.0 4.1.1 + __udivmoddi4@GCC_3.0 4.1.1 + __umoddi3@GLIBC_2.0 4.1.1 --- gcc-7-7.5.0.orig/debian/libgccLC.postinst +++ gcc-7-7.5.0/debian/libgccLC.postinst @@ -0,0 +1,12 @@ +#! /bin/sh -e + +case "$1" in + configure) + docdir=/usr/share/doc/libgcc@LC@ + if [ -d $docdir ] && [ ! -h $docdir ]; then + rm -rf $docdir + ln -s gcc-@BV@-base $docdir + fi +esac + +#DEBHELPER# --- gcc-7-7.5.0.orig/debian/libgccjit0.symbols +++ gcc-7-7.5.0/debian/libgccjit0.symbols @@ -0,0 +1,8 @@ +libgccjit.so.0 #PACKAGE# #MINVER# + (symver)LIBGCCJIT_ABI_0 5.1 + (symver)LIBGCCJIT_ABI_1 5.1 + (symver)LIBGCCJIT_ABI_2 5.1 + (symver)LIBGCCJIT_ABI_3 5.1 + (symver)LIBGCCJIT_ABI_4 6 + (symver)LIBGCCJIT_ABI_5 6 + (symver)LIBGCCJIT_ABI_6 7 --- gcc-7-7.5.0.orig/debian/libgfortran.symbols +++ gcc-7-7.5.0/debian/libgfortran.symbols @@ -0,0 +1,4 @@ +libgfortran.so.4 #PACKAGE# #MINVER# + (symver)GFORTRAN_7 7 + (symver)GFORTRAN_C99_7 7 + (symver)GFORTRAN_F2C_7 7 --- gcc-7-7.5.0.orig/debian/libgnat-7.overrides +++ gcc-7-7.5.0/debian/libgnat-7.overrides @@ -0,0 +1 @@ +libgnat-7 binary: package-name-doesnt-match-sonames --- gcc-7-7.5.0.orig/debian/libgomp.symbols +++ gcc-7-7.5.0/debian/libgomp.symbols @@ -0,0 +1,18 @@ +libgomp.so.1 #PACKAGE# #MINVER# + (symver)GOACC_2.0 5 + (symver)GOACC_2.0.1 6 + (symver)GOMP_1.0 4.2.1 + (symver)GOMP_2.0 4.4 + (symver)GOMP_3.0 4.7 + (symver)GOMP_4.0 4.9 + (symver)GOMP_4.0.1 5 + (symver)GOMP_4.5 6 + (symver)GOMP_PLUGIN_1.0 5 + (symver)GOMP_PLUGIN_1.1 6 + (symver)OACC_2.0 5 + (symver)OMP_1.0 4.2.1 + (symver)OMP_2.0 4.2.1 + (symver)OMP_3.0 4.4 + (symver)OMP_3.1 4.7 + (symver)OMP_4.0 4.9 + (symver)OMP_4.5 6 --- gcc-7-7.5.0.orig/debian/libhsail-rt.symbols +++ gcc-7-7.5.0/debian/libhsail-rt.symbols @@ -0,0 +1,153 @@ +libhsail-rt.so.0 #PACKAGE# #MINVER# + __hsail_addqueuewriteindex@Base 7 + __hsail_alloca@Base 7 + __hsail_alloca_pop_frame@Base 7 + __hsail_alloca_push_frame@Base 7 + __hsail_arrivefbar@Base 7 + __hsail_atomic_max_s32@Base 7 + __hsail_atomic_max_s64@Base 7 + __hsail_atomic_max_u32@Base 7 + __hsail_atomic_max_u64@Base 7 + __hsail_atomic_min_s32@Base 7 + __hsail_atomic_min_s64@Base 7 + __hsail_atomic_min_u32@Base 7 + __hsail_atomic_min_u64@Base 7 + __hsail_atomic_wrapdec_u32@Base 7 + __hsail_atomic_wrapdec_u64@Base 7 + __hsail_atomic_wrapinc_u32@Base 7 + __hsail_atomic_wrapinc_u64@Base 7 + __hsail_barrier@Base 7 + __hsail_bitalign@Base 7 + __hsail_bitextract_s32@Base 7 + __hsail_bitextract_s64@Base 7 + __hsail_bitextract_u32@Base 7 + __hsail_bitextract_u64@Base 7 + __hsail_bitinsert_u32@Base 7 + __hsail_bitinsert_u64@Base 7 + __hsail_bitmask_u32@Base 7 + __hsail_bitmask_u64@Base 7 + __hsail_bitrev_u32@Base 7 + __hsail_bitrev_u64@Base 7 + __hsail_bitselect_u32@Base 7 + __hsail_bitselect_u64@Base 7 + __hsail_borrow_u32@Base 7 + __hsail_borrow_u64@Base 7 + __hsail_bytealign@Base 7 + __hsail_carry_u32@Base 7 + __hsail_carry_u64@Base 7 + __hsail_casqueuewriteindex@Base 7 + __hsail_class_f32@Base 7 + __hsail_class_f32_f16@Base 7 + __hsail_clock@Base 7 + __hsail_cuid@Base 7 + __hsail_currentworkgroupsize@Base 7 + __hsail_currentworkitemflatid@Base 7 + __hsail_cvt_zeroi_sat_s16_f32@Base 7 + __hsail_cvt_zeroi_sat_s16_f64@Base 7 + __hsail_cvt_zeroi_sat_s32_f32@Base 7 + __hsail_cvt_zeroi_sat_s32_f64@Base 7 + __hsail_cvt_zeroi_sat_s64_f32@Base 7 + __hsail_cvt_zeroi_sat_s64_f64@Base 7 + __hsail_cvt_zeroi_sat_s8_f32@Base 7 + __hsail_cvt_zeroi_sat_s8_f64@Base 7 + __hsail_cvt_zeroi_sat_u16_f32@Base 7 + __hsail_cvt_zeroi_sat_u16_f64@Base 7 + __hsail_cvt_zeroi_sat_u32_f32@Base 7 + __hsail_cvt_zeroi_sat_u32_f64@Base 7 + __hsail_cvt_zeroi_sat_u64_f32@Base 7 + __hsail_cvt_zeroi_sat_u64_f64@Base 7 + __hsail_cvt_zeroi_sat_u8_f32@Base 7 + __hsail_cvt_zeroi_sat_u8_f64@Base 7 + __hsail_debugtrap@Base 7 + __hsail_dim@Base 7 + __hsail_f16_to_f32@Base 7 + __hsail_f32_to_f16@Base 7 + __hsail_firstbit_s32@Base 7 + __hsail_firstbit_s64@Base 7 + __hsail_firstbit_u32@Base 7 + __hsail_firstbit_u64@Base 7 + __hsail_fract_f32@Base 7 + __hsail_fract_f64@Base 7 + __hsail_ftz_f32@Base 7 + __hsail_ftz_f32_f16@Base 7 + __hsail_ftz_f64@Base 7 + __hsail_gridgroups@Base 7 + __hsail_gridsize@Base 7 + __hsail_groupbaseptr@Base 7 + __hsail_initfbar@Base 7 + __hsail_joinfbar@Base 7 + __hsail_kernargbaseptr_u32@Base 7 + __hsail_kernargbaseptr_u64@Base 7 + __hsail_lastbit_u32@Base 7 + __hsail_lastbit_u64@Base 7 + __hsail_launch_kernel@Base 7 + __hsail_launch_wg_function@Base 7 + __hsail_ldqueuereadindex@Base 7 + __hsail_ldqueuewriteindex@Base 7 + __hsail_leavefbar@Base 7 + __hsail_lerp@Base 7 + __hsail_max_f32@Base 7 + __hsail_max_f64@Base 7 + __hsail_maxcuid@Base 7 + __hsail_min_f32@Base 7 + __hsail_min_f64@Base 7 + __hsail_packcvt@Base 7 + __hsail_packetcompletionsig_sig32@Base 7 + __hsail_packetcompletionsig_sig64@Base 7 + __hsail_packetid@Base 7 + __hsail_releasefbar@Base 7 + __hsail_rem_s32@Base 7 + __hsail_rem_s64@Base 7 + __hsail_sad_u16x2@Base 7 + __hsail_sad_u32@Base 7 + __hsail_sad_u8x4@Base 7 + __hsail_sadhi_u16x2_u8x4@Base 7 + __hsail_sat_add_s16@Base 7 + __hsail_sat_add_s32@Base 7 + __hsail_sat_add_s64@Base 7 + __hsail_sat_add_s8@Base 7 + __hsail_sat_add_u16@Base 7 + __hsail_sat_add_u32@Base 7 + __hsail_sat_add_u64@Base 7 + __hsail_sat_add_u8@Base 7 + __hsail_sat_mul_s16@Base 7 + __hsail_sat_mul_s32@Base 7 + __hsail_sat_mul_s64@Base 7 + __hsail_sat_mul_s8@Base 7 + __hsail_sat_mul_u16@Base 7 + __hsail_sat_mul_u32@Base 7 + __hsail_sat_mul_u64@Base 7 + __hsail_sat_mul_u8@Base 7 + __hsail_sat_sub_s16@Base 7 + __hsail_sat_sub_s32@Base 7 + __hsail_sat_sub_s64@Base 7 + __hsail_sat_sub_s8@Base 7 + __hsail_sat_sub_u16@Base 7 + __hsail_sat_sub_u32@Base 7 + __hsail_sat_sub_u64@Base 7 + __hsail_sat_sub_u8@Base 7 + __hsail_segmentp_global@Base 7 + __hsail_segmentp_group@Base 7 + __hsail_segmentp_private@Base 7 + __hsail_setworkitemid@Base 7 + __hsail_stqueuereadindex@Base 7 + __hsail_stqueuewriteindex@Base 7 + __hsail_unpackcvt@Base 7 + __hsail_waitfbar@Base 7 + __hsail_workgroupid@Base 7 + __hsail_workgroupsize@Base 7 + __hsail_workitemabsid@Base 7 + __hsail_workitemabsid_u64@Base 7 + __hsail_workitemflatabsid_u32@Base 7 + __hsail_workitemflatabsid_u64@Base 7 + __hsail_workitemflatid@Base 7 + __hsail_workitemid@Base 7 + fiber_barrier_init@Base 7 + fiber_barrier_reach@Base 7 + fiber_exit@Base 7 + fiber_init@Base 7 + fiber_int_args_to_ptr@Base 7 + fiber_join@Base 7 + fiber_yield@Base 7 + main_context@Base 7 + phsa_fatal_error@Base 7 --- gcc-7-7.5.0.orig/debian/libitm.symbols +++ gcc-7-7.5.0/debian/libitm.symbols @@ -0,0 +1,3 @@ +libitm.so.1 #PACKAGE# #MINVER# + (symver)LIBITM_1.0 4.7 + (symver)LIBITM_1.1 6 --- gcc-7-7.5.0.orig/debian/liblsan0.symbols +++ gcc-7-7.5.0/debian/liblsan0.symbols @@ -0,0 +1,134 @@ +liblsan.so.0 liblsan0 #MINVER# + _ZN11__sanitizer11CheckFailedEPKciS1_yy@Base 4.9 + _ZN11__sanitizer7OnPrintEPKc@Base 4.9 + _ZdaPv@Base 4.9 + _ZdaPvRKSt9nothrow_t@Base 4.9 + _ZdlPv@Base 4.9 + _ZdlPvRKSt9nothrow_t@Base 4.9 + _Znam@Base 4.9 + _ZnamRKSt9nothrow_t@Base 4.9 + _Znwm@Base 4.9 + _ZnwmRKSt9nothrow_t@Base 4.9 + __asan_backtrace_alloc@Base 4.9 + __asan_backtrace_close@Base 4.9 + __asan_backtrace_create_state@Base 4.9 + __asan_backtrace_dwarf_add@Base 4.9 + __asan_backtrace_free@Base 4.9 + __asan_backtrace_get_view@Base 4.9 + __asan_backtrace_initialize@Base 4.9 + __asan_backtrace_open@Base 4.9 + __asan_backtrace_pcinfo@Base 4.9 + __asan_backtrace_qsort@Base 4.9 + __asan_backtrace_release_view@Base 4.9 + __asan_backtrace_syminfo@Base 4.9 + __asan_backtrace_vector_finish@Base 4.9 + __asan_backtrace_vector_grow@Base 4.9 + __asan_backtrace_vector_release@Base 4.9 + __asan_cplus_demangle_builtin_types@Base 4.9 + __asan_cplus_demangle_fill_ctor@Base 4.9 + __asan_cplus_demangle_fill_dtor@Base 4.9 + __asan_cplus_demangle_fill_extended_operator@Base 4.9 + __asan_cplus_demangle_fill_name@Base 4.9 + __asan_cplus_demangle_init_info@Base 4.9 + __asan_cplus_demangle_mangled_name@Base 4.9 + __asan_cplus_demangle_operators@Base 4.9 + __asan_cplus_demangle_print@Base 4.9 + __asan_cplus_demangle_print_callback@Base 4.9 + __asan_cplus_demangle_type@Base 4.9 + __asan_cplus_demangle_v3@Base 4.9 + __asan_cplus_demangle_v3_callback@Base 4.9 + __asan_internal_memcmp@Base 4.9 + __asan_internal_memcpy@Base 4.9 + __asan_internal_memset@Base 4.9 + __asan_internal_strcmp@Base 4.9 + __asan_internal_strlen@Base 4.9 + __asan_internal_strncmp@Base 4.9 + __asan_internal_strnlen@Base 4.9 + __asan_is_gnu_v3_mangled_ctor@Base 4.9 + __asan_is_gnu_v3_mangled_dtor@Base 4.9 + __asan_java_demangle_v3@Base 4.9 + __asan_java_demangle_v3_callback@Base 4.9 + __interceptor___libc_memalign@Base 4.9 + __interceptor_aligned_alloc@Base 5 + __interceptor_calloc@Base 4.9 + __interceptor_cfree@Base 4.9 + __interceptor_free@Base 4.9 + __interceptor_mallinfo@Base 4.9 + __interceptor_malloc@Base 4.9 + __interceptor_malloc_usable_size@Base 4.9 + __interceptor_mallopt@Base 4.9 + __interceptor_memalign@Base 4.9 + __interceptor_posix_memalign@Base 4.9 + __interceptor_pthread_create@Base 4.9 + __interceptor_pthread_join@Base 4.9 + __interceptor_pvalloc@Base 4.9 + __interceptor_realloc@Base 4.9 + __interceptor_valloc@Base 4.9 + __libc_memalign@Base 4.9 + __lsan_disable@Base 4.9 + __lsan_do_leak_check@Base 4.9 + __lsan_do_recoverable_leak_check@Base 6 + __lsan_enable@Base 4.9 + __lsan_ignore_object@Base 4.9 + __lsan_register_root_region@Base 5 + __lsan_unregister_root_region@Base 5 + __sanitizer_cov@Base 4.9 + __sanitizer_cov_dump@Base 4.9 + __sanitizer_cov_indir_call16@Base 5 + __sanitizer_cov_init@Base 5 + __sanitizer_cov_module_init@Base 5 + __sanitizer_cov_trace_basic_block@Base 6 + __sanitizer_cov_trace_cmp1@Base 7 + __sanitizer_cov_trace_cmp2@Base 7 + __sanitizer_cov_trace_cmp4@Base 7 + __sanitizer_cov_trace_cmp8@Base 7 + __sanitizer_cov_trace_cmp@Base 6 + __sanitizer_cov_trace_div4@Base 7 + __sanitizer_cov_trace_div8@Base 7 + __sanitizer_cov_trace_func_enter@Base 6 + __sanitizer_cov_trace_gep@Base 7 + __sanitizer_cov_trace_pc_guard@Base 7 + __sanitizer_cov_trace_pc_guard_init@Base 7 + __sanitizer_cov_trace_pc_indir@Base 7 + __sanitizer_cov_trace_switch@Base 6 + __sanitizer_cov_with_check@Base 6 + __sanitizer_get_allocated_size@Base 5 + __sanitizer_get_coverage_guards@Base 6 + __sanitizer_get_current_allocated_bytes@Base 5 + __sanitizer_get_estimated_allocated_size@Base 5 + __sanitizer_get_free_bytes@Base 5 + __sanitizer_get_heap_size@Base 5 + __sanitizer_get_number_of_counters@Base 6 + __sanitizer_get_ownership@Base 5 + __sanitizer_get_total_unique_caller_callee_pairs@Base 6 + __sanitizer_get_total_unique_coverage@Base 6 + __sanitizer_get_unmapped_bytes@Base 5 + __sanitizer_install_malloc_and_free_hooks@Base 7 + __sanitizer_maybe_open_cov_file@Base 5 + __sanitizer_print_stack_trace@Base 5 + __sanitizer_report_error_summary@Base 4.9 + __sanitizer_reset_coverage@Base 6 + __sanitizer_sandbox_on_notify@Base 4.9 + __sanitizer_set_death_callback@Base 6 + __sanitizer_set_report_fd@Base 7 + __sanitizer_set_report_path@Base 4.9 + __sanitizer_symbolize_global@Base 7 + __sanitizer_symbolize_pc@Base 7 + __sanitizer_update_counter_bitset_and_clear_counters@Base 6 + aligned_alloc@Base 5 + (optional)backtrace_uncompress_zdebug@Base 7 + calloc@Base 4.9 + cfree@Base 4.9 + free@Base 4.9 + (arch=base-any-any-amd64 any-mips any-mipsel)internal_sigreturn@Base 7 + mallinfo@Base 4.9 + malloc@Base 4.9 + malloc_usable_size@Base 4.9 + mallopt@Base 4.9 + memalign@Base 4.9 + posix_memalign@Base 4.9 + pthread_create@Base 4.9 + pthread_join@Base 4.9 + pvalloc@Base 4.9 + realloc@Base 4.9 + valloc@Base 4.9 --- gcc-7-7.5.0.orig/debian/libmpx.symbols +++ gcc-7-7.5.0/debian/libmpx.symbols @@ -0,0 +1,5 @@ +libmpx.so.2 #PACKAGE# #MINVER# + (symver)LIBMPX_1.0 5 + (symver)LIBMPX_2.0 6 +libmpxwrappers.so.2 #PACKAGE# #MINVER# + (symver)LIBMPXWRAPPERS_1.0 5 --- gcc-7-7.5.0.orig/debian/libobjc.symbols +++ gcc-7-7.5.0/debian/libobjc.symbols @@ -0,0 +1,9 @@ +libobjc.so.4 #PACKAGE# #MINVER# +#include "libobjc.symbols.common" + __gnu_objc_personality_v0@Base 4.2.1 + (arch=armel armhf)__objc_exception_class@Base 4.3.0 +libobjc_gc.so.4 #PACKAGE# #MINVER# +#include "libobjc.symbols.common" +(optional)#include "libobjc.symbols.gc" + __gnu_objc_personality_v0@Base 4.2.1 + (arch=armel armhf)__objc_exception_class@Base 4.3.0 --- gcc-7-7.5.0.orig/debian/libobjc.symbols.common +++ gcc-7-7.5.0/debian/libobjc.symbols.common @@ -0,0 +1,205 @@ + __objc_accessors_init@Base 4.6 + __objc_add_class_to_hash@Base 4.2.1 + __objc_class_links_resolved@Base 4.2.1 + __objc_class_name_NXConstantString@Base 4.2.1 + __objc_class_name_Object@Base 4.2.1 + __objc_class_name_Protocol@Base 4.2.1 + __objc_dangling_categories@Base 4.2.1 + __objc_exec_class@Base 4.2.1 + __objc_force_linking@Base 4.2.1 + __objc_generate_gc_type_description@Base 4.2.1 + __objc_get_forward_imp@Base 4.2.1 + __objc_init_class@Base 4.6 + __objc_init_class_tables@Base 4.2.1 + __objc_init_dispatch_tables@Base 4.2.1 + __objc_init_selector_tables@Base 4.2.1 + __objc_init_thread_system@Base 4.2.1 + __objc_install_premature_dtable@Base 4.2.1 + __objc_is_multi_threaded@Base 4.2.1 + __objc_linking@Base 4.2.1 + __objc_msg_forward@Base 4.2.1 + __objc_msg_forward2@Base 4.3 + __objc_print_dtable_stats@Base 4.2.1 + __objc_protocols_add_protocol@Base 4.6 + __objc_protocols_init@Base 4.6 + __objc_register_instance_methods_to_class@Base 4.2.1 + __objc_register_selectors_from_class@Base 4.2.1 + __objc_register_selectors_from_description_list@Base 4.6 + __objc_register_selectors_from_list@Base 4.2.1 + __objc_register_selectors_from_module@Base 4.6 + __objc_resolve_class_links@Base 4.2.1 + __objc_responds_to@Base 4.2.1 + __objc_runtime_mutex@Base 4.2.1 + __objc_runtime_threads_alive@Base 4.2.1 + __objc_selector_max_index@Base 4.2.1 + __objc_sparse2_id@Base 4.2.1 + __objc_sync_init@Base 4.6 + __objc_thread_exit_status@Base 4.2.1 + __objc_uninstalled_dtable@Base 4.2.1 + __objc_update_classes_with_methods@Base 4.6 + __objc_update_dispatch_table_for_class@Base 4.2.1 + _objc_abort@Base 4.6 + _objc_became_multi_threaded@Base 4.2.1 + _objc_load_callback@Base 4.2.1 + _objc_lookup_class@Base 4.6 + class_addIvar@Base 4.6 + class_addMethod@Base 4.6 + class_addProtocol@Base 4.6 + class_add_method_list@Base 4.2.1 + class_conformsToProtocol@Base 4.6 + class_copyIvarList@Base 4.6 + class_copyMethodList@Base 4.6 + class_copyPropertyList@Base 4.6 + class_copyProtocolList@Base 4.6 + class_createInstance@Base 4.6 + class_getClassMethod@Base 4.6 + class_getClassVariable@Base 4.6 + class_getInstanceMethod@Base 4.6 + class_getInstanceSize@Base 4.6 + class_getInstanceVariable@Base 4.6 + class_getIvarLayout@Base 4.6 + class_getMethodImplementation@Base 4.6 + class_getName@Base 4.6 + class_getProperty@Base 4.6 + class_getSuperclass@Base 4.6 + class_getVersion@Base 4.6 + class_getWeakIvarLayout@Base 4.6 + class_isMetaClass@Base 4.6 + class_ivar_set_gcinvisible@Base 4.2.1 + class_replaceMethod@Base 4.6 + class_respondsToSelector@Base 4.6 + class_setIvarLayout@Base 4.6 + class_setVersion@Base 4.6 + class_setWeakIvarLayout@Base 4.6 + get_imp@Base 4.2.1 + idxsize@Base 4.2.1 + ivar_getName@Base 4.6 + ivar_getOffset@Base 4.6 + ivar_getTypeEncoding@Base 4.6 + method_copyArgumentType@Base 4.6 + method_copyReturnType@Base 4.6 + method_exchangeImplementations@Base 4.6 + method_getArgumentType@Base 4.6 + method_getDescription@Base 4.6 + method_getImplementation@Base 4.6 + method_getName@Base 4.6 + method_getNumberOfArguments@Base 4.6 + method_getReturnType@Base 4.6 + method_getTypeEncoding@Base 4.6 + method_get_imp@Base 4.6 + method_setImplementation@Base 4.6 + narrays@Base 4.2.1 + nbuckets@Base 4.2.1 + nil_method@Base 4.2.1 + nindices@Base 4.2.1 + objc_aligned_size@Base 4.2.1 + objc_alignof_type@Base 4.2.1 + objc_allocateClassPair@Base 4.6 + objc_atomic_malloc@Base 4.2.1 + objc_calloc@Base 4.2.1 + objc_condition_allocate@Base 4.2.1 + objc_condition_broadcast@Base 4.2.1 + objc_condition_deallocate@Base 4.2.1 + objc_condition_signal@Base 4.2.1 + objc_condition_wait@Base 4.2.1 + objc_copyProtocolList@Base 4.6 + objc_copyStruct@Base 4.6 + objc_disposeClassPair@Base 4.6 + objc_enumerationMutation@Base 4.6 + objc_exception_throw@Base 4.2.1 + objc_free@Base 4.2.1 + objc_getClass@Base 4.6 + objc_getClassList@Base 4.6 + objc_getMetaClass@Base 4.6 + objc_getProperty@Base 4.6 + objc_getPropertyStruct@Base 4.6 + objc_getProtocol@Base 4.6 + objc_getRequiredClass@Base 4.6 + objc_get_class@Base 4.2.1 + objc_get_meta_class@Base 4.2.1 + objc_get_type_qualifiers@Base 4.2.1 + objc_hash_add@Base 4.2.1 + objc_hash_delete@Base 4.2.1 + objc_hash_is_key_in_hash@Base 4.2.1 + objc_hash_new@Base 4.2.1 + objc_hash_next@Base 4.2.1 + objc_hash_remove@Base 4.2.1 + objc_hash_value_for_key@Base 4.2.1 + objc_layout_finish_structure@Base 4.2.1 + objc_layout_structure@Base 4.2.1 + objc_layout_structure_get_info@Base 4.2.1 + objc_layout_structure_next_member@Base 4.2.1 + objc_lookUpClass@Base 4.6 + objc_lookup_class@Base 4.2.1 + objc_malloc@Base 4.2.1 + objc_msg_lookup@Base 4.2.1 + objc_msg_lookup_super@Base 4.2.1 + objc_mutex_allocate@Base 4.2.1 + objc_mutex_deallocate@Base 4.2.1 + objc_mutex_lock@Base 4.2.1 + objc_mutex_trylock@Base 4.2.1 + objc_mutex_unlock@Base 4.2.1 + objc_promoted_size@Base 4.2.1 + objc_realloc@Base 4.2.1 + objc_registerClassPair@Base 4.6 + objc_setEnumerationMutationHandler@Base 4.6 + objc_setExceptionMatcher@Base 4.6 + objc_setGetUnknownClassHandler@Base 4.6 + objc_setProperty@Base 4.6 + objc_setPropertyStruct@Base 4.6 + objc_setUncaughtExceptionHandler@Base 4.6 + objc_set_thread_callback@Base 4.2.1 + objc_sizeof_type@Base 4.2.1 + objc_skip_argspec@Base 4.2.1 + objc_skip_offset@Base 4.2.1 + objc_skip_type_qualifiers@Base 4.2.1 + objc_skip_typespec@Base 4.2.1 + objc_sync_enter@Base 4.6 + objc_sync_exit@Base 4.6 + objc_thread_add@Base 4.2.1 + objc_thread_detach@Base 4.2.1 + objc_thread_exit@Base 4.2.1 + objc_thread_get_data@Base 4.2.1 + objc_thread_get_priority@Base 4.2.1 + objc_thread_id@Base 4.2.1 + objc_thread_remove@Base 4.2.1 + objc_thread_set_data@Base 4.2.1 + objc_thread_set_priority@Base 4.2.1 + objc_thread_yield@Base 4.2.1 + object_copy@Base 4.2.1 + object_dispose@Base 4.2.1 + object_getClassName@Base 4.6 + object_getIndexedIvars@Base 4.6 + object_getInstanceVariable@Base 4.6 + object_getIvar@Base 4.6 + object_setClass@Base 4.6 + object_setInstanceVariable@Base 4.6 + object_setIvar@Base 4.6 + property_getAttributes@Base 4.6 + property_getName@Base 4.6 + protocol_conformsToProtocol@Base 4.6 + protocol_copyMethodDescriptionList@Base 4.6 + protocol_copyPropertyList@Base 4.6 + protocol_copyProtocolList@Base 4.6 + protocol_getMethodDescription@Base 4.6 + protocol_getName@Base 4.6 + protocol_getProperty@Base 4.6 + protocol_isEqual@Base 4.6 + sarray_at_put@Base 4.2.1 + sarray_at_put_safe@Base 4.2.1 + sarray_free@Base 4.2.1 + sarray_lazy_copy@Base 4.2.1 + sarray_new@Base 4.2.1 + sarray_realloc@Base 4.2.1 + sarray_remove_garbage@Base 4.2.1 + search_for_method_in_list@Base 4.2.1 + sel_copyTypedSelectorList@Base 4.6 + sel_getName@Base 4.6 + sel_getTypeEncoding@Base 4.6 + sel_getTypedSelector@Base 4.6 + sel_getUid@Base 4.6 + sel_get_any_uid@Base 4.2.1 + sel_isEqual@Base 4.6 + sel_is_mapped@Base 4.2.1 + sel_registerName@Base 4.6 + sel_registerTypedName@Base 4.6 --- gcc-7-7.5.0.orig/debian/libobjc.symbols.gc +++ gcc-7-7.5.0/debian/libobjc.symbols.gc @@ -0,0 +1,522 @@ + async_set_pht_entry_from_index@Base 4.2.1 + free_list_index_of@Base 4.2.1 + suspend_self@Base 4.2.1 + GC_abort@Base 6 + GC_acquire_mark_lock@Base 6 + GC_add_ext_descriptor@Base 6 + GC_add_leaked@Base 6 + GC_add_map_entry@Base 6 + GC_add_roots@Base 6 + GC_add_roots_inner@Base 6 + GC_add_smashed@Base 6 + GC_add_to_black_list_normal@Base 6 + GC_add_to_black_list_stack@Base 6 + GC_add_to_fl@Base 6 + GC_add_to_heap@Base 6 + GC_adj_words_allocd@Base 6 + GC_all_bottom_indices@Base 6 + GC_all_bottom_indices_end@Base 6 + GC_all_interior_pointers@Base 6 + GC_alloc_large@Base 6 + GC_alloc_large_and_clear@Base 6 + GC_alloc_reclaim_list@Base 6 + GC_allocate_ml@Base 6 + GC_allochblk@Base 6 + GC_allochblk_nth@Base 6 + GC_allocobj@Base 6 + GC_aobjfreelist_ptr@Base 6 + GC_apply_to_all_blocks@Base 6 + GC_apply_to_maps@Base 6 + GC_approx_sp@Base 6 + GC_arobjfreelist@Base 6 + GC_array_kind@Base 6 + GC_array_mark_proc@Base 6 + GC_array_mark_proc_index@Base 6 + GC_arrays@Base 6 + GC_auobjfreelist_ptr@Base 6 + GC_avail_descr@Base 6 + GC_base@Base 6 + GC_begin_syscall@Base 6 + GC_bl_init@Base 6 + GC_black_list_spacing@Base 6 + GC_block_count@Base 6 + GC_block_empty@Base 6 + GC_block_nearly_full1@Base 6 + GC_block_nearly_full3@Base 6 + GC_block_nearly_full@Base 6 + GC_block_was_dirty@Base 6 + GC_bm_table@Base 6 + GC_brief_async_signal_safe_sleep@Base 6 + GC_build_fl1@Base 6 + GC_build_fl2@Base 6 + GC_build_fl4@Base 6 + GC_build_fl@Base 6 + GC_build_fl_clear2@Base 6 + GC_build_fl_clear3@Base 6 + GC_build_fl_clear4@Base 6 + GC_call_with_alloc_lock@Base 6 + GC_calloc_explicitly_typed@Base 6 + GC_change_stubborn@Base 6 + GC_check_annotated_obj@Base 6 + GC_check_heap@Base 6 + GC_check_heap_block@Base 6 + GC_check_heap_proc@Base 6 + GC_clear_a_few_frames@Base 6 + GC_clear_bl@Base 6 + GC_clear_fl_links@Base 6 + GC_clear_fl_marks@Base 6 + GC_clear_hdr_marks@Base 6 + GC_clear_mark_bit@Base 6 + GC_clear_marks@Base 6 + GC_clear_roots@Base 6 + GC_clear_stack@Base 6 + GC_clear_stack_inner@Base 6 + GC_collect_a_little@Base 6 + GC_collect_a_little_inner@Base 6 + GC_collect_or_expand@Base 6 + GC_collecting@Base 6 + GC_collection_in_progress@Base 6 + GC_cond_register_dynamic_libraries@Base 6 + GC_continue_reclaim@Base 6 + GC_copy_bl@Base 6 + GC_copyright@Base 6 + GC_current_warn_proc@Base 6 + GC_data_start@Base 6 + GC_debug_change_stubborn@Base 6 + GC_debug_end_stubborn_change@Base 6 + GC_debug_free@Base 6 + GC_debug_free_inner@Base 6 + GC_debug_gcj_fast_malloc@Base 6 + GC_debug_gcj_malloc@Base 6 + GC_debug_header_size@Base 6 + GC_debug_invoke_finalizer@Base 6 + GC_debug_malloc@Base 6 + GC_debug_malloc_atomic@Base 6 + GC_debug_malloc_atomic_ignore_off_page@Base 6 + GC_debug_malloc_atomic_uncollectable@Base 6 + GC_debug_malloc_ignore_off_page@Base 6 + GC_debug_malloc_replacement@Base 6 + GC_debug_malloc_stubborn@Base 6 + GC_debug_malloc_uncollectable@Base 6 + GC_debug_print_heap_obj_proc@Base 6 + GC_debug_realloc@Base 6 + GC_debug_realloc_replacement@Base 6 + GC_debug_register_displacement@Base 6 + GC_debug_register_finalizer@Base 6 + GC_debug_register_finalizer_ignore_self@Base 6 + GC_debug_register_finalizer_no_order@Base 6 + GC_debug_register_finalizer_unreachable@Base 6 + GC_debugging_started@Base 6 + GC_default_is_valid_displacement_print_proc@Base 6 + GC_default_is_visible_print_proc@Base 6 + GC_default_oom_fn@Base 6 + GC_default_print_heap_obj_proc@Base 6 + GC_default_push_other_roots@Base 6 + GC_default_same_obj_print_proc@Base 6 + GC_default_warn_proc@Base 6 + GC_deficit@Base 6 + GC_delete_gc_thread@Base 6 + GC_delete_thread@Base 6 + GC_descr_obj_size@Base 6 + GC_destroy_thread_local@Base 6 + GC_dirty_init@Base 6 + GC_dirty_maintained@Base 6 + GC_disable@Base 6 + GC_disable_signals@Base 6 + GC_dl_entries@Base 6 + GC_dlopen@Base 6 + GC_do_nothing@Base 6 + GC_dont_expand@Base 6 + GC_dont_gc@Base 6 + GC_dont_precollect@Base 6 + GC_double_descr@Base 6 + GC_dump@Base 6 + GC_dump_finalization@Base 6 + GC_dump_regions@Base 6 + GC_dump_regularly@Base 6 + GC_ed_size@Base 6 + GC_enable@Base 6 + GC_enable_incremental@Base 6 + GC_enable_signals@Base 6 + GC_end_blocking@Base 6 + GC_end_stubborn_change@Base 6 + GC_end_syscall@Base 6 + GC_enqueue_all_finalizers@Base 6 + GC_eobjfreelist@Base 6 + GC_err_printf@Base 6 + GC_err_puts@Base 6 + GC_err_write@Base 6 + GC_excl_table_entries@Base 6 + GC_exclude_static_roots@Base 6 + GC_exit_check@Base 6 + GC_expand_hp@Base 6 + GC_expand_hp_inner@Base 6 + GC_explicit_kind@Base 6 + GC_explicit_typing_initialized@Base 6 + GC_ext_descriptors@Base 6 + GC_extend_size_map@Base 6 + GC_fail_count@Base 6 + GC_fault_handler@Base 6 + GC_finalization_failures@Base 6 + GC_finalize@Base 6 + GC_finalize_all@Base 6 + GC_finalize_now@Base 6 + GC_finalize_on_demand@Base 6 + GC_finalizer_notifier@Base 6 + GC_find_header@Base 6 + GC_find_leak@Base 6 + GC_find_limit@Base 6 + GC_find_start@Base 6 + GC_finish_collection@Base 6 + GC_fl_builder_count@Base 6 + GC_fo_entries@Base 6 + GC_free@Base 6 + GC_free_block_ending_at@Base 6 + GC_free_bytes@Base 6 + GC_free_inner@Base 6 + GC_free_space_divisor@Base 6 + GC_freehblk@Base 6 + GC_freehblk_ptr@Base 6 + GC_full_freq@Base 6 + GC_gc_no@Base 6 + GC_gcj_debug_kind@Base 6 + GC_gcj_fast_malloc@Base 6 + GC_gcj_kind@Base 6 + GC_gcj_malloc@Base 6 + GC_gcj_malloc_ignore_off_page@Base 6 + GC_gcj_malloc_initialized@Base 6 + GC_gcjdebugobjfreelist@Base 6 + GC_gcjobjfreelist@Base 6 + GC_gcollect@Base 6 + GC_general_register_disappearing_link@Base 6 + GC_generic_lock@Base 6 + GC_generic_malloc@Base 6 + GC_generic_malloc_ignore_off_page@Base 6 + GC_generic_malloc_inner@Base 6 + GC_generic_malloc_inner_ignore_off_page@Base 6 + GC_generic_malloc_many@Base 6 + GC_generic_malloc_words_small@Base 6 + GC_generic_malloc_words_small_inner@Base 6 + GC_generic_or_special_malloc@Base 6 + GC_generic_push_regs@Base 6 + GC_get_bytes_since_gc@Base 6 + GC_get_first_part@Base 6 + GC_get_free_bytes@Base 6 + GC_get_heap_size@Base 6 + GC_get_nprocs@Base 6 + GC_get_stack_base@Base 6 + GC_get_thread_stack_base@Base 6 + GC_get_total_bytes@Base 6 + GC_greatest_plausible_heap_addr@Base 6 + GC_grow_table@Base 6 + GC_has_other_debug_info@Base 6 + GC_have_errors@Base 6 + GC_hblk_fl_from_blocks@Base 6 + GC_hblkfreelist@Base 6 + GC_hdr_cache_hits@Base 6 + GC_hdr_cache_misses@Base 6 + GC_high_water@Base 6 + GC_ignore_self_finalize_mark_proc@Base 6 + GC_in_thread_creation@Base 6 + GC_incomplete_normal_bl@Base 6 + GC_incomplete_stack_bl@Base 6 + GC_incr_mem_freed@Base 6 + GC_incr_words_allocd@Base 6 + GC_incremental@Base 6 + GC_incremental_protection_needs@Base 6 + GC_init@Base 6 + GC_init_explicit_typing@Base 6 + GC_init_gcj_malloc@Base 6 + GC_init_headers@Base 6 + GC_init_inner@Base 6 + GC_init_linux_data_start@Base 6 + GC_init_parallel@Base 6 + GC_init_size_map@Base 6 + GC_init_thread_local@Base 6 + GC_initiate_gc@Base 6 + GC_install_counts@Base 6 + GC_install_header@Base 6 + GC_invalid_header@Base 6 + GC_invalid_map@Base 6 + GC_invalidate_map@Base 6 + GC_invalidate_mark_state@Base 6 + GC_invoke_finalizers@Base 6 + GC_is_black_listed@Base 6 + GC_is_fresh@Base 6 + GC_is_full_gc@Base 6 + GC_is_initialized@Base 6 + GC_is_marked@Base 6 + GC_is_static_root@Base 6 + GC_is_thread_suspended@Base 6 + GC_is_valid_displacement@Base 6 + GC_is_valid_displacement_print_proc@Base 6 + GC_is_visible@Base 6 + GC_is_visible_print_proc@Base 6 + GC_java_finalization@Base 6 + GC_jmp_buf@Base 6 + GC_key_create@Base 6 + GC_large_alloc_warn_interval@Base 6 + GC_large_alloc_warn_suppressed@Base 6 + GC_leaked@Base 6 + GC_least_plausible_heap_addr@Base 6 + GC_linux_stack_base@Base 6 + GC_local_gcj_malloc@Base 6 + GC_local_malloc@Base 6 + GC_local_malloc_atomic@Base 6 + GC_lock@Base 6 + GC_lock_holder@Base 6 + GC_lookup_thread@Base 6 + GC_make_array_descriptor@Base 6 + GC_make_closure@Base 6 + GC_make_descriptor@Base 6 + GC_make_sequence_descriptor@Base 6 + GC_malloc@Base 6 + GC_malloc_atomic@Base 6 + GC_malloc_atomic_ignore_off_page@Base 6 + GC_malloc_atomic_uncollectable@Base 6 + GC_malloc_explicitly_typed@Base 6 + GC_malloc_explicitly_typed_ignore_off_page@Base 6 + GC_malloc_ignore_off_page@Base 6 + GC_malloc_many@Base 6 + GC_malloc_stubborn@Base 6 + GC_malloc_uncollectable@Base 6 + GC_mark_and_push@Base 6 + GC_mark_and_push_stack@Base 6 + GC_mark_from@Base 6 + GC_mark_init@Base 6 + GC_mark_some@Base 6 + GC_mark_stack@Base 6 + GC_mark_stack_empty@Base 6 + GC_mark_stack_limit@Base 6 + GC_mark_stack_size@Base 6 + GC_mark_stack_too_small@Base 6 + GC_mark_stack_top@Base 6 + GC_mark_state@Base 6 + GC_mark_thread_local_free_lists@Base 6 + GC_max@Base 6 + GC_max_retries@Base 6 + GC_maybe_gc@Base 6 + GC_mem_found@Base 6 + GC_memalign@Base 6 + GC_min@Base 6 + GC_min_sp@Base 6 + GC_n_attempts@Base 6 + GC_n_heap_sects@Base 6 + GC_n_kinds@Base 6 + GC_n_leaked@Base 6 + GC_n_mark_procs@Base 6 + GC_n_rescuing_pages@Base 6 + GC_n_set_marks@Base 6 + GC_n_smashed@Base 6 + GC_need_full_gc@Base 6 + GC_never_stop_func@Base 6 + GC_new_free_list@Base 6 + GC_new_free_list_inner@Base 6 + GC_new_hblk@Base 6 + GC_new_kind@Base 6 + GC_new_kind_inner@Base 6 + GC_new_proc@Base 6 + GC_new_proc_inner@Base 6 + GC_new_thread@Base 6 + GC_next_exclusion@Base 6 + GC_next_used_block@Base 6 + GC_no_dls@Base 6 + GC_non_gc_bytes@Base 6 + GC_noop1@Base 6 + GC_noop@Base 6 + GC_normal_finalize_mark_proc@Base 6 + GC_notify_all_builder@Base 6 + GC_notify_full_gc@Base 6 + GC_notify_or_invoke_finalizers@Base 6 + GC_nprocs@Base 6 + GC_null_finalize_mark_proc@Base 6 + GC_number_stack_black_listed@Base 6 + GC_obj_kinds@Base 6 + GC_objects_are_marked@Base 6 + GC_objfreelist_ptr@Base 6 + GC_old_bus_handler@Base 6 + GC_old_normal_bl@Base 6 + GC_old_segv_handler@Base 6 + GC_old_stack_bl@Base 6 + GC_on_stack@Base 6 + GC_oom_fn@Base 6 + GC_page_size@Base 6 + GC_page_was_dirty@Base 6 + GC_page_was_ever_dirty@Base 6 + GC_parallel@Base 6 + GC_pause@Base 6 + GC_post_incr@Base 6 + GC_pre_incr@Base 6 + GC_prev_block@Base 6 + GC_print_address_map@Base 6 + GC_print_all_errors@Base 6 + GC_print_all_smashed@Base 6 + GC_print_all_smashed_proc@Base 6 + GC_print_back_height@Base 6 + GC_print_block_descr@Base 6 + GC_print_block_list@Base 6 + GC_print_finalization_stats@Base 6 + GC_print_hblkfreelist@Base 6 + GC_print_heap_obj@Base 6 + GC_print_heap_sects@Base 6 + GC_print_obj@Base 6 + GC_print_smashed_obj@Base 6 + GC_print_source_ptr@Base 6 + GC_print_static_roots@Base 6 + GC_print_stats@Base 6 + GC_print_type@Base 6 + GC_printf@Base 6 + GC_project2@Base 6 + GC_promote_black_lists@Base 6 + GC_protect_heap@Base 6 + GC_pthread_create@Base 6 + GC_pthread_detach@Base 6 + GC_pthread_join@Base 6 + GC_pthread_sigmask@Base 6 + GC_push_all@Base 6 + GC_push_all_eager@Base 6 + GC_push_all_stack@Base 6 + GC_push_all_stacks@Base 6 + GC_push_complex_descriptor@Base 6 + GC_push_conditional@Base 6 + GC_push_conditional_with_exclusions@Base 6 + GC_push_current_stack@Base 6 + GC_push_finalizer_structures@Base 6 + GC_push_gc_structures@Base 6 + GC_push_marked1@Base 6 + GC_push_marked2@Base 6 + GC_push_marked4@Base 6 + GC_push_marked@Base 6 + GC_push_next_marked@Base 6 + GC_push_next_marked_dirty@Base 6 + GC_push_next_marked_uncollectable@Base 6 + GC_push_one@Base 6 + GC_push_other_roots@Base 6 + GC_push_roots@Base 6 + GC_push_selected@Base 6 + GC_push_stubborn_structures@Base 6 + GC_push_thread_structures@Base 6 + GC_quiet@Base 6 + GC_read_dirty@Base 6 + GC_realloc@Base 6 + GC_reclaim1@Base 6 + GC_reclaim_all@Base 6 + GC_reclaim_block@Base 6 + GC_reclaim_check@Base 6 + GC_reclaim_clear2@Base 6 + GC_reclaim_clear4@Base 6 + GC_reclaim_clear@Base 6 + GC_reclaim_generic@Base 6 + GC_reclaim_small_nonempty_block@Base 6 + GC_reclaim_uninit2@Base 6 + GC_reclaim_uninit4@Base 6 + GC_reclaim_uninit@Base 6 + GC_register_data_segments@Base 6 + GC_register_describe_type_fn@Base 6 + GC_register_disappearing_link@Base 6 + GC_register_displacement@Base 6 + GC_register_displacement_inner@Base 6 + GC_register_dynamic_libraries@Base 6 + GC_register_dynamic_libraries_dl_iterate_phdr@Base 6 + GC_register_finalizer@Base 6 + GC_register_finalizer_ignore_self@Base 6 + GC_register_finalizer_inner@Base 6 + GC_register_finalizer_no_order@Base 6 + GC_register_finalizer_unreachable@Base 6 + GC_register_has_static_roots_callback@Base 6 + GC_register_main_static_data@Base 6 + GC_register_my_thread@Base 6 + GC_release_mark_lock@Base 6 + GC_remove_allowed_signals@Base 6 + GC_remove_counts@Base 6 + GC_remove_from_fl@Base 6 + GC_remove_header@Base 6 + GC_remove_protection@Base 6 + GC_remove_roots@Base 6 + GC_remove_roots_inner@Base 6 + GC_remove_specific@Base 6 + GC_remove_tmp_roots@Base 6 + GC_repeat_read@Base 6 + GC_reset_fault_handler@Base 6 + GC_restart_handler@Base 6 + GC_resume_thread@Base 6 + GC_retry_signals@Base 6 + GC_root_size@Base 6 + GC_roots_present@Base 6 + GC_same_obj@Base 6 + GC_same_obj_print_proc@Base 6 + GC_scratch_alloc@Base 6 + GC_set_and_save_fault_handler@Base 6 + GC_set_fl_marks@Base 6 + GC_set_free_space_divisor@Base 6 + GC_set_hdr_marks@Base 6 + GC_set_mark_bit@Base 6 + GC_set_max_heap_size@Base 6 + GC_set_warn_proc@Base 6 + GC_setpagesize@Base 6 + GC_setspecific@Base 6 + GC_setup_temporary_fault_handler@Base 6 + GC_should_collect@Base 6 + GC_should_invoke_finalizers@Base 6 + GC_signal_mark_stack_overflow@Base 6 + GC_size@Base 6 + GC_sleep@Base 6 + GC_slow_getspecific@Base 6 + GC_smashed@Base 6 + GC_spin_count@Base 6 + GC_split_block@Base 6 + GC_stack_last_cleared@Base 6 + GC_stackbottom@Base 6 + GC_start_blocking@Base 6 + GC_start_call_back@Base 6 + GC_start_debugging@Base 6 + GC_start_reclaim@Base 6 + GC_start_routine@Base 6 + GC_start_time@Base 6 + GC_start_world@Base 6 + GC_stderr@Base 6 + GC_stdout@Base 6 + GC_stop_count@Base 6 + GC_stop_init@Base 6 + GC_stop_world@Base 6 + GC_stopped_mark@Base 6 + GC_stopping_pid@Base 6 + GC_stopping_thread@Base 6 + GC_store_debug_info@Base 6 + GC_suspend_ack_sem@Base 6 + GC_suspend_all@Base 6 + GC_suspend_handler@Base 6 + GC_suspend_handler_inner@Base 6 + GC_suspend_thread@Base 6 + GC_thr_init@Base 6 + GC_thr_initialized@Base 6 + GC_thread_exit_proc@Base 6 + GC_thread_key@Base 6 + GC_threads@Base 6 + GC_time_limit@Base 6 + GC_timeout_stop_func@Base 6 + GC_total_stack_black_listed@Base 6 + GC_try_to_collect@Base 6 + GC_try_to_collect_inner@Base 6 + GC_typed_mark_proc@Base 6 + GC_typed_mark_proc_index@Base 6 + GC_unix_get_mem@Base 6 + GC_unlocked_count@Base 6 + GC_unpromote_black_lists@Base 6 + GC_unprotect_range@Base 6 + GC_unreachable_finalize_mark_proc@Base 6 + GC_unregister_disappearing_link@Base 6 + GC_unregister_my_thread@Base 6 + GC_uobjfreelist_ptr@Base 6 + GC_use_entire_heap@Base 6 + GC_used_heap_size_after_full@Base 6 + GC_version@Base 6 + GC_wait_builder@Base 6 + GC_wait_for_gc_completion@Base 6 + GC_wait_for_reclaim@Base 6 + GC_with_callee_saves_pushed@Base 6 + GC_words_allocd_at_reset@Base 6 + GC_world_is_stopped@Base 6 + GC_world_stopped@Base 6 + GC_write@Base 6 + GC_write_fault_handler@Base 6 --- gcc-7-7.5.0.orig/debian/libquadmath.symbols +++ gcc-7-7.5.0/debian/libquadmath.symbols @@ -0,0 +1,3 @@ +libquadmath.so.0 #PACKAGE# #MINVER# + (symver)QUADMATH_1.0 4.6 + (symver)QUADMATH_1.1 6 --- gcc-7-7.5.0.orig/debian/libstdc++-BV-doc.doc-base +++ gcc-7-7.5.0/debian/libstdc++-BV-doc.doc-base @@ -0,0 +1,13 @@ +Document: libstdc++-@BV@-doc +Title: The GNU Standard C++ Library v3 (gcc-@BV@) +Author: Various +Abstract: This package contains documentation files for the GNU stdc++ library. + One set is the distribution documentation, the other set is the + source documentation including a namespace list, class hierarchy, + alphabetical list, compound list, file list, namespace members, + compound members and file members. +Section: Programming/C++ + +Format: html +Index: /usr/share/doc/libstdc++-@BV@-doc/libstdc++/index.html +Files: /usr/share/doc/libstdc++-@BV@-doc/libstdc++/* --- gcc-7-7.5.0.orig/debian/libstdc++-BV-doc.overrides +++ gcc-7-7.5.0/debian/libstdc++-BV-doc.overrides @@ -0,0 +1,11 @@ +libstdc++-@BV@-doc binary: hyphen-used-as-minus-sign +libstdc++-@BV@-doc binary: manpage-has-bad-whatis-entry + +# 3xx used by intent to avoid conficts +libstdc++-@BV@-doc binary: manpage-section-mismatch + +# some very long identifiers +libstdc++-@BV@-doc binary: manpage-has-errors-from-man * can't break line + +# doxygen accepts formulas in man pages ... +libstdc++-@BV@-doc binary: manpage-has-errors-from-man * a space character is not allowed in an escape name --- gcc-7-7.5.0.orig/debian/libstdc++-breaks.Debian +++ gcc-7-7.5.0/debian/libstdc++-breaks.Debian @@ -0,0 +1,91 @@ +libantlr-dev (<= 2.7.7+dfsg-6), +libaqsis1 (<= 1.8.2-1), +libassimp3 (<= 3.0~dfsg-4), +blockattack (<= 1.4.1+ds1-2.1+b2), +boo (<= 0.9.5~git20110729.r1.202a430-2), +libboost-date-time1.54.0, +libboost-date-time1.55.0, +libcpprest2.4 (<= 2.4.0-2), +printer-driver-brlaser (<= 3-3), +c++-annotations (<= 10.2.0-1), +clustalx (<= 2.1+lgpl-3), +libdavix0 (<= 0.4.0-1+b1), +libdballe6 (<= 6.8-1), +dff (<= 1.3.0+dfsg.1-4.1+b3), +libdiet-sed2.8 (<= 2.8.0-1+b3), +libdiet-client2.8 (<= 2.8.0-1+b3), +libdiet-admin2.8 (<= 2.8.0-1+b3), +digikam-private-libs (<= 4:4.4.0-1.1+b2), +emscripten (<= 1.22.1-1), +ergo (<= 3.4.0-1), +fceux (<= 2.2.2+dfsg0-1), +flush (<= 0.9.12-3.1), +libfreefem++ (<= 3.37.1-1), +freeorion (<= 0.4.4+git20150327-2), +fslview (<= 4.0.1-4), +fwbuilder (<= 5.1.0-4), +libgazebo5 (<= 5.0.1+dfsg-2.1), +libgetfem4++ (<= 4.2.1~beta1~svn4635~dfsg-3+b1), +libgmsh2 (<= 2.9.3+dfsg1-1), +gnote (<= 3.16.2-1), +gnudatalanguage (<= 0.9.5-2+b2), +python-healpy (<= 1.8.1-1+b1), +innoextract (<= 1.4-1+b1), +libinsighttoolkit4.7 (<= 4.7.2-2), +libdap17 (<= 3.14.0-2), +libdapclient6 (<= 3.14.0-2), +libdapserver7 (<= 3.14.0-2), +libkolabxml1 (<= 1.1.0-3), +libpqxx-4.0 (<= 4.0.1+dfsg-3), +libreoffice-core (<= 1:4.4.5-2), +librime1 (<= 1.2+dfsg-2), +libwibble-dev (<= 1.1-1), +lightspark (<= 0.7.2+git20150512-2+b1), +libmarisa0 (<= 0.2.4-8), +mira-assembler (<= 4.9.5-1), +mongodb (<= 1:2.4.14-2), +mongodb-server (<= 1:2.4.14-2), +ncbi-blast+ (<= 2.2.30-4), +libogre-1.8.0 (<= 1.8.0+dfsg1-7+b1), +libogre-1.9.0 (<= 1.9.0+dfsg1-4), +openscad (<= 2014.03+dfsg-1+b1), +libopenwalnut1 (<= 1.4.0~rc1+hg3a3147463ee2-1+b1), +passepartout (<= 0.7.1-1.1), +pdf2djvu (<= 0.7.21-2), +photoprint (<= 0.4.2~pre2-2.3+b2), +plastimatch (<= 1.6.2+dfsg-1), +plee-the-bear (<= 0.6.0-3.1), +povray (<= 1:3.7.0.0-8), +powertop (<= 2.6.1-1), +psi4 (<= 4.0~beta5+dfsg-2+b1), +python3-taglib (<= 0.3.6+dfsg-2+b2), +realtimebattle (<= 1.0.8-14), +ruby-passenger (<= 5.0.7-1), +libapache2-mod-passenger (<= 5.0.7-1), +schroot (<= 1.6.10-1+b1), +sqlitebrowser (<= 3.5.1-3), +tecnoballz (<= 0.93.1-6), +wesnoth-1.12-core (<= 1:1.12.4-1), +widelands (<= 1:18-3+b1), +libwreport2 (<= 2.14-1), +xflr5 (<= 6.09.06-2), +libxmltooling6 (<= 1.5.3-2.1), +libchemps2-1 (<= 1.5-1), +python-fiona (<= 1.5.1-2), +python3-fiona (<= 1.5.1-2), +fiona (<= 1.5.1-2), +python-guiqwt (<= 2.3.1-1), +python-htseq (<= 0.5.4p3-2), +python-imposm (<= 2.5.0-3+b2), +python-pysph (<= 0~20150606.gitfa26de9-5), +python3-taglib (<= 0.3.6+dfsg-2+b2), +python-scipy (<= 0.14.1-1), +python3-scipy (<= 0.14.1-1), +python-sfml (<= 2.2~git20150611.196c88+dfsg-1+b1), +python3-sfml (<= 2.2~git20150611.196c88+dfsg-1+b1), +python-rasterio (<= 0.24.0-1), +libktoblzcheck1c2a, +libaqbanking34-plugins, +liblhapdf0, +libpythia8, +libxapian30 (<= 1.4.1-1~bpo8+1), --- gcc-7-7.5.0.orig/debian/libstdc++-breaks.Ubuntu +++ gcc-7-7.5.0/debian/libstdc++-breaks.Ubuntu @@ -0,0 +1,73 @@ +libantlr-dev (<= 2.7.7+dfsg-6), +libaqsis1 (<= 1.8.2-1), +libassimp3 (<= 3.0~dfsg-4), +blockattack (<= 1.4.1+ds1-2.1build2), +boo (<= 0.9.5~git20110729.r1.202a430-2), +libboost-date-time1.55.0, +libcpprest2.2 (<= 2.2.0-1), +printer-driver-brlaser (<= 3-3), +c++-annotations (<= 10.2.0-1), +chromium-browser (<= 43.0.2357.130-0ubuntu2), +clustalx (<= 2.1+lgpl-2), +libdavix0 (<= 0.4.0-1build1), +libdballe6 (<= 6.8-1), +dff (<= 1.3.0+dfsg.1-4.1build2), +libdiet-sed2.8 (<= 2.8.0-1build3), +libdiet-client2.8 (<= 2.8.0-1build3), +libdiet-admin2.8 (<= 2.8.0-1build3), +libkgeomap2 (<= 4:15.04.2-0ubuntu1), +libmediawiki1 (<= 1.0~digikam4.10.0-0ubuntu2), +libkvkontakte1 (<= 1.0~digikam4.10.0-0ubuntu2), +emscripten (<= 1.22.1-1), +ergo (<= 3.4.0-1), +fceux (<= 2.2.2+dfsg0-1), +flush (<= 0.9.12-3.1ubuntu1), +libfreefem++ (<= 3.37.1-1), +freeorion (<= 0.4.4+git20150327-2), +fslview (<= 4.0.1-4), +fwbuilder (<= 5.1.0-4), +libgazebo5 (<= 5.0.1+dfsg-2.1), +libgetfem4++ (<= 4.2.1~beta1~svn4482~dfsg-3ubuntu3), +libgmsh2 (<= 2.8.5+dfsg-1.1ubuntu1), +gnote (<= 3.16.2-1), +gnudatalanguage (<= 0.9.5-2build1), +python-healpy (<= 1.8.1-1), +innoextract (<= 1.4-1build1), +libinsighttoolkit4.6 (<= 4.6.0-3ubuntu3), +libdap17 (<= 3.14.0-2), +libdapclient6 (<= 3.14.0-2), +libdapserver7 (<= 3.14.0-2), +libkolabxml1 (<= 1.1.0-3), +libpqxx-4.0 (<= 4.0.1+dfsg-3ubuntu1), +libreoffice-core (<= 1:4.4.4~rc3-0ubuntu1), +librime1 (<= 1.2+dfsg-2), +libwibble-dev (<= 1.1-1), +lightspark (<= 0.7.2+git20150512-2), +libmarisa0 (<= 0.2.4-8build1), +mira-assembler (<= 4.9.5-1), +mongodb (<= 1:2.6.3-0ubuntu7), +mongodb-server (<= 1:2.6.3-0ubuntu7), +ncbi-blast+ (<= 2.2.30-4), +libogre-1.8.0 (<= 1.8.1+dfsg-0ubuntu5), +libogre-1.9.0 (<= 1.9.0+dfsg1-4), +openscad (<= 2014.03+dfsg-1build1), +libopenwalnut1 (<= 1.4.0~rc1+hg3a3147463ee2-1ubuntu2), +passepartout (<= 0.7.1-1.1), +pdf2djvu (<= 0.7.19-1ubuntu2), +photoprint (<= 0.4.2~pre2-2.3), +plastimatch (<= 1.6.2+dfsg-1), +plee-the-bear (<= 0.6.0-3.1), +povray (<= 1:3.7.0.0-8), +powertop (<= 2.6.1-1), +psi4 (<= 4.0~beta5+dfsg-2build1), +python3-taglib (<= 0.3.6+dfsg-2build2), +realtimebattle (<= 1.0.8-14), +ruby-passenger (<= 4.0.53-1), +libapache2-mod-passenger (<= 4.0.53-1), +sqlitebrowser (<= 3.5.1-3), +tecnoballz (<= 0.93.1-6), +wesnoth-1.12-core (<= 1:1.12.4-1), +widelands (<= 1:18-3build1), +libwreport2 (<= 2.14-1), +xflr5 (<= 6.09.06-2), +libxmltooling6 (<= 1.5.3-2.1), --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.128bit +++ gcc-7-7.5.0/debian/libstdc++6.symbols.128bit @@ -0,0 +1,46 @@ + _ZNSt14numeric_limitsInE10has_denormE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE10is_boundedE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE10is_integerE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE11round_styleE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE12has_infinityE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE12max_digits10E@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE12max_exponentE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE12min_exponentE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE13has_quiet_NaNE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE14is_specializedE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE14max_exponent10E@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE14min_exponent10E@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE15has_denorm_lossE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE15tinyness_beforeE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE17has_signaling_NaNE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE5radixE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE5trapsE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE6digitsE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE8digits10E@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE8is_exactE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE9is_iec559E@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE9is_moduloE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsInE9is_signedE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE10has_denormE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE10is_boundedE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE10is_integerE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE11round_styleE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE12has_infinityE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE12max_digits10E@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE12max_exponentE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE12min_exponentE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE13has_quiet_NaNE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE14is_specializedE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE14max_exponent10E@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE14min_exponent10E@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE15has_denorm_lossE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE15tinyness_beforeE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE17has_signaling_NaNE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE5radixE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE5trapsE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE6digitsE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE8digits10E@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE8is_exactE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE9is_iec559E@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE9is_moduloE@GLIBCXX_3.4.17 4.7 + _ZNSt14numeric_limitsIoE9is_signedE@GLIBCXX_3.4.17 4.7 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.32bit +++ gcc-7-7.5.0/debian/libstdc++6.symbols.32bit @@ -0,0 +1,612 @@ +#include "libstdc++6.symbols.common" +#include "libstdc++6.symbols.32bit.cxx11" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx17__pool_alloc_base16_M_get_free_listEj@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx17__pool_alloc_base9_M_refillEj@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsgetnEPci@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsputnEPKci@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsgetnEPwi@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsputnEPKwi@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx6__poolILb0EE16_M_reclaim_blockEPcj@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb0EE16_M_reserve_blockEjj@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE16_M_reclaim_blockEPcj@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE16_M_reserve_blockEjj@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx9free_list6_M_getEj@GLIBCXX_3.4.4 4.1.1 + _ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@CXXABI_1.3 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_j@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc@GLIBCXX_3.4.5 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_j@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_j@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE2atEj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_j@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_j@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKw@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEjPKc@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE8_M_limitEjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEEixEj@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEPKcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofERKSsj@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEcj@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEPKcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofERKSsj@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEcj@GLIBCXX_3.4 4.1.1 + _ZNKSs15_M_check_lengthEjjPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs15_M_check_lengthEjjPKc@GLIBCXX_3.4.5 4.1.1 + _ZNKSs16find_last_not_ofEPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofEPKcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofERKSsj@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofEcj@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEPKcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofERKSsj@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEcj@GLIBCXX_3.4 4.1.1 + _ZNKSs2atEj@GLIBCXX_3.4 4.1.1 + _ZNKSs4copyEPcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEPKcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs4findERKSsj@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEcj@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEPKcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindERKSsj@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEcj@GLIBCXX_3.4 4.1.1 + _ZNKSs6substrEjj@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEjjPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEjjPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEjjRKSs@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEjjRKSsjj@GLIBCXX_3.4 4.1.1 + _ZNKSs8_M_checkEjPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs8_M_limitEjj@GLIBCXX_3.4 4.1.1 + _ZNKSsixEj@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE6_M_putEPcjPKcPK2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE6_M_putEPwjPKwPK2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt19__codecvt_utf8_baseIDiE9do_lengthER11__mbstate_tPKcS4_j@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDsE9do_lengthER11__mbstate_tPKcS4_j@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIwE9do_lengthER11__mbstate_tPKcS4_j@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDiE9do_lengthER11__mbstate_tPKcS4_j@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDsE9do_lengthER11__mbstate_tPKcS4_j@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIwE9do_lengthER11__mbstate_tPKcS4_j@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDiE9do_lengthER11__mbstate_tPKcS4_j@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDsE9do_lengthER11__mbstate_tPKcS4_j@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIwE9do_lengthER11__mbstate_tPKcS4_j@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDic11__mbstate_tE9do_lengthERS0_PKcS4_j@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDsc11__mbstate_tE9do_lengthERS0_PKcS4_j@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERS0_PKcS4_j@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_j@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIcE12_M_transformEPcPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIwE12_M_transformEPwPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcjcRSt8ios_basePcS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcjcS6_PcS7_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcjwRSt8ios_basePwS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcjwPKwPwS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@GLIBCXX_3.4 4.1.1 + _ZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEj@GLIBCXX_3.4.18 4.8 + _ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEjjj@GLIBCXX_3.4.18 4.8 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.14 4.5 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.14 4.5 + _ZNKSt8valarrayIjE4sizeEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE10_S_compareEjj@GLIBCXX_3.4.16 4.6.0 + _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEjwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE14_M_replace_auxEjjjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE18_S_construct_aux_2EjwRKS1_@GLIBCXX_3.4.14 4.5 + _ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeEjjPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE2atEj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_j@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjjRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE5eraseEjj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendEjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignEjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEjjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6resizeEj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7reserveEj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@GLIBCXX_3.4.24 7 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@GLIBCXX_3.4.24 7 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEixEj@GLIBCXX_3.4 4.1.1 + _ZNSi3getEPci@GLIBCXX_3.4 4.1.1 + _ZNSi3getEPcic@GLIBCXX_3.4 4.1.1 + _ZNSi4readEPci@GLIBCXX_3.4 4.1.1 + _ZNSi5seekgExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSi6ignoreEi@GLIBCXX_3.4 4.1.1 + _ZNSi6ignoreEi@GLIBCXX_3.4.5 4.1.1 + _ZNSi6ignoreEii@GLIBCXX_3.4 4.1.1 + _ZNSi7getlineEPci@GLIBCXX_3.4 4.1.1 + _ZNSi7getlineEPcic@GLIBCXX_3.4 4.1.1 + _ZNSi8readsomeEPci@GLIBCXX_3.4 4.1.1 + _ZNSo5seekpExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSo5writeEPKci@GLIBCXX_3.4 4.1.1 + _ZNSo8_M_writeEPKci@GLIBCXX_3.4 4.1.1 + _ZNSs10_S_compareEjj@GLIBCXX_3.4.16 4.6.0 + _ZNSs12_S_constructEjcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs14_M_replace_auxEjjjc@GLIBCXX_3.4 4.1.1 + _ZNSs15_M_replace_safeEjjPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs18_S_construct_aux_2EjcRKSaIcE@GLIBCXX_3.4.14 4.5 + _ZNSs2atEj@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep26_M_set_length_and_sharableEj@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep26_M_set_length_and_sharableEj@GLIBCXX_3.4.5 4.1.1 + _ZNSs4_Rep8_M_cloneERKSaIcEj@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep9_S_createEjjRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs5eraseEjj@GLIBCXX_3.4 4.1.1 + _ZNSs6appendEPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs6appendERKSsjj@GLIBCXX_3.4 4.1.1 + _ZNSs6appendEjc@GLIBCXX_3.4 4.1.1 + _ZNSs6assignEPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs6assignERKSsjj@GLIBCXX_3.4 4.1.1 + _ZNSs6assignEjc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEjPKc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEjPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEjRKSs@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEjRKSsjj@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEjjc@GLIBCXX_3.4 4.1.1 + _ZNSs6resizeEj@GLIBCXX_3.4 4.1.1 + _ZNSs6resizeEjc@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_copyEPcPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_copyEPcPKcj@GLIBCXX_3.4.5 4.1.1 + _ZNSs7_M_moveEPcPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_moveEPcPKcj@GLIBCXX_3.4.5 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEjjPKc@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEjjPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEjjRKSs@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEjjRKSsjj@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEjjjc@GLIBCXX_3.4 4.1.1 + _ZNSs7reserveEj@GLIBCXX_3.4 4.1.1 + _ZNSs9_M_assignEPcjc@GLIBCXX_3.4 4.1.1 + _ZNSs9_M_assignEPcjc@GLIBCXX_3.4.5 4.1.1 + _ZNSs9_M_mutateEjjj@GLIBCXX_3.4 4.1.1 + _ZNSsC1EPKcjRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1ERKSsjj@GLIBCXX_3.4 4.1.1 + _ZNSsC1ERKSsjRKSaIcE@GLIBCXX_3.4.23 7 + _ZNSsC1ERKSsjjRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1EjcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2EPKcjRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2ERKSsjRKSaIcE@GLIBCXX_3.4.23 7 + _ZNSsC2ERKSsjj@GLIBCXX_3.4 4.1.1 + _ZNSsC2ERKSsjjRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2EjcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsixEj@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC1EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC1EPci@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC2EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC2EPci@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt11this_thread11__sleep_forENSt6chrono8durationIxSt5ratioILx1ELx1EEEENS1_IxS2_ILx1ELx1000000000EEEE@GLIBCXX_3.4.18 4.8 + _ZNSt11__timepunctIcEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1EPSt17__timepunct_cacheIcEj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2EPSt17__timepunct_cacheIcEj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1EPSt17__timepunct_cacheIwEj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2EPSt17__timepunct_cacheIwEj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE6xsgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE6xsputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE7seekoffExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE8xsputn_2EPKciS2_i@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt12ctype_bynameIcEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt12ctype_bynameIwEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt12ctype_bynameIwEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt12strstreambuf6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf8_M_allocEj@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf8_M_setupEPcS0_i@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPFPvjEPFvS0_E@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKai@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKhi@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPaiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPciS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPhiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1Ei@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPFPvjEPFvS0_E@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKai@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKhi@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPaiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPciS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPhiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2Ei@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE13_M_set_bufferEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE13_M_set_bufferEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwiw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi@GLIBCXX_3.4.5 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEij@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwiw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_writeEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt14collate_bynameIcEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIcEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwEC2EPKcj@GLIBCXX_3.4 4.1.1 + (arch=!powerpc !powerpcspe !ppc64 !sparc)_ZNSt14numeric_limitsIeE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_gbumpEi@GLIBCXX_3.4.16 4.6.0 + _ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_pbumpEi@GLIBCXX_3.4.16 4.6.0 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_gbumpEi@GLIBCXX_3.4.16 4.6.0 + _ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_pbumpEi@GLIBCXX_3.4.16 4.6.0 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS4_x@GLIBCXX_3.4.16 4.6.0 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS4_x@GLIBCXX_3.4.16 4.6.0 + _ZNSt15messages_bynameIcEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIcEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15messages_bynameIcEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIcEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15messages_bynameIwEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15messages_bynameIwEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15numpunct_bynameIcEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15numpunct_bynameIcEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15numpunct_bynameIwEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15numpunct_bynameIwEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt16__numpunct_cacheIcEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIcEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIcLb0EEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIcLb1EEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIcLb1EEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIwLb0EEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIwLb0EEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIwLb1EEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EEC1ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIwLb1EEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EEC2ERKSsj@GLIBCXX_3.4.21 5 + _ZNSt18__moneypunct_cacheIcLb0EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb0EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EEC2Ej@GLIBCXX_3.4 4.1.1 + (arch=!armel !kfreebsd-amd64 !kfreebsd-i386)_ZNSt28__atomic_futex_unsigned_base19_M_futex_wait_untilEPjjbNSt6chrono8durationIxSt5ratioILx1ELx1EEEENS2_IxS3_ILx1ELx1000000000EEEE@GLIBCXX_3.4.21 5 + _ZNSt5ctypeIcEC1EP15__locale_structPKtbj@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC1EPKtbj@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC2EP15__locale_structPKtbj@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC2EPKtbj@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@GLIBCXX_3.4 4.1.1 + _ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetEj@GLIBCXX_3.4.7 4.1.1 + _ZNSt6locale5_ImplC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC1ERKS0_j@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2ERKS0_j@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1EPSt16__numpunct_cacheIcEj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2EPSt16__numpunct_cacheIcEj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1EPSt16__numpunct_cacheIwEj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2EPSt16__numpunct_cacheIwEj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjEC1ERKS0_@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjEC2ERKS0_@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjEixEj@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZSt11_Hash_bytesPKvjj@CXXABI_1.3.5 4.6 + _ZSt15_Fnv_hash_bytesPKvjj@CXXABI_1.3.5 4.6 + _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_i@GLIBCXX_3.4.9 4.2.1 + _ZSt16__ostream_insertIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_i@GLIBCXX_3.4.9 4.2.1 + _ZSt17__copy_streambufsIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_@GLIBCXX_3.4.6 4.1.1 + _ZSt17__copy_streambufsIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_@GLIBCXX_3.4.6 4.1.1 + _ZSt17__verify_groupingPKcjRKSs@GLIBCXX_3.4.10 4.3 + _ZSt21__copy_streambufs_eofIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_Rb@GLIBCXX_3.4.9 4.2.1 + _ZSt21__copy_streambufs_eofIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_Rb@GLIBCXX_3.4.9 4.2.1 + _ZThn8_NSdD0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSdD1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt9strstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt9strstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSdD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSdD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSiD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSiD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSoD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSoD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10istrstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10istrstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10ostrstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10ostrstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt9strstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt9strstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZdaPvj@CXXABI_1.3.9 5 + _ZdaPvjSt11align_val_t@CXXABI_1.3.11 7 + _ZdlPvjSt11align_val_t@CXXABI_1.3.11 7 + _ZdlPvj@CXXABI_1.3.9 5 + _ZdlPvjSt11align_val_t@CXXABI_1.3.11 7 + _Znaj@GLIBCXX_3.4 4.1.1 + _ZnajRKSt9nothrow_t@GLIBCXX_3.4 4.1.1 + _ZnajSt11align_val_t@CXXABI_1.3.11 7 + _ZnajSt11align_val_tRKSt9nothrow_t@CXXABI_1.3.11 7 + _Znwj@GLIBCXX_3.4 4.1.1 + _ZnwjRKSt9nothrow_t@GLIBCXX_3.4 4.1.1 + _ZnwjSt11align_val_t@CXXABI_1.3.11 7 + _ZnwjSt11align_val_tRKSt9nothrow_t@CXXABI_1.3.11 7 + _ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@GLIBCXX_3.4 4.1.1 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.32bit.cxx11 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.32bit.cxx11 @@ -0,0 +1,333 @@ + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEPKcjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofERKS4_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEjjPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofERKS4_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEPKcjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE2atEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4copyEPcjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findERKS4_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEPKcjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindERKS4_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjRKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEjjRKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_checkEjPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofERKS4_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS4_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS4_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE2atEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4copyEPwjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEPKwjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findERKS4_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEPKwjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindERKS4_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6substrEjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjRKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEjjRKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_checkEjPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIcE12_M_transformEPcPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIwE12_M_transformEPwPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES4_S4_RiiijRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES4_S4_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES4_S4_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES4_S4_RiiijRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES4_S4_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES4_S4_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12ctype_bynameIcEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12ctype_bynameIcEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12ctype_bynameIwEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12ctype_bynameIwEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14codecvt_bynameIcc11__mbstate_tEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14codecvt_bynameIcc11__mbstate_tEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14codecvt_bynameIwc11__mbstate_tEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14codecvt_bynameIwc11__mbstate_tEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1ERKNSt7__cxx1112basic_stringIcS2_SaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2ERKNSt7__cxx1112basic_stringIcS2_SaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EEC1EP15__locale_structPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EEC2EP15__locale_structPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EEC1EP15__locale_structPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EEC2EP15__locale_structPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EEC1EP15__locale_structPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EEC2EP15__locale_structPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EEC1EP15__locale_structPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EEC2EP15__locale_structPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_destroyEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEjjPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_S_compareEjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_capacityEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructEjc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE14_M_replace_auxEjjjc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE18_M_construct_aux_2Ejc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE2atEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEjc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignERKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEjc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPKcS4_EEjc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EEjc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjRKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjRKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEjjc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEjc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_moveEPcPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_jc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_jc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjRKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjRKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEjjjc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_eraseEjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_lengthEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEjjPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_S_assignEPcjc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcjRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_jRKS3_@GLIBCXX_3.4.23 7 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_jjRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EjcRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcjRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_jRKS3_@GLIBCXX_3.4.23 7 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_jjRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EjcRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_destroyEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_replaceEjjPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_S_compareEjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_capacityEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructEjw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_set_lengthEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE14_M_replace_auxEjjjw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE18_M_construct_aux_2Ejw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE2atEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendERKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEjw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEjw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignERKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPKwS4_EEjw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EEjw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjRKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjRKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEjjw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEjw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_moveEPwPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_j@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_jw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_jw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjRKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjRKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEjjjw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7reserveEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_eraseEjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_appendEPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_createERjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_lengthEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEjjPKwj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_S_assignEPwjw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EPKwjRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_jRKS3_@GLIBCXX_3.4.23 7 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_jjRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EjwRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EPKwjRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_jRKS3_@GLIBCXX_3.4.23 7 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_jj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_jjRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EjwRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIcEC1EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIcEC2EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIwEC1EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIwEC2EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS5_x@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS5_x@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIcEC1EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIcEC2EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIwEC1EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIwEC2EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIcEC1EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIcEC2EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIwEC1EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIwEC2EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1ERKNS_12basic_stringIcS3_SaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2ERKNS_12basic_stringIcS3_SaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1ERKNS_12basic_stringIcS2_IcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2ERKNS_12basic_stringIcS2_IcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC1EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC2EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC1EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC2EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC1EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC2EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC1EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC2EPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIcEC1EP15__locale_structj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIcEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIcEC2EP15__locale_structj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIcEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIwEC1EP15__locale_structj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIwEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIwEC2EP15__locale_structj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIwEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIcEC1EP15__locale_structPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIcEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIcEC2EP15__locale_structPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIcEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIwEC1EP15__locale_structPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIwEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIwEC2EP15__locale_structPKcj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIwEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcEC1EP15__locale_structj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcEC1EPSt16__numpunct_cacheIcEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcEC2EP15__locale_structj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcEC2EPSt16__numpunct_cacheIcEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwEC1EP15__locale_structj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwEC1EPSt16__numpunct_cacheIwEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwEC2EP15__locale_structj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwEC2EPSt16__numpunct_cacheIwEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt17__verify_groupingPKcjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZThn8_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZThn8_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZThn8_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZThn8_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n12_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n12_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n12_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n12_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n12_NSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n12_NSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n12_NSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n12_NSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n12_NSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.32bit.hurd +++ gcc-7-7.5.0/debian/libstdc++6.symbols.32bit.hurd @@ -0,0 +1,536 @@ +#include "libstdc++6.symbols.common" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx17__pool_alloc_base16_M_get_free_listEj@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx17__pool_alloc_base9_M_refillEj@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsgetnEPci@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsputnEPKci@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsgetnEPwi@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsputnEPKwi@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx6__poolILb0EE16_M_reclaim_blockEPcj@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb0EE16_M_reserve_blockEjj@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE16_M_reclaim_blockEPcj@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE16_M_reserve_blockEjj@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx9free_list6_M_getEj@GLIBCXX_3.4.4 4.1.1 + _ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@CXXABI_1.3 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_j@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_j@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc@GLIBCXX_3.4.5 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_j@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_j@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE2atEj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_j@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_j@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKw@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEjjRKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEjPKc@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE8_M_limitEjj@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEEixEj@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEPKcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofERKSsj@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEcj@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEPKcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofERKSsj@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEcj@GLIBCXX_3.4 4.1.1 + _ZNKSs15_M_check_lengthEjjPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs15_M_check_lengthEjjPKc@GLIBCXX_3.4.5 4.1.1 + _ZNKSs16find_last_not_ofEPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofEPKcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofERKSsj@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofEcj@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEPKcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofERKSsj@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEcj@GLIBCXX_3.4 4.1.1 + _ZNKSs2atEj@GLIBCXX_3.4 4.1.1 + _ZNKSs4copyEPcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEPKcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs4findERKSsj@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEcj@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEPKcjj@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindERKSsj@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEcj@GLIBCXX_3.4 4.1.1 + _ZNKSs6substrEjj@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEjjPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEjjPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEjjRKSs@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEjjRKSsjj@GLIBCXX_3.4 4.1.1 + _ZNKSs8_M_checkEjPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs8_M_limitEjj@GLIBCXX_3.4 4.1.1 + _ZNKSsixEj@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE6_M_putEPcjPKcPK2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE6_M_putEPwjPKwPK2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERS0_PKcS4_j@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_j@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIcE12_M_transformEPcPKcj@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIwE12_M_transformEPwPKwj@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcjcRSt8ios_basePcS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcjcS6_PcS7_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcjwRSt8ios_basePwS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcjwPKwPwS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES3_S3_RiPPKcjRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES3_S3_RiiijRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES3_S3_RiPPKwjRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8valarrayIjE4sizeEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEjwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE14_M_replace_auxEjjjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeEjjPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE2atEj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_j@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjjRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE5eraseEjj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendEjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignEjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEjPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEjRKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEjjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6resizeEj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjPKwj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7reserveEj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1EjwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2EjwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEixEj@GLIBCXX_3.4 4.1.1 + _ZNSi3getEPci@GLIBCXX_3.4 4.1.1 + _ZNSi3getEPcic@GLIBCXX_3.4 4.1.1 + _ZNSi4readEPci@GLIBCXX_3.4 4.1.1 + _ZNSi5seekgExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSi6ignoreEi@GLIBCXX_3.4 4.1.1 + _ZNSi6ignoreEi@GLIBCXX_3.4.5 4.1.1 + _ZNSi6ignoreEii@GLIBCXX_3.4 4.1.1 + _ZNSi7getlineEPci@GLIBCXX_3.4 4.1.1 + _ZNSi7getlineEPcic@GLIBCXX_3.4 4.1.1 + _ZNSi8readsomeEPci@GLIBCXX_3.4 4.1.1 + _ZNSo5seekpExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSo5writeEPKci@GLIBCXX_3.4 4.1.1 + _ZNSo8_M_writeEPKci@GLIBCXX_3.4 4.1.1 + _ZNSs12_S_constructEjcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs14_M_replace_auxEjjjc@GLIBCXX_3.4 4.1.1 + _ZNSs15_M_replace_safeEjjPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs2atEj@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep26_M_set_length_and_sharableEj@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep26_M_set_length_and_sharableEj@GLIBCXX_3.4.5 4.1.1 + _ZNSs4_Rep8_M_cloneERKSaIcEj@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep9_S_createEjjRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs5eraseEjj@GLIBCXX_3.4 4.1.1 + _ZNSs6appendEPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs6appendERKSsjj@GLIBCXX_3.4 4.1.1 + _ZNSs6appendEjc@GLIBCXX_3.4 4.1.1 + _ZNSs6assignEPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs6assignERKSsjj@GLIBCXX_3.4 4.1.1 + _ZNSs6assignEjc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEjPKc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEjPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEjRKSs@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEjRKSsjj@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEjjc@GLIBCXX_3.4 4.1.1 + _ZNSs6resizeEj@GLIBCXX_3.4 4.1.1 + _ZNSs6resizeEjc@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_copyEPcPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_copyEPcPKcj@GLIBCXX_3.4.5 4.1.1 + _ZNSs7_M_moveEPcPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_moveEPcPKcj@GLIBCXX_3.4.5 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEjjPKc@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEjjPKcj@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEjjRKSs@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEjjRKSsjj@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEjjjc@GLIBCXX_3.4 4.1.1 + _ZNSs7reserveEj@GLIBCXX_3.4 4.1.1 + _ZNSs9_M_assignEPcjc@GLIBCXX_3.4 4.1.1 + _ZNSs9_M_assignEPcjc@GLIBCXX_3.4.5 4.1.1 + _ZNSs9_M_mutateEjjj@GLIBCXX_3.4 4.1.1 + _ZNSsC1EPKcjRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1ERKSsjj@GLIBCXX_3.4 4.1.1 + _ZNSsC1ERKSsjjRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1EjcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2EPKcjRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2ERKSsjj@GLIBCXX_3.4 4.1.1 + _ZNSsC2ERKSsjjRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2EjcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsixEj@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC1EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC1EPci@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC2EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC2EPci@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEj@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1EPSt17__timepunct_cacheIcEj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2EPSt17__timepunct_cacheIcEj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1EPSt17__timepunct_cacheIwEj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2EPSt17__timepunct_cacheIwEj@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE6xsgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE6xsputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE7seekoffExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE8xsputn_2EPKciS2_i@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf8_M_allocEj@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf8_M_setupEPcS0_i@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPFPvjEPFvS0_E@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKai@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKhi@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPaiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPciS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPhiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1Ei@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPFPvjEPFvS0_E@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKai@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKhi@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPaiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPciS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPhiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2Ei@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE13_M_set_bufferEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE13_M_set_bufferEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwiw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi@GLIBCXX_3.4.5 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEij@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwiw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_writeEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIcEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIcEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIcEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIcEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIcEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIcEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EEC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EEC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb0EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb0EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC1EP15__locale_structPKtbj@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC1EPKtbj@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC2EP15__locale_structPKtbj@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC2EPKtbj@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@GLIBCXX_3.4 4.1.1 + _ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetEj@GLIBCXX_3.4.7 4.1.1 + _ZNSt6locale5_ImplC1EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC1ERKS0_j@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2EPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2ERKS0_j@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC1EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC2EP15__locale_structPKcj@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1EPSt16__numpunct_cacheIcEj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2EPSt16__numpunct_cacheIcEj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1EPSt16__numpunct_cacheIwEj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2EP15__locale_structj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2EPSt16__numpunct_cacheIwEj@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjEC1ERKS0_@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjEC2ERKS0_@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayIjEixEj@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_3.4 4.1.1 + _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_i@GLIBCXX_3.4.9 4.2.1 + _ZSt16__ostream_insertIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_i@GLIBCXX_3.4.9 4.2.1 + _ZSt17__copy_streambufsIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_@GLIBCXX_3.4.6 4.1.1 + _ZSt17__copy_streambufsIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_@GLIBCXX_3.4.6 4.1.1 + _ZSt17__verify_groupingPKcjRKSs@GLIBCXX_3.4.10 4.3 + _ZSt21__copy_streambufs_eofIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_Rb@GLIBCXX_3.4.9 4.2.1 + _ZSt21__copy_streambufs_eofIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_Rb@GLIBCXX_3.4.9 4.2.1 + _ZThn8_NSdD0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSdD1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt9strstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt9strstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSdD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSdD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSiD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSiD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSoD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSoD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10istrstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10istrstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10ostrstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10ostrstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt9strstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt9strstreamD1Ev@GLIBCXX_3.4 4.1.1 + _Znaj@GLIBCXX_3.4 4.1.1 + _ZnajRKSt9nothrow_t@GLIBCXX_3.4 4.1.1 + _Znwj@GLIBCXX_3.4 4.1.1 + _ZnwjRKSt9nothrow_t@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcEC1EP15__pthread_mutex@GLIBCXX_3.4 4.3.0 + _ZNSt12__basic_fileIcEC2EP15__pthread_mutex@GLIBCXX_3.4 4.3.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.64bit +++ gcc-7-7.5.0/debian/libstdc++6.symbols.64bit @@ -0,0 +1,624 @@ +#include "libstdc++6.symbols.common" +#include "libstdc++6.symbols.64bit.cxx11" + _ZN9__gnu_cxx17__pool_alloc_base16_M_get_free_listEm@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx17__pool_alloc_base9_M_refillEm@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsgetnEPcl@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsputnEPKcl@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsgetnEPwl@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsputnEPKwl@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx6__poolILb0EE16_M_reclaim_blockEPcm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb0EE16_M_reserve_blockEmm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE16_M_reclaim_blockEPcm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE16_M_reserve_blockEmm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx9free_list6_M_getEm@GLIBCXX_3.4.4 4.1.1 + _ZNK10__cxxabiv117__class_type_info12__do_dyncastElNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv117__class_type_info20__do_find_public_srcElPKvPKS0_S2_@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv120__si_class_type_info12__do_dyncastElNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcElPKvPKNS_17__class_type_infoES2_@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastElNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcElPKvPKNS_17__class_type_infoES2_@CXXABI_1.3 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc@GLIBCXX_3.4.5 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE2atEm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKw@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE8_M_limitEmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEEixEm@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs15_M_check_lengthEmmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs15_M_check_lengthEmmPKc@GLIBCXX_3.4.5 4.1.1 + _ZNKSs16find_last_not_ofEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs2atEm@GLIBCXX_3.4 4.1.1 + _ZNKSs4copyEPcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs4findERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs6substrEmm@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEmmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEmmPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEmmRKSs@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEmmRKSsmm@GLIBCXX_3.4 4.1.1 + _ZNKSs8_M_checkEmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs8_M_limitEmm@GLIBCXX_3.4 4.1.1 + _ZNKSsixEm@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE6_M_putEPcmPKcPK2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE6_M_putEPwmPKwPK2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt19__codecvt_utf8_baseIDiE9do_lengthER11__mbstate_tPKcS4_m@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDsE9do_lengthER11__mbstate_tPKcS4_m@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIwE9do_lengthER11__mbstate_tPKcS4_m@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDiE9do_lengthER11__mbstate_tPKcS4_m@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDsE9do_lengthER11__mbstate_tPKcS4_m@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIwE9do_lengthER11__mbstate_tPKcS4_m@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDiE9do_lengthER11__mbstate_tPKcS4_m@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDsE9do_lengthER11__mbstate_tPKcS4_m@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIwE9do_lengthER11__mbstate_tPKcS4_m@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDic11__mbstate_tE9do_lengthERS0_PKcS4_m@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDsc11__mbstate_tE9do_lengthERS0_PKcS4_m@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERS0_PKcS4_m@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_m@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIcE12_M_transformEPcPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIwE12_M_transformEPwPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcmcRSt8ios_basePcS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcmcS6_PcS7_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEclRSt8ios_basePcPKcRi@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcmwRSt8ios_basePwS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcmwPKwPwS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwlRSt8ios_basePwPKwRi@GLIBCXX_3.4 4.1.1 + _ZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEm@GLIBCXX_3.4.18 4.8 + _ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm@GLIBCXX_3.4.18 4.8 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES3_S3_RiiimRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES3_S3_RiPPKcmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES3_S3_RiPPKcmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.14 4.5 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES3_S3_RiiimRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES3_S3_RiPPKwmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES3_S3_RiPPKwmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.14 4.5 + _ZNKSt8valarrayImE4sizeEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE10_S_compareEmm@GLIBCXX_3.4.16 4.6.0 + _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEmwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE14_M_replace_auxEmmmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeEmmPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE18_S_construct_aux_2EmwRKS1_@GLIBCXX_3.4.14 4.5 + _ZNSbIwSt11char_traitsIwESaIwEE2atEm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_m@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEmmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE5eraseEmm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendEmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignEmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6resizeEm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7reserveEm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mRKS1_@GLIBCXX_3.4.23 7 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mRKS1_@GLIBCXX_3.4.23 7 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEixEm@GLIBCXX_3.4 4.1.1 + _ZNSi3getEPcl@GLIBCXX_3.4 4.1.1 + _ZNSi3getEPclc@GLIBCXX_3.4 4.1.1 + _ZNSi4readEPcl@GLIBCXX_3.4 4.1.1 + _ZNSi5seekgElSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSi6ignoreEl@GLIBCXX_3.4 4.1.1 + _ZNSi6ignoreEl@GLIBCXX_3.4.5 4.1.1 + _ZNSi6ignoreEli@GLIBCXX_3.4 4.1.1 + _ZNSi7getlineEPcl@GLIBCXX_3.4 4.1.1 + _ZNSi7getlineEPclc@GLIBCXX_3.4 4.1.1 + _ZNSi8readsomeEPcl@GLIBCXX_3.4 4.1.1 + _ZNSo5seekpElSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSo5writeEPKcl@GLIBCXX_3.4 4.1.1 + _ZNSo8_M_writeEPKcl@GLIBCXX_3.4 4.1.1 + _ZNSs10_S_compareEmm@GLIBCXX_3.4.16 4.6.0 + _ZNSs12_S_constructEmcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs14_M_replace_auxEmmmc@GLIBCXX_3.4 4.1.1 + _ZNSs15_M_replace_safeEmmPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs18_S_construct_aux_2EmcRKSaIcE@GLIBCXX_3.4.14 4.5 + _ZNSs2atEm@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4.5 4.1.1 + _ZNSs4_Rep8_M_cloneERKSaIcEm@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep9_S_createEmmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs5eraseEmm@GLIBCXX_3.4 4.1.1 + _ZNSs6appendEPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs6appendERKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSs6appendEmc@GLIBCXX_3.4 4.1.1 + _ZNSs6assignEPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs6assignERKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSs6assignEmc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmPKc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmRKSs@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmRKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmmc@GLIBCXX_3.4 4.1.1 + _ZNSs6resizeEm@GLIBCXX_3.4 4.1.1 + _ZNSs6resizeEmc@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_copyEPcPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_copyEPcPKcm@GLIBCXX_3.4.5 4.1.1 + _ZNSs7_M_moveEPcPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_moveEPcPKcm@GLIBCXX_3.4.5 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmPKc@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmRKSs@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmRKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmmc@GLIBCXX_3.4 4.1.1 + _ZNSs7reserveEm@GLIBCXX_3.4 4.1.1 + _ZNSs9_M_assignEPcmc@GLIBCXX_3.4 4.1.1 + _ZNSs9_M_assignEPcmc@GLIBCXX_3.4.5 4.1.1 + _ZNSs9_M_mutateEmmm@GLIBCXX_3.4 4.1.1 + _ZNSsC1EPKcmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1ERKSsmRKSaIcE@GLIBCXX_3.4.23 7 + _ZNSsC1ERKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSsC1ERKSsmmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1EmcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2EPKcmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2ERKSsmRKSaIcE@GLIBCXX_3.4.23 7 + _ZNSsC2ERKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSsC2ERKSsmmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2EmcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsixEm@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC1EPKcl@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC1EPcl@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC2EPKcl@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC2EPcl@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt11this_thread11__sleep_forENSt6chrono8durationIlSt5ratioILl1ELl1EEEENS1_IlS2_ILl1ELl1000000000EEEE@GLIBCXX_3.4.18 4.8 + _ZNSt11__timepunctIcEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1EPSt17__timepunct_cacheIcEm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2EPSt17__timepunct_cacheIcEm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1EPSt17__timepunct_cacheIwEm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2EPSt17__timepunct_cacheIwEm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE6xsgetnEPcl@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE6xsputnEPKcl@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE7seekoffElSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE8xsputn_2EPKclS2_l@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt12ctype_bynameIcEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt12ctype_bynameIwEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt12ctype_bynameIwEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt12strstreambuf6setbufEPcl@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf8_M_allocEm@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf8_M_setupEPcS0_l@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPFPvmEPFvS0_E@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKal@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKcl@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKhl@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPalS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPclS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPhlS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1El@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPFPvmEPFvS0_E@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKal@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKcl@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKhl@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPalS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPclS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPhlS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2El@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE13_M_set_bufferEl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPcl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPcl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPcl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKcl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekElSt12_Ios_Seekdir11__mbstate_t@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE13_M_set_bufferEl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE7_M_seekElSt12_Ios_Seekdir11__mbstate_t@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwlw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl@GLIBCXX_3.4.5 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreElj@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwlw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_writeEPKwl@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt14collate_bynameIcEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIcEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwEC2EPKcm@GLIBCXX_3.4 4.1.1 + (arch=!alpha !powerpc !ppc64 !ppc64el !s390 !s390x)_ZNSt14numeric_limitsIeE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_gbumpEl@GLIBCXX_3.4.16 4.6.0 + _ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_pbumpEl@GLIBCXX_3.4.16 4.6.0 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPcl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKcl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPcl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPcl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKcl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPcl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPcl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcmm@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS4_l@GLIBCXX_3.4.16 4.6.0 + _ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_gbumpEl@GLIBCXX_3.4.16 4.6.0 + _ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_pbumpEl@GLIBCXX_3.4.16 4.6.0 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwl@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwmm@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS4_l@GLIBCXX_3.4.16 4.6.0 + _ZNSt15messages_bynameIcEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIcEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15messages_bynameIcEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIcEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15messages_bynameIwEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15messages_bynameIwEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15numpunct_bynameIcEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15numpunct_bynameIcEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15numpunct_bynameIwEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15numpunct_bynameIwEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwEC2ERKSsm@GLIBCXX_3.4.21 5 + + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt16__numpunct_cacheIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIcLb0EEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIcLb1EEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIcLb1EEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIwLb0EEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIwLb0EEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIwLb1EEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EEC1ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt17moneypunct_bynameIwLb1EEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EEC2ERKSsm@GLIBCXX_3.4.21 5 + _ZNSt18__moneypunct_cacheIcLb0EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb0EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EEC2Em@GLIBCXX_3.4 4.1.1 + (arch=!kfreebsd-amd64)_ZNSt28__atomic_futex_unsigned_base19_M_futex_wait_untilEPjjbNSt6chrono8durationIlSt5ratioILl1ELl1EEEENS2_IlS3_ILl1ELl1000000000EEEE@GLIBCXX_3.4.21 5 + _ZNSt5ctypeIcEC1EP15__locale_structPKtbm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC1EPKtbm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC2EP15__locale_structPKtbm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC2EPKtbm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@GLIBCXX_3.4 4.1.1 + _ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetEm@GLIBCXX_3.4.7 4.1.1 + _ZNSt6locale5_ImplC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC1ERKS0_m@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2ERKS0_m@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2Em@GLIBCXX_3.4 4.1.1 + + _ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1EPSt16__numpunct_cacheIcEm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2EPSt16__numpunct_cacheIcEm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1EPSt16__numpunct_cacheIwEm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2EPSt16__numpunct_cacheIwEm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEC1ERKS0_@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEC2ERKS0_@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEixEm@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZSt11_Hash_bytesPKvmm@CXXABI_1.3.5 4.6 + _ZSt15_Fnv_hash_bytesPKvmm@CXXABI_1.3.5 4.6 + _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l@GLIBCXX_3.4.9 4.2.1 + _ZSt16__ostream_insertIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_l@GLIBCXX_3.4.9 4.2.1 + _ZSt17__copy_streambufsIcSt11char_traitsIcEElPSt15basic_streambufIT_T0_ES6_@GLIBCXX_3.4.8 4.1.1 + _ZSt17__copy_streambufsIwSt11char_traitsIwEElPSt15basic_streambufIT_T0_ES6_@GLIBCXX_3.4.8 4.1.1 + _ZSt17__verify_groupingPKcmRKSs@GLIBCXX_3.4.10 4.3 + _ZSt21__copy_streambufs_eofIcSt11char_traitsIcEElPSt15basic_streambufIT_T0_ES6_Rb@GLIBCXX_3.4.9 4.2.1 + _ZSt21__copy_streambufs_eofIwSt11char_traitsIwEElPSt15basic_streambufIT_T0_ES6_Rb@GLIBCXX_3.4.9 4.2.1 + _ZTIPKn@CXXABI_1.3.5 4.6 + _ZTIPKo@CXXABI_1.3.5 4.6 + _ZTIPn@CXXABI_1.3.5 4.6 + _ZTIPo@CXXABI_1.3.5 4.6 + _ZTIn@CXXABI_1.3.5 4.6 + _ZTIo@CXXABI_1.3.5 4.6 + _ZTSPKn@CXXABI_1.3.9 5 + _ZTSPKo@CXXABI_1.3.9 5 + _ZTSPn@CXXABI_1.3.9 5 + _ZTSPo@CXXABI_1.3.9 5 + _ZTSn@CXXABI_1.3.9 5 + _ZTSo@CXXABI_1.3.9 5 + _ZThn16_NSdD0Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSdD1Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSt9strstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZThn16_NSt9strstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSdD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSdD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSiD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSiD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSoD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSoD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt10istrstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt10istrstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt10ostrstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt10ostrstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt9strstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n24_NSt9strstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZdaPvm@CXXABI_1.3.9 5 + _ZdaPvmSt11align_val_t@CXXABI_1.3.11 7 + _ZdlPvm@CXXABI_1.3.9 5 + _ZdlPvmSt11align_val_t@CXXABI_1.3.11 7 + _Znam@GLIBCXX_3.4 4.1.1 + _ZnamRKSt9nothrow_t@GLIBCXX_3.4 4.1.1 + _ZnamSt11align_val_t@CXXABI_1.3.11 7 + _ZnamSt11align_val_tRKSt9nothrow_t@CXXABI_1.3.11 7 + _Znwm@GLIBCXX_3.4 4.1.1 + _ZnwmRKSt9nothrow_t@GLIBCXX_3.4 4.1.1 + _ZnwmSt11align_val_t@CXXABI_1.3.11 7 + _ZnwmSt11align_val_tRKSt9nothrow_t@CXXABI_1.3.11 7 + __gxx_personality_v0@CXXABI_1.3 4.1.1 + _ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@GLIBCXX_3.4 4.1.1 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.64bit.cxx11 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.64bit.cxx11 @@ -0,0 +1,333 @@ + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEPKcmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofERKS4_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEPKcmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofERKS4_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEPKcmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofERKS4_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16find_last_not_ofEcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEPKcmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofERKS4_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE2atEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4copyEPcmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findERKS4_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEPKcmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindERKS4_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEmmPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEmmPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEmmRKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEmmRKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_checkEmPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_limitEmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofERKS4_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12find_last_ofEwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEPKwmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofERKS4_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13find_first_ofEwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS4_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16find_last_not_ofEwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS4_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17find_first_not_ofEwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE2atEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4copyEPwmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEPKwmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findERKS4_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4findEwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEPKwmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindERKS4_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5rfindEwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6substrEmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEmmPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEmmPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEmmRKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEmmRKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_checkEmPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_limitEmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIcE12_M_transformEPcPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIwE12_M_transformEPwPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES4_S4_RiiimRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES4_S4_RiPPKcmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES4_S4_RiPPKcmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES4_S4_RiiimRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES4_S4_RiPPKwmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES4_S4_RiPPKwmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12ctype_bynameIcEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12ctype_bynameIcEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12ctype_bynameIwEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12ctype_bynameIwEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14codecvt_bynameIcc11__mbstate_tEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14codecvt_bynameIcc11__mbstate_tEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14codecvt_bynameIwc11__mbstate_tEC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14codecvt_bynameIwc11__mbstate_tEC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1ERKNSt7__cxx1112basic_stringIcS2_SaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2ERKNSt7__cxx1112basic_stringIcS2_SaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EEC1EP15__locale_structPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EEC2EP15__locale_structPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EEC1EP15__locale_structPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EEC2EP15__locale_structPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EEC1EP15__locale_structPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EEC2EP15__locale_structPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EEC1EP15__locale_structPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EEC2EP15__locale_structPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_destroyEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_S_compareEmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_capacityEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructEmc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE14_M_replace_auxEmmmc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE18_M_construct_aux_2Emc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE2atEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEmc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignERKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEmc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPKcS4_EEmc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EEmc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmmc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEmc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_moveEPcPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_mc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_mc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEmmPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEmmPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEmmRKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEmmRKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEmmmc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_eraseEmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_lengthEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_S_assignEPcmc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcmRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_mRKS3_@GLIBCXX_3.4.23 7 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_mmRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EmcRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_mRKS3_@GLIBCXX_3.4.23 7 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_mmRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EmcRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_destroyEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_replaceEmmPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_S_compareEmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_capacityEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructEmw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_set_lengthEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE14_M_replace_auxEmmmw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE18_M_construct_aux_2Emw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE2atEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendERKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEmw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEmw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignERKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPKwS4_EEmw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EEmw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEmPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEmPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEmRKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEmRKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEmmw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEmw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_moveEPwPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_m@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_mw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_mw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEmmPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEmmPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEmmRKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEmmRKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEmmmw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7reserveEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_eraseEmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_appendEPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_createERmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_lengthEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEmmPKwm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_S_assignEPwmw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EPKwmRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_mRKS3_@GLIBCXX_3.4.23 7 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_mmRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EmwRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EPKwmRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_mRKS3_@GLIBCXX_3.4.23 7 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_mm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_mmRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EmwRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEixEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIcEC1EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIcEC2EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIwEC1EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIwEC2EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPcl@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS5_l@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwl@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwmm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS5_l@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIcEC1EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIcEC2EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIwEC1EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIwEC2EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIcEC1EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIcEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIcEC2EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIwEC1EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIwEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIwEC2EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIwEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1ERKNS_12basic_stringIcS3_SaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2ERKNS_12basic_stringIcS3_SaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1ERKNS_12basic_stringIcS2_IcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2ERKNS_12basic_stringIcS2_IcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC1EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC2EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb0EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC1EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC2EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb1EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC1EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC2EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb0EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC1EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC1ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC2EPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb1EEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIcEC1EP15__locale_structm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIcEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIcEC2EP15__locale_structm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIcEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIwEC1EP15__locale_structm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIwEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIwEC2EP15__locale_structm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIwEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIcEC1EP15__locale_structPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIcEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIcEC2EP15__locale_structPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIcEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIwEC1EP15__locale_structPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIwEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIwEC2EP15__locale_structPKcm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIwEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcEC1EP15__locale_structm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcEC1EPSt16__numpunct_cacheIcEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcEC2EP15__locale_structm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcEC2EPSt16__numpunct_cacheIcEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwEC1EP15__locale_structm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwEC1EPSt16__numpunct_cacheIwEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwEC2EP15__locale_structm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwEC2EPSt16__numpunct_cacheIwEm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt17__verify_groupingPKcmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZThn16_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZThn16_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZThn16_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZThn16_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n24_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n24_NSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n24_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n24_NSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n24_NSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n24_NSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n24_NSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n24_NSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n24_NSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n24_NSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n24_NSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTv0_n24_NSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.alpha +++ gcc-7-7.5.0/debian/libstdc++6.symbols.alpha @@ -0,0 +1,56 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.excprop" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.64bit" +#include "libstdc++6.symbols.money.f128" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNSt14numeric_limitsInE10has_denormE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE10is_boundedE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE10is_integerE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE11round_styleE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE12has_infinityE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE12max_digits10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE12max_exponentE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE12min_exponentE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE13has_quiet_NaNE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE14is_specializedE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE14max_exponent10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE14min_exponent10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE15has_denorm_lossE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE15tinyness_beforeE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE17has_signaling_NaNE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE5radixE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE5trapsE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE6digitsE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE8digits10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE8is_exactE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE9is_iec559E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE9is_moduloE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE9is_signedE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE10has_denormE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE10is_boundedE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE10is_integerE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE11round_styleE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE12has_infinityE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE12max_digits10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE12max_exponentE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE12min_exponentE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE13has_quiet_NaNE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE14is_specializedE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE14max_exponent10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE14min_exponent10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE15has_denorm_lossE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE15tinyness_beforeE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE17has_signaling_NaNE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE5radixE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE5trapsE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE6digitsE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE8digits10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE8is_exactE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE9is_iec559E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE9is_moduloE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE9is_signedE@GLIBCXX_3.4.17 4.8 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.amd64 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.amd64 @@ -0,0 +1,16 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 +#(optional)_Z16__VLTRegisterSetPPvPKvmmS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z17__VLTRegisterPairPPvPKvmS2_@CXXABI_1.3.8 4.9.0 +#(optional)_Z21__VLTRegisterSetDebugPPvPKvmmS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z22__VLTRegisterPairDebugPPvPKvmS2_PKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)_Z24__VLTVerifyVtablePointerPPvPKv@CXXABI_1.3.8 4.9.0 +#(optional)_Z29__VLTVerifyVtablePointerDebugPPvPKvPKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)__VLTChangePermission@CXXABI_1.3.8 4.9.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.arm +++ gcc-7-7.5.0/debian/libstdc++6.symbols.arm @@ -0,0 +1,6 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" + __gxx_personality_sj0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.arm64 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.arm64 @@ -0,0 +1,10 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + __gxx_personality_v0@CXXABI_1.3 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0 + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.armel +++ gcc-7-7.5.0/debian/libstdc++6.symbols.armel @@ -0,0 +1,13 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.money.ldbl" + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" + CXXABI_ARM_1.3.3@CXXABI_ARM_1.3.3 4.4.0 + _ZNKSt9type_info6beforeERKS_@GLIBCXX_3.4 4.3.0 + _ZNKSt9type_infoeqERKS_@GLIBCXX_3.4 4.3.0 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0 + __cxa_begin_cleanup@CXXABI_1.3 4.3.0 + __cxa_end_cleanup@CXXABI_1.3 4.3.0 + __cxa_type_match@CXXABI_1.3 4.3.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.armhf +++ gcc-7-7.5.0/debian/libstdc++6.symbols.armhf @@ -0,0 +1,20 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" + CXXABI_ARM_1.3.3@CXXABI_ARM_1.3.3 4.4.0 + _ZNKSt9type_info6beforeERKS_@GLIBCXX_3.4 4.3.0 + _ZNKSt9type_infoeqERKS_@GLIBCXX_3.4 4.3.0 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0 + __cxa_begin_cleanup@CXXABI_1.3 4.3.0 + __cxa_end_cleanup@CXXABI_1.3 4.3.0 + __cxa_type_match@CXXABI_1.3 4.3.0 + _ZTIPKo@CXXABI_1.3.5 7 + _ZTIPo@CXXABI_1.3.5 7 + _ZTIo@CXXABI_1.3.5 7 + _ZTSPKo@CXXABI_1.3.9 7 + _ZTSPo@CXXABI_1.3.9 7 + _ZTSo@CXXABI_1.3.9 7 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.common +++ gcc-7-7.5.0/debian/libstdc++6.symbols.common @@ -0,0 +1,3470 @@ + CXXABI_1.3.1@CXXABI_1.3.1 4.1.1 + CXXABI_1.3.2@CXXABI_1.3.2 4.3 + CXXABI_1.3.3@CXXABI_1.3.3 4.4.0 + CXXABI_1.3.4@CXXABI_1.3.4 4.5 + CXXABI_1.3.5@CXXABI_1.3.5 4.6 + CXXABI_1.3.6@CXXABI_1.3.6 4.7 + CXXABI_1.3.7@CXXABI_1.3.7 4.8 + CXXABI_1.3.8@CXXABI_1.3.8 4.9 + CXXABI_1.3.9@CXXABI_1.3.9 5 + CXXABI_1.3.10@CXXABI_1.3.10 6 + CXXABI_1.3.11@CXXABI_1.3.11 7 + CXXABI_1.3@CXXABI_1.3 4.1.1 + CXXABI_TM_1@CXXABI_TM_1 4.7 + GLIBCXX_3.4.10@GLIBCXX_3.4.10 4.3 + GLIBCXX_3.4.11@GLIBCXX_3.4.11 4.4.0 + GLIBCXX_3.4.12@GLIBCXX_3.4.12 4.4.0 + GLIBCXX_3.4.13@GLIBCXX_3.4.13 4.4.2 + GLIBCXX_3.4.14@GLIBCXX_3.4.14 4.5 + GLIBCXX_3.4.15@GLIBCXX_3.4.15 4.6 + GLIBCXX_3.4.16@GLIBCXX_3.4.16 4.6.0 + GLIBCXX_3.4.17@GLIBCXX_3.4.17 4.7 + GLIBCXX_3.4.18@GLIBCXX_3.4.18 4.8 + GLIBCXX_3.4.19@GLIBCXX_3.4.19 4.8 + GLIBCXX_3.4.1@GLIBCXX_3.4.1 4.1.1 + GLIBCXX_3.4.20@GLIBCXX_3.4.20 4.9 + GLIBCXX_3.4.21@GLIBCXX_3.4.21 5 + GLIBCXX_3.4.22@GLIBCXX_3.4.22 6 + GLIBCXX_3.4.23@GLIBCXX_3.4.23 7 + GLIBCXX_3.4.24@GLIBCXX_3.4.24 7 + GLIBCXX_3.4.2@GLIBCXX_3.4.2 4.1.1 + GLIBCXX_3.4.3@GLIBCXX_3.4.3 4.1.1 + GLIBCXX_3.4.4@GLIBCXX_3.4.4 4.1.1 + GLIBCXX_3.4.5@GLIBCXX_3.4.5 4.1.1 + GLIBCXX_3.4.6@GLIBCXX_3.4.6 4.1.1 + GLIBCXX_3.4.7@GLIBCXX_3.4.7 4.1.1 + GLIBCXX_3.4.8@GLIBCXX_3.4.8 4.1.1 + GLIBCXX_3.4.9@GLIBCXX_3.4.9 4.2.1 + GLIBCXX_3.4@GLIBCXX_3.4 4.1.1 +#include "libstdc++6.symbols.common.cxx11" +(arch=amd64 i386 x32 kfreebsd-amd64 kfreebsd-i386)#include "libstdc++6.symbols.float128" +(arch=!armel)#include "libstdc++6.symbols.not-armel" + (arch=!armel !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386)_ZNSt28__atomic_futex_unsigned_base19_M_futex_notify_allEPj@GLIBCXX_3.4.21 5 + _ZGTtNKSt11logic_error4whatEv@GLIBCXX_3.4.22 6 + _ZGTtNKSt13bad_exception4whatEv@CXXABI_1.3.10 6 + _ZGTtNKSt13bad_exceptionD1Ev@CXXABI_1.3.10 6 + _ZGTtNKSt13runtime_error4whatEv@GLIBCXX_3.4.22 6 + _ZGTtNKSt9exception4whatEv@CXXABI_1.3.10 6 + _ZGTtNKSt9exceptionD1Ev@CXXABI_1.3.10 6 + _ZGTtNSt11logic_errorC1EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt11logic_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt11logic_errorC2EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt11logic_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt11logic_errorD0Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt11logic_errorD1Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt11logic_errorD2Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt11range_errorC1EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt11range_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt11range_errorC2EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt11range_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt11range_errorD0Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt11range_errorD1Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt11range_errorD2Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt12domain_errorC1EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt12domain_errorC2EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt12domain_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt12domain_errorD0Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt12domain_errorD1Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt12domain_errorD2Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt12length_errorC1EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt12length_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt12length_errorC2EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt12length_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt12length_errorD0Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt12length_errorD1Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt12length_errorD2Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt12out_of_rangeC1EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt12out_of_rangeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt12out_of_rangeC2EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt12out_of_rangeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt12out_of_rangeD0Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt12out_of_rangeD1Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt12out_of_rangeD2Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt13runtime_errorC1EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt13runtime_errorC2EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt13runtime_errorD0Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt13runtime_errorD1Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt13runtime_errorD2Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt14overflow_errorC1EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt14overflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt14overflow_errorC2EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt14overflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt14overflow_errorD0Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt14overflow_errorD1Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt14overflow_errorD2Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt15underflow_errorC1EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt15underflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt15underflow_errorC2EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt15underflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt15underflow_errorD0Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt15underflow_errorD1Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt15underflow_errorD2Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt16invalid_argumentC1EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt16invalid_argumentC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt16invalid_argumentC2EPKc@GLIBCXX_3.4.22 6 + (optional=abi_c++11)_ZGTtNSt16invalid_argumentC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.22 6 + _ZGTtNSt16invalid_argumentD0Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt16invalid_argumentD1Ev@GLIBCXX_3.4.22 6 + _ZGTtNSt16invalid_argumentD2Ev@GLIBCXX_3.4.22 6 + _ZGVNSt10moneypunctIcLb0EE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt10moneypunctIcLb1EE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt10moneypunctIwLb0EE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt10moneypunctIwLb1EE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt11__timepunctIcE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt11__timepunctIwE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt7collateIcE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt7collateIwE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt8messagesIcE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt8messagesIwE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt8numpunctIcE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt8numpunctIwE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4 4.1.1 + _ZGVNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4 4.1.1 + _ZN10__cxxabiv116__enum_type_infoD0Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv116__enum_type_infoD1Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv116__enum_type_infoD2Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv117__array_type_infoD0Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv117__array_type_infoD1Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv117__array_type_infoD2Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv117__class_type_infoD0Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv117__class_type_infoD1Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv117__class_type_infoD2Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv117__pbase_type_infoD0Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv117__pbase_type_infoD1Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv117__pbase_type_infoD2Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv119__pointer_type_infoD0Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv119__pointer_type_infoD1Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv119__pointer_type_infoD2Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv120__function_type_infoD0Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv120__function_type_infoD1Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv120__function_type_infoD2Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv120__si_class_type_infoD0Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv120__si_class_type_infoD1Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv120__si_class_type_infoD2Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv121__vmi_class_type_infoD0Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv121__vmi_class_type_infoD1Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv121__vmi_class_type_infoD2Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv123__fundamental_type_infoD0Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv123__fundamental_type_infoD1Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv123__fundamental_type_infoD2Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv129__pointer_to_member_type_infoD0Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev@CXXABI_1.3 4.1.1 + _ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev@CXXABI_1.3 4.1.1 + _ZN10__gnu_norm15_List_node_base4hookEPS0_@GLIBCXX_3.4 4.1.1 + _ZN10__gnu_norm15_List_node_base4swapERS0_S1_@GLIBCXX_3.4 4.1.1 + _ZN10__gnu_norm15_List_node_base6unhookEv@GLIBCXX_3.4 4.1.1 + _ZN10__gnu_norm15_List_node_base7reverseEv@GLIBCXX_3.4 4.1.1 + _ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@GLIBCXX_3.4 4.1.1 + _ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv@GLIBCXX_3.4.9 4.2.1 + _ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb@GLIBCXX_3.4.9 4.2.1 + _ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv@GLIBCXX_3.4.9 4.2.1 + _ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@GLIBCXX_3.4 4.1.1 + _ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv@GLIBCXX_3.4 4.1.1 + _ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv@GLIBCXX_3.4.9 4.2.1 + _ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv@GLIBCXX_3.4 4.1.1 + _ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@GLIBCXX_3.4 4.1.1 + _ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@GLIBCXX_3.4 4.1.1 + _ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@GLIBCXX_3.4 4.1.1 + _ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@GLIBCXX_3.4.17 4.7 + _ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@GLIBCXX_3.4.17 4.7 + _ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@GLIBCXX_3.4.17 4.7 + _ZN11__gnu_debug30_Safe_unordered_container_base7_M_swapERS0_@GLIBCXX_3.4.17 4.7 + _ZN14__gnu_parallel9_Settings3getEv@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN14__gnu_parallel9_Settings3setERS0_@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx17__pool_alloc_base12_M_get_mutexEv@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE4fileEv@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE4syncEv@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE4syncEv@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE5uflowEv@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE5uflowEv@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE8overflowEi@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE9pbackfailEi@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE9underflowEv@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC1EOS3_@GLIBCXX_3.4.21 5 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC1EP8_IO_FILE@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC2EOS3_@GLIBCXX_3.4.21 5 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEC2EP8_IO_FILE@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEaSEOS3_@GLIBCXX_3.4.21 5 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE4fileEv@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE4syncEv@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE5uflowEv@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE8overflowEj@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE9pbackfailEj@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE9underflowEv@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC1EOS3_@GLIBCXX_3.4.21 5 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC1EP8_IO_FILE@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC2EOS3_@GLIBCXX_3.4.21 5 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEC2EP8_IO_FILE@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEaSEOS3_@GLIBCXX_3.4.21 5 + _ZN9__gnu_cxx27__verbose_terminate_handlerEv@CXXABI_1.3 4.1.1 + _ZN9__gnu_cxx6__poolILb0EE10_M_destroyEv@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb0EE13_M_initializeEv@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE10_M_destroyEv@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE13_M_initializeEPFvPvE@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE13_M_initializeEv@GLIBCXX_3.4.6 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE16_M_get_thread_idEv@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE21_M_destroy_thread_keyEPv@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx9__freeresEv@CXXABI_1.3.10 6 + _ZN9__gnu_cxx9free_list8_M_clearEv@GLIBCXX_3.4.4 4.1.1 + _ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv117__pbase_type_info10__do_catchEPKSt9type_infoPPvj@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv117__pbase_type_info15__pointer_catchEPKS0_PPvj@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv119__pointer_type_info14__is_pointer_pEv@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv119__pointer_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv120__function_type_info15__is_function_pEv@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv129__pointer_to_member_type_info15__pointer_catchEPKNS_17__pbase_type_infoEPPvj@CXXABI_1.3 4.1.1 + _ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE@GLIBCXX_3.4 4.1.1 + _ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc@GLIBCXX_3.4 4.1.1 + _ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_@GLIBCXX_3.4 4.1.1 + _ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc@GLIBCXX_3.4 4.1.1 + _ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc@GLIBCXX_3.4 4.1.1 + _ZNK11__gnu_debug16_Error_formatter17_M_get_max_lengthEv@GLIBCXX_3.4.10 4.3 + _ZNK11__gnu_debug16_Error_formatter8_M_errorEv@GLIBCXX_3.4 4.1.1 + _ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv@GLIBCXX_3.4 4.1.1 + _ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4.5 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13get_allocatorEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE3endEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4backEv@GLIBCXX_3.4.15 4.6 + _ZNKSbIwSt11char_traitsIwESaIwEE4cendEv@GLIBCXX_3.4.14 4.5 + _ZNKSbIwSt11char_traitsIwESaIwEE4dataEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4rendEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4sizeEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5beginEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5crendEv@GLIBCXX_3.4.14 4.5 + _ZNKSbIwSt11char_traitsIwESaIwEE5c_strEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5emptyEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5frontEv@GLIBCXX_3.4.15 4.6 + _ZNKSbIwSt11char_traitsIwESaIwEE6_M_repEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE6cbeginEv@GLIBCXX_3.4.14 4.5 + _ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7_M_dataEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7_M_iendEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7crbeginEv@GLIBCXX_3.4.14 4.5 + _ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE9_M_ibeginEv@GLIBCXX_3.4 4.1.1 + _ZNKSi6gcountEv@GLIBCXX_3.4 4.1.1 + _ZNKSi6sentrycvbEv@GLIBCXX_3.4 4.1.1 + _ZNKSo6sentrycvbEv@GLIBCXX_3.4 4.1.1 + _ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4.5 4.1.1 + _ZNKSs13get_allocatorEv@GLIBCXX_3.4 4.1.1 + _ZNKSs3endEv@GLIBCXX_3.4 4.1.1 + _ZNKSs4_Rep12_M_is_leakedEv@GLIBCXX_3.4 4.1.1 + _ZNKSs4_Rep12_M_is_sharedEv@GLIBCXX_3.4 4.1.1 + _ZNKSs4backEv@GLIBCXX_3.4.15 4.6 + _ZNKSs4cendEv@GLIBCXX_3.4.14 4.5 + _ZNKSs4dataEv@GLIBCXX_3.4 4.1.1 + _ZNKSs4rendEv@GLIBCXX_3.4 4.1.1 + _ZNKSs4sizeEv@GLIBCXX_3.4 4.1.1 + _ZNKSs5beginEv@GLIBCXX_3.4 4.1.1 + _ZNKSs5c_strEv@GLIBCXX_3.4 4.1.1 + _ZNKSs5crendEv@GLIBCXX_3.4.14 4.5 + _ZNKSs5emptyEv@GLIBCXX_3.4 4.1.1 + _ZNKSs5frontEv@GLIBCXX_3.4.15 4.6 + _ZNKSs6_M_repEv@GLIBCXX_3.4 4.1.1 + _ZNKSs6cbeginEv@GLIBCXX_3.4.14 4.5 + _ZNKSs6lengthEv@GLIBCXX_3.4 4.1.1 + _ZNKSs6rbeginEv@GLIBCXX_3.4 4.1.1 + _ZNKSs7_M_dataEv@GLIBCXX_3.4 4.1.1 + _ZNKSs7_M_iendEv@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareERKSs@GLIBCXX_3.4 4.1.1 + _ZNKSs7crbeginEv@GLIBCXX_3.4.14 4.5 + _ZNKSs8capacityEv@GLIBCXX_3.4 4.1.1 + _ZNKSs8max_sizeEv@GLIBCXX_3.4 4.1.1 + _ZNKSs9_M_ibeginEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10bad_typeid4whatEv@GLIBCXX_3.4.9 4.2.1 + _ZNKSt10error_code23default_error_conditionEv@GLIBCXX_3.4.11 4.4.0 + _ZNKSt10istrstream5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10lock_error4whatEv@GLIBCXX_3.4.11 4.4.0 + _ZNKSt10moneypunctIcLb0EE10neg_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE10pos_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE11curr_symbolEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE11do_groupingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE11frac_digitsEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE13decimal_pointEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE13do_neg_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE13do_pos_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE13negative_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE13positive_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE13thousands_sepEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE14do_curr_symbolEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE14do_frac_digitsEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE16do_decimal_pointEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE16do_negative_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE16do_positive_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE16do_thousands_sepEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb0EE8groupingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE10neg_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE10pos_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE11curr_symbolEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE11do_groupingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE11frac_digitsEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE13decimal_pointEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE13do_neg_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE13do_pos_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE13negative_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE13positive_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE13thousands_sepEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE14do_curr_symbolEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE14do_frac_digitsEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE16do_decimal_pointEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE16do_negative_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE16do_positive_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE16do_thousands_sepEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIcLb1EE8groupingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE10neg_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE10pos_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE11curr_symbolEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE11do_groupingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE11frac_digitsEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE13decimal_pointEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE13do_neg_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE13do_pos_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE13negative_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE13positive_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE13thousands_sepEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE14do_curr_symbolEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE14do_frac_digitsEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE16do_decimal_pointEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE16do_negative_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE16do_positive_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE16do_thousands_sepEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb0EE8groupingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE10neg_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE10pos_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE11curr_symbolEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE11do_groupingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE11frac_digitsEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE13decimal_pointEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE13do_neg_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE13do_pos_formatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE13negative_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE13positive_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE13thousands_sepEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE14do_curr_symbolEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE14do_frac_digitsEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE16do_decimal_pointEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE16do_negative_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE16do_positive_signEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE16do_thousands_sepEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10moneypunctIwLb1EE8groupingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10ostrstream5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt10ostrstream6pcountEv@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE15_M_am_pm_formatEPKc@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE15_M_date_formatsEPPKc@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE15_M_time_formatsEPPKc@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE19_M_days_abbreviatedEPPKc@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE20_M_date_time_formatsEPPKc@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE21_M_months_abbreviatedEPPKc@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE7_M_daysEPPKc@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE8_M_am_pmEPPKc@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE9_M_monthsEPPKc@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE15_M_am_pm_formatEPKw@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE15_M_date_formatsEPPKw@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE15_M_time_formatsEPPKw@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE19_M_days_abbreviatedEPPKw@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE20_M_date_time_formatsEPPKw@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE21_M_months_abbreviatedEPPKw@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE7_M_daysEPPKw@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE8_M_am_pmEPPKw@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE9_M_monthsEPPKw@GLIBCXX_3.4 4.1.1 + _ZNKSt11logic_error4whatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt12__basic_fileIcE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNKSt12bad_weak_ptr4whatEv@GLIBCXX_3.4.15 4.6 + _ZNKSt12future_error4whatEv@GLIBCXX_3.4.14 4.5 + _ZNKSt12strstreambuf6pcountEv@GLIBCXX_3.4 4.1.1 + _ZNKSt13bad_exception4whatEv@GLIBCXX_3.4.9 4.2.1 + _ZNKSt13basic_filebufIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNKSt13basic_filebufIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNKSt13basic_fstreamIcSt11char_traitsIcEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4.5 4.1.1 + _ZNKSt13basic_fstreamIwSt11char_traitsIwEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4.5 4.1.1 + _ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@GLIBCXX_3.4 4.1.1 + _ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@GLIBCXX_3.4 4.1.1 + _ZNKSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@GLIBCXX_3.4 4.1.1 + _ZNKSt13runtime_error4whatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4.5 4.1.1 + _ZNKSt14basic_ifstreamIwSt11char_traitsIwEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4.5 4.1.1 + _ZNKSt14basic_ofstreamIcSt11char_traitsIcEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4.5 4.1.1 + _ZNKSt14basic_ofstreamIwSt11char_traitsIwEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4.5 4.1.1 + _ZNKSt14error_category10equivalentERKSt10error_codei@GLIBCXX_3.4.11 4.4.0 + _ZNKSt14error_category10equivalentEiRKSt15error_condition@GLIBCXX_3.4.11 4.4.0 + _ZNKSt14error_category23default_error_conditionEi@GLIBCXX_3.4.11 4.4.0 + _ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIwSt11char_traitsIwEE4gptrEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIwSt11char_traitsIwEE4pptrEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIwSt11char_traitsIwEE5ebackEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIwSt11char_traitsIwEE5egptrEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIwSt11char_traitsIwEE5epptrEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIwSt11char_traitsIwEE5pbaseEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@GLIBCXX_3.4 4.1.1 + _ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@GLIBCXX_3.4 4.1.1 + _ZNKSt16bad_array_length4whatEv@CXXABI_1.3.8 4.9 + _ZNKSt17bad_function_call4whatEv@GLIBCXX_3.4.18 4.8 + _ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@GLIBCXX_3.4 4.1.1 + _ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@GLIBCXX_3.4 4.1.1 + _ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt19__codecvt_utf8_baseIDiE10do_unshiftER11__mbstate_tPcS3_RS3_@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDiE11do_encodingEv@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDiE13do_max_lengthEv@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDiE16do_always_noconvEv@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDiE5do_inER11__mbstate_tPKcS4_RS4_PDiS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDiE6do_outER11__mbstate_tPKDiS4_RS4_PcS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDsE10do_unshiftER11__mbstate_tPcS3_RS3_@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDsE11do_encodingEv@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDsE13do_max_lengthEv@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDsE16do_always_noconvEv@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDsE5do_inER11__mbstate_tPKcS4_RS4_PDsS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIDsE6do_outER11__mbstate_tPKDsS4_RS4_PcS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIwE10do_unshiftER11__mbstate_tPcS3_RS3_@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIwE11do_encodingEv@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIwE13do_max_lengthEv@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIwE16do_always_noconvEv@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIwE5do_inER11__mbstate_tPKcS4_RS4_PwS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt19__codecvt_utf8_baseIwE6do_outER11__mbstate_tPKwS4_RS4_PcS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@GLIBCXX_3.4 4.1.1 + _ZNKSt19basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@GLIBCXX_3.4 4.1.1 + _ZNKSt19basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@GLIBCXX_3.4 4.1.1 + _ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@GLIBCXX_3.4 4.1.1 + _ZNKSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt20__codecvt_utf16_baseIDiE10do_unshiftER11__mbstate_tPcS3_RS3_@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDiE11do_encodingEv@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDiE13do_max_lengthEv@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDiE16do_always_noconvEv@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDiE5do_inER11__mbstate_tPKcS4_RS4_PDiS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDiE6do_outER11__mbstate_tPKDiS4_RS4_PcS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDsE10do_unshiftER11__mbstate_tPcS3_RS3_@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDsE11do_encodingEv@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDsE13do_max_lengthEv@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDsE16do_always_noconvEv@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDsE5do_inER11__mbstate_tPKcS4_RS4_PDsS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIDsE6do_outER11__mbstate_tPKDsS4_RS4_PcS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIwE10do_unshiftER11__mbstate_tPcS3_RS3_@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIwE11do_encodingEv@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIwE13do_max_lengthEv@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIwE16do_always_noconvEv@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIwE5do_inER11__mbstate_tPKcS4_RS4_PwS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt20__codecvt_utf16_baseIwE6do_outER11__mbstate_tPKwS4_RS4_PcS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt20bad_array_new_length4whatEv@CXXABI_1.3.8 4.9 + _ZNKSt25__codecvt_utf8_utf16_baseIDiE10do_unshiftER11__mbstate_tPcS3_RS3_@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDiE11do_encodingEv@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDiE13do_max_lengthEv@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDiE16do_always_noconvEv@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDiE5do_inER11__mbstate_tPKcS4_RS4_PDiS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDiE6do_outER11__mbstate_tPKDiS4_RS4_PcS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDsE10do_unshiftER11__mbstate_tPcS3_RS3_@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDsE11do_encodingEv@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDsE13do_max_lengthEv@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDsE16do_always_noconvEv@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDsE5do_inER11__mbstate_tPKcS4_RS4_PDsS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIDsE6do_outER11__mbstate_tPKDsS4_RS4_PcS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIwE10do_unshiftER11__mbstate_tPcS3_RS3_@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIwE11do_encodingEv@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIwE13do_max_lengthEv@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIwE16do_always_noconvEv@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIwE5do_inER11__mbstate_tPKcS4_RS4_PwS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt25__codecvt_utf8_utf16_baseIwE6do_outER11__mbstate_tPKwS4_RS4_PcS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt3_V214error_category10_M_messageEi@GLIBCXX_3.4.21 5 + _ZNKSt3_V214error_category10equivalentERKSt10error_codei@GLIBCXX_3.4.21 5 + _ZNKSt3_V214error_category10equivalentEiRKSt15error_condition@GLIBCXX_3.4.21 5 + _ZNKSt3_V214error_category23default_error_conditionEi@GLIBCXX_3.4.21 5 + _ZNKSt3tr14hashIRKSbIwSt11char_traitsIwESaIwEEEclES6_@GLIBCXX_3.4.10 4.3 + _ZNKSt3tr14hashIRKSsEclES2_@GLIBCXX_3.4.10 4.3 + _ZNKSt3tr14hashISbIwSt11char_traitsIwESaIwEEEclES4_@GLIBCXX_3.4.10 4.3 + _ZNKSt3tr14hashISsEclESs@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIRKSbIwSt11char_traitsIwESaIwEEEclES5_@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIRKSsEclES1_@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashISbIwSt11char_traitsIwESaIwEEEclES3_@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashISsEclESs@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashISt10error_codeEclES0_@GLIBCXX_3.4.11 4.4.0 + _ZNKSt5ctypeIcE10do_tolowerEPcPKc@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIcE10do_tolowerEc@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIcE10do_toupperEPcPKc@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIcE10do_toupperEc@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIcE13_M_widen_initEv@GLIBCXX_3.4.11 4.4.0 + _ZNKSt5ctypeIcE14_M_narrow_initEv@GLIBCXX_3.4.11 4.4.0 + _ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIcE8do_widenEc@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIcE9do_narrowEcc@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE10do_tolowerEPwPKw@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE10do_tolowerEw@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE10do_toupperEPwPKw@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE10do_toupperEw@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE19_M_convert_to_wmaskEt@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE5do_isEPKwS2_Pt@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE5do_isEtw@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE8do_widenEc@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@GLIBCXX_3.4 4.1.1 + _ZNKSt5ctypeIwE9do_narrowEwc@GLIBCXX_3.4 4.1.1 + _ZNKSt6locale2id5_M_idEv@GLIBCXX_3.4 4.1.1 + _ZNKSt6locale4nameEv@GLIBCXX_3.4 4.1.1 + _ZNKSt6localeeqERKS_@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIDic11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDic11__mbstate_tE11do_encodingEv@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDic11__mbstate_tE13do_max_lengthEv@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDic11__mbstate_tE16do_always_noconvEv@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDic11__mbstate_tE5do_inERS0_PKcS4_RS4_PDiS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDic11__mbstate_tE6do_outERS0_PKDiS4_RS4_PcS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDsc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDsc11__mbstate_tE11do_encodingEv@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDsc11__mbstate_tE13do_max_lengthEv@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDsc11__mbstate_tE16do_always_noconvEv@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDsc11__mbstate_tE5do_inERS0_PKcS4_RS4_PDsS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIDsc11__mbstate_tE6do_outERS0_PKDsS4_RS4_PcS6_RS6_@GLIBCXX_3.4.21 5 + _ZNKSt7codecvtIcc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIcc11__mbstate_tE11do_encodingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIcc11__mbstate_tE13do_max_lengthEv@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIcc11__mbstate_tE16do_always_noconvEv@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIcc11__mbstate_tE5do_inERS0_PKcS4_RS4_PcS6_RS6_@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIcc11__mbstate_tE6do_outERS0_PKcS4_RS4_PcS6_RS6_@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIwc11__mbstate_tE10do_unshiftERS0_PcS3_RS3_@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIwc11__mbstate_tE16do_always_noconvEv@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIcE10_M_compareEPKcS2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIcE12do_transformEPKcS2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIcE4hashEPKcS2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIcE7compareEPKcS2_S2_S2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIcE7do_hashEPKcS2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIcE9transformEPKcS2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIwE10_M_compareEPKwS2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIwE12do_transformEPKwS2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIwE4hashEPKwS2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIwE7compareEPKwS2_S2_S2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIwE7do_hashEPKwS2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIwE9transformEPKwS2_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPKv@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecb@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecd@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basece@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecl@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecx@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecb@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecd@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basece@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecl@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecm@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecx@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecy@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES3_S3_RSt8ios_basewT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES3_S3_RSt8ios_basewT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES3_S3_RSt8ios_basewT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES3_S3_RSt8ios_basewcT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIeEES3_S3_RSt8ios_basewcT_@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPKv@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewb@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewd@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewe@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewl@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewx@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@GLIBCXX_3.4 4.1.1 + _ZNKSt8bad_cast4whatEv@GLIBCXX_3.4.9 4.2.1 + _ZNKSt8ios_base7failure4whatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIcE18_M_convert_to_charERKSs@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIcE20_M_convert_from_charEPc@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIcE3getEiiiRKSs@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIcE4openERKSsRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIcE4openERKSsRKSt6localePKc@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIcE5closeEi@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIcE6do_getEiiiRKSs@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIcE7do_openERKSsRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIcE8do_closeEi@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIwE18_M_convert_to_charERKSbIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIwE20_M_convert_from_charEPc@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIwE3getEiiiRKSbIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIwE4openERKSsRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIwE4openERKSsRKSt6localePKc@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIwE5closeEi@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIwE7do_openERKSsRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNKSt8messagesIwE8do_closeEi@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIcE11do_groupingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIcE11do_truenameEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIcE12do_falsenameEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIcE13decimal_pointEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIcE13thousands_sepEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIcE16do_decimal_pointEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIcE16do_thousands_sepEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIcE8groupingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIcE8truenameEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIcE9falsenameEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIwE11do_groupingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIwE11do_truenameEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIwE12do_falsenameEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIwE13decimal_pointEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIwE13thousands_sepEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIwE16do_decimal_pointEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIwE16do_thousands_sepEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIwE8groupingEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIwE8truenameEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8numpunctIwE9falsenameEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKcSC_@GLIBCXX_3.4.21 5 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc@GLIBCXX_3.4.21 5 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmPKwSC_@GLIBCXX_3.4.21 5 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tmcc@GLIBCXX_3.4.21 5 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmPKcSB_@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@GLIBCXX_3.4 4.1.1 + _ZNKSt9bad_alloc4whatEv@GLIBCXX_3.4.9 4.2.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEE10exceptionsEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEE3tieEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEE4fillEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEE6narrowEcc@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv@GLIBCXX_3.4.21 5 + _ZNKSt9basic_iosIcSt11char_traitsIcEEntEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEE10exceptionsEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEE3badEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEE3eofEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEE3tieEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEE4failEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEE4fillEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEE4goodEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEE5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEE5widenEc@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEE6narrowEwc@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEE7rdstateEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEEcvPvEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9basic_iosIwSt11char_traitsIwEEcvbEv@GLIBCXX_3.4.21 5 + _ZNKSt9basic_iosIwSt11char_traitsIwEEntEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9exception4whatEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSbIwS2_SaIwEE@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE@GLIBCXX_3.4 4.1.1 + _ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE@GLIBCXX_3.4 4.1.1 + _ZNKSt9strstream5rdbufEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9strstream6pcountEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9type_info10__do_catchEPKS_PPvj@GLIBCXX_3.4 4.1.1 + _ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv@GLIBCXX_3.4 4.1.1 + _ZNKSt9type_info14__is_pointer_pEv@GLIBCXX_3.4 4.1.1 + _ZNKSt9type_info15__is_function_pEv@GLIBCXX_3.4 4.1.1 + _ZNSaIcEC1ERKS_@GLIBCXX_3.4 4.1.1 + _ZNSaIcEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSaIcEC2ERKS_@GLIBCXX_3.4 4.1.1 + _ZNSaIcEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSaIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSaIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSaIwEC1ERKS_@GLIBCXX_3.4 4.1.1 + _ZNSaIwEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSaIwEC2ERKS_@GLIBCXX_3.4 4.1.1 + _ZNSaIwEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSaIwED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSaIwED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIN9__gnu_cxx17__normal_iteratorIPwS2_EEEES6_T_S8_RKS1_St20forward_iterator_tag@GLIBCXX_3.4.14 4.5 + _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPKwEEPwT_S7_RKS1_St20forward_iterator_tag@GLIBCXX_3.4.14 4.5 + _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPwEES4_T_S5_RKS1_St20forward_iterator_tag@GLIBCXX_3.4.14 4.5 + _ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS2_EES8_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS3_S2_EES6_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS5_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS3_S3_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE13shrink_to_fitEv@GLIBCXX_3.4.14 4.5 + _ZNSbIwSt11char_traitsIwESaIwEE3endEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_disposeERKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refdataEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep12_S_empty_repEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep13_M_set_leakedEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep15_M_set_sharableEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep7_M_grabERKS1_S5_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4backEv@GLIBCXX_3.4.15 4.6 + _ZNSbIwSt11char_traitsIwESaIwEE4nposE@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4rendEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE5beginEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE5clearEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EE@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE5frontEv@GLIBCXX_3.4.15 4.6 + _ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendESt16initializer_listIwE@GLIBCXX_3.4.11 4.4.0 + _ZNSbIwSt11char_traitsIwESaIwEE6assignEOS2_@GLIBCXX_3.4.14 4.5 + _ZNSbIwSt11char_traitsIwESaIwEE6assignEPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignESt16initializer_listIwE@GLIBCXX_3.4.11 4.4.0 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EESt16initializer_listIwE@GLIBCXX_3.4.11 4.4.0 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6rbeginEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_dataEPw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_leakEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_NS4_IPKwS2_EES9_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwS8_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_RKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S5_S5_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_S6_S6_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_St16initializer_listIwE@GLIBCXX_3.4.11 4.4.0 + _ZNSbIwSt11char_traitsIwESaIwEE8pop_backEv@GLIBCXX_3.4.17 4.7 + _ZNSbIwSt11char_traitsIwESaIwEE9push_backEw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1EOS2_@GLIBCXX_3.4.14 4.5 + _ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@GLIBCXX_3.4.15 4.6 + _ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@GLIBCXX_3.4.11 4.4.0 + _ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@GLIBCXX_3.4.11 4.4.0 + _ZNSbIwSt11char_traitsIwESaIwEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2IPKwEET_S6_RKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2IPwEET_S5_RKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEaSEOS2_@GLIBCXX_3.4.14 4.5 + _ZNSbIwSt11char_traitsIwESaIwEEaSEPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEaSESt16initializer_listIwE@GLIBCXX_3.4.11 4.4.0 + _ZNSbIwSt11char_traitsIwESaIwEEaSEw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEpLEPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEpLERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEpLESt16initializer_listIwE@GLIBCXX_3.4.11 4.4.0 + _ZNSbIwSt11char_traitsIwESaIwEEpLEw@GLIBCXX_3.4 4.1.1 + _ZNSd4swapERSd@GLIBCXX_3.4.21 5 + _ZNSdC1EOSd@GLIBCXX_3.4.21 5 + _ZNSdC1EPSt15basic_streambufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZNSdC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSdC2EOSd@GLIBCXX_3.4.21 5 + _ZNSdC2EPSt15basic_streambufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZNSdC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSdD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSdD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSdD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSdaSEOSd@GLIBCXX_3.4.21 5 + _ZNSi10_M_extractIPvEERSiRT_@GLIBCXX_3.4.9 4.2.1 + _ZNSi10_M_extractIbEERSiRT_@GLIBCXX_3.4.9 4.2.1 + _ZNSi10_M_extractIdEERSiRT_@GLIBCXX_3.4.9 4.2.1 + _ZNSi10_M_extractIeEERSiRT_@GLIBCXX_3.4.9 4.2.1 + _ZNSi10_M_extractIfEERSiRT_@GLIBCXX_3.4.9 4.2.1 + _ZNSi10_M_extractIjEERSiRT_@GLIBCXX_3.4.9 4.2.1 + _ZNSi10_M_extractIlEERSiRT_@GLIBCXX_3.4.9 4.2.1 + _ZNSi10_M_extractImEERSiRT_@GLIBCXX_3.4.9 4.2.1 + _ZNSi10_M_extractItEERSiRT_@GLIBCXX_3.4.9 4.2.1 + _ZNSi10_M_extractIxEERSiRT_@GLIBCXX_3.4.9 4.2.1 + _ZNSi10_M_extractIyEERSiRT_@GLIBCXX_3.4.9 4.2.1 + _ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@GLIBCXX_3.4 4.1.1 + _ZNSi3getERc@GLIBCXX_3.4 4.1.1 + _ZNSi3getEv@GLIBCXX_3.4 4.1.1 + _ZNSi4peekEv@GLIBCXX_3.4 4.1.1 + _ZNSi4swapERSi@GLIBCXX_3.4.21 5 + _ZNSi4syncEv@GLIBCXX_3.4 4.1.1 + _ZNSi5seekgESt4fposI11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZNSi5tellgEv@GLIBCXX_3.4 4.1.1 + _ZNSi5ungetEv@GLIBCXX_3.4 4.1.1 + _ZNSi6ignoreEv@GLIBCXX_3.4 4.1.1 + _ZNSi6ignoreEv@GLIBCXX_3.4.5 4.1.1 + _ZNSi6sentryC1ERSib@GLIBCXX_3.4 4.1.1 + _ZNSi6sentryC2ERSib@GLIBCXX_3.4 4.1.1 + _ZNSi7putbackEc@GLIBCXX_3.4 4.1.1 + _ZNSiC1EOSi@GLIBCXX_3.4.21 5 + _ZNSiC1EPSt15basic_streambufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZNSiC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSiC2EOSi@GLIBCXX_3.4.21 5 + _ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZNSiC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSiD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSiD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSiD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSiaSEOSi@GLIBCXX_3.4.21 5 + _ZNSirsEPFRSiS_E@GLIBCXX_3.4 4.1.1 + _ZNSirsEPFRSt8ios_baseS0_E@GLIBCXX_3.4 4.1.1 + _ZNSirsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@GLIBCXX_3.4 4.1.1 + _ZNSirsEPSt15basic_streambufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZNSirsERPv@GLIBCXX_3.4 4.1.1 + _ZNSirsERb@GLIBCXX_3.4 4.1.1 + _ZNSirsERd@GLIBCXX_3.4 4.1.1 + _ZNSirsERe@GLIBCXX_3.4 4.1.1 + _ZNSirsERf@GLIBCXX_3.4 4.1.1 + _ZNSirsERi@GLIBCXX_3.4 4.1.1 + _ZNSirsERj@GLIBCXX_3.4 4.1.1 + _ZNSirsERl@GLIBCXX_3.4 4.1.1 + _ZNSirsERm@GLIBCXX_3.4 4.1.1 + _ZNSirsERs@GLIBCXX_3.4 4.1.1 + _ZNSirsERt@GLIBCXX_3.4 4.1.1 + _ZNSirsERx@GLIBCXX_3.4 4.1.1 + _ZNSirsERy@GLIBCXX_3.4 4.1.1 + _ZNSo3putEc@GLIBCXX_3.4 4.1.1 + _ZNSo4swapERSo@GLIBCXX_3.4.21 5 + _ZNSo5flushEv@GLIBCXX_3.4 4.1.1 + _ZNSo5seekpESt4fposI11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZNSo5tellpEv@GLIBCXX_3.4 4.1.1 + _ZNSo6sentryC1ERSo@GLIBCXX_3.4 4.1.1 + _ZNSo6sentryC2ERSo@GLIBCXX_3.4 4.1.1 + _ZNSo6sentryD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSo6sentryD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSo9_M_insertIPKvEERSoT_@GLIBCXX_3.4.9 4.2.1 + _ZNSo9_M_insertIbEERSoT_@GLIBCXX_3.4.9 4.2.1 + _ZNSo9_M_insertIdEERSoT_@GLIBCXX_3.4.9 4.2.1 + _ZNSo9_M_insertIeEERSoT_@GLIBCXX_3.4.9 4.2.1 + _ZNSo9_M_insertIlEERSoT_@GLIBCXX_3.4.9 4.2.1 + _ZNSo9_M_insertImEERSoT_@GLIBCXX_3.4.9 4.2.1 + _ZNSo9_M_insertIxEERSoT_@GLIBCXX_3.4.9 4.2.1 + _ZNSo9_M_insertIyEERSoT_@GLIBCXX_3.4.9 4.2.1 + _ZNSoC1EOSo@GLIBCXX_3.4.21 5 + _ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZNSoC1ERSd@GLIBCXX_3.4.21 5 + _ZNSoC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSoC2EOSo@GLIBCXX_3.4.21 5 + _ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZNSoC2ERSd@GLIBCXX_3.4.21 5 + _ZNSoC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSoD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSoD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSoD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSoaSEOSo@GLIBCXX_3.4.21 5 + _ZNSolsEPFRSoS_E@GLIBCXX_3.4 4.1.1 + _ZNSolsEPFRSt8ios_baseS0_E@GLIBCXX_3.4 4.1.1 + _ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E@GLIBCXX_3.4 4.1.1 + _ZNSolsEPKv@GLIBCXX_3.4 4.1.1 + _ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZNSolsEb@GLIBCXX_3.4 4.1.1 + _ZNSolsEd@GLIBCXX_3.4 4.1.1 + _ZNSolsEe@GLIBCXX_3.4 4.1.1 + _ZNSolsEf@GLIBCXX_3.4 4.1.1 + _ZNSolsEi@GLIBCXX_3.4 4.1.1 + _ZNSolsEj@GLIBCXX_3.4 4.1.1 + _ZNSolsEl@GLIBCXX_3.4 4.1.1 + _ZNSolsEm@GLIBCXX_3.4 4.1.1 + _ZNSolsEs@GLIBCXX_3.4 4.1.1 + _ZNSolsEt@GLIBCXX_3.4 4.1.1 + _ZNSolsEx@GLIBCXX_3.4 4.1.1 + _ZNSolsEy@GLIBCXX_3.4 4.1.1 + _ZNSs12_Alloc_hiderC1EPcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs12_Alloc_hiderC2EPcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs12_M_leak_hardEv@GLIBCXX_3.4 4.1.1 + _ZNSs12_S_constructIN9__gnu_cxx17__normal_iteratorIPcSsEEEES2_T_S4_RKSaIcESt20forward_iterator_tag@GLIBCXX_3.4.14 4.5 + _ZNSs12_S_constructIPKcEEPcT_S3_RKSaIcESt20forward_iterator_tag@GLIBCXX_3.4.14 4.5 + _ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag@GLIBCXX_3.4.14 4.5 + _ZNSs12_S_empty_repEv@GLIBCXX_3.4 4.1.1 + _ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_@GLIBCXX_3.4 4.1.1 + _ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_@GLIBCXX_3.4 4.1.1 + _ZNSs13_S_copy_charsEPcPKcS1_@GLIBCXX_3.4 4.1.1 + _ZNSs13_S_copy_charsEPcS_S_@GLIBCXX_3.4 4.1.1 + _ZNSs13shrink_to_fitEv@GLIBCXX_3.4.14 4.5 + _ZNSs3endEv@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep10_M_destroyERKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep10_M_disposeERKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep10_M_refcopyEv@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep10_M_refdataEv@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep11_S_max_sizeE@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep11_S_terminalE@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep12_S_empty_repEv@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep13_M_set_leakedEv@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep15_M_set_sharableEv@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep20_S_empty_rep_storageE@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep7_M_grabERKSaIcES2_@GLIBCXX_3.4 4.1.1 + _ZNSs4backEv@GLIBCXX_3.4.15 4.6 + _ZNSs4nposE@GLIBCXX_3.4 4.1.1 + _ZNSs4rendEv@GLIBCXX_3.4 4.1.1 + _ZNSs4swapERSs@GLIBCXX_3.4 4.1.1 + _ZNSs5beginEv@GLIBCXX_3.4 4.1.1 + _ZNSs5clearEv@GLIBCXX_3.4 4.1.1 + _ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@GLIBCXX_3.4 4.1.1 + _ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@GLIBCXX_3.4 4.1.1 + _ZNSs5frontEv@GLIBCXX_3.4.15 4.6 + _ZNSs6appendEPKc@GLIBCXX_3.4 4.1.1 + _ZNSs6appendERKSs@GLIBCXX_3.4 4.1.1 + _ZNSs6appendESt16initializer_listIcE@GLIBCXX_3.4.11 4.4.0 + _ZNSs6assignEOSs@GLIBCXX_3.4.14 4.5 + _ZNSs6assignEPKc@GLIBCXX_3.4 4.1.1 + _ZNSs6assignERKSs@GLIBCXX_3.4 4.1.1 + _ZNSs6assignESt16initializer_listIcE@GLIBCXX_3.4.11 4.4.0 + _ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEESt16initializer_listIcE@GLIBCXX_3.4.11 4.4.0 + _ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@GLIBCXX_3.4 4.1.1 + _ZNSs6rbeginEv@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_dataEPc@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_leakEv@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_St16initializer_listIcE@GLIBCXX_3.4.11 4.4.0 + _ZNSs8pop_backEv@GLIBCXX_3.4.17 4.7 + _ZNSs9push_backEc@GLIBCXX_3.4 4.1.1 + _ZNSsC1EOSs@GLIBCXX_3.4.14 4.5 + _ZNSsC1EPKcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1ERKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSsC1ESt16initializer_listIcERKSaIcE@GLIBCXX_3.4.11 4.4.0 + _ZNSsC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1IPKcEET_S2_RKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1IPcEET_S1_RKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2EOSs@GLIBCXX_3.4.15 4.6 + _ZNSsC2EPKcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2ERKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSsC2ESt16initializer_listIcERKSaIcE@GLIBCXX_3.4.11 4.4.0 + _ZNSsC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2IPKcEET_S2_RKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2IPcEET_S1_RKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSsD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSsaSEOSs@GLIBCXX_3.4.14 4.5 + _ZNSsaSEPKc@GLIBCXX_3.4 4.1.1 + _ZNSsaSERKSs@GLIBCXX_3.4 4.1.1 + _ZNSsaSESt16initializer_listIcE@GLIBCXX_3.4.11 4.4.0 + _ZNSsaSEc@GLIBCXX_3.4 4.1.1 + _ZNSspLEPKc@GLIBCXX_3.4 4.1.1 + _ZNSspLERKSs@GLIBCXX_3.4 4.1.1 + _ZNSspLESt16initializer_listIcE@GLIBCXX_3.4.11 4.4.0 + _ZNSspLEc@GLIBCXX_3.4 4.1.1 + _ZNSt10_Sp_lockerC1EPKv@GLIBCXX_3.4.21 5 + _ZNSt10_Sp_lockerC1EPKvS1_@GLIBCXX_3.4.21 5 + _ZNSt10_Sp_lockerC2EPKv@GLIBCXX_3.4.21 5 + _ZNSt10_Sp_lockerC2EPKvS1_@GLIBCXX_3.4.21 5 + _ZNSt10_Sp_lockerD1Ev@GLIBCXX_3.4.21 5 + _ZNSt10_Sp_lockerD2Ev@GLIBCXX_3.4.21 5 + _ZNSt10__num_base11_S_atoms_inE@GLIBCXX_3.4 4.1.1 + _ZNSt10__num_base12_S_atoms_outE@GLIBCXX_3.4 4.1.1 + _ZNSt10__num_base15_S_format_floatERKSt8ios_basePcc@GLIBCXX_3.4 4.1.1 + _ZNSt10bad_typeidD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10bad_typeidD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10bad_typeidD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10ctype_base5alnumE@GLIBCXX_3.4 4.1.1 + _ZNSt10ctype_base5alphaE@GLIBCXX_3.4 4.1.1 + _ZNSt10ctype_base5blankE@GLIBCXX_3.4.21 5 + _ZNSt10ctype_base5cntrlE@GLIBCXX_3.4 4.1.1 + _ZNSt10ctype_base5digitE@GLIBCXX_3.4 4.1.1 + _ZNSt10ctype_base5graphE@GLIBCXX_3.4 4.1.1 + _ZNSt10ctype_base5lowerE@GLIBCXX_3.4 4.1.1 + _ZNSt10ctype_base5printE@GLIBCXX_3.4 4.1.1 + _ZNSt10ctype_base5punctE@GLIBCXX_3.4 4.1.1 + _ZNSt10ctype_base5spaceE@GLIBCXX_3.4 4.1.1 + _ZNSt10ctype_base5upperE@GLIBCXX_3.4 4.1.1 + _ZNSt10ctype_base6xdigitE@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstream3strEv@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC1EPKc@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC1EPc@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC2EPKc@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC2EPc@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10money_base18_S_default_patternE@GLIBCXX_3.4 4.1.1 + _ZNSt10money_base20_S_construct_patternEccc@GLIBCXX_3.4 4.1.1 + _ZNSt10money_base8_S_atomsE@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EE4intlE@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EE4intlE@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EE4intlE@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EE4intlE@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10ostrstream3strEv@GLIBCXX_3.4 4.1.1 + _ZNSt10ostrstream6freezeEb@GLIBCXX_3.4 4.1.1 + _ZNSt10ostrstreamC1EPciSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt10ostrstreamC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10ostrstreamC2EPciSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt10ostrstreamC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10ostrstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10ostrstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt10ostrstreamD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwE23_M_initialize_timepunctEP15__locale_struct@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt11char_traitsIcE2eqERKcS2_@GLIBCXX_3.4 4.1.1 + _ZNSt11char_traitsIcE2eqERKcS2_@GLIBCXX_3.4.5 4.1.1 + _ZNSt11char_traitsIwE2eqERKwS2_@GLIBCXX_3.4 4.1.1 + _ZNSt11char_traitsIwE2eqERKwS2_@GLIBCXX_3.4.5 4.1.1 + _ZNSt11logic_errorC1EPKc@GLIBCXX_3.4.21 5 + _ZNSt11logic_errorC1ERKS_@GLIBCXX_3.4.21 5 + _ZNSt11logic_errorC1ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt11logic_errorC2EPKc@GLIBCXX_3.4.21 5 + _ZNSt11logic_errorC2ERKS_@GLIBCXX_3.4.21 5 + _ZNSt11logic_errorC2ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt11logic_errorD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt11logic_errorD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt11logic_errorD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt11logic_erroraSERKS_@GLIBCXX_3.4.21 5 + _ZNSt11range_errorC1EPKc@GLIBCXX_3.4.21 5 + _ZNSt11range_errorC1ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt11range_errorC2EPKc@GLIBCXX_3.4.21 5 + _ZNSt11range_errorC2ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt11range_errorD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt11range_errorD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt11range_errorD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt11regex_errorC1ENSt15regex_constants10error_typeE@GLIBCXX_3.4.20 4.9 + _ZNSt11regex_errorC2ENSt15regex_constants10error_typeE@GLIBCXX_3.4.21 5 + _ZNSt11regex_errorD0Ev@GLIBCXX_3.4.15 4.6 + _ZNSt11regex_errorD1Ev@GLIBCXX_3.4.15 4.6 + _ZNSt11regex_errorD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt12__basic_fileIcE2fdEv@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE4fileEv@GLIBCXX_3.4.1 4.1.1 + _ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE4syncEv@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE5closeEv@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE8sys_openEP8_IO_FILESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE9showmanycEv@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12bad_weak_ptrD0Ev@GLIBCXX_3.4.15 4.6 + _ZNSt12bad_weak_ptrD1Ev@GLIBCXX_3.4.15 4.6 + _ZNSt12bad_weak_ptrD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt12ctype_bynameIcED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12domain_errorC1EPKc@GLIBCXX_3.4.21 5 + _ZNSt12domain_errorC1ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt12domain_errorC2EPKc@GLIBCXX_3.4.21 5 + _ZNSt12domain_errorC2ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt12domain_errorD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12domain_errorD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12domain_errorD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt12future_errorD0Ev@GLIBCXX_3.4.14 4.5 + _ZNSt12future_errorD1Ev@GLIBCXX_3.4.14 4.5 + _ZNSt12future_errorD2Ev@GLIBCXX_3.4.14 4.5 + _ZNSt12length_errorC1EPKc@GLIBCXX_3.4.21 5 + _ZNSt12length_errorC1ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt12length_errorC2EPKc@GLIBCXX_3.4.21 5 + _ZNSt12length_errorC2ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt12length_errorD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12length_errorD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12length_errorD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt12out_of_rangeC1EPKc@GLIBCXX_3.4.21 5 + _ZNSt12out_of_rangeC1ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt12out_of_rangeC2EPKc@GLIBCXX_3.4.21 5 + _ZNSt12out_of_rangeC2ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt12out_of_rangeD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12out_of_rangeD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12out_of_rangeD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders2_1E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders2_2E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders2_3E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders2_4E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders2_5E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders2_6E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders2_7E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders2_8E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders2_9E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_10E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_11E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_12E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_13E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_14E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_15E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_16E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_17E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_18E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_19E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_20E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_21E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_22E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_23E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_24E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_25E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_26E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_27E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_28E@GLIBCXX_3.4.15 4.6 + _ZNSt12placeholders3_29E@GLIBCXX_3.4.15 4.6 + _ZNSt12strstreambuf3strEv@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf6freezeEb@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf7_M_freeEPc@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf8overflowEi@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf9pbackfailEi@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf9underflowEv@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt12system_errorD0Ev@GLIBCXX_3.4.11 4.4.0 + _ZNSt12system_errorD1Ev@GLIBCXX_3.4.11 4.4.0 + _ZNSt12system_errorD2Ev@GLIBCXX_3.4.11 4.4.0 + _ZNSt13bad_exceptionD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13bad_exceptionD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13bad_exceptionD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE14_M_get_ext_posER11__mbstate_t@GLIBCXX_3.4.15 4.6 + _ZNSt13basic_filebufIcSt11char_traitsIcEE15_M_create_pbackEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE16_M_destroy_pbackEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE19_M_terminate_outputEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE26_M_destroy_internal_bufferEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE27_M_allocate_internal_bufferEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt13basic_filebufIcSt11char_traitsIcEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_filebufIcSt11char_traitsIcEE4syncEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE5imbueERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE8overflowEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE9showmanycEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEEC1EOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEEC2EOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_filebufIcSt11char_traitsIcEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEEaSEOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_filebufIwSt11char_traitsIwEE14_M_get_ext_posER11__mbstate_t@GLIBCXX_3.4.15 4.6 + _ZNSt13basic_filebufIwSt11char_traitsIwEE15_M_create_pbackEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE16_M_destroy_pbackEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE19_M_terminate_outputEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE26_M_destroy_internal_bufferEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE27_M_allocate_internal_bufferEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt13basic_filebufIwSt11char_traitsIwEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_filebufIwSt11char_traitsIwEE4syncEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE5closeEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE5imbueERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE8overflowEj@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEj@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE9showmanycEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEEC1EOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_filebufIwSt11char_traitsIwEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEEC2EOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_filebufIwSt11char_traitsIwEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEEaSEOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_fstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt13basic_fstreamIcSt11char_traitsIcEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_fstreamIcSt11char_traitsIcEE5closeEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_fstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIcSt11char_traitsIcEEC1ERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt13basic_fstreamIcSt11char_traitsIcEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_fstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIcSt11char_traitsIcEEC2ERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt13basic_fstreamIcSt11char_traitsIcEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIcSt11char_traitsIcEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIcSt11char_traitsIcEEaSEOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_fstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt13basic_fstreamIwSt11char_traitsIwEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_fstreamIwSt11char_traitsIwEE5closeEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_fstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIwSt11char_traitsIwEEC1ERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt13basic_fstreamIwSt11char_traitsIwEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_fstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIwSt11char_traitsIwEEC2ERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt13basic_fstreamIwSt11char_traitsIwEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIwSt11char_traitsIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_fstreamIwSt11char_traitsIwEEaSEOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIPvEERS2_RT_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIbEERS2_RT_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIdEERS2_RT_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIeEERS2_RT_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIfEERS2_RT_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIjEERS2_RT_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIlEERS2_RT_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractImEERS2_RT_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractItEERS2_RT_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIxEERS2_RT_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIyEERS2_RT_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getERSt15basic_streambufIwS1_Ew@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getERw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE4peekEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_istreamIwSt11char_traitsIwEE4syncEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgESt4fposI11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@GLIBCXX_3.4.5 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC1ERS2_b@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6sentryC2ERS2_b@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE7putbackEw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEEC1EOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_istreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEEC2EOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_istreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEEaSEOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRS2_S3_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt8ios_baseS4_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsEPFRSt9basic_iosIwS1_ES5_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsEPSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERPv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERb@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERd@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERe@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERf@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERj@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERm@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERs@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERt@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERx@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERy@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpESt4fposI11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC1ERS2_@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryC2ERS2_@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIPKvEERS2_T_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIbEERS2_T_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIdEERS2_T_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIeEERS2_T_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIlEERS2_T_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertImEERS2_T_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIxEERS2_T_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIyEERS2_T_@GLIBCXX_3.4.9 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_ostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEEC1ERSt14basic_iostreamIwS1_E@GLIBCXX_3.4.21 5 + _ZNSt13basic_ostreamIwSt11char_traitsIwEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_ostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEEC2ERSt14basic_iostreamIwS1_E@GLIBCXX_3.4.21 5 + _ZNSt13basic_ostreamIwSt11char_traitsIwEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEEaSEOS2_@GLIBCXX_3.4.21 5 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRS2_S3_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt8ios_baseS4_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPFRSt9basic_iosIwS1_ES5_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPKv@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEPSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEf@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEj@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEs@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@GLIBCXX_3.4 4.1.1 + _ZNSt13random_device14_M_init_pretr1ERKSs@GLIBCXX_3.4.18 4.8 + _ZNSt13random_device16_M_getval_pretr1Ev@GLIBCXX_3.4.18 4.8 + _ZNSt13random_device7_M_finiEv@GLIBCXX_3.4.18 4.8 + _ZNSt13random_device7_M_initERKSs@GLIBCXX_3.4.18 4.8 + _ZNSt13random_device9_M_getvalEv@GLIBCXX_3.4.18 4.8 + _ZNSt13runtime_errorC1ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt13runtime_errorC2ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt13runtime_errorD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13runtime_errorD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt13runtime_errorD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2ERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEE5closeEv@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1ERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2ERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_iostreamIwSt11char_traitsIwEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_iostreamIwSt11char_traitsIwEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_iostreamIwSt11char_traitsIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2ERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openEPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEE5closeEv@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1ERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EPKcSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2ERKSsSt13_Ios_Openmode@GLIBCXX_3.4.13 4.4.2 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIcED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14error_categoryC1Ev@GLIBCXX_3.4.15 4.6 + _ZNSt14error_categoryC2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt14error_categoryD0Ev@GLIBCXX_3.4.15 4.6 + _ZNSt14error_categoryD1Ev@GLIBCXX_3.4.15 4.6 + _ZNSt14error_categoryD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt14numeric_limitsIDiE10has_denormE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE10is_boundedE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE10is_integerE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE11round_styleE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE12has_infinityE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIDiE12max_exponentE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE12min_exponentE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE13has_quiet_NaNE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE14is_specializedE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE14max_exponent10E@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE14min_exponent10E@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE15has_denorm_lossE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE15tinyness_beforeE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE17has_signaling_NaNE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE5radixE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE5trapsE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE6digitsE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE8digits10E@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE8is_exactE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE9is_iec559E@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE9is_moduloE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDiE9is_signedE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE10has_denormE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE10is_boundedE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE10is_integerE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE11round_styleE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE12has_infinityE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIDsE12max_exponentE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE12min_exponentE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE13has_quiet_NaNE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE14is_specializedE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE14max_exponent10E@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE14min_exponent10E@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE15has_denorm_lossE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE15tinyness_beforeE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE17has_signaling_NaNE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE5radixE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE5trapsE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE6digitsE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE8digits10E@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE8is_exactE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE9is_iec559E@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE9is_moduloE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIDsE9is_signedE@GLIBCXX_3.4.11 4.4.0 + _ZNSt14numeric_limitsIaE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIaE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIaE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIbE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIbE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIcE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIcE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIdE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIdE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIeE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIfE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIfE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIhE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIhE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIiE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIiE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIjE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIjE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIlE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIlE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsImE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsImE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIsE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIsE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsItE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsItE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIwE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIwE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIxE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIxE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt14numeric_limitsIyE12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt14numeric_limitsIyE9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt14overflow_errorC1EPKc@GLIBCXX_3.4.21 5 + _ZNSt14overflow_errorC1ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt14overflow_errorC2EPKc@GLIBCXX_3.4.21 5 + _ZNSt14overflow_errorC2ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt14overflow_errorD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14overflow_errorD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt14overflow_errorD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt15_List_node_base10_M_reverseEv@GLIBCXX_3.4.14 4.5 + _ZNSt15_List_node_base11_M_transferEPS_S0_@GLIBCXX_3.4.14 4.5 + _ZNSt15_List_node_base4hookEPS_@GLIBCXX_3.4 4.1.1 + _ZNSt15_List_node_base4swapERS_S0_@GLIBCXX_3.4 4.1.1 + _ZNSt15_List_node_base6unhookEv@GLIBCXX_3.4 4.1.1 + _ZNSt15_List_node_base7_M_hookEPS_@GLIBCXX_3.4.14 4.5 + _ZNSt15_List_node_base7reverseEv@GLIBCXX_3.4 4.1.1 + _ZNSt15_List_node_base8transferEPS_S0_@GLIBCXX_3.4 4.1.1 + _ZNSt15_List_node_base9_M_unhookEv@GLIBCXX_3.4.14 4.5 + _ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetcEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5sputcEc@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6snextcEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6stosscEv@GLIBCXX_3.4.10 4.3 + _ZNSt15basic_streambufIcSt11char_traitsIcEE7pubsyncEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE7sungetcEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE8in_availEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE8overflowEi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE9pbackfailEi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE9sputbackcEc@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE9underflowEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEEC1ERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEEC2ERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5gbumpEi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5pbumpEi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetcEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5sputcEw@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6sbumpcEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6snextcEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6stosscEv@GLIBCXX_3.4.10 4.3 + _ZNSt15basic_streambufIwSt11char_traitsIwEE7pubsyncEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE7sungetcEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE8in_availEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE9sputbackcEw@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEEC1ERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEEC2ERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEEaSERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE15_M_update_egptrEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9showmanycEv@GLIBCXX_3.4.6 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE15_M_update_egptrEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9showmanycEv@GLIBCXX_3.4.6 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIcED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15underflow_errorC1EPKc@GLIBCXX_3.4.21 5 + _ZNSt15underflow_errorC1ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt15underflow_errorC2EPKc@GLIBCXX_3.4.21 5 + _ZNSt15underflow_errorC2ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt15underflow_errorD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15underflow_errorD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt15underflow_errorD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt16__numpunct_cacheIcE8_M_cacheERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIcED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwE8_M_cacheERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt16bad_array_lengthD0Ev@CXXABI_1.3.8 4.9 + _ZNSt16bad_array_lengthD1Ev@CXXABI_1.3.8 4.9 + _ZNSt16bad_array_lengthD2Ev@CXXABI_1.3.8 4.9 + _ZNSt16invalid_argumentC1EPKc@GLIBCXX_3.4.21 5 + _ZNSt16invalid_argumentC1ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt16invalid_argumentC2EPKc@GLIBCXX_3.4.21 5 + _ZNSt16invalid_argumentC2ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt16invalid_argumentD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt16invalid_argumentD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt16invalid_argumentD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt17__timepunct_cacheIcE12_S_timezonesE@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwE12_S_timezonesE@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17bad_function_callD0Ev@GLIBCXX_3.4.15 4.6 + _ZNSt17bad_function_callD1Ev@GLIBCXX_3.4.15 4.6 + _ZNSt17bad_function_callD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt17moneypunct_bynameIcLb0EE4intlE@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EE4intlE@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EE4intlE@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EE4intlE@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb0EE8_M_cacheERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb0EED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb0EED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb0EED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EE8_M_cacheERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EE8_M_cacheERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EE8_M_cacheERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEE4swapERS3_@GLIBCXX_3.4.21 5 + _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1EOS3_@GLIBCXX_3.4.21 5 + _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2EOS3_@GLIBCXX_3.4.21 5 + _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEEaSEOS3_@GLIBCXX_3.4.21 5 + _ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEE4swapERS3_@GLIBCXX_3.4.21 5 + _ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1EOS3_@GLIBCXX_3.4.21 5 + _ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2EOS3_@GLIBCXX_3.4.21 5 + _ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt18basic_stringstreamIwSt11char_traitsIwESaIwEEaSEOS3_@GLIBCXX_3.4.21 5 + _ZNSt18condition_variable10notify_allEv@GLIBCXX_3.4.11 4.4.0 + _ZNSt18condition_variable10notify_oneEv@GLIBCXX_3.4.11 4.4.0 + _ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE@GLIBCXX_3.4.11 4.4.0 + _ZNSt18condition_variableC1Ev@GLIBCXX_3.4.11 4.4.0 + _ZNSt18condition_variableC2Ev@GLIBCXX_3.4.11 4.4.0 + _ZNSt18condition_variableD1Ev@GLIBCXX_3.4.11 4.4.0 + _ZNSt18condition_variableD2Ev@GLIBCXX_3.4.11 4.4.0 + _ZNSt19__codecvt_utf8_baseIDiED0Ev@GLIBCXX_3.4.21 5 + _ZNSt19__codecvt_utf8_baseIDiED1Ev@GLIBCXX_3.4.21 5 + _ZNSt19__codecvt_utf8_baseIDiED2Ev@GLIBCXX_3.4.21 5 + _ZNSt19__codecvt_utf8_baseIDsED0Ev@GLIBCXX_3.4.21 5 + _ZNSt19__codecvt_utf8_baseIDsED1Ev@GLIBCXX_3.4.21 5 + _ZNSt19__codecvt_utf8_baseIDsED2Ev@GLIBCXX_3.4.21 5 + _ZNSt19__codecvt_utf8_baseIwED0Ev@GLIBCXX_3.4.21 5 + _ZNSt19__codecvt_utf8_baseIwED1Ev@GLIBCXX_3.4.21 5 + _ZNSt19__codecvt_utf8_baseIwED2Ev@GLIBCXX_3.4.21 5 + _ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1EOS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2EOS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEE4swapERS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1EOS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2EOS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_istringstreamIwSt11char_traitsIwESaIwEEaSEOS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE4swapERS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1EOS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKSsSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2EOS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKSsSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEEaSEOS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKSbIwS1_S2_E@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE4swapERS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1EOS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKSbIwS1_S2_ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2EOS3_@GLIBCXX_3.4.21 5 + _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKSbIwS1_S2_ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEEaSEOS3_@GLIBCXX_3.4.21 5 + _ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@GLIBCXX_3.4 4.1.1 + _ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@GLIBCXX_3.4.5 4.1.1 + _ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv@GLIBCXX_3.4 4.1.1 + _ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv@GLIBCXX_3.4.5 4.1.1 + _ZNSt20__codecvt_utf16_baseIDiED0Ev@GLIBCXX_3.4.21 5 + _ZNSt20__codecvt_utf16_baseIDiED1Ev@GLIBCXX_3.4.21 5 + _ZNSt20__codecvt_utf16_baseIDiED2Ev@GLIBCXX_3.4.21 5 + _ZNSt20__codecvt_utf16_baseIDsED0Ev@GLIBCXX_3.4.21 5 + _ZNSt20__codecvt_utf16_baseIDsED1Ev@GLIBCXX_3.4.21 5 + _ZNSt20__codecvt_utf16_baseIDsED2Ev@GLIBCXX_3.4.21 5 + _ZNSt20__codecvt_utf16_baseIwED0Ev@GLIBCXX_3.4.21 5 + _ZNSt20__codecvt_utf16_baseIwED1Ev@GLIBCXX_3.4.21 5 + _ZNSt20__codecvt_utf16_baseIwED2Ev@GLIBCXX_3.4.21 5 + _ZNSt20bad_array_new_lengthD0Ev@CXXABI_1.3.8 4.9 + _ZNSt20bad_array_new_lengthD1Ev@CXXABI_1.3.8 4.9 + _ZNSt20bad_array_new_lengthD2Ev@CXXABI_1.3.8 4.9 + _ZNSt21__numeric_limits_base10has_denormE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base10is_boundedE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base10is_integerE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base11round_styleE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base12has_infinityE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base12max_digits10E@GLIBCXX_3.4.14 4.5.0 + _ZNSt21__numeric_limits_base12max_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base12min_exponentE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base13has_quiet_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base14is_specializedE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base14max_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base14min_exponent10E@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base15has_denorm_lossE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base15tinyness_beforeE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base17has_signaling_NaNE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base5radixE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base5trapsE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base6digitsE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base8digits10E@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base8is_exactE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base9is_iec559E@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base9is_moduloE@GLIBCXX_3.4 4.1.1 + _ZNSt21__numeric_limits_base9is_signedE@GLIBCXX_3.4 4.1.1 + _ZNSt22condition_variable_anyC1Ev@GLIBCXX_3.4.11 4.4.0 + _ZNSt22condition_variable_anyC2Ev@GLIBCXX_3.4.11 4.4.0 + _ZNSt22condition_variable_anyD1Ev@GLIBCXX_3.4.11 4.4.0 + _ZNSt22condition_variable_anyD2Ev@GLIBCXX_3.4.11 4.4.0 + _ZNSt25__codecvt_utf8_utf16_baseIDiED0Ev@GLIBCXX_3.4.21 5 + _ZNSt25__codecvt_utf8_utf16_baseIDiED1Ev@GLIBCXX_3.4.21 5 + _ZNSt25__codecvt_utf8_utf16_baseIDiED2Ev@GLIBCXX_3.4.21 5 + _ZNSt25__codecvt_utf8_utf16_baseIDsED0Ev@GLIBCXX_3.4.21 5 + _ZNSt25__codecvt_utf8_utf16_baseIDsED1Ev@GLIBCXX_3.4.21 5 + _ZNSt25__codecvt_utf8_utf16_baseIDsED2Ev@GLIBCXX_3.4.21 5 + _ZNSt25__codecvt_utf8_utf16_baseIwED0Ev@GLIBCXX_3.4.21 5 + _ZNSt25__codecvt_utf8_utf16_baseIwED1Ev@GLIBCXX_3.4.21 5 + _ZNSt25__codecvt_utf8_utf16_baseIwED2Ev@GLIBCXX_3.4.21 5 + _ZNSt3_V214error_categoryD0Ev@GLIBCXX_3.4.21 5 + _ZNSt3_V214error_categoryD1Ev@GLIBCXX_3.4.21 5 + _ZNSt3_V214error_categoryD2Ev@GLIBCXX_3.4.21 5 + _ZNSt3_V215system_categoryEv@GLIBCXX_3.4.21 5 + _ZNSt3_V216generic_categoryEv@GLIBCXX_3.4.21 5 + _ZNSt3tr18__detail12__prime_listE@GLIBCXX_3.4.10 4.3 + _ZNSt5ctypeIcE10table_sizeE@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcE13classic_tableEv@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwE19_M_initialize_ctypeEv@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt6__norm15_List_node_base10_M_reverseEv@GLIBCXX_3.4.14 4.5 + _ZNSt6__norm15_List_node_base11_M_transferEPS0_S1_@GLIBCXX_3.4.14 4.5 + _ZNSt6__norm15_List_node_base4hookEPS0_@GLIBCXX_3.4.9 4.2.1 + _ZNSt6__norm15_List_node_base4swapERS0_S1_@GLIBCXX_3.4.9 4.2.1 + _ZNSt6__norm15_List_node_base6unhookEv@GLIBCXX_3.4.9 4.2.1 + _ZNSt6__norm15_List_node_base7_M_hookEPS0_@GLIBCXX_3.4.14 4.5 + _ZNSt6__norm15_List_node_base7reverseEv@GLIBCXX_3.4.9 4.2.1 + _ZNSt6__norm15_List_node_base8transferEPS0_S1_@GLIBCXX_3.4.9 4.2.1 + _ZNSt6__norm15_List_node_base9_M_unhookEv@GLIBCXX_3.4.14 4.5 + _ZNSt6chrono3_V212steady_clock3nowEv@GLIBCXX_3.4.19 4.8.1 + _ZNSt6chrono3_V212steady_clock9is_steadyE@GLIBCXX_3.4.19 4.8.1 + _ZNSt6chrono3_V212system_clock3nowEv@GLIBCXX_3.4.19 4.8.1 + _ZNSt6chrono3_V212system_clock9is_steadyE@GLIBCXX_3.4.19 4.8.1 + _ZNSt6chrono12system_clock12is_monotonicE@GLIBCXX_3.4.11 4.4.0 + _ZNSt6chrono12system_clock3nowEv@GLIBCXX_3.4.11 4.4.0 + _ZNSt6locale11_M_coalesceERKS_S1_i@GLIBCXX_3.4 4.1.1 + _ZNSt6locale21_S_normalize_categoryEi@GLIBCXX_3.4 4.1.1 + _ZNSt6locale3allE@GLIBCXX_3.4 4.1.1 + _ZNSt6locale4noneE@GLIBCXX_3.4 4.1.1 + _ZNSt6locale4timeE@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPKNS_5facetE@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_i@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5ctypeE@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5facet13_S_get_c_nameEv@GLIBCXX_3.4.6 4.1.1 + _ZNSt6locale5facet15_S_get_c_localeEv@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5facet17_S_clone_c_localeERP15__locale_struct@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5facet18_S_create_c_localeERP15__locale_structPKcS2_@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5facet19_S_destroy_c_localeERP15__locale_struct@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5facetD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5facetD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5facetD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt6locale6globalERKS_@GLIBCXX_3.4 4.1.1 + _ZNSt6locale7classicEv@GLIBCXX_3.4 4.1.1 + _ZNSt6locale7collateE@GLIBCXX_3.4 4.1.1 + _ZNSt6locale7numericE@GLIBCXX_3.4 4.1.1 + _ZNSt6locale8messagesE@GLIBCXX_3.4 4.1.1 + _ZNSt6locale8monetaryE@GLIBCXX_3.4 4.1.1 + _ZNSt6localeC1EPKc@GLIBCXX_3.4 4.1.1 + _ZNSt6localeC1EPNS_5_ImplE@GLIBCXX_3.4 4.1.1 + _ZNSt6localeC1ERKS_@GLIBCXX_3.4 4.1.1 + _ZNSt6localeC1ERKS_PKci@GLIBCXX_3.4 4.1.1 + _ZNSt6localeC1ERKS_S1_i@GLIBCXX_3.4 4.1.1 + _ZNSt6localeC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt6localeC2EPKc@GLIBCXX_3.4 4.1.1 + _ZNSt6localeC2EPNS_5_ImplE@GLIBCXX_3.4 4.1.1 + _ZNSt6localeC2ERKS_@GLIBCXX_3.4 4.1.1 + _ZNSt6localeC2ERKS_PKci@GLIBCXX_3.4 4.1.1 + _ZNSt6localeC2ERKS_S1_i@GLIBCXX_3.4 4.1.1 + _ZNSt6localeC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt6localeD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt6localeD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt6localeaSERKS_@GLIBCXX_3.4 4.1.1 + _ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEE@GLIBCXX_3.4.11 4.4.0 + _ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEEPFvvE@GLIBCXX_3.4.21 5 + _ZNSt6thread15_M_start_threadESt10unique_ptrINS_6_StateESt14default_deleteIS1_EEPFvvE@GLIBCXX_3.4.22 6 + _ZNSt6thread20hardware_concurrencyEv@GLIBCXX_3.4.17 4.7 + _ZNSt6thread4joinEv@GLIBCXX_3.4.11 4.4.0 + _ZNSt6thread6_StateD0Ev@GLIBCXX_3.4.22 6 + _ZNSt6thread6_StateD1Ev@GLIBCXX_3.4.22 6 + _ZNSt6thread6_StateD2Ev@GLIBCXX_3.4.22 6 + _ZNSt6thread6detachEv@GLIBCXX_3.4.11 4.4.0 + _ZNSt7codecvtIDic11__mbstate_tE2idE@GLIBCXX_3.4.21 5 + _ZNSt7codecvtIDic11__mbstate_tED0Ev@GLIBCXX_3.4.21 5 + _ZNSt7codecvtIDic11__mbstate_tED1Ev@GLIBCXX_3.4.21 5 + _ZNSt7codecvtIDic11__mbstate_tED2Ev@GLIBCXX_3.4.21 5 + _ZNSt7codecvtIDsc11__mbstate_tE2idE@GLIBCXX_3.4.21 5 + _ZNSt7codecvtIDsc11__mbstate_tED0Ev@GLIBCXX_3.4.21 5 + _ZNSt7codecvtIDsc11__mbstate_tED1Ev@GLIBCXX_3.4.21 5 + _ZNSt7codecvtIDsc11__mbstate_tED2Ev@GLIBCXX_3.4.21 5 + _ZNSt7codecvtIcc11__mbstate_tE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8__detail12__prime_listE@GLIBCXX_3.4.10 4.3 + _ZNSt8__detail15_List_node_base10_M_reverseEv@GLIBCXX_3.4.15 4.6 + _ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_@GLIBCXX_3.4.15 4.6 + _ZNSt8__detail15_List_node_base4swapERS0_S1_@GLIBCXX_3.4.15 4.6 + _ZNSt8__detail15_List_node_base7_M_hookEPS0_@GLIBCXX_3.4.15 4.6 + _ZNSt8__detail15_List_node_base9_M_unhookEv@GLIBCXX_3.4.15 4.6 + _ZNSt8bad_castD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8bad_castD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8bad_castD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base10floatfieldE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base10scientificE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base11adjustfieldE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base13_M_grow_wordsEib@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base15sync_with_stdioEb@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base17_M_call_callbacksENS_5eventE@GLIBCXX_3.4.6 4.1.1 + _ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base20_M_dispose_callbacksEv@GLIBCXX_3.4.6 4.1.1 + _ZNSt8ios_base2inE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base3appE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base3ateE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base3begE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base3curE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base3decE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base3endE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base3hexE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base3octE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base3outE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base4InitC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base4InitC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base4InitD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base4InitD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base4leftE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base5fixedE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base5imbueERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base5rightE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base5truncE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base6badbitE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base6binaryE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base6eofbitE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base6skipwsE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base6xallocEv@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base7_M_initEv@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base7_M_moveERS_@GLIBCXX_3.4.21 5 + _ZNSt8ios_base7_M_swapERS_@GLIBCXX_3.4.21 5 + _ZNSt8ios_base7failbitE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base7failureC1ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base7failureC2ERKSs@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base7failureD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base7failureD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base7failureD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base7goodbitE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base7showposE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base7unitbufE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base8internalE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base8showbaseE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base9basefieldE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base9boolalphaE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base9showpointE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_base9uppercaseE@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_baseC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_baseC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_baseD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_baseD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8ios_baseD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9__atomic011atomic_flag12test_and_setESt12memory_order@GLIBCXX_3.4.14 4.5 + _ZNSt9__atomic011atomic_flag5clearESt12memory_order@GLIBCXX_3.4.14 4.5 + _ZNSt9__cxx199815_List_node_base10_M_reverseEv@GLIBCXX_3.4.14 4.5 + _ZNSt9__cxx199815_List_node_base11_M_transferEPS0_S1_@GLIBCXX_3.4.14 4.5 + _ZNSt9__cxx199815_List_node_base4hookEPS0_@GLIBCXX_3.4.10 4.3 + _ZNSt9__cxx199815_List_node_base4swapERS0_S1_@GLIBCXX_3.4.10 4.3 + _ZNSt9__cxx199815_List_node_base7_M_hookEPS0_@GLIBCXX_3.4.14 4.5 + _ZNSt9__cxx199815_List_node_base6unhookEv@GLIBCXX_3.4.10 4.3 + _ZNSt9__cxx199815_List_node_base7reverseEv@GLIBCXX_3.4.10 4.3 + _ZNSt9__cxx199815_List_node_base8transferEPS0_S1_@GLIBCXX_3.4.10 4.3 + _ZNSt9__cxx199815_List_node_base9_M_unhookEv@GLIBCXX_3.4.14 4.5 + _ZNSt9bad_allocD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9bad_allocD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9bad_allocD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEE10exceptionsESt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEE11_M_setstateESt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEE15_M_cache_localeERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEE4moveEOS2_@GLIBCXX_3.4.21 5 + _ZNSt9basic_iosIcSt11char_traitsIcEE4moveERS2_@GLIBCXX_3.4.21 5 + _ZNSt9basic_iosIcSt11char_traitsIcEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEE5rdbufEPSt15basic_streambufIcS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEE7copyfmtERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEE9set_rdbufEPSt15basic_streambufIcS1_E@GLIBCXX_3.4.21 5 + _ZNSt9basic_iosIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEEC2EPSt15basic_streambufIcS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIcSt11char_traitsIcEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEE10exceptionsESt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEE11_M_setstateESt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEE15_M_cache_localeERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEE3tieEPSt13basic_ostreamIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEE4fillEw@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEE4moveEOS2_@GLIBCXX_3.4.21 5 + _ZNSt9basic_iosIwSt11char_traitsIwEE4moveERS2_@GLIBCXX_3.4.21 5 + _ZNSt9basic_iosIwSt11char_traitsIwEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt9basic_iosIwSt11char_traitsIwEE5clearESt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEE5rdbufEPSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEE7copyfmtERKS2_@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEE8setstateESt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEE9set_rdbufEPSt15basic_streambufIwS1_E@GLIBCXX_3.4.21 5 + _ZNSt9basic_iosIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEEC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEEC2EPSt15basic_streambufIwS1_E@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEEC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9basic_iosIwSt11char_traitsIwEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9exceptionD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9exceptionD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9exceptionD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9strstream3strEv@GLIBCXX_3.4 4.1.1 + _ZNSt9strstream6freezeEb@GLIBCXX_3.4 4.1.1 + _ZNSt9strstreamC1EPciSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt9strstreamC1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9strstreamC2EPciSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt9strstreamC2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9strstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9strstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9strstreamD2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9type_infoD0Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9type_infoD1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt9type_infoD2Ev@GLIBCXX_3.4 4.1.1 + _ZNVSt9__atomic011atomic_flag12test_and_setESt12memory_order@GLIBCXX_3.4.11 4.4.0 + _ZNVSt9__atomic011atomic_flag5clearESt12memory_order@GLIBCXX_3.4.11 4.4.0 + _ZSt10adopt_lock@GLIBCXX_3.4.11 4.4.0 + _ZSt10defer_lock@GLIBCXX_3.4.11 4.4.0 + _ZSt10unexpectedv@GLIBCXX_3.4 4.1.1 + _ZSt11__once_call@GLIBCXX_3.4.11 4.4.0 + _ZSt11try_to_lock@GLIBCXX_3.4.11 4.4.0 + _ZSt13get_terminatev@GLIBCXX_3.4.20 4.9 + _ZSt13set_terminatePFvvE@GLIBCXX_3.4 4.1.1 + _ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@GLIBCXX_3.4 4.1.1 + _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@GLIBCXX_3.4 4.1.1 + _ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@GLIBCXX_3.4 4.1.1 + _ZSt14get_unexpectedv@GLIBCXX_3.4.20 4.9 + _ZSt14set_unexpectedPFvvE@GLIBCXX_3.4 4.1.1 + _ZSt15__once_callable@GLIBCXX_3.4.11 4.4.0 + _ZSt15future_category@GLIBCXX_3.4.14 4.5 + _ZSt15future_categoryv@GLIBCXX_3.4.15 4.6 + _ZSt15get_new_handlerv@GLIBCXX_3.4.20 4.9 + _ZSt15set_new_handlerPFvvE@GLIBCXX_3.4 4.1.1 + _ZSt15system_categoryv@GLIBCXX_3.4.11 4.4.0 + _ZNSt13runtime_errorC1EPKc@GLIBCXX_3.4.21 5 + _ZNSt13runtime_errorC1ERKS_@GLIBCXX_3.4.21 5 + _ZNSt13runtime_errorC2EPKc@GLIBCXX_3.4.21 5 + _ZNSt13runtime_errorC2ERKS_@GLIBCXX_3.4.21 5 + _ZNSt13runtime_erroraSERKS_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2EOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ifstreamIcSt11char_traitsIcEEaSEOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1EOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2EOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ifstreamIwSt11char_traitsIwEEaSEOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_iostreamIwSt11char_traitsIwEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_iostreamIwSt11char_traitsIwEEC1EOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_iostreamIwSt11char_traitsIwEEC2EOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_iostreamIwSt11char_traitsIwEEaSEOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2EOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ofstreamIcSt11char_traitsIcEEaSEOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEE4swapERS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1EOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2EOS2_@GLIBCXX_3.4.21 5 + _ZNSt14basic_ofstreamIwSt11char_traitsIwEEaSEOS2_@GLIBCXX_3.4.21 5 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE4swapERS3_@GLIBCXX_3.4.21 5 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS3_@GLIBCXX_3.4.21 5 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS3_@GLIBCXX_3.4.21 5 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEEaSEOS3_@GLIBCXX_3.4.21 5 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE4swapERS3_@GLIBCXX_3.4.21 5 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS3_@GLIBCXX_3.4.21 5 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS3_@GLIBCXX_3.4.21 5 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEEaSEOS3_@GLIBCXX_3.4.21 5 + _ZSt16__throw_bad_castv@GLIBCXX_3.4 4.1.1 + _ZSt16generic_categoryv@GLIBCXX_3.4.11 4.4.0 + _ZSt17__throw_bad_allocv@GLIBCXX_3.4 4.1.1 + _ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base@GLIBCXX_3.4 4.1.1 + _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@GLIBCXX_3.4 4.1.1 + _ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base@GLIBCXX_3.4 4.1.1 + _ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@GLIBCXX_3.4 4.1.1 + _ZSt18__throw_bad_typeidv@GLIBCXX_3.4 4.1.1 + _ZSt18uncaught_exceptionv@GLIBCXX_3.4 4.1.1 + _ZSt19__throw_ios_failurePKc@GLIBCXX_3.4 4.1.1 + _ZSt19__throw_logic_errorPKc@GLIBCXX_3.4 4.1.1 + _ZSt19__throw_range_errorPKc@GLIBCXX_3.4 4.1.1 + _ZSt19__throw_regex_errorNSt15regex_constants10error_typeE@GLIBCXX_3.4.15 4.6 + _ZSt19uncaught_exceptionsv@GLIBCXX_3.4.22 6 + _ZSt20_Rb_tree_black_countPKSt18_Rb_tree_node_baseS1_@GLIBCXX_3.4 4.1.1 + _ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_@GLIBCXX_3.4 4.1.1 + _ZSt20__throw_domain_errorPKc@GLIBCXX_3.4 4.1.1 + _ZSt20__throw_future_errori@GLIBCXX_3.4.14 4.5 + _ZSt20__throw_length_errorPKc@GLIBCXX_3.4 4.1.1 + _ZSt20__throw_out_of_rangePKc@GLIBCXX_3.4 4.1.1 + _ZSt20__throw_system_errori@GLIBCXX_3.4.11 4.4.0 + _ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_@GLIBCXX_3.4 4.1.1 + _ZSt21__throw_bad_exceptionv@GLIBCXX_3.4 4.1.1 + _ZSt21__throw_runtime_errorPKc@GLIBCXX_3.4 4.1.1 + _ZSt22__throw_overflow_errorPKc@GLIBCXX_3.4 4.1.1 + _ZSt23__throw_underflow_errorPKc@GLIBCXX_3.4 4.1.1 + _ZSt24__throw_invalid_argumentPKc@GLIBCXX_3.4 4.1.1 + _ZSt24__throw_out_of_range_fmtPKcz@GLIBCXX_3.4.20 4.9 + _ZSt25__throw_bad_function_callv@GLIBCXX_3.4.14 4.5 + _ZSt25notify_all_at_thread_exitRSt18condition_variableSt11unique_lockISt5mutexE@GLIBCXX_3.4.21 5 + _ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_@GLIBCXX_3.4 4.1.1 + _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@GLIBCXX_3.4 4.1.1 + _ZSt2wsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_@GLIBCXX_3.4 4.1.1 + _ZSt2wsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_@GLIBCXX_3.4 4.1.1 + _ZSt3cin@GLIBCXX_3.4 4.1.1 + _ZSt4cerr@GLIBCXX_3.4 4.1.1 + _ZSt4clog@GLIBCXX_3.4 4.1.1 + _ZSt4cout@GLIBCXX_3.4 4.1.1 + _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GLIBCXX_3.4 4.1.1 + _ZSt4endlIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@GLIBCXX_3.4 4.1.1 + _ZSt4endsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GLIBCXX_3.4 4.1.1 + _ZSt4endsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@GLIBCXX_3.4 4.1.1 + _ZSt4wcin@GLIBCXX_3.4 4.1.1 + _ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GLIBCXX_3.4 4.1.1 + _ZSt5flushIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_@GLIBCXX_3.4 4.1.1 + _ZSt5wcerr@GLIBCXX_3.4 4.1.1 + _ZSt5wclog@GLIBCXX_3.4 4.1.1 + _ZSt5wcout@GLIBCXX_3.4 4.1.1 + _ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@GLIBCXX_3.4 4.1.1 + _ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@GLIBCXX_3.4 4.1.1 + _ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@GLIBCXX_3.4 4.1.1 + _ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_ES4_@GLIBCXX_3.4 4.1.1 + _ZSt7nothrow@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt10moneypunctIcLb0EEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt10moneypunctIwLb0EEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt11__timepunctIcEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt11__timepunctIwEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt5ctypeIcEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt5ctypeIwEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt7codecvtIcc11__mbstate_tEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt7codecvtIwc11__mbstate_tEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt7collateIcEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt7collateIwEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt8messagesIcEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt8messagesIwEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt8numpunctIcEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt8numpunctIwEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9has_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEbRKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9terminatev@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt10moneypunctIcLb0EEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt10moneypunctIcLb1EEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt10moneypunctIwLb0EEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt10moneypunctIwLb1EEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt11__timepunctIcEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt11__timepunctIwEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt5ctypeIwEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt7collateIcEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt7collateIwEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt8messagesIcEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt8messagesIwEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt8numpunctIcEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt8numpunctIwEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZSt9use_facetISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEERKT_RKSt6locale@GLIBCXX_3.4 4.1.1 + _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKa@GLIBCXX_3.4 4.1.1 + _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@GLIBCXX_3.4 4.1.1 + _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKh@GLIBCXX_3.4 4.1.1 + _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_a@GLIBCXX_3.4 4.1.1 + _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@GLIBCXX_3.4 4.1.1 + _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_h@GLIBCXX_3.4 4.1.1 + _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@GLIBCXX_3.4 4.1.1 + _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@GLIBCXX_3.4 4.1.1 + _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@GLIBCXX_3.4 4.1.1 + _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw@GLIBCXX_3.4 4.1.1 + _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@GLIBCXX_3.4 4.1.1 + _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@GLIBCXX_3.4 4.1.1 + _ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@GLIBCXX_3.4 4.1.1 + _ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@GLIBCXX_3.4 4.1.1 + _ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@GLIBCXX_3.4 4.1.1 + _ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@GLIBCXX_3.4 4.1.1 + _ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@GLIBCXX_3.4 4.1.1 + _ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@GLIBCXX_3.4 4.1.1 + _ZStlsIfwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@GLIBCXX_3.4 4.1.1 + _ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@GLIBCXX_3.4 4.1.1 + _ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@GLIBCXX_3.4 4.1.1 + _ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_S3_@GLIBCXX_3.4 4.1.1 + _ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St12_Setiosflags@GLIBCXX_3.4 4.1.1 + _ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision@GLIBCXX_3.4 4.1.1 + _ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St14_Resetiosflags@GLIBCXX_3.4 4.1.1 + _ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St5_Setw@GLIBCXX_3.4 4.1.1 + _ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@GLIBCXX_3.4 4.1.1 + _ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@GLIBCXX_3.4 4.1.1 + _ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@GLIBCXX_3.4 4.1.1 + _ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E@GLIBCXX_3.4 4.1.1 + _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@GLIBCXX_3.4 4.1.1 + _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_@GLIBCXX_3.4 4.1.1 + _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@GLIBCXX_3.4 4.1.1 + _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_@GLIBCXX_3.4 4.1.1 + _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_@GLIBCXX_3.4 4.1.1 + _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@GLIBCXX_3.4 4.1.1 + _ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@GLIBCXX_3.4 4.1.1 + _ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@GLIBCXX_3.4 4.1.1 + _ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ra@GLIBCXX_3.4 4.1.1 + _ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Rh@GLIBCXX_3.4 4.1.1 + _ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_@GLIBCXX_3.4 4.1.1 + _ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@GLIBCXX_3.4 4.1.1 + _ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@GLIBCXX_3.4 4.1.1 + _ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@GLIBCXX_3.4 4.1.1 + _ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@GLIBCXX_3.4 4.1.1 + _ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St5_Setw@GLIBCXX_3.4 4.1.1 + _ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_Setbase@GLIBCXX_3.4 4.1.1 + _ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@GLIBCXX_3.4 4.1.1 + _ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@GLIBCXX_3.4 4.1.1 + _ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@GLIBCXX_3.4 4.1.1 + _ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@GLIBCXX_3.4 4.1.1 + _ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@GLIBCXX_3.4 4.1.1 + _ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@GLIBCXX_3.4 4.1.1 + _ZStrsIfcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@GLIBCXX_3.4 4.1.1 + _ZStrsIfwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@GLIBCXX_3.4 4.1.1 + _ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_PS3_@GLIBCXX_3.4 4.1.1 + _ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_RS3_@GLIBCXX_3.4 4.1.1 + _ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St12_Setiosflags@GLIBCXX_3.4 4.1.1 + _ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St13_Setprecision@GLIBCXX_3.4 4.1.1 + _ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St14_Resetiosflags@GLIBCXX_3.4 4.1.1 + _ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St5_Setw@GLIBCXX_3.4 4.1.1 + _ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_Setbase@GLIBCXX_3.4 4.1.1 + _ZStrsIwSt11char_traitsIwEERSt13basic_istreamIT_T0_ES6_St8_SetfillIS3_E@GLIBCXX_3.4 4.1.1 + _ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E@GLIBCXX_3.4 4.1.1 + _ZTIDd@CXXABI_1.3.4 4.5 + _ZTIDe@CXXABI_1.3.4 4.5 + _ZTIDf@CXXABI_1.3.4 4.5 + _ZTIDi@CXXABI_1.3.3 4.4.0 + _ZTIDn@CXXABI_1.3.5 4.6 + _ZTIDs@CXXABI_1.3.3 4.4.0 + _ZTIN10__cxxabiv115__forced_unwindE@CXXABI_1.3.2 4.3 + _ZTIN10__cxxabiv116__enum_type_infoE@CXXABI_1.3 4.1.1 + _ZTIN10__cxxabiv117__array_type_infoE@CXXABI_1.3 4.1.1 + _ZTIN10__cxxabiv117__class_type_infoE@CXXABI_1.3 4.1.1 + _ZTIN10__cxxabiv117__pbase_type_infoE@CXXABI_1.3 4.1.1 + _ZTIN10__cxxabiv119__foreign_exceptionE@CXXABI_1.3.2 4.3 + _ZTIN10__cxxabiv119__pointer_type_infoE@CXXABI_1.3 4.1.1 + _ZTIN10__cxxabiv120__function_type_infoE@CXXABI_1.3 4.1.1 + _ZTIN10__cxxabiv120__si_class_type_infoE@CXXABI_1.3 4.1.1 + _ZTIN10__cxxabiv121__vmi_class_type_infoE@CXXABI_1.3 4.1.1 + _ZTIN10__cxxabiv123__fundamental_type_infoE@CXXABI_1.3 4.1.1 + _ZTIN10__cxxabiv129__pointer_to_member_type_infoE@CXXABI_1.3 4.1.1 + _ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTIN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTIN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTINSt3_V214error_categoryE@GLIBCXX_3.4.21 5 + _ZTINSt6locale5facetE@GLIBCXX_3.4 4.1.1 + _ZTINSt6thread6_StateE@GLIBCXX_3.4.22 6 + _ZTINSt8ios_base7failureE@GLIBCXX_3.4 4.1.1 + _ZTIPDd@CXXABI_1.3.4 4.5 + _ZTIPDe@CXXABI_1.3.4 4.5 + _ZTIPDf@CXXABI_1.3.4 4.5 + _ZTIPDi@CXXABI_1.3.3 4.4.0 + _ZTIPDn@CXXABI_1.3.5 4.6 + _ZTIPDs@CXXABI_1.3.3 4.4.0 + _ZTIPKDd@CXXABI_1.3.4 4.5 + _ZTIPKDe@CXXABI_1.3.4 4.5 + _ZTIPKDf@CXXABI_1.3.4 4.5 + _ZTIPKDi@CXXABI_1.3.3 4.4.0 + _ZTIPKDn@CXXABI_1.3.5 4.6 + _ZTIPKDs@CXXABI_1.3.3 4.4.0 + _ZTIPKa@CXXABI_1.3 4.1.1 + _ZTIPKb@CXXABI_1.3 4.1.1 + _ZTIPKc@CXXABI_1.3 4.1.1 + _ZTIPKd@CXXABI_1.3 4.1.1 + _ZTIPKe@CXXABI_1.3 4.1.1 + _ZTIPKf@CXXABI_1.3 4.1.1 + _ZTIPKh@CXXABI_1.3 4.1.1 + _ZTIPKi@CXXABI_1.3 4.1.1 + _ZTIPKj@CXXABI_1.3 4.1.1 + _ZTIPKl@CXXABI_1.3 4.1.1 + _ZTIPKm@CXXABI_1.3 4.1.1 + _ZTIPKs@CXXABI_1.3 4.1.1 + _ZTIPKt@CXXABI_1.3 4.1.1 + _ZTIPKv@CXXABI_1.3 4.1.1 + _ZTIPKw@CXXABI_1.3 4.1.1 + _ZTIPKx@CXXABI_1.3 4.1.1 + _ZTIPKy@CXXABI_1.3 4.1.1 + _ZTIPa@CXXABI_1.3 4.1.1 + _ZTIPb@CXXABI_1.3 4.1.1 + _ZTIPc@CXXABI_1.3 4.1.1 + _ZTIPd@CXXABI_1.3 4.1.1 + _ZTIPe@CXXABI_1.3 4.1.1 + _ZTIPf@CXXABI_1.3 4.1.1 + _ZTIPh@CXXABI_1.3 4.1.1 + _ZTIPi@CXXABI_1.3 4.1.1 + _ZTIPj@CXXABI_1.3 4.1.1 + _ZTIPl@CXXABI_1.3 4.1.1 + _ZTIPm@CXXABI_1.3 4.1.1 + _ZTIPs@CXXABI_1.3 4.1.1 + _ZTIPt@CXXABI_1.3 4.1.1 + _ZTIPv@CXXABI_1.3 4.1.1 + _ZTIPw@CXXABI_1.3 4.1.1 + _ZTIPx@CXXABI_1.3 4.1.1 + _ZTIPy@CXXABI_1.3 4.1.1 + _ZTISd@GLIBCXX_3.4 4.1.1 + _ZTISi@GLIBCXX_3.4 4.1.1 + _ZTISo@GLIBCXX_3.4 4.1.1 + _ZTISt10bad_typeid@GLIBCXX_3.4 4.1.1 + _ZTISt10ctype_base@GLIBCXX_3.4 4.1.1 + _ZTISt10istrstream@GLIBCXX_3.4 4.1.1 + _ZTISt10lock_error@GLIBCXX_3.4.11 4.4.0 + _ZTISt10money_base@GLIBCXX_3.4 4.1.1 + _ZTISt10moneypunctIcLb0EE@GLIBCXX_3.4 4.1.1 + _ZTISt10moneypunctIcLb1EE@GLIBCXX_3.4 4.1.1 + _ZTISt10moneypunctIwLb0EE@GLIBCXX_3.4 4.1.1 + _ZTISt10moneypunctIwLb1EE@GLIBCXX_3.4 4.1.1 + _ZTISt10ostrstream@GLIBCXX_3.4 4.1.1 + _ZTISt11__timepunctIcE@GLIBCXX_3.4 4.1.1 + _ZTISt11__timepunctIwE@GLIBCXX_3.4 4.1.1 + _ZTISt11logic_error@GLIBCXX_3.4 4.1.1 + _ZTISt11range_error@GLIBCXX_3.4 4.1.1 + _ZTISt11regex_error@GLIBCXX_3.4.15 4.6 + _ZTISt12bad_weak_ptr@GLIBCXX_3.4.15 4.6 + _ZTISt12codecvt_base@GLIBCXX_3.4 4.1.1 + _ZTISt12ctype_bynameIcE@GLIBCXX_3.4 4.1.1 + _ZTISt12ctype_bynameIwE@GLIBCXX_3.4 4.1.1 + _ZTISt12domain_error@GLIBCXX_3.4 4.1.1 + _ZTISt12future_error@GLIBCXX_3.4.14 4.5 + _ZTISt12length_error@GLIBCXX_3.4 4.1.1 + _ZTISt12out_of_range@GLIBCXX_3.4 4.1.1 + _ZTISt12strstreambuf@GLIBCXX_3.4 4.1.1 + _ZTISt12system_error@GLIBCXX_3.4.11 4.4.0 + _ZTISt13bad_exception@GLIBCXX_3.4 4.1.1 + _ZTISt13basic_filebufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTISt13basic_filebufIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt13basic_fstreamIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTISt13basic_fstreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt13basic_istreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt13basic_ostreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt13messages_base@GLIBCXX_3.4 4.1.1 + _ZTISt13runtime_error@GLIBCXX_3.4 4.1.1 + _ZTISt14basic_ifstreamIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTISt14basic_ifstreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt14basic_iostreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt14basic_ofstreamIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTISt14basic_ofstreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt14codecvt_bynameIcc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTISt14codecvt_bynameIwc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTISt14collate_bynameIcE@GLIBCXX_3.4 4.1.1 + _ZTISt14collate_bynameIwE@GLIBCXX_3.4 4.1.1 + _ZTISt14error_category@GLIBCXX_3.4.11 4.4.0 + _ZTISt14overflow_error@GLIBCXX_3.4 4.1.1 + _ZTISt15basic_streambufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTISt15basic_streambufIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt15basic_stringbufIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTISt15basic_stringbufIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt15messages_bynameIcE@GLIBCXX_3.4 4.1.1 + _ZTISt15messages_bynameIwE@GLIBCXX_3.4 4.1.1 + _ZTISt15numpunct_bynameIcE@GLIBCXX_3.4 4.1.1 + _ZTISt15numpunct_bynameIwE@GLIBCXX_3.4 4.1.1 + _ZTISt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTISt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTISt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTISt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTISt15underflow_error@GLIBCXX_3.4 4.1.1 + _ZTISt16bad_array_length@CXXABI_1.3.8 4.9 + _ZTISt16invalid_argument@GLIBCXX_3.4 4.1.1 + _ZTISt17bad_function_call@GLIBCXX_3.4.15 4.6 + _ZTISt17moneypunct_bynameIcLb0EE@GLIBCXX_3.4 4.1.1 + _ZTISt17moneypunct_bynameIcLb1EE@GLIBCXX_3.4 4.1.1 + _ZTISt17moneypunct_bynameIwLb0EE@GLIBCXX_3.4 4.1.1 + _ZTISt17moneypunct_bynameIwLb1EE@GLIBCXX_3.4 4.1.1 + _ZTISt18basic_stringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTISt18basic_stringstreamIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt19__codecvt_utf8_baseIDiE@GLIBCXX_3.4.21 5 + _ZTISt19__codecvt_utf8_baseIDsE@GLIBCXX_3.4.21 5 + _ZTISt19__codecvt_utf8_baseIwE@GLIBCXX_3.4.21 5 + _ZTISt19basic_istringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTISt19basic_istringstreamIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTISt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt20__codecvt_utf16_baseIDiE@GLIBCXX_3.4.21 5 + _ZTISt20__codecvt_utf16_baseIDsE@GLIBCXX_3.4.21 5 + _ZTISt20__codecvt_utf16_baseIwE@GLIBCXX_3.4.21 5 + _ZTISt20bad_array_new_length@CXXABI_1.3.8 4.9 + _ZTISt21__ctype_abstract_baseIcE@GLIBCXX_3.4 4.1.1 + _ZTISt21__ctype_abstract_baseIwE@GLIBCXX_3.4 4.1.1 + _ZTISt23__codecvt_abstract_baseIcc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTISt23__codecvt_abstract_baseIwc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTISt25__codecvt_utf8_utf16_baseIDiE@GLIBCXX_3.4.21 5 + _ZTISt25__codecvt_utf8_utf16_baseIDsE@GLIBCXX_3.4.21 5 + _ZTISt25__codecvt_utf8_utf16_baseIwE@GLIBCXX_3.4.21 5 + _ZTISt5ctypeIcE@GLIBCXX_3.4 4.1.1 + _ZTISt5ctypeIwE@GLIBCXX_3.4 4.1.1 + _ZTISt7codecvtIDic11__mbstate_tE@GLIBCXX_3.4.21 5 + _ZTISt7codecvtIDsc11__mbstate_tE@GLIBCXX_3.4.21 5 + _ZTISt7codecvtIcc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTISt7codecvtIwc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTISt7collateIcE@GLIBCXX_3.4 4.1.1 + _ZTISt7collateIwE@GLIBCXX_3.4 4.1.1 + _ZTISt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTISt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTISt8bad_cast@GLIBCXX_3.4 4.1.1 + _ZTISt8ios_base@GLIBCXX_3.4 4.1.1 + _ZTISt8messagesIcE@GLIBCXX_3.4 4.1.1 + _ZTISt8messagesIwE@GLIBCXX_3.4 4.1.1 + _ZTISt8numpunctIcE@GLIBCXX_3.4 4.1.1 + _ZTISt8numpunctIwE@GLIBCXX_3.4 4.1.1 + _ZTISt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTISt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTISt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTISt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTISt9bad_alloc@GLIBCXX_3.4 4.1.1 + _ZTISt9basic_iosIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTISt9basic_iosIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTISt9exception@GLIBCXX_3.4 4.1.1 + _ZTISt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTISt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTISt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTISt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTISt9strstream@GLIBCXX_3.4 4.1.1 + _ZTISt9time_base@GLIBCXX_3.4 4.1.1 + _ZTISt9type_info@GLIBCXX_3.4 4.1.1 + _ZTIa@CXXABI_1.3 4.1.1 + _ZTIb@CXXABI_1.3 4.1.1 + _ZTIc@CXXABI_1.3 4.1.1 + _ZTId@CXXABI_1.3 4.1.1 + _ZTIe@CXXABI_1.3 4.1.1 + _ZTIf@CXXABI_1.3 4.1.1 + _ZTIh@CXXABI_1.3 4.1.1 + _ZTIi@CXXABI_1.3 4.1.1 + _ZTIj@CXXABI_1.3 4.1.1 + _ZTIl@CXXABI_1.3 4.1.1 + _ZTIm@CXXABI_1.3 4.1.1 + _ZTIs@CXXABI_1.3 4.1.1 + _ZTIt@CXXABI_1.3 4.1.1 + _ZTIv@CXXABI_1.3 4.1.1 + _ZTIw@CXXABI_1.3 4.1.1 + _ZTIx@CXXABI_1.3 4.1.1 + _ZTIy@CXXABI_1.3 4.1.1 + _ZTSN10__cxxabiv116__enum_type_infoE@CXXABI_1.3 4.1.1 + _ZTSN10__cxxabiv117__array_type_infoE@CXXABI_1.3 4.1.1 + _ZTSN10__cxxabiv117__class_type_infoE@CXXABI_1.3 4.1.1 + _ZTSN10__cxxabiv117__pbase_type_infoE@CXXABI_1.3 4.1.1 + _ZTSN10__cxxabiv119__pointer_type_infoE@CXXABI_1.3 4.1.1 + _ZTSN10__cxxabiv120__function_type_infoE@CXXABI_1.3 4.1.1 + _ZTSN10__cxxabiv120__si_class_type_infoE@CXXABI_1.3 4.1.1 + _ZTSN10__cxxabiv121__vmi_class_type_infoE@CXXABI_1.3 4.1.1 + _ZTSN10__cxxabiv123__fundamental_type_infoE@CXXABI_1.3 4.1.1 + _ZTSN10__cxxabiv129__pointer_to_member_type_infoE@CXXABI_1.3 4.1.1 + _ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTSN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTSN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTSN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTSNSt6locale5facetE@GLIBCXX_3.4 4.1.1 + _ZTSNSt6thread6_StateE@GLIBCXX_3.4.22 6 + _ZTSNSt8ios_base7failureE@GLIBCXX_3.4 4.1.1 + _ZTSPKa@CXXABI_1.3 4.1.1 + _ZTSPKb@CXXABI_1.3 4.1.1 + _ZTSPKc@CXXABI_1.3 4.1.1 + _ZTSPKd@CXXABI_1.3 4.1.1 + _ZTSPKe@CXXABI_1.3 4.1.1 + _ZTSPKf@CXXABI_1.3 4.1.1 + _ZTSPKh@CXXABI_1.3 4.1.1 + _ZTSPKi@CXXABI_1.3 4.1.1 + _ZTSPKj@CXXABI_1.3 4.1.1 + _ZTSPKl@CXXABI_1.3 4.1.1 + _ZTSPKm@CXXABI_1.3 4.1.1 + _ZTSPKs@CXXABI_1.3 4.1.1 + _ZTSPKt@CXXABI_1.3 4.1.1 + _ZTSPKv@CXXABI_1.3 4.1.1 + _ZTSPKw@CXXABI_1.3 4.1.1 + _ZTSPKx@CXXABI_1.3 4.1.1 + _ZTSPKy@CXXABI_1.3 4.1.1 + _ZTSPa@CXXABI_1.3 4.1.1 + _ZTSPb@CXXABI_1.3 4.1.1 + _ZTSPc@CXXABI_1.3 4.1.1 + _ZTSPd@CXXABI_1.3 4.1.1 + _ZTSPe@CXXABI_1.3 4.1.1 + _ZTSPf@CXXABI_1.3 4.1.1 + _ZTSPh@CXXABI_1.3 4.1.1 + _ZTSPi@CXXABI_1.3 4.1.1 + _ZTSPj@CXXABI_1.3 4.1.1 + _ZTSPl@CXXABI_1.3 4.1.1 + _ZTSPm@CXXABI_1.3 4.1.1 + _ZTSPs@CXXABI_1.3 4.1.1 + _ZTSPt@CXXABI_1.3 4.1.1 + _ZTSPv@CXXABI_1.3 4.1.1 + _ZTSPw@CXXABI_1.3 4.1.1 + _ZTSPx@CXXABI_1.3 4.1.1 + _ZTSPy@CXXABI_1.3 4.1.1 + _ZTSSd@GLIBCXX_3.4 4.1.1 + _ZTSSi@GLIBCXX_3.4 4.1.1 + _ZTSSo@GLIBCXX_3.4 4.1.1 + _ZTSSt10bad_typeid@GLIBCXX_3.4 4.1.1 + _ZTSSt10ctype_base@GLIBCXX_3.4 4.1.1 + _ZTSSt10istrstream@GLIBCXX_3.4 4.1.1 + _ZTSSt10lock_error@GLIBCXX_3.4.11 4.4.0 + _ZTSSt10money_base@GLIBCXX_3.4 4.1.1 + _ZTSSt10moneypunctIcLb0EE@GLIBCXX_3.4 4.1.1 + _ZTSSt10moneypunctIcLb1EE@GLIBCXX_3.4 4.1.1 + _ZTSSt10moneypunctIwLb0EE@GLIBCXX_3.4 4.1.1 + _ZTSSt10moneypunctIwLb1EE@GLIBCXX_3.4 4.1.1 + _ZTSSt10ostrstream@GLIBCXX_3.4 4.1.1 + _ZTSSt11__timepunctIcE@GLIBCXX_3.4 4.1.1 + _ZTSSt11__timepunctIwE@GLIBCXX_3.4 4.1.1 + _ZTSSt11logic_error@GLIBCXX_3.4 4.1.1 + _ZTSSt11range_error@GLIBCXX_3.4 4.1.1 + _ZTSSt12codecvt_base@GLIBCXX_3.4 4.1.1 + _ZTSSt12ctype_bynameIcE@GLIBCXX_3.4 4.1.1 + _ZTSSt12ctype_bynameIwE@GLIBCXX_3.4 4.1.1 + _ZTSSt12domain_error@GLIBCXX_3.4 4.1.1 + _ZTSSt12future_error@GLIBCXX_3.4.14 4.5 + _ZTSSt12length_error@GLIBCXX_3.4 4.1.1 + _ZTSSt12out_of_range@GLIBCXX_3.4 4.1.1 + _ZTSSt12strstreambuf@GLIBCXX_3.4 4.1.1 + _ZTSSt12system_error@GLIBCXX_3.4.11 4.4.0 + _ZTSSt13bad_exception@GLIBCXX_3.4 4.1.1 + _ZTSSt13basic_filebufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTSSt13basic_filebufIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt13basic_fstreamIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTSSt13basic_fstreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt13basic_istreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt13basic_ostreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt13messages_base@GLIBCXX_3.4 4.1.1 + _ZTSSt13runtime_error@GLIBCXX_3.4 4.1.1 + _ZTSSt14basic_ifstreamIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTSSt14basic_ifstreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt14basic_iostreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt14basic_ofstreamIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTSSt14basic_ofstreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt14codecvt_bynameIcc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTSSt14codecvt_bynameIwc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTSSt14collate_bynameIcE@GLIBCXX_3.4 4.1.1 + _ZTSSt14collate_bynameIwE@GLIBCXX_3.4 4.1.1 + _ZTSSt14error_category@GLIBCXX_3.4.11 4.4.0 + _ZTSSt14overflow_error@GLIBCXX_3.4 4.1.1 + _ZTSSt15basic_streambufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTSSt15basic_streambufIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt15basic_stringbufIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTSSt15basic_stringbufIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt15messages_bynameIcE@GLIBCXX_3.4 4.1.1 + _ZTSSt15messages_bynameIwE@GLIBCXX_3.4 4.1.1 + _ZTSSt15numpunct_bynameIcE@GLIBCXX_3.4 4.1.1 + _ZTSSt15numpunct_bynameIwE@GLIBCXX_3.4 4.1.1 + _ZTSSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt15underflow_error@GLIBCXX_3.4 4.1.1 + _ZTSSt16bad_array_length@CXXABI_1.3.8 4.9 + _ZTSSt16invalid_argument@GLIBCXX_3.4 4.1.1 + _ZTSSt17moneypunct_bynameIcLb0EE@GLIBCXX_3.4 4.1.1 + _ZTSSt17moneypunct_bynameIcLb1EE@GLIBCXX_3.4 4.1.1 + _ZTSSt17moneypunct_bynameIwLb0EE@GLIBCXX_3.4 4.1.1 + _ZTSSt17moneypunct_bynameIwLb1EE@GLIBCXX_3.4 4.1.1 + _ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTSSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt19__codecvt_utf8_baseIDiE@GLIBCXX_3.4.21 5 + _ZTSSt19__codecvt_utf8_baseIDsE@GLIBCXX_3.4.21 5 + _ZTSSt19__codecvt_utf8_baseIwE@GLIBCXX_3.4.21 5 + _ZTSSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTSSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTSSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt20__codecvt_utf16_baseIDiE@GLIBCXX_3.4.21 5 + _ZTSSt20__codecvt_utf16_baseIDsE@GLIBCXX_3.4.21 5 + _ZTSSt20__codecvt_utf16_baseIwE@GLIBCXX_3.4.21 5 + _ZTSSt20bad_array_new_length@CXXABI_1.3.8 4.9 + _ZTSSt21__ctype_abstract_baseIcE@GLIBCXX_3.4 4.1.1 + _ZTSSt21__ctype_abstract_baseIwE@GLIBCXX_3.4 4.1.1 + _ZTSSt23__codecvt_abstract_baseIcc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTSSt23__codecvt_abstract_baseIwc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTSSt25__codecvt_utf8_utf16_baseIDiE@GLIBCXX_3.4.21 5 + _ZTSSt25__codecvt_utf8_utf16_baseIDsE@GLIBCXX_3.4.21 5 + _ZTSSt25__codecvt_utf8_utf16_baseIwE@GLIBCXX_3.4.21 5 + _ZTSSt5ctypeIcE@GLIBCXX_3.4 4.1.1 + _ZTSSt5ctypeIwE@GLIBCXX_3.4 4.1.1 + _ZTSSt7codecvtIDic11__mbstate_tE@GLIBCXX_3.4.21 5 + _ZTSSt7codecvtIDsc11__mbstate_tE@GLIBCXX_3.4.21 5 + _ZTSSt7codecvtIcc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTSSt7codecvtIwc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTSSt7collateIcE@GLIBCXX_3.4 4.1.1 + _ZTSSt7collateIwE@GLIBCXX_3.4 4.1.1 + _ZTSSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt8bad_cast@GLIBCXX_3.4 4.1.1 + _ZTSSt8ios_base@GLIBCXX_3.4 4.1.1 + _ZTSSt8messagesIcE@GLIBCXX_3.4 4.1.1 + _ZTSSt8messagesIwE@GLIBCXX_3.4 4.1.1 + _ZTSSt8numpunctIcE@GLIBCXX_3.4 4.1.1 + _ZTSSt8numpunctIwE@GLIBCXX_3.4 4.1.1 + _ZTSSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt9bad_alloc@GLIBCXX_3.4 4.1.1 + _ZTSSt9basic_iosIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTSSt9basic_iosIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTSSt9exception@GLIBCXX_3.4 4.1.1 + _ZTSSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTSSt9strstream@GLIBCXX_3.4 4.1.1 + _ZTSSt9time_base@GLIBCXX_3.4 4.1.1 + _ZTSSt9type_info@GLIBCXX_3.4 4.1.1 + _ZTSa@CXXABI_1.3 4.1.1 + _ZTSb@CXXABI_1.3 4.1.1 + _ZTSc@CXXABI_1.3 4.1.1 + _ZTSd@CXXABI_1.3 4.1.1 + _ZTSe@CXXABI_1.3 4.1.1 + _ZTSf@CXXABI_1.3 4.1.1 + _ZTSh@CXXABI_1.3 4.1.1 + _ZTSi@CXXABI_1.3 4.1.1 + _ZTSj@CXXABI_1.3 4.1.1 + _ZTSl@CXXABI_1.3 4.1.1 + _ZTSm@CXXABI_1.3 4.1.1 + _ZTSs@CXXABI_1.3 4.1.1 + _ZTSt@CXXABI_1.3 4.1.1 + _ZTSv@CXXABI_1.3 4.1.1 + _ZTSw@CXXABI_1.3 4.1.1 + _ZTSx@CXXABI_1.3 4.1.1 + _ZTSy@CXXABI_1.3 4.1.1 + _ZTTSd@GLIBCXX_3.4 4.1.1 + _ZTTSi@GLIBCXX_3.4 4.1.1 + _ZTTSo@GLIBCXX_3.4 4.1.1 + _ZTTSt10istrstream@GLIBCXX_3.4 4.1.1 + _ZTTSt10ostrstream@GLIBCXX_3.4 4.1.1 + _ZTTSt13basic_fstreamIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTTSt13basic_fstreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTTSt13basic_istreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTTSt13basic_ostreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTTSt14basic_ifstreamIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTTSt14basic_ifstreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTTSt14basic_iostreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTTSt14basic_ofstreamIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTTSt14basic_ofstreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTTSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTTSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTTSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTTSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTTSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTTSt9strstream@GLIBCXX_3.4 4.1.1 + _ZTVN10__cxxabiv116__enum_type_infoE@CXXABI_1.3 4.1.1 + _ZTVN10__cxxabiv117__array_type_infoE@CXXABI_1.3 4.1.1 + _ZTVN10__cxxabiv117__class_type_infoE@CXXABI_1.3 4.1.1 + _ZTVN10__cxxabiv117__pbase_type_infoE@CXXABI_1.3 4.1.1 + _ZTVN10__cxxabiv119__pointer_type_infoE@CXXABI_1.3 4.1.1 + _ZTVN10__cxxabiv120__function_type_infoE@CXXABI_1.3 4.1.1 + _ZTVN10__cxxabiv120__si_class_type_infoE@CXXABI_1.3 4.1.1 + _ZTVN10__cxxabiv121__vmi_class_type_infoE@CXXABI_1.3 4.1.1 + _ZTVN10__cxxabiv123__fundamental_type_infoE@CXXABI_1.3 4.1.1 + _ZTVN10__cxxabiv129__pointer_to_member_type_infoE@CXXABI_1.3 4.1.1 + _ZTVN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTVN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTVNSt3_V214error_categoryE@GLIBCXX_3.4.21 5 + _ZTVNSt6locale5facetE@GLIBCXX_3.4 4.1.1 + _ZTVNSt6thread6_StateE@GLIBCXX_3.4.22 6 + _ZTVNSt8ios_base7failureE@GLIBCXX_3.4 4.1.1 + _ZTVSd@GLIBCXX_3.4 4.1.1 + _ZTVSi@GLIBCXX_3.4 4.1.1 + _ZTVSo@GLIBCXX_3.4 4.1.1 + _ZTVSt10bad_typeid@GLIBCXX_3.4 4.1.1 + _ZTVSt10istrstream@GLIBCXX_3.4 4.1.1 + _ZTVSt10lock_error@GLIBCXX_3.4.11 4.4.0 + _ZTVSt10moneypunctIcLb0EE@GLIBCXX_3.4 4.1.1 + _ZTVSt10moneypunctIcLb1EE@GLIBCXX_3.4 4.1.1 + _ZTVSt10moneypunctIwLb0EE@GLIBCXX_3.4 4.1.1 + _ZTVSt10moneypunctIwLb1EE@GLIBCXX_3.4 4.1.1 + _ZTVSt10ostrstream@GLIBCXX_3.4 4.1.1 + _ZTVSt11__timepunctIcE@GLIBCXX_3.4 4.1.1 + _ZTVSt11__timepunctIwE@GLIBCXX_3.4 4.1.1 + _ZTVSt11logic_error@GLIBCXX_3.4 4.1.1 + _ZTVSt11range_error@GLIBCXX_3.4 4.1.1 + _ZTVSt11regex_error@GLIBCXX_3.4.15 4.6 + _ZTVSt12bad_weak_ptr@GLIBCXX_3.4.15 4.6 + _ZTVSt12ctype_bynameIcE@GLIBCXX_3.4 4.1.1 + _ZTVSt12ctype_bynameIwE@GLIBCXX_3.4 4.1.1 + _ZTVSt12domain_error@GLIBCXX_3.4 4.1.1 + _ZTVSt12future_error@GLIBCXX_3.4.14 4.5 + _ZTVSt12length_error@GLIBCXX_3.4 4.1.1 + _ZTVSt12out_of_range@GLIBCXX_3.4 4.1.1 + _ZTVSt12strstreambuf@GLIBCXX_3.4 4.1.1 + _ZTVSt12system_error@GLIBCXX_3.4.11 4.4.0 + _ZTVSt13bad_exception@GLIBCXX_3.4 4.1.1 + _ZTVSt13basic_filebufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTVSt13basic_filebufIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt13basic_fstreamIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTVSt13basic_fstreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt13basic_istreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt13basic_ostreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt13runtime_error@GLIBCXX_3.4 4.1.1 + _ZTVSt14basic_ifstreamIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTVSt14basic_ifstreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt14basic_iostreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt14basic_ofstreamIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTVSt14basic_ofstreamIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt14codecvt_bynameIcc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTVSt14codecvt_bynameIwc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTVSt14collate_bynameIcE@GLIBCXX_3.4 4.1.1 + _ZTVSt14collate_bynameIwE@GLIBCXX_3.4 4.1.1 + _ZTVSt14error_category@GLIBCXX_3.4.11 4.4.0 + _ZTVSt14overflow_error@GLIBCXX_3.4 4.1.1 + _ZTVSt15basic_streambufIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTVSt15basic_streambufIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt15messages_bynameIcE@GLIBCXX_3.4 4.1.1 + _ZTVSt15messages_bynameIwE@GLIBCXX_3.4 4.1.1 + _ZTVSt15numpunct_bynameIcE@GLIBCXX_3.4 4.1.1 + _ZTVSt15numpunct_bynameIwE@GLIBCXX_3.4 4.1.1 + _ZTVSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt15underflow_error@GLIBCXX_3.4 4.1.1 + _ZTVSt16bad_array_length@CXXABI_1.3.8 4.9 + _ZTVSt16invalid_argument@GLIBCXX_3.4 4.1.1 + _ZTVSt17bad_function_call@GLIBCXX_3.4.15 4.6 + _ZTVSt17moneypunct_bynameIcLb0EE@GLIBCXX_3.4 4.1.1 + _ZTVSt17moneypunct_bynameIcLb1EE@GLIBCXX_3.4 4.1.1 + _ZTVSt17moneypunct_bynameIwLb0EE@GLIBCXX_3.4 4.1.1 + _ZTVSt17moneypunct_bynameIwLb1EE@GLIBCXX_3.4 4.1.1 + _ZTVSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTVSt18basic_stringstreamIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt19__codecvt_utf8_baseIDiE@GLIBCXX_3.4.21 5 + _ZTVSt19__codecvt_utf8_baseIDsE@GLIBCXX_3.4.21 5 + _ZTVSt19__codecvt_utf8_baseIwE@GLIBCXX_3.4.21 5 + _ZTVSt19basic_istringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTVSt19basic_istringstreamIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE@GLIBCXX_3.4 4.1.1 + _ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt20__codecvt_utf16_baseIDiE@GLIBCXX_3.4.21 5 + _ZTVSt20__codecvt_utf16_baseIDsE@GLIBCXX_3.4.21 5 + _ZTVSt20__codecvt_utf16_baseIwE@GLIBCXX_3.4.21 5 + _ZTVSt20bad_array_new_length@CXXABI_1.3.8 4.9 + _ZTVSt21__ctype_abstract_baseIcE@GLIBCXX_3.4 4.1.1 + _ZTVSt21__ctype_abstract_baseIwE@GLIBCXX_3.4 4.1.1 + _ZTVSt23__codecvt_abstract_baseIcc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTVSt23__codecvt_abstract_baseIwc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTVSt25__codecvt_utf8_utf16_baseIDiE@GLIBCXX_3.4.21 5 + _ZTVSt25__codecvt_utf8_utf16_baseIDsE@GLIBCXX_3.4.21 5 + _ZTVSt25__codecvt_utf8_utf16_baseIwE@GLIBCXX_3.4.21 5 + _ZTVSt5ctypeIcE@GLIBCXX_3.4 4.1.1 + _ZTVSt5ctypeIwE@GLIBCXX_3.4 4.1.1 + _ZTVSt7codecvtIDic11__mbstate_tE@GLIBCXX_3.4.21 5 + _ZTVSt7codecvtIDsc11__mbstate_tE@GLIBCXX_3.4.21 5 + _ZTVSt7codecvtIcc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTVSt7codecvtIwc11__mbstate_tE@GLIBCXX_3.4 4.1.1 + _ZTVSt7collateIcE@GLIBCXX_3.4 4.1.1 + _ZTVSt7collateIwE@GLIBCXX_3.4 4.1.1 + _ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt8bad_cast@GLIBCXX_3.4 4.1.1 + _ZTVSt8ios_base@GLIBCXX_3.4 4.1.1 + _ZTVSt8messagesIcE@GLIBCXX_3.4 4.1.1 + _ZTVSt8messagesIwE@GLIBCXX_3.4 4.1.1 + _ZTVSt8numpunctIcE@GLIBCXX_3.4 4.1.1 + _ZTVSt8numpunctIwE@GLIBCXX_3.4 4.1.1 + _ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt9bad_alloc@GLIBCXX_3.4 4.1.1 + _ZTVSt9basic_iosIcSt11char_traitsIcEE@GLIBCXX_3.4 4.1.1 + _ZTVSt9basic_iosIwSt11char_traitsIwEE@GLIBCXX_3.4 4.1.1 + _ZTVSt9exception@GLIBCXX_3.4 4.1.1 + _ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@GLIBCXX_3.4 4.1.1 + _ZTVSt9strstream@GLIBCXX_3.4 4.1.1 + _ZTVSt9type_info@GLIBCXX_3.4 4.1.1 + _ZdaPv@GLIBCXX_3.4 4.1.1 + _ZdaPvRKSt9nothrow_t@GLIBCXX_3.4 4.1.1 + _ZdaPvSt11align_val_t@CXXABI_1.3.11 7 + _ZdaPvSt11align_val_tRKSt9nothrow_t@CXXABI_1.3.11 7 + _ZdlPv@GLIBCXX_3.4 4.1.1 + _ZdlPvRKSt9nothrow_t@GLIBCXX_3.4 4.1.1 + _ZdlPvSt11align_val_t@CXXABI_1.3.11 7 + _ZdlPvSt11align_val_tRKSt9nothrow_t@CXXABI_1.3.11 7 + __atomic_flag_for_address@GLIBCXX_3.4.11 4.4.0 + __atomic_flag_wait_explicit@GLIBCXX_3.4.11 4.4.0 + __cxa_allocate_dependent_exception@CXXABI_1.3.6 4.7 + __cxa_allocate_exception@CXXABI_1.3 4.1.1 + __cxa_bad_cast@CXXABI_1.3 4.1.1 + __cxa_bad_typeid@CXXABI_1.3 4.1.1 + __cxa_begin_catch@CXXABI_1.3 4.1.1 + __cxa_call_unexpected@CXXABI_1.3 4.1.1 + __cxa_current_exception_type@CXXABI_1.3 4.1.1 + __cxa_deleted_virtual@CXXABI_1.3.6 4.7 + __cxa_demangle@CXXABI_1.3 4.1.1 + __cxa_end_catch@CXXABI_1.3 4.1.1 + __cxa_free_dependent_exception@CXXABI_1.3.6 4.7 + __cxa_free_exception@CXXABI_1.3 4.1.1 + __cxa_get_exception_ptr@CXXABI_1.3.1 4.1.1 + __cxa_get_globals@CXXABI_1.3 4.1.1 + __cxa_get_globals_fast@CXXABI_1.3 4.1.1 + __cxa_guard_abort@CXXABI_1.3 4.1.1 + __cxa_guard_acquire@CXXABI_1.3 4.1.1 + __cxa_guard_release@CXXABI_1.3 4.1.1 + __cxa_init_primary_exception@CXXABI_1.3.11 7 + __cxa_pure_virtual@CXXABI_1.3 4.1.1 + __cxa_rethrow@CXXABI_1.3 4.1.1 + __cxa_thread_atexit@CXXABI_1.3.7 4.8 + __cxa_throw@CXXABI_1.3 4.1.1 + __cxa_throw_bad_array_length@CXXABI_1.3.8 4.9 + __cxa_throw_bad_array_new_length@CXXABI_1.3.8 4.9 + __cxa_tm_cleanup@CXXABI_TM_1 4.7 + __cxa_vec_cctor@CXXABI_1.3 4.1.1 + __cxa_vec_cleanup@CXXABI_1.3 4.1.1 + __cxa_vec_ctor@CXXABI_1.3 4.1.1 + __cxa_vec_delete2@CXXABI_1.3 4.1.1 + __cxa_vec_delete3@CXXABI_1.3 4.1.1 + __cxa_vec_delete@CXXABI_1.3 4.1.1 + __cxa_vec_dtor@CXXABI_1.3 4.1.1 + __cxa_vec_new2@CXXABI_1.3 4.1.1 + __cxa_vec_new3@CXXABI_1.3 4.1.1 + __cxa_vec_new@CXXABI_1.3 4.1.1 + __dynamic_cast@CXXABI_1.3 4.1.1 + __once_proxy@GLIBCXX_3.4.11 4.4.0 + atomic_flag_clear_explicit@GLIBCXX_3.4.11 4.4.0 + atomic_flag_test_and_set_explicit@GLIBCXX_3.4.11 4.4.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.common.cxx11 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.common.cxx11 @@ -0,0 +1,884 @@ + (optional=abi_c++11)_ZGVNSt7__cxx1110moneypunctIcLb0EE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx1110moneypunctIcLb1EE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx1110moneypunctIwLb0EE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx1110moneypunctIwLb1EE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx117collateIcE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx117collateIwE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx118messagesIcE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx118messagesIwE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx118numpunctIcE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx118numpunctIwE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZGVNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt3_V214error_category10_M_messageB5cxx11Ei@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt3tr14hashINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclES6_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt3tr14hashINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEclES6_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt6locale4nameB5cxx11Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE10neg_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE10pos_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE11curr_symbolEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE11do_groupingEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE11frac_digitsEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE13decimal_pointEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE13do_neg_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE13do_pos_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE13negative_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE13positive_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE13thousands_sepEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE14do_curr_symbolEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE14do_frac_digitsEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE16do_decimal_pointEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE16do_negative_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE16do_positive_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE16do_thousands_sepEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb0EE8groupingEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE10neg_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE10pos_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE11curr_symbolEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE11do_groupingEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE11frac_digitsEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE13decimal_pointEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE13do_neg_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE13do_pos_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE13negative_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE13positive_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE13thousands_sepEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE14do_curr_symbolEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE14do_frac_digitsEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE16do_decimal_pointEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE16do_negative_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE16do_positive_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE16do_thousands_sepEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIcLb1EE8groupingEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE10neg_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE10pos_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE11curr_symbolEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE11do_groupingEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE11frac_digitsEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE13decimal_pointEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE13do_neg_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE13do_pos_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE13negative_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE13positive_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE13thousands_sepEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE14do_curr_symbolEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE14do_frac_digitsEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE16do_decimal_pointEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE16do_negative_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE16do_positive_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE16do_thousands_sepEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb0EE8groupingEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE10neg_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE10pos_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE11curr_symbolEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE11do_groupingEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE11frac_digitsEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE13decimal_pointEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE13do_neg_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE13do_pos_formatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE13negative_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE13positive_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE13thousands_sepEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE14do_curr_symbolEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE14do_frac_digitsEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE16do_decimal_pointEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE16do_negative_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE16do_positive_signEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE16do_thousands_sepEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1110moneypunctIwLb1EE8groupingEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_disjunctEPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13get_allocatorEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16_M_get_allocatorEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4cendEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4rendEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5crendEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5frontEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6cbeginEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6rbeginEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7crbeginEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8max_sizeEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_M_is_localEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_local_dataEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13get_allocatorEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16_M_get_allocatorEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE3endEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4backEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4cendEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4dataEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4rendEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4sizeEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5beginEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5c_strEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5crendEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5frontEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6cbeginEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6lengthEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6rbeginEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_M_dataEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7crbeginEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8capacityEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8max_sizeEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE5rdbufEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIcE10_M_compareEPKcS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIcE10do_compareEPKcS3_S3_S3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIcE12do_transformEPKcS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIcE4hashEPKcS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIcE7compareEPKcS3_S3_S3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIcE7do_hashEPKcS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIcE9transformEPKcS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIwE10_M_compareEPKwS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIwE10do_compareEPKwS3_S3_S3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIwE12do_transformEPKwS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIwE4hashEPKwS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIwE7compareEPKwS3_S3_S3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIwE7do_hashEPKwS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx117collateIwE9transformEPKwS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIcE18_M_convert_to_charERKNS_12basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIcE20_M_convert_from_charEPc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIcE3getEiiiRKNS_12basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIcE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIcE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6localePKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIcE5closeEi@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIcE6do_getEiiiRKNS_12basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIcE7do_openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIcE8do_closeEi@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIwE18_M_convert_to_charERKNS_12basic_stringIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIwE20_M_convert_from_charEPc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIwE3getEiiiRKNS_12basic_stringIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIwE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIwE4openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6localePKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIwE5closeEi@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIwE6do_getEiiiRKNS_12basic_stringIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIwE7do_openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118messagesIwE8do_closeEi@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIcE11do_groupingEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIcE11do_truenameEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIcE12do_falsenameEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIcE13decimal_pointEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIcE13thousands_sepEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIcE16do_decimal_pointEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIcE16do_thousands_sepEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIcE8groupingEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIcE8truenameEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIcE9falsenameEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIwE11do_groupingEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIwE11do_truenameEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIwE12do_falsenameEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIwE13decimal_pointEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIwE13thousands_sepEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIwE16do_decimal_pointEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIwE16do_thousands_sepEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIwE8groupingEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIwE8truenameEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118numpunctIwE9falsenameEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10date_orderEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11do_get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE11get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13do_date_orderEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE13get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16do_get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKcSD_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10date_orderEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11do_get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE11get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13do_date_orderEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE13get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16do_get_monthnameES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE21_M_extract_via_formatES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmPKwSD_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tmcc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_dateES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_timeES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8get_yearES4_S4_RSt8ios_baseRSt12_Ios_IostateP2tm@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS3_SaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS2_IcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIcS2_IcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIwS3_SaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRNS_12basic_stringIwS3_SaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKNS_12basic_stringIcS3_SaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES4_S4_RSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES4_S4_RSt8ios_basewRKNS_12basic_stringIwS3_SaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt8ios_base7failureB5cxx114whatEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt11logic_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt11logic_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt11range_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt11range_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12domain_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12length_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12length_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12out_of_rangeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt12out_of_rangeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt13basic_filebufIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt13basic_filebufIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt13basic_fstreamIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt13basic_fstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt13basic_fstreamIcSt11char_traitsIcEEC2ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt13basic_fstreamIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt13basic_fstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt13basic_fstreamIwSt11char_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC2ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC2ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC2ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14overflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14overflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt15underflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt15underflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt16invalid_argumentC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt16invalid_argumentC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EE4intlE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb0EED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EE4intlE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIcLb1EED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EE4intlE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb0EED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EE24_M_initialize_moneypunctEP15__locale_structPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EE4intlE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1110moneypunctIwLb1EED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcOS3_@GLIBCXX_3.4.23 7 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC2EPcOS3_@GLIBCXX_3.4.23 7 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC2EPcRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKcS4_EEEEvT_SB_St20forward_iterator_tag@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPcS4_EEEEvT_SA_St20forward_iterator_tag@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcS4_EESA_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS5_S4_EES8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcS5_S5_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13shrink_to_fitEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16_M_get_allocatorEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4nposE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4rendEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPKcS4_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPcS4_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5frontEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendESt16initializer_listIcE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignESt16initializer_listIcE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPKcS4_EEc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EESt16initializer_listIcE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEN9__gnu_cxx17__normal_iteratorIPcS4_EEc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertIN9__gnu_cxx17__normal_iteratorIPcS4_EEEEvS9_T_SA_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6rbeginEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEPc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_NS6_IPcS4_EESB_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_PcSA_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_RKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_S8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S9_S9_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_St16initializer_listIcE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_NS6_IPKcS4_EESB_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_PKcSA_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_RKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_S7_S7_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPcS4_EES8_S8_S8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPKcvEET_S8_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IPcvEET_S7_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IN9__gnu_cxx17__normal_iteratorIPcS4_EEvEET_SA_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPKcvEET_S8_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IPcvEET_S7_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSESt16initializer_listIcE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLESt16initializer_listIcE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_disposeEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwOS3_@GLIBCXX_3.4.23 7 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwOS3_@GLIBCXX_3.4.23 7 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPKwS4_EEEEvT_SB_St20forward_iterator_tag@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIN9__gnu_cxx17__normal_iteratorIPwS4_EEEEvT_SA_St20forward_iterator_tag@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIPKwEEvT_S8_St20forward_iterator_tag@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIPwEEvT_S7_St20forward_iterator_tag@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_local_dataEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIPKwS4_EESA_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwN9__gnu_cxx17__normal_iteratorIS5_S4_EES8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwPKwS7_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_S_copy_charsEPwS5_S5_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13shrink_to_fitEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE16_M_get_allocatorEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE3endEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4backEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4nposE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4rendEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4swapERS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5beginEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5clearEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPKwS4_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS4_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5eraseEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5frontEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendESt16initializer_listIwE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignEPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6assignESt16initializer_listIwE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPKwS4_EEw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EESt16initializer_listIwE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS4_EEw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6insertIN9__gnu_cxx17__normal_iteratorIPwS4_EEEEvS9_T_SA_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6rbeginEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_M_dataEPw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_NS6_IPwS4_EESB_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_PwSA_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_RKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S8_S8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_S9_S9_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPKwS4_EES9_St16initializer_listIwE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_NS6_IPKwS4_EESB_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_PKwSA_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_RKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_S7_S7_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS4_EES8_S8_S8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8pop_backEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_assignERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9push_backEw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EOS4_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1EPKwRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPKwvEET_S8_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1IPwvEET_S7_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EOS4_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2EPKwRKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IN9__gnu_cxx17__normal_iteratorIPwS4_EEvEET_SA_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPKwvEET_S8_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IPwvEET_S7_RKS3_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSESt16initializer_listIwE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLEPKw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLERKS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLESt16initializer_listIwE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLEw@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIcED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIcED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIcED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIwED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIwED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1114collate_bynameIwED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsC1ERKS4_PS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsC2ERKS4_PS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsD1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsD2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE15_M_update_egptrEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE17_M_stringbuf_initESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE4swapERS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE9showmanycEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE9underflowEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1EOS4_ONS4_14__xfer_bufptrsE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2EOS4_ONS4_14__xfer_bufptrsE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEaSEOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsC1ERKS4_PS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsC2ERKS4_PS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsD1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE14__xfer_bufptrsD2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE15_M_update_egptrEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE17_M_stringbuf_initESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE4swapERS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE9showmanycEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE9underflowEv@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1EOS4_ONS4_14__xfer_bufptrsE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2EOS4_ONS4_14__xfer_bufptrsE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEaSEOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIcED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIcED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIcED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIwED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIwED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115messages_bynameIwED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIcED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIcED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIcED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIwED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIwED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115numpunct_bynameIwED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb0EE4intlE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb0EED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb0EED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb0EED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb1EE4intlE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb1EED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb1EED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIcLb1EED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb0EE4intlE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb0EED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb0EED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb0EED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb1EE4intlE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb1EED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb1EED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1117moneypunct_bynameIwLb1EED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE4swapERS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEaSEOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEE4swapERS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEaSEOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEE4swapERS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEE4swapERS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEaSEOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE4swapERS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC2ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEaSEOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE3strERKNS_12basic_stringIwS2_S3_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEE4swapERS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC1ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2EOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ERKNS_12basic_stringIwS2_S3_EESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEC2ESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEaSEOS4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIcE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIcED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIcED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIcED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIwE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIwED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIwED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx117collateIwED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIcE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIcED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIcED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIcED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIwE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIwED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIwED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118messagesIwED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcE22_M_initialize_numpunctEP15__locale_struct@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIcED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwE22_M_initialize_numpunctEP15__locale_struct@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118numpunctIwED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt8ios_base7failureB5cxx11C1EPKcRKSt10error_code@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt8ios_base7failureB5cxx11C1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt8ios_base7failureB5cxx11C1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10error_code@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt8ios_base7failureB5cxx11C2EPKcRKSt10error_code@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt8ios_base7failureB5cxx11C2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt8ios_base7failureB5cxx11C2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10error_code@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt8ios_base7failureB5cxx11D0Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt8ios_base7failureB5cxx11D1Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt8ios_base7failureB5cxx11D2Ev@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt13random_device14_M_init_pretr1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14basic_ifstreamIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14basic_ifstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14basic_ofstreamIwSt11char_traitsIwEE4openERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNSt14basic_ofstreamIwSt11char_traitsIwEEC1ERKNSt7__cxx1112basic_stringIcS0_IcESaIcEEESt13_Ios_Openmode@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt17iostream_categoryv@GLIBCXX_3.4.21 5.1.1 + (optional=abi_c++11)_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EES4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt7getlineIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EES4_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx1110moneypunctIcLb0EEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx1110moneypunctIwLb0EEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx117collateIcEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx117collateIwEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx118messagesIcEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx118messagesIwEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx118numpunctIcEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx118numpunctIwEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9has_facetINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx1110moneypunctIcLb0EEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx1110moneypunctIcLb1EEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx1110moneypunctIwLb0EEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx1110moneypunctIwLb1EEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx117collateIcEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx117collateIwEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx118messagesIcEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx118messagesIwEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx118numpunctIcEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx118numpunctIwEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZSt9use_facetINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZStlsIwSt11char_traitsIwESaIwEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EES5_RKS8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EES5_RKS8_@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZStrsIwSt11char_traitsIwESaIwEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1110moneypunctIcLb0EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1110moneypunctIcLb1EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1110moneypunctIwLb0EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1110moneypunctIwLb1EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1114collate_bynameIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1114collate_bynameIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1115messages_bynameIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1115messages_bynameIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1115numpunct_bynameIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1115numpunct_bynameIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1117moneypunct_bynameIcLb0EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1117moneypunct_bynameIcLb1EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1117moneypunct_bynameIwLb0EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1117moneypunct_bynameIwLb1EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx117collateIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx117collateIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx118messagesIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx118messagesIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx118numpunctIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx118numpunctIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTINSt8ios_base7failureB5cxx11E@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1110moneypunctIcLb0EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1110moneypunctIcLb1EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1110moneypunctIwLb0EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1110moneypunctIwLb1EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1114collate_bynameIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1114collate_bynameIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1115messages_bynameIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1115messages_bynameIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1115numpunct_bynameIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1115numpunct_bynameIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1117moneypunct_bynameIcLb0EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1117moneypunct_bynameIcLb1EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1117moneypunct_bynameIwLb0EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1117moneypunct_bynameIwLb1EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx117collateIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx117collateIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx118messagesIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx118messagesIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx118numpunctIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx118numpunctIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTSNSt8ios_base7failureB5cxx11E@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTTNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTTNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTTNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTTNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1110moneypunctIcLb0EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1110moneypunctIcLb1EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1110moneypunctIwLb0EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1110moneypunctIwLb1EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1114collate_bynameIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1114collate_bynameIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1115messages_bynameIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1115messages_bynameIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1115numpunct_bynameIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1115numpunct_bynameIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1115time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1115time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1117moneypunct_bynameIcLb0EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1117moneypunct_bynameIcLb1EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1117moneypunct_bynameIwLb0EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1117moneypunct_bynameIwLb1EEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1118basic_stringstreamIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1119basic_istringstreamIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx117collateIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx117collateIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx118messagesIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx118messagesIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx118numpunctIcEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx118numpunctIwEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx118time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZTVNSt8ios_base7failureB5cxx11E@GLIBCXX_3.4.21 5.2 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.excprop +++ gcc-7-7.5.0/debian/libstdc++6.symbols.excprop @@ -0,0 +1,18 @@ + _ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv@CXXABI_1.3.3 4.4.0 + _ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv@CXXABI_1.3.3 4.4.0 + _ZNKSt15__exception_ptr13exception_ptrntEv@CXXABI_1.3.3 4.4.0 + _ZNSt15__exception_ptr13exception_ptr4swapERS0_@CXXABI_1.3.3 4.4.0 + _ZNSt15__exception_ptr13exception_ptrC1EMS0_FvvE@CXXABI_1.3.3 4.4.0 + _ZNSt15__exception_ptr13exception_ptrC1EPv@CXXABI_1.3.11 7 + _ZNSt15__exception_ptr13exception_ptrC1ERKS0_@CXXABI_1.3.3 4.4.0 + _ZNSt15__exception_ptr13exception_ptrC1Ev@CXXABI_1.3.3 4.4.0 + _ZNSt15__exception_ptr13exception_ptrC2EMS0_FvvE@CXXABI_1.3.3 4.4.0 + _ZNSt15__exception_ptr13exception_ptrC2ERKS0_@CXXABI_1.3.3 4.4.0 + _ZNSt15__exception_ptr13exception_ptrC2Ev@CXXABI_1.3.3 4.4.0 + _ZNSt15__exception_ptr13exception_ptrD1Ev@CXXABI_1.3.3 4.4.0 + _ZNSt15__exception_ptr13exception_ptrD2Ev@CXXABI_1.3.3 4.4.0 + _ZNSt15__exception_ptr13exception_ptraSERKS0_@CXXABI_1.3.3 4.4.0 + _ZNSt15__exception_ptreqERKNS_13exception_ptrES2_@CXXABI_1.3.3 4.4.0 + _ZNSt15__exception_ptrneERKNS_13exception_ptrES2_@CXXABI_1.3.3 4.4.0 + _ZSt17current_exceptionv@CXXABI_1.3.3 4.4.0 + _ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE@CXXABI_1.3.3 4.4.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.float128 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.float128 @@ -0,0 +1,7 @@ + CXXABI_FLOAT128@CXXABI_FLOAT128 5 + _ZTIPKg@CXXABI_FLOAT128 5 + _ZTIPg@CXXABI_FLOAT128 5 + _ZTIg@CXXABI_FLOAT128 5 + _ZTSPKg@CXXABI_FLOAT128 5 + _ZTSPg@CXXABI_FLOAT128 5 + _ZTSg@CXXABI_FLOAT128 5 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.glibcxxmath +++ gcc-7-7.5.0/debian/libstdc++6.symbols.glibcxxmath @@ -0,0 +1,22 @@ + acosl@GLIBCXX_3.4.3 4.1.1 + asinl@GLIBCXX_3.4.3 4.1.1 + atan2l@GLIBCXX_3.4 4.1.1 + atanl@GLIBCXX_3.4.3 4.1.1 + ceill@GLIBCXX_3.4.3 4.1.1 + coshl@GLIBCXX_3.4 4.1.1 + cosl@GLIBCXX_3.4 4.1.1 + expl@GLIBCXX_3.4 4.1.1 + floorl@GLIBCXX_3.4.3 4.1.1 + fmodl@GLIBCXX_3.4.3 4.1.1 + frexpl@GLIBCXX_3.4.3 4.1.1 + hypotl@GLIBCXX_3.4 4.1.1 + ldexpl@GLIBCXX_3.4.3 4.1.1 + log10l@GLIBCXX_3.4 4.1.1 + logl@GLIBCXX_3.4 4.1.1 + modfl@GLIBCXX_3.4.3 4.1.1 + powl@GLIBCXX_3.4 4.1.1 + sinhl@GLIBCXX_3.4 4.1.1 + sinl@GLIBCXX_3.4 4.1.1 + sqrtl@GLIBCXX_3.4 4.1.1 + tanhl@GLIBCXX_3.4 4.1.1 + tanl@GLIBCXX_3.4 4.1.1 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.hppa +++ gcc-7-7.5.0/debian/libstdc++6.symbols.hppa @@ -0,0 +1,9 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.excprop" +# removed, see PR libstdc++/39491 __signbitl@GLIBCXX_3.4 4.2.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.money.ldbl" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.hurd-i386 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.hurd-i386 @@ -0,0 +1,6 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit.hurd" +#include "libstdc++6.symbols.money.ldbl" + __gxx_personality_v0@CXXABI_1.3 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.i386 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.i386 @@ -0,0 +1,14 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + __gxx_personality_v0@CXXABI_1.3 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 +#(optional)_Z16__VLTRegisterSetPPvPKvjjS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z17__VLTRegisterPairPPvPKvjS2_@CXXABI_1.3.8 4.9.0 +#(optional)_Z21__VLTRegisterSetDebugPPvPKvjjS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z22__VLTRegisterPairDebugPPvPKvjS2_PKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)_Z24__VLTVerifyVtablePointerPPvPKv@CXXABI_1.3.8 4.9.0 +#(optional)_Z29__VLTVerifyVtablePointerDebugPPvPKvPKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)__VLTChangePermission@CXXABI_1.3.8 4.9.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.ia64 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.ia64 @@ -0,0 +1,53 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.excprop" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNSt14numeric_limitsInE10has_denormE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE10is_boundedE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE10is_integerE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE11round_styleE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE12has_infinityE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE12max_digits10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE12max_exponentE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE12min_exponentE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE13has_quiet_NaNE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE14is_specializedE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE14max_exponent10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE14min_exponent10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE15has_denorm_lossE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE15tinyness_beforeE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE17has_signaling_NaNE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE5radixE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE5trapsE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE6digitsE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE8digits10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE8is_exactE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE9is_iec559E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE9is_moduloE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsInE9is_signedE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE10has_denormE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE10is_boundedE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE10is_integerE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE11round_styleE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE12has_infinityE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE12max_digits10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE12max_exponentE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE12min_exponentE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE13has_quiet_NaNE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE14is_specializedE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE14max_exponent10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE14min_exponent10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE15has_denorm_lossE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE15tinyness_beforeE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE17has_signaling_NaNE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE5radixE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE5trapsE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE6digitsE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE8digits10E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE8is_exactE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE9is_iec559E@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE9is_moduloE@GLIBCXX_3.4.17 4.8 + _ZNSt14numeric_limitsIoE9is_signedE@GLIBCXX_3.4.17 4.8 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.kfreebsd-amd64 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.kfreebsd-amd64 @@ -0,0 +1,9 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.kfreebsd-i386 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.kfreebsd-i386 @@ -0,0 +1,7 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + __gxx_personality_v0@CXXABI_1.3 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.ldbl.32bit +++ gcc-7-7.5.0/debian/libstdc++6.symbols.ldbl.32bit @@ -0,0 +1,284 @@ + CXXABI_LDBL_1.3@CXXABI_LDBL_1.3 4.2.1 + GLIBCXX_LDBL_3.4.10@GLIBCXX_LDBL_3.4.10 4.3.0~rc2 + GLIBCXX_LDBL_3.4.7@GLIBCXX_LDBL_3.4.7 4.2.1 + GLIBCXX_LDBL_3.4@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt3tr14hashIgEclEg@GLIBCXX_LDBL_3.4.10 4.3.0~rc2 + _ZNKSt4hashIgEclEg@GLIBCXX_LDBL_3.4.10 4.3.0~rc2 + _ZGVNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8__do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8__do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcjcRSt8ios_basePcSA_Ri@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES4_S4_RSt8ios_basecT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES4_S4_RSt8ios_basecT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES4_S4_RSt8ios_basecT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES4_S4_RSt8ios_basecT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcjcS7_PcS8_Ri@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES4_S4_RSt8ios_baseccT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIgEES4_S4_RSt8ios_baseccT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecPKv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecPKv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE8__do_putES4_RSt8ios_basecd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcjwRSt8ios_basePwSA_Ri@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES4_S4_RSt8ios_basewT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES4_S4_RSt8ios_basewT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES4_S4_RSt8ios_basewT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES4_S4_RSt8ios_basewT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcjwPKwPwSA_Ri@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES4_S4_RSt8ios_basewcT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIgEES4_S4_RSt8ios_basewcT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewPKv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewPKv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE8__do_putES4_RSt8ios_basewd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8__do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8__do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basecRKSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basecg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basecRKSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basecg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE8__do_putES4_bRSt8ios_basecd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewRKSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewRKSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE8__do_putES4_bRSt8ios_basewd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSi10_M_extractIgEERSiRT_@GLIBCXX_LDBL_3.4.7 4.2.1 + _ZNSirsERg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSo9_M_insertIgEERSoT_@GLIBCXX_LDBL_3.4.7 4.2.1 + _ZNSolsEg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIgEERS2_RT_@GLIBCXX_LDBL_3.4.7 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIgEERS2_T_@GLIBCXX_LDBL_3.4.7 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE10has_denormE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE10is_boundedE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE10is_integerE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE11round_styleE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE12has_infinityE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE12max_digits10E@GLIBCXX_LDBL_3.4 4.5.0 + _ZNSt14numeric_limitsIgE12max_exponentE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE12min_exponentE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE13has_quiet_NaNE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE14is_specializedE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE14max_exponent10E@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE14min_exponent10E@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE15has_denorm_lossE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE15tinyness_beforeE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE17has_signaling_NaNE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE5radixE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE5trapsE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE6digitsE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE8digits10E@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE8is_exactE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE9is_iec559E@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE9is_moduloE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE9is_signedE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Ej@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt14__convert_to_vIgEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZStlsIgcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@GLIBCXX_LDBL_3.4 4.2.1 + _ZStlsIgwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@GLIBCXX_LDBL_3.4 4.2.1 + _ZStrsIgcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@GLIBCXX_LDBL_3.4 4.2.1 + _ZStrsIgwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTIPKg@CXXABI_LDBL_1.3 4.2.1 + _ZTIPg@CXXABI_LDBL_1.3 4.2.1 + _ZTIg@CXXABI_LDBL_1.3 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSPKg@CXXABI_LDBL_1.3 4.2.1 + _ZTSPg@CXXABI_LDBL_1.3 4.2.1 + _ZTSg@CXXABI_LDBL_1.3 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.ldbl.32bit.s390 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.ldbl.32bit.s390 @@ -0,0 +1,284 @@ + CXXABI_LDBL_1.3@CXXABI_LDBL_1.3 4.2.1 + GLIBCXX_LDBL_3.4.10@GLIBCXX_LDBL_3.4.10 4.3.0~rc2 + GLIBCXX_LDBL_3.4.7@GLIBCXX_LDBL_3.4.7 4.2.1 + GLIBCXX_LDBL_3.4@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt3tr14hashIgEclEg@GLIBCXX_LDBL_3.4.10 4.3.0~rc2 + _ZNKSt4hashIgEclEg@GLIBCXX_LDBL_3.4.10 4.3.0~rc2 + _ZGVNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8__do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8__do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcmcRSt8ios_basePcSA_Ri@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES4_S4_RSt8ios_basecT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES4_S4_RSt8ios_basecT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES4_S4_RSt8ios_basecT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES4_S4_RSt8ios_basecT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcmcS7_PcS8_Ri@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES4_S4_RSt8ios_baseccT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIgEES4_S4_RSt8ios_baseccT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecPKv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecPKv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE8__do_putES4_RSt8ios_basecd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcmwRSt8ios_basePwSA_Ri@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES4_S4_RSt8ios_basewT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES4_S4_RSt8ios_basewT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES4_S4_RSt8ios_basewT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES4_S4_RSt8ios_basewT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcmwPKwPwSA_Ri@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES4_S4_RSt8ios_basewcT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIgEES4_S4_RSt8ios_basewcT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewPKv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewPKv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE8__do_putES4_RSt8ios_basewd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8__do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8__do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basecRKSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basecg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basecRKSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basecg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE8__do_putES4_bRSt8ios_basecd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewRKSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewRKSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE8__do_putES4_bRSt8ios_basewd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSi10_M_extractIgEERSiRT_@GLIBCXX_LDBL_3.4.7 4.2.1 + _ZNSirsERg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSo9_M_insertIgEERSoT_@GLIBCXX_LDBL_3.4.7 4.2.1 + _ZNSolsEg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIgEERS2_RT_@GLIBCXX_LDBL_3.4.7 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIgEERS2_T_@GLIBCXX_LDBL_3.4.7 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE10has_denormE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE10is_boundedE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE10is_integerE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE11round_styleE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE12has_infinityE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE12max_digits10E@GLIBCXX_LDBL_3.4 4.5.0 + _ZNSt14numeric_limitsIgE12max_exponentE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE12min_exponentE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE13has_quiet_NaNE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE14is_specializedE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE14max_exponent10E@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE14min_exponent10E@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE15has_denorm_lossE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE15tinyness_beforeE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE17has_signaling_NaNE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE5radixE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE5trapsE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE6digitsE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE8digits10E@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE8is_exactE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE9is_iec559E@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE9is_moduloE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE9is_signedE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt14__convert_to_vIgEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZStlsIgcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@GLIBCXX_LDBL_3.4 4.2.1 + _ZStlsIgwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@GLIBCXX_LDBL_3.4 4.2.1 + _ZStrsIgcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@GLIBCXX_LDBL_3.4 4.2.1 + _ZStrsIgwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTIPKg@CXXABI_LDBL_1.3 4.2.1 + _ZTIPg@CXXABI_LDBL_1.3 4.2.1 + _ZTIg@CXXABI_LDBL_1.3 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSPKg@CXXABI_LDBL_1.3 4.2.1 + _ZTSPg@CXXABI_LDBL_1.3 4.2.1 + _ZTSg@CXXABI_LDBL_1.3 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.ldbl.64bit +++ gcc-7-7.5.0/debian/libstdc++6.symbols.ldbl.64bit @@ -0,0 +1,284 @@ + CXXABI_LDBL_1.3@CXXABI_LDBL_1.3 4.2.1 + GLIBCXX_LDBL_3.4.10@GLIBCXX_LDBL_3.4.10 4.3.0~rc2 + GLIBCXX_LDBL_3.4.7@GLIBCXX_LDBL_3.4.7 4.2.1 + GLIBCXX_LDBL_3.4@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt3tr14hashIgEclEg@GLIBCXX_LDBL_3.4.10 4.3.0~rc2 + _ZNKSt4hashIgEclEg@GLIBCXX_LDBL_3.4.10 4.3.0~rc2 + _ZGVNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZGVNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE16_M_extract_floatES4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8__do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRPv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRf@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRj@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRt@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8__do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcmcRSt8ios_basePcSA_Ri@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES4_S4_RSt8ios_basecT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES4_S4_RSt8ios_basecT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES4_S4_RSt8ios_basecT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES4_S4_RSt8ios_basecT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcmcS7_PcS8_Ri@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES4_S4_RSt8ios_baseccT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIgEES4_S4_RSt8ios_baseccT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecPKv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_RSt8ios_basecy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEclRSt8ios_basePcPKcRi@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecPKv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_RSt8ios_basecy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE8__do_putES4_RSt8ios_basecd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcmwRSt8ios_basePwSA_Ri@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES4_S4_RSt8ios_basewT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES4_S4_RSt8ios_basewT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES4_S4_RSt8ios_basewT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES4_S4_RSt8ios_basewT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcmwPKwPwSA_Ri@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES4_S4_RSt8ios_basewcT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIgEES4_S4_RSt8ios_basewcT_@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewPKv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_RSt8ios_basewy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwlRSt8ios_basePwPKwRi@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewPKv@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewb@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewl@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewm@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewx@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_RSt8ios_basewy@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE8__do_putES4_RSt8ios_basewd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8__do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE8__do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basecRKSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basecg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basecRKSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basecg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE8__do_putES4_bRSt8ios_basecd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKSs@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewRKSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewRKSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE8__do_putES4_bRSt8ios_basewd@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSi10_M_extractIgEERSiRT_@GLIBCXX_LDBL_3.4.7 4.2.1 + _ZNSirsERg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSo9_M_insertIgEERSoT_@GLIBCXX_LDBL_3.4.7 4.2.1 + _ZNSolsEg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIgEERS2_RT_@GLIBCXX_LDBL_3.4.7 4.2.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIgEERS2_T_@GLIBCXX_LDBL_3.4.7 4.2.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEg@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE10has_denormE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE10is_boundedE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE10is_integerE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE11round_styleE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE12has_infinityE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE12max_digits10E@GLIBCXX_LDBL_3.4 4.5.0 + _ZNSt14numeric_limitsIgE12max_exponentE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE12min_exponentE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE13has_quiet_NaNE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE14is_specializedE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE14max_exponent10E@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE14min_exponent10E@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE15has_denorm_lossE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE15tinyness_beforeE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE17has_signaling_NaNE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE5radixE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE5trapsE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE6digitsE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE8digits10E@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE8is_exactE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE9is_iec559E@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE9is_moduloE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt14numeric_limitsIgE9is_signedE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED2Ev@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt14__convert_to_vIgEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9has_facetINSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEEbRKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZSt9use_facetINSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEEERKT_RKSt6locale@GLIBCXX_LDBL_3.4 4.2.1 + _ZStlsIgcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@GLIBCXX_LDBL_3.4 4.2.1 + _ZStlsIgwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@GLIBCXX_LDBL_3.4 4.2.1 + _ZStrsIgcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@GLIBCXX_LDBL_3.4 4.2.1 + _ZStrsIgwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTINSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTIPKg@CXXABI_LDBL_1.3 4.2.1 + _ZTIPg@CXXABI_LDBL_1.3 4.2.1 + _ZTIg@CXXABI_LDBL_1.3 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTSPKg@CXXABI_LDBL_1.3 4.2.1 + _ZTSPg@CXXABI_LDBL_1.3 4.2.1 + _ZTSg@CXXABI_LDBL_1.3 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@GLIBCXX_LDBL_3.4 4.2.1 + _ZTVNSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEE@GLIBCXX_LDBL_3.4 4.2.1 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.m68k +++ gcc-7-7.5.0/debian/libstdc++6.symbols.m68k @@ -0,0 +1,6 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.money.ldbl" + __gxx_personality_v0@CXXABI_1.3 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.mips +++ gcc-7-7.5.0/debian/libstdc++6.symbols.mips @@ -0,0 +1,8 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.glibcxxmath" +##include "libstdc++6.symbols.money.ldbl" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.mips64 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.mips64 @@ -0,0 +1,7 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.mips64el +++ gcc-7-7.5.0/debian/libstdc++6.symbols.mips64el @@ -0,0 +1,10 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.money.ldbl" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.9.0 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.9.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.mips64r6 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.mips64r6 @@ -0,0 +1,7 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.mips64r6el +++ gcc-7-7.5.0/debian/libstdc++6.symbols.mips64r6el @@ -0,0 +1,10 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.money.ldbl" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.9 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.9 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.mipsel +++ gcc-7-7.5.0/debian/libstdc++6.symbols.mipsel @@ -0,0 +1,8 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.money.ldbl" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.mipsr6 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.mipsr6 @@ -0,0 +1,7 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" + __gxx_personality_v0@CXXABI_1.3 4.1 +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.glibcxxmath" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.mipsr6el +++ gcc-7-7.5.0/debian/libstdc++6.symbols.mipsr6el @@ -0,0 +1,8 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" + __gxx_personality_v0@CXXABI_1.3 4.1 +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.money.ldbl" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.money.f128 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.money.f128 @@ -0,0 +1,10 @@ + GLIBCXX_LDBL_3.4.21@GLIBCXX_LDBL_3.4.21 5 +# cxx11 symbols only + (optional=abi_c++11)_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRg@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basecg@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basecg@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewg@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewg@GLIBCXX_3.4.21 5.2 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.money.ldbl +++ gcc-7-7.5.0/debian/libstdc++6.symbols.money.ldbl @@ -0,0 +1,9 @@ +# cxx11 symbols only + (optional=abi_c++11)_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE3getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES4_S4_bRSt8ios_baseRSt12_Ios_IostateRe@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES4_bRSt8ios_basece@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES4_bRSt8ios_basece@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES4_bRSt8ios_basewe@GLIBCXX_3.4.21 5.2 + (optional=abi_c++11)_ZNKSt7__cxx119money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES4_bRSt8ios_basewe@GLIBCXX_3.4.21 5.2 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.not-armel +++ gcc-7-7.5.0/debian/libstdc++6.symbols.not-armel @@ -0,0 +1,24 @@ + _ZNSt13__future_base11_State_baseD0Ev@GLIBCXX_3.4.15 4.6 + _ZNSt13__future_base11_State_baseD1Ev@GLIBCXX_3.4.15 4.6 + _ZNSt13__future_base11_State_baseD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt13__future_base12_Result_baseC1Ev@GLIBCXX_3.4.15 4.6 + _ZNSt13__future_base12_Result_baseC2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt13__future_base12_Result_baseD0Ev@GLIBCXX_3.4.15 4.6 + _ZNSt13__future_base12_Result_baseD1Ev@GLIBCXX_3.4.15 4.6 + _ZNSt13__future_base12_Result_baseD2Ev@GLIBCXX_3.4.15 4.6 + _ZNSt13__future_base13_State_baseV211_Make_ready6_M_setEv@GLIBCXX_3.4.21 5 + _ZNSt13__future_base19_Async_state_commonD0Ev@GLIBCXX_3.4.17 4.7.0~rc1 + _ZNSt13__future_base19_Async_state_commonD1Ev@GLIBCXX_3.4.17 4.7.0~rc1 + _ZNSt13__future_base19_Async_state_commonD2Ev@GLIBCXX_3.4.17 4.7.0~rc1 + _ZNSt16nested_exceptionD0Ev@CXXABI_1.3.5 4.6 + _ZNSt16nested_exceptionD1Ev@CXXABI_1.3.5 4.6 + _ZNSt16nested_exceptionD2Ev@CXXABI_1.3.5 4.6 + _ZTINSt13__future_base11_State_baseE@GLIBCXX_3.4.15 4.6 + _ZTINSt13__future_base12_Result_baseE@GLIBCXX_3.4.15 4.6 + _ZTINSt13__future_base19_Async_state_commonE@GLIBCXX_3.4.17 4.7.0~rc1 + _ZTISt16nested_exception@CXXABI_1.3.5 4.6 + _ZTSNSt13__future_base19_Async_state_commonE@GLIBCXX_3.4.17 4.7.0~rc1 + _ZTVNSt13__future_base11_State_baseE@GLIBCXX_3.4.15 4.6 + _ZTVNSt13__future_base12_Result_baseE@GLIBCXX_3.4.15 4.6 + _ZTVNSt13__future_base19_Async_state_commonE@GLIBCXX_3.4.17 4.7.0~rc1 + _ZTVSt16nested_exception@CXXABI_1.3.5 4.6 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.powerpc +++ gcc-7-7.5.0/debian/libstdc++6.symbols.powerpc @@ -0,0 +1,9 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.excprop" + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.32bit" +#include "libstdc++6.symbols.money.f128" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.powerpcspe +++ gcc-7-7.5.0/debian/libstdc++6.symbols.powerpcspe @@ -0,0 +1,8 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.excprop" + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.32bit" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.ppc64 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.ppc64 @@ -0,0 +1,11 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.64bit" +#include "libstdc++6.symbols.money.f128" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.ppc64el +++ gcc-7-7.5.0/debian/libstdc++6.symbols.ppc64el @@ -0,0 +1,11 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.64bit" +#include "libstdc++6.symbols.money.f128" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.s390 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.s390 @@ -0,0 +1,558 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.common" +#include "libstdc++6.symbols.excprop" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx17__pool_alloc_base16_M_get_free_listEm@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx17__pool_alloc_base9_M_refillEm@GLIBCXX_3.4.2 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx6__poolILb0EE16_M_reclaim_blockEPcm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb0EE16_M_reserve_blockEmm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE16_M_reclaim_blockEPcm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx6__poolILb1EE16_M_reserve_blockEmm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx9free_list6_M_getEm@GLIBCXX_3.4.4 4.1.1 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsgetnEPci@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE6xsputnEPKci@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsgetnEPwi@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE6xsputnEPKwi@GLIBCXX_3.4.10 4.3.0~rc2 + _ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE@CXXABI_1.3 4.1.1 + _ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_@CXXABI_1.3 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE12find_last_ofEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE13find_first_ofEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc@GLIBCXX_3.4.5 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE16find_last_not_ofEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE17find_first_not_ofEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE2atEm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4copyEPwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE4findEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEPKwmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindERKS2_m@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE5rfindEwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKw@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE7compareEmmRKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE8_M_checkEmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEE8_M_limitEmm@GLIBCXX_3.4 4.1.1 + _ZNKSbIwSt11char_traitsIwESaIwEEixEm@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs12find_last_ofEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs13find_first_ofEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs15_M_check_lengthEmmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs15_M_check_lengthEmmPKc@GLIBCXX_3.4.5 4.1.1 + _ZNKSs16find_last_not_ofEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs16find_last_not_ofEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs17find_first_not_ofEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs2atEm@GLIBCXX_3.4 4.1.1 + _ZNKSs4copyEPcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs4findERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs4findEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEPKcmm@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindERKSsm@GLIBCXX_3.4 4.1.1 + _ZNKSs5rfindEcm@GLIBCXX_3.4 4.1.1 + _ZNKSs6substrEmm@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEmmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEmmPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEmmRKSs@GLIBCXX_3.4 4.1.1 + _ZNKSs7compareEmmRKSsmm@GLIBCXX_3.4 4.1.1 + _ZNKSs8_M_checkEmPKc@GLIBCXX_3.4 4.1.1 + _ZNKSs8_M_limitEmm@GLIBCXX_3.4 4.1.1 + _ZNKSsixEm@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIcE6_M_putEPcmPKcPK2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt11__timepunctIwE6_M_putEPwmPKwPK2tm@GLIBCXX_3.4 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt7codecvtIcc11__mbstate_tE9do_lengthERS0_PKcS4_m@GLIBCXX_3.4 4.1.1 + _ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_m@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIcE12_M_transformEPcPKcm@GLIBCXX_3.4 4.1.1 + _ZNKSt7collateIwE12_M_transformEPwPKwm@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intEPKcmcRSt8ios_basePcS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatEPKcmcS6_PcS7_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intEPKcmwRSt8ios_basePwS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatEPKcmwPKwPwS9_Ri@GLIBCXX_3.4 4.1.1 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_numES3_S3_RiiimRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE15_M_extract_nameES3_S3_RiPPKcmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES3_S3_RiPPKcmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.14 4.5.0 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_numES3_S3_RiiimRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE15_M_extract_nameES3_S3_RiPPKwmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4 4.1.1 + _ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES3_S3_RiPPKwmRSt8ios_baseRSt12_Ios_Iostate@GLIBCXX_3.4.14 4.5.0 + _ZNKSt8valarrayImE4sizeEv@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE10_S_compareEmm@GLIBCXX_3.4.16 4.7 + _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEmwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE14_M_replace_auxEmmmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safeEmmPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE18_S_construct_aux_2EmwRKS1_@GLIBCXX_3.4.14 4.5.0 + _ZNSbIwSt11char_traitsIwESaIwEE2atEm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep8_M_cloneERKS1_m@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEmmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE5eraseEmm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6appendEmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignEPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6assignEmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEN9__gnu_cxx17__normal_iteratorIPwS2_EEmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmRKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6insertEmmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6resizeEm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmPKwm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmRKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7replaceEmmmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE7reserveEm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw@GLIBCXX_3.4.5 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC1EmwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mm@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mmRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEC2EmwRKS1_@GLIBCXX_3.4 4.1.1 + _ZNSbIwSt11char_traitsIwESaIwEEixEm@GLIBCXX_3.4 4.1.1 + _ZNSi3getEPci@GLIBCXX_3.4 4.1.1 + _ZNSi3getEPcic@GLIBCXX_3.4 4.1.1 + _ZNSi4readEPci@GLIBCXX_3.4 4.1.1 + _ZNSi5seekgExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSi6ignoreEi@GLIBCXX_3.4 4.1.1 + _ZNSi6ignoreEi@GLIBCXX_3.4.5 4.1.1 + _ZNSi6ignoreEii@GLIBCXX_3.4 4.1.1 + _ZNSi7getlineEPci@GLIBCXX_3.4 4.1.1 + _ZNSi7getlineEPcic@GLIBCXX_3.4 4.1.1 + _ZNSi8readsomeEPci@GLIBCXX_3.4 4.1.1 + _ZNSo5seekpExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSo5writeEPKci@GLIBCXX_3.4 4.1.1 + _ZNSo8_M_writeEPKci@GLIBCXX_3.4 4.1.1 + _ZNSs10_S_compareEmm@GLIBCXX_3.4.16 4.7 + _ZNSs12_S_constructEmcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs14_M_replace_auxEmmmc@GLIBCXX_3.4 4.1.1 + _ZNSs15_M_replace_safeEmmPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs18_S_construct_aux_2EmcRKSaIcE@GLIBCXX_3.4.14 4.5.0 + _ZNSs2atEm@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4.5 4.1.1 + _ZNSs4_Rep8_M_cloneERKSaIcEm@GLIBCXX_3.4 4.1.1 + _ZNSs4_Rep9_S_createEmmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSs5eraseEmm@GLIBCXX_3.4 4.1.1 + _ZNSs6appendEPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs6appendERKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSs6appendEmc@GLIBCXX_3.4 4.1.1 + _ZNSs6assignEPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs6assignERKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSs6assignEmc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmPKc@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmRKSs@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmRKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSs6insertEmmc@GLIBCXX_3.4 4.1.1 + _ZNSs6resizeEm@GLIBCXX_3.4 4.1.1 + _ZNSs6resizeEmc@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_copyEPcPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_copyEPcPKcm@GLIBCXX_3.4.5 4.1.1 + _ZNSs7_M_moveEPcPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs7_M_moveEPcPKcm@GLIBCXX_3.4.5 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmPKc@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmPKcm@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmRKSs@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmRKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSs7replaceEmmmc@GLIBCXX_3.4 4.1.1 + _ZNSs7reserveEm@GLIBCXX_3.4 4.1.1 + _ZNSs9_M_assignEPcmc@GLIBCXX_3.4 4.1.1 + _ZNSs9_M_assignEPcmc@GLIBCXX_3.4.5 4.1.1 + _ZNSs9_M_mutateEmmm@GLIBCXX_3.4 4.1.1 + _ZNSsC1EPKcmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1ERKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSsC1ERKSsmmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC1EmcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2EPKcmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2ERKSsmm@GLIBCXX_3.4 4.1.1 + _ZNSsC2ERKSsmmRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsC2EmcRKSaIcE@GLIBCXX_3.4 4.1.1 + _ZNSsixEm@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC1EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC1EPci@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC2EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt10istrstreamC2EPci@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1EPSt18__moneypunct_cacheIcLb0EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2EPSt18__moneypunct_cacheIcLb0EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb0EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1EPSt18__moneypunct_cacheIcLb1EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2EPSt18__moneypunct_cacheIcLb1EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIcLb1EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1EPSt18__moneypunct_cacheIwLb0EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2EPSt18__moneypunct_cacheIwLb0EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb0EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1EPSt18__moneypunct_cacheIwLb1EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2EPSt18__moneypunct_cacheIwLb1EEm@GLIBCXX_3.4 4.1.1 + _ZNSt10moneypunctIwLb1EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1EPSt17__timepunct_cacheIcEm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2EPSt17__timepunct_cacheIcEm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1EPSt17__timepunct_cacheIwEm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2EPSt17__timepunct_cacheIwEm@GLIBCXX_3.4 4.1.1 + _ZNSt11__timepunctIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt11this_thread11__sleep_forENSt6chrono8durationIxSt5ratioILx1ELx1EEEENS1_IxS2_ILx1ELx1000000000EEEE@GLIBCXX_3.4.18 4.8 + _ZNSt12__basic_fileIcE6xsgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE6xsputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE7seekoffExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcE8xsputn_2EPKciS2_i@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIcEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt12ctype_bynameIwEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf8_M_allocEm@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambuf8_M_setupEPcS0_i@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPFPvmEPFvS0_E@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKai@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPKhi@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPaiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPciS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1EPhiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC1Ei@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPFPvmEPFvS0_E@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKai@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKci@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPKhi@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPaiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPciS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2EPhiS0_@GLIBCXX_3.4 4.1.1 + _ZNSt12strstreambufC2Ei@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE13_M_set_bufferEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE6xsputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE13_M_set_bufferEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE22_M_convert_to_externalEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6setbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE6xsputnEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE7_M_seekExSt12_Ios_Seekdir11__mbstate_t@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_filebufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE3getEPwiw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE4readEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi@GLIBCXX_3.4.5 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEij@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE7getlineEPwiw@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_istreamIwSt11char_traitsIwEE8readsomeEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpExSt12_Ios_Seekdir@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_writeEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIcc11__mbstate_tEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIcEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIcEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt14collate_bynameIwEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_gbumpEi@GLIBCXX_3.4.16 4.7 + _ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_pbumpEi@GLIBCXX_3.4.16 4.7 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5sgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE5sputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_gbumpEi@GLIBCXX_3.4.16 4.7 + _ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_pbumpEi@GLIBCXX_3.4.16 4.7 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5sgetnEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE5sputnEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_streambufIwSt11char_traitsIwEE9pubsetbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE6setbufEPci@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcmm@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS4_x@GLIBCXX_3.4.16 4.7 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE6setbufEPwi@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwmm@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@GLIBCXX_3.4 4.1.1 + _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS4_x@GLIBCXX_3.4.16 4.7 + _ZNSt15messages_bynameIcEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIcEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15messages_bynameIwEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIcEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15numpunct_bynameIwEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_get_bynameIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt16__numpunct_cacheIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt17__timepunct_cacheIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb0EEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIcLb1EEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb0EEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EEC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt17moneypunct_bynameIwLb1EEC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb0EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb0EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIcLb1EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb0EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt18__moneypunct_cacheIwLb1EEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC1EP15__locale_structPKtbm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC1EPKtbm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC2EP15__locale_structPKtbm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIcEC2EPKtbm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt5ctypeIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@GLIBCXX_3.4 4.1.1 + _ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetEm@GLIBCXX_3.4.7 4.1.1 + _ZNSt6locale5_ImplC1EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC1ERKS0_m@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2EPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2ERKS0_m@GLIBCXX_3.4 4.1.1 + _ZNSt6locale5_ImplC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIcc11__mbstate_tEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7codecvtIwc11__mbstate_tEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt7collateIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC1EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC2EP15__locale_structPKcm@GLIBCXX_3.4 4.1.1 + _ZNSt8messagesIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1EPSt16__numpunct_cacheIcEm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2EPSt16__numpunct_cacheIcEm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIcEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1EPSt16__numpunct_cacheIwEm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2EP15__locale_structm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2EPSt16__numpunct_cacheIwEm@GLIBCXX_3.4 4.1.1 + _ZNSt8numpunctIwEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEC1ERKS0_@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEC2ERKS0_@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImED1Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImED2Ev@GLIBCXX_3.4 4.1.1 + _ZNSt8valarrayImEixEm@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1Em@GLIBCXX_3.4 4.1.1 + _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2Em@GLIBCXX_3.4 4.1.1 + _ZSt11_Hash_bytesPKvmm@CXXABI_1.3.5 4.6 + _ZSt15_Fnv_hash_bytesPKvmm@CXXABI_1.3.5 4.6 + _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_i@GLIBCXX_3.4.9 4.2.1 + _ZSt16__ostream_insertIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_i@GLIBCXX_3.4.9 4.2.1 + _ZSt17__copy_streambufsIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_@GLIBCXX_3.4.6 4.1.1 + _ZSt17__copy_streambufsIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_@GLIBCXX_3.4.6 4.1.1 + _ZSt17__verify_groupingPKcmRKSs@GLIBCXX_3.4.10 4.3 + _ZSt21__copy_streambufs_eofIcSt11char_traitsIcEEiPSt15basic_streambufIT_T0_ES6_Rb@GLIBCXX_3.4.9 4.2.1 + _ZSt21__copy_streambufs_eofIwSt11char_traitsIwEEiPSt15basic_streambufIT_T0_ES6_Rb@GLIBCXX_3.4.9 4.2.1 + _ZThn8_NSdD0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSdD1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt9strstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZThn8_NSt9strstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSdD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSdD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSiD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSiD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSoD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSoD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10istrstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10istrstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10ostrstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt10ostrstreamD1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_istreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ifstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt14basic_ofstreamIwSt11char_traitsIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt18basic_stringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_istringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt9strstreamD0Ev@GLIBCXX_3.4 4.1.1 + _ZTv0_n12_NSt9strstreamD1Ev@GLIBCXX_3.4 4.1.1 + _Znam@GLIBCXX_3.4 4.1.1 + _ZnamRKSt9nothrow_t@GLIBCXX_3.4 4.1.1 + _Znwm@GLIBCXX_3.4 4.1.1 + _ZnwmRKSt9nothrow_t@GLIBCXX_3.4 4.1.1 + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.32bit.s390" + _ZNSt12__basic_fileIcEC1EP15pthread_mutex_t@GLIBCXX_3.4 4.1.1 + _ZNSt12__basic_fileIcEC2EP15pthread_mutex_t@GLIBCXX_3.4 4.1.1 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.s390x +++ gcc-7-7.5.0/debian/libstdc++6.symbols.s390x @@ -0,0 +1,13 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" + _ZN9__gnu_cxx12__atomic_addEPVii@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVii@GLIBCXX_3.4 4.1.1 +#DEPRECATED: 4.2.2-4# ldexpf@GLIBCXX_3.4.3 4.1.1 +#DEPRECATED: 4.2.2-4# powf@GLIBCXX_3.4 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.64bit" +#include "libstdc++6.symbols.money.f128" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.sh4 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.sh4 @@ -0,0 +1,8 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.money.ldbl" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.sparc +++ gcc-7-7.5.0/debian/libstdc++6.symbols.sparc @@ -0,0 +1,9 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.excprop" + __gxx_personality_v0@CXXABI_1.3 4.1.1 +#include "libstdc++6.symbols.glibcxxmath" +#include "libstdc++6.symbols.ldbl.32bit" +#include "libstdc++6.symbols.money.f128" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3.0~rc2 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.sparc64 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.sparc64 @@ -0,0 +1,11 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.64bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.money.ldbl" + _ZN9__gnu_cxx12__atomic_addEPVli@GLIBCXX_3.4 4.1.1 + _ZN9__gnu_cxx18__exchange_and_addEPVli@GLIBCXX_3.4 4.1.1 +# FIXME: Currently no ldbl symbols in the 64bit libstdc++ on sparc. +# #include "libstdc++6.symbols.ldbl.64bit" + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 --- gcc-7-7.5.0.orig/debian/libstdc++6.symbols.x32 +++ gcc-7-7.5.0/debian/libstdc++6.symbols.x32 @@ -0,0 +1,27 @@ +libstdc++.so.6 libstdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + __gxx_personality_v0@CXXABI_1.3 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 +#(optional)_Z16__VLTRegisterSetPPvPKvjjS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z17__VLTRegisterPairPPvPKvjS2_@CXXABI_1.3.8 4.9.0 +#(optional)_Z21__VLTRegisterSetDebugPPvPKvjjS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z22__VLTRegisterPairDebugPPvPKvjS2_PKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)_Z24__VLTVerifyVtablePointerPPvPKv@CXXABI_1.3.8 4.9.0 +#(optional)_Z29__VLTVerifyVtablePointerDebugPPvPKvPKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)__VLTChangePermission@CXXABI_1.3.8 4.9.0 + _ZTIPKn@CXXABI_1.3.5 4.9.0 + _ZTIPKo@CXXABI_1.3.5 4.9.0 + _ZTIPn@CXXABI_1.3.5 4.9.0 + _ZTIPo@CXXABI_1.3.5 4.9.0 + _ZTIn@CXXABI_1.3.5 4.9.0 + _ZTIo@CXXABI_1.3.5 4.9.0 + _ZTSPKn@CXXABI_1.3.9 4.9.0 + _ZTSPKo@CXXABI_1.3.9 4.9.0 + _ZTSPn@CXXABI_1.3.9 4.9.0 + _ZTSPo@CXXABI_1.3.9 4.9.0 + _ZTSn@CXXABI_1.3.9 4.9.0 + _ZTSo@CXXABI_1.3.9 4.9.0 --- gcc-7-7.5.0.orig/debian/libstdc++CXX.postinst +++ gcc-7-7.5.0/debian/libstdc++CXX.postinst @@ -0,0 +1,18 @@ +#! /bin/sh -e + +case "$1" in + configure) + docdir=/usr/share/doc/libstdc++@CXX@ + if [ -d $docdir ] && [ ! -h $docdir ]; then + rm -rf $docdir + ln -s gcc-@BV@-base $docdir + fi + + if [ -n "$2" ] && [ -d /usr/share/gcc-4.9 ] && dpkg --compare-versions "$2" lt 5.1.1-10; then + find /usr/share/gcc-4.9/python -name __pycache__ -type d -print0 | xargs -r0 rm -rf + find /usr/share/gcc-4.9/python -name '*.py[co]' -type f -print0 | xargs -r0 rm -f + find /usr/share/gcc-4.9 -empty -delete 2>/dev/null || true + fi +esac + +#DEBHELPER# --- gcc-7-7.5.0.orig/debian/libstdc++CXX.prerm +++ gcc-7-7.5.0/debian/libstdc++CXX.prerm @@ -0,0 +1,13 @@ +#! /bin/sh + +set -e + +case "$1" in + remove|upgrade) + files=$(dpkg -L libstdc++@CXX@@TARGET_QUAL@ | awk -F/ 'BEGIN {OFS="/"} /\.py$/ {$NF=sprintf("__pycache__/%s.*.py[co]", substr($NF,1,length($NF)-3)); print}') + rm -f $files + dirs=$(dpkg -L libstdc++@CXX@@TARGET_QUAL@ | awk -F/ 'BEGIN {OFS="/"} /\.py$/ {NF--; print}' | sort -u) + find $dirs -mindepth 1 -maxdepth 1 -name __pycache__ -type d -empty | xargs -r rmdir +esac + +#DEBHELPER# --- gcc-7-7.5.0.orig/debian/libtsan0.symbols +++ gcc-7-7.5.0/debian/libtsan0.symbols @@ -0,0 +1,1807 @@ +libtsan.so.0 libtsan0 #MINVER# + AnnotateBenignRace@Base 4.9 + AnnotateBenignRaceSized@Base 4.9 + AnnotateCondVarSignal@Base 4.9 + AnnotateCondVarSignalAll@Base 4.9 + AnnotateCondVarWait@Base 4.9 + AnnotateEnableRaceDetection@Base 4.9 + AnnotateExpectRace@Base 4.9 + AnnotateFlushExpectedRaces@Base 4.9 + AnnotateFlushState@Base 4.9 + AnnotateHappensAfter@Base 4.9 + AnnotateHappensBefore@Base 4.9 + AnnotateIgnoreReadsBegin@Base 4.9 + AnnotateIgnoreReadsEnd@Base 4.9 + AnnotateIgnoreSyncBegin@Base 4.9 + AnnotateIgnoreSyncEnd@Base 4.9 + AnnotateIgnoreWritesBegin@Base 4.9 + AnnotateIgnoreWritesEnd@Base 4.9 + AnnotateMemoryIsInitialized@Base 4.9 + AnnotateMemoryIsUninitialized@Base 5 + AnnotateMutexIsNotPHB@Base 4.9 + AnnotateMutexIsUsedAsCondVar@Base 4.9 + AnnotateNewMemory@Base 4.9 + AnnotateNoOp@Base 4.9 + AnnotatePCQCreate@Base 4.9 + AnnotatePCQDestroy@Base 4.9 + AnnotatePCQGet@Base 4.9 + AnnotatePCQPut@Base 4.9 + AnnotatePublishMemoryRange@Base 4.9 + AnnotateRWLockAcquired@Base 4.9 + AnnotateRWLockCreate@Base 4.9 + AnnotateRWLockCreateStatic@Base 4.9 + AnnotateRWLockDestroy@Base 4.9 + AnnotateRWLockReleased@Base 4.9 + AnnotateThreadName@Base 4.9 + AnnotateTraceMemory@Base 4.9 + AnnotateUnpublishMemoryRange@Base 4.9 + RunningOnValgrind@Base 4.9 + ThreadSanitizerQuery@Base 4.9 + ValgrindSlowdown@Base 4.9 + WTFAnnotateBenignRaceSized@Base 4.9 + WTFAnnotateHappensAfter@Base 4.9 + WTFAnnotateHappensBefore@Base 4.9 + _ZN11__sanitizer11CheckFailedEPKciS1_yy@Base 4.9 + _ZN11__sanitizer7OnPrintEPKc@Base 4.9 + _ZN6__tsan10OnFinalizeEb@Base 4.9 + _ZN6__tsan12OnInitializeEv@Base 5 + _ZN6__tsan8OnReportEPKNS_10ReportDescEb@Base 4.9 + _ZdaPv@Base 4.9 + _ZdaPvRKSt9nothrow_t@Base 4.9 + _ZdlPv@Base 4.9 + _ZdlPvRKSt9nothrow_t@Base 4.9 + _Znam@Base 4.9 + _ZnamRKSt9nothrow_t@Base 4.9 + _Znwm@Base 4.9 + _ZnwmRKSt9nothrow_t@Base 4.9 + __asan_backtrace_alloc@Base 4.9 + __asan_backtrace_close@Base 4.9 + __asan_backtrace_create_state@Base 4.9 + __asan_backtrace_dwarf_add@Base 4.9 + __asan_backtrace_free@Base 4.9 + __asan_backtrace_get_view@Base 4.9 + __asan_backtrace_initialize@Base 4.9 + __asan_backtrace_open@Base 4.9 + __asan_backtrace_pcinfo@Base 4.9 + __asan_backtrace_qsort@Base 4.9 + __asan_backtrace_release_view@Base 4.9 + __asan_backtrace_syminfo@Base 4.9 + __asan_backtrace_vector_finish@Base 4.9 + __asan_backtrace_vector_grow@Base 4.9 + __asan_backtrace_vector_release@Base 4.9 + __asan_cplus_demangle_builtin_types@Base 4.9 + __asan_cplus_demangle_fill_ctor@Base 4.9 + __asan_cplus_demangle_fill_dtor@Base 4.9 + __asan_cplus_demangle_fill_extended_operator@Base 4.9 + __asan_cplus_demangle_fill_name@Base 4.9 + __asan_cplus_demangle_init_info@Base 4.9 + __asan_cplus_demangle_mangled_name@Base 4.9 + __asan_cplus_demangle_operators@Base 4.9 + __asan_cplus_demangle_print@Base 4.9 + __asan_cplus_demangle_print_callback@Base 4.9 + __asan_cplus_demangle_type@Base 4.9 + __asan_cplus_demangle_v3@Base 4.9 + __asan_cplus_demangle_v3_callback@Base 4.9 + __asan_internal_memcmp@Base 4.9 + __asan_internal_memcpy@Base 4.9 + __asan_internal_memset@Base 4.9 + __asan_internal_strcmp@Base 4.9 + __asan_internal_strlen@Base 4.9 + __asan_internal_strncmp@Base 4.9 + __asan_internal_strnlen@Base 4.9 + __asan_is_gnu_v3_mangled_ctor@Base 4.9 + __asan_is_gnu_v3_mangled_dtor@Base 4.9 + __asan_java_demangle_v3@Base 4.9 + __asan_java_demangle_v3_callback@Base 4.9 + __close@Base 4.9 + __cxa_atexit@Base 4.9 + __cxa_guard_abort@Base 4.9 + __cxa_guard_acquire@Base 4.9 + __cxa_guard_release@Base 4.9 + __fxstat64@Base 4.9 + __fxstat@Base 4.9 + __getdelim@Base 5 + __interceptor___close@Base 4.9 + __interceptor___cxa_atexit@Base 4.9 + __interceptor___fxstat64@Base 4.9 + __interceptor___fxstat@Base 4.9 + __interceptor___getdelim@Base 5 + __interceptor___isoc99_fprintf@Base 5 + __interceptor___isoc99_fscanf@Base 4.9 + __interceptor___isoc99_printf@Base 5 + __interceptor___isoc99_scanf@Base 4.9 + __interceptor___isoc99_snprintf@Base 5 + __interceptor___isoc99_sprintf@Base 5 + __interceptor___isoc99_sscanf@Base 4.9 + __interceptor___isoc99_vfprintf@Base 5 + __interceptor___isoc99_vfscanf@Base 4.9 + __interceptor___isoc99_vprintf@Base 5 + __interceptor___isoc99_vscanf@Base 4.9 + __interceptor___isoc99_vsnprintf@Base 5 + __interceptor___isoc99_vsprintf@Base 5 + __interceptor___isoc99_vsscanf@Base 4.9 + __interceptor___libc_memalign@Base 4.9 + __interceptor___lxstat64@Base 4.9 + __interceptor___lxstat@Base 4.9 + __interceptor___overflow@Base 5 + __interceptor___res_iclose@Base 4.9 + __interceptor___sigsetjmp@Base 4.9 + __interceptor___tls_get_addr@Base 6 + __interceptor___uflow@Base 5 + __interceptor___underflow@Base 5 + __interceptor___woverflow@Base 5 + __interceptor___wuflow@Base 5 + __interceptor___wunderflow@Base 5 + __interceptor___xpg_strerror_r@Base 4.9 + __interceptor___xstat64@Base 4.9 + __interceptor___xstat@Base 4.9 + __interceptor__exit@Base 4.9 + __interceptor__obstack_begin@Base 5 + __interceptor__obstack_begin_1@Base 5 + __interceptor__obstack_newchunk@Base 5 + __interceptor__setjmp@Base 4.9 + __interceptor_abort@Base 4.9 + __interceptor_accept4@Base 4.9 + __interceptor_accept@Base 4.9 + __interceptor_aligned_alloc@Base 5 + __interceptor_asctime@Base 4.9 + __interceptor_asctime_r@Base 4.9 + __interceptor_asprintf@Base 5 + __interceptor_atexit@Base 4.9 + __interceptor_backtrace@Base 4.9 + __interceptor_backtrace_symbols@Base 4.9 + __interceptor_bind@Base 4.9 + __interceptor_calloc@Base 4.9 + __interceptor_canonicalize_file_name@Base 4.9 + __interceptor_capget@Base 5 + __interceptor_capset@Base 5 + __interceptor_cfree@Base 4.9 + __interceptor_clock_getres@Base 4.9 + __interceptor_clock_gettime@Base 4.9 + __interceptor_clock_settime@Base 4.9 + __interceptor_close@Base 4.9 + __interceptor_closedir@Base 6 + __interceptor_confstr@Base 4.9 + __interceptor_connect@Base 4.9 + __interceptor_creat64@Base 4.9 + __interceptor_creat@Base 4.9 + __interceptor_ctermid@Base 7 + __interceptor_ctime@Base 4.9 + __interceptor_ctime_r@Base 4.9 + __interceptor_dl_iterate_phdr@Base 6 + __interceptor_dlclose@Base 4.9 + __interceptor_dlopen@Base 4.9 + __interceptor_drand48_r@Base 4.9 + __interceptor_dup2@Base 4.9 + __interceptor_dup3@Base 4.9 + __interceptor_dup@Base 4.9 + __interceptor_endgrent@Base 5 + __interceptor_endpwent@Base 5 + __interceptor_epoll_create1@Base 4.9 + __interceptor_epoll_create@Base 4.9 + __interceptor_epoll_ctl@Base 4.9 + __interceptor_epoll_pwait@Base 7 + __interceptor_epoll_wait@Base 4.9 + __interceptor_ether_aton@Base 4.9 + __interceptor_ether_aton_r@Base 4.9 + __interceptor_ether_hostton@Base 4.9 + __interceptor_ether_line@Base 4.9 + __interceptor_ether_ntoa@Base 4.9 + __interceptor_ether_ntoa_r@Base 4.9 + __interceptor_ether_ntohost@Base 4.9 + __interceptor_eventfd@Base 4.9 + __interceptor_eventfd_read@Base 7 + __interceptor_eventfd_write@Base 7 + __interceptor_fclose@Base 4.9 + __interceptor_fdopen@Base 5 + __interceptor_fflush@Base 4.9 + __interceptor_fgetxattr@Base 5 + __interceptor_flistxattr@Base 5 + __interceptor_fmemopen@Base 5 + __interceptor_fopen64@Base 5 + __interceptor_fopen@Base 4.9 + __interceptor_fopencookie@Base 6 + __interceptor_fork@Base 4.9 + __interceptor_fprintf@Base 5 + __interceptor_fread@Base 4.9 + __interceptor_free@Base 4.9 + __interceptor_freopen64@Base 5 + __interceptor_freopen@Base 4.9 + __interceptor_frexp@Base 4.9 + __interceptor_frexpf@Base 4.9 + __interceptor_frexpl@Base 4.9 + __interceptor_fscanf@Base 4.9 + __interceptor_fstat64@Base 4.9 + __interceptor_fstat@Base 4.9 + __interceptor_fstatfs64@Base 4.9 + __interceptor_fstatfs@Base 4.9 + __interceptor_fstatvfs64@Base 4.9 + __interceptor_fstatvfs@Base 4.9 + __interceptor_ftime@Base 5 + __interceptor_fwrite@Base 4.9 + __interceptor_get_current_dir_name@Base 4.9 + __interceptor_getaddrinfo@Base 4.9 + __interceptor_getcwd@Base 4.9 + __interceptor_getdelim@Base 4.9 + __interceptor_getgroups@Base 4.9 + __interceptor_gethostbyaddr@Base 4.9 + __interceptor_gethostbyaddr_r@Base 4.9 + __interceptor_gethostbyname2@Base 4.9 + __interceptor_gethostbyname2_r@Base 4.9 + __interceptor_gethostbyname@Base 4.9 + __interceptor_gethostbyname_r@Base 4.9 + __interceptor_gethostent@Base 4.9 + __interceptor_gethostent_r@Base 4.9 + __interceptor_getifaddrs@Base 5 + __interceptor_getitimer@Base 4.9 + __interceptor_getline@Base 4.9 + __interceptor_getmntent@Base 4.9 + __interceptor_getmntent_r@Base 4.9 + __interceptor_getnameinfo@Base 5 + __interceptor_getpass@Base 5 + __interceptor_getpeername@Base 4.9 + __interceptor_getresgid@Base 5 + __interceptor_getresuid@Base 5 + __interceptor_getsockname@Base 4.9 + __interceptor_getsockopt@Base 4.9 + __interceptor_gettimeofday@Base 4.9 + __interceptor_getxattr@Base 5 + __interceptor_glob64@Base 5 + __interceptor_glob@Base 5 + __interceptor_gmtime@Base 4.9 + __interceptor_gmtime_r@Base 4.9 + __interceptor_iconv@Base 4.9 + __interceptor_if_indextoname@Base 5 + __interceptor_if_nametoindex@Base 5 + __interceptor_inet_aton@Base 4.9 + __interceptor_inet_ntop@Base 4.9 + __interceptor_inet_pton@Base 4.9 + __interceptor_initgroups@Base 4.9 + __interceptor_inotify_init1@Base 4.9 + __interceptor_inotify_init@Base 4.9 + __interceptor_ioctl@Base 4.9 + __interceptor_kill@Base 4.9 + __interceptor_lgamma@Base 4.9 + __interceptor_lgamma_r@Base 4.9 + __interceptor_lgammaf@Base 4.9 + __interceptor_lgammaf_r@Base 4.9 + __interceptor_lgammal@Base 4.9 + __interceptor_lgammal_r@Base 4.9 + __interceptor_lgetxattr@Base 5 + __interceptor_listen@Base 4.9 + __interceptor_listxattr@Base 5 + __interceptor_llistxattr@Base 5 + __interceptor_localtime@Base 4.9 + __interceptor_localtime_r@Base 4.9 + __interceptor_longjmp@Base 4.9 + __interceptor_lrand48_r@Base 4.9 + __interceptor_malloc@Base 4.9 + __interceptor_malloc_usable_size@Base 4.9 + __interceptor_mbsnrtowcs@Base 4.9 + __interceptor_mbsrtowcs@Base 4.9 + __interceptor_mbstowcs@Base 4.9 + __interceptor_memalign@Base 4.9 + __interceptor_memchr@Base 4.9 + __interceptor_memcmp@Base 4.9 + __interceptor_memcpy@Base 4.9 + __interceptor_memmem@Base 7 + __interceptor_memmove@Base 4.9 + __interceptor_memrchr@Base 4.9 + __interceptor_memset@Base 4.9 + __interceptor_mincore@Base 6 + __interceptor_mktime@Base 5 + __interceptor_mlock@Base 4.9 + __interceptor_mlockall@Base 4.9 + __interceptor_mmap64@Base 4.9 + __interceptor_mmap@Base 4.9 + __interceptor_modf@Base 4.9 + __interceptor_modff@Base 4.9 + __interceptor_modfl@Base 4.9 + __interceptor_munlock@Base 4.9 + __interceptor_munlockall@Base 4.9 + __interceptor_munmap@Base 4.9 + __interceptor_nanosleep@Base 4.9 + __interceptor_on_exit@Base 4.9 + __interceptor_open64@Base 4.9 + __interceptor_open@Base 4.9 + __interceptor_open_memstream@Base 5 + __interceptor_open_wmemstream@Base 5 + __interceptor_opendir@Base 4.9 + __interceptor_pipe2@Base 4.9 + __interceptor_pipe@Base 4.9 + __interceptor_poll@Base 4.9 + __interceptor_posix_memalign@Base 4.9 + __interceptor_ppoll@Base 4.9 + __interceptor_prctl@Base 4.9 + __interceptor_pread64@Base 4.9 + __interceptor_pread@Base 4.9 + __interceptor_preadv64@Base 4.9 + __interceptor_preadv@Base 4.9 + __interceptor_printf@Base 5 + __interceptor_process_vm_readv@Base 6 + __interceptor_process_vm_writev@Base 6 + __interceptor_pthread_attr_getaffinity_np@Base 4.9 + __interceptor_pthread_attr_getdetachstate@Base 4.9 + __interceptor_pthread_attr_getguardsize@Base 4.9 + __interceptor_pthread_attr_getinheritsched@Base 4.9 + __interceptor_pthread_attr_getschedparam@Base 4.9 + __interceptor_pthread_attr_getschedpolicy@Base 4.9 + __interceptor_pthread_attr_getscope@Base 4.9 + __interceptor_pthread_attr_getstack@Base 4.9 + __interceptor_pthread_attr_getstacksize@Base 4.9 + __interceptor_pthread_barrier_destroy@Base 4.9 + __interceptor_pthread_barrier_init@Base 4.9 + __interceptor_pthread_barrier_wait@Base 4.9 + __interceptor_pthread_barrierattr_getpshared@Base 5 + __interceptor_pthread_cond_broadcast@Base 4.9 + __interceptor_pthread_cond_destroy@Base 4.9 + __interceptor_pthread_cond_init@Base 4.9 + __interceptor_pthread_cond_signal@Base 4.9 + __interceptor_pthread_cond_timedwait@Base 4.9 + __interceptor_pthread_cond_wait@Base 4.9 + __interceptor_pthread_condattr_getclock@Base 5 + __interceptor_pthread_condattr_getpshared@Base 5 + __interceptor_pthread_create@Base 4.9 + __interceptor_pthread_detach@Base 4.9 + __interceptor_pthread_getschedparam@Base 4.9 + __interceptor_pthread_join@Base 4.9 + __interceptor_pthread_kill@Base 4.9 + __interceptor_pthread_mutex_destroy@Base 4.9 + __interceptor_pthread_mutex_init@Base 4.9 + __interceptor_pthread_mutex_lock@Base 4.9 + __interceptor_pthread_mutex_timedlock@Base 4.9 + __interceptor_pthread_mutex_trylock@Base 4.9 + __interceptor_pthread_mutex_unlock@Base 4.9 + __interceptor_pthread_mutexattr_getprioceiling@Base 5 + __interceptor_pthread_mutexattr_getprotocol@Base 5 + __interceptor_pthread_mutexattr_getpshared@Base 5 + __interceptor_pthread_mutexattr_getrobust@Base 5 + __interceptor_pthread_mutexattr_getrobust_np@Base 5 + __interceptor_pthread_mutexattr_gettype@Base 5 + __interceptor_pthread_once@Base 4.9 + __interceptor_pthread_rwlock_destroy@Base 4.9 + __interceptor_pthread_rwlock_init@Base 4.9 + __interceptor_pthread_rwlock_rdlock@Base 4.9 + __interceptor_pthread_rwlock_timedrdlock@Base 4.9 + __interceptor_pthread_rwlock_timedwrlock@Base 4.9 + __interceptor_pthread_rwlock_tryrdlock@Base 4.9 + __interceptor_pthread_rwlock_trywrlock@Base 4.9 + __interceptor_pthread_rwlock_unlock@Base 4.9 + __interceptor_pthread_rwlock_wrlock@Base 4.9 + __interceptor_pthread_rwlockattr_getkind_np@Base 5 + __interceptor_pthread_rwlockattr_getpshared@Base 5 + __interceptor_pthread_setcancelstate@Base 6 + __interceptor_pthread_setcanceltype@Base 6 + __interceptor_pthread_setname_np@Base 4.9 + __interceptor_pthread_sigmask@Base 7 + __interceptor_pthread_spin_destroy@Base 4.9 + __interceptor_pthread_spin_init@Base 4.9 + __interceptor_pthread_spin_lock@Base 4.9 + __interceptor_pthread_spin_trylock@Base 4.9 + __interceptor_pthread_spin_unlock@Base 4.9 + __interceptor_ptrace@Base 4.9 + __interceptor_puts@Base 4.9 + __interceptor_pvalloc@Base 4.9 + __interceptor_pwrite64@Base 4.9 + __interceptor_pwrite@Base 4.9 + __interceptor_pwritev64@Base 4.9 + __interceptor_pwritev@Base 4.9 + __interceptor_raise@Base 4.9 + __interceptor_rand_r@Base 5 + __interceptor_random_r@Base 4.9 + __interceptor_read@Base 4.9 + __interceptor_readdir64@Base 4.9 + __interceptor_readdir64_r@Base 4.9 + __interceptor_readdir@Base 4.9 + __interceptor_readdir_r@Base 4.9 + __interceptor_readv@Base 4.9 + __interceptor_realloc@Base 4.9 + __interceptor_realpath@Base 4.9 + __interceptor_recv@Base 4.9 + __interceptor_recvfrom@Base 7 + __interceptor_recvmsg@Base 4.9 + __interceptor_remquo@Base 4.9 + __interceptor_remquof@Base 4.9 + __interceptor_remquol@Base 4.9 + __interceptor_rmdir@Base 4.9 + __interceptor_scandir64@Base 4.9 + __interceptor_scandir@Base 4.9 + __interceptor_scanf@Base 4.9 + __interceptor_sched_getaffinity@Base 4.9 + __interceptor_sched_getparam@Base 6 + __interceptor_sem_destroy@Base 4.9 + __interceptor_sem_getvalue@Base 4.9 + __interceptor_sem_init@Base 4.9 + __interceptor_sem_post@Base 4.9 + __interceptor_sem_timedwait@Base 4.9 + __interceptor_sem_trywait@Base 4.9 + __interceptor_sem_wait@Base 4.9 + __interceptor_send@Base 4.9 + __interceptor_sendmsg@Base 4.9 + __interceptor_sendto@Base 7 + __interceptor_setgrent@Base 5 + __interceptor_setitimer@Base 4.9 + __interceptor_setjmp@Base 4.9 + __interceptor_setlocale@Base 4.9 + __interceptor_setpwent@Base 5 + __interceptor_shmctl@Base 4.9 + __interceptor_sigaction@Base 4.9 + __interceptor_sigblock@Base 7 + __interceptor_sigemptyset@Base 4.9 + __interceptor_sigfillset@Base 4.9 + __interceptor_siglongjmp@Base 4.9 + __interceptor_signal@Base 4.9 + __interceptor_signalfd@Base 4.9 + __interceptor_sigpending@Base 4.9 + __interceptor_sigprocmask@Base 4.9 + __interceptor_sigsetjmp@Base 4.9 + __interceptor_sigsetmask@Base 7 + __interceptor_sigsuspend@Base 4.9 + __interceptor_sigtimedwait@Base 4.9 + __interceptor_sigwait@Base 4.9 + __interceptor_sigwaitinfo@Base 4.9 + __interceptor_sincos@Base 4.9 + __interceptor_sincosf@Base 4.9 + __interceptor_sincosl@Base 4.9 + __interceptor_sleep@Base 4.9 + __interceptor_snprintf@Base 5 + __interceptor_socket@Base 4.9 + __interceptor_socketpair@Base 4.9 + __interceptor_sprintf@Base 5 + __interceptor_sscanf@Base 4.9 + __interceptor_statfs64@Base 4.9 + __interceptor_statfs@Base 4.9 + __interceptor_statvfs64@Base 4.9 + __interceptor_statvfs@Base 4.9 + __interceptor_strcasecmp@Base 4.9 + __interceptor_strcasestr@Base 6 + __interceptor_strchr@Base 4.9 + __interceptor_strchrnul@Base 4.9 + __interceptor_strcmp@Base 4.9 + __interceptor_strcpy@Base 4.9 + __interceptor_strcspn@Base 6 + __interceptor_strdup@Base 4.9 + __interceptor_strerror@Base 4.9 + __interceptor_strerror_r@Base 4.9 + __interceptor_strlen@Base 4.9 + __interceptor_strncasecmp@Base 4.9 + __interceptor_strncmp@Base 4.9 + __interceptor_strncpy@Base 4.9 + __interceptor_strnlen@Base 7 + __interceptor_strpbrk@Base 6 + __interceptor_strptime@Base 4.9 + __interceptor_strrchr@Base 4.9 + __interceptor_strspn@Base 6 + __interceptor_strstr@Base 4.9 + __interceptor_strtoimax@Base 4.9 + __interceptor_strtoumax@Base 4.9 + __interceptor_sysinfo@Base 4.9 + __interceptor_tcgetattr@Base 4.9 + __interceptor_tempnam@Base 4.9 + __interceptor_textdomain@Base 4.9 + __interceptor_time@Base 4.9 + __interceptor_timerfd_gettime@Base 5 + __interceptor_timerfd_settime@Base 5 + __interceptor_times@Base 4.9 + __interceptor_tmpfile64@Base 5 + __interceptor_tmpfile@Base 5 + __interceptor_tmpnam@Base 4.9 + __interceptor_tmpnam_r@Base 4.9 + __interceptor_tsearch@Base 5 + __interceptor_ttyname_r@Base 7 + __interceptor_unlink@Base 4.9 + __interceptor_usleep@Base 4.9 + __interceptor_valloc@Base 4.9 + __interceptor_vasprintf@Base 5 + __interceptor_vfork@Base 5 + __interceptor_vfprintf@Base 5 + __interceptor_vfscanf@Base 4.9 + __interceptor_vprintf@Base 5 + __interceptor_vscanf@Base 4.9 + __interceptor_vsnprintf@Base 5 + __interceptor_vsprintf@Base 5 + __interceptor_vsscanf@Base 4.9 + __interceptor_wait3@Base 4.9 + __interceptor_wait4@Base 4.9 + __interceptor_wait@Base 4.9 + __interceptor_waitid@Base 4.9 + __interceptor_waitpid@Base 4.9 + __interceptor_wcrtomb@Base 6 + __interceptor_wcsnrtombs@Base 4.9 + __interceptor_wcsrtombs@Base 4.9 + __interceptor_wcstombs@Base 4.9 + __interceptor_wordexp@Base 4.9 + __interceptor_write@Base 4.9 + __interceptor_writev@Base 4.9 + __interceptor_xdr_bool@Base 5 + __interceptor_xdr_bytes@Base 5 + __interceptor_xdr_char@Base 5 + __interceptor_xdr_double@Base 5 + __interceptor_xdr_enum@Base 5 + __interceptor_xdr_float@Base 5 + __interceptor_xdr_hyper@Base 5 + __interceptor_xdr_int16_t@Base 5 + __interceptor_xdr_int32_t@Base 5 + __interceptor_xdr_int64_t@Base 5 + __interceptor_xdr_int8_t@Base 5 + __interceptor_xdr_int@Base 5 + __interceptor_xdr_long@Base 5 + __interceptor_xdr_longlong_t@Base 5 + __interceptor_xdr_quad_t@Base 5 + __interceptor_xdr_short@Base 5 + __interceptor_xdr_string@Base 5 + __interceptor_xdr_u_char@Base 5 + __interceptor_xdr_u_hyper@Base 5 + __interceptor_xdr_u_int@Base 5 + __interceptor_xdr_u_long@Base 5 + __interceptor_xdr_u_longlong_t@Base 5 + __interceptor_xdr_u_quad_t@Base 5 + __interceptor_xdr_u_short@Base 5 + __interceptor_xdr_uint16_t@Base 5 + __interceptor_xdr_uint32_t@Base 5 + __interceptor_xdr_uint64_t@Base 5 + __interceptor_xdr_uint8_t@Base 5 + __interceptor_xdrmem_create@Base 5 + __interceptor_xdrstdio_create@Base 5 + __isoc99_fprintf@Base 5 + __isoc99_fscanf@Base 4.9 + __isoc99_printf@Base 5 + __isoc99_scanf@Base 4.9 + __isoc99_snprintf@Base 5 + __isoc99_sprintf@Base 5 + __isoc99_sscanf@Base 4.9 + __isoc99_vfprintf@Base 5 + __isoc99_vfscanf@Base 4.9 + __isoc99_vprintf@Base 5 + __isoc99_vscanf@Base 4.9 + __isoc99_vsnprintf@Base 5 + __isoc99_vsprintf@Base 5 + __isoc99_vsscanf@Base 4.9 + __libc_memalign@Base 4.9 + __lxstat64@Base 4.9 + __lxstat@Base 4.9 + __overflow@Base 5 + __res_iclose@Base 4.9 + __sanitizer_cov@Base 4.9 + __sanitizer_cov_dump@Base 4.9 + __sanitizer_cov_indir_call16@Base 5 + __sanitizer_cov_init@Base 5 + __sanitizer_cov_module_init@Base 5 + __sanitizer_cov_trace_basic_block@Base 6 + __sanitizer_cov_trace_cmp1@Base 7 + __sanitizer_cov_trace_cmp2@Base 7 + __sanitizer_cov_trace_cmp4@Base 7 + __sanitizer_cov_trace_cmp8@Base 7 + __sanitizer_cov_trace_cmp@Base 6 + __sanitizer_cov_trace_div4@Base 7 + __sanitizer_cov_trace_div8@Base 7 + __sanitizer_cov_trace_func_enter@Base 6 + __sanitizer_cov_trace_gep@Base 7 + __sanitizer_cov_trace_pc_guard@Base 7 + __sanitizer_cov_trace_pc_guard_init@Base 7 + __sanitizer_cov_trace_pc_indir@Base 7 + __sanitizer_cov_trace_switch@Base 6 + __sanitizer_cov_with_check@Base 6 + __sanitizer_free_hook@Base 5 + __sanitizer_get_allocated_size@Base 5 + __sanitizer_get_coverage_guards@Base 6 + __sanitizer_get_current_allocated_bytes@Base 5 + __sanitizer_get_estimated_allocated_size@Base 5 + __sanitizer_get_free_bytes@Base 5 + __sanitizer_get_heap_size@Base 5 + __sanitizer_get_number_of_counters@Base 6 + __sanitizer_get_ownership@Base 5 + __sanitizer_get_total_unique_caller_callee_pairs@Base 6 + __sanitizer_get_total_unique_coverage@Base 6 + __sanitizer_get_unmapped_bytes@Base 5 + __sanitizer_install_malloc_and_free_hooks@Base 7 + __sanitizer_malloc_hook@Base 5 + __sanitizer_maybe_open_cov_file@Base 5 + __sanitizer_print_stack_trace@Base 5 + __sanitizer_report_error_summary@Base 4.9 + __sanitizer_reset_coverage@Base 6 + __sanitizer_sandbox_on_notify@Base 4.9 + __sanitizer_set_death_callback@Base 6 + __sanitizer_set_report_fd@Base 7 + __sanitizer_set_report_path@Base 4.9 + __sanitizer_symbolize_global@Base 7 + __sanitizer_symbolize_pc@Base 7 + __sanitizer_syscall_post_impl_accept4@Base 4.9 + __sanitizer_syscall_post_impl_accept@Base 4.9 + __sanitizer_syscall_post_impl_access@Base 4.9 + __sanitizer_syscall_post_impl_acct@Base 4.9 + __sanitizer_syscall_post_impl_add_key@Base 4.9 + __sanitizer_syscall_post_impl_adjtimex@Base 4.9 + __sanitizer_syscall_post_impl_alarm@Base 4.9 + __sanitizer_syscall_post_impl_bdflush@Base 4.9 + __sanitizer_syscall_post_impl_bind@Base 4.9 + __sanitizer_syscall_post_impl_brk@Base 4.9 + __sanitizer_syscall_post_impl_capget@Base 4.9 + __sanitizer_syscall_post_impl_capset@Base 4.9 + __sanitizer_syscall_post_impl_chdir@Base 4.9 + __sanitizer_syscall_post_impl_chmod@Base 4.9 + __sanitizer_syscall_post_impl_chown@Base 4.9 + __sanitizer_syscall_post_impl_chroot@Base 4.9 + __sanitizer_syscall_post_impl_clock_adjtime@Base 4.9 + __sanitizer_syscall_post_impl_clock_getres@Base 4.9 + __sanitizer_syscall_post_impl_clock_gettime@Base 4.9 + __sanitizer_syscall_post_impl_clock_nanosleep@Base 4.9 + __sanitizer_syscall_post_impl_clock_settime@Base 4.9 + __sanitizer_syscall_post_impl_close@Base 4.9 + __sanitizer_syscall_post_impl_connect@Base 4.9 + __sanitizer_syscall_post_impl_creat@Base 4.9 + __sanitizer_syscall_post_impl_delete_module@Base 4.9 + __sanitizer_syscall_post_impl_dup2@Base 4.9 + __sanitizer_syscall_post_impl_dup3@Base 4.9 + __sanitizer_syscall_post_impl_dup@Base 4.9 + __sanitizer_syscall_post_impl_epoll_create1@Base 4.9 + __sanitizer_syscall_post_impl_epoll_create@Base 4.9 + __sanitizer_syscall_post_impl_epoll_ctl@Base 4.9 + __sanitizer_syscall_post_impl_epoll_pwait@Base 4.9 + __sanitizer_syscall_post_impl_epoll_wait@Base 4.9 + __sanitizer_syscall_post_impl_eventfd2@Base 4.9 + __sanitizer_syscall_post_impl_eventfd@Base 4.9 + __sanitizer_syscall_post_impl_exit@Base 4.9 + __sanitizer_syscall_post_impl_exit_group@Base 4.9 + __sanitizer_syscall_post_impl_faccessat@Base 4.9 + __sanitizer_syscall_post_impl_fchdir@Base 4.9 + __sanitizer_syscall_post_impl_fchmod@Base 4.9 + __sanitizer_syscall_post_impl_fchmodat@Base 4.9 + __sanitizer_syscall_post_impl_fchown@Base 4.9 + __sanitizer_syscall_post_impl_fchownat@Base 4.9 + __sanitizer_syscall_post_impl_fcntl64@Base 4.9 + __sanitizer_syscall_post_impl_fcntl@Base 4.9 + __sanitizer_syscall_post_impl_fdatasync@Base 4.9 + __sanitizer_syscall_post_impl_fgetxattr@Base 4.9 + __sanitizer_syscall_post_impl_flistxattr@Base 4.9 + __sanitizer_syscall_post_impl_flock@Base 4.9 + __sanitizer_syscall_post_impl_fork@Base 4.9 + __sanitizer_syscall_post_impl_fremovexattr@Base 4.9 + __sanitizer_syscall_post_impl_fsetxattr@Base 4.9 + __sanitizer_syscall_post_impl_fstat64@Base 4.9 + __sanitizer_syscall_post_impl_fstat@Base 4.9 + __sanitizer_syscall_post_impl_fstatat64@Base 4.9 + __sanitizer_syscall_post_impl_fstatfs64@Base 4.9 + __sanitizer_syscall_post_impl_fstatfs@Base 4.9 + __sanitizer_syscall_post_impl_fsync@Base 4.9 + __sanitizer_syscall_post_impl_ftruncate@Base 4.9 + __sanitizer_syscall_post_impl_futimesat@Base 4.9 + __sanitizer_syscall_post_impl_get_mempolicy@Base 4.9 + __sanitizer_syscall_post_impl_get_robust_list@Base 4.9 + __sanitizer_syscall_post_impl_getcpu@Base 4.9 + __sanitizer_syscall_post_impl_getcwd@Base 4.9 + __sanitizer_syscall_post_impl_getdents64@Base 4.9 + __sanitizer_syscall_post_impl_getdents@Base 4.9 + __sanitizer_syscall_post_impl_getegid@Base 4.9 + __sanitizer_syscall_post_impl_geteuid@Base 4.9 + __sanitizer_syscall_post_impl_getgid@Base 4.9 + __sanitizer_syscall_post_impl_getgroups@Base 4.9 + __sanitizer_syscall_post_impl_gethostname@Base 4.9 + __sanitizer_syscall_post_impl_getitimer@Base 4.9 + __sanitizer_syscall_post_impl_getpeername@Base 4.9 + __sanitizer_syscall_post_impl_getpgid@Base 4.9 + __sanitizer_syscall_post_impl_getpgrp@Base 4.9 + __sanitizer_syscall_post_impl_getpid@Base 4.9 + __sanitizer_syscall_post_impl_getppid@Base 4.9 + __sanitizer_syscall_post_impl_getpriority@Base 4.9 + __sanitizer_syscall_post_impl_getresgid@Base 4.9 + __sanitizer_syscall_post_impl_getresuid@Base 4.9 + __sanitizer_syscall_post_impl_getrlimit@Base 4.9 + __sanitizer_syscall_post_impl_getrusage@Base 4.9 + __sanitizer_syscall_post_impl_getsid@Base 4.9 + __sanitizer_syscall_post_impl_getsockname@Base 4.9 + __sanitizer_syscall_post_impl_getsockopt@Base 4.9 + __sanitizer_syscall_post_impl_gettid@Base 4.9 + __sanitizer_syscall_post_impl_gettimeofday@Base 4.9 + __sanitizer_syscall_post_impl_getuid@Base 4.9 + __sanitizer_syscall_post_impl_getxattr@Base 4.9 + __sanitizer_syscall_post_impl_init_module@Base 4.9 + __sanitizer_syscall_post_impl_inotify_add_watch@Base 4.9 + __sanitizer_syscall_post_impl_inotify_init1@Base 4.9 + __sanitizer_syscall_post_impl_inotify_init@Base 4.9 + __sanitizer_syscall_post_impl_inotify_rm_watch@Base 4.9 + __sanitizer_syscall_post_impl_io_cancel@Base 4.9 + __sanitizer_syscall_post_impl_io_destroy@Base 4.9 + __sanitizer_syscall_post_impl_io_getevents@Base 4.9 + __sanitizer_syscall_post_impl_io_setup@Base 4.9 + __sanitizer_syscall_post_impl_io_submit@Base 4.9 + __sanitizer_syscall_post_impl_ioctl@Base 4.9 + __sanitizer_syscall_post_impl_ioperm@Base 4.9 + __sanitizer_syscall_post_impl_ioprio_get@Base 4.9 + __sanitizer_syscall_post_impl_ioprio_set@Base 4.9 + __sanitizer_syscall_post_impl_ipc@Base 4.9 + __sanitizer_syscall_post_impl_kexec_load@Base 4.9 + __sanitizer_syscall_post_impl_keyctl@Base 4.9 + __sanitizer_syscall_post_impl_kill@Base 4.9 + __sanitizer_syscall_post_impl_lchown@Base 4.9 + __sanitizer_syscall_post_impl_lgetxattr@Base 4.9 + __sanitizer_syscall_post_impl_link@Base 4.9 + __sanitizer_syscall_post_impl_linkat@Base 4.9 + __sanitizer_syscall_post_impl_listen@Base 4.9 + __sanitizer_syscall_post_impl_listxattr@Base 4.9 + __sanitizer_syscall_post_impl_llistxattr@Base 4.9 + __sanitizer_syscall_post_impl_llseek@Base 4.9 + __sanitizer_syscall_post_impl_lookup_dcookie@Base 4.9 + __sanitizer_syscall_post_impl_lremovexattr@Base 4.9 + __sanitizer_syscall_post_impl_lseek@Base 4.9 + __sanitizer_syscall_post_impl_lsetxattr@Base 4.9 + __sanitizer_syscall_post_impl_lstat64@Base 4.9 + __sanitizer_syscall_post_impl_lstat@Base 4.9 + __sanitizer_syscall_post_impl_madvise@Base 4.9 + __sanitizer_syscall_post_impl_mbind@Base 4.9 + __sanitizer_syscall_post_impl_migrate_pages@Base 4.9 + __sanitizer_syscall_post_impl_mincore@Base 4.9 + __sanitizer_syscall_post_impl_mkdir@Base 4.9 + __sanitizer_syscall_post_impl_mkdirat@Base 4.9 + __sanitizer_syscall_post_impl_mknod@Base 4.9 + __sanitizer_syscall_post_impl_mknodat@Base 4.9 + __sanitizer_syscall_post_impl_mlock@Base 4.9 + __sanitizer_syscall_post_impl_mlockall@Base 4.9 + __sanitizer_syscall_post_impl_mmap_pgoff@Base 4.9 + __sanitizer_syscall_post_impl_mount@Base 4.9 + __sanitizer_syscall_post_impl_move_pages@Base 4.9 + __sanitizer_syscall_post_impl_mprotect@Base 4.9 + __sanitizer_syscall_post_impl_mq_getsetattr@Base 4.9 + __sanitizer_syscall_post_impl_mq_notify@Base 4.9 + __sanitizer_syscall_post_impl_mq_open@Base 4.9 + __sanitizer_syscall_post_impl_mq_timedreceive@Base 4.9 + __sanitizer_syscall_post_impl_mq_timedsend@Base 4.9 + __sanitizer_syscall_post_impl_mq_unlink@Base 4.9 + __sanitizer_syscall_post_impl_mremap@Base 4.9 + __sanitizer_syscall_post_impl_msgctl@Base 4.9 + __sanitizer_syscall_post_impl_msgget@Base 4.9 + __sanitizer_syscall_post_impl_msgrcv@Base 4.9 + __sanitizer_syscall_post_impl_msgsnd@Base 4.9 + __sanitizer_syscall_post_impl_msync@Base 4.9 + __sanitizer_syscall_post_impl_munlock@Base 4.9 + __sanitizer_syscall_post_impl_munlockall@Base 4.9 + __sanitizer_syscall_post_impl_munmap@Base 4.9 + __sanitizer_syscall_post_impl_name_to_handle_at@Base 4.9 + __sanitizer_syscall_post_impl_nanosleep@Base 4.9 + __sanitizer_syscall_post_impl_newfstat@Base 4.9 + __sanitizer_syscall_post_impl_newfstatat@Base 4.9 + __sanitizer_syscall_post_impl_newlstat@Base 4.9 + __sanitizer_syscall_post_impl_newstat@Base 4.9 + __sanitizer_syscall_post_impl_newuname@Base 4.9 + __sanitizer_syscall_post_impl_ni_syscall@Base 4.9 + __sanitizer_syscall_post_impl_nice@Base 4.9 + __sanitizer_syscall_post_impl_old_getrlimit@Base 4.9 + __sanitizer_syscall_post_impl_old_mmap@Base 4.9 + __sanitizer_syscall_post_impl_old_readdir@Base 4.9 + __sanitizer_syscall_post_impl_old_select@Base 4.9 + __sanitizer_syscall_post_impl_oldumount@Base 4.9 + __sanitizer_syscall_post_impl_olduname@Base 4.9 + __sanitizer_syscall_post_impl_open@Base 4.9 + __sanitizer_syscall_post_impl_open_by_handle_at@Base 4.9 + __sanitizer_syscall_post_impl_openat@Base 4.9 + __sanitizer_syscall_post_impl_pause@Base 4.9 + __sanitizer_syscall_post_impl_pciconfig_iobase@Base 4.9 + __sanitizer_syscall_post_impl_pciconfig_read@Base 4.9 + __sanitizer_syscall_post_impl_pciconfig_write@Base 4.9 + __sanitizer_syscall_post_impl_perf_event_open@Base 4.9 + __sanitizer_syscall_post_impl_personality@Base 4.9 + __sanitizer_syscall_post_impl_pipe2@Base 4.9 + __sanitizer_syscall_post_impl_pipe@Base 4.9 + __sanitizer_syscall_post_impl_pivot_root@Base 4.9 + __sanitizer_syscall_post_impl_poll@Base 4.9 + __sanitizer_syscall_post_impl_ppoll@Base 4.9 + __sanitizer_syscall_post_impl_pread64@Base 4.9 + __sanitizer_syscall_post_impl_preadv@Base 4.9 + __sanitizer_syscall_post_impl_prlimit64@Base 4.9 + __sanitizer_syscall_post_impl_process_vm_readv@Base 4.9 + __sanitizer_syscall_post_impl_process_vm_writev@Base 4.9 + __sanitizer_syscall_post_impl_pselect6@Base 4.9 + __sanitizer_syscall_post_impl_ptrace@Base 4.9 + __sanitizer_syscall_post_impl_pwrite64@Base 4.9 + __sanitizer_syscall_post_impl_pwritev@Base 4.9 + __sanitizer_syscall_post_impl_quotactl@Base 4.9 + __sanitizer_syscall_post_impl_read@Base 4.9 + __sanitizer_syscall_post_impl_readlink@Base 4.9 + __sanitizer_syscall_post_impl_readlinkat@Base 4.9 + __sanitizer_syscall_post_impl_readv@Base 4.9 + __sanitizer_syscall_post_impl_reboot@Base 4.9 + __sanitizer_syscall_post_impl_recv@Base 4.9 + __sanitizer_syscall_post_impl_recvfrom@Base 4.9 + __sanitizer_syscall_post_impl_recvmmsg@Base 4.9 + __sanitizer_syscall_post_impl_recvmsg@Base 4.9 + __sanitizer_syscall_post_impl_remap_file_pages@Base 4.9 + __sanitizer_syscall_post_impl_removexattr@Base 4.9 + __sanitizer_syscall_post_impl_rename@Base 4.9 + __sanitizer_syscall_post_impl_renameat@Base 4.9 + __sanitizer_syscall_post_impl_request_key@Base 4.9 + __sanitizer_syscall_post_impl_restart_syscall@Base 4.9 + __sanitizer_syscall_post_impl_rmdir@Base 4.9 + __sanitizer_syscall_post_impl_rt_sigaction@Base 7 + __sanitizer_syscall_post_impl_rt_sigpending@Base 4.9 + __sanitizer_syscall_post_impl_rt_sigprocmask@Base 4.9 + __sanitizer_syscall_post_impl_rt_sigqueueinfo@Base 4.9 + __sanitizer_syscall_post_impl_rt_sigtimedwait@Base 4.9 + __sanitizer_syscall_post_impl_rt_tgsigqueueinfo@Base 4.9 + __sanitizer_syscall_post_impl_sched_get_priority_max@Base 4.9 + __sanitizer_syscall_post_impl_sched_get_priority_min@Base 4.9 + __sanitizer_syscall_post_impl_sched_getaffinity@Base 4.9 + __sanitizer_syscall_post_impl_sched_getparam@Base 4.9 + __sanitizer_syscall_post_impl_sched_getscheduler@Base 4.9 + __sanitizer_syscall_post_impl_sched_rr_get_interval@Base 4.9 + __sanitizer_syscall_post_impl_sched_setaffinity@Base 4.9 + __sanitizer_syscall_post_impl_sched_setparam@Base 4.9 + __sanitizer_syscall_post_impl_sched_setscheduler@Base 4.9 + __sanitizer_syscall_post_impl_sched_yield@Base 4.9 + __sanitizer_syscall_post_impl_select@Base 4.9 + __sanitizer_syscall_post_impl_semctl@Base 4.9 + __sanitizer_syscall_post_impl_semget@Base 4.9 + __sanitizer_syscall_post_impl_semop@Base 4.9 + __sanitizer_syscall_post_impl_semtimedop@Base 4.9 + __sanitizer_syscall_post_impl_send@Base 4.9 + __sanitizer_syscall_post_impl_sendfile64@Base 4.9 + __sanitizer_syscall_post_impl_sendfile@Base 4.9 + __sanitizer_syscall_post_impl_sendmmsg@Base 4.9 + __sanitizer_syscall_post_impl_sendmsg@Base 4.9 + __sanitizer_syscall_post_impl_sendto@Base 4.9 + __sanitizer_syscall_post_impl_set_mempolicy@Base 4.9 + __sanitizer_syscall_post_impl_set_robust_list@Base 4.9 + __sanitizer_syscall_post_impl_set_tid_address@Base 4.9 + __sanitizer_syscall_post_impl_setdomainname@Base 4.9 + __sanitizer_syscall_post_impl_setfsgid@Base 4.9 + __sanitizer_syscall_post_impl_setfsuid@Base 4.9 + __sanitizer_syscall_post_impl_setgid@Base 4.9 + __sanitizer_syscall_post_impl_setgroups@Base 4.9 + __sanitizer_syscall_post_impl_sethostname@Base 4.9 + __sanitizer_syscall_post_impl_setitimer@Base 4.9 + __sanitizer_syscall_post_impl_setns@Base 4.9 + __sanitizer_syscall_post_impl_setpgid@Base 4.9 + __sanitizer_syscall_post_impl_setpriority@Base 4.9 + __sanitizer_syscall_post_impl_setregid@Base 4.9 + __sanitizer_syscall_post_impl_setresgid@Base 4.9 + __sanitizer_syscall_post_impl_setresuid@Base 4.9 + __sanitizer_syscall_post_impl_setreuid@Base 4.9 + __sanitizer_syscall_post_impl_setrlimit@Base 4.9 + __sanitizer_syscall_post_impl_setsid@Base 4.9 + __sanitizer_syscall_post_impl_setsockopt@Base 4.9 + __sanitizer_syscall_post_impl_settimeofday@Base 4.9 + __sanitizer_syscall_post_impl_setuid@Base 4.9 + __sanitizer_syscall_post_impl_setxattr@Base 4.9 + __sanitizer_syscall_post_impl_sgetmask@Base 4.9 + __sanitizer_syscall_post_impl_shmat@Base 4.9 + __sanitizer_syscall_post_impl_shmctl@Base 4.9 + __sanitizer_syscall_post_impl_shmdt@Base 4.9 + __sanitizer_syscall_post_impl_shmget@Base 4.9 + __sanitizer_syscall_post_impl_shutdown@Base 4.9 + __sanitizer_syscall_post_impl_sigaction@Base 7 + __sanitizer_syscall_post_impl_signal@Base 4.9 + __sanitizer_syscall_post_impl_signalfd4@Base 4.9 + __sanitizer_syscall_post_impl_signalfd@Base 4.9 + __sanitizer_syscall_post_impl_sigpending@Base 4.9 + __sanitizer_syscall_post_impl_sigprocmask@Base 4.9 + __sanitizer_syscall_post_impl_socket@Base 4.9 + __sanitizer_syscall_post_impl_socketcall@Base 4.9 + __sanitizer_syscall_post_impl_socketpair@Base 4.9 + __sanitizer_syscall_post_impl_splice@Base 4.9 + __sanitizer_syscall_post_impl_spu_create@Base 4.9 + __sanitizer_syscall_post_impl_spu_run@Base 4.9 + __sanitizer_syscall_post_impl_ssetmask@Base 4.9 + __sanitizer_syscall_post_impl_stat64@Base 4.9 + __sanitizer_syscall_post_impl_stat@Base 4.9 + __sanitizer_syscall_post_impl_statfs64@Base 4.9 + __sanitizer_syscall_post_impl_statfs@Base 4.9 + __sanitizer_syscall_post_impl_stime@Base 4.9 + __sanitizer_syscall_post_impl_swapoff@Base 4.9 + __sanitizer_syscall_post_impl_swapon@Base 4.9 + __sanitizer_syscall_post_impl_symlink@Base 4.9 + __sanitizer_syscall_post_impl_symlinkat@Base 4.9 + __sanitizer_syscall_post_impl_sync@Base 4.9 + __sanitizer_syscall_post_impl_syncfs@Base 4.9 + __sanitizer_syscall_post_impl_sysctl@Base 4.9 + __sanitizer_syscall_post_impl_sysfs@Base 4.9 + __sanitizer_syscall_post_impl_sysinfo@Base 4.9 + __sanitizer_syscall_post_impl_syslog@Base 4.9 + __sanitizer_syscall_post_impl_tee@Base 4.9 + __sanitizer_syscall_post_impl_tgkill@Base 4.9 + __sanitizer_syscall_post_impl_time@Base 4.9 + __sanitizer_syscall_post_impl_timer_create@Base 4.9 + __sanitizer_syscall_post_impl_timer_delete@Base 4.9 + __sanitizer_syscall_post_impl_timer_getoverrun@Base 4.9 + __sanitizer_syscall_post_impl_timer_gettime@Base 4.9 + __sanitizer_syscall_post_impl_timer_settime@Base 4.9 + __sanitizer_syscall_post_impl_timerfd_create@Base 4.9 + __sanitizer_syscall_post_impl_timerfd_gettime@Base 4.9 + __sanitizer_syscall_post_impl_timerfd_settime@Base 4.9 + __sanitizer_syscall_post_impl_times@Base 4.9 + __sanitizer_syscall_post_impl_tkill@Base 4.9 + __sanitizer_syscall_post_impl_truncate@Base 4.9 + __sanitizer_syscall_post_impl_umask@Base 4.9 + __sanitizer_syscall_post_impl_umount@Base 4.9 + __sanitizer_syscall_post_impl_uname@Base 4.9 + __sanitizer_syscall_post_impl_unlink@Base 4.9 + __sanitizer_syscall_post_impl_unlinkat@Base 4.9 + __sanitizer_syscall_post_impl_unshare@Base 4.9 + __sanitizer_syscall_post_impl_uselib@Base 4.9 + __sanitizer_syscall_post_impl_ustat@Base 4.9 + __sanitizer_syscall_post_impl_utime@Base 4.9 + __sanitizer_syscall_post_impl_utimensat@Base 4.9 + __sanitizer_syscall_post_impl_utimes@Base 4.9 + __sanitizer_syscall_post_impl_vfork@Base 4.9 + __sanitizer_syscall_post_impl_vhangup@Base 4.9 + __sanitizer_syscall_post_impl_vmsplice@Base 4.9 + __sanitizer_syscall_post_impl_wait4@Base 4.9 + __sanitizer_syscall_post_impl_waitid@Base 4.9 + __sanitizer_syscall_post_impl_waitpid@Base 4.9 + __sanitizer_syscall_post_impl_write@Base 4.9 + __sanitizer_syscall_post_impl_writev@Base 4.9 + __sanitizer_syscall_pre_impl_accept4@Base 4.9 + __sanitizer_syscall_pre_impl_accept@Base 4.9 + __sanitizer_syscall_pre_impl_access@Base 4.9 + __sanitizer_syscall_pre_impl_acct@Base 4.9 + __sanitizer_syscall_pre_impl_add_key@Base 4.9 + __sanitizer_syscall_pre_impl_adjtimex@Base 4.9 + __sanitizer_syscall_pre_impl_alarm@Base 4.9 + __sanitizer_syscall_pre_impl_bdflush@Base 4.9 + __sanitizer_syscall_pre_impl_bind@Base 4.9 + __sanitizer_syscall_pre_impl_brk@Base 4.9 + __sanitizer_syscall_pre_impl_capget@Base 4.9 + __sanitizer_syscall_pre_impl_capset@Base 4.9 + __sanitizer_syscall_pre_impl_chdir@Base 4.9 + __sanitizer_syscall_pre_impl_chmod@Base 4.9 + __sanitizer_syscall_pre_impl_chown@Base 4.9 + __sanitizer_syscall_pre_impl_chroot@Base 4.9 + __sanitizer_syscall_pre_impl_clock_adjtime@Base 4.9 + __sanitizer_syscall_pre_impl_clock_getres@Base 4.9 + __sanitizer_syscall_pre_impl_clock_gettime@Base 4.9 + __sanitizer_syscall_pre_impl_clock_nanosleep@Base 4.9 + __sanitizer_syscall_pre_impl_clock_settime@Base 4.9 + __sanitizer_syscall_pre_impl_close@Base 4.9 + __sanitizer_syscall_pre_impl_connect@Base 4.9 + __sanitizer_syscall_pre_impl_creat@Base 4.9 + __sanitizer_syscall_pre_impl_delete_module@Base 4.9 + __sanitizer_syscall_pre_impl_dup2@Base 4.9 + __sanitizer_syscall_pre_impl_dup3@Base 4.9 + __sanitizer_syscall_pre_impl_dup@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_create1@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_create@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_ctl@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_pwait@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_wait@Base 4.9 + __sanitizer_syscall_pre_impl_eventfd2@Base 4.9 + __sanitizer_syscall_pre_impl_eventfd@Base 4.9 + __sanitizer_syscall_pre_impl_exit@Base 4.9 + __sanitizer_syscall_pre_impl_exit_group@Base 4.9 + __sanitizer_syscall_pre_impl_faccessat@Base 4.9 + __sanitizer_syscall_pre_impl_fchdir@Base 4.9 + __sanitizer_syscall_pre_impl_fchmod@Base 4.9 + __sanitizer_syscall_pre_impl_fchmodat@Base 4.9 + __sanitizer_syscall_pre_impl_fchown@Base 4.9 + __sanitizer_syscall_pre_impl_fchownat@Base 4.9 + __sanitizer_syscall_pre_impl_fcntl64@Base 4.9 + __sanitizer_syscall_pre_impl_fcntl@Base 4.9 + __sanitizer_syscall_pre_impl_fdatasync@Base 4.9 + __sanitizer_syscall_pre_impl_fgetxattr@Base 4.9 + __sanitizer_syscall_pre_impl_flistxattr@Base 4.9 + __sanitizer_syscall_pre_impl_flock@Base 4.9 + __sanitizer_syscall_pre_impl_fork@Base 4.9 + __sanitizer_syscall_pre_impl_fremovexattr@Base 4.9 + __sanitizer_syscall_pre_impl_fsetxattr@Base 4.9 + __sanitizer_syscall_pre_impl_fstat64@Base 4.9 + __sanitizer_syscall_pre_impl_fstat@Base 4.9 + __sanitizer_syscall_pre_impl_fstatat64@Base 4.9 + __sanitizer_syscall_pre_impl_fstatfs64@Base 4.9 + __sanitizer_syscall_pre_impl_fstatfs@Base 4.9 + __sanitizer_syscall_pre_impl_fsync@Base 4.9 + __sanitizer_syscall_pre_impl_ftruncate@Base 4.9 + __sanitizer_syscall_pre_impl_futimesat@Base 4.9 + __sanitizer_syscall_pre_impl_get_mempolicy@Base 4.9 + __sanitizer_syscall_pre_impl_get_robust_list@Base 4.9 + __sanitizer_syscall_pre_impl_getcpu@Base 4.9 + __sanitizer_syscall_pre_impl_getcwd@Base 4.9 + __sanitizer_syscall_pre_impl_getdents64@Base 4.9 + __sanitizer_syscall_pre_impl_getdents@Base 4.9 + __sanitizer_syscall_pre_impl_getegid@Base 4.9 + __sanitizer_syscall_pre_impl_geteuid@Base 4.9 + __sanitizer_syscall_pre_impl_getgid@Base 4.9 + __sanitizer_syscall_pre_impl_getgroups@Base 4.9 + __sanitizer_syscall_pre_impl_gethostname@Base 4.9 + __sanitizer_syscall_pre_impl_getitimer@Base 4.9 + __sanitizer_syscall_pre_impl_getpeername@Base 4.9 + __sanitizer_syscall_pre_impl_getpgid@Base 4.9 + __sanitizer_syscall_pre_impl_getpgrp@Base 4.9 + __sanitizer_syscall_pre_impl_getpid@Base 4.9 + __sanitizer_syscall_pre_impl_getppid@Base 4.9 + __sanitizer_syscall_pre_impl_getpriority@Base 4.9 + __sanitizer_syscall_pre_impl_getresgid@Base 4.9 + __sanitizer_syscall_pre_impl_getresuid@Base 4.9 + __sanitizer_syscall_pre_impl_getrlimit@Base 4.9 + __sanitizer_syscall_pre_impl_getrusage@Base 4.9 + __sanitizer_syscall_pre_impl_getsid@Base 4.9 + __sanitizer_syscall_pre_impl_getsockname@Base 4.9 + __sanitizer_syscall_pre_impl_getsockopt@Base 4.9 + __sanitizer_syscall_pre_impl_gettid@Base 4.9 + __sanitizer_syscall_pre_impl_gettimeofday@Base 4.9 + __sanitizer_syscall_pre_impl_getuid@Base 4.9 + __sanitizer_syscall_pre_impl_getxattr@Base 4.9 + __sanitizer_syscall_pre_impl_init_module@Base 4.9 + __sanitizer_syscall_pre_impl_inotify_add_watch@Base 4.9 + __sanitizer_syscall_pre_impl_inotify_init1@Base 4.9 + __sanitizer_syscall_pre_impl_inotify_init@Base 4.9 + __sanitizer_syscall_pre_impl_inotify_rm_watch@Base 4.9 + __sanitizer_syscall_pre_impl_io_cancel@Base 4.9 + __sanitizer_syscall_pre_impl_io_destroy@Base 4.9 + __sanitizer_syscall_pre_impl_io_getevents@Base 4.9 + __sanitizer_syscall_pre_impl_io_setup@Base 4.9 + __sanitizer_syscall_pre_impl_io_submit@Base 4.9 + __sanitizer_syscall_pre_impl_ioctl@Base 4.9 + __sanitizer_syscall_pre_impl_ioperm@Base 4.9 + __sanitizer_syscall_pre_impl_ioprio_get@Base 4.9 + __sanitizer_syscall_pre_impl_ioprio_set@Base 4.9 + __sanitizer_syscall_pre_impl_ipc@Base 4.9 + __sanitizer_syscall_pre_impl_kexec_load@Base 4.9 + __sanitizer_syscall_pre_impl_keyctl@Base 4.9 + __sanitizer_syscall_pre_impl_kill@Base 4.9 + __sanitizer_syscall_pre_impl_lchown@Base 4.9 + __sanitizer_syscall_pre_impl_lgetxattr@Base 4.9 + __sanitizer_syscall_pre_impl_link@Base 4.9 + __sanitizer_syscall_pre_impl_linkat@Base 4.9 + __sanitizer_syscall_pre_impl_listen@Base 4.9 + __sanitizer_syscall_pre_impl_listxattr@Base 4.9 + __sanitizer_syscall_pre_impl_llistxattr@Base 4.9 + __sanitizer_syscall_pre_impl_llseek@Base 4.9 + __sanitizer_syscall_pre_impl_lookup_dcookie@Base 4.9 + __sanitizer_syscall_pre_impl_lremovexattr@Base 4.9 + __sanitizer_syscall_pre_impl_lseek@Base 4.9 + __sanitizer_syscall_pre_impl_lsetxattr@Base 4.9 + __sanitizer_syscall_pre_impl_lstat64@Base 4.9 + __sanitizer_syscall_pre_impl_lstat@Base 4.9 + __sanitizer_syscall_pre_impl_madvise@Base 4.9 + __sanitizer_syscall_pre_impl_mbind@Base 4.9 + __sanitizer_syscall_pre_impl_migrate_pages@Base 4.9 + __sanitizer_syscall_pre_impl_mincore@Base 4.9 + __sanitizer_syscall_pre_impl_mkdir@Base 4.9 + __sanitizer_syscall_pre_impl_mkdirat@Base 4.9 + __sanitizer_syscall_pre_impl_mknod@Base 4.9 + __sanitizer_syscall_pre_impl_mknodat@Base 4.9 + __sanitizer_syscall_pre_impl_mlock@Base 4.9 + __sanitizer_syscall_pre_impl_mlockall@Base 4.9 + __sanitizer_syscall_pre_impl_mmap_pgoff@Base 4.9 + __sanitizer_syscall_pre_impl_mount@Base 4.9 + __sanitizer_syscall_pre_impl_move_pages@Base 4.9 + __sanitizer_syscall_pre_impl_mprotect@Base 4.9 + __sanitizer_syscall_pre_impl_mq_getsetattr@Base 4.9 + __sanitizer_syscall_pre_impl_mq_notify@Base 4.9 + __sanitizer_syscall_pre_impl_mq_open@Base 4.9 + __sanitizer_syscall_pre_impl_mq_timedreceive@Base 4.9 + __sanitizer_syscall_pre_impl_mq_timedsend@Base 4.9 + __sanitizer_syscall_pre_impl_mq_unlink@Base 4.9 + __sanitizer_syscall_pre_impl_mremap@Base 4.9 + __sanitizer_syscall_pre_impl_msgctl@Base 4.9 + __sanitizer_syscall_pre_impl_msgget@Base 4.9 + __sanitizer_syscall_pre_impl_msgrcv@Base 4.9 + __sanitizer_syscall_pre_impl_msgsnd@Base 4.9 + __sanitizer_syscall_pre_impl_msync@Base 4.9 + __sanitizer_syscall_pre_impl_munlock@Base 4.9 + __sanitizer_syscall_pre_impl_munlockall@Base 4.9 + __sanitizer_syscall_pre_impl_munmap@Base 4.9 + __sanitizer_syscall_pre_impl_name_to_handle_at@Base 4.9 + __sanitizer_syscall_pre_impl_nanosleep@Base 4.9 + __sanitizer_syscall_pre_impl_newfstat@Base 4.9 + __sanitizer_syscall_pre_impl_newfstatat@Base 4.9 + __sanitizer_syscall_pre_impl_newlstat@Base 4.9 + __sanitizer_syscall_pre_impl_newstat@Base 4.9 + __sanitizer_syscall_pre_impl_newuname@Base 4.9 + __sanitizer_syscall_pre_impl_ni_syscall@Base 4.9 + __sanitizer_syscall_pre_impl_nice@Base 4.9 + __sanitizer_syscall_pre_impl_old_getrlimit@Base 4.9 + __sanitizer_syscall_pre_impl_old_mmap@Base 4.9 + __sanitizer_syscall_pre_impl_old_readdir@Base 4.9 + __sanitizer_syscall_pre_impl_old_select@Base 4.9 + __sanitizer_syscall_pre_impl_oldumount@Base 4.9 + __sanitizer_syscall_pre_impl_olduname@Base 4.9 + __sanitizer_syscall_pre_impl_open@Base 4.9 + __sanitizer_syscall_pre_impl_open_by_handle_at@Base 4.9 + __sanitizer_syscall_pre_impl_openat@Base 4.9 + __sanitizer_syscall_pre_impl_pause@Base 4.9 + __sanitizer_syscall_pre_impl_pciconfig_iobase@Base 4.9 + __sanitizer_syscall_pre_impl_pciconfig_read@Base 4.9 + __sanitizer_syscall_pre_impl_pciconfig_write@Base 4.9 + __sanitizer_syscall_pre_impl_perf_event_open@Base 4.9 + __sanitizer_syscall_pre_impl_personality@Base 4.9 + __sanitizer_syscall_pre_impl_pipe2@Base 4.9 + __sanitizer_syscall_pre_impl_pipe@Base 4.9 + __sanitizer_syscall_pre_impl_pivot_root@Base 4.9 + __sanitizer_syscall_pre_impl_poll@Base 4.9 + __sanitizer_syscall_pre_impl_ppoll@Base 4.9 + __sanitizer_syscall_pre_impl_pread64@Base 4.9 + __sanitizer_syscall_pre_impl_preadv@Base 4.9 + __sanitizer_syscall_pre_impl_prlimit64@Base 4.9 + __sanitizer_syscall_pre_impl_process_vm_readv@Base 4.9 + __sanitizer_syscall_pre_impl_process_vm_writev@Base 4.9 + __sanitizer_syscall_pre_impl_pselect6@Base 4.9 + __sanitizer_syscall_pre_impl_ptrace@Base 4.9 + __sanitizer_syscall_pre_impl_pwrite64@Base 4.9 + __sanitizer_syscall_pre_impl_pwritev@Base 4.9 + __sanitizer_syscall_pre_impl_quotactl@Base 4.9 + __sanitizer_syscall_pre_impl_read@Base 4.9 + __sanitizer_syscall_pre_impl_readlink@Base 4.9 + __sanitizer_syscall_pre_impl_readlinkat@Base 4.9 + __sanitizer_syscall_pre_impl_readv@Base 4.9 + __sanitizer_syscall_pre_impl_reboot@Base 4.9 + __sanitizer_syscall_pre_impl_recv@Base 4.9 + __sanitizer_syscall_pre_impl_recvfrom@Base 4.9 + __sanitizer_syscall_pre_impl_recvmmsg@Base 4.9 + __sanitizer_syscall_pre_impl_recvmsg@Base 4.9 + __sanitizer_syscall_pre_impl_remap_file_pages@Base 4.9 + __sanitizer_syscall_pre_impl_removexattr@Base 4.9 + __sanitizer_syscall_pre_impl_rename@Base 4.9 + __sanitizer_syscall_pre_impl_renameat@Base 4.9 + __sanitizer_syscall_pre_impl_request_key@Base 4.9 + __sanitizer_syscall_pre_impl_restart_syscall@Base 4.9 + __sanitizer_syscall_pre_impl_rmdir@Base 4.9 + __sanitizer_syscall_pre_impl_rt_sigaction@Base 7 + __sanitizer_syscall_pre_impl_rt_sigpending@Base 4.9 + __sanitizer_syscall_pre_impl_rt_sigprocmask@Base 4.9 + __sanitizer_syscall_pre_impl_rt_sigqueueinfo@Base 4.9 + __sanitizer_syscall_pre_impl_rt_sigtimedwait@Base 4.9 + __sanitizer_syscall_pre_impl_rt_tgsigqueueinfo@Base 4.9 + __sanitizer_syscall_pre_impl_sched_get_priority_max@Base 4.9 + __sanitizer_syscall_pre_impl_sched_get_priority_min@Base 4.9 + __sanitizer_syscall_pre_impl_sched_getaffinity@Base 4.9 + __sanitizer_syscall_pre_impl_sched_getparam@Base 4.9 + __sanitizer_syscall_pre_impl_sched_getscheduler@Base 4.9 + __sanitizer_syscall_pre_impl_sched_rr_get_interval@Base 4.9 + __sanitizer_syscall_pre_impl_sched_setaffinity@Base 4.9 + __sanitizer_syscall_pre_impl_sched_setparam@Base 4.9 + __sanitizer_syscall_pre_impl_sched_setscheduler@Base 4.9 + __sanitizer_syscall_pre_impl_sched_yield@Base 4.9 + __sanitizer_syscall_pre_impl_select@Base 4.9 + __sanitizer_syscall_pre_impl_semctl@Base 4.9 + __sanitizer_syscall_pre_impl_semget@Base 4.9 + __sanitizer_syscall_pre_impl_semop@Base 4.9 + __sanitizer_syscall_pre_impl_semtimedop@Base 4.9 + __sanitizer_syscall_pre_impl_send@Base 4.9 + __sanitizer_syscall_pre_impl_sendfile64@Base 4.9 + __sanitizer_syscall_pre_impl_sendfile@Base 4.9 + __sanitizer_syscall_pre_impl_sendmmsg@Base 4.9 + __sanitizer_syscall_pre_impl_sendmsg@Base 4.9 + __sanitizer_syscall_pre_impl_sendto@Base 4.9 + __sanitizer_syscall_pre_impl_set_mempolicy@Base 4.9 + __sanitizer_syscall_pre_impl_set_robust_list@Base 4.9 + __sanitizer_syscall_pre_impl_set_tid_address@Base 4.9 + __sanitizer_syscall_pre_impl_setdomainname@Base 4.9 + __sanitizer_syscall_pre_impl_setfsgid@Base 4.9 + __sanitizer_syscall_pre_impl_setfsuid@Base 4.9 + __sanitizer_syscall_pre_impl_setgid@Base 4.9 + __sanitizer_syscall_pre_impl_setgroups@Base 4.9 + __sanitizer_syscall_pre_impl_sethostname@Base 4.9 + __sanitizer_syscall_pre_impl_setitimer@Base 4.9 + __sanitizer_syscall_pre_impl_setns@Base 4.9 + __sanitizer_syscall_pre_impl_setpgid@Base 4.9 + __sanitizer_syscall_pre_impl_setpriority@Base 4.9 + __sanitizer_syscall_pre_impl_setregid@Base 4.9 + __sanitizer_syscall_pre_impl_setresgid@Base 4.9 + __sanitizer_syscall_pre_impl_setresuid@Base 4.9 + __sanitizer_syscall_pre_impl_setreuid@Base 4.9 + __sanitizer_syscall_pre_impl_setrlimit@Base 4.9 + __sanitizer_syscall_pre_impl_setsid@Base 4.9 + __sanitizer_syscall_pre_impl_setsockopt@Base 4.9 + __sanitizer_syscall_pre_impl_settimeofday@Base 4.9 + __sanitizer_syscall_pre_impl_setuid@Base 4.9 + __sanitizer_syscall_pre_impl_setxattr@Base 4.9 + __sanitizer_syscall_pre_impl_sgetmask@Base 4.9 + __sanitizer_syscall_pre_impl_shmat@Base 4.9 + __sanitizer_syscall_pre_impl_shmctl@Base 4.9 + __sanitizer_syscall_pre_impl_shmdt@Base 4.9 + __sanitizer_syscall_pre_impl_shmget@Base 4.9 + __sanitizer_syscall_pre_impl_shutdown@Base 4.9 + __sanitizer_syscall_pre_impl_sigaction@Base 7 + __sanitizer_syscall_pre_impl_signal@Base 4.9 + __sanitizer_syscall_pre_impl_signalfd4@Base 4.9 + __sanitizer_syscall_pre_impl_signalfd@Base 4.9 + __sanitizer_syscall_pre_impl_sigpending@Base 4.9 + __sanitizer_syscall_pre_impl_sigprocmask@Base 4.9 + __sanitizer_syscall_pre_impl_socket@Base 4.9 + __sanitizer_syscall_pre_impl_socketcall@Base 4.9 + __sanitizer_syscall_pre_impl_socketpair@Base 4.9 + __sanitizer_syscall_pre_impl_splice@Base 4.9 + __sanitizer_syscall_pre_impl_spu_create@Base 4.9 + __sanitizer_syscall_pre_impl_spu_run@Base 4.9 + __sanitizer_syscall_pre_impl_ssetmask@Base 4.9 + __sanitizer_syscall_pre_impl_stat64@Base 4.9 + __sanitizer_syscall_pre_impl_stat@Base 4.9 + __sanitizer_syscall_pre_impl_statfs64@Base 4.9 + __sanitizer_syscall_pre_impl_statfs@Base 4.9 + __sanitizer_syscall_pre_impl_stime@Base 4.9 + __sanitizer_syscall_pre_impl_swapoff@Base 4.9 + __sanitizer_syscall_pre_impl_swapon@Base 4.9 + __sanitizer_syscall_pre_impl_symlink@Base 4.9 + __sanitizer_syscall_pre_impl_symlinkat@Base 4.9 + __sanitizer_syscall_pre_impl_sync@Base 4.9 + __sanitizer_syscall_pre_impl_syncfs@Base 4.9 + __sanitizer_syscall_pre_impl_sysctl@Base 4.9 + __sanitizer_syscall_pre_impl_sysfs@Base 4.9 + __sanitizer_syscall_pre_impl_sysinfo@Base 4.9 + __sanitizer_syscall_pre_impl_syslog@Base 4.9 + __sanitizer_syscall_pre_impl_tee@Base 4.9 + __sanitizer_syscall_pre_impl_tgkill@Base 4.9 + __sanitizer_syscall_pre_impl_time@Base 4.9 + __sanitizer_syscall_pre_impl_timer_create@Base 4.9 + __sanitizer_syscall_pre_impl_timer_delete@Base 4.9 + __sanitizer_syscall_pre_impl_timer_getoverrun@Base 4.9 + __sanitizer_syscall_pre_impl_timer_gettime@Base 4.9 + __sanitizer_syscall_pre_impl_timer_settime@Base 4.9 + __sanitizer_syscall_pre_impl_timerfd_create@Base 4.9 + __sanitizer_syscall_pre_impl_timerfd_gettime@Base 4.9 + __sanitizer_syscall_pre_impl_timerfd_settime@Base 4.9 + __sanitizer_syscall_pre_impl_times@Base 4.9 + __sanitizer_syscall_pre_impl_tkill@Base 4.9 + __sanitizer_syscall_pre_impl_truncate@Base 4.9 + __sanitizer_syscall_pre_impl_umask@Base 4.9 + __sanitizer_syscall_pre_impl_umount@Base 4.9 + __sanitizer_syscall_pre_impl_uname@Base 4.9 + __sanitizer_syscall_pre_impl_unlink@Base 4.9 + __sanitizer_syscall_pre_impl_unlinkat@Base 4.9 + __sanitizer_syscall_pre_impl_unshare@Base 4.9 + __sanitizer_syscall_pre_impl_uselib@Base 4.9 + __sanitizer_syscall_pre_impl_ustat@Base 4.9 + __sanitizer_syscall_pre_impl_utime@Base 4.9 + __sanitizer_syscall_pre_impl_utimensat@Base 4.9 + __sanitizer_syscall_pre_impl_utimes@Base 4.9 + __sanitizer_syscall_pre_impl_vfork@Base 4.9 + __sanitizer_syscall_pre_impl_vhangup@Base 4.9 + __sanitizer_syscall_pre_impl_vmsplice@Base 4.9 + __sanitizer_syscall_pre_impl_wait4@Base 4.9 + __sanitizer_syscall_pre_impl_waitid@Base 4.9 + __sanitizer_syscall_pre_impl_waitpid@Base 4.9 + __sanitizer_syscall_pre_impl_write@Base 4.9 + __sanitizer_syscall_pre_impl_writev@Base 4.9 + __sanitizer_unaligned_load16@Base 4.9 + __sanitizer_unaligned_load32@Base 4.9 + __sanitizer_unaligned_load64@Base 4.9 + __sanitizer_unaligned_store16@Base 4.9 + __sanitizer_unaligned_store32@Base 4.9 + __sanitizer_unaligned_store64@Base 4.9 + __sanitizer_update_counter_bitset_and_clear_counters@Base 6 + __sigsetjmp@Base 4.9 + __tls_get_addr@Base 6 + __tsan_acquire@Base 4.9 + __tsan_atomic128_compare_exchange_strong@Base 4.9 + __tsan_atomic128_compare_exchange_val@Base 4.9 + __tsan_atomic128_compare_exchange_weak@Base 4.9 + __tsan_atomic128_exchange@Base 4.9 + __tsan_atomic128_fetch_add@Base 4.9 + __tsan_atomic128_fetch_and@Base 4.9 + __tsan_atomic128_fetch_nand@Base 4.9 + __tsan_atomic128_fetch_or@Base 4.9 + __tsan_atomic128_fetch_sub@Base 4.9 + __tsan_atomic128_fetch_xor@Base 4.9 + __tsan_atomic128_load@Base 4.9 + __tsan_atomic128_store@Base 4.9 + __tsan_atomic16_compare_exchange_strong@Base 4.9 + __tsan_atomic16_compare_exchange_val@Base 4.9 + __tsan_atomic16_compare_exchange_weak@Base 4.9 + __tsan_atomic16_exchange@Base 4.9 + __tsan_atomic16_fetch_add@Base 4.9 + __tsan_atomic16_fetch_and@Base 4.9 + __tsan_atomic16_fetch_nand@Base 4.9 + __tsan_atomic16_fetch_or@Base 4.9 + __tsan_atomic16_fetch_sub@Base 4.9 + __tsan_atomic16_fetch_xor@Base 4.9 + __tsan_atomic16_load@Base 4.9 + __tsan_atomic16_store@Base 4.9 + __tsan_atomic32_compare_exchange_strong@Base 4.9 + __tsan_atomic32_compare_exchange_val@Base 4.9 + __tsan_atomic32_compare_exchange_weak@Base 4.9 + __tsan_atomic32_exchange@Base 4.9 + __tsan_atomic32_fetch_add@Base 4.9 + __tsan_atomic32_fetch_and@Base 4.9 + __tsan_atomic32_fetch_nand@Base 4.9 + __tsan_atomic32_fetch_or@Base 4.9 + __tsan_atomic32_fetch_sub@Base 4.9 + __tsan_atomic32_fetch_xor@Base 4.9 + __tsan_atomic32_load@Base 4.9 + __tsan_atomic32_store@Base 4.9 + __tsan_atomic64_compare_exchange_strong@Base 4.9 + __tsan_atomic64_compare_exchange_val@Base 4.9 + __tsan_atomic64_compare_exchange_weak@Base 4.9 + __tsan_atomic64_exchange@Base 4.9 + __tsan_atomic64_fetch_add@Base 4.9 + __tsan_atomic64_fetch_and@Base 4.9 + __tsan_atomic64_fetch_nand@Base 4.9 + __tsan_atomic64_fetch_or@Base 4.9 + __tsan_atomic64_fetch_sub@Base 4.9 + __tsan_atomic64_fetch_xor@Base 4.9 + __tsan_atomic64_load@Base 4.9 + __tsan_atomic64_store@Base 4.9 + __tsan_atomic8_compare_exchange_strong@Base 4.9 + __tsan_atomic8_compare_exchange_val@Base 4.9 + __tsan_atomic8_compare_exchange_weak@Base 4.9 + __tsan_atomic8_exchange@Base 4.9 + __tsan_atomic8_fetch_add@Base 4.9 + __tsan_atomic8_fetch_and@Base 4.9 + __tsan_atomic8_fetch_nand@Base 4.9 + __tsan_atomic8_fetch_or@Base 4.9 + __tsan_atomic8_fetch_sub@Base 4.9 + __tsan_atomic8_fetch_xor@Base 4.9 + __tsan_atomic8_load@Base 4.9 + __tsan_atomic8_store@Base 4.9 + __tsan_atomic_signal_fence@Base 4.9 + __tsan_atomic_thread_fence@Base 4.9 + __tsan_default_options@Base 4.9 + __tsan_default_suppressions@Base 7 + __tsan_func_entry@Base 4.9 + __tsan_func_exit@Base 4.9 + __tsan_get_current_report@Base 7 + __tsan_get_report_data@Base 7 + __tsan_get_report_loc@Base 7 + __tsan_get_report_mop@Base 7 + __tsan_get_report_mutex@Base 7 + __tsan_get_report_stack@Base 7 + __tsan_get_report_thread@Base 7 + __tsan_get_report_unique_tid@Base 7 + __tsan_init@Base 4.9 + __tsan_java_acquire@Base 6 + __tsan_java_alloc@Base 4.9 + __tsan_java_finalize@Base 5 + __tsan_java_fini@Base 4.9 + __tsan_java_free@Base 4.9 + __tsan_java_init@Base 4.9 + __tsan_java_move@Base 4.9 + __tsan_java_mutex_lock@Base 4.9 + __tsan_java_mutex_lock_rec@Base 4.9 + __tsan_java_mutex_read_lock@Base 4.9 + __tsan_java_mutex_read_unlock@Base 4.9 + __tsan_java_mutex_unlock@Base 4.9 + __tsan_java_mutex_unlock_rec@Base 4.9 + __tsan_java_release@Base 6 + __tsan_java_release_store@Base 6 + __tsan_on_report@Base 7 + __tsan_read16@Base 4.9 + __tsan_read16_pc@Base 6 + __tsan_read1@Base 4.9 + __tsan_read1_pc@Base 6 + __tsan_read2@Base 4.9 + __tsan_read2_pc@Base 6 + __tsan_read4@Base 4.9 + __tsan_read4_pc@Base 6 + __tsan_read8@Base 4.9 + __tsan_read8_pc@Base 6 + __tsan_read_range@Base 4.9 + __tsan_release@Base 4.9 + __tsan_symbolize_external@Base 7 + __tsan_testonly_barrier_init@Base 7 + __tsan_testonly_barrier_wait@Base 7 + __tsan_unaligned_read16@Base 6 + __tsan_unaligned_read2@Base 4.9 + __tsan_unaligned_read4@Base 4.9 + __tsan_unaligned_read8@Base 4.9 + __tsan_unaligned_write16@Base 6 + __tsan_unaligned_write2@Base 4.9 + __tsan_unaligned_write4@Base 4.9 + __tsan_unaligned_write8@Base 4.9 + __tsan_vptr_read@Base 4.9 + __tsan_vptr_update@Base 4.9 + __tsan_write16@Base 4.9 + __tsan_write16_pc@Base 6 + __tsan_write1@Base 4.9 + __tsan_write1_pc@Base 6 + __tsan_write2@Base 4.9 + __tsan_write2_pc@Base 6 + __tsan_write4@Base 4.9 + __tsan_write4_pc@Base 6 + __tsan_write8@Base 4.9 + __tsan_write8_pc@Base 6 + __tsan_write_range@Base 4.9 + __uflow@Base 5 + __underflow@Base 5 + __woverflow@Base 5 + __wuflow@Base 5 + __wunderflow@Base 5 + __xpg_strerror_r@Base 4.9 + __xstat64@Base 4.9 + __xstat@Base 4.9 + _exit@Base 4.9 + _obstack_begin@Base 5 + _obstack_begin_1@Base 5 + _obstack_newchunk@Base 5 + _setjmp@Base 4.9 + abort@Base 4.9 + accept4@Base 4.9 + accept@Base 4.9 + aligned_alloc@Base 5 + asctime@Base 4.9 + asctime_r@Base 4.9 + asprintf@Base 5 + atexit@Base 4.9 + backtrace@Base 4.9 + backtrace_symbols@Base 4.9 + bind@Base 4.9 + calloc@Base 4.9 + canonicalize_file_name@Base 4.9 + capget@Base 5 + capset@Base 5 + cfree@Base 4.9 + clock_getres@Base 4.9 + clock_gettime@Base 4.9 + clock_settime@Base 4.9 + close@Base 4.9 + closedir@Base 6 + confstr@Base 4.9 + connect@Base 4.9 + creat64@Base 4.9 + creat@Base 4.9 + ctermid@Base 7 + ctime@Base 4.9 + ctime_r@Base 4.9 + dl_iterate_phdr@Base 6 + dlclose@Base 4.9 + dlopen@Base 4.9 + drand48_r@Base 4.9 + dup2@Base 4.9 + dup3@Base 4.9 + dup@Base 4.9 + endgrent@Base 5 + endpwent@Base 5 + epoll_create1@Base 4.9 + epoll_create@Base 4.9 + epoll_ctl@Base 4.9 + epoll_pwait@Base 7 + epoll_wait@Base 4.9 + ether_aton@Base 4.9 + ether_aton_r@Base 4.9 + ether_hostton@Base 4.9 + ether_line@Base 4.9 + ether_ntoa@Base 4.9 + ether_ntoa_r@Base 4.9 + ether_ntohost@Base 4.9 + eventfd@Base 4.9 + eventfd_read@Base 7 + eventfd_write@Base 7 + fclose@Base 4.9 + fdopen@Base 5 + fflush@Base 4.9 + fgetxattr@Base 5 + flistxattr@Base 5 + fmemopen@Base 5 + fopen64@Base 5 + fopen@Base 4.9 + fopencookie@Base 6 + fork@Base 4.9 + fprintf@Base 5 + fread@Base 4.9 + free@Base 4.9 + freopen64@Base 5 + freopen@Base 4.9 + frexp@Base 4.9 + frexpf@Base 4.9 + frexpl@Base 4.9 + fscanf@Base 4.9 + fstat64@Base 4.9 + fstat@Base 4.9 + fstatfs64@Base 4.9 + fstatfs@Base 4.9 + fstatvfs64@Base 4.9 + fstatvfs@Base 4.9 + ftime@Base 5 + fwrite@Base 4.9 + get_current_dir_name@Base 4.9 + getaddrinfo@Base 4.9 + getcwd@Base 4.9 + getdelim@Base 4.9 + getgroups@Base 4.9 + gethostbyaddr@Base 4.9 + gethostbyaddr_r@Base 4.9 + gethostbyname2@Base 4.9 + gethostbyname2_r@Base 4.9 + gethostbyname@Base 4.9 + gethostbyname_r@Base 4.9 + gethostent@Base 4.9 + gethostent_r@Base 4.9 + getifaddrs@Base 5 + getitimer@Base 4.9 + getline@Base 4.9 + getmntent@Base 4.9 + getmntent_r@Base 4.9 + getnameinfo@Base 5 + getpass@Base 5 + getpeername@Base 4.9 + getresgid@Base 5 + getresuid@Base 5 + getsockname@Base 4.9 + getsockopt@Base 4.9 + gettimeofday@Base 4.9 + getxattr@Base 5 + glob64@Base 5 + glob@Base 5 + gmtime@Base 4.9 + gmtime_r@Base 4.9 + iconv@Base 4.9 + if_indextoname@Base 5 + if_nametoindex@Base 5 + inet_aton@Base 4.9 + inet_ntop@Base 4.9 + inet_pton@Base 4.9 + initgroups@Base 4.9 + inotify_init1@Base 4.9 + inotify_init@Base 4.9 + (arch=base-any-any-amd64 any-mips any-mipsel)internal_sigreturn@Base 7 + ioctl@Base 4.9 + kill@Base 4.9 + lgamma@Base 4.9 + lgamma_r@Base 4.9 + lgammaf@Base 4.9 + lgammaf_r@Base 4.9 + lgammal@Base 4.9 + lgammal_r@Base 4.9 + lgetxattr@Base 5 + listen@Base 4.9 + listxattr@Base 5 + llistxattr@Base 5 + localtime@Base 4.9 + localtime_r@Base 4.9 + longjmp@Base 4.9 + lrand48_r@Base 4.9 + malloc@Base 4.9 + malloc_usable_size@Base 4.9 + mbsnrtowcs@Base 4.9 + mbsrtowcs@Base 4.9 + mbstowcs@Base 4.9 + memalign@Base 4.9 + memchr@Base 4.9 + memcmp@Base 4.9 + memcpy@Base 4.9 + memmem@Base 7 + memmove@Base 4.9 + memrchr@Base 4.9 + memset@Base 4.9 + mincore@Base 6 + mktime@Base 5 + mlock@Base 4.9 + mlockall@Base 4.9 + mmap64@Base 4.9 + mmap@Base 4.9 + modf@Base 4.9 + modff@Base 4.9 + modfl@Base 4.9 + munlock@Base 4.9 + munlockall@Base 4.9 + munmap@Base 4.9 + nanosleep@Base 4.9 + on_exit@Base 4.9 + open64@Base 4.9 + open@Base 4.9 + open_memstream@Base 5 + open_wmemstream@Base 5 + opendir@Base 4.9 + pipe2@Base 4.9 + pipe@Base 4.9 + poll@Base 4.9 + posix_memalign@Base 4.9 + ppoll@Base 4.9 + prctl@Base 4.9 + pread64@Base 4.9 + pread@Base 4.9 + preadv64@Base 4.9 + preadv@Base 4.9 + printf@Base 5 + process_vm_readv@Base 6 + process_vm_writev@Base 6 + pthread_attr_getaffinity_np@Base 4.9 + pthread_attr_getdetachstate@Base 4.9 + pthread_attr_getguardsize@Base 4.9 + pthread_attr_getinheritsched@Base 4.9 + pthread_attr_getschedparam@Base 4.9 + pthread_attr_getschedpolicy@Base 4.9 + pthread_attr_getscope@Base 4.9 + pthread_attr_getstack@Base 4.9 + pthread_attr_getstacksize@Base 4.9 + pthread_barrier_destroy@Base 4.9 + pthread_barrier_init@Base 4.9 + pthread_barrier_wait@Base 4.9 + pthread_barrierattr_getpshared@Base 5 + pthread_cond_broadcast@Base 4.9 + pthread_cond_destroy@Base 4.9 + pthread_cond_init@Base 4.9 + pthread_cond_signal@Base 4.9 + pthread_cond_timedwait@Base 4.9 + pthread_cond_wait@Base 4.9 + pthread_condattr_getclock@Base 5 + pthread_condattr_getpshared@Base 5 + pthread_create@Base 4.9 + pthread_detach@Base 4.9 + pthread_getschedparam@Base 4.9 + pthread_join@Base 4.9 + pthread_kill@Base 4.9 + pthread_mutex_destroy@Base 4.9 + pthread_mutex_init@Base 4.9 + pthread_mutex_lock@Base 4.9 + pthread_mutex_timedlock@Base 4.9 + pthread_mutex_trylock@Base 4.9 + pthread_mutex_unlock@Base 4.9 + pthread_mutexattr_getprioceiling@Base 5 + pthread_mutexattr_getprotocol@Base 5 + pthread_mutexattr_getpshared@Base 5 + pthread_mutexattr_getrobust@Base 5 + pthread_mutexattr_getrobust_np@Base 5 + pthread_mutexattr_gettype@Base 5 + pthread_once@Base 4.9 + pthread_rwlock_destroy@Base 4.9 + pthread_rwlock_init@Base 4.9 + pthread_rwlock_rdlock@Base 4.9 + pthread_rwlock_timedrdlock@Base 4.9 + pthread_rwlock_timedwrlock@Base 4.9 + pthread_rwlock_tryrdlock@Base 4.9 + pthread_rwlock_trywrlock@Base 4.9 + pthread_rwlock_unlock@Base 4.9 + pthread_rwlock_wrlock@Base 4.9 + pthread_rwlockattr_getkind_np@Base 5 + pthread_rwlockattr_getpshared@Base 5 + pthread_setcancelstate@Base 6 + pthread_setcanceltype@Base 6 + pthread_setname_np@Base 4.9 + pthread_sigmask@Base 7 + pthread_spin_destroy@Base 4.9 + pthread_spin_init@Base 4.9 + pthread_spin_lock@Base 4.9 + pthread_spin_trylock@Base 4.9 + pthread_spin_unlock@Base 4.9 + ptrace@Base 4.9 + puts@Base 4.9 + pvalloc@Base 4.9 + pwrite64@Base 4.9 + pwrite@Base 4.9 + pwritev64@Base 4.9 + pwritev@Base 4.9 + raise@Base 4.9 + rand_r@Base 5 + random_r@Base 4.9 + read@Base 4.9 + readdir64@Base 4.9 + readdir64_r@Base 4.9 + readdir@Base 4.9 + readdir_r@Base 4.9 + readv@Base 4.9 + realloc@Base 4.9 + realpath@Base 4.9 + recv@Base 4.9 + recvfrom@Base 7 + recvmsg@Base 4.9 + remquo@Base 4.9 + remquof@Base 4.9 + remquol@Base 4.9 + rmdir@Base 4.9 + scandir64@Base 4.9 + scandir@Base 4.9 + scanf@Base 4.9 + sched_getaffinity@Base 4.9 + sched_getparam@Base 6 + sem_destroy@Base 4.9 + sem_getvalue@Base 4.9 + sem_init@Base 4.9 + sem_post@Base 4.9 + sem_timedwait@Base 4.9 + sem_trywait@Base 4.9 + sem_wait@Base 4.9 + send@Base 4.9 + sendmsg@Base 4.9 + sendto@Base 7 + setgrent@Base 5 + setitimer@Base 4.9 + (arch=!arm64)setjmp@Base 4.9 + setlocale@Base 4.9 + setpwent@Base 5 + shmctl@Base 4.9 + sigaction@Base 4.9 + sigblock@Base 7 + sigemptyset@Base 4.9 + sigfillset@Base 4.9 + siglongjmp@Base 4.9 + signal@Base 4.9 + signalfd@Base 4.9 + sigpending@Base 4.9 + sigprocmask@Base 4.9 + sigsetjmp@Base 4.9 + sigsetmask@Base 7 + sigsuspend@Base 4.9 + sigtimedwait@Base 4.9 + sigwait@Base 4.9 + sigwaitinfo@Base 4.9 + sincos@Base 4.9 + sincosf@Base 4.9 + sincosl@Base 4.9 + sleep@Base 4.9 + snprintf@Base 5 + socket@Base 4.9 + socketpair@Base 4.9 + sprintf@Base 5 + sscanf@Base 4.9 + statfs64@Base 4.9 + statfs@Base 4.9 + statvfs64@Base 4.9 + statvfs@Base 4.9 + strcasecmp@Base 4.9 + strcasestr@Base 6 + strchr@Base 4.9 + strchrnul@Base 4.9 + strcmp@Base 4.9 + strcpy@Base 4.9 + strcspn@Base 6 + strdup@Base 4.9 + strerror@Base 4.9 + strerror_r@Base 4.9 + strlen@Base 4.9 + strncasecmp@Base 4.9 + strncmp@Base 4.9 + strncpy@Base 4.9 + strnlen@Base 7 + strpbrk@Base 6 + strptime@Base 4.9 + strrchr@Base 4.9 + strspn@Base 6 + strstr@Base 4.9 + strtoimax@Base 4.9 + strtoumax@Base 4.9 + sysinfo@Base 4.9 + tcgetattr@Base 4.9 + tempnam@Base 4.9 + textdomain@Base 4.9 + time@Base 4.9 + timerfd_gettime@Base 5 + timerfd_settime@Base 5 + times@Base 4.9 + tmpfile64@Base 5 + tmpfile@Base 5 + tmpnam@Base 4.9 + tmpnam_r@Base 4.9 + tsearch@Base 5 + ttyname_r@Base 7 + unlink@Base 4.9 + usleep@Base 4.9 + valloc@Base 4.9 + vasprintf@Base 5 + vfork@Base 5 + vfprintf@Base 5 + vfscanf@Base 4.9 + vprintf@Base 5 + vscanf@Base 4.9 + vsnprintf@Base 5 + vsprintf@Base 5 + vsscanf@Base 4.9 + wait3@Base 4.9 + wait4@Base 4.9 + wait@Base 4.9 + waitid@Base 4.9 + waitpid@Base 4.9 + wcrtomb@Base 6 + wcsnrtombs@Base 4.9 + wcsrtombs@Base 4.9 + wcstombs@Base 4.9 + wordexp@Base 4.9 + write@Base 4.9 + writev@Base 4.9 + xdr_bool@Base 5 + xdr_bytes@Base 5 + xdr_char@Base 5 + xdr_double@Base 5 + xdr_enum@Base 5 + xdr_float@Base 5 + xdr_hyper@Base 5 + xdr_int16_t@Base 5 + xdr_int32_t@Base 5 + xdr_int64_t@Base 5 + xdr_int8_t@Base 5 + xdr_int@Base 5 + xdr_long@Base 5 + xdr_longlong_t@Base 5 + xdr_quad_t@Base 5 + xdr_short@Base 5 + xdr_string@Base 5 + xdr_u_char@Base 5 + xdr_u_hyper@Base 5 + xdr_u_int@Base 5 + xdr_u_long@Base 5 + xdr_u_longlong_t@Base 5 + xdr_u_quad_t@Base 5 + xdr_u_short@Base 5 + xdr_uint16_t@Base 5 + xdr_uint32_t@Base 5 + xdr_uint64_t@Base 5 + xdr_uint8_t@Base 5 + xdrmem_create@Base 5 + xdrstdio_create@Base 5 + (optional)backtrace_uncompress_zdebug@Base 7 --- gcc-7-7.5.0.orig/debian/libubsan0.symbols +++ gcc-7-7.5.0/debian/libubsan0.symbols @@ -0,0 +1,118 @@ +libubsan.so.0 libubsan0 #MINVER# + _ZN11__sanitizer11CheckFailedEPKciS1_yy@Base 4.9 + _ZN11__sanitizer7OnPrintEPKc@Base 4.9 + __asan_backtrace_alloc@Base 4.9 + __asan_backtrace_close@Base 4.9 + __asan_backtrace_create_state@Base 4.9 + __asan_backtrace_dwarf_add@Base 4.9 + __asan_backtrace_free@Base 4.9 + __asan_backtrace_get_view@Base 4.9 + __asan_backtrace_initialize@Base 4.9 + __asan_backtrace_open@Base 4.9 + __asan_backtrace_pcinfo@Base 4.9 + __asan_backtrace_qsort@Base 4.9 + __asan_backtrace_release_view@Base 4.9 + __asan_backtrace_syminfo@Base 4.9 + __asan_backtrace_vector_finish@Base 4.9 + __asan_backtrace_vector_grow@Base 4.9 + __asan_backtrace_vector_release@Base 4.9 + __asan_cplus_demangle_builtin_types@Base 4.9 + __asan_cplus_demangle_fill_ctor@Base 4.9 + __asan_cplus_demangle_fill_dtor@Base 4.9 + __asan_cplus_demangle_fill_extended_operator@Base 4.9 + __asan_cplus_demangle_fill_name@Base 4.9 + __asan_cplus_demangle_init_info@Base 4.9 + __asan_cplus_demangle_mangled_name@Base 4.9 + __asan_cplus_demangle_operators@Base 4.9 + __asan_cplus_demangle_print@Base 4.9 + __asan_cplus_demangle_print_callback@Base 4.9 + __asan_cplus_demangle_type@Base 4.9 + __asan_cplus_demangle_v3@Base 4.9 + __asan_cplus_demangle_v3_callback@Base 4.9 + __asan_internal_memcmp@Base 4.9 + __asan_internal_memcpy@Base 4.9 + __asan_internal_memset@Base 4.9 + __asan_internal_strcmp@Base 4.9 + __asan_internal_strlen@Base 4.9 + __asan_internal_strncmp@Base 4.9 + __asan_internal_strnlen@Base 4.9 + __asan_is_gnu_v3_mangled_ctor@Base 4.9 + __asan_is_gnu_v3_mangled_dtor@Base 4.9 + __asan_java_demangle_v3@Base 4.9 + __asan_java_demangle_v3_callback@Base 4.9 + __sanitizer_cov@Base 4.9 + __sanitizer_cov_dump@Base 4.9 + __sanitizer_cov_indir_call16@Base 5 + __sanitizer_cov_init@Base 5 + __sanitizer_cov_module_init@Base 5 + __sanitizer_cov_trace_basic_block@Base 6 + __sanitizer_cov_trace_cmp1@Base 7 + __sanitizer_cov_trace_cmp2@Base 7 + __sanitizer_cov_trace_cmp4@Base 7 + __sanitizer_cov_trace_cmp8@Base 7 + __sanitizer_cov_trace_cmp@Base 6 + __sanitizer_cov_trace_div4@Base 7 + __sanitizer_cov_trace_div8@Base 7 + __sanitizer_cov_trace_func_enter@Base 6 + __sanitizer_cov_trace_gep@Base 7 + __sanitizer_cov_trace_pc_guard@Base 7 + __sanitizer_cov_trace_pc_guard_init@Base 7 + __sanitizer_cov_trace_pc_indir@Base 7 + __sanitizer_cov_trace_switch@Base 6 + __sanitizer_cov_with_check@Base 6 + __sanitizer_get_coverage_guards@Base 6 + __sanitizer_get_number_of_counters@Base 6 + __sanitizer_get_total_unique_caller_callee_pairs@Base 6 + __sanitizer_get_total_unique_coverage@Base 6 + __sanitizer_install_malloc_and_free_hooks@Base 7 + __sanitizer_maybe_open_cov_file@Base 5 + __sanitizer_report_error_summary@Base 4.9 + __sanitizer_reset_coverage@Base 6 + __sanitizer_sandbox_on_notify@Base 4.9 + __sanitizer_set_death_callback@Base 6 + __sanitizer_set_report_fd@Base 7 + __sanitizer_set_report_path@Base 4.9 + __sanitizer_symbolize_global@Base 7 + __sanitizer_symbolize_pc@Base 7 + __sanitizer_update_counter_bitset_and_clear_counters@Base 6 + __ubsan_handle_add_overflow@Base 4.9 + __ubsan_handle_add_overflow_abort@Base 4.9 + __ubsan_handle_builtin_unreachable@Base 4.9 + __ubsan_handle_cfi_bad_icall@Base 7 + __ubsan_handle_cfi_bad_icall_abort@Base 7 + __ubsan_handle_cfi_bad_type@Base 7 + __ubsan_handle_cfi_bad_type_abort@Base 7 + __ubsan_handle_cfi_check_fail@Base 7 + __ubsan_handle_cfi_check_fail_abort@Base 7 + __ubsan_handle_divrem_overflow@Base 4.9 + __ubsan_handle_divrem_overflow_abort@Base 4.9 + __ubsan_handle_dynamic_type_cache_miss@Base 4.9 + __ubsan_handle_dynamic_type_cache_miss_abort@Base 4.9 + __ubsan_handle_float_cast_overflow@Base 4.9 + __ubsan_handle_float_cast_overflow_abort@Base 4.9 + __ubsan_handle_function_type_mismatch@Base 4.9 + __ubsan_handle_function_type_mismatch_abort@Base 4.9 + __ubsan_handle_load_invalid_value@Base 4.9 + __ubsan_handle_load_invalid_value_abort@Base 4.9 + __ubsan_handle_missing_return@Base 4.9 + __ubsan_handle_mul_overflow@Base 4.9 + __ubsan_handle_mul_overflow_abort@Base 4.9 + __ubsan_handle_negate_overflow@Base 4.9 + __ubsan_handle_negate_overflow_abort@Base 4.9 + __ubsan_handle_nonnull_arg@Base 5 + __ubsan_handle_nonnull_arg_abort@Base 5 + __ubsan_handle_nonnull_return@Base 5 + __ubsan_handle_nonnull_return_abort@Base 5 + __ubsan_handle_out_of_bounds@Base 4.9 + __ubsan_handle_out_of_bounds_abort@Base 4.9 + __ubsan_handle_shift_out_of_bounds@Base 4.9 + __ubsan_handle_shift_out_of_bounds_abort@Base 4.9 + __ubsan_handle_sub_overflow@Base 4.9 + __ubsan_handle_sub_overflow_abort@Base 4.9 + __ubsan_handle_type_mismatch@Base 4.9 + __ubsan_handle_type_mismatch_abort@Base 4.9 + __ubsan_handle_vla_bound_not_positive@Base 4.9 + __ubsan_handle_vla_bound_not_positive_abort@Base 4.9 + __ubsan_vptr_type_cache@Base 4.9 + (arch=base-any-any-amd64 any-mips any-mipsel)internal_sigreturn@Base 7 + (optional)backtrace_uncompress_zdebug@Base 7 --- gcc-7-7.5.0.orig/debian/libvtv0.symbols +++ gcc-7-7.5.0/debian/libvtv0.symbols @@ -0,0 +1,68 @@ +libvtv.so.0 libvtv0 #MINVER# + _Z10__vtv_freePv@Base 4.9.0 + (arch=amd64)_Z12__vtv_mallocm@Base 4.9.0 + (arch=i386)_Z12__vtv_mallocj@Base 4.9.0 + _Z14__VLTDumpStatsv@Base 4.9.0 + _Z14__vtv_open_logPKc@Base 4.9.0 + (arch=amd64)_Z16__VLTRegisterSetPPvPKvmmS0_@Base 4.9.0 + (arch=i386)_Z16__VLTRegisterSetPPvPKvjjS0_@Base 4.9.0 + _Z16__vtv_add_to_logiPKcz@Base 4.9.0 + (arch=amd64)_Z17__VLTRegisterPairPPvPKvmS2_@Base 4.9.0 + (arch=i386)_Z17__VLTRegisterPairPPvPKvjS2_@Base 4.9.0 + _Z17__vtv_malloc_initv@Base 4.9.0 + _Z17__vtv_really_failPKc@Base 4.9.0 + _Z17__vtv_verify_failPPvPKv@Base 4.9.0 + _Z18__vtv_malloc_statsv@Base 4.9.0 + _Z20__vtv_malloc_protectv@Base 4.9.0 + (arch=amd64)_Z21__VLTRegisterSetDebugPPvPKvmmS0_@Base 4.9.0 + (arch=i386)_Z21__VLTRegisterSetDebugPPvPKvjjS0_@Base 4.9.0 + (arch=amd64)_Z22__VLTRegisterPairDebugPPvPKvmS2_PKcS4_@Base 4.9.0 + (arch=i386)_Z22__VLTRegisterPairDebugPPvPKvjS2_PKcS4_@Base 4.9.0 + _Z22__vtv_malloc_unprotectv@Base 4.9.0 + _Z23__vtv_malloc_dump_statsv@Base 4.9.0 + _Z23__vtv_verify_fail_debugPPvPKvPKc@Base 4.9.0 + (arch=amd64)_Z23search_cached_file_datam@Base 4.9.0 + (arch=i386)_Z23search_cached_file_dataj@Base 4.9.0 + _Z24__VLTVerifyVtablePointerPPvPKv@Base 4.9.0 + _Z25__vtv_count_mmapped_pagesv@Base 4.9.0 + _Z29__VLTVerifyVtablePointerDebugPPvPKvPKcS4_@Base 4.9.0 + _Z30__vtv_log_verification_failurePKcb@Base 4.9.0 + (arch=amd64)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE12put_internalEPKNS8_8key_typeERKS6_b@Base 4.9.0 + (arch=amd64)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE15find_or_add_keyEPKNS8_8key_typeEPPS6_@Base 4.9.0 + (arch=amd64)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE16destructive_copyEv@Base 4.9.0 + (arch=amd64)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE3putEPKNS8_8key_typeERKS6_@Base 4.9.0 + (arch=amd64)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE6createEm@Base 4.9.0 + (arch=amd64)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE7destroyEPS8_@Base 4.9.0 + (arch=amd64)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE11is_too_fullEm@Base 4.9.0 + (arch=amd64)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE12bucket_countEv@Base 4.9.0 + (arch=amd64)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE3getEPKNS8_8key_typeE@Base 4.9.0 + (arch=amd64)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE4sizeEv@Base 4.9.0 + (arch=amd64)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE5emptyEv@Base 4.9.0 + (arch=amd64)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE8key_type6equalsEPKS9_@Base 4.9.0 + (arch=i386)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE12put_internalEPKNS8_8key_typeERKS6_b@Base 4.9.0 + (arch=i386)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE15find_or_add_keyEPKNS8_8key_typeEPPS6_@Base 4.9.0 + (arch=i386)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE16destructive_copyEv@Base 4.9.0 + (arch=i386)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE3putEPKNS8_8key_typeERKS6_@Base 4.9.0 + (arch=i386)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE6createEj@Base 4.9.0 + (arch=i386)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE7destroyEPS8_@Base 4.9.0 + (arch=i386)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE11is_too_fullEj@Base 4.9.0 + (arch=i386)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE12bucket_countEv@Base 4.9.0 + (arch=i386)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE3getEPKNS8_8key_typeE@Base 4.9.0 + (arch=i386)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE4sizeEv@Base 4.9.0 + (arch=i386)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE5emptyEv@Base 4.9.0 + (arch=i386)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE8key_type6equalsEPKS9_@Base 4.9.0 + __VLTChangePermission@Base 4.9.0 + __VLTprotect@Base 4.9.0 + __VLTunprotect@Base 4.9.0 + _vtable_map_vars_end@Base 4.9.0 + _vtable_map_vars_start@Base 4.9.0 + mprotect_cycles@Base 4.9.0 + num_cache_entries@Base 4.9.0 + num_calls_to_mprotect@Base 4.9.0 + num_calls_to_regpair@Base 4.9.0 + num_calls_to_regset@Base 4.9.0 + num_calls_to_verify_vtable@Base 4.9.0 + num_pages_protected@Base 4.9.0 + regpair_cycles@Base 4.9.0 + regset_cycles@Base 4.9.0 + verify_vtable_cycles@Base 4.9.0 --- gcc-7-7.5.0.orig/debian/libx32asan4.overrides +++ gcc-7-7.5.0/debian/libx32asan4.overrides @@ -0,0 +1,2 @@ +# automake gets it wrong for the multilib build +libx32asan4 binary: binary-or-shlib-defines-rpath --- gcc-7-7.5.0.orig/debian/libx32asan4.symbols +++ gcc-7-7.5.0/debian/libx32asan4.symbols @@ -0,0 +1,5 @@ +libasan.so.4 libx32asan4 #MINVER# +#include "libasan.symbols.common" +#include "libasan.symbols.32" +#include "libasan.symbols.16" + internal_sigreturn@Base 7.2 --- gcc-7-7.5.0.orig/debian/libx32gphobos71.lintian-overrides +++ gcc-7-7.5.0/debian/libx32gphobos71.lintian-overrides @@ -0,0 +1,2 @@ +# no multilib zlib for x32 +libx32gphobos71 binary: embedded-library --- gcc-7-7.5.0.orig/debian/libx32stdc++6.symbols +++ gcc-7-7.5.0/debian/libx32stdc++6.symbols @@ -0,0 +1,27 @@ +libstdc++.so.6 libx32stdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + __gxx_personality_v0@CXXABI_1.3 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 +#(optional)_Z16__VLTRegisterSetPPvPKvjjS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z17__VLTRegisterPairPPvPKvjS2_@CXXABI_1.3.8 4.9.0 +#(optional)_Z21__VLTRegisterSetDebugPPvPKvjjS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z22__VLTRegisterPairDebugPPvPKvjS2_PKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)_Z24__VLTVerifyVtablePointerPPvPKv@CXXABI_1.3.8 4.9.0 +#(optional)_Z29__VLTVerifyVtablePointerDebugPPvPKvPKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)__VLTChangePermission@CXXABI_1.3.8 4.9.0 + _ZTIPKn@CXXABI_1.3.5 4.9.0 + _ZTIPKo@CXXABI_1.3.5 4.9.0 + _ZTIPn@CXXABI_1.3.5 4.9.0 + _ZTIPo@CXXABI_1.3.5 4.9.0 + _ZTIn@CXXABI_1.3.5 4.9.0 + _ZTIo@CXXABI_1.3.5 4.9.0 + _ZTSPKn@CXXABI_1.3.9 4.9.0 + _ZTSPKo@CXXABI_1.3.9 4.9.0 + _ZTSPn@CXXABI_1.3.9 4.9.0 + _ZTSPo@CXXABI_1.3.9 4.9.0 + _ZTSn@CXXABI_1.3.9 4.9.0 + _ZTSo@CXXABI_1.3.9 4.9.0 --- gcc-7-7.5.0.orig/debian/locale-gen +++ gcc-7-7.5.0/debian/locale-gen @@ -0,0 +1,51 @@ +#!/bin/sh + +# generate locales that the libstdc++ testsuite depends on + +LOCPATH=`pwd`/locales +export LOCPATH + +[ -d $LOCPATH ] || mkdir -p $LOCPATH + +[ -n "$USE_CPUS" ] || USE_CPUS=1 + +umask 022 + +echo "Generating locales..." +xargs -L 1 -P $USE_CPUS -I{} \ + sh -c ' + set {}; locale=$1; charset=$2 + case $locale in \#*) exit;; esac + [ -n "$locale" -a -n "$charset" ] || exit + echo " `echo $locale | sed \"s/\([^.\@]*\).*/\1/\"`.$charset`echo $locale | sed \"s/\([^\@]*\)\(\@.*\)*/\2/\"`..." + if [ -f $LOCPATH/$locale ]; then + input=$locale + else + input=`echo $locale | sed "s/\([^.]*\)[^@]*\(.*\)/\1\2/"` + fi + localedef -i $input -c -f $charset $LOCPATH/$locale #-A /etc/locale.alias + ' <&2 "usage: `basename $0` [-p ] [-t ] [-m ]" + echo >&2 " [ ...]" + exit 1 +} + +while [ $# -gt 0 ]; do + case $1 in + -p) + pidfile=$2 + shift + shift + ;; + -t) + timeout=$2 + shift + shift + ;; + -m) + message="$2" + shift + shift + ;; + -*) + usage + ;; + *) + break + esac +done + +[ $# -gt 0 ] || usage + +logfile="$1" +shift +otherlogs="$@" + +cleanup() +{ + rm -f $pidfile + exit 0 +} + +#trap cleanup 0 1 3 15 + +echo $$ > $pidfile + +update() +{ + _logvar=$1 + _othervar=$2 + + # logfile may not exist yet + if [ -r $logfile ]; then + _logtail="`tail -10 $logfile | md5sum` $f" + else + _logtail="does not exist: $logfile" + fi + eval $_logvar="'$_logtail'" + + _othertails='' + for f in $otherlogs; do + if [ -r $f ]; then + _othertails="$_othertails `tail -10 $f | md5sum` $f" + else + _othertails="$_othertails does not exist: $f" + fi + done + eval $_othervar="'$_othertails'" +} + +update logtail othertails +while true; do + sleep $timeout + update newlogtail newothertails + if [ "$logtail" != "$newlogtail" ]; then + # there is still action in the primary logfile. do nothing. + logtail="$newlogtail" + elif [ "$othertails" != "$newothertails" ]; then + # there is still action in the other log files, so print the message + /bin/echo -e $message + othertails="$newothertails" + else + # nothing changed in the other log files. maybe a timeout ... + : + fi +done --- gcc-7-7.5.0.orig/debian/patches/aarch64-simd-fnma-fix.diff +++ gcc-7-7.5.0/debian/patches/aarch64-simd-fnma-fix.diff @@ -0,0 +1,16 @@ +# DP: aarch64-simd: Avoid emitting dup insn by using canonical form for fnma. + +--- a/src/gcc/config/aarch64/aarch64-simd.md ++++ b/src/gcc/config/aarch64/aarch64-simd.md +@@ -1674,9 +1674,8 @@ + (define_insn "fnma4" + [(set (match_operand:VHSDF 0 "register_operand" "=w") + (fma:VHSDF +- (match_operand:VHSDF 1 "register_operand" "w") +- (neg:VHSDF +- (match_operand:VHSDF 2 "register_operand" "w")) ++ (neg:VHSDF (match_operand:VHSDF 1 "register_operand" "w")) ++ (match_operand:VHSDF 2 "register_operand" "w") + (match_operand:VHSDF 3 "register_operand" "0")))] + "TARGET_SIMD" + "fmls\\t%0., %1., %2." --- gcc-7-7.5.0.orig/debian/patches/ada-749574.diff +++ gcc-7-7.5.0/debian/patches/ada-749574.diff @@ -0,0 +1,114 @@ +From: Ludovic Brenta +From: Nicolas Boulenguez +Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81087 +Bug-Debian: http://bugs.debian.org/749574 +Description: array index out of range in gnatlink + The procedure gnatlink assumes that the Linker_Options.Table contains access + values to strings whose 'First index is always 1. This assumption is wrong + for the string returned by function Base_Name. + . + The wrong indices are not detected because gnatlink is compiled with + -gnatp, but the test result is wrong. + . + The following program normally raises Constraint_Error, prints FALSE + if compiled with -gnatn, while the expected result is TRUE. + . + procedure A is + G : constant String (3 .. 5) := "abc"; + begin + Ada.Text_IO.Put_Line (Boolean'Image (G (1 .. 2) = "ab")); + end A; + +--- a/src/gcc/ada/gnatlink.adb ++++ b/src/gcc/ada/gnatlink.adb +@@ -238,6 +238,9 @@ procedure Gnatlink is + procedure Write_Usage; + -- Show user the program options + ++ function Starts_With (Source, Pattern : String) return Boolean; ++ pragma Inline (Starts_With); ++ + --------------- + -- Base_Name -- + --------------- +@@ -524,7 +527,7 @@ procedure Gnatlink is + Binder_Options.Table (Binder_Options.Last) := + Linker_Options.Table (Linker_Options.Last); + +- elsif Arg'Length >= 7 and then Arg (1 .. 7) = "--LINK=" then ++ elsif Starts_With (Arg, "--LINK=") then + if Arg'Length = 7 then + Exit_With_Error ("Missing argument for --LINK="); + end if; +@@ -537,7 +540,7 @@ procedure Gnatlink is + ("Could not locate linker: " & Arg (8 .. Arg'Last)); + end if; + +- elsif Arg'Length > 6 and then Arg (1 .. 6) = "--GCC=" then ++ elsif Starts_With (Arg, "--GCC=") then + declare + Program_Args : constant Argument_List_Access := + Argument_String_To_List +@@ -1258,13 +1261,9 @@ procedure Gnatlink is + 1 .. Linker_Options.Last + loop + if Linker_Options.Table (J) /= null +- and then +- Linker_Options.Table (J)'Length +- > Run_Path_Opt'Length +- and then +- Linker_Options.Table (J) +- (1 .. Run_Path_Opt'Length) = +- Run_Path_Opt ++ and then Starts_With ++ (Linker_Options.Table (J).all, ++ Run_Path_Opt) + then + -- We have found an already + -- specified run_path_option: +@@ -1381,6 +1380,17 @@ procedure Gnatlink is + Status := fclose (Fd); + end Process_Binder_File; + ++ ---------------- ++ -- StartsWith -- ++ ---------------- ++ ++ function Starts_With (Source, Pattern : String) return Boolean is ++ Last : constant Natural := Source'First + Pattern'Length - 1; ++ begin ++ return Last <= Source'Last ++ and then Pattern = Source (Source'First .. Last); ++ end Starts_With; ++ + ----------- + -- Usage -- + ----------- +@@ -1895,8 +1905,8 @@ begin + while J <= Linker_Options.Last loop + if Linker_Options.Table (J).all = "-Xlinker" + and then J < Linker_Options.Last +- and then Linker_Options.Table (J + 1)'Length > 8 +- and then Linker_Options.Table (J + 1) (1 .. 8) = "--stack=" ++ and then Starts_With (Linker_Options.Table (J + 1).all, ++ "--stack=") + then + if Stack_Op then + Linker_Options.Table (J .. Linker_Options.Last - 2) := +@@ -1941,13 +1951,9 @@ begin + -- Here we just check for a canonical form that matches the + -- pragma Linker_Options set in the NT runtime. + +- if (Linker_Options.Table (J)'Length > 17 +- and then Linker_Options.Table (J) (1 .. 17) = +- "-Xlinker --stack=") +- or else +- (Linker_Options.Table (J)'Length > 12 +- and then Linker_Options.Table (J) (1 .. 12) = +- "-Wl,--stack=") ++ if Starts_With (Linker_Options.Table (J).all, "-Xlinker --stack=") ++ or else Starts_With (Linker_Options.Table (J).all, ++ "-Wl,--stack=") + then + if Stack_Op then + Linker_Options.Table (J .. Linker_Options.Last - 1) := --- gcc-7-7.5.0.orig/debian/patches/ada-acats.diff +++ gcc-7-7.5.0/debian/patches/ada-acats.diff @@ -0,0 +1,13 @@ +# DP: remove blanks from target_bit, see https://bugs.debian.org/814978 + +--- a/src/gcc/testsuite/ada/acats/run_all.sh ++++ b/src/gcc/testsuite/ada/acats/run_all.sh +@@ -130,7 +130,7 @@ + exit 1 + fi + target_run $dir/support/impbit > $dir/support/impbit.out 2>&1 +-target_bit=`cat $dir/support/impbit.out` ++target_bit=`sed -e 's/[ \r]//g' $dir/support/impbit.out` + echo target_bit="$target_bit" >> $dir/acats.log + + # Find out a suitable asm statement --- gcc-7-7.5.0.orig/debian/patches/ada-arm.diff +++ gcc-7-7.5.0/debian/patches/ada-arm.diff @@ -0,0 +1,18 @@ +DP: Improve support for ZCX on arm. + +Index: b/src/gcc/ada/gcc-interface/Makefile.in +=================================================================== +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -1953,7 +1953,10 @@ ifeq ($(strip $(filter-out arm% linux-gn + ifeq ($(strip $(filter-out arm%b,$(target_cpu))),) + EH_MECHANISM= + else +- EH_MECHANISM=-arm ++ # Special case; the GCC exception mechanism is supported under ++ # another name and with different files than for other ++ # target_cpus. ++ override EH_MECHANISM=-arm + endif + + TOOLS_TARGET_PAIRS = \ --- gcc-7-7.5.0.orig/debian/patches/ada-armel-libatomic.diff +++ gcc-7-7.5.0/debian/patches/ada-armel-libatomic.diff @@ -0,0 +1,37 @@ +Description: link libgnat with libatomic on armel + On other architectures, the link step does not change because we link + with --as-needed (ada-link-lib.diff). + . + Libatomic becomes an artificial dependency for Ada in Makefile.def, + so a better solution is welcome. + . + Please read ada-changes-in-autogen-output.diff about src/Makefile.def. +Bug-Debian: https://bugs.debian.org/861734 +Author: Matthias Klose +Author: Nicolas Boulenguez + +Index: b/src/gcc/ada/gcc-interface/Makefile.in +=================================================================== +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -1938,6 +1938,7 @@ endif + + # ARM linux, GNU eabi + ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),) ++ MISCLIB = -L../../../$(target_alias)/libatomic/.libs -latomic + LIBGNAT_TARGET_PAIRS = \ + a-intnam.ads $(TARGET_SUBDIR)/libgnatvsn/multilib.tmp 2> /dev/null; \ ++ if test -r $(TARGET_SUBDIR)/libgnatvsn/multilib.out; then \ ++ if cmp -s $(TARGET_SUBDIR)/libgnatvsn/multilib.tmp $(TARGET_SUBDIR)/libgnatvsn/multilib.out; then \ ++ rm -f $(TARGET_SUBDIR)/libgnatvsn/multilib.tmp; \ ++ else \ ++ rm -f $(TARGET_SUBDIR)/libgnatvsn/Makefile; \ ++ mv $(TARGET_SUBDIR)/libgnatvsn/multilib.tmp $(TARGET_SUBDIR)/libgnatvsn/multilib.out; \ ++ fi; \ ++ else \ ++ mv $(TARGET_SUBDIR)/libgnatvsn/multilib.tmp $(TARGET_SUBDIR)/libgnatvsn/multilib.out; \ ++ fi; \ ++ test ! -f $(TARGET_SUBDIR)/libgnatvsn/Makefile || exit 0; \ ++ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgnatvsn; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo Configuring in $(TARGET_SUBDIR)/libgnatvsn; \ ++ cd "$(TARGET_SUBDIR)/libgnatvsn" || exit 1; \ ++ case $(srcdir) in \ ++ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \ ++ *) topdir=`echo $(TARGET_SUBDIR)/libgnatvsn/ | \ ++ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \ ++ esac; \ ++ module_srcdir=libgnatvsn; \ ++ rm -f no-such-file || : ; \ ++ CONFIG_SITE=no-such-file $(SHELL) \ ++ $$s/$$module_srcdir/configure \ ++ --srcdir=$${topdir}/$$module_srcdir \ ++ $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \ ++ --target=${target_alias} \ ++ || exit 1 ++@endif target-libgnatvsn ++ ++ ++ ++ ++ ++.PHONY: all-target-libgnatvsn maybe-all-target-libgnatvsn ++maybe-all-target-libgnatvsn: ++@if gcc-bootstrap ++all-target-libgnatvsn: stage_current ++@endif gcc-bootstrap ++@if target-libgnatvsn ++TARGET-target-libgnatvsn=all ++maybe-all-target-libgnatvsn: all-target-libgnatvsn ++all-target-libgnatvsn: configure-target-libgnatvsn ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \ ++ $(TARGET-target-libgnatvsn)) ++@endif target-libgnatvsn ++ ++ ++ ++ ++ ++.PHONY: check-target-libgnatvsn maybe-check-target-libgnatvsn ++maybe-check-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-check-target-libgnatvsn: check-target-libgnatvsn ++ ++# Dummy target for uncheckable module. ++check-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: install-target-libgnatvsn maybe-install-target-libgnatvsn ++maybe-install-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-install-target-libgnatvsn: install-target-libgnatvsn ++ ++install-target-libgnatvsn: installdirs ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) ++ ++@endif target-libgnatvsn ++ ++.PHONY: install-strip-target-libgnatvsn maybe-install-strip-target-libgnatvsn ++maybe-install-strip-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-install-strip-target-libgnatvsn: install-strip-target-libgnatvsn ++ ++install-strip-target-libgnatvsn: installdirs ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) install-strip) ++ ++@endif target-libgnatvsn ++ ++# Other targets (info, dvi, pdf, etc.) ++ ++.PHONY: maybe-info-target-libgnatvsn info-target-libgnatvsn ++maybe-info-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-info-target-libgnatvsn: info-target-libgnatvsn ++ ++# libgnatvsn doesn't support info. ++info-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-dvi-target-libgnatvsn dvi-target-libgnatvsn ++maybe-dvi-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-dvi-target-libgnatvsn: dvi-target-libgnatvsn ++ ++# libgnatvsn doesn't support dvi. ++dvi-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-pdf-target-libgnatvsn pdf-target-libgnatvsn ++maybe-pdf-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-pdf-target-libgnatvsn: pdf-target-libgnatvsn ++ ++# libgnatvsn doesn't support pdf. ++pdf-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-html-target-libgnatvsn html-target-libgnatvsn ++maybe-html-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-html-target-libgnatvsn: html-target-libgnatvsn ++ ++# libgnatvsn doesn't support html. ++html-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-TAGS-target-libgnatvsn TAGS-target-libgnatvsn ++maybe-TAGS-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-TAGS-target-libgnatvsn: TAGS-target-libgnatvsn ++ ++# libgnatvsn doesn't support TAGS. ++TAGS-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-install-info-target-libgnatvsn install-info-target-libgnatvsn ++maybe-install-info-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-install-info-target-libgnatvsn: install-info-target-libgnatvsn ++ ++# libgnatvsn doesn't support install-info. ++install-info-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-install-pdf-target-libgnatvsn install-pdf-target-libgnatvsn ++maybe-install-pdf-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-install-pdf-target-libgnatvsn: install-pdf-target-libgnatvsn ++ ++# libgnatvsn doesn't support install-pdf. ++install-pdf-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-install-html-target-libgnatvsn install-html-target-libgnatvsn ++maybe-install-html-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-install-html-target-libgnatvsn: install-html-target-libgnatvsn ++ ++# libgnatvsn doesn't support install-html. ++install-html-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-installcheck-target-libgnatvsn installcheck-target-libgnatvsn ++maybe-installcheck-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-installcheck-target-libgnatvsn: installcheck-target-libgnatvsn ++ ++# libgnatvsn doesn't support installcheck. ++installcheck-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-mostlyclean-target-libgnatvsn mostlyclean-target-libgnatvsn ++maybe-mostlyclean-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-mostlyclean-target-libgnatvsn: mostlyclean-target-libgnatvsn ++ ++mostlyclean-target-libgnatvsn: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libgnatvsn/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing TAGS in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgnatvsn"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ mostlyclean) \ ++ || exit 1 ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-clean-target-libgnatvsn clean-target-libgnatvsn ++maybe-clean-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-clean-target-libgnatvsn: clean-target-libgnatvsn ++ ++clean-target-libgnatvsn: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libgnatvsn/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing clean in $(TARGET_SUBDIR)/libgnatvsn"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ clean) \ ++ || exit 1 ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-distclean-target-libgnatvsn distclean-target-libgnatvsn ++maybe-distclean-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-distclean-target-libgnatvsn: distclean-target-libgnatvsn ++ ++distclean-target-libgnatvsn: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libgnatvsn/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing distclean in $(TARGET_SUBDIR)/libgnatvsn"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ distclean) \ ++ || exit 1 ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-maintainer-clean-target-libgnatvsn maintainer-clean-target-libgnatvsn ++maybe-maintainer-clean-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-maintainer-clean-target-libgnatvsn: maintainer-clean-target-libgnatvsn ++ ++maintainer-clean-target-libgnatvsn: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libgnatvsn/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgnatvsn"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ maintainer-clean) \ ++ || exit 1 ++ ++@endif target-libgnatvsn ++ ++ ++ ++ ++ ++.PHONY: configure-target-libada-sjlj maybe-configure-target-libada-sjlj ++maybe-configure-target-libada-sjlj: ++@if gcc-bootstrap ++configure-target-libada-sjlj: stage_current ++@endif gcc-bootstrap ++@if target-libada-sjlj ++maybe-configure-target-libada-sjlj: configure-target-libada-sjlj ++configure-target-libada-sjlj: ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ echo "Checking multilib configuration for libada-sjlj..."; \ ++ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libada-sjlj; \ ++ $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp 2> /dev/null; \ ++ if test -r $(TARGET_SUBDIR)/libada-sjlj/multilib.out; then \ ++ if cmp -s $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp $(TARGET_SUBDIR)/libada-sjlj/multilib.out; then \ ++ rm -f $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp; \ ++ else \ ++ rm -f $(TARGET_SUBDIR)/libada-sjlj/Makefile; \ ++ mv $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp $(TARGET_SUBDIR)/libada-sjlj/multilib.out; \ ++ fi; \ ++ else \ ++ mv $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp $(TARGET_SUBDIR)/libada-sjlj/multilib.out; \ ++ fi; \ ++ test ! -f $(TARGET_SUBDIR)/libada-sjlj/Makefile || exit 0; \ ++ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libada-sjlj; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo Configuring in $(TARGET_SUBDIR)/libada-sjlj; \ ++ cd "$(TARGET_SUBDIR)/libada-sjlj" || exit 1; \ ++ case $(srcdir) in \ ++ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \ ++ *) topdir=`echo $(TARGET_SUBDIR)/libada-sjlj/ | \ ++ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \ ++ esac; \ ++ module_srcdir=libada-sjlj; \ ++ rm -f no-such-file || : ; \ ++ CONFIG_SITE=no-such-file $(SHELL) \ ++ $$s/$$module_srcdir/configure \ ++ --srcdir=$${topdir}/$$module_srcdir \ ++ $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \ ++ --target=${target_alias} \ ++ || exit 1 ++@endif target-libada-sjlj ++ ++ ++ ++ ++ ++.PHONY: all-target-libada-sjlj maybe-all-target-libada-sjlj ++maybe-all-target-libada-sjlj: ++@if gcc-bootstrap ++all-target-libada-sjlj: stage_current ++@endif gcc-bootstrap ++@if target-libada-sjlj ++TARGET-target-libada-sjlj=all ++maybe-all-target-libada-sjlj: all-target-libada-sjlj ++all-target-libada-sjlj: configure-target-libada-sjlj ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \ ++ $(TARGET-target-libada-sjlj)) ++@endif target-libada-sjlj ++ ++ ++ ++ ++ ++.PHONY: check-target-libada-sjlj maybe-check-target-libada-sjlj ++maybe-check-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-check-target-libada-sjlj: check-target-libada-sjlj ++ ++check-target-libada-sjlj: ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) ++ ++@endif target-libada-sjlj ++ ++.PHONY: install-target-libada-sjlj maybe-install-target-libada-sjlj ++maybe-install-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-install-target-libada-sjlj: install-target-libada-sjlj ++ ++install-target-libada-sjlj: installdirs ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) ++ ++@endif target-libada-sjlj ++ ++.PHONY: install-strip-target-libada-sjlj maybe-install-strip-target-libada-sjlj ++maybe-install-strip-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-install-strip-target-libada-sjlj: install-strip-target-libada-sjlj ++ ++install-strip-target-libada-sjlj: installdirs ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) install-strip) ++ ++@endif target-libada-sjlj ++ ++# Other targets (info, dvi, pdf, etc.) ++ ++.PHONY: maybe-info-target-libada-sjlj info-target-libada-sjlj ++maybe-info-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-info-target-libada-sjlj: info-target-libada-sjlj ++ ++info-target-libada-sjlj: \ ++ configure-target-libada-sjlj ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing info in $(TARGET_SUBDIR)/libada-sjlj"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ info) \ ++ || exit 1 ++ ++@endif target-libada-sjlj ++ ++.PHONY: maybe-dvi-target-libada-sjlj dvi-target-libada-sjlj ++maybe-dvi-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-dvi-target-libada-sjlj: dvi-target-libada-sjlj ++ ++dvi-target-libada-sjlj: \ ++ configure-target-libada-sjlj ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing dvi in $(TARGET_SUBDIR)/libada-sjlj"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ dvi) \ ++ || exit 1 ++ ++@endif target-libada-sjlj ++ ++.PHONY: maybe-pdf-target-libada-sjlj pdf-target-libada-sjlj ++maybe-pdf-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-pdf-target-libada-sjlj: pdf-target-libada-sjlj ++ ++pdf-target-libada-sjlj: \ ++ configure-target-libada-sjlj ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing pdf in $(TARGET_SUBDIR)/libada-sjlj"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ pdf) \ ++ || exit 1 ++ ++@endif target-libada-sjlj ++ ++.PHONY: maybe-html-target-libada-sjlj html-target-libada-sjlj ++maybe-html-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-html-target-libada-sjlj: html-target-libada-sjlj ++ ++html-target-libada-sjlj: \ ++ configure-target-libada-sjlj ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing html in $(TARGET_SUBDIR)/libada-sjlj"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ html) \ ++ || exit 1 ++ ++@endif target-libada-sjlj ++ ++.PHONY: maybe-TAGS-target-libada-sjlj TAGS-target-libada-sjlj ++maybe-TAGS-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-TAGS-target-libada-sjlj: TAGS-target-libada-sjlj ++ ++TAGS-target-libada-sjlj: \ ++ configure-target-libada-sjlj ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing TAGS in $(TARGET_SUBDIR)/libada-sjlj"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -49967,26 +50452,26 @@ TAGS-target-libada: \ + TAGS) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-install-info-target-libada install-info-target-libada +-maybe-install-info-target-libada: +-@if target-libada +-maybe-install-info-target-libada: install-info-target-libada ++.PHONY: maybe-install-info-target-libada-sjlj install-info-target-libada-sjlj ++maybe-install-info-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-install-info-target-libada-sjlj: install-info-target-libada-sjlj + +-install-info-target-libada: \ +- configure-target-libada \ +- info-target-libada ++install-info-target-libada-sjlj: \ ++ configure-target-libada-sjlj \ ++ info-target-libada-sjlj + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing install-info in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing install-info in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -49994,26 +50479,26 @@ install-info-target-libada: \ + install-info) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-install-pdf-target-libada install-pdf-target-libada +-maybe-install-pdf-target-libada: +-@if target-libada +-maybe-install-pdf-target-libada: install-pdf-target-libada ++.PHONY: maybe-install-pdf-target-libada-sjlj install-pdf-target-libada-sjlj ++maybe-install-pdf-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-install-pdf-target-libada-sjlj: install-pdf-target-libada-sjlj + +-install-pdf-target-libada: \ +- configure-target-libada \ +- pdf-target-libada ++install-pdf-target-libada-sjlj: \ ++ configure-target-libada-sjlj \ ++ pdf-target-libada-sjlj + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing install-pdf in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing install-pdf in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50021,26 +50506,26 @@ install-pdf-target-libada: \ + install-pdf) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-install-html-target-libada install-html-target-libada +-maybe-install-html-target-libada: +-@if target-libada +-maybe-install-html-target-libada: install-html-target-libada ++.PHONY: maybe-install-html-target-libada-sjlj install-html-target-libada-sjlj ++maybe-install-html-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-install-html-target-libada-sjlj: install-html-target-libada-sjlj + +-install-html-target-libada: \ +- configure-target-libada \ +- html-target-libada ++install-html-target-libada-sjlj: \ ++ configure-target-libada-sjlj \ ++ html-target-libada-sjlj + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing install-html in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing install-html in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50048,25 +50533,25 @@ install-html-target-libada: \ + install-html) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-installcheck-target-libada installcheck-target-libada +-maybe-installcheck-target-libada: +-@if target-libada +-maybe-installcheck-target-libada: installcheck-target-libada ++.PHONY: maybe-installcheck-target-libada-sjlj installcheck-target-libada-sjlj ++maybe-installcheck-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-installcheck-target-libada-sjlj: installcheck-target-libada-sjlj + +-installcheck-target-libada: \ +- configure-target-libada ++installcheck-target-libada-sjlj: \ ++ configure-target-libada-sjlj + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing installcheck in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing installcheck in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50074,24 +50559,24 @@ installcheck-target-libada: \ + installcheck) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-mostlyclean-target-libada mostlyclean-target-libada +-maybe-mostlyclean-target-libada: +-@if target-libada +-maybe-mostlyclean-target-libada: mostlyclean-target-libada ++.PHONY: maybe-mostlyclean-target-libada-sjlj mostlyclean-target-libada-sjlj ++maybe-mostlyclean-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-mostlyclean-target-libada-sjlj: mostlyclean-target-libada-sjlj + +-mostlyclean-target-libada: ++mostlyclean-target-libada-sjlj: + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing mostlyclean in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing mostlyclean in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50099,24 +50584,24 @@ mostlyclean-target-libada: + mostlyclean) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-clean-target-libada clean-target-libada +-maybe-clean-target-libada: +-@if target-libada +-maybe-clean-target-libada: clean-target-libada ++.PHONY: maybe-clean-target-libada-sjlj clean-target-libada-sjlj ++maybe-clean-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-clean-target-libada-sjlj: clean-target-libada-sjlj + +-clean-target-libada: ++clean-target-libada-sjlj: + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing clean in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing clean in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50124,24 +50609,24 @@ clean-target-libada: + clean) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-distclean-target-libada distclean-target-libada +-maybe-distclean-target-libada: +-@if target-libada +-maybe-distclean-target-libada: distclean-target-libada ++.PHONY: maybe-distclean-target-libada-sjlj distclean-target-libada-sjlj ++maybe-distclean-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-distclean-target-libada-sjlj: distclean-target-libada-sjlj + +-distclean-target-libada: ++distclean-target-libada-sjlj: + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing distclean in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing distclean in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50149,24 +50634,24 @@ distclean-target-libada: + distclean) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-maintainer-clean-target-libada maintainer-clean-target-libada +-maybe-maintainer-clean-target-libada: +-@if target-libada +-maybe-maintainer-clean-target-libada: maintainer-clean-target-libada ++.PHONY: maybe-maintainer-clean-target-libada-sjlj maintainer-clean-target-libada-sjlj ++maybe-maintainer-clean-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-maintainer-clean-target-libada-sjlj: maintainer-clean-target-libada-sjlj + +-maintainer-clean-target-libada: ++maintainer-clean-target-libada-sjlj: + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50174,7 +50659,7 @@ maintainer-clean-target-libada: + maintainer-clean) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + + + +@@ -55242,6 +55727,8 @@ configure-target-libffi: stage_last + configure-target-zlib: stage_last + configure-target-rda: stage_last + configure-target-libada: stage_last ++configure-target-libgnatvsn: stage_last ++configure-target-libada-sjlj: stage_last + configure-stage1-target-libgomp: maybe-all-stage1-gcc + configure-stage2-target-libgomp: maybe-all-stage2-gcc + configure-stage3-target-libgomp: maybe-all-stage3-gcc +@@ -55278,6 +55765,8 @@ configure-target-libffi: maybe-all-gcc + configure-target-zlib: maybe-all-gcc + configure-target-rda: maybe-all-gcc + configure-target-libada: maybe-all-gcc ++configure-target-libgnatvsn: maybe-all-gcc ++configure-target-libada-sjlj: maybe-all-gcc + configure-target-libgomp: maybe-all-gcc + configure-target-libitm: maybe-all-gcc + configure-target-libatomic: maybe-all-gcc +@@ -55733,8 +56222,12 @@ all-stageprofile-fixincludes: maybe-all- + all-stagefeedback-fixincludes: maybe-all-stagefeedback-libiberty + all-stageautoprofile-fixincludes: maybe-all-stageautoprofile-libiberty + all-stageautofeedback-fixincludes: maybe-all-stageautofeedback-libiberty ++all-target-libada: maybe-all-gcc ++all-target-libada-sjlj: maybe-all-target-libada + all-gnattools: maybe-all-target-libada + all-gnattools: maybe-all-target-libstdc++-v3 ++all-gnattools: maybe-all-target-libgnatvsn ++all-target-libgnatvsn: maybe-all-target-libada + all-lto-plugin: maybe-all-libiberty + + all-stage1-lto-plugin: maybe-all-stage1-libiberty +@@ -56434,6 +56927,8 @@ configure-target-libffi: maybe-all-targe + configure-target-zlib: maybe-all-target-libgcc + configure-target-rda: maybe-all-target-libgcc + configure-target-libada: maybe-all-target-libgcc ++configure-target-libgnatvsn: maybe-all-target-libgcc ++configure-target-libada-sjlj: maybe-all-target-libgcc + configure-target-libgomp: maybe-all-target-libgcc + configure-target-libitm: maybe-all-target-libgcc + configure-target-libatomic: maybe-all-target-libgcc +@@ -56486,6 +56981,10 @@ configure-target-rda: maybe-all-target-n + + configure-target-libada: maybe-all-target-newlib maybe-all-target-libgloss + ++configure-target-libgnatvsn: maybe-all-target-newlib maybe-all-target-libgloss ++ ++configure-target-libada-sjlj: maybe-all-target-newlib maybe-all-target-libgloss ++ + configure-target-libgomp: maybe-all-target-newlib maybe-all-target-libgloss + + configure-target-libitm: maybe-all-target-newlib maybe-all-target-libgloss --- gcc-7-7.5.0.orig/debian/patches/ada-drop-termio-h.diff +++ gcc-7-7.5.0/debian/patches/ada-drop-termio-h.diff @@ -0,0 +1,40 @@ +Description: ada/terminals.c: remove obsolete termio.h + On all architectures, the terminals.c source file #includes + and declares variables with type struct termios. + . + Some platforms provide a compatibility termio.h, which only defines + the termio structure. + . + terminals.c also #includes , probably for historical + reasons since no termio structure is ever used. + . + Drop the #include instead of maintaining a list of architectures. +Author: Nicolas Boulenguez +Bug-Debian: https://bugs.debian.org/845159 +Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81103 + +--- a/src/gcc/ada/terminals.c ++++ b/src/gcc/ada/terminals.c +@@ -1060,14 +1060,6 @@ + #include + #include + #include +- +-/* On some system termio is either absent or including it will disable termios +- (HP-UX) */ +-#if !defined (__hpux__) && !defined (BSD) && !defined (__APPLE__) \ +- && !defined (__rtems__) +-# include +-#endif +- + #include + #include + #include +@@ -1083,7 +1075,6 @@ + # include + #endif + #if defined (__hpux__) +-# include + # include + #endif + --- gcc-7-7.5.0.orig/debian/patches/ada-gcc-name.diff +++ gcc-7-7.5.0/debian/patches/ada-gcc-name.diff @@ -0,0 +1,295 @@ +Description: always call gcc with an explicit target and version + Many problems have been caused by the fact that tools like gnatmake + call other tools like gcc without an explicit target or version. + . + In order to solve this issue for all similar tools at once, AdaCore + has created the Osint.Program_Name function. When gnatmake launches a + gcc subprocess, this function computes the name of the right gcc + executable. This patch improves the function in four ways. + . + The previous algorithm wrongly tests "End_Of_Prefix > 1", + which may happen even if a match has been found. + This part will most probably be of interest for upstream. + . + Update the gnatchop tool to use this function. + This part will most probably be of interest for upstream. + . + Check that the target and version in the gnatmake program name, if + present, match the static constants inside the gnatmake program + itself. Also, knowing the length of the only allowed prefix and suffix + slightly improves performance by avoiding loops. + This part will most probably be of interest for upstream. + . + In Debian, gcc/gcc-version/target-gcc are symbolic links to the + target-gcc-version executable. The same holds for gnatmake, but the + target and version may differ. So "target-gcc-version" is the right + answer. It helps log checkers and humans debuggers, even if gnatmake + was invoked via a shortcut intended for human typers. + This part will probably be hard to merge for upstream, as some + distributions provide no "target-gcc-version". + . + Log for bug 903694 carries regression tests for both bugs. +Bug-Debian: https://bugs.debian.org/814977 +Bug-Debian: https://bugs.debian.org/814978 +Bug-Debian: https://bugs.debian.org/856274 +Bug-Debian: https://bugs.debian.org/881938 +Bug-Debian: https://bugs.debian.org/903694 +Author: Ludovic Brenta +Author: Nicolas Boulenguez +Author: Svante Signell +Author: YunQiang Su + +--- a/src/gcc/ada/osint.ads ++++ b/src/gcc/ada/osint.ads +@@ -137,16 +137,10 @@ package Osint is + -- path) in Name_Buffer, with the length in Name_Len. + + function Program_Name (Nam : String; Prog : String) return String_Access; +- -- In the native compilation case, Create a string containing Nam. In the +- -- cross compilation case, looks at the prefix of the current program being +- -- run and prepend it to Nam. For instance if the program being run is +- -- -gnatmake and Nam is "gcc", the returned value will be a pointer +- -- to "-gcc". In the specific case where AAMP_On_Target is set, the +- -- name "gcc" is mapped to "gnaamp", and names of the form "gnat*" are +- -- mapped to "gnaamp*". This function clobbers Name_Buffer and Name_Len. +- -- Also look at any suffix, e.g. gnatmake-4.1 -> "gcc-4.1". Prog is the +- -- default name of the current program being executed, e.g. "gnatmake", +- -- "gnatlink". ++ -- On Debian, always create a string containing ++ -- Sdefault.Target_Name & '-' & Nam & '-' & Gnatvsn.Library_Version. ++ -- Fail if the program base name differs from Prog, ++ -- maybe extended with the same prefix or suffix. + + procedure Write_Program_Name; + -- Writes name of program as invoked to the current output (normally +--- a/src/gcc/ada/osint.adb ++++ b/src/gcc/ada/osint.adb +@@ -2198,51 +2198,52 @@ package body Osint is + ------------------ + + function Program_Name (Nam : String; Prog : String) return String_Access is +- End_Of_Prefix : Natural := 0; +- Start_Of_Prefix : Positive := 1; +- Start_Of_Suffix : Positive; +- ++ -- Most of the work is to check that the current program name ++ -- is consistent with the two static constants below. ++ Suffix : constant String := '-' & Gnatvsn.Library_Version; ++ Prefix : Types.String_Ptr := Sdefault.Target_Name; ++ First : Integer; ++ Result : System.OS_Lib.String_Access; + begin + -- Get the name of the current program being executed +- + Find_Program_Name; + +- Start_Of_Suffix := Name_Len + 1; ++ -- If our version is present, skip it. ++ First := Name_Len - Suffix'Length + 1; ++ if 0 < First and then Name_Buffer (First .. Name_Len) = Suffix then ++ Name_Len := First - 1; ++ end if; ++ ++ -- The central part must be Prog. ++ First := Name_Len - Prog'Length + 1; ++ if First <= 0 or else Name_Buffer (First .. Name_Len) /= Prog then ++ Fail ("Osint.Program_Name: must end with " & Prog ++ & " or " & Prog & Suffix); ++ end if; ++ Name_Len := First - 1; + +- -- Find the target prefix if any, for the cross compilation case. +- -- For instance in "powerpc-elf-gcc" the target prefix is +- -- "powerpc-elf-" +- -- Ditto for suffix, e.g. in "gcc-4.1", the suffix is "-4.1" +- +- for J in reverse 1 .. Name_Len loop +- if Name_Buffer (J) = '/' +- or else Name_Buffer (J) = Directory_Separator +- or else Name_Buffer (J) = ':' +- then +- Start_Of_Prefix := J + 1; +- exit; +- end if; +- end loop; +- +- -- Find End_Of_Prefix +- +- for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop +- if Name_Buffer (J .. J + Prog'Length - 1) = Prog then +- End_Of_Prefix := J - 1; +- exit; +- end if; +- end loop; ++ -- According to Make-generated.in, this ends with a slash. ++ Prefix.all (Prefix.all'Last) := '-'; + +- if End_Of_Prefix > 1 then +- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1; ++ -- If our target is present, skip it. ++ First := Name_Len - Prefix.all'Length + 1; ++ if 0 < First and then Name_Buffer (First .. Name_Len) = Prefix.all then ++ Name_Len := First - 1; + end if; + +- -- Create the new program name ++ -- What remains must be the directory part. ++ if 0 < Name_Len ++ and then Name_Buffer (Name_Len) /= '/' ++ and then Name_Buffer (Name_Len) /= ':' ++ and then Name_Buffer (Name_Len) /= Directory_Separator ++ then ++ Fail ("Osint.Program_Name: must start with " & Prog ++ & " or " & Prefix.all & Prog); ++ end if; + +- return new String' +- (Name_Buffer (Start_Of_Prefix .. End_Of_Prefix) +- & Nam +- & Name_Buffer (Start_Of_Suffix .. Name_Len)); ++ Result := new String'(Prefix.all & Nam & Suffix); ++ Types.Free (Prefix); ++ return Result; + end Program_Name; + + ------------------------------ +--- a/src/gcc/ada/gnatchop.adb ++++ b/src/gcc/ada/gnatchop.adb +@@ -36,6 +36,7 @@ with GNAT.OS_Lib; use GNA + with GNAT.Heap_Sort_G; + with GNAT.Table; + ++with Osint; + with Switch; use Switch; + with Types; + +@@ -44,12 +45,9 @@ procedure Gnatchop is + Config_File_Name : constant String_Access := new String'("gnat.adc"); + -- The name of the file holding the GNAT configuration pragmas + +- Gcc : String_Access := new String'("gcc"); ++ Gcc : String_Access := null; + -- May be modified by switch --GCC= + +- Gcc_Set : Boolean := False; +- -- True if a switch --GCC= is used +- + Gnat_Cmd : String_Access; + -- Command to execute the GNAT compiler + +@@ -222,12 +220,6 @@ procedure Gnatchop is + Integer'Image + (Maximum_File_Name_Length); + +- function Locate_Executable +- (Program_Name : String; +- Look_For_Prefix : Boolean := True) return String_Access; +- -- Locate executable for given program name. This takes into account +- -- the target-prefix of the current command, if Look_For_Prefix is True. +- + subtype EOL_Length is Natural range 0 .. 2; + -- Possible lengths of end of line sequence + +@@ -492,76 +484,6 @@ procedure Gnatchop is + Unit.Table (Sorted_Units.Table (U + 1)).File_Name.all; + end Is_Duplicated; + +- ----------------------- +- -- Locate_Executable -- +- ----------------------- +- +- function Locate_Executable +- (Program_Name : String; +- Look_For_Prefix : Boolean := True) return String_Access +- is +- Gnatchop_Str : constant String := "gnatchop"; +- Current_Command : constant String := Normalize_Pathname (Command_Name); +- End_Of_Prefix : Natural; +- Start_Of_Prefix : Positive; +- Start_Of_Suffix : Positive; +- Result : String_Access; +- +- begin +- Start_Of_Prefix := Current_Command'First; +- Start_Of_Suffix := Current_Command'Last + 1; +- End_Of_Prefix := Start_Of_Prefix - 1; +- +- if Look_For_Prefix then +- +- -- Find Start_Of_Prefix +- +- for J in reverse Current_Command'Range loop +- if Current_Command (J) = '/' or else +- Current_Command (J) = Directory_Separator or else +- Current_Command (J) = ':' +- then +- Start_Of_Prefix := J + 1; +- exit; +- end if; +- end loop; +- +- -- Find End_Of_Prefix +- +- for J in Start_Of_Prefix .. +- Current_Command'Last - Gnatchop_Str'Length + 1 +- loop +- if Current_Command (J .. J + Gnatchop_Str'Length - 1) = +- Gnatchop_Str +- then +- End_Of_Prefix := J - 1; +- exit; +- end if; +- end loop; +- end if; +- +- if End_Of_Prefix > Current_Command'First then +- Start_Of_Suffix := End_Of_Prefix + Gnatchop_Str'Length + 1; +- end if; +- +- declare +- Command : constant String := +- Current_Command (Start_Of_Prefix .. End_Of_Prefix) +- & Program_Name +- & Current_Command (Start_Of_Suffix .. +- Current_Command'Last); +- begin +- Result := Locate_Exec_On_Path (Command); +- +- if Result = null then +- Error_Msg +- (Command & ": installation problem, executable not found"); +- end if; +- end; +- +- return Result; +- end Locate_Executable; +- + --------------- + -- Parse_EOL -- + --------------- +@@ -1088,8 +1010,8 @@ procedure Gnatchop is + exit; + + when '-' => +- Gcc := new String'(Parameter); +- Gcc_Set := True; ++ Free (Gcc); ++ Gcc := new String'(Parameter); + + when 'c' => + Compilation_Mode := True; +@@ -1767,9 +1689,13 @@ begin + + -- Check presence of required executables + +- Gnat_Cmd := Locate_Executable (Gcc.all, not Gcc_Set); ++ if Gcc = null then ++ Gcc := Osint.Program_Name ("gcc", "gnatchop"); ++ end if; ++ Gnat_Cmd := Locate_Exec_On_Path (Gcc.all); + + if Gnat_Cmd = null then ++ Error_Msg (Gcc.all & ": installation problem, executable not found"); + goto No_Files_Written; + end if; + --- gcc-7-7.5.0.orig/debian/patches/ada-gnattools-cross.diff +++ gcc-7-7.5.0/debian/patches/ada-gnattools-cross.diff @@ -0,0 +1,270 @@ +* Link tools dynamically. +* Prevent direct embedding of libada objects: + Mark ALI files as read-only, remove objects after the build. + A solution keeping the objects would be more intrusive. +* Rebuild gnatbind/make/link with themselves. + This removes unneeded objects inherited from the hardcoded bootstrap list. + The same thing would be useful for gnat1drv, but is less easy. +* TOOLS_ALREADY_COMPILED lists LIBGNAT objects that + gcc/ada/gcc-interface/Makefile should not rebuild. +* Install the shared Ada libraries as '.so.1', not '.so' to conform + to the Debian policy. +* Link libgnat/gnarl with LDFLAGS. +* Create libgnat-BV.so symbolic link, use it and -L to link libgnarl. + This prevents undefined symbols or unwanted usage of host libgnat. +* Compile with -gnatn, link with --as-needed -z defs. +* set LD_LIBRARY_PATH so that rebuilt tools can be executed. + +This patch depends on ada-libgnatvsn.diff. + +# DP: - When building a cross gnat, link against the libgnatvsnBV-dev +# DP: package. +# DP: This link will be done by /usr/bin/$(host_alias)-gnat*, thus +# DP: the native gnat with the same major version will be required. + +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -1637,6 +1637,11 @@ ifeq ($(strip $(filter-out s390% linux%, + LIBRARY_VERSION := $(LIB_VERSION) + endif + ++ifeq ($(strip $(filter-out hppa% unknown linux gnu,$(targ))),) ++ GNATLIB_SHARED = gnatlib-shared-dual ++ LIBRARY_VERSION := $(LIB_VERSION) ++endif ++ + # HP/PA HP-UX 10 + ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),) + LIBGNAT_TARGET_PAIRS = \ +@@ -2640,6 +2645,20 @@ gnatlink-re: ../stamp-tools gnatmake-re + --GCC="$(GCC_LINK)" $(TOOLS_LIBS) + $(MV) ../../gnatlinknew$(exeext) ../../gnatlink$(exeext) + ++gnatbind-re: ../stamp-tools gnatmake-re gnatlink-re ++ $(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatbind --GCC="$(CC) $(ALL_ADAFLAGS)" ++ $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatbind ++ $(GNATLINK) -v gnatbind -o ../../gnatbind$(exeext) \ ++ --GCC="$(GCC_LINK)" $(TOOLS_LIBS) ++ ++# When driven by gnattools/Makefile for a native build, ++# TOOLS_ALREADY_COMPILED will list objects in the target standard Ada ++# libraries, that Make should avoid rebuilding. ++# We cannot use recursive variables to avoid an infinite loop, ++# so we must put this after definition of EXTRA_GNATMAKE_OBJS. ++GNATLINK_OBJS := $(filter-out $(TOOLS_ALREADY_COMPILED),$(GNATLINK_OBJS)) ++GNATMAKE_OBJS := $(filter-out $(TOOLS_ALREADY_COMPILED),$(GNATMAKE_OBJS)) ++ + # Needs to be built with CC=gcc + # Since the RTL should be built with the latest compiler, remove the + # stamp target in the parent directory whenever gnat1 is rebuilt +@@ -2688,14 +2707,10 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD + # Also install the .dSYM directories if they exist (these directories + # contain the debug information for the shared libraries on darwin) + for file in gnat gnarl; do \ +- if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \ +- $(INSTALL) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).1 ]; then \ ++ $(INSTALL) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).1 \ + $(DESTDIR)$(ADA_RTL_OBJ_DIR); \ + fi; \ +- if [ -f $(RTSDIR)/lib$${file}$(soext) ]; then \ +- $(LN_S) lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \ +- $(DESTDIR)$(ADA_RTL_OBJ_DIR)/lib$${file}$(soext); \ +- fi; \ + if [ -d $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM ]; then \ + $(CP) -r $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM \ + $(DESTDIR)$(ADA_RTL_OBJ_DIR); \ +@@ -2720,8 +2735,7 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD + touch ../stamp-gnatlib2-$(RTSDIR) + $(RM) ../stamp-gnatlib-$(RTSDIR) + +-../stamp-gnatlib1-$(RTSDIR): Makefile ../stamp-gnatlib2-$(RTSDIR) +- $(RMDIR) $(RTSDIR) ++../stamp-gnatlib1-$(RTSDIR): Makefile + $(MKDIR) $(RTSDIR) + $(CHMOD) u+w $(RTSDIR) + # Copy target independent sources +@@ -2785,7 +2799,7 @@ $(RTSDIR)/s-oscons.ads: ../stamp-gnatlib + $(OSCONS_EXTRACT) ; \ + ../bldtools/oscons/xoscons s-oscons) + +-gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR) $(RTSDIR)/s-oscons.ads ++gnatlib: ../stamp-gnatlib1-$(RTSDIR) $(RTSDIR)/s-oscons.ads + test -f $(RTSDIR)/s-oscons.ads || exit 1 + # C files + $(MAKE) -C $(RTSDIR) \ +@@ -2819,36 +2833,51 @@ gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../ + $(RANLIB_FOR_TARGET) $(RTSDIR)/libgmem$(arext) + endif + $(CHMOD) a-wx $(RTSDIR)/*.ali ++# Provide .ads .adb (read-only).ali .so .a, but prevent direct use of .o. ++ $(RM) $(RTSDIR)/*.o + touch ../stamp-gnatlib-$(RTSDIR) + + # Warning: this target assumes that LIBRARY_VERSION has been set correctly. + gnatlib-shared-default: +- $(MAKE) $(FLAGS_TO_PASS) \ +- GNATLIBFLAGS="$(GNATLIBFLAGS)" \ +- GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \ +- GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) $(PICFLAG_FOR_TARGET)" \ +- MULTISUBDIR="$(MULTISUBDIR)" \ +- THREAD_KIND="$(THREAD_KIND)" \ +- gnatlib +- $(RM) $(RTSDIR)/libgna*$(soext) ++ $(MAKE) -C $(RTSDIR) \ ++ CC="`echo \"$(GCC_FOR_TARGET)\" \ ++ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \ ++ INCLUDES="$(INCLUDES_FOR_SUBDIR) -I./../.." \ ++ CFLAGS="$(GNATLIBCFLAGS_FOR_C) $(PICFLAG_FOR_TARGET)" \ ++ FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \ ++ srcdir=$(fsrcdir) \ ++ -f ../Makefile $(LIBGNAT_OBJS) ++ $(MAKE) -C $(RTSDIR) \ ++ CC="`echo \"$(GCC_FOR_TARGET)\" \ ++ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \ ++ ADA_INCLUDES="" \ ++ CFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \ ++ ADAFLAGS="$(GNATLIBFLAGS) $(PICFLAG_FOR_TARGET)" \ ++ FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \ ++ srcdir=$(fsrcdir) \ ++ -f ../Makefile \ ++ $(GNATRTL_OBJS) ++ $(RM) $(RTSDIR)/libgna*$(soext) $(RTSDIR)/libgna*$(soext).1 + cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ + | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \ + $(PICFLAG_FOR_TARGET) \ +- -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext).1 $(LDFLAGS) \ + $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ +- $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext).1 \ + $(MISCLIB) -lm ++ cd $(RTSDIR) && $(LN_S) -f libgnat$(hyphen)$(LIBRARY_VERSION)$(soext).1 \ ++ libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) + cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ + | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \ + $(PICFLAG_FOR_TARGET) \ +- -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext).1 $(LDFLAGS) \ + $(GNATRTL_TASKING_OBJS) \ +- $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext).1 \ ++ -L. -lgnat$(hyphen)$(LIBRARY_VERSION) \ + $(THREADSLIB) +- cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ +- libgnat$(soext) +- cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ +- libgnarl$(soext) ++ cd $(RTSDIR) && $(LN_S) -f libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext).1 \ ++ libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) ++ $(CHMOD) a-wx $(RTSDIR)/*.ali + + # Create static libgnat and libgnarl compiled with -fPIC + $(RM) $(RTSDIR)/libgnat_pic$(arext) $(RTSDIR)/libgnarl_pic$(arext) +@@ -2859,6 +2888,8 @@ gnatlib-shared-default: + $(addprefix $(RTSDIR)/,$(GNATRTL_TASKING_OBJS)) + $(RANLIB_FOR_TARGET) $(RTSDIR)/libgnarl_pic$(arext) + ++# Provide .ads .adb (read-only).ali .so .a, but prevent direct use of .o. ++ $(RM) $(RTSDIR)/*.o + + gnatlib-shared-dual: + $(MAKE) $(FLAGS_TO_PASS) \ +@@ -2867,21 +2898,15 @@ gnatlib-shared-dual: + GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ + MULTISUBDIR="$(MULTISUBDIR)" \ + THREAD_KIND="$(THREAD_KIND)" \ +- gnatlib-shared-default +- $(MV) $(RTSDIR)/libgna*$(soext) . +- $(MV) $(RTSDIR)/libgnat_pic$(arext) . +- $(MV) $(RTSDIR)/libgnarl_pic$(arext) . +- $(RM) ../stamp-gnatlib2-$(RTSDIR) ++ gnatlib ++ $(RM) $(RTSDIR)/*.o $(RTSDIR)/*.ali + $(MAKE) $(FLAGS_TO_PASS) \ + GNATLIBFLAGS="$(GNATLIBFLAGS)" \ + GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \ + GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ + MULTISUBDIR="$(MULTISUBDIR)" \ + THREAD_KIND="$(THREAD_KIND)" \ +- gnatlib +- $(MV) libgna*$(soext) $(RTSDIR) +- $(MV) libgnat_pic$(arext) $(RTSDIR) +- $(MV) libgnarl_pic$(arext) $(RTSDIR) ++ gnatlib-shared-default + + gnatlib-shared-dual-win32: + $(MAKE) $(FLAGS_TO_PASS) \ +@@ -2891,17 +2916,15 @@ gnatlib-shared-dual-win32: + PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \ + MULTISUBDIR="$(MULTISUBDIR)" \ + THREAD_KIND="$(THREAD_KIND)" \ +- gnatlib-shared-win32 +- $(MV) $(RTSDIR)/libgna*$(soext) . +- $(RM) ../stamp-gnatlib2-$(RTSDIR) ++ gnatlib ++ $(RM) $(RTSDIR)/*.o $(RTSDIR)/*.ali + $(MAKE) $(FLAGS_TO_PASS) \ + GNATLIBFLAGS="$(GNATLIBFLAGS)" \ + GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \ + GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ + MULTISUBDIR="$(MULTISUBDIR)" \ + THREAD_KIND="$(THREAD_KIND)" \ +- gnatlib +- $(MV) libgna*$(soext) $(RTSDIR) ++ gnatlib-shared-win32 + + # ??? we need to add the option to support auto-import of arrays/records to + # the GNATLIBFLAGS when this will be supported by GNAT. At this point we will +--- a/src/gnattools/Makefile.in ++++ b/src/gnattools/Makefile.in +@@ -76,15 +76,21 @@ CXX_LFLAGS = \ + -L../../../$(target_noncanonical)/libstdc++-v3/libsupc++/.libs + + # Variables for gnattools, native ++rtsdir := $(abspath ../gcc/ada/rts) ++vsndir := $(abspath ../$(target_noncanonical)/libgnatvsn) + TOOLS_FLAGS_TO_PASS_NATIVE= \ + "CC=../../xgcc -B../../" \ + "CXX=../../xg++ -B../../ $(CXX_LFLAGS)" \ + "CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \ +- "LDFLAGS=$(LDFLAGS)" \ +- "ADAFLAGS=$(ADAFLAGS)" \ ++ "LDFLAGS=$(LDFLAGS) -Wl,--as-needed -Wl,-z,defs" \ ++ "ADAFLAGS=$(ADAFLAGS) -gnatn" \ + "ADA_CFLAGS=$(ADA_CFLAGS)" \ + "INCLUDES=$(INCLUDES_FOR_SUBDIR)" \ +- "ADA_INCLUDES=-I- -I../rts $(ADA_INCLUDES_FOR_SUBDIR)"\ ++ "ADA_INCLUDES=-I- -nostdinc -I$(vsndir) -I$(rtsdir) $(ADA_INCLUDES_FOR_SUBDIR)" \ ++ "TOOLS_ALREADY_COMPILED=$(foreach d, $(vsndir) $(rtsdir), \ ++ $(patsubst $(d)/%.ali,%.o, $(wildcard $(d)/*.ali)))" \ ++ 'LIBGNAT=-L$(vsndir) -lgnatvsn -L$(rtsdir) -lgnat-$$(LIB_VERSION)' \ ++ "GNATBIND_FLAGS=-nostdlib -x" \ + "exeext=$(exeext)" \ + "fsrcdir=$(fsrcdir)" \ + "srcdir=$(fsrcdir)" \ +@@ -190,6 +196,10 @@ $(GCC_DIR)/stamp-tools: + # to be able to build gnatmake without a version of gnatmake around. Once + # everything has been compiled once, gnatmake can be recompiled with itself + # (see target regnattools) ++gnattools-native: export LD_LIBRARY_PATH := \ ++ $(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)$(vsndir):$(rtsdir) ++# Useful even for 1st pass, as ../../gnatmake may already be ++# dynamically linked in case this target has already been invokated. + gnattools-native: $(GCC_DIR)/stamp-tools $(GCC_DIR)/stamp-gnatlib-rts + # gnattools1 + $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \ +@@ -198,6 +208,13 @@ gnattools-native: $(GCC_DIR)/stamp-tools + # gnattools2 + $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \ + $(TOOLS_FLAGS_TO_PASS_NATIVE) common-tools ++# The hard-coded object lists for gnatbind/make/link contain unneeded ++# objects. Use the fresh tools to recompute dependencies. ++# A separate Make run avoids race conditions between gnatmakes ++# building the same object for common-tools and gnat*-re. ++# (parallelism is already forbidden between gnat*-re targets) ++ $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \ ++ $(TOOLS_FLAGS_TO_PASS_NATIVE) gnatbind-re gnatmake-re gnatlink-re + + # gnatmake/link can be built with recent gnatmake/link if they are available. + # This is especially convenient for building cross tools or for rebuilding --- gcc-7-7.5.0.orig/debian/patches/ada-kfreebsd.diff +++ gcc-7-7.5.0/debian/patches/ada-kfreebsd.diff @@ -0,0 +1,100 @@ +Description: add support for GNU/kFreeBSD. + GNU/kFreeBSD does not support Thread Priority Protection or Thread + Priority Inheritance and lacks some pthread_mutexattr_* functions. + Replace them with dummy versions. +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=642128 +Author: Ludovic Brenta +Author: Nicolas Boulenguez + +--- a/src/gcc/ada/s-osinte-kfreebsd-gnu.ads ++++ b/src/gcc/ada/s-osinte-kfreebsd-gnu.ads +@@ -45,6 +45,7 @@ + pragma Preelaborate; + + pragma Linker_Options ("-lpthread"); ++ pragma Linker_Options ("-lrt"); + + subtype int is Interfaces.C.int; + subtype char is Interfaces.C.char; +@@ -206,9 +207,7 @@ + function nanosleep (rqtp, rmtp : access timespec) return int; + pragma Import (C, nanosleep, "nanosleep"); + +- type clockid_t is private; +- +- CLOCK_REALTIME : constant clockid_t; ++ type clockid_t is new int; + + function clock_gettime + (clock_id : clockid_t; +@@ -441,31 +440,25 @@ + PTHREAD_PRIO_PROTECT : constant := 2; + PTHREAD_PRIO_INHERIT : constant := 1; + ++ -- GNU/kFreeBSD does not support Thread Priority Protection or Thread ++ -- Priority Inheritance and lacks some pthread_mutexattr_* functions. ++ -- Replace them with dummy versions. ++ + function pthread_mutexattr_setprotocol + (attr : access pthread_mutexattr_t; +- protocol : int) return int; +- pragma Import +- (C, pthread_mutexattr_setprotocol, "pthread_mutexattr_setprotocol"); ++ protocol : int) return int is (0); + + function pthread_mutexattr_getprotocol + (attr : access pthread_mutexattr_t; +- protocol : access int) return int; +- pragma Import +- (C, pthread_mutexattr_getprotocol, "pthread_mutexattr_getprotocol"); ++ protocol : access int) return int is (0); + + function pthread_mutexattr_setprioceiling + (attr : access pthread_mutexattr_t; +- prioceiling : int) return int; +- pragma Import +- (C, pthread_mutexattr_setprioceiling, +- "pthread_mutexattr_setprioceiling"); ++ prioceiling : int) return int is (0); + + function pthread_mutexattr_getprioceiling + (attr : access pthread_mutexattr_t; +- prioceiling : access int) return int; +- pragma Import +- (C, pthread_mutexattr_getprioceiling, +- "pthread_mutexattr_getprioceiling"); ++ prioceiling : access int) return int is (0); + + type struct_sched_param is record + sched_priority : int; -- scheduling priority +@@ -610,9 +603,6 @@ + end record; + pragma Convention (C, timespec); + +- type clockid_t is new int; +- CLOCK_REALTIME : constant clockid_t := 0; +- + type pthread_attr_t is record + detachstate : int; + schedpolicy : int; +--- a/src/gcc/ada/gsocket.h ++++ b/src/gcc/ada/gsocket.h +@@ -244,6 +244,7 @@ + #endif + + #if defined (__FreeBSD__) || defined (__vxworks) || defined(__rtems__) \ ++ || defined (__FreeBSD_kernel__) || defined(__GNU__) \ + || defined (__DragonFly__) || defined (__NetBSD__) || defined (__OpenBSD__) + # define Has_Sockaddr_Len 1 + #else +--- a/src/gcc/ada/s-oscons-tmplt.c ++++ b/src/gcc/ada/s-oscons-tmplt.c +@@ -1441,7 +1441,7 @@ + CND(CLOCK_THREAD_CPUTIME_ID, "Thread CPU clock") + + #if defined(__FreeBSD__) || (defined(_AIX) && defined(_AIXVERSION_530)) \ +- || defined(__DragonFly__) ++ || defined(__DragonFly__) || defined(__FreeBSD_kernel__) + /** On these platforms use system provided monotonic clock instead of + ** the default CLOCK_REALTIME. We then need to set up cond var attributes + ** appropriately (see thread.c). --- gcc-7-7.5.0.orig/debian/patches/ada-lib-info-source-date-epoch.diff +++ gcc-7-7.5.0/debian/patches/ada-lib-info-source-date-epoch.diff @@ -0,0 +1,144 @@ +Description: set ALI timestamps from SOURCE_DATE_EPOCH if available. + When the SOURCE_DATE_EPOCH environment variable is set, + replace timestamps more recent than its value with its value + when writing Ada Library Information (ALI) files. + This allow reproducible builds from generated or patched Ada sources. + https://reproducible-builds.org/specs/source-date-epoch/ +Author: Nicolas Boulenguez + +--- a/src/gcc/ada/ali-util.adb ++++ b/src/gcc/ada/ali-util.adb +@@ -484,8 +484,10 @@ package body ALI.Util is + for D in ALIs.Table (A).First_Sdep .. ALIs.Table (A).Last_Sdep loop + Src := Source_Id (Get_Name_Table_Int (Sdep.Table (D).Sfile)); + +- if Opt.Minimal_Recompilation +- and then Sdep.Table (D).Stamp /= Source.Table (Src).Stamp ++ if (Opt.Minimal_Recompilation ++ and then Sdep.Table (D).Stamp /= Source.Table (Src).Stamp) ++ or else (Sdep.Table (D).Stamp = Source_Date_Epoch ++ and then Source_Date_Epoch < Source.Table (Src).Stamp) + then + -- If minimal recompilation is in action, replace the stamp + -- of the source file in the table if checksums match. +--- a/src/gcc/ada/lib-writ.adb ++++ b/src/gcc/ada/lib-writ.adb +@@ -1471,7 +1471,14 @@ package body Lib.Writ is + + Write_Info_Name_May_Be_Quoted (Fname); + Write_Info_Tab (25); +- Write_Info_Str (String (Time_Stamp (Sind))); ++ declare ++ T : Time_Stamp_Type := Time_Stamp (Sind); ++ begin ++ if Source_Date_Epoch < T then ++ T := Source_Date_Epoch; ++ end if; ++ Write_Info_Str (String (T)); ++ end; + Write_Info_Char (' '); + Write_Info_Str (Get_Hex_String (Source_Checksum (Sind))); + +--- a/src/gcc/ada/osint.adb ++++ b/src/gcc/ada/osint.adb +@@ -1673,6 +1673,20 @@ package body Osint is + + Lib_Search_Directories.Set_Last (Primary_Directory); + Lib_Search_Directories.Table (Primary_Directory) := new String'(""); ++ ++ -- Look for Source_Date_Epoch in the environment. ++ declare ++ Env_Var : String_Access; ++ Get_OK : Boolean; ++ Epoch : OS_Time; ++ begin ++ Env_Var := Getenv ("SOURCE_DATE_EPOCH"); ++ Get_OS_Time_From_String (Env_Var.all, Get_OK, Epoch); ++ Free (Env_Var); ++ if Get_OK then ++ Source_Date_Epoch := OS_Time_To_GNAT_Time (Epoch); ++ end if; ++ end; + end Initialize; + + ------------------ +--- a/src/gcc/ada/osint.ads ++++ b/src/gcc/ada/osint.ads +@@ -695,6 +695,17 @@ package Osint is + function Prep_Suffix return String; + -- The suffix used for pre-processed files + ++ Source_Date_Epoch : Time_Stamp_Type := Time_Stamp_Type'("99991231235959"); ++ -- * gnat1 truncates to this date time stamps written to ALI files, making ++ -- their contents deterministic even for patched or generated sources. ++ -- See https://reproducible-builds.org/specs/source-date-epoch. ++ -- * When gnatmake reads this date from an ALI file, and the source file is ++ -- more recent, it ignores the dates and only considers checksums as if ++ -- Minimal_Recompilation was selected. Else, the source would always ++ -- be detected as requiring a recompilation. ++ -- The default value has no effect, but Initialize will assign it if ++ -- SOURCE_DATE_EPOCH in the environment represents a valid epoch. ++ + private + + Current_Main : File_Name_Type := No_File; +--- a/src/gcc/ada/s-os_lib.adb ++++ b/src/gcc/ada/s-os_lib.adb +@@ -1153,6 +1153,41 @@ package body System.OS_Lib is + return Result; + end Get_Object_Suffix; + ++ ----------------------------- ++ -- Get_OS_Time_From_String -- ++ ----------------------------- ++ ++ procedure Get_OS_Time_From_String (Arg : String; ++ Success : out Boolean; ++ Result : out OS_Time) is ++ -- Calling System.Val_LLI breaks the bootstrap sequence. ++ Digit : OS_Time; ++ begin ++ Result := 0; ++ if Arg'Length = 0 then ++ Success := False; ++ return; ++ end if; ++ for I in Arg'Range loop ++ if Arg (I) not in '0' .. '9' then ++ Success := False; ++ return; ++ end if; ++ Digit := OS_Time (Character'Pos (Arg (I)) - Character'Pos ('0')); ++ if OS_Time'Last / 10 < Result then ++ Success := False; ++ return; ++ end if; ++ Result := Result * 10; ++ if OS_Time'Last - Digit < Result then ++ Success := False; ++ return; ++ end if; ++ Result := Result + Digit; ++ end loop; ++ Success := True; ++ end Get_OS_Time_From_String; ++ + ---------------------------------- + -- Get_Target_Debuggable_Suffix -- + ---------------------------------- +--- a/src/gcc/ada/s-os_lib.ads ++++ b/src/gcc/ada/s-os_lib.ads +@@ -164,6 +164,13 @@ package System.OS_Lib is + -- component parts to be interpreted in the local time zone, and returns + -- an OS_Time. Returns Invalid_Time if the creation fails. + ++ procedure Get_OS_Time_From_String (Arg : String; ++ Success : out Boolean; ++ Result : out OS_Time); ++ -- Success is set if Arg is not empty, only contains decimal ++ -- digits and represents an integer within OS_Time range. Result ++ -- is then affected with the represented value. ++ + ---------------- + -- File Stuff -- + ---------------- --- gcc-7-7.5.0.orig/debian/patches/ada-libgnatvsn.diff +++ gcc-7-7.5.0/debian/patches/ada-libgnatvsn.diff @@ -0,0 +1,297 @@ +# DP: - Introduce a new shared library named libgnatvsn, containing +# DP: common components of GNAT under the GNAT-Modified GPL, for +# DP: use in GNAT tools, ASIS, GLADE and GPS. Link the gnat tools +# DP: against this new library. + +# Please read ada-changes-in-autogen-output.diff about src/Makefile.def. + +# !!! Must be applied after ada-link-lib.diff + +--- /dev/null ++++ b/src/libgnatvsn/configure +@@ -0,0 +1,34 @@ ++#!/bin/sh ++ ++# Minimal configure script for libgnatvsn. We're only interested in ++# a few parameters. ++ ++{ ++ ++for arg in $*; do ++ case ${arg} in ++ --prefix=*) ++ prefix=`expr ${arg} : '--prefix=\(.\+\)'`;; ++ --srcdir=*) ++ srcdir=`expr ${arg} : '--srcdir=\(.\+\)'`;; ++ --libdir=*) ++ libdir=`expr ${arg} : '--libdir=\(.\+\)'`;; ++ --with-pkgversion=*) ++ pkgversion=`expr ${arg} : '--with-pkgversion=\(.\+\)'`;; ++ --with-bugurl=*) ++ bugurl=`expr ${arg} : '--with-bugurl=\(.\+\)'`;; ++ *) ++ echo "Warning: ignoring option: ${arg}" ++ esac ++done ++ ++sed_script= ++for name in prefix srcdir libdir pkgversion bugurl; do ++ eval value=\$$name ++ echo "$name: $value" ++ sed_script="$sed_script;s,@$name@,$value," ++done ++echo "Creating Makefile..." ++sed "$sed_script" "$srcdir/Makefile.in" > Makefile ++ ++} | tee -a config.log +--- /dev/null ++++ b/src/libgnatvsn/gnatvsn.gpr.sed +@@ -0,0 +1,8 @@ ++library project Gnatvsn is ++ for Library_Name use "gnatvsn"; ++ for Library_Kind use "dynamic"; ++ for Library_Dir use "lib_inst_dir"; ++ for Source_Dirs use ("src_inst_dir"); ++ for Library_ALI_Dir use "ali_inst_dir"; ++ for Externally_Built use "true"; ++end Gnatvsn; +--- /dev/null ++++ b/src/libgnatvsn/Makefile.in +@@ -0,0 +1,161 @@ ++# Makefile for libgnatvsn. ++# Copyright (c) 2006 Ludovic Brenta ++# Copyright (c) 2017 Nicolas Boulenguez ++# ++# This file is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ ++# Parameters substituted by configure during Makefile generation ++prefix := @prefix@ ++srcdir := @srcdir@ ++libdir := @libdir@ ++pkgversion := @pkgversion@ ++bugurl := @bugurl@ ++ ++# Parameters expected in environment or command line ++$(foreach v, \ ++ ADA_CFLAGS ADAFLAGS CC CFLAGS CPPFLAGS DESTDIR INSTALL INSTALL_DATA LDFLAGS \ ++ ,$(info $(v) ($(origin $(v))) = $($(v)))) ++# It seems that both CFLAGS/ADA_CFLAGS should affect both Ada/C. ++ ++# Parameters read from external files ++BASEVER := $(shell cat $(srcdir)/../gcc/BASE-VER) ++DEVPHASE := $(shell cat $(srcdir)/../gcc/DEV-PHASE) ++DATESTAMP := $(shell cat $(srcdir)/../gcc/DATESTAMP) ++ ++# Public and default targets ++.PHONY: all install clean ++all: ++ ++###################################################################### ++ ++LIB_VERSION := $(shell expr '$(BASEVER)' : '\([0-9]\+\)') ++ ++src_inst_dir := $(prefix)/share/ada/adainclude/gnatvsn ++gpr_inst_dir := $(prefix)/share/gpr ++ali_inst_dir := $(libdir)/ada/adalib/gnatvsn ++lib_inst_dir := $(libdir) ++ ++# Initial value of variables accumulationg build flags. ++adaflags := -gnatn ++cflags := ++cppflags := ++ldflags := -Wl,--as-needed -Wl,-z,defs ++ldlibs := ++ ++# For use in version.c - double quoted strings, with appropriate ++# surrounding punctuation and spaces, and with the datestamp and ++# development phase collapsed to the empty string in release mode ++# (i.e. if DEVPHASE_c is empty). The space immediately after the ++# comma in the $(if ...) constructs is significant - do not remove it. ++cppflags += \ ++ -DBASEVER="\"$(BASEVER)\"" \ ++ -DDATESTAMP="\"$(if $(DEVPHASE), $(DATESTAMP))\"" \ ++ -DDEVPHASE="\"$(if $(DEVPHASE), ($(DEVPHASE)))\"" \ ++ -DPKGVERSION="\"$(pkgversion)\"" \ ++ -DBUGURL="\"$(bugurl)\"" \ ++ -DREVISION= ++ ++# Include and link freshly built target RTL instead of the default. ++RTL_DIR := ../libada ++adaflags += -nostdinc -I$(RTL_DIR)/adainclude ++ldlibs += -L$(RTL_DIR)/adalib -lgnat-$(LIB_VERSION) ++ ++# Append user settings last, allowing them to take precedence. ++adaflags += $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) ++cflags += $(CFLAGS) $(ADA_CFLAGS) ++cppflags += $(CPPFLAGS) ++ldflags += $(LDFLAGS) ++ ++# Link wanted Ada sources from source tree, so that gnat fails when new ++# dependencies are missing in the current directory, instead of silently ++# using the ones in the distant directory. ++# Let Make create all symlinks before first ada compilation, ++# because they depend on each other. ++# snames.ad[bs] is generated in the build tree. ++ ++UNITS_BOTH := aspects atree casing csets debug einfo elists fname \ ++ gnatvsn krunch lib namet nlists opt output repinfo scans sem_aux \ ++ sinfo sinput stand stringt table tree_in tree_io types uintp \ ++ uname urealp widechar xutil ++UNITS_SPEC := alloc hostparm rident ++SEPARATES := lib-list lib-sort ++ADA_SRC := $(addsuffix .ads, $(UNITS_BOTH) $(UNITS_SPEC)) \ ++ $(addsuffix .adb, $(UNITS_BOTH) $(SEPARATES)) ++OBJECTS := $(addsuffix .o, $(UNITS_BOTH) snames $(UNITS_SPEC) version) ++ ++all: libgnatvsn.a libgnatvsn.so.$(LIB_VERSION) gnatvsn.gpr ++ ++libgnatvsn.so.$(LIB_VERSION): $(addprefix obj-shared/,$(OBJECTS)) ++ $(CC) -o $@ -shared -fPIC -Wl,--soname,$@ $^ $(ldflags) $(ldlibs) ++ ln -fs libgnatvsn.so.$(LIB_VERSION) libgnatvsn.so ++ chmod a=r obj-shared/*.ali ++# Make the .ali files, but not the .o files, visible to the gnat tools. ++ cp -lp obj-shared/*.ali . ++ ++$(foreach u, $(UNITS_BOTH) snames, obj-shared/$(u).o): \ ++obj-shared/%.o: %.adb $(ADA_SRC) snames.adb snames.ads | obj-shared ++ $(CC) -c -fPIC $(adaflags) $< -o $@ ++ ++$(foreach u, $(UNITS_SPEC), obj-shared/$(u).o): \ ++obj-shared/%.o: %.ads $(ADA_SRC) snames.adb snames.ads | obj-shared ++ $(CC) -c -fPIC $(adaflags) $< -o $@ ++ ++obj-shared/version.o: version.c version.h | obj-shared ++ $(CC) -c -fPIC $(cflags) $(cppflags) $< -o $@ ++ ++libgnatvsn.a: $(addprefix obj-static/,$(OBJECTS)) ++ ar rc $@ $^ ++ ranlib $@ ++ ++$(foreach u, $(UNITS_BOTH) snames, obj-static/$(u).o): \ ++obj-static/%.o: %.adb $(ADA_SRC) snames.adb snames.ads | obj-static ++ $(CC) -c $(adaflags) $< -o $@ ++ ++$(foreach u, $(UNITS_SPEC), obj-static/$(u).o): \ ++obj-static/%.o: %.ads $(ADA_SRC) snames.adb snames.ads | obj-static ++ $(CC) -c $(adaflags) $< -o $@ ++ ++obj-static/version.o: version.c version.h | obj-static ++ $(CC) -c $(cflags) $(cppflags) $< -o $@ ++ ++obj-shared obj-static: ++ mkdir $@ ++ ++$(ADA_SRC): ++ ln -s $(srcdir)/../gcc/ada/$@ ++version.c version.h: ++ ln -s $(srcdir)/../gcc/$@ ++snames.adb snames.ads: ++ ln -s ../../gcc/ada/$@ ++ ++gnatvsn.gpr: $(srcdir)/gnatvsn.gpr.sed ++ sed '$(foreach v,src ali lib,s|$(v)_inst_dir|$($(v)_inst_dir)|;)' \ ++ $< > $@ ++ ++install: all ++ mkdir -p $(DESTDIR)$(gpr_inst_dir) ++ $(INSTALL_DATA) gnatvsn.gpr $(DESTDIR)$(gpr_inst_dir) ++ mkdir -p $(DESTDIR)$(lib_inst_dir) ++ $(INSTALL_DATA) libgnatvsn.a libgnatvsn.so.* $(DESTDIR)$(lib_inst_dir) ++ cd $(DESTDIR)$(lib_inst_dir) && ln -sf libgnatvsn.so.$(LIB_VERSION) libgnatvsn.so ++ mkdir -p $(DESTDIR)$(src_inst_dir) ++ $(INSTALL_DATA) *.adb *.ads *.c *.h $(DESTDIR)$(src_inst_dir) ++ mkdir -p $(DESTDIR)$(ali_inst_dir) ++ $(INSTALL) -m 0444 *.ali $(DESTDIR)$(ali_inst_dir) ++ ++clean: ++ rm -fr obj-static obj-shared ++ rm -f *.ali libgnatvsn* *.adb *.ads *.c *.h gnatvsn.gpr ++ rm -f Makefile config.log +--- a/src/Makefile.def ++++ b/src/Makefile.def +@@ -187,6 +187,16 @@ + missing= TAGS; + missing= install-info; + missing= installcheck; }; ++target_modules = { module= libgnatvsn; no_check=true; ++ missing= info; ++ missing= dvi; ++ missing= html; ++ missing= pdf; ++ missing= install-html; ++ missing= install-pdf; ++ missing= TAGS; ++ missing= install-info; ++ missing= installcheck; }; + target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; }; + target_modules = { module= libitm; lib_path=.libs; }; + target_modules = { module= libatomic; lib_path=.libs; }; +@@ -385,6 +395,8 @@ + dependencies = { module=all-target-libada; on=all-gcc; }; + dependencies = { module=all-gnattools; on=all-target-libada; }; + dependencies = { module=all-gnattools; on=all-target-libstdc++-v3; }; ++dependencies = { module=all-gnattools; on=all-target-libgnatvsn; }; ++dependencies = { module=all-target-libgnatvsn; on=all-target-libada; }; + + // Depending on the specific configuration, the LTO plugin will either use the + // generic libiberty build or the specific build for linker plugins. +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -171,6 +171,7 @@ + target-libobjc \ + target-libada \ + ${target_libiberty} \ ++ target-libgnatvsn \ + target-libgo" + + # these tools are built using the target libraries, and are intended to +@@ -455,7 +456,7 @@ + ENABLE_LIBADA=$enableval, + ENABLE_LIBADA=yes) + if test "${ENABLE_LIBADA}" != "yes" ; then +- noconfigdirs="$noconfigdirs gnattools" ++ noconfigdirs="$noconfigdirs target-libgnatvsn gnattools" + fi + + AC_ARG_ENABLE(libssp, +--- a/src/gcc/ada/gcc-interface/config-lang.in ++++ b/src/gcc/ada/gcc-interface/config-lang.in +@@ -34,7 +34,7 @@ + + outputs="ada/gcc-interface/Makefile ada/Makefile" + +-target_libs="target-libada" ++target_libs="target-libada target-libgnatvsn" + lang_dirs="libada gnattools" + + # Ada is not enabled by default for the time being. +--- a/src/gcc/testsuite/ada/acats/run_acats.sh ++++ b/src/gcc/testsuite/ada/acats/run_acats.sh +@@ -32,6 +32,15 @@ + LD_LIBRARY_PATH=$ADA_INCLUDE_PATH:$BASE:$LD_LIBRARY_PATH + ADA_OBJECTS_PATH=$ADA_INCLUDE_PATH + ++target_gcc="$BASE/xgcc -B$BASE/" ++target=`$target_gcc -dumpmachine` ++vsn_lib_dir=$BASE/../$target/libgnatvsn ++LD_LIBRARY_PATH=$vsn_lib_dir:$LD_LIBRARY_PATH ++if [ ! -d $vsn_lib_dir ]; then ++ echo libgnatvsn not found in "$vsn_lib_dir", exiting. ++ exit 1 ++fi ++ + if [ ! -d $ADA_INCLUDE_PATH ]; then + echo gnatlib missing, exiting. + exit 1 --- gcc-7-7.5.0.orig/debian/patches/ada-library-project-files-soname.diff +++ gcc-7-7.5.0/debian/patches/ada-library-project-files-soname.diff @@ -0,0 +1,88 @@ +Description: when linking an Ada shared library, avoid modifying user soname + In project files, use the exact Library_Version provided, if any, as + the soname of libraries; do not strip minor version numbers + . + GNAT has been announcing the removal of support for GPR projects + since gcc-6. + Gnatlink will then stop being able to link shared libraries. + This probably explains why upstream is not interested in this patch. +Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40025 +Author: Ludovic Brenta + +Index: b/src/gcc/ada/mlib-tgt-specific-linux.adb +=================================================================== +--- a/src/gcc/ada/mlib-tgt-specific-linux.adb ++++ b/src/gcc/ada/mlib-tgt-specific-linux.adb +@@ -50,6 +50,8 @@ package body MLib.Tgt.Specific is + + function Is_Archive_Ext (Ext : String) return Boolean; + ++ function Library_Major_Minor_Id_Supported return Boolean; ++ + --------------------------- + -- Build_Dynamic_Library -- + --------------------------- +@@ -142,7 +144,18 @@ package body MLib.Tgt.Specific is + return Ext = ".a" or else Ext = ".so"; + end Is_Archive_Ext; + ++ -------------------------------------- ++ -- Library_Major_Minor_Id_Supported -- ++ -------------------------------------- ++ ++ function Library_Major_Minor_Id_Supported return Boolean is ++ begin ++ return False; ++ end Library_Major_Minor_Id_Supported; ++ + begin + Build_Dynamic_Library_Ptr := Build_Dynamic_Library'Access; + Is_Archive_Ext_Ptr := Is_Archive_Ext'Access; ++ Library_Major_Minor_Id_Supported_Ptr := ++ Library_Major_Minor_Id_Supported'Access; + end MLib.Tgt.Specific; +Index: b/src/gcc/ada/mlib.adb +=================================================================== +--- a/src/gcc/ada/mlib.adb ++++ b/src/gcc/ada/mlib.adb +@@ -30,6 +30,7 @@ with System; + with Opt; + with Output; use Output; + ++with MLib.Tgt; + with MLib.Utl; use MLib.Utl; + + with Prj.Com; +@@ -393,7 +394,11 @@ package body MLib is + -- Major_Id_Name -- + ------------------- + +- function Major_Id_Name ++ function Major_Id_Name_If_Supported ++ (Lib_Filename : String; ++ Lib_Version : String) ++ return String; ++ function Major_Id_Name_If_Supported + (Lib_Filename : String; + Lib_Version : String) + return String +@@ -447,6 +452,19 @@ package body MLib is + else + return ""; + end if; ++ end Major_Id_Name_If_Supported; ++ ++ function Major_Id_Name ++ (Lib_Filename : String; ++ Lib_Version : String) ++ return String ++ is ++ begin ++ if MLib.Tgt.Library_Major_Minor_Id_Supported then ++ return Major_Id_Name_If_Supported (Lib_Filename, Lib_Version); ++ else ++ return ""; ++ end if; + end Major_Id_Name; + + ------------------------------- --- gcc-7-7.5.0.orig/debian/patches/ada-link-lib.diff +++ gcc-7-7.5.0/debian/patches/ada-link-lib.diff @@ -0,0 +1,161 @@ +Description: adapt libgnat build for Debian + Don't include a runtime link path (-rpath), when linking binaries. + . + Build the shared libraries on hppa-linux (see #786692 below). + TODO: ask the reporter (no porterbox) to attempt a rebuild without this + chunk, now that we diverge less from upstream. + . + Instead of building libada as a target library only, build it as + both a host and, if different, target library. + . + Compile with -gnatn, link with --as-needed -z defs. + . + Please read ada-changes-in-autogen-output.diff about src/Makefile.def. +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=786692 +Forwarded: not-needed +Author: Ludovic Brenta +Author: Nicolas Boulenguez +Author: Matthias Klose + +--- a/src/gcc/ada/gcc-interface/config-lang.in ++++ b/src/gcc/ada/gcc-interface/config-lang.in +@@ -35,7 +35,7 @@ + outputs="ada/gcc-interface/Makefile ada/Makefile" + + target_libs="target-libada" +-lang_dirs="gnattools" ++lang_dirs="libada gnattools" + + # Ada is not enabled by default for the time being. + build_by_default=no +--- a/src/gcc/ada/link.c ++++ b/src/gcc/ada/link.c +@@ -106,9 +106,9 @@ + #elif defined (__FreeBSD__) || defined (__DragonFly__) \ + || defined (__NetBSD__) || defined (__OpenBSD__) + const char *__gnat_object_file_option = "-Wl,@"; +-const char *__gnat_run_path_option = "-Wl,-rpath,"; +-char __gnat_shared_libgnat_default = STATIC; +-char __gnat_shared_libgcc_default = STATIC; ++const char *__gnat_run_path_option = ""; ++char __gnat_shared_libgnat_default = SHARED; ++char __gnat_shared_libgcc_default = SHARED; + int __gnat_link_max = 8192; + unsigned char __gnat_objlist_file_supported = 1; + const char *__gnat_object_library_extension = ".a"; +@@ -128,9 +128,9 @@ + + #elif defined (__linux__) || defined (__GLIBC__) + const char *__gnat_object_file_option = "-Wl,@"; +-const char *__gnat_run_path_option = "-Wl,-rpath,"; +-char __gnat_shared_libgnat_default = STATIC; +-char __gnat_shared_libgcc_default = STATIC; ++const char *__gnat_run_path_option = ""; ++char __gnat_shared_libgnat_default = SHARED; ++char __gnat_shared_libgcc_default = SHARED; + int __gnat_link_max = 8192; + unsigned char __gnat_objlist_file_supported = 1; + const char *__gnat_object_library_extension = ".a"; +--- a/src/libada/Makefile.in ++++ b/src/libada/Makefile.in +@@ -78,10 +78,10 @@ + # by recursive make invocations in gcc/ada/Makefile.in + LIBADA_FLAGS_TO_PASS = \ + "MAKEOVERRIDES=" \ +- "LDFLAGS=$(LDFLAGS)" \ ++ "LDFLAGS=$(LDFLAGS) -Wl,--as-needed -Wl,-z,defs" \ + "LN_S=$(LN_S)" \ + "SHELL=$(SHELL)" \ +- "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \ ++ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) -gnatn" \ + "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \ + "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \ + "PICFLAG_FOR_TARGET=$(PICFLAG)" \ +--- a/src/Makefile.def ++++ b/src/Makefile.def +@@ -122,7 +122,16 @@ + missing=distclean; + missing=maintainer-clean; }; + host_modules= { module= utils; no_check=true; }; +-host_modules= { module= gnattools; }; ++host_modules= { module= gnattools; no_check=true; ++ missing= info; ++ missing= dvi; ++ missing= html; ++ missing= pdf; ++ missing= install-pdf; ++ missing= install-html; ++ missing= TAGS; ++ missing= install-info; ++ missing= installcheck; }; + host_modules= { module= lto-plugin; bootstrap=true; + extra_configure_flags='--enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@'; + extra_make_flags='@extra_linker_plugin_flags@'; }; +@@ -168,7 +177,16 @@ + target_modules = { module= libffi; no_install=true; }; + target_modules = { module= zlib; }; + target_modules = { module= rda; }; +-target_modules = { module= libada; }; ++target_modules = { module= libada; no_install=true; no_check=true; ++ missing= info; ++ missing= dvi; ++ missing= html; ++ missing= pdf; ++ missing= install-html; ++ missing= install-pdf; ++ missing= TAGS; ++ missing= install-info; ++ missing= installcheck; }; + target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; }; + target_modules = { module= libitm; lib_path=.libs; }; + target_modules = { module= libatomic; lib_path=.libs; }; +@@ -364,6 +382,7 @@ + + dependencies = { module=all-fixincludes; on=all-libiberty; }; + ++dependencies = { module=all-target-libada; on=all-gcc; }; + dependencies = { module=all-gnattools; on=all-target-libada; }; + dependencies = { module=all-gnattools; on=all-target-libstdc++-v3; }; + +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -142,6 +142,11 @@ + # If --enable-gold is used, "gold" may replace "ld". + host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools" + ++case "${target}" in ++ hppa64-*linux*) ;; ++ *) target_libiberty="target-libiberty";; ++esac ++ + # these libraries are built for the target environment, and are built after + # the host libraries and the host tools (which may be a cross compiler) + # Note that libiberty is not a target library. +@@ -165,6 +170,7 @@ + target-libffi \ + target-libobjc \ + target-libada \ ++ ${target_libiberty} \ + target-libgo" + + # these tools are built using the target libraries, and are intended to +--- a/src/gcc/ada/gcc-interface/Make-lang.in ++++ b/src/gcc/ada/gcc-interface/Make-lang.in +@@ -45,7 +45,7 @@ + + + # Extra flags to pass to recursive makes. +-COMMON_ADAFLAGS= -gnatpg ++COMMON_ADAFLAGS= -gnatpgn + ifeq ($(TREECHECKING),) + CHECKING_ADAFLAGS= + else +@@ -211,7 +211,7 @@ + endif + + # Strip -Werror during linking for the LTO bootstrap +-GCC_LINKERFLAGS = $(filter-out -Werror, $(ALL_LINKERFLAGS)) ++GCC_LINKERFLAGS = $(filter-out -Werror, $(ALL_LINKERFLAGS)) -Wl,--as-needed -Wl,-z,defs + + GCC_LINK=$(LINKER) $(GCC_LINKERFLAGS) $(LDFLAGS) + GCC_LLINK=$(LLINKER) $(GCC_LINKERFLAGS) $(LDFLAGS) --- gcc-7-7.5.0.orig/debian/patches/ada-link-shlib.diff +++ gcc-7-7.5.0/debian/patches/ada-link-shlib.diff @@ -0,0 +1,97 @@ +Description: when linking Ada shared libraries, list dependencies after objects + In gnatlink, pass the options and libraries after objects to the + linker to avoid link failures with --as-needed. + This option is activated by default on the GNU gold linker. + . + GNAT has been announcing the removal of support for GPR projects + since gcc-6. + Gnatlink will then stop being able to link shared libraries. + This probably explains why upstream is not interested in this patch. +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680292 +Author: Matthias Klose +Forwarded: http://gcc.gnu.org/ml/gcc-patches/2013-04/msg01132.html + +--- a/src/gcc/ada/mlib-tgt-specific-linux.adb ++++ b/src/gcc/ada/mlib-tgt-specific-linux.adb +@@ -81,19 +81,54 @@ + Version_Arg : String_Access; + Symbolic_Link_Needed : Boolean := False; + ++ N_Options : Argument_List := Options; ++ Options_Last : Natural := N_Options'Last; ++ -- After moving -lxxx to Options_2, N_Options up to index Options_Last ++ -- will contain the Options to pass to MLib.Utl.Gcc. ++ ++ Real_Options_2 : Argument_List (1 .. Options'Length); ++ Real_Options_2_Last : Natural := 0; ++ -- Real_Options_2 up to index Real_Options_2_Last will contain the ++ -- Options_2 to pass to MLib.Utl.Gcc. ++ + begin + if Opt.Verbose_Mode then + Write_Str ("building relocatable shared library "); + Write_Line (Lib_Path); + end if; + ++ -- Move all -lxxx to Options_2 ++ ++ declare ++ Index : Natural := N_Options'First; ++ Arg : String_Access; ++ ++ begin ++ while Index <= Options_Last loop ++ Arg := N_Options (Index); ++ ++ if Arg'Length > 2 ++ and then Arg (Arg'First .. Arg'First + 1) = "-l" ++ then ++ Real_Options_2_Last := Real_Options_2_Last + 1; ++ Real_Options_2 (Real_Options_2_Last) := Arg; ++ N_Options (Index .. Options_Last - 1) := ++ N_Options (Index + 1 .. Options_Last); ++ Options_Last := Options_Last - 1; ++ ++ else ++ Index := Index + 1; ++ end if; ++ end loop; ++ end; ++ + if Lib_Version = "" then + Utl.Gcc + (Output_File => Lib_Path, + Objects => Ofiles, +- Options => Options, ++ Options => N_Options (N_Options'First .. Options_Last), + Driver_Name => Driver_Name, +- Options_2 => No_Argument_List); ++ Options_2 => Real_Options_2 (1 .. Real_Options_2_Last)); + + else + declare +@@ -111,18 +146,20 @@ + Utl.Gcc + (Output_File => Lib_Version, + Objects => Ofiles, +- Options => Options & Version_Arg, ++ Options => N_Options (N_Options'First .. Options_Last) ++ & Version_Arg, + Driver_Name => Driver_Name, +- Options_2 => No_Argument_List); ++ Options_2 => Real_Options_2 (1 .. Real_Options_2_Last)); + Symbolic_Link_Needed := Lib_Version /= Lib_Path; + + else + Utl.Gcc + (Output_File => Lib_Dir & Directory_Separator & Lib_Version, + Objects => Ofiles, +- Options => Options & Version_Arg, ++ Options => N_Options (N_Options'First .. Options_Last) ++ & Version_Arg, + Driver_Name => Driver_Name, +- Options_2 => No_Argument_List); ++ Options_2 => Real_Options_2 (1 .. Real_Options_2_Last)); + Symbolic_Link_Needed := + Lib_Dir & Directory_Separator & Lib_Version /= Lib_Path; + end if; --- gcc-7-7.5.0.orig/debian/patches/ada-nobiarch-check.diff +++ gcc-7-7.5.0/debian/patches/ada-nobiarch-check.diff @@ -0,0 +1,21 @@ +Description: For biarch builds, disable the gnat testsuite for the non-default + architecture (no biarch support in gnat yet). +Author: Matthias Klose + +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -4510,7 +4510,11 @@ + if [ -f $${rootme}/../expect/expect ] ; then \ + TCL_LIBRARY=`cd .. ; cd $${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \ + export TCL_LIBRARY ; fi ; \ +- $(RUNTEST) --tool $* $(RUNTESTFLAGS)) ++ if [ "$*" = gnat ]; then \ ++ runtestflags="`echo '$(RUNTESTFLAGS)' | sed -r 's/,-m(32|64|x32)//g;s/,-mabi=(n32|64)//g'`"; \ ++ case "$$runtestflags" in *\\{\\}) runtestflags=; esac; \ ++ fi; \ ++ $(RUNTEST) --tool $* $$runtestflags) + + $(patsubst %,%-subtargets,$(filter-out $(lang_checks_parallelized),$(lang_checks))): check-%-subtargets: + @echo check-$* --- gcc-7-7.5.0.orig/debian/patches/ada-sjlj.diff +++ gcc-7-7.5.0/debian/patches/ada-sjlj.diff @@ -0,0 +1,487 @@ +# Please read ada-changes-in-autogen-output.diff about src/Makefile.def. + +# !!! Must be applied after ada-libgnatvsn.diff + +--- /dev/null ++++ b/src/libada-sjlj/Makefile.in +@@ -0,0 +1,201 @@ ++# Makefile for libada. ++# Copyright (C) 2003-2015 Free Software Foundation, Inc. ++# ++# This file is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; see the file COPYING3. If not see ++# . ++ ++# Default target; must be first. ++all: gnatlib ++ $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE) ++ ++.PHONY: all ++ ++## Multilib support variables. ++MULTISRCTOP = ++MULTIBUILDTOP = ++MULTIDIRS = ++MULTISUBDIR = ++MULTIDO = true ++MULTICLEAN = true ++ ++# Standard autoconf-set variables. ++SHELL = @SHELL@ ++srcdir = @srcdir@ ++libdir = @libdir@ ++build = @build@ ++target = @target@ ++prefix = @prefix@ ++ ++# Nonstandard autoconf-set variables. ++enable_shared = @enable_shared@ ++ ++LN_S=@LN_S@ ++AWK=@AWK@ ++ ++ifeq (cp -p,$(LN_S)) ++LN_S_RECURSIVE = cp -pR ++else ++LN_S_RECURSIVE = $(LN_S) ++endif ++ ++# Variables for the user (or the top level) to override. ++objext=.o ++THREAD_KIND=native ++TRACE=no ++LDFLAGS= ++ ++# The tedious process of getting CFLAGS right. ++CFLAGS=-g ++PICFLAG = @PICFLAG@ ++GNATLIBFLAGS= -W -Wall -gnatpg -nostdinc ++GNATLIBCFLAGS= -g -O2 ++GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) \ ++ -fexceptions -DIN_RTS @have_getipinfo@ ++ ++host_subdir = @host_subdir@ ++GCC_DIR=$(MULTIBUILDTOP)../../$(host_subdir)/gcc ++ ++target_noncanonical:=@target_noncanonical@ ++gcc_version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER) ++libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)$(MULTISUBDIR) ++ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR)) ++ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTISUBDIR)) ++ ++# exeext should not be used because it's the *host* exeext. We're building ++# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus ++# definitions just in case something slips through the safety net provided ++# by recursive make invocations in gcc/ada/Makefile.in ++LIBADA_FLAGS_TO_PASS = \ ++ "MAKEOVERRIDES=" \ ++ "LDFLAGS=$(LDFLAGS)" \ ++ "LN_S=$(LN_S)" \ ++ "SHELL=$(SHELL)" \ ++ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \ ++ "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \ ++ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \ ++ "PICFLAG_FOR_TARGET=$(PICFLAG)" \ ++ "THREAD_KIND=$(THREAD_KIND)" \ ++ "TRACE=$(TRACE)" \ ++ "MULTISUBDIR=$(MULTISUBDIR)" \ ++ "libsubdir=$(libsubdir)" \ ++ "objext=$(objext)" \ ++ "prefix=$(prefix)" \ ++ "exeext=.exeext.should.not.be.used " \ ++ 'CC=the.host.compiler.should.not.be.needed' \ ++ "GCC_FOR_TARGET=$(CC)" \ ++ "CFLAGS=$(CFLAGS)" \ ++ "RTSDIR=rts-sjlj" ++ ++# Rules to build gnatlib. ++.PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared osconstool ++gnatlib: gnatlib-sjlj ++ ++gnatlib-plain: osconstool $(GCC_DIR)/ada/Makefile ++ test -f stamp-libada || \ ++ $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) gnatlib \ ++ && touch stamp-libada ++ -rm -rf adainclude ++ -rm -rf adalib ++ $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adainclude ++ $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adalib ++ ++gnatlib-sjlj gnatlib-zcx gnatlib-shared: osconstool $(GCC_DIR)/ada/Makefile ++ test -f stamp-libada || \ ++ $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) $@ \ ++ && touch stamp-libada-sjlj ++ -rm -rf adainclude ++ -rm -rf adalib ++ $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adainclude ++ $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adalib ++ ++osconstool: ++ $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) ./bldtools/oscons/xoscons ++ ++install-gnatlib: $(GCC_DIR)/ada/Makefile ++ $(MAKE) -C $(GCC_DIR)/ada $(AM_MAKEFLAGS) $(LIBADA_FLAGS_TO_PASS) install-gnatlib-sjlj ++ ++# Check uninstalled version. ++check: ++ ++# Check installed version. ++installcheck: ++ ++# Build info (none here). ++info: ++ ++# Build DVI (none here). ++dvi: ++ ++# Build PDF (none here). ++pdf: ++ ++# Build html (none here). ++html: ++ ++# Build TAGS (none here). ++TAGS: ++ ++.PHONY: check installcheck info dvi pdf html ++ ++# Installation rules. ++install: install-gnatlib ++ $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE) ++ ++install-strip: install ++ ++install-info: ++ ++install-pdf: ++ ++install-html: ++ ++.PHONY: install install-strip install-info install-pdf install-html ++ ++# Cleaning rules. ++mostlyclean: ++ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE) ++ ++clean: ++ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE) ++ ++distclean: ++ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE) ++ $(RM) Makefile config.status config.log ++ ++maintainer-clean: ++ ++.PHONY: mostlyclean clean distclean maintainer-clean ++ ++# Rules for rebuilding this Makefile. ++Makefile: $(srcdir)/Makefile.in config.status ++ CONFIG_FILES=$@ ; \ ++ CONFIG_HEADERS= ; \ ++ $(SHELL) ./config.status ++ ++config.status: $(srcdir)/configure ++ $(SHELL) ./config.status --recheck ++ ++AUTOCONF = autoconf ++configure_deps = \ ++ $(srcdir)/configure.ac \ ++ $(srcdir)/../config/acx.m4 \ ++ $(srcdir)/../config/override.m4 \ ++ $(srcdir)/../config/multi.m4 ++ ++$(srcdir)/configure: @MAINT@ $(configure_deps) ++ cd $(srcdir) && $(AUTOCONF) ++ ++# Don't export variables to the environment, in order to not confuse ++# configure. ++.NOEXPORT: +--- /dev/null ++++ b/src/libada-sjlj/configure.ac +@@ -0,0 +1,152 @@ ++# Configure script for libada. ++# Copyright (C) 2003-2016 Free Software Foundation, Inc. ++# ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; see the file COPYING3. If not see ++# . ++ ++sinclude(../config/acx.m4) ++sinclude(../config/multi.m4) ++sinclude(../config/override.m4) ++sinclude(../config/picflag.m4) ++sinclude(../config/unwind_ipinfo.m4) ++ ++AC_INIT ++AC_PREREQ([2.64]) ++ ++AC_CONFIG_SRCDIR([Makefile.in]) ++ ++# Determine the host, build, and target systems ++AC_CANONICAL_BUILD ++AC_CANONICAL_HOST ++AC_CANONICAL_TARGET ++target_alias=${target_alias-$host_alias} ++ ++# Determine the noncanonical target name, for directory use. ++ACX_NONCANONICAL_TARGET ++ ++# Determine the target- and build-specific subdirectories ++GCC_TOPLEV_SUBDIRS ++ ++# Command-line options. ++# Very limited version of AC_MAINTAINER_MODE. ++AC_ARG_ENABLE([maintainer-mode], ++ [AC_HELP_STRING([--enable-maintainer-mode], ++ [enable make rules and dependencies not useful (and ++ sometimes confusing) to the casual installer])], ++ [case ${enable_maintainer_mode} in ++ yes) MAINT='' ;; ++ no) MAINT='#' ;; ++ *) AC_MSG_ERROR([--enable-maintainer-mode must be yes or no]) ;; ++ esac ++ maintainer_mode=${enableval}], ++ [MAINT='#']) ++AC_SUBST([MAINT])dnl ++ ++AM_ENABLE_MULTILIB(, ..) ++# Calculate toolexeclibdir ++# Also toolexecdir, though it's only used in toolexeclibdir ++case ${enable_version_specific_runtime_libs} in ++ yes) ++ # Need the gcc compiler version to know where to install libraries ++ # and header files if --enable-version-specific-runtime-libs option ++ # is selected. ++ toolexecdir='$(libdir)/gcc/$(target_alias)' ++ toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)' ++ ;; ++ no) ++ if test -n "$with_cross_host" && ++ test x"$with_cross_host" != x"no"; then ++ # Install a library built with a cross compiler in tooldir, not libdir. ++ toolexecdir='$(exec_prefix)/$(target_alias)' ++ toolexeclibdir='$(toolexecdir)/lib' ++ else ++ toolexecdir='$(libdir)/gcc-lib/$(target_alias)' ++ toolexeclibdir='$(libdir)' ++ fi ++ multi_os_directory=`$CC -print-multi-os-directory` ++ case $multi_os_directory in ++ .) ;; # Avoid trailing /. ++ *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; ++ esac ++ ;; ++esac ++AC_SUBST(toolexecdir) ++AC_SUBST(toolexeclibdir) ++#TODO: toolexeclibdir is currently disregarded ++ ++# Check the compiler. ++# The same as in boehm-gc and libstdc++. Have to borrow it from there. ++# We must force CC to /not/ be precious variables; otherwise ++# the wrong, non-multilib-adjusted value will be used in multilibs. ++# As a side effect, we have to subst CFLAGS ourselves. ++ ++m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) ++m4_define([_AC_ARG_VAR_PRECIOUS],[]) ++AC_PROG_CC ++m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) ++ ++AC_SUBST(CFLAGS) ++ ++AC_ARG_ENABLE([shared], ++[AC_HELP_STRING([--disable-shared], ++ [don't provide a shared libgnat])], ++[ ++case $enable_shared in ++ yes | no) ;; ++ *) ++ enable_shared=no ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ case $pkg in ++ ada | libada) ++ enable_shared=yes ;; ++ esac ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac ++], [enable_shared=yes]) ++AC_SUBST([enable_shared]) ++ ++GCC_PICFLAG ++AC_SUBST([PICFLAG]) ++ ++# These must be passed down, or are needed by gcc/libgcc.mvars ++AC_PROG_AWK ++AC_PROG_LN_S ++ ++# Determine what GCC version number to use in filesystem paths. ++GCC_BASE_VER ++ ++# Determine what to build for 'gnatlib' ++if test ${enable_shared} = yes ; then ++ # Note that build=target is almost certainly the wrong test; FIXME ++ default_gnatlib_target="gnatlib-shared" ++else ++ default_gnatlib_target="gnatlib-plain" ++fi ++AC_SUBST([default_gnatlib_target]) ++ ++# Check for _Unwind_GetIPInfo ++GCC_CHECK_UNWIND_GETIPINFO ++have_getipinfo= ++if test x$have_unwind_getipinfo = xyes; then ++ have_getipinfo=-DHAVE_GETIPINFO ++fi ++AC_SUBST(have_getipinfo) ++ ++# Output: create a Makefile. ++AC_CONFIG_FILES([Makefile]) ++ ++AC_OUTPUT +--- a/src/Makefile.def ++++ b/src/Makefile.def +@@ -197,6 +197,7 @@ target_modules = { module= libgnatvsn; n + missing= TAGS; + missing= install-info; + missing= installcheck; }; ++target_modules = { module= libada-sjlj; }; + target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; }; + target_modules = { module= libitm; lib_path=.libs; }; + target_modules = { module= libatomic; lib_path=.libs; }; +@@ -393,6 +394,7 @@ dependencies = { module=all-libcpp; on=a + dependencies = { module=all-fixincludes; on=all-libiberty; }; + + dependencies = { module=all-target-libada; on=all-gcc; }; ++dependencies = { module=all-target-libada-sjlj; on=all-target-libada; }; + dependencies = { module=all-gnattools; on=all-target-libada; }; + dependencies = { module=all-gnattools; on=all-target-libstdc++-v3; }; + dependencies = { module=all-gnattools; on=all-target-libgnatvsn; }; +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -170,6 +170,7 @@ target_libraries="target-libgcc \ + target-libffi \ + target-libobjc \ + target-libada \ ++ target-libada-sjlj \ + ${target_libiberty} \ + target-libgnatvsn \ + target-libgo" +@@ -456,7 +457,7 @@ AC_ARG_ENABLE(libada, + ENABLE_LIBADA=$enableval, + ENABLE_LIBADA=yes) + if test "${ENABLE_LIBADA}" != "yes" ; then +- noconfigdirs="$noconfigdirs target-libgnatvsn gnattools" ++ noconfigdirs="$noconfigdirs target-libgnatvsn gnattools target-libada-sjlj" + fi + + AC_ARG_ENABLE(libssp, +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -190,7 +190,7 @@ TOOLSCASE = + + # Multilib handling + MULTISUBDIR = +-RTSDIR = rts$(subst /,_,$(MULTISUBDIR)) ++RTSDIR := rts$(subst /,_,$(MULTISUBDIR)) + + # Link flags used to build gnat tools. By default we prefer to statically + # link with libgcc to avoid a dependency on shared libgcc (which is tricky +@@ -2723,6 +2723,26 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD + cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb + cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads + ++install-gnatlib-sjlj: ../stamp-gnatlib-$(RTSDIR) ++# Create the directory before deleting it, in case the directory is ++# a list of directories (as it may be on VMS). This ensures we are ++# deleting the right one. ++ -$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR_SJLJ) ++ -$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ) ++ $(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR_SJLJ) ++ $(RMDIR) $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ) ++ -$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR_SJLJ) ++ -$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ) ++ for file in $(RTSDIR)/*.ali; do \ ++ $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR_SJLJ); \ ++ done ++ # This copy must be done preserving the date on the original file. ++ for file in $(RTSDIR)/*.ad?; do \ ++ $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ); \ ++ done ++ cd $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ); $(CHMOD) a-wx *.adb ++ cd $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ); $(CHMOD) a-wx *.ads ++ + ../stamp-gnatlib2-$(RTSDIR): + $(RM) $(RTSDIR)/s-*.ali + $(RM) $(RTSDIR)/s-*$(objext) +@@ -3004,7 +3024,7 @@ gnatlib-shared: + # commenting the pragma instead of deleting the line, as the latter might + # result in getting multiple blank lines, hence possible style check errors. + gnatlib-sjlj: +- $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="" \ ++ $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="" RTSDIR="$(RTSDIR)" \ + THREAD_KIND="$(THREAD_KIND)" ../stamp-gnatlib1-$(RTSDIR) + sed \ + -e 's/Frontend_Exceptions.*/Frontend_Exceptions : constant Boolean := True;/' \ +@@ -3013,6 +3033,7 @@ gnatlib-sjlj: + $(RTSDIR)/system.ads > $(RTSDIR)/s.ads + $(MV) $(RTSDIR)/s.ads $(RTSDIR)/system.ads + $(MAKE) $(FLAGS_TO_PASS) \ ++ RTSDIR="$(RTSDIR)" \ + EH_MECHANISM="" \ + GNATLIBFLAGS="$(GNATLIBFLAGS)" \ + GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \ +@@ -3064,6 +3085,8 @@ b_gnatm.o : b_gnatm.adb + + ADA_INCLUDE_DIR = $(libsubdir)/adainclude + ADA_RTL_OBJ_DIR = $(libsubdir)/adalib ++ADA_INCLUDE_DIR_SJLJ = $(libsubdir)/rts-sjlj/adainclude ++ADA_RTL_OBJ_DIR_SJLJ = $(libsubdir)/rts-sjlj/adalib + + # Special flags + +--- a/src/gcc/ada/gcc-interface/config-lang.in ++++ b/src/gcc/ada/gcc-interface/config-lang.in +@@ -34,8 +34,8 @@ gtfiles="\$(srcdir)/ada/gcc-interface/ad + + outputs="ada/gcc-interface/Makefile ada/Makefile" + +-target_libs="target-libada target-libgnatvsn" +-lang_dirs="libada gnattools" ++target_libs="target-libada target-libgnatvsn target-libada-sjlj" ++lang_dirs="libada gnattools libada-sjlj" + + # Ada is not enabled by default for the time being. + build_by_default=no +--- a/src/gcc/ada/gcc-interface/Make-lang.in ++++ b/src/gcc/ada/gcc-interface/Make-lang.in +@@ -788,6 +788,7 @@ ada.install-common: + + install-gnatlib: + $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib$(LIBGNAT_TARGET) ++ $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) RTSDIR="rts-sjlj" install-gnatlib-sjlj$(LIBGNAT_TARGET) + + install-gnatlib-obj: + $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib-obj --- gcc-7-7.5.0.orig/debian/patches/ada-symbolic-tracebacks.diff +++ gcc-7-7.5.0/debian/patches/ada-symbolic-tracebacks.diff @@ -0,0 +1,401 @@ +# DP: - Enable support for symbolic tracebacks in exceptions (delete the dummy +# DP: convert_addresses from adaint.c, and provide a real one separately.) + +Ported Jürgen Pfeifer's patch to enable symbolic tracebacks on Debian +GNU/Linux. + +The binary distribution of GNAT 3.15p comes with an old version of +binutils that includes a library, libaddr2line.a. This library does +not exist in recent versions of binutils. The patch works around this +by calling /usr/bin/addr2line (still part of binutils) and parsing the +output. See debian/convert_addresses.c for the gory details. + +I have modified convert_addresses.c to not use a shell script anymore; +Debian controls the version of binutils which is installed. Also, I +use execve instead of execle. + +-- +Ludovic Brenta. + +# ' make emacs highlighting happy + +Index: b/src/gcc/ada/gcc-interface/Makefile.in +=================================================================== +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -270,7 +270,8 @@ + # Both . and srcdir are used, in that order, + # so that tm.h and config.h will be found in the compilation + # subdirectory rather than in the source directory. +-INCLUDES = -I- -I. -I.. -I$(srcdir)/ada -I$(srcdir) -I$(ftop_srcdir)/include $(GMPINC) ++INCLUDES = -iquote . -iquote .. -iquote $(srcdir)/ada -iquote $(srcdir) \ ++ -iquote $(ftop_srcdir)/include $(GMPINC) + + ADA_INCLUDES = -I- -I. -I$(srcdir)/ada + +@@ -2426,7 +2427,7 @@ + # library. LIBGNAT_OBJS is the list of object files for libgnat. + # thread.c is special as put into GNATRTL_TASKING_OBJS by Makefile.rtl + LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o \ +- cal.o cio.o cstreams.o ctrl_c.o \ ++ cal.o cio.o convert_addresses.o cstreams.o ctrl_c.o \ + env.o errno.o exit.o expect.o final.o \ + init.o initialize.o locales.o mkdir.o \ + raise.o seh_init.o socket.o sysdep.o \ +@@ -3104,6 +3105,7 @@ + socket.o : socket.c gsocket.h + sysdep.o : sysdep.c + raise.o : raise.c raise.h ++convert_addresses.o : convert_addresses.c + sigtramp-armdroid.o : sigtramp-armdroid.c sigtramp.h + sigtramp-armvxw.o : sigtramp-armvxw.c sigtramp.h + sigtramp-ppcvxw.o : sigtramp-ppcvxw.c sigtramp.h +Index: b/src/gcc/ada/adaint.c +=================================================================== +--- a/src/gcc/ada/adaint.c ++++ b/src/gcc/ada/adaint.c +@@ -3608,35 +3608,6 @@ + } + #endif + +-#if defined (IS_CROSS) \ +- || (! ((defined (sparc) || defined (i386)) && defined (sun) \ +- && defined (__SVR4)) \ +- && ! (defined (linux) && (defined (i386) || defined (__x86_64__))) \ +- && ! (defined (linux) && defined (__ia64__)) \ +- && ! (defined (linux) && defined (powerpc)) \ +- && ! defined (__FreeBSD__) \ +- && ! defined (__Lynx__) \ +- && ! defined (__hpux__) \ +- && ! defined (__APPLE__) \ +- && ! defined (_AIX) \ +- && ! defined (VMS) \ +- && ! defined (__MINGW32__)) +- +-/* Dummy function to satisfy g-trasym.o. See the preprocessor conditional +- just above for a list of native platforms that provide a non-dummy +- version of this procedure in libaddr2line.a. */ +- +-void +-convert_addresses (const char *file_name ATTRIBUTE_UNUSED, +- void *addrs ATTRIBUTE_UNUSED, +- int n_addr ATTRIBUTE_UNUSED, +- void *buf ATTRIBUTE_UNUSED, +- int *len ATTRIBUTE_UNUSED) +-{ +- *len = 0; +-} +-#endif +- + #if defined (_WIN32) + int __gnat_argument_needs_quote = 1; + #else +Index: b/src/gcc/ada/convert_addresses.c +=================================================================== +--- /dev/null ++++ b/src/gcc/ada/convert_addresses.c +@@ -0,0 +1,159 @@ ++/* ++ Copyright (C) 1999 by Juergen Pfeifer ++ Ada for Linux Team (ALT) ++ ++ Permission is hereby granted, free of charge, to any person obtaining a ++ copy of this software and associated documentation files (the ++ "Software"), to deal in the Software without restriction, including ++ without limitation the rights to use, copy, modify, merge, publish, ++ distribute, distribute with modifications, sublicense, and/or sell ++ copies of the Software, and to permit persons to whom the Software is ++ furnished to do so, subject to the following conditions: ++ ++ The above copyright notice and this permission notice shall be included ++ in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ++ IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, ++ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR ++ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ++ THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ ++ Except as contained in this notice, the name(s) of the above copyright ++ holders shall not be used in advertising or otherwise to promote the ++ sale, use or other dealings in this Software without prior written ++ authorization. ++*/ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define STDIN_FILENO 0 ++#define STDOUT_FILENO 1 ++#define MAX_LINE 1024 ++ ++#define CLOSE1 close(fd1[0]); close(fd1[1]) ++#define CLOSE2 close(fd2[0]); close(fd2[1]) ++#define RESTSIG sigaction(SIGPIPE,&oact,NULL) ++ ++void convert_addresses ++(const char const *file_name, ++ void* addrs[], ++ int n_addr, ++ char* buf, ++ int* len) ++{ ++ int max_len = *len; ++ pid_t child; ++ ++ struct sigaction act, oact; ++ ++ int fd1[2], fd2[2]; ++ ++ if (!file_name) { ++ return; ++ } ++ ++ *buf = 0; *len = 0; ++ act.sa_handler = SIG_IGN; ++ sigemptyset(&act.sa_mask); ++ act.sa_flags = 0; ++ if (sigaction(SIGPIPE,&act,&oact) < 0) ++ return; ++ ++ if (pipe(fd1) >= 0) { ++ if (pipe(fd2)>=0) { ++ if ((child = fork()) < 0) { ++ CLOSE1; CLOSE2; RESTSIG; ++ return; ++ } ++ else { ++ if (0==child) { ++ close(fd1[1]); ++ close(fd2[0]); ++ if (fd1[0] != STDIN_FILENO) { ++ if (dup2(fd1[0],STDIN_FILENO) != STDIN_FILENO) { ++ CLOSE1; CLOSE2; ++ } ++ close(fd1[0]); ++ } ++ if (fd2[1] != STDOUT_FILENO) { ++ if (dup2(fd2[1],STDOUT_FILENO) != STDOUT_FILENO) { ++ CLOSE1; CLOSE2; ++ } ++ close(fd2[1]); ++ } ++ { ++ /* As pointed out by Florian Weimer to me, it is a ++ security threat to call the script with a user defined ++ environment and using the path. That would be Trojans ++ pleasure. Therefore we use the absolute path to ++ addr2line and an empty environment. That should be ++ safe. ++ */ ++ char *file_name_for_execve = strdup (file_name); /* non-const */ ++ char *const argv[] = { "addr2line", ++ "-e", ++ file_name_for_execve, ++ "--demangle=gnat", ++ "--functions", ++ "--basenames", ++ NULL }; ++ char *const envp[] = { NULL }; ++ if (execve("/usr/bin/addr2line", argv, envp) < 0) { ++ CLOSE1; CLOSE2; ++ } ++ if (file_name_for_execve) { free (file_name_for_execve); } ++ } ++ } ++ else { ++ int i, n; ++ char hex[16]; ++ char line[MAX_LINE + 1]; ++ char *p; ++ char *s = buf; ++ ++ /* Parent context */ ++ close(fd1[0]); ++ close(fd2[1]); ++ ++ for(i=0; i < n_addr; i++) { ++ snprintf(hex,sizeof(hex),"%p\n",addrs[i]); ++ write(fd1[1],hex,strlen(hex)); ++ n = read(fd2[0],line,MAX_LINE); ++ if (n<=0) ++ break; ++ line[n]=0; ++ /* We have approx. 16 additional chars for "%p in " clause. ++ We use this info to prevent a buffer overrun. ++ */ ++ if (n + 16 + (*len) > max_len) ++ break; ++ p = strchr(line,'\n'); ++ if (p) { ++ if (*(p+1)) { ++ *p = 0; ++ *len += snprintf(s, (max_len - (*len)), "%p in %s at %s",addrs[i], line, p+1); ++ } ++ else { ++ *len += snprintf(s, (max_len - (*len)), "%p at %s",addrs[i], line); ++ } ++ s = buf + (*len); ++ } ++ } ++ close(fd1[1]); ++ close(fd2[0]); ++ } ++ } ++ } ++ else { ++ CLOSE1; ++ } ++ } ++ RESTSIG; ++} +Index: b/src/gcc/ada/g-trasym.adb +=================================================================== +--- a/src/gcc/ada/g-trasym.adb ++++ b/src/gcc/ada/g-trasym.adb +@@ -33,40 +33,110 @@ + -- is not supported. It returns tracebacks as lists of LF separated strings of + -- the form "0x..." corresponding to the addresses. + ++with System.Soft_Links; + with Ada.Exceptions.Traceback; use Ada.Exceptions.Traceback; +-with System.Address_Image; + + package body GNAT.Traceback.Symbolic is + ++ package TSL renames System.Soft_Links; ++ ++ -- To perform the raw addresses to symbolic form translation we rely on a ++ -- libaddr2line symbolizer which examines debug info from a provided ++ -- executable file name, and an absolute path is needed to ensure the file ++ -- is always found. This is "__gnat_locate_exec_on_path (gnat_argv [0])" ++ -- for our executable file, a fairly heavy operation so we cache the ++ -- result. ++ ++ Exename : System.Address; ++ -- Pointer to the name of the executable file to be used on all ++ -- invocations of the libaddr2line symbolization service. ++ ++ Exename_Resolved : Boolean := False; ++ -- Flag to indicate whether we have performed the executable file name ++ -- resolution already. Relying on a not null Exename for this purpose ++ -- would be potentially inefficient as this is what we will get if the ++ -- resolution attempt fails. ++ + ------------------------ + -- Symbolic_Traceback -- + ------------------------ + + function Symbolic_Traceback (Traceback : Tracebacks_Array) return String is ++ ++ procedure convert_addresses ++ (filename : System.Address; ++ addrs : System.Address; ++ n_addrs : Integer; ++ buf : System.Address; ++ len : System.Address); ++ pragma Import (C, convert_addresses, "convert_addresses"); ++ -- This is the procedure version of the Ada-aware addr2line. It places ++ -- in BUF a string representing the symbolic translation of the N_ADDRS ++ -- raw addresses provided in ADDRS, looked up in debug information from ++ -- FILENAME. LEN points to an integer which contains the size of the ++ -- BUF buffer at input and the result length at output. ++ -- ++ -- Note that this procedure is *not* thread-safe. ++ ++ type Argv_Array is array (0 .. 0) of System.Address; ++ gnat_argv : access Argv_Array; ++ pragma Import (C, gnat_argv, "gnat_argv"); ++ ++ function locate_exec_on_path ++ (c_exename : System.Address) return System.Address; ++ pragma Import (C, locate_exec_on_path, "__gnat_locate_exec_on_path"); ++ ++ B_Size : constant Integer := 256 * Traceback'Length; ++ Len : Integer := B_Size; ++ Res : String (1 .. B_Size); ++ ++ use type System.Address; ++ + begin ++ -- The symbolic translation of an empty set of addresses is an empty ++ -- string. ++ + if Traceback'Length = 0 then + return ""; ++ end if; + +- else +- declare +- Img : String := System.Address_Image (Traceback (Traceback'First)); ++ -- If our input set of raw addresses is not empty, resort to the ++ -- libaddr2line service to symbolize it all. + +- Result : String (1 .. (Img'Length + 3) * Traceback'Length); +- Last : Natural := 0; ++ -- Compute, cache and provide the absolute path to our executable file ++ -- name as the binary file where the relevant debug information is to be ++ -- found. If the executable file name resolution fails, we have no ++ -- sensible basis to invoke the symbolizer at all. ++ ++ -- Protect all this against concurrent accesses explicitly, as the ++ -- underlying services are potentially thread unsafe. ++ ++ TSL.Lock_Task.all; ++ ++ if not Exename_Resolved then ++ Exename := locate_exec_on_path (gnat_argv (0)); ++ Exename_Resolved := True; ++ end if; ++ ++ if Exename /= System.Null_Address then ++ Len := Res'Length; ++ convert_addresses ++ (Exename, Traceback'Address, Traceback'Length, ++ Res (1)'Address, Len'Address); ++ end if; ++ ++ TSL.Unlock_Task.all; + +- begin +- for J in Traceback'Range loop +- Img := System.Address_Image (Traceback (J)); +- Result (Last + 1 .. Last + 2) := "0x"; +- Last := Last + 2; +- Result (Last + 1 .. Last + Img'Length) := Img; +- Last := Last + Img'Length + 1; +- Result (Last) := ASCII.LF; +- end loop; ++ -- Return what the addr2line symbolizer has produced if we have called ++ -- it (the executable name resolution succeeded), or an empty string ++ -- otherwise. + +- return Result (1 .. Last); +- end; ++ if Exename /= System.Null_Address then ++ return Res (1 .. Len); ++ else ++ return ""; + end if; ++ + end Symbolic_Traceback; + + function Symbolic_Traceback (E : Exception_Occurrence) return String is +Index: b/src/gcc/ada/tracebak.c +=================================================================== +--- a/src/gcc/ada/tracebak.c ++++ b/src/gcc/ada/tracebak.c +@@ -425,7 +425,7 @@ + /* Starting with GCC 4.6, -fomit-frame-pointer is turned on by default for + 32-bit x86/Linux as well and DWARF 2 unwind tables are emitted instead. + See the x86-64 case below for the drawbacks with this approach. */ +-#if defined (linux) && (__GNUC__ * 10 + __GNUC_MINOR__ > 45) ++#if (defined (linux) || defined(__GNU__)) && (__GNUC__ * 10 + __GNUC_MINOR__ > 45) + #define USE_GCC_UNWINDER + #else + #define USE_GENERIC_UNWINDER --- gcc-7-7.5.0.orig/debian/patches/ada-tools-move-ldflags.diff +++ gcc-7-7.5.0/debian/patches/ada-tools-move-ldflags.diff @@ -0,0 +1,42 @@ +Description: For Ada tools, move LDFLAGS from GCC_LINK to TOOLS_LIBS. + Gnatlink moves GCC_LINK linker options after other options, + probably so that standard libraries come after user libraries + in case --as-needed is activated. + However, if --as-needed is activated via LDFLAGS, it is appended via + GCC_LINK and comes too late on the eventual command line. + All GCC_LINKS expansions but one are followed by an expansion of + TOOLS_LIBS, so TOOLS_LIBS seems to be the right place for LDFLAGS. +Author: Nicolas Boulenguez +Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81104 + +Index: b/src/gcc/ada/gcc-interface/Makefile.in +=================================================================== +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -247,7 +247,7 @@ LIBS = $(LIBINTL) $(LIBICONV) $(LIBBACKT + LIBDEPS = $(LIBINTL_DEP) $(LIBICONV_DEP) $(LIBBACKTRACE) $(LIBIBERTY) + # Default is no TGT_LIB; one might be passed down or something + TGT_LIB = +-TOOLS_LIBS = ../link.o ../targext.o ../../ggc-none.o ../../libcommon-target.a \ ++TOOLS_LIBS = $(LDFLAGS) ../link.o ../targext.o ../../ggc-none.o ../../libcommon-target.a \ + ../../libcommon.a ../../../libcpp/libcpp.a $(LIBGNAT) $(LIBINTL) $(LIBICONV) \ + ../$(LIBBACKTRACE) ../$(LIBIBERTY) $(SYSLIBS) $(TGT_LIB) + +@@ -2527,7 +2527,7 @@ TOOLS_FLAGS_TO_PASS= \ + "GNATLINK=$(GNATLINK)" \ + "GNATBIND=$(GNATBIND)" + +-GCC_LINK=$(CXX) $(GCC_LINK_FLAGS) $(ADA_INCLUDES) $(LDFLAGS) ++GCC_LINK=$(CXX) $(GCC_LINK_FLAGS) $(ADA_INCLUDES) + + # Build directory for the tools. Let's copy the target-dependent + # sources using the same mechanism as for gnatlib. The other sources are +@@ -2625,7 +2625,7 @@ common-tools: ../stamp-tools + ../../vxaddr2line$(exeext): ../stamp-tools + $(GNATMAKE) -c $(ADA_INCLUDES) vxaddr2line --GCC="$(CC) $(ALL_ADAFLAGS)" + $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) vxaddr2line +- $(GNATLINK) -v vxaddr2line -o $@ --GCC="$(GCC_LINK)" ../targext.o $(CLIB) ++ $(GNATLINK) -v vxaddr2line -o $@ --GCC="$(GCC_LINK)" ../targext.o $(CLIB) $(LDFLAGS) + + gnatmake-re: ../stamp-tools + $(GNATMAKE) -j0 $(ADA_INCLUDES) -u sdefault --GCC="$(CC) $(MOST_ADA_FLAGS)" --- gcc-7-7.5.0.orig/debian/patches/ada-verbose.diff +++ gcc-7-7.5.0/debian/patches/ada-verbose.diff @@ -0,0 +1,60 @@ +Description: Display subprocess command lines when building Ada. + The log can be a page longer if it helps debugging. +Author: Nicolas Boulenguez + +--- a/src/gcc/ada/Make-generated.in ++++ b/src/gcc/ada/Make-generated.in +@@ -28,21 +28,21 @@ $(ADA_GEN_SUBDIR)/treeprs.ads : $(ADA_GE + -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/treeprs + $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/treeprs/,$(notdir $^)) + $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/treeprs +- (cd $(ADA_GEN_SUBDIR)/bldtools/treeprs; gnatmake -q xtreeprs ; ./xtreeprs treeprs.ads ) ++ cd $(ADA_GEN_SUBDIR)/bldtools/treeprs && gnatmake -v xtreeprs && ./xtreeprs treeprs.ads + $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/treeprs/treeprs.ads $(ADA_GEN_SUBDIR)/treeprs.ads + + $(ADA_GEN_SUBDIR)/einfo.h : $(ADA_GEN_SUBDIR)/einfo.ads $(ADA_GEN_SUBDIR)/einfo.adb $(ADA_GEN_SUBDIR)/xeinfo.adb $(ADA_GEN_SUBDIR)/ceinfo.adb + -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/einfo + $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/einfo/,$(notdir $^)) + $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/einfo +- (cd $(ADA_GEN_SUBDIR)/bldtools/einfo; gnatmake -q xeinfo ; ./xeinfo einfo.h ) ++ cd $(ADA_GEN_SUBDIR)/bldtools/einfo && gnatmake -v xeinfo && ./xeinfo einfo.h + $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/einfo/einfo.h $(ADA_GEN_SUBDIR)/einfo.h + + $(ADA_GEN_SUBDIR)/sinfo.h : $(ADA_GEN_SUBDIR)/sinfo.ads $(ADA_GEN_SUBDIR)/sinfo.adb $(ADA_GEN_SUBDIR)/xsinfo.adb $(ADA_GEN_SUBDIR)/csinfo.adb + -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/sinfo + $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/sinfo/,$(notdir $^)) + $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/sinfo +- (cd $(ADA_GEN_SUBDIR)/bldtools/sinfo; gnatmake -q xsinfo ; ./xsinfo sinfo.h ) ++ cd $(ADA_GEN_SUBDIR)/bldtools/sinfo && gnatmake -v xsinfo && ./xsinfo sinfo.h + $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/sinfo/sinfo.h $(ADA_GEN_SUBDIR)/sinfo.h + + $(ADA_GEN_SUBDIR)/snames.h $(ADA_GEN_SUBDIR)/snames.ads $(ADA_GEN_SUBDIR)/snames.adb : $(ADA_GEN_SUBDIR)/stamp-snames ; @true +@@ -50,7 +50,7 @@ $(ADA_GEN_SUBDIR)/stamp-snames : $(ADA_G + -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/snamest + $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/snamest/,$(notdir $^)) + $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/snamest +- (cd $(ADA_GEN_SUBDIR)/bldtools/snamest; gnatmake -q xsnamest ; ./xsnamest ) ++ cd $(ADA_GEN_SUBDIR)/bldtools/snamest && gnatmake -v xsnamest && ./xsnamest + $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/snamest/snames.ns $(ADA_GEN_SUBDIR)/snames.ads + $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/snamest/snames.nb $(ADA_GEN_SUBDIR)/snames.adb + $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/snamest/snames.nh $(ADA_GEN_SUBDIR)/snames.h +@@ -61,7 +61,7 @@ $(ADA_GEN_SUBDIR)/stamp-nmake: $(ADA_GEN + -$(MKDIR) $(ADA_GEN_SUBDIR)/bldtools/nmake + $(RM) $(addprefix $(ADA_GEN_SUBDIR)/bldtools/nmake/,$(notdir $^)) + $(CP) $^ $(ADA_GEN_SUBDIR)/bldtools/nmake +- (cd $(ADA_GEN_SUBDIR)/bldtools/nmake; gnatmake -q xnmake ; ./xnmake -b nmake.adb ; ./xnmake -s nmake.ads) ++ cd $(ADA_GEN_SUBDIR)/bldtools/nmake && gnatmake -v xnmake && ./xnmake -b nmake.adb && ./xnmake -s nmake.ads + $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/nmake/nmake.ads $(ADA_GEN_SUBDIR)/nmake.ads + $(MOVE_IF_CHANGE) $(ADA_GEN_SUBDIR)/bldtools/nmake/nmake.adb $(ADA_GEN_SUBDIR)/nmake.adb + touch $(ADA_GEN_SUBDIR)/stamp-nmake +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -2776,7 +2776,7 @@ OSCONS_EXTRACT=$(OSCONS_CC) $(GNATLIBCFL + -$(MKDIR) ./bldtools/oscons + $(RM) $(addprefix ./bldtools/oscons/,$(notdir $^)) + $(CP) $^ ./bldtools/oscons +- (cd ./bldtools/oscons ; gnatmake -q xoscons) ++ cd ./bldtools/oscons && gnatmake -v xoscons + + $(RTSDIR)/s-oscons.ads: ../stamp-gnatlib1-$(RTSDIR) s-oscons-tmplt.c gsocket.h ./bldtools/oscons/xoscons + $(RM) $(RTSDIR)/s-oscons-tmplt.i $(RTSDIR)/s-oscons-tmplt.s --- gcc-7-7.5.0.orig/debian/patches/add-gnu-to-libgo-headers.diff +++ gcc-7-7.5.0/debian/patches/add-gnu-to-libgo-headers.diff @@ -0,0 +1,1077 @@ +Index: gcc-7-7.2.0-12.1/src/libgo/go/archive/tar/stat_atim.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/archive/tar/stat_atim.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/archive/tar/stat_atim.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build linux dragonfly openbsd solaris ++// +build gnu linux dragonfly openbsd solaris + + package tar + +Index: gcc-7-7.2.0-12.1/src/libgo/go/cmd/go/signal_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/cmd/go/signal_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/cmd/go/signal_unix.go +@@ -1,8 +1,9 @@ ++ + // Copyright 2012 The Go Authors. All rights reserved. + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package main + +Index: gcc-7-7.2.0-12.1/src/libgo/go/crypto/x509/root_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/crypto/x509/root_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/crypto/x509/root_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package x509 + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/fd_poll_runtime.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/fd_poll_runtime.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/fd_poll_runtime.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd windows solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd windows solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/interface_stub.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/interface_stub.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/interface_stub.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build nacl ++// +build nacl gnu + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/internal/socktest/switch_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/internal/socktest/switch_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/internal/socktest/switch_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package socktest + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/port_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/port_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/port_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris nacl ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris nacl + + // Read system port mappings from /etc/services + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/dir_largefile.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/dir_largefile.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/dir_largefile.go +@@ -5,7 +5,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build linux solaris,386 solaris,sparc ++// +build gnu linux solaris,386 solaris,sparc + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/dir_regfile.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/dir_regfile.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/dir_regfile.go +@@ -5,6 +5,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + ++// +build !gnu + // +build !linux + // +build !solaris !386 + // +build !solaris !sparc +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/dir_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/dir_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/dir_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/exec_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/exec_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/exec_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/stat_atim.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/stat_atim.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/stat_atim.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build linux openbsd solaristag ++// +build gnu linux openbsd solaristag + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/stat.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/stat.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/stat.go +@@ -4,6 +4,7 @@ + + // +build !darwin + // +build !freebsd ++// +build !gnu + // +build !linux + // +build !netbsd + // +build !openbsd +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/stat_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/stat_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/stat_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/sys_uname.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/sys_uname.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/sys_uname.go +@@ -4,7 +4,7 @@ + + // For systems which only store the hostname in uname (Solaris). + +-// +build solaris irix rtems ++// +build gnu solaris irix rtems + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/user/listgroups_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/user/listgroups_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/user/listgroups_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build dragonfly darwin freebsd !android,linux netbsd openbsd ++// +build dragonfly darwin freebsd gnu !android,linux netbsd openbsd + + package user + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/wait_unimp.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/wait_unimp.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/wait_unimp.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build dragonfly nacl netbsd openbsd solaris ++// +build dragonfly gnu nacl netbsd openbsd solaris + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/path/filepath/path_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/path/filepath/path_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/path/filepath/path_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package filepath + +Index: gcc-7-7.2.0-12.1/src/libgo/go/runtime/env_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/runtime/env_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/runtime/env_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package runtime + +Index: gcc-7-7.2.0-12.1/src/libgo/go/runtime/lock_sema.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/runtime/lock_sema.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/runtime/lock_sema.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin nacl netbsd openbsd plan9 solaris windows ++// +build darwin gnu nacl netbsd openbsd plan9 solaris windows + + package runtime + +Index: gcc-7-7.2.0-12.1/src/libgo/go/runtime/netpoll.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/runtime/netpoll.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/runtime/netpoll.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package runtime + +Index: gcc-7-7.2.0-12.1/src/libgo/go/runtime/signal_gccgo.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/runtime/signal_gccgo.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/runtime/signal_gccgo.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package runtime + +Index: gcc-7-7.2.0-12.1/src/libgo/go/runtime/signal_sighandler.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/runtime/signal_sighandler.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/runtime/signal_sighandler.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package runtime + +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/errstr.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/errstr.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/errstr.go +@@ -4,6 +4,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + ++// +build !gnu + // +build !linux + + package syscall +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/libcall_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_posix.go +@@ -9,6 +9,8 @@ + // Note that sometimes we use a lowercase //sys name and + // wrap it in our own nicer implementation. + ++// +build !gnu ++ + package syscall + + import "unsafe" +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_posix_largefile.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/libcall_posix_largefile.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_posix_largefile.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build linux solaris,386 solaris,sparc ++// +build gnu linux solaris,386 solaris,sparc + + // POSIX library calls on systems which use the largefile interface. + +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_posix_regfile.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/libcall_posix_regfile.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_posix_regfile.go +@@ -2,6 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + ++// +build !gnu + // +build !linux + // +build !solaris !386 + // +build !solaris !sparc +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_posix_utimesnano.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/libcall_posix_utimesnano.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_posix_utimesnano.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd openbsd netbsd solaris ++// +build darwin dragonfly freebsd gnu openbsd netbsd solaris + + // General POSIX version of UtimesNano. + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/cgo_resnew.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/cgo_resnew.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/cgo_resnew.go +@@ -3,7 +3,7 @@ + // license that can be found in the LICENSE file. + + // +build cgo,!netgo +-// +build darwin linux,!android netbsd solaris ++// +build darwin gnu linux,!android netbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/cgo_sockold.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/cgo_sockold.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/cgo_sockold.go +@@ -3,7 +3,7 @@ + // license that can be found in the LICENSE file. + + // +build cgo,!netgo +-// +build darwin dragonfly freebsd netbsd openbsd ++// +build darwin dragonfly freebsd gnu netbsd openbsd + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/hook_cloexec.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/hook_cloexec.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/hook_cloexec.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build freebsd linux ++// +build freebsd gnu linux + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/sock_cloexec.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/sock_cloexec.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/sock_cloexec.go +@@ -5,7 +5,7 @@ + // This file implements sysSocket and accept for platforms that + // provide a fast path for setting SetNonblock and CloseOnExec. + +-// +build freebsd linux ++// +build freebsd gnu linux + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/sockoptip_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/sockoptip_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/sockoptip_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd windows ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd windows + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/exec_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/exec_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/exec_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + // Fork, exec, wait, etc. + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/exec/lp_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/exec/lp_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/exec/lp_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package exec + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/signal/signal_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/signal/signal_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/signal/signal_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package signal + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/error_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/error_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/error_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/file_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/file_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/file_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/path_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/path_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/path_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/sys_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/sys_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/sys_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build dragonfly linux netbsd openbsd solaris ++// +build dragonfly gnu linux netbsd openbsd solaris + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/user/decls_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/user/decls_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/user/decls_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd + // +build cgo + + package user +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/user/lookup_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/user/lookup_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/user/lookup_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd !android,linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu !android,linux netbsd openbsd solaris + // +build cgo + + package user +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/env_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/env_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/env_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + // Unix environment variables. + +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/exec_bsd.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/exec_bsd.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/exec_bsd.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu netbsd openbsd solaris + + package syscall + +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/sockcmsg_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/sockcmsg_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/sockcmsg_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + // Socket control messages + +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/syscall_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/syscall_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/syscall_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package syscall + +Index: gcc-7-7.2.0-12.1/src/libgo/go/time/sys_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/time/sys_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/time/sys_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package time + +Index: gcc-7-7.2.0-12.1/src/libgo/go/time/zoneinfo_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/time/zoneinfo_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/time/zoneinfo_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin,386 darwin,amd64 dragonfly freebsd linux,!android nacl netbsd openbsd solaris ++// +build darwin,386 darwin,amd64 dragonfly freebsd gnu linux,!android nacl netbsd openbsd solaris + + // Parse "zoneinfo" time zone file. + // This is a fairly standard file format used on OS X, Linux, BSD, Sun, and others. +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/addrselect.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/addrselect.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/addrselect.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + // Minimal RFC 6724 address selection. + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/conf.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/conf.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/conf.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/dnsclient_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/dnsclient_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/dnsclient_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + // DNS client: see RFC 1035. + // Has to be linked into package net for Dial. +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/dnsconfig_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/dnsconfig_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/dnsconfig_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + // Read system DNS config from /etc/resolv.conf + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/fd_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/fd_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/fd_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/fd_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/fd_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/fd_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/file_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/file_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/file_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/hook_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/hook_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/hook_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/iprawsock_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/iprawsock_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/iprawsock_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/ipsock_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/ipsock_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/ipsock_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/lookup_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/lookup_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/lookup_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/nss.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/nss.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/nss.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/sockopt_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/sockopt_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/sockopt_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris windows + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/sock_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/sock_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/sock_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/tcpsockopt_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/tcpsockopt_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/tcpsockopt_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris windows + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/tcpsockopt_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/tcpsockopt_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/tcpsockopt_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build freebsd linux netbsd ++// +build freebsd gnu linux netbsd + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/tcpsock_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/tcpsock_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/tcpsock_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/udpsock_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/udpsock_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/udpsock_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/unixsock_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/unixsock_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/unixsock_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/exec_posix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/exec_posix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/exec_posix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/file_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/file_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/file_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/executable_procfs.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/executable_procfs.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/executable_procfs.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build linux netbsd openbsd dragonfly nacl ++// +build gnu linux netbsd openbsd dragonfly nacl + + package os + +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/timestruct.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/timestruct.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/timestruct.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package syscall + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/cgo_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/cgo_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/cgo_unix.go +@@ -3,7 +3,7 @@ + // license that can be found in the LICENSE file. + + // +build cgo,!netgo +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/archive/tar/stat_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/archive/tar/stat_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/archive/tar/stat_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build linux darwin dragonfly freebsd openbsd netbsd solaris ++// +build gnu linux darwin dragonfly freebsd openbsd netbsd solaris + + package tar + +Index: gcc-7-7.2.0-12.1/src/libgo/go/crypto/rand/eagain.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/crypto/rand/eagain.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/crypto/rand/eagain.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package rand + +Index: gcc-7-7.2.0-12.1/src/libgo/go/crypto/rand/rand_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/crypto/rand/rand_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/crypto/rand/rand_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd plan9 solaris + + // Unix cryptographically secure pseudorandom number + // generator. +Index: gcc-7-7.2.0-12.1/src/libgo/go/exp/terminal/util.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/exp/terminal/util.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/exp/terminal/util.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build linux ++// +build gnu linux + + // Package terminal provides support functions for dealing with terminals, as + // commonly found on UNIX systems. +Index: gcc-7-7.2.0-12.1/src/libgo/go/mime/type_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/mime/type_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/mime/type_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package mime + +Index: gcc-7-7.2.0-12.1/src/libgo/go/plugin/plugin_dlopen.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/plugin/plugin_dlopen.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/plugin/plugin_dlopen.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build linux,cgo darwin,cgo ++// +build linux,cgo darwin,cgo gnu,cgo + + package plugin + +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/dirent.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/dirent.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/dirent.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package syscall + +Index: gcc-7-7.2.0-12.1/src/libgo/runtime/env_posix.c +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/runtime/env_posix.c ++++ gcc-7-7.2.0-12.1/src/libgo/runtime/env_posix.c +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + #include "runtime.h" + #include "array.h" +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/internal/socktest/sys_unix.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/internal/socktest/sys_unix.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/internal/socktest/sys_unix.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package socktest + +Index: gcc-7-7.2.0-12.1/src/libgo/go/plugin/plugin_stubs.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/plugin/plugin_stubs.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/plugin/plugin_stubs.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build !linux,!darwin !cgo ++// +build !gnu !linux,!darwin !cgo + + package plugin + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/internal/socktest/sys_cloexec.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/internal/socktest/sys_cloexec.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/internal/socktest/sys_cloexec.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build freebsd linux ++// +build freebsd gnu linux + + package socktest + --- gcc-7-7.5.0.orig/debian/patches/add-gnu-to-libgo-test-headers.diff +++ gcc-7-7.5.0/debian/patches/add-gnu-to-libgo-test-headers.diff @@ -0,0 +1,273 @@ +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/main_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/main_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/main_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/exec/lp_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/exec/lp_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/exec/lp_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package exec + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/os_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/os_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/os_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package os_test + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/signal/signal_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/signal/signal_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/signal/signal_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package signal + +Index: gcc-7-7.2.0-12.1/src/libgo/go/runtime/crash_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/runtime/crash_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/runtime/crash_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package runtime_test + +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/exec_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/exec_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/exec_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package syscall_test + +Index: gcc-7-7.2.0-12.1/src/libgo/go/runtime/runtime_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/runtime/runtime_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/runtime/runtime_unix_test.go +@@ -6,7 +6,7 @@ + // We need a fast system call to provoke the race, + // and Close(-1) is nearly universally fast. + +-// +build darwin dragonfly freebsd linux netbsd openbsd plan9 ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd plan9 + + package runtime_test + +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/export_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/export_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/export_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package syscall + +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/mmap_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/mmap_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/mmap_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd + + package syscall_test + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/addrselect_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/addrselect_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/addrselect_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/cgo_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/cgo_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/cgo_unix_test.go +@@ -3,7 +3,7 @@ + // license that can be found in the LICENSE file. + + // +build cgo,!netgo +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/conf_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/conf_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/conf_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/dnsconfig_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/dnsconfig_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/dnsconfig_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/fd_posix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/fd_posix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/fd_posix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris windows + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/nss_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/nss_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/nss_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/cmd/go/go_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/cmd/go/go_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/cmd/go/go_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package main_test + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/dial_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/dial_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/dial_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/main_cloexec_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/main_cloexec_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/main_cloexec_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build freebsd linux ++// +build freebsd gnu linux + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/dnsclient_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/net/dnsclient_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/dnsclient_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package net + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/env_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/env_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/env_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux netbsd openbsd solaris + + package os_test + +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/error_unix_test.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/error_unix_test.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/error_unix_test.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++// +build darwin dragonfly freebsd gnu linux nacl netbsd openbsd solaris + + package os_test + --- gcc-7-7.5.0.orig/debian/patches/alpha-ieee-doc.diff +++ gcc-7-7.5.0/debian/patches/alpha-ieee-doc.diff @@ -0,0 +1,24 @@ +# DP: #212912 +# DP: on alpha-linux, make -mieee default and add -mieee-disable switch +# DP: to turn default off (doc patch) + +--- + gcc/doc/invoke.texi | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -9980,6 +9980,13 @@ able to correctly support denormalized numbers and exceptional IEEE + values such as not-a-number and plus/minus infinity. Other Alpha + compilers call this option @option{-ieee_with_no_inexact}. + ++DEBIAN SPECIFIC: This option is on by default for alpha-linux-gnu, unless ++@option{-ffinite-math-only} (which is part of the @option{-ffast-math} ++set) is specified, because the software functions in the GNU libc math ++libraries generate denormalized numbers, NaNs, and infs (all of which ++will cause a programs to SIGFPE when it attempts to use the results without ++@option{-mieee}). ++ + @item -mieee-with-inexact + @opindex mieee-with-inexact + This is like @option{-mieee} except the generated code also maintains --- gcc-7-7.5.0.orig/debian/patches/alpha-ieee.diff +++ gcc-7-7.5.0/debian/patches/alpha-ieee.diff @@ -0,0 +1,21 @@ +# DP: #212912 +# DP: on alpha-linux, make -mieee default and add -mieee-disable switch +# DP: to turn default off + +--- + gcc/config/alpha/alpha.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +--- a/src/gcc/config/alpha/alpha.c ++++ b/src/gcc/config/alpha/alpha.c +@@ -259,6 +259,10 @@ + int line_size = 0, l1_size = 0, l2_size = 0; + int i; + ++ /* If not -ffinite-math-only, enable -mieee*/ ++ if (!flag_finite_math_only) ++ target_flags |= MASK_IEEE|MASK_IEEE_CONFORMANT; ++ + #ifdef SUBTARGET_OVERRIDE_OPTIONS + SUBTARGET_OVERRIDE_OPTIONS; + #endif --- gcc-7-7.5.0.orig/debian/patches/alpha-no-ev4-directive.diff +++ gcc-7-7.5.0/debian/patches/alpha-no-ev4-directive.diff @@ -0,0 +1,30 @@ +# DP: never emit .ev4 directive. + +--- + gcc/config/alpha/alpha.c | 7 +++---- + 1 files changed, 3 insertions(+), 4 deletions(-) + +--- a/src/gcc/config/alpha/alpha.c ++++ b/src/gcc/config/alpha/alpha.c +@@ -9503,7 +9503,7 @@ alpha_file_start (void) + fputs ("\t.set nomacro\n", asm_out_file); + if (TARGET_SUPPORT_ARCH | TARGET_BWX | TARGET_MAX | TARGET_FIX | TARGET_CIX) + { +- const char *arch; ++ const char *arch = NULL; + + if (alpha_cpu == PROCESSOR_EV6 || TARGET_FIX || TARGET_CIX) + arch = "ev6"; +@@ -9513,10 +9513,9 @@ alpha_file_start (void) + arch = "ev56"; + else if (alpha_cpu == PROCESSOR_EV5) + arch = "ev5"; +- else +- arch = "ev4"; + +- fprintf (asm_out_file, "\t.arch %s\n", arch); ++ if (arch) ++ fprintf (asm_out_file, "\t.arch %s\n", arch); + } + } + --- gcc-7-7.5.0.orig/debian/patches/arm-multilib-defaults.diff +++ gcc-7-7.5.0/debian/patches/arm-multilib-defaults.diff @@ -0,0 +1,88 @@ +# DP: Set MULTILIB_DEFAULTS for ARM multilib builds + +--- a/src/gcc/config.gcc ++++ b/src/gcc/config.gcc +@@ -3790,10 +3790,18 @@ case "${target}" in + done + + case "$with_float" in +- "" \ +- | soft | hard | softfp) ++ "") + # OK + ;; ++ soft) ++ tm_defines="${tm_defines} TARGET_CONFIGURED_FLOAT_ABI=0" ++ ;; ++ softfp) ++ tm_defines="${tm_defines} TARGET_CONFIGURED_FLOAT_ABI=1" ++ ;; ++ hard) ++ tm_defines="${tm_defines} TARGET_CONFIGURED_FLOAT_ABI=2" ++ ;; + *) + echo "Unknown floating point type used in --with-float=$with_float" 1>&2 + exit 1 +@@ -3827,6 +3835,9 @@ case "${target}" in + "" \ + | arm | thumb ) + #OK ++ if test "$with_mode" = thumb; then ++ tm_defines="${tm_defines} TARGET_CONFIGURED_THUMB_MODE=1" ++ fi + ;; + *) + echo "Unknown mode used in --with-mode=$with_mode" +--- a/src/gcc/config/arm/linux-eabi.h ++++ b/src/gcc/config/arm/linux-eabi.h +@@ -43,7 +43,21 @@ + target hardware. If you override this to use the hard-float ABI then + change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well. */ + #undef TARGET_DEFAULT_FLOAT_ABI ++#ifdef TARGET_CONFIGURED_FLOAT_ABI ++#if TARGET_CONFIGURED_FLOAT_ABI == 2 ++#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD ++#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=hard" ++#elif TARGET_CONFIGURED_FLOAT_ABI == 1 ++#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFTFP ++#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=softfp" ++#else ++#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT ++#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=soft" ++#endif ++#else + #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT ++#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=soft" ++#endif + + /* We default to the "aapcs-linux" ABI so that enums are int-sized by + default. */ +@@ -97,6 +111,28 @@ + #define MUSL_DYNAMIC_LINKER \ + "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1" + ++/* Set the multilib defaults according the configuration, needed to ++ let gcc -print-multi-dir do the right thing. */ ++ ++#if TARGET_BIG_ENDIAN_DEFAULT ++#define MULTILIB_DEFAULT_ENDIAN "mbig-endian" ++#else ++#define MULTILIB_DEFAULT_ENDIAN "mlittle-endian" ++#endif ++ ++#ifndef TARGET_CONFIGURED_THUMB_MODE ++#define MULTILIB_DEFAULT_MODE "marm" ++#elif TARGET_CONFIGURED_THUMB_MODE == 1 ++#define MULTILIB_DEFAULT_MODE "mthumb" ++#else ++#define MULTILIB_DEFAULT_MODE "marm" ++#endif ++ ++#undef MULTILIB_DEFAULTS ++#define MULTILIB_DEFAULTS \ ++ { MULTILIB_DEFAULT_MODE, MULTILIB_DEFAULT_ENDIAN, \ ++ MULTILIB_DEFAULT_FLOAT_ABI, "mno-thumb-interwork" } ++ + /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to + use the GNU/Linux version, not the generic BPABI version. */ + #undef LINK_SPEC --- gcc-7-7.5.0.orig/debian/patches/arm-multilib-soft-cross.diff +++ gcc-7-7.5.0/debian/patches/arm-multilib-soft-cross.diff @@ -0,0 +1,27 @@ +# DP: ARM hard/soft float multilib support + +Index: b/src/gcc/config/arm/t-linux-eabi +=================================================================== +--- a/src/gcc/config/arm/t-linux-eabi ++++ b/src/gcc/config/arm/t-linux-eabi +@@ -21,6 +21,20 @@ + MULTILIB_OPTIONS = + MULTILIB_DIRNAMES = + ++ifeq ($(with_float),hard) ++MULTILIB_OPTIONS = mfloat-abi=soft/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float mfloat-abi?soft=mfloat-abi?softfp ++MULTILIB_OSDIRNAMES = ../libsf:arm-linux-gnueabi ../lib:arm-linux-gnueabihf ++else ++MULTILIB_OPTIONS = mfloat-abi=soft/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float mfloat-abi?soft=mfloat-abi?softfp ++MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi ../libhf:arm-linux-gnueabihf ++endif ++ + #MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te + #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te + #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te* --- gcc-7-7.5.0.orig/debian/patches/arm-multilib-soft-float.diff +++ gcc-7-7.5.0/debian/patches/arm-multilib-soft-float.diff @@ -0,0 +1,26 @@ +--- a/src/gcc/config/arm/t-linux-eabi ++++ b/src/gcc/config/arm/t-linux-eabi +@@ -24,6 +24,23 @@ + MULTILIB_OPTIONS = + MULTILIB_DIRNAMES = + ++ifneq (,$(findstring MULTIARCH_DEFAULTS,$(tm_defines))) ++ifneq (,$(findstring __arm_linux_gnueabi__,$(tm_defines))) ++ MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard/mfloat-abi=soft ++ MULTILIB_DIRNAMES = . hf soft-float ++ MULTILIB_EXCEPTIONS = ++ MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float ++ MULTILIB_OSDIRNAMES = ../../lib/arm-linux-gnueabi ../../lib/arm-linux-gnueabihf soft-float ++endif ++ifneq (,$(findstring __arm_linux_gnueabihf__,$(tm_defines))) ++ MULTILIB_OPTIONS = mfloat-abi=hard/mfloat-abi=softfp/mfloat-abi=soft ++ MULTILIB_DIRNAMES = . sf soft-float ++ MULTILIB_EXCEPTIONS = ++ MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float ++ MULTILIB_OSDIRNAMES = ../../lib/arm-linux-gnueabihf ../../lib/arm-linux-gnueabi soft-float ++endif ++endif ++ + #MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te + #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te + #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te* --- gcc-7-7.5.0.orig/debian/patches/arm-multilib-soft.diff +++ gcc-7-7.5.0/debian/patches/arm-multilib-soft.diff @@ -0,0 +1,27 @@ +# DP: ARM hard/soft float multilib support + +Index: b/src/gcc/config/arm/t-linux-eabi +=================================================================== +--- a/src/gcc/config/arm/t-linux-eabi ++++ b/src/gcc/config/arm/t-linux-eabi +@@ -23,6 +23,20 @@ + MULTILIB_OPTIONS = + MULTILIB_DIRNAMES = + ++ifeq ($(with_float),hard) ++MULTILIB_OPTIONS = mfloat-abi=soft/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float mfloat-abi?soft=mfloat-abi?softfp ++MULTILIB_OSDIRNAMES = arm-linux-gnueabi:arm-linux-gnueabi ../lib:arm-linux-gnueabihf ++else ++MULTILIB_OPTIONS = mfloat-abi=soft/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float mfloat-abi?soft=mfloat-abi?softfp ++MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi arm-linux-gnueabihf:arm-linux-gnueabihf ++endif ++ + #MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te + #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te + #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te* --- gcc-7-7.5.0.orig/debian/patches/arm-multilib-softfp-cross.diff +++ gcc-7-7.5.0/debian/patches/arm-multilib-softfp-cross.diff @@ -0,0 +1,27 @@ +# DP: ARM hard/softfp float multilib support + +Index: b/src/gcc/config/arm/t-linux-eabi +=================================================================== +--- a/src/gcc/config/arm/t-linux-eabi 2011-01-03 20:52:22.000000000 +0000 ++++ b/src/gcc/config/arm/t-linux-eabi 2011-08-21 21:08:47.583351817 +0000 +@@ -24,6 +24,20 @@ + MULTILIB_OPTIONS = + MULTILIB_DIRNAMES = + ++ifeq ($(with_float),hard) ++MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft ++MULTILIB_OSDIRNAMES = ../libsf:arm-linux-gnueabi ../lib:arm-linux-gnueabihf ++else ++MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft ++MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi ../libhf:arm-linux-gnueabihf ++endif ++ + #MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te + #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te + #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te* --- gcc-7-7.5.0.orig/debian/patches/arm-multilib-softfp.diff +++ gcc-7-7.5.0/debian/patches/arm-multilib-softfp.diff @@ -0,0 +1,27 @@ +# DP: ARM hard/softfp float multilib support + +Index: b/src/gcc/config/arm/t-linux-eabi +=================================================================== +--- a/src/gcc/config/arm/t-linux-eabi 2011-01-03 20:52:22.000000000 +0000 ++++ b/src/gcc/config/arm/t-linux-eabi 2011-08-21 21:08:47.583351817 +0000 +@@ -24,6 +24,20 @@ + MULTILIB_OPTIONS = + MULTILIB_DIRNAMES = + ++ifeq ($(with_float),hard) ++MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft ++MULTILIB_OSDIRNAMES = arm-linux-gnueabi:arm-linux-gnueabi ../lib:arm-linux-gnueabihf ++else ++MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft ++MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi arm-linux-gnueabihf:arm-linux-gnueabihf ++endif ++ + #MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te + #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te + #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te* --- gcc-7-7.5.0.orig/debian/patches/bind_now_when_pie.diff +++ gcc-7-7.5.0/debian/patches/bind_now_when_pie.diff @@ -0,0 +1,23 @@ +Author: Steve Beattie +Description: enable bind now by default when linking with pie by default + +--- + src/gcc/gcc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -943,7 +943,11 @@ proper position among the other output f + #ifndef LINK_PIE_SPEC + #ifdef HAVE_LD_PIE + #ifndef LD_PIE_SPEC ++#ifdef ACCEL_COMPILER + #define LD_PIE_SPEC "-pie" ++#else ++#define LD_PIE_SPEC "-pie -z now" ++#endif + #endif + #else + #define LD_PIE_SPEC "" --- gcc-7-7.5.0.orig/debian/patches/bootstrap-no-unneeded-libs.diff +++ gcc-7-7.5.0/debian/patches/bootstrap-no-unneeded-libs.diff @@ -0,0 +1,30 @@ +# DP: For bootstrap builds, don't build unneeded libstdc++ things +# DP: (debug library, PCH headers). + +# Please read ada-changes-in-autogen-output.diff about src/Makefile.[def|tpl]. + +--- a/src/Makefile.tpl ++++ b/src/Makefile.tpl +@@ -1060,7 +1060,9 @@ + --target=[+target_alias+] $${srcdiroption} [+ IF prev +]\ + --with-build-libsubdir=$(HOST_SUBDIR) [+ ENDIF prev +]\ + $(STAGE[+id+]_CONFIGURE_FLAGS)[+ IF extra_configure_flags +] \ +- [+extra_configure_flags+][+ ENDIF extra_configure_flags +] ++ [+extra_configure_flags+][+ ENDIF extra_configure_flags +] \ ++ [+ IF bootstrap_configure_flags +][+bootstrap_configure_flags+] \ ++ [+ ENDIF bootstrap_configure_flags +] + @endif [+prefix+][+module+]-bootstrap + [+ ENDFOR bootstrap_stage +] + [+ ENDIF bootstrap +] +--- a/src/Makefile.def ++++ b/src/Makefile.def +@@ -117,7 +117,8 @@ + target_modules = { module= libstdc++-v3; + bootstrap=true; + lib_path=src/.libs; +- raw_cxx=true; }; ++ raw_cxx=true; ++ bootstrap_configure_flags='--disable-libstdcxx-debug --disable-libstdcxx-pch'; }; + target_modules = { module= libmudflap; lib_path=.libs; }; + target_modules = { module= libsanitizer; lib_path=.libs; }; + target_modules = { module= libssp; lib_path=.libs; }; --- gcc-7-7.5.0.orig/debian/patches/canonical-cpppath.diff +++ gcc-7-7.5.0/debian/patches/canonical-cpppath.diff @@ -0,0 +1,36 @@ +# DP: Don't use any relative path names for the standard include paths. + +Index: b/src/gcc/incpath.c +=================================================================== +--- a/src/gcc/incpath.c ++++ b/src/gcc/incpath.c +@@ -171,6 +171,14 @@ add_standard_paths (const char *sysroot, + str = reconcat (str, str, dir_separator_str, + imultiarch, NULL); + } ++ { ++ char *rp = lrealpath (str); ++ if (rp) ++ { ++ free (str); ++ str = rp; ++ } ++ } + add_path (str, SYSTEM, p->cxx_aware, false); + } + } +@@ -245,6 +253,14 @@ add_standard_paths (const char *sysroot, + else + str = reconcat (str, str, dir_separator_str, imultiarch, NULL); + } ++ { ++ char *rp = lrealpath (str); ++ if (rp) ++ { ++ free (str); ++ str = rp; ++ } ++ } + + add_path (str, SYSTEM, p->cxx_aware, false); + } --- gcc-7-7.5.0.orig/debian/patches/config-ml.diff +++ gcc-7-7.5.0/debian/patches/config-ml.diff @@ -0,0 +1,54 @@ +# DP: - Disable some biarch libraries for biarch builds. +# DP: - Fix multilib builds on kernels which don't support all multilibs. + +Index: b/src/config-ml.in +=================================================================== +--- a/src/config-ml.in ++++ b/src/config-ml.in +@@ -475,6 +475,25 @@ powerpc*-*-* | rs6000*-*-*) + ;; + esac + ++if [ -z "$biarch_multidir_names" ]; then ++ biarch_multidir_names="libiberty libstdc++-v3 libgfortran libmudflap libssp libffi libobjc libgomp" ++ echo "WARNING: biarch_multidir_names is unset. Use default value:" ++ echo " $biarch_multidir_names" ++fi ++ml_srcbase=`basename $ml_realsrcdir` ++old_multidirs="${multidirs}" ++multidirs="" ++for x in ${old_multidirs}; do ++ case " $x " in ++ " 32 "|" n32 "|" x32 "|" 64 "|" hf "|" sf "|" m4-nofpu ") ++ case "$biarch_multidir_names" in ++ *"$ml_srcbase"*) multidirs="${multidirs} ${x}" ;; ++ esac ++ ;; ++ *) multidirs="${multidirs} ${x}" ;; ++ esac ++done ++ + # Remove extraneous blanks from multidirs. + # Tests like `if [ -n "$multidirs" ]' require it. + multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ][ ]*/ /g'` +@@ -878,9 +897,19 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + fi + fi + ++ ml_configure_args= ++ for arg in ${ac_configure_args} ++ do ++ case $arg in ++ *CC=*) ml_configure_args=${ml_config_env} ;; ++ *CXX=*) ml_configure_args=${ml_config_env} ;; ++ *) ;; ++ esac ++ done ++ + if eval ${ml_config_env} ${ml_config_shell} ${ml_recprog} \ + --with-multisubdir=${ml_dir} --with-multisrctop=${multisrctop} \ +- "${ac_configure_args}" ${ml_config_env} ${ml_srcdiroption} ; then ++ "${ac_configure_args}" ${ml_configure_args} ${ml_config_env} ${ml_srcdiroption} ; then + true + else + exit 1 --- gcc-7-7.5.0.orig/debian/patches/cross-biarch.diff +++ gcc-7-7.5.0/debian/patches/cross-biarch.diff @@ -0,0 +1,82 @@ +# DP: Fix the location of target's libs in cross-build for biarch + +Index: b/src/config-ml.in +=================================================================== +--- a/src/config-ml.in ++++ b/src/config-ml.in +@@ -533,7 +533,13 @@ multi-do: + else \ + if [ -d ../$${dir}/$${lib} ]; then \ + flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \ +- if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) \ ++ libsuffix_="$${dir}"; \ ++ if [ "$${dir}" = "n32" ]; then libsuffix_=32; fi; \ ++ if [ -n "$$($${compiler} -v 2>&1 |grep '^Target: mips')" ] && [ "$${dir}" = "32" ]; then libsuffix_=o32; fi; \ ++ if (cd ../$${dir}/$${lib}; $(MAKE) $(subst \ ++ -B$(build_tooldir)/lib/, \ ++ -B$(build_tooldir)/lib$${libsuffix_}/, \ ++ $(FLAGS_TO_PASS)) \ + CFLAGS="$(CFLAGS) $${flags}" \ + CCASFLAGS="$(CCASFLAGS) $${flags}" \ + FCFLAGS="$(FCFLAGS) $${flags}" \ +@@ -786,6 +792,15 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + GFORTRAN_=$GFORTRAN' ' + GOC_=$GOC' ' + else ++ if [ "${ml_dir}" = "." ]; then ++ FILTER_="s!X\\(.*\\)!\\1!p" ++ elif [ "${ml_dir}" = "n32" ]; then # mips n32 -> lib32 ++ FILTER_="s!X\\(.*\\)/!\\132/!p" ++ elif [ "${ml_dir}" = "32" ] && [ "$(echo ${host} |grep '^mips')" ]; then # mips o32 -> libo32 ++ FILTER_="s!X\\(.*\\)/!\\1o32/!p" ++ else ++ FILTER_="s!X\\(.*\\)/!\\1${ml_dir}/!p" ++ fi + # Create a regular expression that matches any string as long + # as ML_POPDIR. + popdir_rx=`echo "${ML_POPDIR}" | sed 's,.,.,g'` +@@ -794,6 +809,8 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + case $arg in + -[BIL]"${ML_POPDIR}"/*) + CC_="${CC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\1/p"`' ' ;; ++ -B*/lib/) ++ CC_="${CC_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + CC_="${CC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) +@@ -806,6 +823,8 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + case $arg in + -[BIL]"${ML_POPDIR}"/*) + CXX_="${CXX_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ CXX_="${CXX_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + CXX_="${CXX_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) +@@ -818,6 +837,8 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + case $arg in + -[BIL]"${ML_POPDIR}"/*) + F77_="${F77_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ F77_="${F77_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + F77_="${F77_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) +@@ -842,6 +865,8 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + case $arg in + -[BIL]"${ML_POPDIR}"/*) + GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) +@@ -854,6 +879,8 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + case $arg in + -[BIL]"${ML_POPDIR}"/*) + GOC_="${GOC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ GOC_="${GOC_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + GOC_="${GOC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) --- gcc-7-7.5.0.orig/debian/patches/cross-fixes.diff +++ gcc-7-7.5.0/debian/patches/cross-fixes.diff @@ -0,0 +1,81 @@ +# DP: Fix the linker error when creating an xcc for ia64 + +--- + gcc/config/ia64/fde-glibc.c | 3 +++ + gcc/config/ia64/unwind-ia64.c | 3 ++- + gcc/unwind-compat.c | 2 ++ + gcc/unwind-generic.h | 2 ++ + 6 files changed, 14 insertions(+), 1 deletions(-) + +Index: b/src/libgcc/config/ia64/fde-glibc.c +=================================================================== +--- a/src/libgcc/config/ia64/fde-glibc.c ++++ b/src/libgcc/config/ia64/fde-glibc.c +@@ -28,6 +28,7 @@ + #ifndef _GNU_SOURCE + #define _GNU_SOURCE 1 + #endif ++#ifndef inhibit_libc + #include "config.h" + #include + #include +@@ -159,3 +160,5 @@ _Unwind_FindTableEntry (void *pc, unw_wo + + return data.ret; + } ++ ++#endif +Index: b/src/libgcc/config/ia64/unwind-ia64.c +=================================================================== +--- a/src/libgcc/config/ia64/unwind-ia64.c ++++ b/src/libgcc/config/ia64/unwind-ia64.c +@@ -26,6 +26,7 @@ + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . */ + ++#ifndef inhibit_libc + #include "tconfig.h" + #include "tsystem.h" + #include "coretypes.h" +@@ -2466,3 +2467,4 @@ alias (_Unwind_SetIP); + #endif + + #endif ++#endif +Index: b/src/libgcc/unwind-compat.c +=================================================================== +--- a/src/libgcc/unwind-compat.c ++++ b/src/libgcc/unwind-compat.c +@@ -23,6 +23,7 @@ + . */ + + #if defined (USE_GAS_SYMVER) && defined (USE_LIBUNWIND_EXCEPTIONS) ++#ifndef inhibit_libc + #include "tconfig.h" + #include "tsystem.h" + #include "unwind.h" +@@ -207,3 +208,4 @@ _Unwind_SetIP (struct _Unwind_Context *c + } + symver (_Unwind_SetIP, GCC_3.0); + #endif ++#endif +Index: b/src/libgcc/unwind-generic.h +=================================================================== +--- a/src/libgcc/unwind-generic.h ++++ b/src/libgcc/unwind-generic.h +@@ -221,6 +221,7 @@ _Unwind_SjLj_Resume_or_Rethrow (struct _ + compatible with the standard ABI for IA-64, we inline these. */ + + #ifdef __ia64__ ++#ifndef inhibit_libc + static inline _Unwind_Ptr + _Unwind_GetDataRelBase (struct _Unwind_Context *_C) + { +@@ -237,6 +238,7 @@ _Unwind_GetTextRelBase (struct _Unwind_C + + /* @@@ Retrieve the Backing Store Pointer of the given context. */ + extern _Unwind_Word _Unwind_GetBSP (struct _Unwind_Context *); ++#endif /* inhibit_libc */ + #else + extern _Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *); + extern _Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *); --- gcc-7-7.5.0.orig/debian/patches/cross-install-location.diff +++ gcc-7-7.5.0/debian/patches/cross-install-location.diff @@ -0,0 +1,378 @@ +Index: b/src/fixincludes/Makefile.in +=================================================================== +--- a/src/fixincludes/Makefile.in ++++ b/src/fixincludes/Makefile.in +@@ -52,9 +52,9 @@ target_noncanonical:=@target_noncanonica + gcc_version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER) + + # Directory in which the compiler finds libraries etc. +-libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version) ++libsubdir = $(libdir)/gcc-cross/$(target_noncanonical)/$(gcc_version) + # Directory in which the compiler finds executables +-libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) ++libexecsubdir = $(libexecdir)/gcc-cross/$(target_noncanonical)/$(gcc_version) + # Where our executable files go + itoolsdir = $(libexecsubdir)/install-tools + # Where our data files go +Index: b/src/libgfortran/Makefile.in +=================================================================== +--- a/src/libgfortran/Makefile.in ++++ b/src/libgfortran/Makefile.in +@@ -589,12 +589,12 @@ libgfortran_la_LDFLAGS = -version-info ` + + libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP) + cafexeclib_LTLIBRARIES = libcaf_single.la +-cafexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR) ++cafexeclibdir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)$(MULTISUBDIR) + libcaf_single_la_SOURCES = caf/single.c + libcaf_single_la_LDFLAGS = -static + libcaf_single_la_DEPENDENCIES = caf/libcaf.h + libcaf_single_la_LINK = $(LINK) $(libcaf_single_la_LDFLAGS) +-@IEEE_SUPPORT_TRUE@fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude ++@IEEE_SUPPORT_TRUE@fincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude + @IEEE_SUPPORT_TRUE@nodist_finclude_HEADERS = ieee_arithmetic.mod ieee_exceptions.mod ieee_features.mod + AM_CPPFLAGS = -iquote$(srcdir)/io -I$(srcdir)/$(MULTISRCTOP)../gcc \ + -I$(srcdir)/$(MULTISRCTOP)../gcc/config $(LIBQUADINCLUDE) \ +Index: b/src/libgfortran/Makefile.am +=================================================================== +--- a/src/libgfortran/Makefile.am ++++ b/src/libgfortran/Makefile.am +@@ -44,14 +44,14 @@ libgfortran_la_LDFLAGS = -version-info ` + libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP) + + cafexeclib_LTLIBRARIES = libcaf_single.la +-cafexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR) ++cafexeclibdir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)$(MULTISUBDIR) + libcaf_single_la_SOURCES = caf/single.c + libcaf_single_la_LDFLAGS = -static + libcaf_single_la_DEPENDENCIES = caf/libcaf.h + libcaf_single_la_LINK = $(LINK) $(libcaf_single_la_LDFLAGS) + + if IEEE_SUPPORT +-fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude ++fincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude + nodist_finclude_HEADERS = ieee_arithmetic.mod ieee_exceptions.mod ieee_features.mod + endif + +Index: b/src/lto-plugin/Makefile.in +=================================================================== +--- a/src/lto-plugin/Makefile.in ++++ b/src/lto-plugin/Makefile.in +@@ -256,7 +256,7 @@ with_libiberty = @with_libiberty@ + ACLOCAL_AMFLAGS = -I .. -I ../config + AUTOMAKE_OPTIONS = no-dependencies + gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) +-libexecsubdir := $(libexecdir)/gcc/$(real_target_noncanonical)/$(gcc_version)$(accel_dir_suffix) ++libexecsubdir := $(libexecdir)/gcc-cross/$(real_target_noncanonical)/$(gcc_version)$(accel_dir_suffix) + AM_CPPFLAGS = -I$(top_srcdir)/../include $(DEFS) + AM_CFLAGS = @ac_lto_plugin_warn_cflags@ + AM_LDFLAGS = @ac_lto_plugin_ldflags@ +Index: b/src/lto-plugin/Makefile.am +=================================================================== +--- a/src/lto-plugin/Makefile.am ++++ b/src/lto-plugin/Makefile.am +@@ -5,7 +5,7 @@ AUTOMAKE_OPTIONS = no-dependencies + + gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) + target_noncanonical := @target_noncanonical@ +-libexecsubdir := $(libexecdir)/gcc/$(real_target_noncanonical)/$(gcc_version)$(accel_dir_suffix) ++libexecsubdir := $(libexecdir)/gcc-cross/$(real_target_noncanonical)/$(gcc_version)$(accel_dir_suffix) + + AM_CPPFLAGS = -I$(top_srcdir)/../include $(DEFS) + AM_CFLAGS = @ac_lto_plugin_warn_cflags@ +Index: b/src/libitm/Makefile.in +=================================================================== +--- a/src/libitm/Makefile.in ++++ b/src/libitm/Makefile.in +@@ -336,8 +336,8 @@ SUBDIRS = testsuite + gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) + abi_version = -fabi-version=4 + search_path = $(addprefix $(top_srcdir)/config/, $(config_path)) $(top_srcdir) +-fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/finclude +-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++fincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/finclude ++libsubincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + AM_CPPFLAGS = $(addprefix -I, $(search_path)) + AM_CFLAGS = $(XCFLAGS) + AM_CXXFLAGS = $(XCFLAGS) -std=gnu++0x -funwind-tables -fno-exceptions \ +Index: b/src/libitm/Makefile.am +=================================================================== +--- a/src/libitm/Makefile.am ++++ b/src/libitm/Makefile.am +@@ -11,8 +11,8 @@ abi_version = -fabi-version=4 + config_path = @config_path@ + search_path = $(addprefix $(top_srcdir)/config/, $(config_path)) $(top_srcdir) + +-fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/finclude +-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++fincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/finclude ++libsubincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + + vpath % $(strip $(search_path)) + +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -4239,7 +4239,7 @@ process_command (unsigned int decoded_op + GCC_EXEC_PREFIX is typically a directory name with a trailing + / (which is ignored by make_relative_prefix), so append a + program name. */ +- char *tmp_prefix = concat (gcc_exec_prefix, "gcc", NULL); ++ char *tmp_prefix = concat (gcc_exec_prefix, "gcc-cross", NULL); + gcc_libexec_prefix = get_relative_prefix (tmp_prefix, + standard_exec_prefix, + standard_libexec_prefix); +@@ -4265,15 +4265,15 @@ process_command (unsigned int decoded_op + { + int len = strlen (gcc_exec_prefix); + +- if (len > (int) sizeof ("/lib/gcc/") - 1 ++ if (len > (int) sizeof ("/lib/gcc-cross/") - 1 + && (IS_DIR_SEPARATOR (gcc_exec_prefix[len-1]))) + { +- temp = gcc_exec_prefix + len - sizeof ("/lib/gcc/") + 1; ++ temp = gcc_exec_prefix + len - sizeof ("/lib/gcc-cross/") + 1; + if (IS_DIR_SEPARATOR (*temp) + && filename_ncmp (temp + 1, "lib", 3) == 0 + && IS_DIR_SEPARATOR (temp[4]) +- && filename_ncmp (temp + 5, "gcc", 3) == 0) +- len -= sizeof ("/lib/gcc/") - 1; ++ && filename_ncmp (temp + 5, "gcc-cross", 3) == 0) ++ len -= sizeof ("/lib/gcc-cross/") - 1; + } + + set_std_prefix (gcc_exec_prefix, len); +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -604,9 +604,9 @@ libexecdir = @libexecdir@ + # -------- + + # Directory in which the compiler finds libraries etc. +-libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) ++libsubdir = $(libdir)/gcc-cross/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) + # Directory in which the compiler finds executables +-libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) ++libexecsubdir = $(libexecdir)/gcc-cross/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) + # Directory in which all plugin resources are installed + plugin_resourcesdir = $(libsubdir)/plugin + # Directory in which plugin headers are installed +@@ -2113,8 +2113,8 @@ prefix.o: $(BASEVER) + + DRIVER_DEFINES = \ + -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \ +- -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ +- -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \ ++ -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-cross/\" \ ++ -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc-cross/\" \ + -DDEFAULT_TARGET_VERSION=\"$(version)\" \ + -DDEFAULT_REAL_TARGET_MACHINE=\"$(real_target_noncanonical)\" \ + -DDEFAULT_TARGET_MACHINE=\"$(target_noncanonical)\" \ +@@ -2776,7 +2776,7 @@ PREPROCESSOR_DEFINES = \ + -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \ + -DNATIVE_SYSTEM_HEADER_DIR=\"$(NATIVE_SYSTEM_HEADER_DIR)\" \ + -DPREFIX=\"$(prefix)/\" \ +- -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ ++ -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-cross/\" \ + @TARGET_SYSTEM_ROOT_DEFINE@ + + CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s) +Index: b/src/libssp/Makefile.in +=================================================================== +--- a/src/libssp/Makefile.in ++++ b/src/libssp/Makefile.in +@@ -288,7 +288,7 @@ gcc_version := $(shell @get_gcc_base_ver + @LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@version_dep = ssp.map-sun + AM_CFLAGS = -Wall + toolexeclib_LTLIBRARIES = libssp.la libssp_nonshared.la +-libsubincludedir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include ++libsubincludedir = $(libdir)/gcc-cross/$(target_noncanonical)/$(gcc_version)/include + nobase_libsubinclude_HEADERS = ssp/ssp.h ssp/string.h ssp/stdio.h ssp/unistd.h + libssp_la_SOURCES = \ + ssp.c gets-chk.c memcpy-chk.c memmove-chk.c mempcpy-chk.c \ +Index: b/src/libssp/Makefile.am +=================================================================== +--- a/src/libssp/Makefile.am ++++ b/src/libssp/Makefile.am +@@ -38,7 +38,7 @@ AM_CFLAGS = -Wall + toolexeclib_LTLIBRARIES = libssp.la libssp_nonshared.la + + target_noncanonical = @target_noncanonical@ +-libsubincludedir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include ++libsubincludedir = $(libdir)/gcc-cross/$(target_noncanonical)/$(gcc_version)/include + nobase_libsubinclude_HEADERS = ssp/ssp.h ssp/string.h ssp/stdio.h ssp/unistd.h + + libssp_la_SOURCES = \ +Index: b/src/libquadmath/Makefile.in +=================================================================== +--- a/src/libquadmath/Makefile.in ++++ b/src/libquadmath/Makefile.in +@@ -355,7 +355,7 @@ AUTOMAKE_OPTIONS = 1.8 foreign + + @BUILD_LIBQUADMATH_TRUE@libquadmath_la_DEPENDENCIES = $(version_dep) $(libquadmath_la_LIBADD) + @BUILD_LIBQUADMATH_TRUE@nodist_libsubinclude_HEADERS = quadmath.h quadmath_weak.h +-@BUILD_LIBQUADMATH_TRUE@libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++@BUILD_LIBQUADMATH_TRUE@libsubincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + @BUILD_LIBQUADMATH_TRUE@libquadmath_la_SOURCES = \ + @BUILD_LIBQUADMATH_TRUE@ math/x2y2m1q.c math/isinf_nsq.c math/acoshq.c math/fmodq.c \ + @BUILD_LIBQUADMATH_TRUE@ math/acosq.c math/frexpq.c \ +Index: b/src/libquadmath/Makefile.am +=================================================================== +--- a/src/libquadmath/Makefile.am ++++ b/src/libquadmath/Makefile.am +@@ -41,7 +41,7 @@ libquadmath_la_LDFLAGS = -version-info ` + libquadmath_la_DEPENDENCIES = $(version_dep) $(libquadmath_la_LIBADD) + + nodist_libsubinclude_HEADERS = quadmath.h quadmath_weak.h +-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++libsubincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + + libquadmath_la_SOURCES = \ + math/x2y2m1q.c math/isinf_nsq.c math/acoshq.c math/fmodq.c \ +Index: b/src/libobjc/Makefile.in +=================================================================== +--- a/src/libobjc/Makefile.in ++++ b/src/libobjc/Makefile.in +@@ -48,7 +48,7 @@ extra_ldflags_libobjc = @extra_ldflags_l + top_builddir = . + + libdir = $(exec_prefix)/lib +-libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version) ++libsubdir = $(libdir)/gcc-cross/$(target_noncanonical)/$(gcc_version) + + # Multilib support variables. + MULTISRCTOP = +Index: b/src/libada/Makefile.in +=================================================================== +--- a/src/libada/Makefile.in ++++ b/src/libada/Makefile.in +@@ -68,7 +68,7 @@ GCC_DIR=$(MULTIBUILDTOP)../../$(host_sub + + target_noncanonical:=@target_noncanonical@ + version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER) +-libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR) ++libsubdir := $(libdir)/gcc-cross/$(target_noncanonical)/$(version)$(MULTISUBDIR) + ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR)) + ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTISUBDIR)) + +Index: b/src/libgomp/Makefile.in +=================================================================== +--- a/src/libgomp/Makefile.in ++++ b/src/libgomp/Makefile.in +@@ -406,8 +406,8 @@ gcc_version := $(shell @get_gcc_base_ver + search_path = $(addprefix $(top_srcdir)/config/, $(config_path)) $(top_srcdir) \ + $(top_srcdir)/../include + +-fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude +-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++fincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude ++libsubincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + AM_CPPFLAGS = $(addprefix -I, $(search_path)) + AM_CFLAGS = $(XCFLAGS) + AM_LDFLAGS = $(XLDFLAGS) $(SECTION_LDFLAGS) $(OPT_LDFLAGS) +Index: b/src/libgomp/Makefile.am +=================================================================== +--- a/src/libgomp/Makefile.am ++++ b/src/libgomp/Makefile.am +@@ -10,8 +10,8 @@ config_path = @config_path@ + search_path = $(addprefix $(top_srcdir)/config/, $(config_path)) $(top_srcdir) \ + $(top_srcdir)/../include + +-fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude +-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++fincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude ++libsubincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + + vpath % $(strip $(search_path)) + +Index: b/src/libgcc/Makefile.in +=================================================================== +--- a/src/libgcc/Makefile.in ++++ b/src/libgcc/Makefile.in +@@ -196,7 +196,7 @@ STRIP = @STRIP@ + STRIP_FOR_TARGET = $(STRIP) + + # Directory in which the compiler finds libraries etc. +-libsubdir = $(libdir)/gcc/$(real_host_noncanonical)/$(version)@accel_dir_suffix@ ++libsubdir = $(libdir)/gcc-cross/$(real_host_noncanonical)/$(version)@accel_dir_suffix@ + # Used to install the shared libgcc. + slibdir = @slibdir@ + # Maybe used for DLLs on Windows targets. +Index: b/src/libffi/include/Makefile.am +=================================================================== +--- a/src/libffi/include/Makefile.am ++++ b/src/libffi/include/Makefile.am +@@ -8,6 +8,6 @@ EXTRA_DIST=ffi.h.in + + # Where generated headers like ffitarget.h get installed. + gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) +-toollibffidir := $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++toollibffidir := $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + + toollibffi_HEADERS = ffi.h ffitarget.h +Index: b/src/libffi/include/Makefile.in +=================================================================== +--- a/src/libffi/include/Makefile.in ++++ b/src/libffi/include/Makefile.in +@@ -254,7 +254,7 @@ EXTRA_DIST = ffi.h.in + + # Where generated headers like ffitarget.h get installed. + gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) +-toollibffidir := $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++toollibffidir := $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + toollibffi_HEADERS = ffi.h ffitarget.h + all: all-am + +Index: b/src/libcc1/Makefile.am +=================================================================== +--- a/src/libcc1/Makefile.am ++++ b/src/libcc1/Makefile.am +@@ -37,7 +37,7 @@ libiberty = $(if $(wildcard $(libiberty_ + $(Wc)$(libiberty_normal))) + libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) + +-plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin ++plugindir = $(libdir)/gcc-cross/$(target_noncanonical)/$(gcc_version)/plugin + cc1libdir = $(libdir)/$(libsuffix) + + if ENABLE_PLUGIN +Index: b/src/libcc1/Makefile.in +=================================================================== +--- a/src/libcc1/Makefile.in ++++ b/src/libcc1/Makefile.in +@@ -303,7 +303,7 @@ libiberty = $(if $(wildcard $(libiberty_ + $(Wc)$(libiberty_normal))) + + libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) +-plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin ++plugindir = $(libdir)/gcc-cross/$(target_noncanonical)/$(gcc_version)/plugin + cc1libdir = $(libdir)/$(libsuffix) + @ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la + @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la +Index: b/src/libsanitizer/Makefile.am +=================================================================== +--- a/src/libsanitizer/Makefile.am ++++ b/src/libsanitizer/Makefile.am +@@ -1,6 +1,6 @@ + ACLOCAL_AMFLAGS = -I .. -I ../config + +-sanincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include/sanitizer ++sanincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include/sanitizer + + nodist_saninclude_HEADERS = + +Index: b/src/libsanitizer/Makefile.in +=================================================================== +--- a/src/libsanitizer/Makefile.in ++++ b/src/libsanitizer/Makefile.in +@@ -286,7 +286,7 @@ top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + ACLOCAL_AMFLAGS = -I .. -I ../config +-sanincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include/sanitizer ++sanincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include/sanitizer + nodist_saninclude_HEADERS = $(am__append_1) + @SANITIZER_SUPPORTED_TRUE@SUBDIRS = sanitizer_common $(am__append_2) \ + @SANITIZER_SUPPORTED_TRUE@ $(am__append_3) lsan asan ubsan \ --- gcc-7-7.5.0.orig/debian/patches/cross-no-locale-include.diff +++ gcc-7-7.5.0/debian/patches/cross-no-locale-include.diff @@ -0,0 +1,17 @@ +# DP: Don't add /usr/local/include for cross compilers. Assume that +# DP: /usr/include is ready for multiarch, but not /usr/local/include. + +--- a/src/gcc/cppdefault.c ++++ b/src/gcc/cppdefault.c +@@ -66,8 +66,11 @@ + #ifdef LOCAL_INCLUDE_DIR + /* /usr/local/include comes before the fixincluded header files. */ + { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, ++#if 0 ++ /* Unsafe to assume that /usr/local/include is ready for multiarch. */ + { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, + #endif ++#endif + #ifdef PREFIX_INCLUDE_DIR + { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 }, + #endif --- gcc-7-7.5.0.orig/debian/patches/cuda-float128.diff +++ gcc-7-7.5.0/debian/patches/cuda-float128.diff @@ -0,0 +1,28 @@ +# Mask __float128 types from CUDA compilers (LP: #1717257) + +Index: b/src/libstdc++-v3/include/std/type_traits +=================================================================== +--- a/src/libstdc++-v3/include/std/type_traits ++++ b/src/libstdc++-v3/include/std/type_traits +@@ -342,7 +342,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + struct __is_floating_point_helper + : public true_type { }; + +-#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) ++#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && !defined(__CUDACC__) + template<> + struct __is_floating_point_helper<__float128> + : public true_type { }; +Index: b/src/libstdc++-v3/include/bits/std_abs.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/std_abs.h ++++ b/src/libstdc++-v3/include/bits/std_abs.h +@@ -96,7 +96,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + abs(__GLIBCXX_TYPE_INT_N_3 __x) { return __x >= 0 ? __x : -__x; } + #endif + +-#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) ++#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && !defined(__CUDACC__) + inline _GLIBCXX_CONSTEXPR + __float128 + abs(__float128 __x) --- gcc-7-7.5.0.orig/debian/patches/disable-gdc-tests.diff +++ gcc-7-7.5.0/debian/patches/disable-gdc-tests.diff @@ -0,0 +1,19 @@ +# DP: Disable D tests, hang on many buildds + +Index: b/src/gcc/d/Make-lang.in +=================================================================== +--- a/src/gcc/d/Make-lang.in ++++ b/src/gcc/d/Make-lang.in +@@ -148,9 +148,9 @@ d.srcman: doc/gdc.1 + # check targets. However, our DejaGNU framework requires 'check-gdc' as its + # entry point. We feed the former to the latter here. + check-d: check-gdc +-lang_checks += check-gdc +-lang_checks_parallelized += check-gdc +-check_gdc_parallelize = 10 ++#lang_checks += check-gdc ++#lang_checks_parallelized += check-gdc ++#check_gdc_parallelize = 10 + + # Install hooks. + --- gcc-7-7.5.0.orig/debian/patches/g++-multiarch-incdir.diff +++ gcc-7-7.5.0/debian/patches/g++-multiarch-incdir.diff @@ -0,0 +1,109 @@ +# DP: Use /usr/include//c++/4.x as the include directory +# DP: for host dependent c++ header files. + +--- a/src/libstdc++-v3/include/Makefile.am ++++ b/src/libstdc++-v3/include/Makefile.am +@@ -923,7 +923,7 @@ endif + + host_srcdir = ${glibcxx_srcdir}/$(OS_INC_SRCDIR) + host_builddir = ./${host_alias}/bits +-host_installdir = ${gxx_include_dir}/${host_alias}$(MULTISUBDIR)/bits ++host_installdir = $(if $(shell $(CC) -print-multiarch),/usr/include/$(shell $(filter-out -m%,$(CC)) -print-multiarch)/c++/$(notdir ${gxx_include_dir})$(MULTISUBDIR)/bits,${gxx_include_dir}/${default_host_alias}$(MULTISUBDIR)/bits) + host_headers = \ + ${host_srcdir}/ctype_base.h \ + ${host_srcdir}/ctype_inline.h \ +--- a/src/libstdc++-v3/include/Makefile.in ++++ b/src/libstdc++-v3/include/Makefile.in +@@ -1209,7 +1209,7 @@ profile_impl_headers = \ + @GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE@c_compatibility_headers_extra = ${c_compatibility_headers} + host_srcdir = ${glibcxx_srcdir}/$(OS_INC_SRCDIR) + host_builddir = ./${host_alias}/bits +-host_installdir = ${gxx_include_dir}/${host_alias}$(MULTISUBDIR)/bits ++host_installdir = $(if $(shell $(CC) -print-multiarch),/usr/include/$(shell $(filter-out -m%,$(CC)) -print-multiarch)/c++/$(notdir ${gxx_include_dir})$(MULTISUBDIR)/bits,${gxx_include_dir}/${default_host_alias}$(MULTISUBDIR)/bits) + host_headers = \ + ${host_srcdir}/ctype_base.h \ + ${host_srcdir}/ctype_inline.h \ +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -1150,6 +1150,7 @@ FLAGS_TO_PASS = \ + "prefix=$(prefix)" \ + "local_prefix=$(local_prefix)" \ + "gxx_include_dir=$(gcc_gxx_include_dir)" \ ++ "gxx_tool_include_dir=$(gcc_gxx_tool_include_dir)" \ + "build_tooldir=$(build_tooldir)" \ + "gcc_tooldir=$(gcc_tooldir)" \ + "bindir=$(bindir)" \ +@@ -1681,6 +1682,14 @@ ifneq ($(xmake_file),) + include $(xmake_file) + endif + ++# Directory in which the compiler finds target-dependent g++ includes. ++ifneq ($(call if_multiarch,non-empty),) ++ gcc_gxx_tool_include_dir = $(libsubdir)/$(libsubdir_to_prefix)include/$(MULTIARCH_DIRNAME)/c++/$(version) ++else ++ gcc_gxx_tool_include_dir = $(gcc_gxx_include_dir)/$(target_noncanonical) ++endif ++ ++ + # all-tree.def includes all the tree.def files. + all-tree.def: s-alltree; @true + s-alltree: Makefile +@@ -2769,7 +2778,7 @@ PREPROCESSOR_DEFINES = \ + -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \ + -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ + -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \ +- -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \ ++ -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_tool_include_dir)\" \ + -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \ + -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \ + -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \ +--- a/src/gcc/cppdefault.c ++++ b/src/gcc/cppdefault.c +@@ -49,6 +49,8 @@ const struct default_include cpp_include + /* Pick up GNU C++ target-dependent include files. */ + { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, + GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, ++ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, ++ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 2 }, + #endif + #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR + /* Pick up GNU C++ backward and deprecated include files. */ +--- a/src/gcc/incpath.c ++++ b/src/gcc/incpath.c +@@ -158,6 +158,18 @@ add_standard_paths (const char *sysroot, + } + str = reconcat (str, str, dir_separator_str, + imultiarch, NULL); ++ if (p->cplusplus && strstr (str, "/c++/")) ++ { ++ char *suffix = strstr (str, "/c++/"); ++ *suffix++ = '\0'; ++ suffix = xstrdup (suffix); ++ str = reconcat (str, str, dir_separator_str, ++ imultiarch, ++ dir_separator_str, suffix, NULL); ++ } ++ else ++ str = reconcat (str, str, dir_separator_str, ++ imultiarch, NULL); + } + add_path (str, SYSTEM, p->cxx_aware, false); + } +@@ -222,7 +234,16 @@ add_standard_paths (const char *sysroot, + free (str); + continue; + } +- str = reconcat (str, str, dir_separator_str, imultiarch, NULL); ++ if (p->cplusplus && strstr (str, "/c++/")) ++ { ++ char *suffix = strstr (str, "/c++/"); ++ *suffix++ = '\0'; ++ suffix = xstrdup (suffix); ++ str = reconcat (str, str, dir_separator_str, imultiarch, ++ dir_separator_str, suffix, NULL); ++ } ++ else ++ str = reconcat (str, str, dir_separator_str, imultiarch, NULL); + } + + add_path (str, SYSTEM, p->cxx_aware, false); --- gcc-7-7.5.0.orig/debian/patches/gcc-alpha-bs-ignore.diff +++ gcc-7-7.5.0/debian/patches/gcc-alpha-bs-ignore.diff @@ -0,0 +1,14 @@ +# DP: Ignore bootstrap comparison failures in gcc/d on alpha + +Index: b/src/configure.ac +=================================================================== +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -3511,6 +3511,7 @@ case "$target" in + hppa*64*-*-hpux*) ;; + hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/* | gcc/function-tests.o" ;; + powerpc*-ibm-aix*) compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/* | *libgomp*\$(objext)" ;; ++ alpha*-linux-*) compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/* | gcc/d/*\$(objext)" ;; + esac + AC_SUBST(compare_exclusions) + --- gcc-7-7.5.0.orig/debian/patches/gcc-as-needed-gold.diff +++ gcc-7-7.5.0/debian/patches/gcc-as-needed-gold.diff @@ -0,0 +1,58 @@ +# DP: Use --push-state/--pop-state for gold as well when linking libtsan. + +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -686,10 +686,10 @@ proper position among the other output f + #define LIBASAN_SPEC STATIC_LIBASAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) + #define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \ +- " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " %{!static-libasan:--push-state --no-as-needed}" \ + " -lasan " \ + " %{static-libasan:" LD_DYNAMIC_OPTION "}" \ +- " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ ++ " %{!static-libasan:--pop-state}" \ + STATIC_LIBASAN_LIBS + #else + #define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS +@@ -707,10 +707,10 @@ proper position among the other output f + #define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) + #define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \ +- " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " %{!static-libtsan:--push-state --no-as-needed}" \ + " -ltsan " \ + " %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ +- " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ ++ " %{!static-libtsan:--pop-state}" \ + STATIC_LIBTSAN_LIBS + #else + #define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS +@@ -728,10 +728,10 @@ proper position among the other output f + #define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) + #define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \ +- " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " %{!static-liblsan:--push-state --no-as-needed}" \ + " -llsan " \ + " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \ +- " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ ++ " %{!static-liblsan:--pop-state}" \ + STATIC_LIBLSAN_LIBS + #else + #define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS +@@ -747,10 +747,10 @@ proper position among the other output f + " %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}" + #ifdef HAVE_LD_STATIC_DYNAMIC + #define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \ +- " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " %{!static-libubsan:--push-state --no-as-needed}" \ + " -lubsan " \ + " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \ +- " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ ++ " %{!static-libubsan:--pop-state}" \ + STATIC_LIBUBSAN_LIBS + #else + #define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS --- gcc-7-7.5.0.orig/debian/patches/gcc-as-needed-push-pop.diff +++ gcc-7-7.5.0/debian/patches/gcc-as-needed-push-pop.diff @@ -0,0 +1,41 @@ +From: Jakub Jelinek +Subject: [PATCH] Use --push-state --as-needed and --pop-state instead of --as-needed and --no-as-needed for libgcc + +As discussed, using --as-needed and --no-as-needed is dangerous, because +it results in --no-as-needed even for libraries after -lgcc_s, even when the +default is --as-needed or --as-needed has been specified earlier on the +command line. + +If the linker supports --push-state/--pop-state, we should IMHO use it. + +2018-04-11 Jakub Jelinek + + * configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use + --push-state --as-needed and --pop-state instead of --as-needed and + --no-as-needed if ld supports it. + * configure: Regenerated. + +--- a/src/gcc/configure.ac ++++ b/src/gcc/configure.ac +@@ -5372,11 +5372,21 @@ if test $in_tree_ld = yes ; then + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \ + && test $in_tree_ld_is_elf = yes; then + gcc_cv_ld_as_needed=yes ++ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 28; then ++ gcc_cv_ld_as_needed_option='--push-state --as-needed' ++ gcc_cv_ld_no_as_needed_option='--pop-state' ++ fi + fi + elif test x$gcc_cv_ld != x; then + # Check if linker supports --as-needed and --no-as-needed options + if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then + gcc_cv_ld_as_needed=yes ++ if $gcc_cv_ld --help 2>&1 | grep push-state > /dev/null; then ++ if $gcc_cv_ld --help 2>&1 | grep pop-state > /dev/null; then ++ gcc_cv_ld_as_needed_option='--push-state --as-needed' ++ gcc_cv_ld_no_as_needed_option='--pop-state' ++ fi ++ fi + else + case "$target" in + # Solaris 2 ld always supports -z ignore/-z record. --- gcc-7-7.5.0.orig/debian/patches/gcc-as-needed.diff +++ gcc-7-7.5.0/debian/patches/gcc-as-needed.diff @@ -0,0 +1,241 @@ +# DP: On linux targets pass --as-needed by default to the linker, but always +# DP: link the sanitizer libraries with --no-as-needed. + +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -685,8 +685,11 @@ proper position among the other output f + #ifdef LIBASAN_EARLY_SPEC + #define LIBASAN_SPEC STATIC_LIBASAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) +-#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \ +- "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \ ++#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \ ++ " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " -lasan " \ ++ " %{static-libasan:" LD_DYNAMIC_OPTION "}" \ ++ " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ + STATIC_LIBASAN_LIBS + #else + #define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS +@@ -703,8 +706,11 @@ proper position among the other output f + #ifdef LIBTSAN_EARLY_SPEC + #define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) +-#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION \ +- "} -ltsan %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ ++#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \ ++ " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " -ltsan " \ ++ " %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ ++ " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ + STATIC_LIBTSAN_LIBS + #else + #define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS +@@ -721,8 +727,11 @@ proper position among the other output f + #ifdef LIBLSAN_EARLY_SPEC + #define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) +-#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION \ +- "} -llsan %{static-liblsan:" LD_DYNAMIC_OPTION "}" \ ++#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \ ++ " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " -llsan " \ ++ " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \ ++ " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ + STATIC_LIBLSAN_LIBS + #else + #define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS +@@ -737,8 +746,11 @@ proper position among the other output f + #define STATIC_LIBUBSAN_LIBS \ + " %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}" + #ifdef HAVE_LD_STATIC_DYNAMIC +-#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION \ +- "} -lubsan %{static-libubsan:" LD_DYNAMIC_OPTION "}" \ ++#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \ ++ " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " -lubsan " \ ++ " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \ ++ " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ + STATIC_LIBUBSAN_LIBS + #else + #define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS +Index: b/src/gcc/config/gnu-user.h +=================================================================== +--- a/src/gcc/config/gnu-user.h ++++ b/src/gcc/config/gnu-user.h +@@ -159,13 +159,13 @@ see the files COPYING3 and COPYING.RUNTI + #define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \ + "%{static-libasan:%{!shared:" \ + LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \ +- LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}" ++ LD_DYNAMIC_OPTION "}}%{!static-libasan:%{!fuse-ld=gold:--push-state} --no-as-needed -lasan %{fuse-ld=gold:--as-needed;:--pop-state}}" + #undef LIBTSAN_EARLY_SPEC + #define LIBTSAN_EARLY_SPEC "%{static-libtsan:%{!shared:" \ + LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \ +- LD_DYNAMIC_OPTION "}}%{!static-libtsan:-ltsan}" ++ LD_DYNAMIC_OPTION "}}%{!static-libtsan:%{!fuse-ld=gold:--push-state} --no-as-needed -ltsan %{fuse-ld=gold:--as-needed;:--pop-state}}" + #undef LIBLSAN_EARLY_SPEC + #define LIBLSAN_EARLY_SPEC "%{static-liblsan:%{!shared:" \ + LD_STATIC_OPTION " --whole-archive -llsan --no-whole-archive " \ +- LD_DYNAMIC_OPTION "}}%{!static-liblsan:-llsan}" ++ LD_DYNAMIC_OPTION "}}%{!static-liblsan:%{!fuse-ld=gold:--push-state} --no-as-needed -llsan %{fuse-ld=gold:--as-needed;:--pop-state}}" + #endif +Index: b/src/gcc/config/aarch64/aarch64-linux.h +=================================================================== +--- a/src/gcc/config/aarch64/aarch64-linux.h ++++ b/src/gcc/config/aarch64/aarch64-linux.h +@@ -36,6 +36,7 @@ + + #define LINUX_TARGET_LINK_SPEC "%{h*} \ + --hash-style=gnu \ ++ --as-needed \ + %{static:-Bstatic} \ + %{shared:-shared} \ + %{symbolic:-Bsymbolic} \ +Index: b/src/gcc/config/ia64/linux.h +=================================================================== +--- a/src/gcc/config/ia64/linux.h ++++ b/src/gcc/config/ia64/linux.h +@@ -58,7 +58,7 @@ do { \ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC " --hash-style=gnu \ ++#define LINK_SPEC " --hash-style=gnu --as-needed \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/sparc/linux.h +=================================================================== +--- a/src/gcc/config/sparc/linux.h ++++ b/src/gcc/config/sparc/linux.h +@@ -86,7 +86,7 @@ extern const char *host_detect_local_cpu + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf32_sparc --hash-style=gnu %{shared:-shared} \ ++#define LINK_SPEC "-m elf32_sparc --hash-style=gnu --as-needed %{shared:-shared} \ + %{!mno-relax:%{!r:-relax}} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/s390/linux.h +=================================================================== +--- a/src/gcc/config/s390/linux.h ++++ b/src/gcc/config/s390/linux.h +@@ -78,7 +78,7 @@ along with GCC; see the file COPYING3. + + #undef LINK_SPEC + #define LINK_SPEC \ +- "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=gnu \ ++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=gnu --as-needed \ + %{shared:-shared} \ + %{!shared: \ + %{static:-static} \ +Index: b/src/gcc/config/rs6000/linux64.h +=================================================================== +--- a/src/gcc/config/rs6000/linux64.h ++++ b/src/gcc/config/rs6000/linux64.h +@@ -480,12 +480,12 @@ extern int dot_symbols; + " -m elf64ppc") + #endif + +-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --hash-style=gnu %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --hash-style=gnu --as-needed %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}} \ + %(link_os_extra_spec32)" + +-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --hash-style=gnu %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --hash-style=gnu --as-needed %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}} \ + %(link_os_extra_spec64)" +Index: b/src/gcc/config/rs6000/sysv4.h +=================================================================== +--- a/src/gcc/config/rs6000/sysv4.h ++++ b/src/gcc/config/rs6000/sysv4.h +@@ -810,7 +810,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ + MUSL_DYNAMIC_LINKER) + +-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=gnu %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=gnu --as-needed %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" + +Index: b/src/gcc/config/i386/gnu-user64.h +=================================================================== +--- a/src/gcc/config/i386/gnu-user64.h ++++ b/src/gcc/config/i386/gnu-user64.h +@@ -57,6 +57,7 @@ see the files COPYING3 and COPYING.RUNTI + %{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \ + %{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \ + --hash-style=gnu \ ++ --as-needed \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/i386/gnu-user.h +=================================================================== +--- a/src/gcc/config/i386/gnu-user.h ++++ b/src/gcc/config/i386/gnu-user.h +@@ -74,7 +74,7 @@ along with GCC; see the file COPYING3. + { "link_emulation", GNU_USER_LINK_EMULATION },\ + { "dynamic_linker", GNU_USER_DYNAMIC_LINKER } + +-#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --hash-style=gnu %{shared:-shared} \ ++#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --hash-style=gnu --as-needed %{shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +Index: b/src/gcc/config/alpha/linux-elf.h +=================================================================== +--- a/src/gcc/config/alpha/linux-elf.h ++++ b/src/gcc/config/alpha/linux-elf.h +@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. + + #define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER + +-#define LINK_SPEC "-m elf64alpha --hash-style=gnu %{G*} %{relax:-relax} \ ++#define LINK_SPEC "-m elf64alpha --hash-style=gnu --as-needed %{G*} %{relax:-relax} \ + %{O*:-O3} %{!O*:-O1} \ + %{shared:-shared} \ + %{!shared: \ +Index: b/src/gcc/config/arm/linux-elf.h +=================================================================== +--- a/src/gcc/config/arm/linux-elf.h ++++ b/src/gcc/config/arm/linux-elf.h +@@ -71,6 +71,7 @@ + %{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \ + -X \ + --hash-style=gnu \ ++ --as-needed \ + %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ + SUBTARGET_EXTRA_LINK_SPEC + +Index: b/src/gcc/config/mips/gnu-user.h +=================================================================== +--- a/src/gcc/config/mips/gnu-user.h ++++ b/src/gcc/config/mips/gnu-user.h +@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3. + #undef GNU_USER_TARGET_LINK_SPEC + #define GNU_USER_TARGET_LINK_SPEC "\ + %{G*} %{EB} %{EL} %{mips*} %{shared} \ ++ -as-needed \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +Index: b/src/gcc/config/riscv/linux.h +=================================================================== +--- a/src/gcc/config/riscv/linux.h ++++ b/src/gcc/config/riscv/linux.h +@@ -51,6 +51,7 @@ along with GCC; see the file COPYING3. + + #define LINK_SPEC "\ + -hash-style=gnu \ ++-as-needed \ + -melf" XLEN_SPEC "lriscv \ + %{shared} \ + %{!shared: \ --- gcc-7-7.5.0.orig/debian/patches/gcc-auto-build.diff +++ gcc-7-7.5.0/debian/patches/gcc-auto-build.diff @@ -0,0 +1,15 @@ +# DP: Fix cross building a native compiler. + +Index: b/src/gcc/configure.ac +=================================================================== +--- a/src/gcc/configure.ac ++++ b/src/gcc/configure.ac +@@ -1705,7 +1705,7 @@ else + # Clearing GMPINC is necessary to prevent host headers being + # used by the build compiler. Defining GENERATOR_FILE stops + # system.h from including gmp.h. +- CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ ++ CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ + CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ + LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ + GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ --- gcc-7-7.5.0.orig/debian/patches/gcc-d-lang.diff +++ gcc-7-7.5.0/debian/patches/gcc-d-lang.diff @@ -0,0 +1,251 @@ +# DP: Add D options and specs for the gcc driver. + +Index: b/src/gcc/d/lang-specs.h +=================================================================== +--- /dev/null ++++ b/src/gcc/d/lang-specs.h +@@ -0,0 +1,31 @@ ++/* lang-specs.h -- D frontend for GCC. ++ Copyright (C) 2011, 2012 Free Software Foundation, Inc. ++ ++ GCC is free software; you can redistribute it and/or modify it under ++ the terms of the GNU General Public License as published by the Free ++ Software Foundation; either version 3, or (at your option) any later ++ version. ++ ++ GCC is distributed in the hope that it will be useful, but WITHOUT ANY ++ WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with GCC; see the file COPYING3. If not see ++ . ++*/ ++ ++/* %{!M} probably doesn't make sense because we would need ++ to do that -- -MD and -MMD doesn't sound like a plan for D.... */ ++ ++{".d", "@d", 0, 1, 0 }, ++{".D", "@d", 0, 1, 0 }, ++{".dd", "@d", 0, 1, 0 }, ++{".DD", "@d", 0, 1, 0 }, ++{".di", "@d", 0, 1, 0 }, ++{".DI", "@d", 0, 1, 0 }, ++{"@d", ++ "%{!E:cc1d %i %(cc1_options) %(cc1d) %I %{nostdinc*} %{+e*} %{I*} %{J*}\ ++ %{M} %{MM} %{!fsyntax-only:%(invoke_as)}}", 0, 1, 0 }, ++ +Index: b/src/gcc/d/lang.opt +=================================================================== +--- /dev/null ++++ b/src/gcc/d/lang.opt +@@ -0,0 +1,208 @@ ++; GDC -- D front-end for GCC ++; Copyright (C) 2011, 2012 Free Software Foundation, Inc. ++; ++; This program is free software; you can redistribute it and/or modify ++; it under the terms of the GNU General Public License as published by ++; the Free Software Foundation; either version 2 of the License, or ++; (at your option) any later version. ++; ++; This program is distributed in the hope that it will be useful, ++; but WITHOUT ANY WARRANTY; without even the implied warranty of ++; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++; GNU General Public License for more details. ++; ++; You should have received a copy of the GNU General Public License ++; along with GCC; see the file COPYING3. If not see ++; . ++ ++Language ++D ++ ++debuglib= ++Driver Joined ++Debug library to use instead of phobos ++ ++defaultlib= ++Driver Joined ++Default library to use instead of phobos ++ ++fassert ++D ++Permit the use of the assert keyword ++ ++; For D: defaults to on ++fbounds-check ++D ++Generate code to check bounds before indexing arrays ++ ++fbuiltin ++D Var(flag_no_builtin, 0) ++Recognize built-in functions ++ ++fdebug ++D ++Compile in debug code ++ ++fdebug= ++D Joined RejectNegative ++-fdebug,-fdebug=,-fdebug= Compile in debug code, code <= level, or code identified by ident ++ ++fdeps= ++D Joined RejectNegative ++-fdeps= Write module dependencies to filename ++ ++fdoc ++D ++Generate documentation ++ ++fdoc-dir= ++D Joined RejectNegative ++-fdoc-dir= Write documentation file to docdir directory ++ ++fdoc-file= ++D Joined RejectNegative ++-fdoc-file= Write documentation file to filename ++ ++fdoc-inc= ++D Joined RejectNegative ++-fdoc-inc= Include a Ddoc macro file ++ ++fdump-source ++D RejectNegative ++Dump decoded UTF-8 text and source from HTML ++ ++fd-verbose ++D ++Print information about D language processing to stdout ++ ++fd-vtls ++D ++List all variables going into thread local storage ++ ++femit-templates ++D ++-femit-templates Emit templates code and data even if the linker cannot merge multiple copies ++ ++fignore-unknown-pragmas ++D ++Ignore unsupported pragmas ++ ++fin ++D ++Generate runtime code for in() contracts ++ ++fintfc ++Generate D interface files ++ ++fintfc-dir= ++D Joined RejectNegative ++-fintfc-dir= Write D interface files to directory ++ ++fintfc-file= ++D Joined RejectNegative ++-fintfc-file= Write D interface file to ++ ++finvariants ++D ++Generate runtime code for invariant()'s ++ ++fmake-deps= ++D Joined RejectNegative ++-fmake-deps= Write dependency output to the given file ++ ++fmake-mdeps= ++D Joined RejectNegative ++Like -fmake-deps= but ignore system modules ++ ++femit-moduleinfo ++D ++Generate ModuleInfo struct for output module ++ ++fonly= ++D Joined RejectNegative ++Process all modules specified on the command line, but only generate code for the module specified by the argument ++ ++fout ++D ++Generate runtime code for out() contracts ++ ++fproperty ++D ++Enforce property syntax ++ ++frelease ++D ++Compile release version ++ ++fsplit-dynamic-arrays ++D Var(flag_split_darrays) ++Split dynamic arrays into length and pointer when passing to functions ++ ++funittest ++D ++Compile in unittest code ++ ++fversion= ++D Joined RejectNegative ++-fversion= Compile in version code >= or identified by ++ ++fXf= ++D Joined RejectNegative ++-fXf= Write JSON file to ++ ++imultilib ++D Joined Separate ++-imultilib Set to be the multilib include subdirectory ++ ++iprefix ++D Joined Separate ++-iprefix Specify as a prefix for next two options ++ ++isysroot ++D Joined Separate ++-isysroot Set to be the system root directory ++ ++isystem ++D Joined Separate ++-isystem Add to the start of the system include path ++ ++I ++D Joined Separate ++-I Add to the end of the main include path ++ ++J ++D Joined Separate ++-J Put MODULE files in 'directory' ++ ++nophoboslib ++Driver ++Do not link the standard D library in the compilation ++ ++nostdinc ++D ++Do not search standard system include directories (those specified with -isystem will still be used) ++ ++static-libphobos ++Driver ++Link the standard D library statically in the compilation ++ ++Wall ++D ++; Documented in c.opt ++ ++Wcast-result ++D Warning Var(warn_cast_result) ++Warn about casts that will produce a null or nil result ++ ++Wdeprecated ++D ++; Documented in c.opt ++ ++Werror ++D ++; Documented in common.opt ++ ++Wunknown-pragmas ++D ++; Documented in c.opt ++ --- gcc-7-7.5.0.orig/debian/patches/gcc-default-format-security.diff +++ gcc-7-7.5.0/debian/patches/gcc-default-format-security.diff @@ -0,0 +1,39 @@ +# DP: Turn on -Wformat -Wformat-security by default for C, C++, ObjC, ObjC++. + +Index: b/src/gcc/doc/invoke.texi +=================================================================== +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -4142,6 +4142,11 @@ value is used and that might result in t + sufficient length or magnitude. + @end table + ++NOTE: In Ubuntu 8.10 and later versions this option is enabled by default ++for C, C++, ObjC, ObjC++. To disable, use @option{-Wno-format-security}, ++or disable all format warnings with @option{-Wformat=0}. To make format ++security warnings fatal, specify @option{-Werror=format-security}. ++ + @item -Wformat-y2k + @opindex Wformat-y2k + @opindex Wno-format-y2k +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -876,11 +876,14 @@ proper position among the other output f + #define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G" + #endif + ++/* no separate spec, just shove it into the ssp default spec */ ++#define FORMAT_SECURITY_SPEC "%{!Wformat:%{!Wformat=2:%{!Wformat=0:%{!Wall:-Wformat} %{!Wno-format-security:-Wformat-security}}}}" ++ + #ifndef SSP_DEFAULT_SPEC + #if defined(TARGET_LIBC_PROVIDES_SSP) && !defined(ACCEL_COMPILER) +-#define SSP_DEFAULT_SPEC "%{!fno-stack-protector:%{!fstack-protector-all:%{!ffreestanding:%{!nostdlib:-fstack-protector}}}}" ++#define SSP_DEFAULT_SPEC "%{!fno-stack-protector:%{!fstack-protector-all:%{!ffreestanding:%{!nostdlib:-fstack-protector}}}} " FORMAT_SECURITY_SPEC + #else +-#define SSP_DEFAULT_SPEC "" ++#define SSP_DEFAULT_SPEC FORMAT_SECURITY_SPEC + #endif + #endif + --- gcc-7-7.5.0.orig/debian/patches/gcc-default-fortify-source.diff +++ gcc-7-7.5.0/debian/patches/gcc-default-fortify-source.diff @@ -0,0 +1,42 @@ +# DP: Turn on -D_FORTIFY_SOURCE=2 by default for C, C++, ObjC, ObjC++, +# DP: if the optimization level is > 0 + +--- + gcc/doc/invoke.texi | 6 ++++++ + gcc/c-family/c-cppbuiltin.c | 3 + + 2 files changed, 9 insertions(+), 0 deletions(-) + +Index: b/src/gcc/doc/invoke.texi +=================================================================== +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -7129,6 +7129,12 @@ also turns on the following optimization + Please note the warning under @option{-fgcse} about + invoking @option{-O2} on programs that use computed gotos. + ++NOTE: In Ubuntu 8.10 and later versions, @option{-D_FORTIFY_SOURCE=2} is ++set by default, and is activated when @option{-O} is set to 2 or higher. ++This enables additional compile-time and run-time checks for several libc ++functions. To disable, specify either @option{-U_FORTIFY_SOURCE} or ++@option{-D_FORTIFY_SOURCE=0}. ++ + @item -O3 + @opindex O3 + Optimize yet more. @option{-O3} turns on all optimizations specified +Index: b/src/gcc/c-family/c-cppbuiltin.c +=================================================================== +--- a/src/gcc/c-family/c-cppbuiltin.c ++++ b/src/gcc/c-family/c-cppbuiltin.c +@@ -1337,6 +1337,12 @@ c_cpp_builtins (cpp_reader *pfile) + builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0); + builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0); + ++#if !defined(ACCEL_COMPILER) ++ /* Fortify Source enabled by default for optimization levels > 0 */ ++ if (optimize) ++ builtin_define_with_int_value ("_FORTIFY_SOURCE", 2); ++#endif ++ + /* Misc. */ + if (flag_gnu89_inline) + cpp_define (pfile, "__GNUC_GNU_INLINE__"); --- gcc-7-7.5.0.orig/debian/patches/gcc-default-relro.diff +++ gcc-7-7.5.0/debian/patches/gcc-default-relro.diff @@ -0,0 +1,45 @@ +# DP: Turn on -Wl,-z,relro by default. + +--- + gcc/doc/invoke.texi | 3 +++ + gcc/gcc.c | 1 + + 2 files changed, 4 insertions(+), 0 deletions(-) + +Index: b/src/gcc/doc/invoke.texi +=================================================================== +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -11859,6 +11859,9 @@ For example, @option{-Wl,-Map,output.map + linker. When using the GNU linker, you can also get the same effect with + @option{-Wl,-Map=output.map}. + ++NOTE: In Ubuntu 8.10 and later versions, for LDFLAGS, the option ++@option{-Wl,-z,relro} is used. To disable, use @option{-Wl,-z,norelro}. ++ + @item -u @var{symbol} + @opindex u + Pretend the symbol @var{symbol} is undefined, to force linking of +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -1046,6 +1046,11 @@ proper position among the other output f + /* We pass any -flto flags on to the linker, which is expected + to understand them. In practice, this means it had better be collect2. */ + /* %{e*} includes -export-dynamic; see comment in common.opt. */ ++#if defined(ACCEL_COMPILER) ++# define RELRO_SPEC "" ++#else ++# define RELRO_SPEC "-z relro " ++#endif + #ifndef LINK_COMMAND_SPEC + #define LINK_COMMAND_SPEC "\ + %{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ +@@ -1054,6 +1059,7 @@ proper position among the other output f + "%{flto|flto=*:% + + * gcc.c (offload_targets_default): New variable. + (process_command): Set it if -foffload is defaulted. + (driver::maybe_putenv_OFFLOAD_TARGETS): Add OFFLOAD_TARGET_DEFAULT=1 + into environment if -foffload has been defaulted. + * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define. + (compile_images_for_offload_targets): If OFFLOAD_TARGET_DEFAULT + is in the environment, don't fail if corresponding mkoffload + can't be found. Free and clear offload_names if no valid offload + is found. +libgomp/ + * target.c (gomp_load_plugin_for_device): If a plugin can't be + dlopened, assume it has no devices silently. + +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -290,6 +290,10 @@ static const char *spec_host_machine = D + + static char *offload_targets = NULL; + ++/* Set to true if -foffload has not been used and offload_targets ++ is set to the configured in default. */ ++static bool offload_targets_default; ++ + /* Nonzero if cross-compiling. + When -b is used, the value comes from the `specs' file. */ + +@@ -4458,7 +4462,10 @@ process_command (unsigned int decoded_op + /* If the user didn't specify any, default to all configured offload + targets. */ + if (ENABLE_OFFLOADING && offload_targets == NULL) +- handle_foffload_option (OFFLOAD_TARGETS); ++ { ++ handle_foffload_option (OFFLOAD_TARGETS); ++ offload_targets_default = true; ++ } + + if (output_file + && strcmp (output_file, "-") != 0 +@@ -7697,6 +7704,8 @@ driver::maybe_putenv_OFFLOAD_TARGETS () + obstack_grow (&collect_obstack, offload_targets, + strlen (offload_targets) + 1); + xputenv (XOBFINISH (&collect_obstack, char *)); ++ if (offload_targets_default) ++ xputenv ("OFFLOAD_TARGET_DEFAULT=1"); + } + + free (offload_targets); +Index: b/src/gcc/lto-wrapper.c +=================================================================== +--- a/src/gcc/lto-wrapper.c ++++ b/src/gcc/lto-wrapper.c +@@ -52,6 +52,7 @@ along with GCC; see the file COPYING3. + /* Environment variable, used for passing the names of offload targets from GCC + driver to lto-wrapper. */ + #define OFFLOAD_TARGET_NAMES_ENV "OFFLOAD_TARGET_NAMES" ++#define OFFLOAD_TARGET_DEFAULT_ENV "OFFLOAD_TARGET_DEFAULT" + + enum lto_mode_d { + LTO_MODE_NONE, /* Not doing LTO. */ +@@ -790,8 +791,10 @@ compile_images_for_offload_targets (unsi + if (!target_names) + return; + unsigned num_targets = parse_env_var (target_names, &names, NULL); ++ const char *target_names_default = getenv (OFFLOAD_TARGET_DEFAULT_ENV); + + int next_name_entry = 0; ++ bool hsa_seen = false; + const char *compiler_path = getenv ("COMPILER_PATH"); + if (!compiler_path) + goto out; +@@ -804,18 +807,32 @@ compile_images_for_offload_targets (unsi + /* HSA does not use LTO-like streaming and a different compiler, skip + it. */ + if (strcmp (names[i], "hsa") == 0) +- continue; ++ { ++ hsa_seen = true; ++ continue; ++ } + + offload_names[next_name_entry] + = compile_offload_image (names[i], compiler_path, in_argc, in_argv, + compiler_opts, compiler_opt_count, + linker_opts, linker_opt_count); + if (!offload_names[next_name_entry]) +- fatal_error (input_location, +- "problem with building target image for %s\n", names[i]); ++ { ++ if (target_names_default != NULL) ++ continue; ++ fatal_error (input_location, ++ "problem with building target image for %s\n", ++ names[i]); ++ } + next_name_entry++; + } + ++ if (next_name_entry == 0 && !hsa_seen) ++ { ++ free (offload_names); ++ offload_names = NULL; ++ } ++ + out: + free_array_of_ptrs ((void **) names, num_targets); + } +Index: b/src/libgomp/target.c +=================================================================== +--- a/src/libgomp/target.c ++++ b/src/libgomp/target.c +@@ -2356,7 +2356,7 @@ gomp_load_plugin_for_device (struct gomp + + void *plugin_handle = dlopen (plugin_name, RTLD_LAZY); + if (!plugin_handle) +- goto dl_fail; ++ return 0; + + /* Check if all required functions are available in the plugin and store + their handlers. None of the symbols can legitimately be NULL, --- gcc-7-7.5.0.orig/debian/patches/gcc-force-cross-layout.diff +++ gcc-7-7.5.0/debian/patches/gcc-force-cross-layout.diff @@ -0,0 +1,51 @@ +# DP: Add FORCE_CROSS_LAYOUT env var to force a cross directory layout. + +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -3016,7 +3016,7 @@ + # native. However, it would be better to use other mechanisms to make the + # sorts of decisions they want to make on this basis. Please consider + # this option to be deprecated. FIXME. +-if test x${is_cross_compiler} = xyes ; then ++if test x${is_cross_compiler} = xyes || test x${FORCE_CROSS_LAYOUT} = xyes; then + target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}" + fi + +--- a/src/gcc/configure.ac ++++ b/src/gcc/configure.ac +@@ -2008,7 +2008,7 @@ + build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)' + fi + +-if test x$host != x$target ++if test x$host != x$target || test x$FORCE_CROSS_LAYOUT = xyes + then + CROSS="-DCROSS_DIRECTORY_STRUCTURE" + ALL=all.cross +@@ -2026,7 +2026,7 @@ + SYSTEM_HEADER_DIR=$build_system_header_dir + fi + +-if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then ++if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x || test x$FORCE_CROSS_LAYOUT = xyes; then + if test "x$with_headers" != x && test "x$with_headers" != xyes; then + target_header_dir=$with_headers + elif test "x$with_sysroot" = x; then +@@ -6193,7 +6193,7 @@ + + # Echo link setup. + if test x${build} = x${host} ; then +- if test x${host} = x${target} ; then ++ if test x${host} = x${target} && test x$FORCE_CROSS_LAYOUT != xyes ; then + echo "Links are now set up to build a native compiler for ${target}." 1>&2 + else + echo "Links are now set up to build a cross-compiler" 1>&2 +@@ -6200,7 +6200,7 @@ + echo " from ${host} to ${target}." 1>&2 + fi + else +- if test x${host} = x${target} ; then ++ if test x${host} = x${target} && test x$FORCE_CROSS_LAYOUT != xyes ; then + echo "Links are now set up to build (on ${build}) a native compiler" 1>&2 + echo " for ${target}." 1>&2 + else --- gcc-7-7.5.0.orig/debian/patches/gcc-fuse-ld-lld-doc.diff +++ gcc-7-7.5.0/debian/patches/gcc-fuse-ld-lld-doc.diff @@ -0,0 +1,17 @@ +# DP: Allow to use lld with -fuse-ld=ld.lld (documentation) + +Index: b/src/gcc/doc/invoke.texi +=================================================================== +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -11533,6 +11533,10 @@ Use the @command{bfd} linker instead of + @opindex fuse-ld=gold + Use the @command{gold} linker instead of the default linker. + ++@item -fuse-ld=lld ++@opindex fuse-ld=lld ++Use the LLVM @command{lld} linker instead of the default linker. ++ + @cindex Libraries + @item -l@var{library} + @itemx -l @var{library} --- gcc-7-7.5.0.orig/debian/patches/gcc-fuse-ld-lld.diff +++ gcc-7-7.5.0/debian/patches/gcc-fuse-ld-lld.diff @@ -0,0 +1,77 @@ +# DP: Allow to use lld with -fuse-ld=ld.lld + +--- a/src/gcc/collect2.c ++++ b/src/gcc/collect2.c +@@ -831,6 +831,7 @@ main (int argc, char **argv) + USE_PLUGIN_LD, + USE_GOLD_LD, + USE_BFD_LD, ++ USE_LLD_LD, + USE_LD_MAX + } selected_linker = USE_DEFAULT_LD; + static const char *const ld_suffixes[USE_LD_MAX] = +@@ -838,7 +839,8 @@ main (int argc, char **argv) + "ld", + PLUGIN_LD_SUFFIX, + "ld.gold", +- "ld.bfd" ++ "ld.bfd", ++ "ld.lld" + }; + static const char *const real_ld_suffix = "real-ld"; + static const char *const collect_ld_suffix = "collect-ld"; +@@ -1007,6 +1009,8 @@ main (int argc, char **argv) + selected_linker = USE_BFD_LD; + else if (strcmp (argv[i], "-fuse-ld=gold") == 0) + selected_linker = USE_GOLD_LD; ++ else if (strcmp (argv[i], "-fuse-ld=lld") == 0) ++ selected_linker = USE_LLD_LD; + + #ifdef COLLECT_EXPORT_LIST + /* These flags are position independent, although their order +@@ -1096,7 +1100,8 @@ main (int argc, char **argv) + /* Maybe we know the right file to use (if not cross). */ + ld_file_name = 0; + #ifdef DEFAULT_LINKER +- if (selected_linker == USE_BFD_LD || selected_linker == USE_GOLD_LD) ++ if (selected_linker == USE_BFD_LD || selected_linker == USE_GOLD_LD || ++ selected_linker == USE_LLD_LD) + { + char *linker_name; + # ifdef HOST_EXECUTABLE_SUFFIX +@@ -1315,7 +1320,7 @@ main (int argc, char **argv) + else if (!use_collect_ld + && strncmp (arg, "-fuse-ld=", 9) == 0) + { +- /* Do not pass -fuse-ld={bfd|gold} to the linker. */ ++ /* Do not pass -fuse-ld={bfd|gold|lld} to the linker. */ + ld1--; + ld2--; + } +--- a/src/gcc/common.opt ++++ b/src/gcc/common.opt +@@ -2635,9 +2635,13 @@ Common Driver Negative(fuse-ld=gold) + Use the bfd linker instead of the default linker. + + fuse-ld=gold +-Common Driver Negative(fuse-ld=bfd) ++Common Driver Negative(fuse-ld=lld) + Use the gold linker instead of the default linker. + ++fuse-ld=lld ++Common Driver Negative(fuse-ld=bfd) ++Use the lld LLVM linker instead of the default linker. ++ + fuse-linker-plugin + Common Undocumented Var(flag_use_linker_plugin) + +--- a/src/gcc/opts.c ++++ b/src/gcc/opts.c +@@ -2357,6 +2357,7 @@ common_handle_option (struct gcc_options + + case OPT_fuse_ld_bfd: + case OPT_fuse_ld_gold: ++ case OPT_fuse_ld_lld: + case OPT_fuse_linker_plugin: + /* No-op. Used by the driver and passed to us because it starts with f.*/ + break; --- gcc-7-7.5.0.orig/debian/patches/gcc-gfdl-build.diff +++ gcc-7-7.5.0/debian/patches/gcc-gfdl-build.diff @@ -0,0 +1,39 @@ +# DP: Build a dummy s-tm-texi without access to the texinfo sources + +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -2406,30 +2406,8 @@ s-tm-texi: $(srcdir)/doc/../doc/tm.texi + # \r is not portable to Solaris tr, therefore we have a special + # case for ASCII. We use \r for other encodings like EBCDIC. + s-tm-texi: build/genhooks$(build_exeext) $(srcdir)/doc/tm.texi.in +- $(RUN_GEN) build/genhooks$(build_exeext) -d \ +- $(srcdir)/doc/tm.texi.in > tmp-tm.texi +- case `echo X|tr X '\101'` in \ +- A) tr -d '\015' < tmp-tm.texi > tmp2-tm.texi ;; \ +- *) tr -d '\r' < tmp-tm.texi > tmp2-tm.texi ;; \ +- esac +- mv tmp2-tm.texi tmp-tm.texi +- $(SHELL) $(srcdir)/../move-if-change tmp-tm.texi tm.texi +- @if cmp -s $(srcdir)/doc/tm.texi tm.texi; then \ +- $(STAMP) $@; \ +- elif test $(srcdir)/doc/tm.texi -nt $(srcdir)/doc/tm.texi.in \ +- && ( test $(srcdir)/doc/tm.texi -nt $(srcdir)/target.def \ +- || test $(srcdir)/doc/tm.texi -nt $(srcdir)/c-family/c-target.def \ +- || test $(srcdir)/doc/tm.texi -nt $(srcdir)/common/common-target.def \ +- ); then \ +- echo >&2 ; \ +- echo You should edit $(srcdir)/doc/tm.texi.in rather than $(srcdir)/doc/tm.texi . >&2 ; \ +- false; \ +- else \ +- echo >&2 ; \ +- echo Verify that you have permission to grant a GFDL license for all >&2 ; \ +- echo new text in tm.texi, then copy it to $(srcdir)/doc/tm.texi. >&2 ; \ +- false; \ +- fi ++ cat $(srcdir)/doc/tm.texi.in > tmp-tm.texi ++ $(STAMP) $@ + + gimple-match.c: s-match gimple-match-head.c ; @true + generic-match.c: s-match generic-match-head.c ; @true --- gcc-7-7.5.0.orig/debian/patches/gcc-hash-style-both.diff +++ gcc-7-7.5.0/debian/patches/gcc-hash-style-both.diff @@ -0,0 +1,183 @@ +# DP: Link using --hash-style=both (alpha, amd64, armel, armhf, ia64, i386, powerpc, ppc64, riscv64, s390, sparc) + +2006-07-11 Jakub Jelinek + + * config/i386/linux.h (LINK_SPEC): Add --hash-style=both. + * config/i386/linux64.h (LINK_SPEC): Likewise. + * config/rs6000/sysv4.h (LINK_OS_LINUX_SPEC): Likewise. + * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32, + LINK_OS_LINUX_SPEC64): Likewise. + * config/s390/linux.h (LINK_SPEC): Likewise. + * config/ia64/linux.h (LINK_SPEC): Likewise. + * config/sparc/linux.h (LINK_SPEC): Likewise. + * config/sparc/linux64.h (LINK_SPEC, LINK_ARCH32_SPEC, + LINK_ARCH64_SPEC): Likewise. + * config/alpha/linux-elf.h (LINK_SPEC): Likewise. + +2009-12-21 Matthias Klose + + * config/arm/linux-elf.h (LINK_SPEC): Add --hash-style=both. + +2012-11-17 Matthias Klose + + * config/aarch64/aarch64-linux.h (LINK_SPEC): Add --hash-style=both. + +2018-03-02 Aurelien Jarno + + * config/riscv/linux.h (LINK_SPEC): Add --hash-style=both. + +--- + gcc/config/alpha/linux-elf.h | 2 +- + gcc/config/i386/linux.h | 2 +- + gcc/config/i386/linux64.h | 2 +- + gcc/config/ia64/linux.h | 2 +- + gcc/config/rs6000/linux64.h | 4 ++-- + gcc/config/rs6000/sysv4.h | 2 +- + gcc/config/s390/linux.h | 2 +- + gcc/config/sparc/linux.h | 2 +- + 8 files changed, 9 insertions(+), 9 deletions(-) + +Index: b/src/gcc/config/alpha/linux-elf.h +=================================================================== +--- a/src/gcc/config/alpha/linux-elf.h ++++ b/src/gcc/config/alpha/linux-elf.h +@@ -37,7 +37,7 @@ + + #define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER + +-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ ++#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \ + %{O*:-O3} %{!O*:-O1} \ + %{shared:-shared} \ + %{!shared: \ +Index: b/src/gcc/config/ia64/linux.h +=================================================================== +--- a/src/gcc/config/ia64/linux.h ++++ b/src/gcc/config/ia64/linux.h +@@ -58,7 +58,7 @@ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "\ ++#define LINK_SPEC " --hash-style=both \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/rs6000/linux64.h +=================================================================== +--- a/src/gcc/config/rs6000/linux64.h ++++ b/src/gcc/config/rs6000/linux64.h +@@ -385,11 +385,11 @@ + " -m elf64ppc") + #endif + +-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --hash-style=both %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}}" + +-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --hash-style=both %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}" + +Index: b/src/gcc/config/rs6000/sysv4.h +=================================================================== +--- a/src/gcc/config/rs6000/sysv4.h ++++ b/src/gcc/config/rs6000/sysv4.h +@@ -788,7 +788,7 @@ + #define GNU_USER_DYNAMIC_LINKER \ + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER) + +-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" + +Index: b/src/gcc/config/s390/linux.h +=================================================================== +--- a/src/gcc/config/s390/linux.h ++++ b/src/gcc/config/s390/linux.h +@@ -65,7 +65,7 @@ + + #undef LINK_SPEC + #define LINK_SPEC \ +- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ ++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \ + %{shared:-shared} \ + %{!shared: \ + %{static:-static} \ +Index: b/src/gcc/config/sparc/linux.h +=================================================================== +--- a/src/gcc/config/sparc/linux.h ++++ b/src/gcc/config/sparc/linux.h +@@ -86,7 +86,7 @@ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \ ++#define LINK_SPEC "-m elf32_sparc --hash-style=both %{shared:-shared} \ + %{!mno-relax:%{!r:-relax}} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/arm/linux-elf.h +=================================================================== +--- a/src/gcc/config/arm/linux-elf.h ++++ b/src/gcc/config/arm/linux-elf.h +@@ -67,6 +67,7 @@ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER "} \ + -X \ ++ --hash-style=both \ + %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ + SUBTARGET_EXTRA_LINK_SPEC + +Index: b/src/gcc/config/i386/gnu-user.h +=================================================================== +--- a/src/gcc/config/i386/gnu-user.h ++++ b/src/gcc/config/i386/gnu-user.h +@@ -74,7 +74,7 @@ + { "link_emulation", GNU_USER_LINK_EMULATION },\ + { "dynamic_linker", GNU_USER_DYNAMIC_LINKER } + +-#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) %{shared:-shared} \ ++#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +Index: b/src/gcc/config/i386/gnu-user64.h +=================================================================== +--- a/src/gcc/config/i386/gnu-user64.h ++++ b/src/gcc/config/i386/gnu-user64.h +@@ -56,6 +56,7 @@ + "%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \ + %{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \ + %{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \ ++ --hash-style=both \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/aarch64/aarch64-linux.h +=================================================================== +--- a/src/gcc/config/aarch64/aarch64-linux.h ++++ b/src/gcc/config/aarch64/aarch64-linux.h +@@ -24,6 +24,7 @@ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64.so.1" + + #define LINUX_TARGET_LINK_SPEC "%{h*} \ ++ --hash-style=both \ + %{static:-Bstatic} \ + %{shared:-shared} \ + %{symbolic:-Bsymbolic} \ +Index: b/src/gcc/config/riscv/linux.h +=================================================================== +--- a/src/gcc/config/riscv/linux.h ++++ b/src/gcc/config/riscv/linux.h +@@ -50,6 +50,7 @@ + #define CPP_SPEC "%{pthread:-D_REENTRANT}" + + #define LINK_SPEC "\ ++-hash-style=both \ + -melf" XLEN_SPEC "lriscv \ + %{shared} \ + {!shared: \ --- gcc-7-7.5.0.orig/debian/patches/gcc-hash-style-gnu.diff +++ gcc-7-7.5.0/debian/patches/gcc-hash-style-gnu.diff @@ -0,0 +1,185 @@ +# DP: Link using --hash-style=gnu (aarch64, alpha, amd64, armel, armhf, ia64, +# DP: i386, powerpc, ppc64, riscv64, s390, sparc) + +2006-07-11 Jakub Jelinek + + * config/i386/linux.h (LINK_SPEC): Add --hash-style=gnu. + * config/i386/linux64.h (LINK_SPEC): Likewise. + * config/rs6000/sysv4.h (LINK_OS_LINUX_SPEC): Likewise. + * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32, + LINK_OS_LINUX_SPEC64): Likewise. + * config/s390/linux.h (LINK_SPEC): Likewise. + * config/ia64/linux.h (LINK_SPEC): Likewise. + * config/sparc/linux.h (LINK_SPEC): Likewise. + * config/sparc/linux64.h (LINK_SPEC, LINK_ARCH32_SPEC, + LINK_ARCH64_SPEC): Likewise. + * config/alpha/linux-elf.h (LINK_SPEC): Likewise. + +2009-12-21 Matthias Klose + + * config/arm/linux-elf.h (LINK_SPEC): Add --hash-style=gnu. + +2012-11-17 Matthias Klose + + * config/aarch64/aarch64-linux.h (LINK_SPEC): Add --hash-style=gnu. + +2018-03-02 Aurelien Jarno + + * config/riscv/linux.h (LINK_SPEC): Add --hash-style=gnu. + +--- + gcc/config/alpha/linux-elf.h | 2 +- + gcc/config/i386/linux.h | 2 +- + gcc/config/i386/linux64.h | 2 +- + gcc/config/ia64/linux.h | 2 +- + gcc/config/rs6000/linux64.h | 4 ++-- + gcc/config/rs6000/sysv4.h | 2 +- + gcc/config/s390/linux.h | 2 +- + gcc/config/sparc/linux.h | 2 +- + 8 files changed, 9 insertions(+), 9 deletions(-) + +Index: b/src/gcc/config/alpha/linux-elf.h +=================================================================== +--- a/src/gcc/config/alpha/linux-elf.h ++++ b/src/gcc/config/alpha/linux-elf.h +@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. + + #define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER + +-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ ++#define LINK_SPEC "-m elf64alpha --hash-style=gnu %{G*} %{relax:-relax} \ + %{O*:-O3} %{!O*:-O1} \ + %{shared:-shared} \ + %{!shared: \ +Index: b/src/gcc/config/ia64/linux.h +=================================================================== +--- a/src/gcc/config/ia64/linux.h ++++ b/src/gcc/config/ia64/linux.h +@@ -58,7 +58,7 @@ do { \ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "\ ++#define LINK_SPEC " --hash-style=gnu \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/rs6000/linux64.h +=================================================================== +--- a/src/gcc/config/rs6000/linux64.h ++++ b/src/gcc/config/rs6000/linux64.h +@@ -469,12 +469,12 @@ extern int dot_symbols; + " -m elf64ppc") + #endif + +-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --hash-style=gnu %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}} \ + %(link_os_extra_spec32)" + +-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --hash-style=gnu %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}} \ + %(link_os_extra_spec64)" +Index: b/src/gcc/config/rs6000/sysv4.h +=================================================================== +--- a/src/gcc/config/rs6000/sysv4.h ++++ b/src/gcc/config/rs6000/sysv4.h +@@ -810,7 +810,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ + MUSL_DYNAMIC_LINKER) + +-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=gnu %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" + +Index: b/src/gcc/config/s390/linux.h +=================================================================== +--- a/src/gcc/config/s390/linux.h ++++ b/src/gcc/config/s390/linux.h +@@ -78,7 +78,7 @@ along with GCC; see the file COPYING3. + + #undef LINK_SPEC + #define LINK_SPEC \ +- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ ++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=gnu \ + %{shared:-shared} \ + %{!shared: \ + %{static:-static} \ +Index: b/src/gcc/config/sparc/linux.h +=================================================================== +--- a/src/gcc/config/sparc/linux.h ++++ b/src/gcc/config/sparc/linux.h +@@ -86,7 +86,7 @@ extern const char *host_detect_local_cpu + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \ ++#define LINK_SPEC "-m elf32_sparc --hash-style=gnu %{shared:-shared} \ + %{!mno-relax:%{!r:-relax}} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/arm/linux-elf.h +=================================================================== +--- a/src/gcc/config/arm/linux-elf.h ++++ b/src/gcc/config/arm/linux-elf.h +@@ -70,6 +70,7 @@ + %{rdynamic:-export-dynamic} \ + %{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \ + -X \ ++ --hash-style=gnu \ + %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ + SUBTARGET_EXTRA_LINK_SPEC + +Index: b/src/gcc/config/i386/gnu-user.h +=================================================================== +--- a/src/gcc/config/i386/gnu-user.h ++++ b/src/gcc/config/i386/gnu-user.h +@@ -74,7 +74,7 @@ along with GCC; see the file COPYING3. + { "link_emulation", GNU_USER_LINK_EMULATION },\ + { "dynamic_linker", GNU_USER_DYNAMIC_LINKER } + +-#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) %{shared:-shared} \ ++#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --hash-style=gnu %{shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +Index: b/src/gcc/config/i386/gnu-user64.h +=================================================================== +--- a/src/gcc/config/i386/gnu-user64.h ++++ b/src/gcc/config/i386/gnu-user64.h +@@ -56,6 +56,7 @@ see the files COPYING3 and COPYING.RUNTI + "%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \ + %{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \ + %{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \ ++ --hash-style=gnu \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/aarch64/aarch64-linux.h +=================================================================== +--- a/src/gcc/config/aarch64/aarch64-linux.h ++++ b/src/gcc/config/aarch64/aarch64-linux.h +@@ -35,6 +35,7 @@ + #define CPP_SPEC "%{pthread:-D_REENTRANT}" + + #define LINUX_TARGET_LINK_SPEC "%{h*} \ ++ --hash-style=gnu \ + %{static:-Bstatic} \ + %{shared:-shared} \ + %{symbolic:-Bsymbolic} \ +Index: b/src/gcc/config/riscv/linux.h +=================================================================== +--- a/src/gcc/config/riscv/linux.h ++++ b/src/gcc/config/riscv/linux.h +@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. + #define ICACHE_FLUSH_FUNC "__riscv_flush_icache" + + #define LINK_SPEC "\ ++-hash-style=gnu \ + -melf" XLEN_SPEC "lriscv \ + %{shared} \ + %{!shared: \ --- gcc-7-7.5.0.orig/debian/patches/gcc-hppa-caller-copies-ABI.diff +++ gcc-7-7.5.0/debian/patches/gcc-hppa-caller-copies-ABI.diff @@ -0,0 +1,18 @@ +# DP: Switch hppa-linux to caller copies ABI (as done in GCC 8). + +2018-01-16 John David Anglin + + * config.gcc (hppa*-*-linux*): Change callee copies ABI to caller + copies. + +--- a/src/gcc/config.gcc ++++ b/src/gcc/config.gcc +@@ -1307,7 +1307,7 @@ hppa*64*-*-linux*) + gas=yes gnu_ld=yes + ;; + hppa*-*-linux*) +- target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS" ++ target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES" + tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \ + pa/pa32-regs.h pa/pa32-linux.h" + tmake_file="${tmake_file} pa/t-linux" --- gcc-7-7.5.0.orig/debian/patches/gcc-ice-apport.diff +++ gcc-7-7.5.0/debian/patches/gcc-ice-apport.diff @@ -0,0 +1,22 @@ +# DP: Report an ICE to apport (if apport is available +# DP: and the environment variable GCC_NOAPPORT is not set) + +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -6903,6 +6903,16 @@ do_report_bug (const char **new_argv, co + fflush(stderr); + free(cmd); + } ++ if (!env.get ("GCC_NOAPPORT") ++ && !access ("/usr/share/apport/gcc_ice_hook", R_OK | X_OK)) ++ { ++ char *cmd = XNEWVEC (char, 50 + strlen (*out_file) ++ + strlen (new_argv[0])); ++ sprintf (cmd, "/usr/share/apport/gcc_ice_hook %s %s", ++ new_argv[0], *out_file); ++ system (cmd); ++ free (cmd); ++ } + /* Make sure it is not deleted. */ + free (*out_file); + *out_file = NULL; --- gcc-7-7.5.0.orig/debian/patches/gcc-ice-dump.diff +++ gcc-7-7.5.0/debian/patches/gcc-ice-dump.diff @@ -0,0 +1,39 @@ +# DP: For ICEs, dump the preprocessed source file to stderr +# DP: when in a distro build environment. + +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -3163,7 +3163,8 @@ execute (void) + /* For ICEs in cc1, cc1obj, cc1plus see if it is + reproducible or not. */ + const char *p; +- if (flag_report_bug ++ const char *deb_build_options = env.get("DEB_BUILD_OPTIONS"); ++ if ((flag_report_bug || deb_build_options) + && WEXITSTATUS (status) == ICE_EXIT_CODE + && i == 0 + && (p = strrchr (commands[0].argv[0], DIR_SEPARATOR)) +@@ -6885,8 +6886,23 @@ do_report_bug (const char **new_argv, co + + if (status == ATTEMPT_STATUS_SUCCESS) + { ++ const char *deb_build_options = env.get("DEB_BUILD_OPTIONS"); ++ + fnotice (stderr, "Preprocessed source stored into %s file," + " please attach this to your bugreport.\n", *out_file); ++ if (deb_build_options) ++ { ++ char *cmd = XNEWVEC (char, 50 + strlen (*out_file)); ++ ++ sprintf(cmd, "/usr/bin/awk '{print \"%d:\", $0}' %s >&2", getpid(), *out_file); ++ fprintf(stderr, "=== BEGIN GCC DUMP ===\n"); ++ fflush(stderr); ++ system(cmd); ++ fflush(stderr); ++ fprintf(stderr, "=== END GCC DUMP ===\n"); ++ fflush(stderr); ++ free(cmd); ++ } + /* Make sure it is not deleted. */ + free (*out_file); + *out_file = NULL; --- gcc-7-7.5.0.orig/debian/patches/gcc-linaro-doc.diff +++ gcc-7-7.5.0/debian/patches/gcc-linaro-doc.diff @@ -0,0 +1,180 @@ +# DP: Changes for the Linaro 7-2019.01 snapshot (documentation). + +--- a/src/gcc/doc/install.texi ++++ b/src/gcc/doc/install.texi +@@ -1097,14 +1097,18 @@ for each target is given below. + + @table @code + @item arm*-*-* +-@var{list} is one of@code{default}, @code{aprofile} or @code{rmprofile}. +-Specifying @code{default} is equivalent to omitting this option, ie. only the +-default runtime library will be enabled. Specifying @code{aprofile} or +-@code{rmprofile} builds multilibs for a combination of ISA, architecture, +-FPU available and floating-point ABI. ++@var{list} is a comma separated list of @code{aprofile} and @code{rmprofile} ++to build multilibs for A or R and M architecture profiles respectively. Note ++that, due to some limitation of the current multilib framework, using the ++combined @code{aprofile,rmprofile} multilibs selects in some cases a less ++optimal multilib than when using the multilib profile for the architecture ++targetted. The special value @code{default} is also accepted and is equivalent ++to omitting the option, ie. only the default run-time library will be enabled. + + The table below gives the combination of ISAs, architectures, FPUs and + floating-point ABIs for which multilibs are built for each accepted value. ++The union of these options is considered when specifying both @code{aprofile} ++and @code{rmprofile}. + + @multitable @columnfractions .15 .28 .30 + @item Option @tab aprofile @tab rmprofile +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -580,15 +580,14 @@ Objective-C and Objective-C++ Dialects}. + -mgeneral-regs-only @gol + -mcmodel=tiny -mcmodel=small -mcmodel=large @gol + -mstrict-align @gol +--momit-leaf-frame-pointer -mno-omit-leaf-frame-pointer @gol ++-momit-leaf-frame-pointer @gol + -mtls-dialect=desc -mtls-dialect=traditional @gol + -mtls-size=@var{size} @gol +--mfix-cortex-a53-835769 -mno-fix-cortex-a53-835769 @gol +--mfix-cortex-a53-843419 -mno-fix-cortex-a53-843419 @gol +--mlow-precision-recip-sqrt -mno-low-precision-recip-sqrt@gol +--mlow-precision-sqrt -mno-low-precision-sqrt@gol +--mlow-precision-div -mno-low-precision-div @gol +--march=@var{name} -mcpu=@var{name} -mtune=@var{name}} ++-mfix-cortex-a53-835769 -mfix-cortex-a53-843419 @gol ++-mlow-precision-recip-sqrt -mlow-precision-sqrt -mlow-precision-div @gol ++-mpc-relative-literal-loads @gol ++-msign-return-address=@var{scope} @gol ++-march=@var{name} -mcpu=@var{name} -mtune=@var{name} -moverride=@var{string}} + + @emph{Adapteva Epiphany Options} + @gccoptlist{-mhalf-reg-file -mprefer-short-insn-regs @gol +@@ -13969,7 +13968,7 @@ support for the ARMv8.2-A architecture extensions. + + The value @samp{armv8.1-a} implies @samp{armv8-a} and enables compiler + support for the ARMv8.1-A architecture extension. In particular, it +-enables the @samp{+crc} and @samp{+lse} features. ++enables the @samp{+crc}, @samp{+lse}, and @samp{+rdma} features. + + The value @samp{native} is available on native AArch64 GNU/Linux and + causes the compiler to pick the architecture of the host system. This +@@ -14042,8 +14041,10 @@ across releases. + This option is only intended to be useful when developing GCC. + + @item -mpc-relative-literal-loads ++@itemx -mno-pc-relative-literal-loads + @opindex mpc-relative-literal-loads +-Enable PC-relative literal loads. With this option literal pools are ++@opindex mno-pc-relative-literal-loads ++Enable or disable PC-relative literal loads. With this option literal pools are + accessed using a single instruction and emitted after each function. This + limits the maximum size of functions to 1MB. This is enabled by default for + @option{-mcmodel=tiny}. +@@ -14082,8 +14083,17 @@ instructions. This is on by default for all possible values for options + @item lse + Enable Large System Extension instructions. This is on by default for + @option{-march=armv8.1-a}. ++@item rdma ++Enable Round Double Multiply Accumulate instructions. This is on by default ++for @option{-march=armv8.1-a}. + @item fp16 + Enable FP16 extension. This also enables floating-point instructions. ++@item rcpc ++Enable the RcPc extension. This does not change code generation from GCC, ++but is passed on to the assembler, enabling inline asm statements to use ++instructions from the RcPc extension. ++@item dotprod ++Enable the Dot Product extension. This also enables Advanced SIMD instructions. + + @end table + +@@ -15097,6 +15107,15 @@ ARMv8.2-A architecture with the optional FP16 instructions extension. + This also enables the features provided by @option{-march=armv8.1-a} + and implies @option{-mfp16-format=ieee}. + ++@option{-march=armv8.2-a+dotprod} enables compiler support for the ++ARMv8.2-A architecture with the optional Dot Product instructions extension. ++This also enables the features provided by @option{-march=armv8.1-a}. ++ ++@option{-march=armv8.2-a+fp16+dotprod} enables compiler support for the ++ARMv8.2-A architecture with the optional FP16 and Dot Product instructions ++extension. This also enables the features provided by @option{-march=armv8.1-a} ++and implies @option{-mfp16-format=ieee}. ++ + @option{-march=native} causes the compiler to auto-detect the architecture + of the build computer. At present, this feature is only supported on + GNU/Linux, and not all architectures are recognized. If the auto-detect +--- a/src/gcc/doc/sourcebuild.texi ++++ b/src/gcc/doc/sourcebuild.texi +@@ -1666,6 +1666,17 @@ ARM target supports executing instructions from ARMv8.2 with the FP16 + extension. Some multilibs may be incompatible with these options. + Implies arm_v8_2a_fp16_neon_ok and arm_v8_2a_fp16_scalar_hw. + ++@item arm_v8_2a_dotprod_neon_ok ++@anchor{arm_v8_2a_dotprod_neon_ok} ++ARM target supports options to generate instructions from ARMv8.2 with ++the Dot Product extension. Some multilibs may be incompatible with these ++options. ++ ++@item arm_v8_2a_dotprod_neon_hw ++ARM target supports executing instructions from ARMv8.2 with the Dot ++Product extension. Some multilibs may be incompatible with these options. ++Implies arm_v8_2a_dotprod_neon_ok. ++ + @item arm_prefer_ldrd_strd + ARM target prefers @code{LDRD} and @code{STRD} instructions over + @code{LDM} and @code{STM} instructions. +@@ -2241,6 +2252,11 @@ supported by the target; see the + @ref{arm_v8_2a_fp16_neon_ok,,arm_v8_2a_fp16_neon_ok} effective target + keyword. + ++@item arm_v8_2a_dotprod_neon ++Add options for ARMv8.2 with Adv.SIMD Dot Product support, if this is ++supported by the target; see the ++@ref{arm_v8_2a_dotprod_neon_ok} effective target keyword. ++ + @item bind_pic_locally + Add the target-specific flags needed to enable functions to bind + locally when using pic/PIC passes in the testsuite. +@@ -2280,6 +2296,11 @@ the codeset to convert to. + Skip the test if the target does not support profiling with option + @var{profopt}. + ++@item dg-require-stack-check @var{check} ++Skip the test if the target does not support the @code{-fstack-check} ++option. If @var{check} is @code{""}, support for @code{-fstack-check} ++is checked, for @code{-fstack-check=("@var{check}")} otherwise. ++ + @item dg-require-visibility @var{vis} + Skip the test if the target does not support the @code{visibility} attribute. + If @var{vis} is @code{""}, support for @code{visibility("hidden")} is +--- a/src/gcc/doc/tm.texi ++++ b/src/gcc/doc/tm.texi +@@ -3684,6 +3684,15 @@ such as the result of @code{get_frame_size ()} and the tables of + registers @code{df_regs_ever_live_p} and @code{call_used_regs}. + @end defmac + ++@deftypefn {Target Hook} void TARGET_COMPUTE_FRAME_LAYOUT (void) ++This target hook is called once each time the frame layout needs to be ++recalculated. The calculations can be cached by the target and can then ++be used by @code{INITIAL_ELIMINATION_OFFSET} instead of re-computing the ++layout on every invocation of that hook. This is particularly useful ++for targets that have an expensive frame layout function. Implementing ++this callback is optional. ++@end deftypefn ++ + @node Stack Arguments + @subsection Passing Function Arguments on the Stack + @cindex arguments on stack +--- a/src/gcc/doc/tm.texi.in ++++ b/src/gcc/doc/tm.texi.in +@@ -3213,6 +3213,8 @@ such as the result of @code{get_frame_size ()} and the tables of + registers @code{df_regs_ever_live_p} and @code{call_used_regs}. + @end defmac + ++@hook TARGET_COMPUTE_FRAME_LAYOUT ++ + @node Stack Arguments + @subsection Passing Function Arguments on the Stack + @cindex arguments on stack --- gcc-7-7.5.0.orig/debian/patches/gcc-linaro-no-macros.diff +++ gcc-7-7.5.0/debian/patches/gcc-linaro-no-macros.diff @@ -0,0 +1,92 @@ +# DP : Don't add the __LINARO_RELEASE__ and __LINARO_SPIN__ macros for distro builds. + +Index: b/src/gcc/cppbuiltin.c +=================================================================== +--- a/src/gcc/cppbuiltin.c ++++ b/src/gcc/cppbuiltin.c +@@ -53,41 +53,18 @@ parse_basever (int *major, int *minor, i + *patchlevel = s_patchlevel; + } + +-/* Parse a LINAROVER version string of the format "M.m-year.month[-spin][~dev]" +- to create Linaro release number YYYYMM and spin version. */ +-static void +-parse_linarover (int *release, int *spin) +-{ +- static int s_year = -1, s_month, s_spin; +- +- if (s_year == -1) +- if (sscanf (LINAROVER, "%*[^-]-%d.%d-%d", &s_year, &s_month, &s_spin) != 3) +- { +- sscanf (LINAROVER, "%*[^-]-%d.%d", &s_year, &s_month); +- s_spin = 0; +- } +- +- if (release) +- *release = s_year * 100 + s_month; +- +- if (spin) +- *spin = s_spin; +-} + + /* Define __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ and __VERSION__. */ + static void + define__GNUC__ (cpp_reader *pfile) + { +- int major, minor, patchlevel, linaro_release, linaro_spin; ++ int major, minor, patchlevel; + + parse_basever (&major, &minor, &patchlevel); +- parse_linarover (&linaro_release, &linaro_spin); + cpp_define_formatted (pfile, "__GNUC__=%d", major); + cpp_define_formatted (pfile, "__GNUC_MINOR__=%d", minor); + cpp_define_formatted (pfile, "__GNUC_PATCHLEVEL__=%d", patchlevel); + cpp_define_formatted (pfile, "__VERSION__=\"%s\"", version_string); +- cpp_define_formatted (pfile, "__LINARO_RELEASE__=%d", linaro_release); +- cpp_define_formatted (pfile, "__LINARO_SPIN__=%d", linaro_spin); + cpp_define_formatted (pfile, "__ATOMIC_RELAXED=%d", MEMMODEL_RELAXED); + cpp_define_formatted (pfile, "__ATOMIC_SEQ_CST=%d", MEMMODEL_SEQ_CST); + cpp_define_formatted (pfile, "__ATOMIC_ACQUIRE=%d", MEMMODEL_ACQUIRE); +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -845,12 +845,10 @@ BASEVER := $(srcdir)/BASE-VER # 4.x + DEVPHASE := $(srcdir)/DEV-PHASE # experimental, prerelease, "" + DATESTAMP := $(srcdir)/DATESTAMP # YYYYMMDD or empty + REVISION := $(srcdir)/REVISION # [BRANCH revision XXXXXX] +-LINAROVER := $(srcdir)/LINARO-VERSION # M.x-YYYY.MM[-S][~dev] + + BASEVER_c := $(shell cat $(BASEVER)) + DEVPHASE_c := $(shell cat $(DEVPHASE)) + DATESTAMP_c := $(shell cat $(DATESTAMP)) +-LINAROVER_c := $(shell cat $(LINAROVER)) + + ifeq (,$(wildcard $(REVISION))) + REVISION_c := +@@ -877,7 +875,6 @@ DATESTAMP_s := \ + "\"$(if $(DEVPHASE_c)$(filter-out 0,$(PATCHLEVEL_c)), $(DATESTAMP_c))\"" + PKGVERSION_s:= "\"@PKGVERSION@\"" + BUGURL_s := "\"@REPORT_BUGS_TO@\"" +-LINAROVER_s := "\"$(LINAROVER_c)\"" + + PKGVERSION := @PKGVERSION@ + BUGURL_TEXI := @REPORT_BUGS_TEXI@ +@@ -2804,9 +2801,8 @@ PREPROCESSOR_DEFINES = \ + -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ + @TARGET_SYSTEM_ROOT_DEFINE@ + +-CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s) \ +- -DLINAROVER=$(LINAROVER_s) +-cppbuiltin.o: $(BASEVER) $(LINAROVER) ++CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s) ++cppbuiltin.o: $(BASEVER) + + CFLAGS-cppdefault.o += $(PREPROCESSOR_DEFINES) + +Index: b/src/gcc/LINARO-VERSION +=================================================================== +--- a/src/gcc/LINARO-VERSION ++++ /dev/null +@@ -1,1 +0,0 @@ +-Snapshot 7.4-2019.01 --- gcc-7-7.5.0.orig/debian/patches/gcc-linaro-revert-r270684.diff +++ gcc-7-7.5.0/debian/patches/gcc-linaro-revert-r270684.diff @@ -0,0 +1,144 @@ +# DP: Revert r270684, already applied to the Linaro branch + +--- a/src/gcc/testsuite/gcc.target/aarch64/pr90075.c ++++ b/src/gcc/testsuite/gcc.target/aarch64/pr90075.c +@@ -1,21 +0,0 @@ +-/* { dg-do compile } */ +-/* { dg-additional-options "-O1" } */ +- +-typedef struct { +- float one, two; +-} twofloats; +- +-float +-bug (twofloats tf) +-{ +- float f1, f2; +- union { +- twofloats tfloats; +- float arr[2]; +- } utfloats; +- +- utfloats.tfloats = tf; +- f1 = utfloats.arr[1]; +- f2 = __builtin_copysignf (0, f1); +- return f2; +-} +--- a/src/gcc/config/aarch64/iterators.md ++++ b/src/gcc/config/aarch64/iterators.md +@@ -438,8 +438,7 @@ + (define_mode_attr sizen [(QI "8") (HI "16") (SI "32") (DI "64")]) + + ;; Give the ordinal of the MSB in the mode +-(define_mode_attr sizem1 [(QI "#7") (HI "#15") (SI "#31") (DI "#63") +- (HF "#15") (SF "#31") (DF "#63")]) ++(define_mode_attr sizem1 [(QI "#7") (HI "#15") (SI "#31") (DI "#63")]) + + ;; Attribute to describe constants acceptable in logical operations + (define_mode_attr lconst [(SI "K") (DI "L")]) +@@ -508,7 +507,7 @@ + (V8HF "16b") (V2SF "8b") + (V4SF "16b") (V2DF "16b") + (DI "8b") (DF "8b") +- (SI "8b") (SF "8b")]) ++ (SI "8b")]) + + ;; Define element mode for each vector mode. + (define_mode_attr VEL [(V8QI "QI") (V16QI "QI") +@@ -649,9 +648,6 @@ + ;; Double vector types for ALLX. + (define_mode_attr Vallxd [(QI "8b") (HI "4h") (SI "2s")]) + +-;; Mode with floating-point values replaced by like-sized integers. +-(define_mode_attr V_INT_EQUIV [(DF "DI") (SF "SI")]) +- + ;; Mode of result of comparison operations. + (define_mode_attr V_cmp_result [(V8QI "V8QI") (V16QI "V16QI") + (V4HI "V4HI") (V8HI "V8HI") +--- a/src/gcc/config/aarch64/aarch64.md ++++ b/src/gcc/config/aarch64/aarch64.md +@@ -140,7 +140,6 @@ + UNSPEC_RSQRTS + UNSPEC_NZCV + UNSPEC_XPACLRI +- UNSPEC_COPYSIGN + ]) + + (define_c_enum "unspecv" [ +@@ -5004,45 +5003,45 @@ + ;; LDR d2, #(1 << 63) + ;; BSL v2.8b, [y], [x] + ;; +-;; or another, equivalent, sequence using one of BSL/BIT/BIF. Because +-;; we expect these operations to nearly always operate on +-;; floating-point values, we do not want the operation to be +-;; simplified into a bit-field insert operation that operates on the +-;; integer side, since typically that would involve three inter-bank +-;; register copies. As we do not expect copysign to be followed by +-;; other logical operations on the result, it seems preferable to keep +-;; this as an unspec operation, rather than exposing the underlying +-;; logic to the compiler. ++;; or another, equivalent, sequence using one of BSL/BIT/BIF. ++;; aarch64_simd_bsldf will select the best suited of these instructions ++;; to generate based on register allocation, and knows how to partially ++;; constant fold based on the values of X and Y, so expand through that. + +-(define_expand "copysign3" +- [(match_operand:GPF 0 "register_operand") +- (match_operand:GPF 1 "register_operand") +- (match_operand:GPF 2 "register_operand")] ++(define_expand "copysigndf3" ++ [(match_operand:DF 0 "register_operand") ++ (match_operand:DF 1 "register_operand") ++ (match_operand:DF 2 "register_operand")] + "TARGET_FLOAT && TARGET_SIMD" + { +- rtx bitmask = gen_reg_rtx (mode); +- emit_move_insn (bitmask, GEN_INT (HOST_WIDE_INT_M1U +- << (GET_MODE_BITSIZE (mode) - 1))); +- emit_insn (gen_copysign3_insn (operands[0], operands[1], operands[2], +- bitmask)); ++ rtx mask = gen_reg_rtx (DImode); ++ emit_move_insn (mask, GEN_INT (HOST_WIDE_INT_1U << 63)); ++ emit_insn (gen_aarch64_simd_bsldf (operands[0], mask, ++ operands[2], operands[1])); + DONE; + } + ) + +-(define_insn "copysign3_insn" +- [(set (match_operand:GPF 0 "register_operand" "=w,w,w,r") +- (unspec:GPF [(match_operand:GPF 1 "register_operand" "w,0,w,r") +- (match_operand:GPF 2 "register_operand" "w,w,0,0") +- (match_operand: 3 "register_operand" +- "0,w,w,X")] +- UNSPEC_COPYSIGN))] ++;; As above, but we must first get to a 64-bit value if we wish to use ++;; aarch64_simd_bslv2sf. ++ ++(define_expand "copysignsf3" ++ [(match_operand:SF 0 "register_operand") ++ (match_operand:SF 1 "register_operand") ++ (match_operand:SF 2 "register_operand")] + "TARGET_FLOAT && TARGET_SIMD" +- "@ +- bsl\\t%0., %2., %1. +- bit\\t%0., %2., %3. +- bif\\t%0., %1., %3. +- bfxil\\t%0, %1, #0, " +- [(set_attr "type" "neon_bsl,neon_bsl,neon_bsl,bfm")] ++{ ++ rtx mask = gen_reg_rtx (DImode); ++ ++ /* Juggle modes to get us in to a vector mode for BSL. */ ++ rtx op1 = lowpart_subreg (V2SFmode, operands[1], SFmode); ++ rtx op2 = lowpart_subreg (V2SFmode, operands[2], SFmode); ++ rtx tmp = gen_reg_rtx (V2SFmode); ++ emit_move_insn (mask, GEN_INT (HOST_WIDE_INT_1U << 31)); ++ emit_insn (gen_aarch64_simd_bslv2sf (tmp, mask, op2, op1)); ++ emit_move_insn (operands[0], lowpart_subreg (SFmode, tmp, V2SFmode)); ++ DONE; ++} + ) + + ;; ------------------------------------------------------------------- --- gcc-7-7.5.0.orig/debian/patches/gcc-linaro.diff +++ gcc-7-7.5.0/debian/patches/gcc-linaro.diff @@ -0,0 +1,8920 @@ +# DP: Changes for the Linaro 7-2019.01 snapshot. + +MSG=$(git log origin/linaro/gcc-7-branch --format=format:"%s" -n 1 --grep "Merge branches"); SVN=${MSG##* }; git log origin/gcc-7-branch --format=format:"%H" -n 1 --grep "gcc-7-branch@${SVN%.}" + +LANG=C git diff --no-renames 9649769b0a8e9532878c38209fd602ecbc18d2d8 b1cba05b0549ef9b3bbe404ebb47abd3c57fc963 \ + | egrep -v '^(diff|index) ' \ + | filterdiff --strip=1 --addoldprefix=a/src/ --addnewprefix=b/src/ \ + | sed 's,a/src//dev/null,/dev/null,' + +--- /dev/null ++++ b/src/gcc/LINARO-VERSION +@@ -0,0 +1 @@ ++Snapshot 7.4-2019.01 +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -845,10 +845,12 @@ BASEVER := $(srcdir)/BASE-VER # 4.x.y + DEVPHASE := $(srcdir)/DEV-PHASE # experimental, prerelease, "" + DATESTAMP := $(srcdir)/DATESTAMP # YYYYMMDD or empty + REVISION := $(srcdir)/REVISION # [BRANCH revision XXXXXX] ++LINAROVER := $(srcdir)/LINARO-VERSION # M.x-YYYY.MM[-S][~dev] + + BASEVER_c := $(shell cat $(BASEVER)) + DEVPHASE_c := $(shell cat $(DEVPHASE)) + DATESTAMP_c := $(shell cat $(DATESTAMP)) ++LINAROVER_c := $(shell cat $(LINAROVER)) + + ifeq (,$(wildcard $(REVISION))) + REVISION_c := +@@ -875,6 +877,7 @@ DATESTAMP_s := \ + "\"$(if $(DEVPHASE_c)$(filter-out 0,$(PATCHLEVEL_c)), $(DATESTAMP_c))\"" + PKGVERSION_s:= "\"@PKGVERSION@\"" + BUGURL_s := "\"@REPORT_BUGS_TO@\"" ++LINAROVER_s := "\"$(LINAROVER_c)\"" + + PKGVERSION := @PKGVERSION@ + BUGURL_TEXI := @REPORT_BUGS_TEXI@ +@@ -2801,8 +2804,9 @@ PREPROCESSOR_DEFINES = \ + -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ + @TARGET_SYSTEM_ROOT_DEFINE@ + +-CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s) +-cppbuiltin.o: $(BASEVER) ++CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s) \ ++ -DLINAROVER=$(LINAROVER_s) ++cppbuiltin.o: $(BASEVER) $(LINAROVER) + + CFLAGS-cppdefault.o += $(PREPROCESSOR_DEFINES) + +--- a/src/gcc/ccmp.c ++++ b/src/gcc/ccmp.c +@@ -38,6 +38,29 @@ along with GCC; see the file COPYING3. If not see + #include "ccmp.h" + #include "predict.h" + ++/* Check whether T is a simple boolean variable or a SSA name ++ set by a comparison operator in the same basic block. */ ++static bool ++ccmp_tree_comparison_p (tree t, basic_block bb) ++{ ++ gimple *g = get_gimple_for_ssa_name (t); ++ tree_code tcode; ++ ++ /* If we have a boolean variable allow it and generate a compare ++ to zero reg when expanding. */ ++ if (!g) ++ return (TREE_CODE (TREE_TYPE (t)) == BOOLEAN_TYPE); ++ ++ /* Check to see if SSA name is set by a comparison operator in ++ the same basic block. */ ++ if (!is_gimple_assign (g)) ++ return false; ++ if (bb != gimple_bb (g)) ++ return false; ++ tcode = gimple_assign_rhs_code (g); ++ return TREE_CODE_CLASS (tcode) == tcc_comparison; ++} ++ + /* The following functions expand conditional compare (CCMP) instructions. + Here is a short description about the over all algorithm: + * ccmp_candidate_p is used to identify the CCMP candidate +@@ -71,49 +94,69 @@ along with GCC; see the file COPYING3. If not see + static bool + ccmp_candidate_p (gimple *g) + { +- tree rhs = gimple_assign_rhs_to_tree (g); ++ tree rhs; + tree lhs, op0, op1; + gimple *gs0, *gs1; +- tree_code tcode, tcode0, tcode1; +- tcode = TREE_CODE (rhs); ++ tree_code tcode; ++ basic_block bb; ++ ++ if (!g) ++ return false; + ++ rhs = gimple_assign_rhs_to_tree (g); ++ tcode = TREE_CODE (rhs); + if (tcode != BIT_AND_EXPR && tcode != BIT_IOR_EXPR) + return false; + + lhs = gimple_assign_lhs (g); + op0 = TREE_OPERAND (rhs, 0); + op1 = TREE_OPERAND (rhs, 1); ++ bb = gimple_bb (g); + + if ((TREE_CODE (op0) != SSA_NAME) || (TREE_CODE (op1) != SSA_NAME) + || !has_single_use (lhs)) + return false; + +- gs0 = get_gimple_for_ssa_name (op0); +- gs1 = get_gimple_for_ssa_name (op1); +- if (!gs0 || !gs1 || !is_gimple_assign (gs0) || !is_gimple_assign (gs1) +- /* g, gs0 and gs1 must be in the same basic block, since current stage +- is out-of-ssa. We can not guarantee the correctness when forwording +- the gs0 and gs1 into g whithout DATAFLOW analysis. */ +- || gimple_bb (gs0) != gimple_bb (gs1) +- || gimple_bb (gs0) != gimple_bb (g)) +- return false; ++ gs0 = get_gimple_for_ssa_name (op0); /* gs0 may be NULL */ ++ gs1 = get_gimple_for_ssa_name (op1); /* gs1 may be NULL */ + +- tcode0 = gimple_assign_rhs_code (gs0); +- tcode1 = gimple_assign_rhs_code (gs1); +- if (TREE_CODE_CLASS (tcode0) == tcc_comparison +- && TREE_CODE_CLASS (tcode1) == tcc_comparison) ++ if (ccmp_tree_comparison_p (op0, bb) && ccmp_tree_comparison_p (op1, bb)) + return true; +- if (TREE_CODE_CLASS (tcode0) == tcc_comparison +- && ccmp_candidate_p (gs1)) ++ if (ccmp_tree_comparison_p (op0, bb) && ccmp_candidate_p (gs1)) + return true; +- else if (TREE_CODE_CLASS (tcode1) == tcc_comparison +- && ccmp_candidate_p (gs0)) ++ if (ccmp_tree_comparison_p (op1, bb) && ccmp_candidate_p (gs0)) + return true; + /* We skip ccmp_candidate_p (gs1) && ccmp_candidate_p (gs0) since +- there is no way to set the CC flag. */ ++ there is no way to set and maintain the CC flag on both sides of ++ the logical operator at the same time. */ + return false; + } + ++/* Extract the comparison we want to do from the tree. */ ++void ++get_compare_parts (tree t, int *up, rtx_code *rcode, ++ tree *rhs1, tree *rhs2) ++{ ++ tree_code code; ++ gimple *g = get_gimple_for_ssa_name (t); ++ if (g) ++ { ++ *up = TYPE_UNSIGNED (TREE_TYPE (gimple_assign_rhs1 (g))); ++ code = gimple_assign_rhs_code (g); ++ *rcode = get_rtx_code (code, *up); ++ *rhs1 = gimple_assign_rhs1 (g); ++ *rhs2 = gimple_assign_rhs2 (g); ++ } ++ else ++ { ++ /* If g is not a comparison operator create a compare to zero. */ ++ *up = 1; ++ *rcode = NE; ++ *rhs1 = t; ++ *rhs2 = build_zero_cst (TREE_TYPE (t)); ++ } ++} ++ + /* PREV is a comparison with the CC register which represents the + result of the previous CMP or CCMP. The function expands the + next compare based on G which is ANDed/ORed with the previous +@@ -121,20 +164,16 @@ ccmp_candidate_p (gimple *g) + PREP_SEQ returns all insns to prepare opearands for compare. + GEN_SEQ returns all compare insns. */ + static rtx +-expand_ccmp_next (gimple *g, tree_code code, rtx prev, ++expand_ccmp_next (tree op, tree_code code, rtx prev, + rtx_insn **prep_seq, rtx_insn **gen_seq) + { + rtx_code rcode; +- int unsignedp = TYPE_UNSIGNED (TREE_TYPE (gimple_assign_rhs1 (g))); +- +- gcc_assert (code == BIT_AND_EXPR || code == BIT_IOR_EXPR); +- +- rcode = get_rtx_code (gimple_assign_rhs_code (g), unsignedp); ++ int unsignedp; ++ tree rhs1, rhs2; + ++ get_compare_parts(op, &unsignedp, &rcode, &rhs1, &rhs2); + return targetm.gen_ccmp_next (prep_seq, gen_seq, prev, rcode, +- gimple_assign_rhs1 (g), +- gimple_assign_rhs2 (g), +- get_rtx_code (code, 0)); ++ rhs1, rhs2, get_rtx_code (code, 0)); + } + + /* Expand conditional compare gimple G. A typical CCMP sequence is like: +@@ -153,39 +192,42 @@ expand_ccmp_expr_1 (gimple *g, rtx_insn **prep_seq, rtx_insn **gen_seq) + { + tree exp = gimple_assign_rhs_to_tree (g); + tree_code code = TREE_CODE (exp); +- gimple *gs0 = get_gimple_for_ssa_name (TREE_OPERAND (exp, 0)); +- gimple *gs1 = get_gimple_for_ssa_name (TREE_OPERAND (exp, 1)); ++ basic_block bb = gimple_bb (g); ++ ++ tree op0 = TREE_OPERAND (exp, 0); ++ tree op1 = TREE_OPERAND (exp, 1); ++ gimple *gs0 = get_gimple_for_ssa_name (op0); ++ gimple *gs1 = get_gimple_for_ssa_name (op1); + rtx tmp; +- tree_code code0 = gimple_assign_rhs_code (gs0); +- tree_code code1 = gimple_assign_rhs_code (gs1); + + gcc_assert (code == BIT_AND_EXPR || code == BIT_IOR_EXPR); +- gcc_assert (gs0 && gs1 && is_gimple_assign (gs0) && is_gimple_assign (gs1)); + +- if (TREE_CODE_CLASS (code0) == tcc_comparison) ++ if (ccmp_tree_comparison_p (op0, bb)) + { +- if (TREE_CODE_CLASS (code1) == tcc_comparison) ++ if (ccmp_tree_comparison_p (op1, bb)) + { + int unsignedp0, unsignedp1; + rtx_code rcode0, rcode1; ++ tree logical_op0_rhs1, logical_op0_rhs2; ++ tree logical_op1_rhs1, logical_op1_rhs2; + int speed_p = optimize_insn_for_speed_p (); ++ + rtx tmp2 = NULL_RTX, ret = NULL_RTX, ret2 = NULL_RTX; + unsigned cost1 = MAX_COST; + unsigned cost2 = MAX_COST; + +- unsignedp0 = TYPE_UNSIGNED (TREE_TYPE (gimple_assign_rhs1 (gs0))); +- unsignedp1 = TYPE_UNSIGNED (TREE_TYPE (gimple_assign_rhs1 (gs1))); +- rcode0 = get_rtx_code (code0, unsignedp0); +- rcode1 = get_rtx_code (code1, unsignedp1); ++ get_compare_parts (op0, &unsignedp0, &rcode0, ++ &logical_op0_rhs1, &logical_op0_rhs2); ++ ++ get_compare_parts (op1, &unsignedp1, &rcode1, ++ &logical_op1_rhs1, &logical_op1_rhs2); + + rtx_insn *prep_seq_1, *gen_seq_1; + tmp = targetm.gen_ccmp_first (&prep_seq_1, &gen_seq_1, rcode0, +- gimple_assign_rhs1 (gs0), +- gimple_assign_rhs2 (gs0)); +- ++ logical_op0_rhs1, logical_op0_rhs2); + if (tmp != NULL) + { +- ret = expand_ccmp_next (gs1, code, tmp, &prep_seq_1, &gen_seq_1); ++ ret = expand_ccmp_next (op1, code, tmp, &prep_seq_1, &gen_seq_1); + cost1 = seq_cost (prep_seq_1, speed_p); + cost1 += seq_cost (gen_seq_1, speed_p); + } +@@ -197,27 +239,22 @@ expand_ccmp_expr_1 (gimple *g, rtx_insn **prep_seq, rtx_insn **gen_seq) + rtx_insn *prep_seq_2, *gen_seq_2; + if (tmp == NULL || cost1 < COSTS_N_INSNS (25)) + tmp2 = targetm.gen_ccmp_first (&prep_seq_2, &gen_seq_2, rcode1, +- gimple_assign_rhs1 (gs1), +- gimple_assign_rhs2 (gs1)); +- ++ logical_op1_rhs1, logical_op1_rhs2); + if (!tmp && !tmp2) + return NULL_RTX; +- + if (tmp2 != NULL) + { +- ret2 = expand_ccmp_next (gs0, code, tmp2, &prep_seq_2, ++ ret2 = expand_ccmp_next (op0, code, tmp2, &prep_seq_2, + &gen_seq_2); + cost2 = seq_cost (prep_seq_2, speed_p); + cost2 += seq_cost (gen_seq_2, speed_p); + } +- + if (cost2 < cost1) + { + *prep_seq = prep_seq_2; + *gen_seq = gen_seq_2; + return ret2; + } +- + *prep_seq = prep_seq_1; + *gen_seq = gen_seq_1; + return ret; +@@ -227,28 +264,18 @@ expand_ccmp_expr_1 (gimple *g, rtx_insn **prep_seq, rtx_insn **gen_seq) + tmp = expand_ccmp_expr_1 (gs1, prep_seq, gen_seq); + if (!tmp) + return NULL_RTX; +- +- return expand_ccmp_next (gs0, code, tmp, prep_seq, gen_seq); ++ return expand_ccmp_next (op0, code, tmp, prep_seq, gen_seq); + } + } + else + { + gcc_assert (gimple_assign_rhs_code (gs0) == BIT_AND_EXPR + || gimple_assign_rhs_code (gs0) == BIT_IOR_EXPR); +- +- if (TREE_CODE_CLASS (gimple_assign_rhs_code (gs1)) == tcc_comparison) +- { +- tmp = expand_ccmp_expr_1 (gs0, prep_seq, gen_seq); +- if (!tmp) +- return NULL_RTX; +- +- return expand_ccmp_next (gs1, code, tmp, prep_seq, gen_seq); +- } +- else +- { +- gcc_assert (gimple_assign_rhs_code (gs1) == BIT_AND_EXPR +- || gimple_assign_rhs_code (gs1) == BIT_IOR_EXPR); +- } ++ gcc_assert (ccmp_tree_comparison_p (op1, bb)); ++ tmp = expand_ccmp_expr_1 (gs0, prep_seq, gen_seq); ++ if (!tmp) ++ return NULL_RTX; ++ return expand_ccmp_next (op1, code, tmp, prep_seq, gen_seq); + } + + return NULL_RTX; +@@ -258,7 +285,7 @@ expand_ccmp_expr_1 (gimple *g, rtx_insn **prep_seq, rtx_insn **gen_seq) + Return NULL_RTX if G is not a legal candidate or expand fail. + Otherwise return the target. */ + rtx +-expand_ccmp_expr (gimple *g) ++expand_ccmp_expr (gimple *g, machine_mode mode) + { + rtx_insn *last; + rtx tmp; +@@ -275,7 +302,6 @@ expand_ccmp_expr (gimple *g) + { + insn_code icode; + machine_mode cc_mode = CCmode; +- tree lhs = gimple_assign_lhs (g); + rtx_code cmp_code = GET_CODE (tmp); + + #ifdef SELECT_CC_MODE +@@ -284,7 +310,6 @@ expand_ccmp_expr (gimple *g) + icode = optab_handler (cstore_optab, cc_mode); + if (icode != CODE_FOR_nothing) + { +- machine_mode mode = TYPE_MODE (TREE_TYPE (lhs)); + rtx target = gen_reg_rtx (mode); + + emit_insn (prep_seq); +@@ -300,4 +325,3 @@ expand_ccmp_expr (gimple *g) + delete_insns_since (last); + return NULL_RTX; + } +- +--- a/src/gcc/ccmp.h ++++ b/src/gcc/ccmp.h +@@ -20,6 +20,6 @@ along with GCC; see the file COPYING3. If not see + #ifndef GCC_CCMP_H + #define GCC_CCMP_H + +-extern rtx expand_ccmp_expr (gimple *); ++extern rtx expand_ccmp_expr (gimple *, machine_mode); + + #endif /* GCC_CCMP_H */ +--- a/src/gcc/config.gcc ++++ b/src/gcc/config.gcc +@@ -3811,34 +3811,19 @@ case "${target}" in + # Add extra multilibs + if test "x$with_multilib_list" != x; then + arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'` +- case ${arm_multilibs} in +- aprofile) +- # Note that arm/t-aprofile is a +- # stand-alone make file fragment to be +- # used only with itself. We do not +- # specifically use the +- # TM_MULTILIB_OPTION framework because +- # this shorthand is more +- # pragmatic. +- tmake_profile_file="arm/t-aprofile" +- ;; +- rmprofile) +- # Note that arm/t-rmprofile is a +- # stand-alone make file fragment to be +- # used only with itself. We do not +- # specifically use the +- # TM_MULTILIB_OPTION framework because +- # this shorthand is more +- # pragmatic. +- tmake_profile_file="arm/t-rmprofile" +- ;; +- default) +- ;; +- *) +- echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2 +- exit 1 +- ;; +- esac ++ if test "x${arm_multilibs}" != xdefault ; then ++ for arm_multilib in ${arm_multilibs}; do ++ case ${arm_multilib} in ++ aprofile|rmprofile) ++ tmake_profile_file="arm/t-multilib" ++ ;; ++ *) ++ echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2 ++ exit 1 ++ ;; ++ esac ++ done ++ fi + + if test "x${tmake_profile_file}" != x ; then + # arm/t-aprofile and arm/t-rmprofile are only +@@ -3855,6 +3840,7 @@ case "${target}" in + fi + + tmake_file="${tmake_file} ${tmake_profile_file}" ++ TM_MULTILIB_CONFIG="$with_multilib_list" + fi + fi + ;; +--- a/src/gcc/config/aarch64/aarch64-builtins.c ++++ b/src/gcc/config/aarch64/aarch64-builtins.c +@@ -168,6 +168,11 @@ aarch64_types_quadop_lane_qualifiers[SIMD_MAX_BUILTIN_ARGS] + = { qualifier_none, qualifier_none, qualifier_none, + qualifier_none, qualifier_lane_index }; + #define TYPES_QUADOP_LANE (aarch64_types_quadop_lane_qualifiers) ++static enum aarch64_type_qualifiers ++aarch64_types_quadopu_lane_qualifiers[SIMD_MAX_BUILTIN_ARGS] ++ = { qualifier_unsigned, qualifier_unsigned, qualifier_unsigned, ++ qualifier_unsigned, qualifier_lane_index }; ++#define TYPES_QUADOPU_LANE (aarch64_types_quadopu_lane_qualifiers) + + static enum aarch64_type_qualifiers + aarch64_types_binop_imm_p_qualifiers[SIMD_MAX_BUILTIN_ARGS] +@@ -754,7 +759,7 @@ aarch64_init_simd_builtins (void) + for (i = 0; i < ARRAY_SIZE (aarch64_simd_builtin_data); i++, fcode++) + { + bool print_type_signature_p = false; +- char type_signature[SIMD_MAX_BUILTIN_ARGS] = { 0 }; ++ char type_signature[SIMD_MAX_BUILTIN_ARGS + 1] = { 0 }; + aarch64_simd_builtin_datum *d = &aarch64_simd_builtin_data[i]; + char namebuf[60]; + tree ftype = NULL; +--- a/src/gcc/config/aarch64/aarch64-c.c ++++ b/src/gcc/config/aarch64/aarch64-c.c +@@ -106,6 +106,7 @@ aarch64_update_cpp_builtins (cpp_reader *pfile) + + + aarch64_def_or_undef (TARGET_CRC32, "__ARM_FEATURE_CRC32", pfile); ++ aarch64_def_or_undef (TARGET_DOTPROD, "__ARM_FEATURE_DOTPROD", pfile); + + cpp_undef (pfile, "__AARCH64_CMODEL_TINY__"); + cpp_undef (pfile, "__AARCH64_CMODEL_SMALL__"); +--- a/src/gcc/config/aarch64/aarch64-cores.def ++++ b/src/gcc/config/aarch64/aarch64-cores.def +@@ -43,7 +43,7 @@ + VARIANT is the variant of the CPU. In a GNU/Linux system it can found + in /proc/cpuinfo. If this is -1, this means it can match any variant. */ + +-/* V8 Architecture Processors. */ ++/* ARMv8-A Architecture Processors. */ + + /* ARM ('A') cores. */ + AARCH64_CORE("cortex-a35", cortexa35, cortexa53, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa35, 0x41, 0xd04, -1) +@@ -52,33 +52,35 @@ AARCH64_CORE("cortex-a57", cortexa57, cortexa57, 8A, AARCH64_FL_FOR_ARCH8 | AA + AARCH64_CORE("cortex-a72", cortexa72, cortexa57, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa72, 0x41, 0xd08, -1) + AARCH64_CORE("cortex-a73", cortexa73, cortexa57, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa73, 0x41, 0xd09, -1) + +-/* Samsung ('S') cores. */ +-AARCH64_CORE("exynos-m1", exynosm1, exynosm1, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, exynosm1, 0x53, 0x001, -1) +- +-/* Qualcomm ('Q') cores. */ +-AARCH64_CORE("falkor", falkor, cortexa57, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, qdf24xx, 0x51, 0xC00, -1) +-AARCH64_CORE("qdf24xx", qdf24xx, cortexa57, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, qdf24xx, 0x51, 0xC00, -1) +- + /* Cavium ('C') cores. */ + AARCH64_CORE("thunderx", thunderx, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a0, -1) + /* Do not swap around "thunderxt88p1" and "thunderxt88", + this order is required to handle variant correctly. */ +-AARCH64_CORE("thunderxt88p1", thunderxt88p1, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a1, 0) +-AARCH64_CORE("thunderxt88", thunderxt88, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a1, -1) ++AARCH64_CORE("thunderxt88p1", thunderxt88p1, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderxt88, 0x43, 0x0a1, 0) ++AARCH64_CORE("thunderxt88", thunderxt88, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderxt88, 0x43, 0x0a1, -1) + AARCH64_CORE("thunderxt81", thunderxt81, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a2, -1) + AARCH64_CORE("thunderxt83", thunderxt83, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a3, -1) +-AARCH64_CORE("thunderx2t99", thunderx2t99, thunderx2t99, 8_1A, AARCH64_FL_FOR_ARCH8_1 | AARCH64_FL_CRYPTO, thunderx2t99, 0x43, 0x0af, -1) + + /* APM ('P') cores. */ + AARCH64_CORE("xgene1", xgene1, xgene1, 8A, AARCH64_FL_FOR_ARCH8, xgene1, 0x50, 0x000, -1) + +-/* V8.1 Architecture Processors. */ ++/* Qualcomm ('Q') cores. */ ++AARCH64_CORE("falkor", falkor, cortexa57, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO | AARCH64_FL_RDMA, qdf24xx, 0x51, 0xC00, -1) ++AARCH64_CORE("qdf24xx", qdf24xx, cortexa57, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO | AARCH64_FL_RDMA, qdf24xx, 0x51, 0xC00, -1) ++ ++/* Samsung ('S') cores. */ ++AARCH64_CORE("exynos-m1", exynosm1, exynosm1, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, exynosm1, 0x53, 0x001, -1) ++ ++/* ARMv8.1-A Architecture Processors. */ + + /* Broadcom ('B') cores. */ + AARCH64_CORE("thunderx2t99p1", thunderx2t99p1, thunderx2t99, 8_1A, AARCH64_FL_FOR_ARCH8_1 | AARCH64_FL_CRYPTO, thunderx2t99, 0x42, 0x516, -1) + AARCH64_CORE("vulcan", vulcan, thunderx2t99, 8_1A, AARCH64_FL_FOR_ARCH8_1 | AARCH64_FL_CRYPTO, thunderx2t99, 0x42, 0x516, -1) + +-/* V8 big.LITTLE implementations. */ ++/* Cavium ('C') cores. */ ++AARCH64_CORE("thunderx2t99", thunderx2t99, thunderx2t99, 8_1A, AARCH64_FL_FOR_ARCH8_1 | AARCH64_FL_CRYPTO, thunderx2t99, 0x43, 0x0af, -1) ++ ++/* ARMv8-A big.LITTLE implementations. */ + + AARCH64_CORE("cortex-a57.cortex-a53", cortexa57cortexa53, cortexa53, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa57, 0x41, AARCH64_BIG_LITTLE (0xd07, 0xd03), -1) + AARCH64_CORE("cortex-a72.cortex-a53", cortexa72cortexa53, cortexa53, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa72, 0x41, AARCH64_BIG_LITTLE (0xd08, 0xd03), -1) +--- a/src/gcc/config/aarch64/aarch64-cost-tables.h ++++ b/src/gcc/config/aarch64/aarch64-cost-tables.h +@@ -136,8 +136,8 @@ const struct cpu_cost_table thunderx_extra_costs = + 0, /* Logical. */ + 0, /* Shift. */ + 0, /* Shift_reg. */ +- COSTS_N_INSNS (1), /* Arith_shift. */ +- COSTS_N_INSNS (1), /* Arith_shift_reg. */ ++ COSTS_N_INSNS (1)+1, /* Arith_shift. */ ++ COSTS_N_INSNS (1)+1, /* Arith_shift_reg. */ + COSTS_N_INSNS (1), /* UNUSED: Log_shift. */ + COSTS_N_INSNS (1), /* UNUSED: Log_shift_reg. */ + 0, /* Extend. */ +--- a/src/gcc/config/aarch64/aarch64-fusion-pairs.def ++++ b/src/gcc/config/aarch64/aarch64-fusion-pairs.def +@@ -34,5 +34,6 @@ AARCH64_FUSION_PAIR ("movk+movk", MOVK_MOVK) + AARCH64_FUSION_PAIR ("adrp+ldr", ADRP_LDR) + AARCH64_FUSION_PAIR ("cmp+branch", CMP_BRANCH) + AARCH64_FUSION_PAIR ("aes+aesmc", AES_AESMC) ++AARCH64_FUSION_PAIR ("alu+branch", ALU_BRANCH) + + #undef AARCH64_FUSION_PAIR +--- a/src/gcc/config/aarch64/aarch64-option-extensions.def ++++ b/src/gcc/config/aarch64/aarch64-option-extensions.def +@@ -43,8 +43,8 @@ + AARCH64_OPT_EXTENSION("fp", AARCH64_FL_FP, 0, AARCH64_FL_SIMD | AARCH64_FL_CRYPTO | AARCH64_FL_F16, "fp") + + /* Enabling "simd" also enables "fp". +- Disabling "simd" also disables "crypto". */ +-AARCH64_OPT_EXTENSION("simd", AARCH64_FL_SIMD, AARCH64_FL_FP, AARCH64_FL_CRYPTO, "asimd") ++ Disabling "simd" also disables "crypto" and "dotprod". */ ++AARCH64_OPT_EXTENSION("simd", AARCH64_FL_SIMD, AARCH64_FL_FP, AARCH64_FL_CRYPTO | AARCH64_FL_DOTPROD, "asimd") + + /* Enabling "crypto" also enables "fp", "simd". + Disabling "crypto" just disables "crypto". */ +@@ -60,4 +60,15 @@ AARCH64_OPT_EXTENSION("lse", AARCH64_FL_LSE, 0, 0, "atomics") + Disabling "fp16" just disables "fp16". */ + AARCH64_OPT_EXTENSION("fp16", AARCH64_FL_F16, AARCH64_FL_FP, 0, "fphp asimdhp") + ++/* Enabling or disabling "rcpc" only changes "rcpc". */ ++AARCH64_OPT_EXTENSION("rcpc", AARCH64_FL_RCPC, 0, 0, "lrcpc") ++ ++/* Enabling "rdma" also enables "fp", "simd". ++ Disabling "rdma" just disables "rdma". */ ++AARCH64_OPT_EXTENSION("rdma", AARCH64_FL_RDMA, AARCH64_FL_FP | AARCH64_FL_SIMD, 0, "rdma") ++ ++/* Enabling "dotprod" also enables "simd". ++ Disabling "dotprod" only disables "dotprod". */ ++AARCH64_OPT_EXTENSION("dotprod", AARCH64_FL_DOTPROD, AARCH64_FL_SIMD, 0, "asimddp") ++ + #undef AARCH64_OPT_EXTENSION +--- a/src/gcc/config/aarch64/aarch64-protos.h ++++ b/src/gcc/config/aarch64/aarch64-protos.h +@@ -203,6 +203,16 @@ struct cpu_approx_modes + const unsigned int recip_sqrt; /* Reciprocal square root. */ + }; + ++/* Cache prefetch settings for prefetch-loop-arrays. */ ++struct cpu_prefetch_tune ++{ ++ const int num_slots; ++ const int l1_cache_size; ++ const int l1_cache_line_size; ++ const int l2_cache_size; ++ const int default_opt_level; ++}; ++ + struct tune_params + { + const struct cpu_cost_table *insn_extra_cost; +@@ -224,9 +234,6 @@ struct tune_params + int min_div_recip_mul_df; + /* Value for aarch64_case_values_threshold; or 0 for the default. */ + unsigned int max_case_values; +- /* Value for PARAM_L1_CACHE_LINE_SIZE; or 0 to use the default. */ +- unsigned int cache_line_size; +- + /* An enum specifying how to take into account CPU autoprefetch capabilities + during instruction scheduling: + - AUTOPREFETCHER_OFF: Do not take autoprefetch capabilities into account. +@@ -244,6 +251,10 @@ struct tune_params + } autoprefetcher_model; + + unsigned int extra_tuning_flags; ++ ++ /* Place prefetch struct pointer at the end to enable type checking ++ errors when tune_params misses elements (e.g., from erroneous merges). */ ++ const struct cpu_prefetch_tune *prefetch; + }; + + #define AARCH64_FUSION_PAIR(x, name) \ +@@ -301,18 +312,22 @@ extern struct tune_params aarch64_tune_params; + + HOST_WIDE_INT aarch64_initial_elimination_offset (unsigned, unsigned); + int aarch64_get_condition_code (rtx); ++bool aarch64_address_valid_for_prefetch_p (rtx, bool); + bool aarch64_bitmask_imm (HOST_WIDE_INT val, machine_mode); + unsigned HOST_WIDE_INT aarch64_and_split_imm1 (HOST_WIDE_INT val_in); + unsigned HOST_WIDE_INT aarch64_and_split_imm2 (HOST_WIDE_INT val_in); + bool aarch64_and_bitmask_imm (unsigned HOST_WIDE_INT val_in, machine_mode mode); + int aarch64_branch_cost (bool, bool); + enum aarch64_symbol_type aarch64_classify_symbolic_expression (rtx); ++bool aarch64_can_const_movi_rtx_p (rtx x, machine_mode mode); + bool aarch64_const_vec_all_same_int_p (rtx, HOST_WIDE_INT); + bool aarch64_constant_address_p (rtx); + bool aarch64_emit_approx_div (rtx, rtx, rtx); + bool aarch64_emit_approx_sqrt (rtx, rtx, bool); ++void aarch64_expand_call (rtx, rtx, bool); + bool aarch64_expand_movmem (rtx *); + bool aarch64_float_const_zero_rtx_p (rtx); ++bool aarch64_float_const_rtx_p (rtx); + bool aarch64_function_arg_regno_p (unsigned); + bool aarch64_fusion_enabled_p (enum aarch64_fusion_pairs); + bool aarch64_gen_movmemqi (rtx *); +@@ -338,9 +353,9 @@ bool aarch64_pad_arg_upward (machine_mode, const_tree); + bool aarch64_pad_reg_upward (machine_mode, const_tree, bool); + bool aarch64_regno_ok_for_base_p (int, bool); + bool aarch64_regno_ok_for_index_p (int, bool); ++bool aarch64_reinterpret_float_as_int (rtx value, unsigned HOST_WIDE_INT *fail); + bool aarch64_simd_check_vect_par_cnst_half (rtx op, machine_mode mode, + bool high); +-bool aarch64_simd_imm_scalar_p (rtx x, machine_mode mode); + bool aarch64_simd_imm_zero_p (rtx, machine_mode); + bool aarch64_simd_scalar_immediate_valid_for_move (rtx, machine_mode); + bool aarch64_simd_shift_imm_p (rtx, machine_mode, bool); +--- a/src/gcc/config/aarch64/aarch64-simd-builtins.def ++++ b/src/gcc/config/aarch64/aarch64-simd-builtins.def +@@ -205,6 +205,14 @@ + BUILTIN_VSDQ_I_DI (BINOP, srshl, 0) + BUILTIN_VSDQ_I_DI (BINOP_UUS, urshl, 0) + ++ /* Implemented by aarch64_{_lane}{q}. */ ++ BUILTIN_VB (TERNOP, sdot, 0) ++ BUILTIN_VB (TERNOPU, udot, 0) ++ BUILTIN_VB (QUADOP_LANE, sdot_lane, 0) ++ BUILTIN_VB (QUADOPU_LANE, udot_lane, 0) ++ BUILTIN_VB (QUADOP_LANE, sdot_laneq, 0) ++ BUILTIN_VB (QUADOPU_LANE, udot_laneq, 0) ++ + BUILTIN_VDQ_I (SHIFTIMM, ashr, 3) + VAR1 (SHIFTIMM, ashr_simd, 0, di) + BUILTIN_VDQ_I (SHIFTIMM, lshr, 3) +--- a/src/gcc/config/aarch64/aarch64-simd.md ++++ b/src/gcc/config/aarch64/aarch64-simd.md +@@ -44,12 +44,12 @@ + (define_insn "aarch64_simd_dup" + [(set (match_operand:VDQ_I 0 "register_operand" "=w, w") + (vec_duplicate:VDQ_I +- (match_operand: 1 "register_operand" "r, w")))] ++ (match_operand: 1 "register_operand" "w,?r")))] + "TARGET_SIMD" + "@ +- dup\\t%0., %1 +- dup\\t%0., %1.[0]" +- [(set_attr "type" "neon_from_gp, neon_dup")] ++ dup\\t%0., %1.[0] ++ dup\\t%0., %1" ++ [(set_attr "type" "neon_dup, neon_from_gp")] + ) + + (define_insn "aarch64_simd_dup" +@@ -105,7 +105,7 @@ + { + case 0: return "ldr\\t%d0, %1"; + case 1: return "str\\t%d1, %0"; +- case 2: return "orr\t%0., %1., %1."; ++ case 2: return "mov\t%0., %1."; + case 3: return "umov\t%0, %1.d[0]"; + case 4: return "fmov\t%d0, %1"; + case 5: return "mov\t%0, %1"; +@@ -136,7 +136,7 @@ + case 1: + return "str\\t%q1, %0"; + case 2: +- return "orr\t%0., %1., %1."; ++ return "mov\t%0., %1."; + case 3: + case 4: + case 5: +@@ -153,6 +153,19 @@ + (set_attr "length" "4,4,4,8,8,8,4")] + ) + ++;; When storing lane zero we can use the normal STR and its more permissive ++;; addressing modes. ++ ++(define_insn "aarch64_store_lane0" ++ [(set (match_operand: 0 "memory_operand" "=m") ++ (vec_select: (match_operand:VALL_F16 1 "register_operand" "w") ++ (parallel [(match_operand 2 "const_int_operand" "n")])))] ++ "TARGET_SIMD ++ && ENDIAN_LANE_N (mode, INTVAL (operands[2])) == 0" ++ "str\\t%1, %0" ++ [(set_attr "type" "neon_store1_1reg")] ++) ++ + (define_insn "load_pair" + [(set (match_operand:VD 0 "register_operand" "=w") + (match_operand:VD 1 "aarch64_mem_pair_operand" "Ump")) +@@ -338,6 +351,87 @@ + } + ) + ++;; These instructions map to the __builtins for the Dot Product operations. ++(define_insn "aarch64_dot" ++ [(set (match_operand:VS 0 "register_operand" "=w") ++ (plus:VS (match_operand:VS 1 "register_operand" "0") ++ (unspec:VS [(match_operand: 2 "register_operand" "w") ++ (match_operand: 3 "register_operand" "w")] ++ DOTPROD)))] ++ "TARGET_DOTPROD" ++ "dot\\t%0., %2., %3." ++ [(set_attr "type" "neon_dot")] ++) ++ ++;; These expands map to the Dot Product optab the vectorizer checks for. ++;; The auto-vectorizer expects a dot product builtin that also does an ++;; accumulation into the provided register. ++;; Given the following pattern ++;; ++;; for (i=0; idot_prod" ++ [(set (match_operand:VS 0 "register_operand") ++ (plus:VS (unspec:VS [(match_operand: 1 "register_operand") ++ (match_operand: 2 "register_operand")] ++ DOTPROD) ++ (match_operand:VS 3 "register_operand")))] ++ "TARGET_DOTPROD" ++{ ++ emit_insn ( ++ gen_aarch64_dot (operands[3], operands[3], operands[1], ++ operands[2])); ++ emit_insn (gen_rtx_SET (operands[0], operands[3])); ++ DONE; ++}) ++ ++;; These instructions map to the __builtins for the Dot Product ++;; indexed operations. ++(define_insn "aarch64_dot_lane" ++ [(set (match_operand:VS 0 "register_operand" "=w") ++ (plus:VS (match_operand:VS 1 "register_operand" "0") ++ (unspec:VS [(match_operand: 2 "register_operand" "w") ++ (match_operand:V8QI 3 "register_operand" "") ++ (match_operand:SI 4 "immediate_operand" "i")] ++ DOTPROD)))] ++ "TARGET_DOTPROD" ++ { ++ operands[4] ++ = GEN_INT (ENDIAN_LANE_N (V8QImode, INTVAL (operands[4]))); ++ return "dot\\t%0., %2., %3.4b[%4]"; ++ } ++ [(set_attr "type" "neon_dot")] ++) ++ ++(define_insn "aarch64_dot_laneq" ++ [(set (match_operand:VS 0 "register_operand" "=w") ++ (plus:VS (match_operand:VS 1 "register_operand" "0") ++ (unspec:VS [(match_operand: 2 "register_operand" "w") ++ (match_operand:V16QI 3 "register_operand" "") ++ (match_operand:SI 4 "immediate_operand" "i")] ++ DOTPROD)))] ++ "TARGET_DOTPROD" ++ { ++ operands[4] ++ = GEN_INT (ENDIAN_LANE_N (V16QImode, INTVAL (operands[4]))); ++ return "dot\\t%0., %2., %3.4b[%4]"; ++ } ++ [(set_attr "type" "neon_dot")] ++) ++ + (define_expand "copysign3" + [(match_operand:VHSDF 0 "register_operand") + (match_operand:VHSDF 1 "register_operand") +@@ -561,18 +655,18 @@ + gcc_unreachable (); + } + } +- [(set_attr "type" "neon_from_gp, neon_ins, neon_load1_1reg")] ++ [(set_attr "type" "neon_from_gp, neon_ins, neon_load1_one_lane")] + ) + + (define_insn "*aarch64_simd_vec_copy_lane" +- [(set (match_operand:VALL 0 "register_operand" "=w") +- (vec_merge:VALL +- (vec_duplicate:VALL ++ [(set (match_operand:VALL_F16 0 "register_operand" "=w") ++ (vec_merge:VALL_F16 ++ (vec_duplicate:VALL_F16 + (vec_select: +- (match_operand:VALL 3 "register_operand" "w") ++ (match_operand:VALL_F16 3 "register_operand" "w") + (parallel + [(match_operand:SI 4 "immediate_operand" "i")]))) +- (match_operand:VALL 1 "register_operand" "0") ++ (match_operand:VALL_F16 1 "register_operand" "0") + (match_operand:SI 2 "immediate_operand" "i")))] + "TARGET_SIMD" + { +@@ -1020,6 +1114,18 @@ + [(set_attr "type" "neon_mla__scalar")] + ) + ++(define_insn "*aarch64_mla_elt_merge" ++ [(set (match_operand:VDQHS 0 "register_operand" "=w") ++ (plus:VDQHS ++ (mult:VDQHS (vec_duplicate:VDQHS ++ (match_operand: 1 "register_operand" "w")) ++ (match_operand:VDQHS 2 "register_operand" "w")) ++ (match_operand:VDQHS 3 "register_operand" "0")))] ++ "TARGET_SIMD" ++ "mla\t%0., %2., %1.[0]" ++ [(set_attr "type" "neon_mla__scalar")] ++) ++ + (define_insn "aarch64_mls" + [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w") + (minus:VDQ_BHSI (match_operand:VDQ_BHSI 1 "register_operand" "0") +@@ -1067,6 +1173,18 @@ + [(set_attr "type" "neon_mla__scalar")] + ) + ++(define_insn "*aarch64_mls_elt_merge" ++ [(set (match_operand:VDQHS 0 "register_operand" "=w") ++ (minus:VDQHS ++ (match_operand:VDQHS 1 "register_operand" "0") ++ (mult:VDQHS (vec_duplicate:VDQHS ++ (match_operand: 2 "register_operand" "w")) ++ (match_operand:VDQHS 3 "register_operand" "w"))))] ++ "TARGET_SIMD" ++ "mls\t%0., %3., %2.[0]" ++ [(set_attr "type" "neon_mla__scalar")] ++) ++ + ;; Max/Min operations. + (define_insn "3" + [(set (match_operand:VDQ_BHSI 0 "register_operand" "=w") +@@ -2815,38 +2933,10 @@ + (match_operand:VDC 2 "register_operand")] + "TARGET_SIMD" + { +- rtx op1, op2; +- if (BYTES_BIG_ENDIAN) +- { +- op1 = operands[2]; +- op2 = operands[1]; +- } +- else +- { +- op1 = operands[1]; +- op2 = operands[2]; +- } +- emit_insn (gen_aarch64_combine_internal (operands[0], op1, op2)); +- DONE; +-} +-) ++ aarch64_split_simd_combine (operands[0], operands[1], operands[2]); + +-(define_insn_and_split "aarch64_combine_internal" +- [(set (match_operand: 0 "register_operand" "=&w") +- (vec_concat: (match_operand:VDC 1 "register_operand" "w") +- (match_operand:VDC 2 "register_operand" "w")))] +- "TARGET_SIMD" +- "#" +- "&& reload_completed" +- [(const_int 0)] +-{ +- if (BYTES_BIG_ENDIAN) +- aarch64_split_simd_combine (operands[0], operands[2], operands[1]); +- else +- aarch64_split_simd_combine (operands[0], operands[1], operands[2]); + DONE; + } +-[(set_attr "type" "multiple")] + ) + + (define_expand "aarch64_simd_combine" +--- a/src/gcc/config/aarch64/aarch64-tune.md ++++ b/src/gcc/config/aarch64/aarch64-tune.md +@@ -1,5 +1,5 @@ + ;; -*- buffer-read-only: t -*- + ;; Generated automatically by gentune.sh from aarch64-cores.def + (define_attr "tune" +- "cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,exynosm1,falkor,qdf24xx,thunderx,thunderxt88p1,thunderxt88,thunderxt81,thunderxt83,thunderx2t99,xgene1,thunderx2t99p1,vulcan,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53" ++ "cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,thunderxt81,thunderxt83,xgene1,falkor,qdf24xx,exynosm1,thunderx2t99p1,vulcan,thunderx2t99,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53" + (const (symbol_ref "((enum attr_tune) aarch64_tune)"))) +--- a/src/gcc/config/aarch64/aarch64-tuning-flags.def ++++ b/src/gcc/config/aarch64/aarch64-tuning-flags.def +@@ -35,4 +35,10 @@ two load/stores are not at least 8 byte aligned don't create load/store + pairs. */ + AARCH64_EXTRA_TUNING_OPTION ("slow_unaligned_ldpw", SLOW_UNALIGNED_LDPW) + ++/* Some of the optional shift to some arthematic instructions are ++ considered cheap. Logical shift left <=4 with or without a ++ zero extend are considered cheap. Sign extend; non logical shift left ++ are not considered cheap. */ ++AARCH64_EXTRA_TUNING_OPTION ("cheap_shift_extend", CHEAP_SHIFT_EXTEND) ++ + #undef AARCH64_EXTRA_TUNING_OPTION +--- a/src/gcc/config/aarch64/aarch64.c ++++ b/src/gcc/config/aarch64/aarch64.c +@@ -147,6 +147,8 @@ static bool aarch64_builtin_support_vector_misalignment (machine_mode mode, + const_tree type, + int misalignment, + bool is_packed); ++static machine_mode ++aarch64_simd_container_mode (machine_mode mode, unsigned width); + + /* Major revision number of the ARM Architecture implemented by the target. */ + unsigned aarch64_architecture_version; +@@ -193,10 +195,10 @@ static const struct aarch64_flag_desc aarch64_tuning_flags[] = + static const struct cpu_addrcost_table generic_addrcost_table = + { + { +- 0, /* hi */ ++ 1, /* hi */ + 0, /* si */ + 0, /* di */ +- 0, /* ti */ ++ 1, /* ti */ + }, + 0, /* pre_modify */ + 0, /* post_modify */ +@@ -390,13 +392,13 @@ static const struct cpu_vector_cost thunderx_vector_cost = + 3, /* scalar_load_cost */ + 1, /* scalar_store_cost */ + 4, /* vec_int_stmt_cost */ +- 4, /* vec_fp_stmt_cost */ ++ 1, /* vec_fp_stmt_cost */ + 4, /* vec_permute_cost */ + 2, /* vec_to_scalar_cost */ + 2, /* scalar_to_vec_cost */ + 3, /* vec_align_load_cost */ +- 10, /* vec_unalign_load_cost */ +- 10, /* vec_unalign_store_cost */ ++ 5, /* vec_unalign_load_cost */ ++ 5, /* vec_unalign_store_cost */ + 1, /* vec_store_cost */ + 3, /* cond_taken_branch_cost */ + 3 /* cond_not_taken_branch_cost */ +@@ -526,6 +528,61 @@ static const cpu_approx_modes xgene1_approx_modes = + AARCH64_APPROX_ALL /* recip_sqrt */ + }; + ++/* Generic prefetch settings (which disable prefetch). */ ++static const cpu_prefetch_tune generic_prefetch_tune = ++{ ++ 0, /* num_slots */ ++ -1, /* l1_cache_size */ ++ -1, /* l1_cache_line_size */ ++ -1, /* l2_cache_size */ ++ -1 /* default_opt_level */ ++}; ++ ++static const cpu_prefetch_tune exynosm1_prefetch_tune = ++{ ++ 0, /* num_slots */ ++ -1, /* l1_cache_size */ ++ 64, /* l1_cache_line_size */ ++ -1, /* l2_cache_size */ ++ -1 /* default_opt_level */ ++}; ++ ++static const cpu_prefetch_tune qdf24xx_prefetch_tune = ++{ ++ 4, /* num_slots */ ++ 32, /* l1_cache_size */ ++ 64, /* l1_cache_line_size */ ++ 1024, /* l2_cache_size */ ++ 3 /* default_opt_level */ ++}; ++ ++static const cpu_prefetch_tune thunderxt88_prefetch_tune = ++{ ++ 8, /* num_slots */ ++ 32, /* l1_cache_size */ ++ 128, /* l1_cache_line_size */ ++ 16*1024, /* l2_cache_size */ ++ 3 /* default_opt_level */ ++}; ++ ++static const cpu_prefetch_tune thunderx_prefetch_tune = ++{ ++ 8, /* num_slots */ ++ 32, /* l1_cache_size */ ++ 128, /* l1_cache_line_size */ ++ -1, /* l2_cache_size */ ++ -1 /* default_opt_level */ ++}; ++ ++static const cpu_prefetch_tune thunderx2t99_prefetch_tune = ++{ ++ 8, /* num_slots */ ++ 32, /* l1_cache_size */ ++ 64, /* l1_cache_line_size */ ++ 256, /* l2_cache_size */ ++ -1 /* default_opt_level */ ++}; ++ + static const struct tune_params generic_tunings = + { + &cortexa57_extra_costs, +@@ -538,17 +595,17 @@ static const struct tune_params generic_tunings = + 2, /* issue_rate */ + (AARCH64_FUSE_AES_AESMC), /* fusible_ops */ + 8, /* function_align. */ +- 8, /* jump_align. */ +- 4, /* loop_align. */ ++ 4, /* jump_align. */ ++ 8, /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ + 1, /* vec_reassoc_width. */ + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ +- tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params cortexa35_tunings = +@@ -564,7 +621,7 @@ static const struct tune_params cortexa35_tunings = + (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD + | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ + 16, /* function_align. */ +- 8, /* jump_align. */ ++ 4, /* jump_align. */ + 8, /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ +@@ -572,9 +629,9 @@ static const struct tune_params cortexa35_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params cortexa53_tunings = +@@ -590,7 +647,7 @@ static const struct tune_params cortexa53_tunings = + (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD + | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ + 16, /* function_align. */ +- 8, /* jump_align. */ ++ 4, /* jump_align. */ + 8, /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ +@@ -598,9 +655,9 @@ static const struct tune_params cortexa53_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params cortexa57_tunings = +@@ -616,7 +673,7 @@ static const struct tune_params cortexa57_tunings = + (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD + | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops */ + 16, /* function_align. */ +- 8, /* jump_align. */ ++ 4, /* jump_align. */ + 8, /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ +@@ -624,9 +681,9 @@ static const struct tune_params cortexa57_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_RENAME_FMA_REGS) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_RENAME_FMA_REGS), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params cortexa72_tunings = +@@ -642,7 +699,7 @@ static const struct tune_params cortexa72_tunings = + (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD + | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops */ + 16, /* function_align. */ +- 8, /* jump_align. */ ++ 4, /* jump_align. */ + 8, /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ +@@ -650,9 +707,9 @@ static const struct tune_params cortexa72_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params cortexa73_tunings = +@@ -668,7 +725,7 @@ static const struct tune_params cortexa73_tunings = + (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD + | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ + 16, /* function_align. */ +- 8, /* jump_align. */ ++ 4, /* jump_align. */ + 8, /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ +@@ -676,11 +733,13 @@ static const struct tune_params cortexa73_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &generic_prefetch_tune + }; + ++ ++ + static const struct tune_params exynosm1_tunings = + { + &exynosm1_extra_costs, +@@ -701,9 +760,34 @@ static const struct tune_params exynosm1_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 48, /* max_case_values. */ +- 64, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &exynosm1_prefetch_tune ++}; ++ ++static const struct tune_params thunderxt88_tunings = ++{ ++ &thunderx_extra_costs, ++ &generic_addrcost_table, ++ &thunderx_regmove_cost, ++ &thunderx_vector_cost, ++ &generic_branch_cost, ++ &generic_approx_modes, ++ 6, /* memmov_cost */ ++ 2, /* issue_rate */ ++ AARCH64_FUSE_CMP_BRANCH, /* fusible_ops */ ++ 8, /* function_align. */ ++ 8, /* jump_align. */ ++ 8, /* loop_align. */ ++ 2, /* int_reassoc_width. */ ++ 4, /* fp_reassoc_width. */ ++ 1, /* vec_reassoc_width. */ ++ 2, /* min_div_recip_mul_sf. */ ++ 2, /* min_div_recip_mul_df. */ ++ 0, /* max_case_values. */ ++ tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */ ++ (AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW), /* tune_flags. */ ++ &thunderxt88_prefetch_tune + }; + + static const struct tune_params thunderx_tunings = +@@ -726,9 +810,10 @@ static const struct tune_params thunderx_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW ++ | AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND), /* tune_flags. */ ++ &thunderx_prefetch_tune + }; + + static const struct tune_params xgene1_tunings = +@@ -751,9 +836,9 @@ static const struct tune_params xgene1_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params qdf24xx_tunings = +@@ -777,9 +862,9 @@ static const struct tune_params qdf24xx_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 64, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_STRONG, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &qdf24xx_prefetch_tune + }; + + static const struct tune_params thunderx2t99_tunings = +@@ -792,7 +877,8 @@ static const struct tune_params thunderx2t99_tunings = + &generic_approx_modes, + 4, /* memmov_cost. */ + 4, /* issue_rate. */ +- (AARCH64_FUSE_CMP_BRANCH | AARCH64_FUSE_AES_AESMC), /* fusible_ops */ ++ (AARCH64_FUSE_CMP_BRANCH | AARCH64_FUSE_AES_AESMC ++ | AARCH64_FUSE_ALU_BRANCH), /* fusible_ops */ + 16, /* function_align. */ + 8, /* jump_align. */ + 16, /* loop_align. */ +@@ -802,9 +888,9 @@ static const struct tune_params thunderx2t99_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 64, /* cache_line_size. */ +- tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &thunderx2t99_prefetch_tune + }; + + /* Support for fine-grained override of the tuning structures. */ +@@ -1649,41 +1735,41 @@ aarch64_split_simd_combine (rtx dst, rtx src1, rtx src2) + machine_mode dst_mode = GET_MODE (dst); + + gcc_assert (VECTOR_MODE_P (dst_mode)); ++ gcc_assert (register_operand (dst, dst_mode) ++ && register_operand (src1, src_mode) ++ && register_operand (src2, src_mode)); + +- if (REG_P (dst) && REG_P (src1) && REG_P (src2)) +- { +- rtx (*gen) (rtx, rtx, rtx); +- +- switch (src_mode) +- { +- case V8QImode: +- gen = gen_aarch64_simd_combinev8qi; +- break; +- case V4HImode: +- gen = gen_aarch64_simd_combinev4hi; +- break; +- case V2SImode: +- gen = gen_aarch64_simd_combinev2si; +- break; +- case V4HFmode: +- gen = gen_aarch64_simd_combinev4hf; +- break; +- case V2SFmode: +- gen = gen_aarch64_simd_combinev2sf; +- break; +- case DImode: +- gen = gen_aarch64_simd_combinedi; +- break; +- case DFmode: +- gen = gen_aarch64_simd_combinedf; +- break; +- default: +- gcc_unreachable (); +- } ++ rtx (*gen) (rtx, rtx, rtx); + +- emit_insn (gen (dst, src1, src2)); +- return; ++ switch (src_mode) ++ { ++ case V8QImode: ++ gen = gen_aarch64_simd_combinev8qi; ++ break; ++ case V4HImode: ++ gen = gen_aarch64_simd_combinev4hi; ++ break; ++ case V2SImode: ++ gen = gen_aarch64_simd_combinev2si; ++ break; ++ case V4HFmode: ++ gen = gen_aarch64_simd_combinev4hf; ++ break; ++ case V2SFmode: ++ gen = gen_aarch64_simd_combinev2sf; ++ break; ++ case DImode: ++ gen = gen_aarch64_simd_combinedi; ++ break; ++ case DFmode: ++ gen = gen_aarch64_simd_combinedf; ++ break; ++ default: ++ gcc_unreachable (); + } ++ ++ emit_insn (gen (dst, src1, src2)); ++ return; + } + + /* Split a complex SIMD move. */ +@@ -1792,6 +1878,31 @@ aarch64_internal_mov_immediate (rtx dest, rtx imm, bool generate, + return 1; + } + ++ /* Check to see if the low 32 bits are either 0xffffXXXX or 0xXXXXffff ++ (with XXXX non-zero). In that case check to see if the move can be done in ++ a smaller mode. */ ++ val2 = val & 0xffffffff; ++ if (mode == DImode ++ && aarch64_move_imm (val2, SImode) ++ && (((val >> 32) & 0xffff) == 0 || (val >> 48) == 0)) ++ { ++ if (generate) ++ emit_insn (gen_rtx_SET (dest, GEN_INT (val2))); ++ ++ /* Check if we have to emit a second instruction by checking to see ++ if any of the upper 32 bits of the original DI mode value is set. */ ++ if (val == val2) ++ return 1; ++ ++ i = (val >> 48) ? 48 : 32; ++ ++ if (generate) ++ emit_insn (gen_insv_immdi (dest, GEN_INT (i), ++ GEN_INT ((val >> i) & 0xffff))); ++ ++ return 2; ++ } ++ + if ((val >> 32) == 0 || mode == SImode) + { + if (generate) +@@ -1919,6 +2030,8 @@ aarch64_expand_mov_immediate (rtx dest, rtx imm) + gcc_assert (can_create_pseudo_p ()); + base = gen_reg_rtx (ptr_mode); + aarch64_expand_mov_immediate (base, XEXP (mem, 0)); ++ if (ptr_mode != Pmode) ++ base = convert_memory_address (Pmode, base); + mem = gen_rtx_MEM (ptr_mode, base); + } + +@@ -2683,11 +2796,19 @@ aarch64_emit_probe_stack_range (HOST_WIDE_INT first, HOST_WIDE_INT size) + plus_constant (Pmode, stack_pointer_rtx, -first)); + + /* LAST_ADDR = SP + FIRST + ROUNDED_SIZE. */ +- emit_set_insn (reg2, +- plus_constant (Pmode, stack_pointer_rtx, +- -(first + rounded_size))); +- +- ++ HOST_WIDE_INT adjustment = - (first + rounded_size); ++ if (! aarch64_uimm12_shift (adjustment)) ++ { ++ aarch64_internal_mov_immediate (reg2, GEN_INT (adjustment), ++ true, Pmode); ++ emit_set_insn (reg2, gen_rtx_PLUS (Pmode, stack_pointer_rtx, reg2)); ++ } ++ else ++ { ++ emit_set_insn (reg2, ++ plus_constant (Pmode, stack_pointer_rtx, adjustment)); ++ } ++ + /* Step 3: the loop + + do +@@ -4550,6 +4671,24 @@ aarch64_classify_address (struct aarch64_address_info *info, + } + } + ++/* Return true if the address X is valid for a PRFM instruction. ++ STRICT_P is true if we should do strict checking with ++ aarch64_classify_address. */ ++ ++bool ++aarch64_address_valid_for_prefetch_p (rtx x, bool strict_p) ++{ ++ struct aarch64_address_info addr; ++ ++ /* PRFM accepts the same addresses as DImode... */ ++ bool res = aarch64_classify_address (&addr, x, DImode, MEM, strict_p); ++ if (!res) ++ return false; ++ ++ /* ... except writeback forms. */ ++ return addr.type != ADDRESS_REG_WB; ++} ++ + bool + aarch64_symbolic_address_p (rtx x) + { +@@ -4612,6 +4751,74 @@ aarch64_legitimize_address_displacement (rtx *disp, rtx *off, machine_mode mode) + return true; + } + ++/* Return the binary representation of floating point constant VALUE in INTVAL. ++ If the value cannot be converted, return false without setting INTVAL. ++ The conversion is done in the given MODE. */ ++bool ++aarch64_reinterpret_float_as_int (rtx value, unsigned HOST_WIDE_INT *intval) ++{ ++ ++ /* We make a general exception for 0. */ ++ if (aarch64_float_const_zero_rtx_p (value)) ++ { ++ *intval = 0; ++ return true; ++ } ++ ++ machine_mode mode = GET_MODE (value); ++ if (GET_CODE (value) != CONST_DOUBLE ++ || !SCALAR_FLOAT_MODE_P (mode) ++ || GET_MODE_BITSIZE (mode) > HOST_BITS_PER_WIDE_INT ++ /* Only support up to DF mode. */ ++ || GET_MODE_BITSIZE (mode) > GET_MODE_BITSIZE (DFmode)) ++ return false; ++ ++ unsigned HOST_WIDE_INT ival = 0; ++ ++ long res[2]; ++ real_to_target (res, ++ CONST_DOUBLE_REAL_VALUE (value), ++ REAL_MODE_FORMAT (mode)); ++ ++ if (mode == DFmode) ++ { ++ int order = BYTES_BIG_ENDIAN ? 1 : 0; ++ ival = zext_hwi (res[order], 32); ++ ival |= (zext_hwi (res[1 - order], 32) << 32); ++ } ++ else ++ ival = zext_hwi (res[0], 32); ++ ++ *intval = ival; ++ return true; ++} ++ ++/* Return TRUE if rtx X is an immediate constant that can be moved using a ++ single MOV(+MOVK) followed by an FMOV. */ ++bool ++aarch64_float_const_rtx_p (rtx x) ++{ ++ machine_mode mode = GET_MODE (x); ++ if (mode == VOIDmode) ++ return false; ++ ++ /* Determine whether it's cheaper to write float constants as ++ mov/movk pairs over ldr/adrp pairs. */ ++ unsigned HOST_WIDE_INT ival; ++ ++ if (GET_CODE (x) == CONST_DOUBLE ++ && SCALAR_FLOAT_MODE_P (mode) ++ && aarch64_reinterpret_float_as_int (x, &ival)) ++ { ++ machine_mode imode = mode == HFmode ? SImode : int_mode_for_mode (mode); ++ int num_instr = aarch64_internal_mov_immediate ++ (NULL_RTX, gen_int_mode (ival, imode), false, imode); ++ return num_instr < 3; ++ } ++ ++ return false; ++} ++ + /* Return TRUE if rtx X is immediate constant 0.0 */ + bool + aarch64_float_const_zero_rtx_p (rtx x) +@@ -4624,6 +4831,49 @@ aarch64_float_const_zero_rtx_p (rtx x) + return real_equal (CONST_DOUBLE_REAL_VALUE (x), &dconst0); + } + ++/* Return TRUE if rtx X is immediate constant that fits in a single ++ MOVI immediate operation. */ ++bool ++aarch64_can_const_movi_rtx_p (rtx x, machine_mode mode) ++{ ++ if (!TARGET_SIMD) ++ return false; ++ ++ machine_mode vmode, imode; ++ unsigned HOST_WIDE_INT ival; ++ ++ if (GET_CODE (x) == CONST_DOUBLE ++ && SCALAR_FLOAT_MODE_P (mode)) ++ { ++ if (!aarch64_reinterpret_float_as_int (x, &ival)) ++ return false; ++ ++ /* We make a general exception for 0. */ ++ if (aarch64_float_const_zero_rtx_p (x)) ++ return true; ++ ++ imode = int_mode_for_mode (mode); ++ } ++ else if (GET_CODE (x) == CONST_INT ++ && SCALAR_INT_MODE_P (mode)) ++ { ++ imode = mode; ++ ival = INTVAL (x); ++ } ++ else ++ return false; ++ ++ /* use a 64 bit mode for everything except for DI/DF mode, where we use ++ a 128 bit vector mode. */ ++ int width = GET_MODE_BITSIZE (mode) == 64 ? 128 : 64; ++ ++ vmode = aarch64_simd_container_mode (imode, width); ++ rtx v_op = aarch64_simd_gen_const_vector_dup (vmode, ival); ++ ++ return aarch64_simd_valid_immediate (v_op, vmode, false, NULL); ++} ++ ++ + /* Return the fixed registers used for condition codes. */ + + static bool +@@ -4634,6 +4884,50 @@ aarch64_fixed_condition_code_regs (unsigned int *p1, unsigned int *p2) + return true; + } + ++/* This function is used by the call expanders of the machine description. ++ RESULT is the register in which the result is returned. It's NULL for ++ "call" and "sibcall". ++ MEM is the location of the function call. ++ SIBCALL indicates whether this function call is normal call or sibling call. ++ It will generate different pattern accordingly. */ ++ ++void ++aarch64_expand_call (rtx result, rtx mem, bool sibcall) ++{ ++ rtx call, callee, tmp; ++ rtvec vec; ++ machine_mode mode; ++ ++ gcc_assert (MEM_P (mem)); ++ callee = XEXP (mem, 0); ++ mode = GET_MODE (callee); ++ gcc_assert (mode == Pmode); ++ ++ /* Decide if we should generate indirect calls by loading the ++ address of the callee into a register before performing ++ the branch-and-link. */ ++ if (SYMBOL_REF_P (callee) ++ ? (aarch64_is_long_call_p (callee) ++ || aarch64_is_noplt_call_p (callee)) ++ : !REG_P (callee)) ++ XEXP (mem, 0) = force_reg (mode, callee); ++ ++ call = gen_rtx_CALL (VOIDmode, mem, const0_rtx); ++ ++ if (result != NULL_RTX) ++ call = gen_rtx_SET (result, call); ++ ++ if (sibcall) ++ tmp = ret_rtx; ++ else ++ tmp = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, LR_REGNUM)); ++ ++ vec = gen_rtvec (2, call, tmp); ++ call = gen_rtx_PARALLEL (VOIDmode, vec); ++ ++ aarch64_emit_call_insn (call); ++} ++ + /* Emit call insn with PAT and do aarch64-specific handling. */ + + void +@@ -4706,7 +5000,7 @@ aarch64_select_cc_mode (RTX_CODE code, rtx x, rtx y) + the comparison will have to be swapped when we emit the assembly + code. */ + if ((GET_MODE (x) == SImode || GET_MODE (x) == DImode) +- && (REG_P (y) || GET_CODE (y) == SUBREG) ++ && (REG_P (y) || GET_CODE (y) == SUBREG || y == const0_rtx) + && (GET_CODE (x) == ASHIFT || GET_CODE (x) == ASHIFTRT + || GET_CODE (x) == LSHIFTRT + || GET_CODE (x) == ZERO_EXTEND || GET_CODE (x) == SIGN_EXTEND)) +@@ -5113,6 +5407,8 @@ aarch64_print_operand (FILE *f, rtx x, int code) + + case MEM: + output_address (GET_MODE (x), XEXP (x, 0)); ++ /* Check all memory references are Pmode - even with ILP32. */ ++ gcc_assert (GET_MODE (XEXP (x, 0)) == Pmode); + break; + + case CONST: +@@ -5758,12 +6054,6 @@ aarch64_preferred_reload_class (rtx x, reg_class_t regclass) + return NO_REGS; + } + +- /* If it's an integer immediate that MOVI can't handle, then +- FP_REGS is not an option, so we return NO_REGS instead. */ +- if (CONST_INT_P (x) && reg_class_subset_p (regclass, FP_REGS) +- && !aarch64_simd_imm_scalar_p (x, GET_MODE (x))) +- return NO_REGS; +- + /* Register eliminiation can result in a request for + SP+constant->FP_REGS. We cannot support such operations which + use SP as source and an FP_REG as destination, so reject out +@@ -5978,9 +6268,10 @@ aarch64_strip_shift (rtx x) + /* Helper function for rtx cost calculation. Strip an extend + expression from X. Returns the inner operand if successful, or the + original expression on failure. We deal with a number of possible +- canonicalization variations here. */ ++ canonicalization variations here. If STRIP_SHIFT is true, then ++ we can strip off a shift also. */ + static rtx +-aarch64_strip_extend (rtx x) ++aarch64_strip_extend (rtx x, bool strip_shift) + { + rtx op = x; + +@@ -6004,7 +6295,8 @@ aarch64_strip_extend (rtx x) + + /* Now handle extended register, as this may also have an optional + left shift by 1..4. */ +- if (GET_CODE (op) == ASHIFT ++ if (strip_shift ++ && GET_CODE (op) == ASHIFT + && CONST_INT_P (XEXP (op, 1)) + && ((unsigned HOST_WIDE_INT) INTVAL (XEXP (op, 1))) <= 4) + op = XEXP (op, 0); +@@ -6028,6 +6320,39 @@ aarch64_shift_p (enum rtx_code code) + return code == ASHIFT || code == ASHIFTRT || code == LSHIFTRT; + } + ++ ++/* Return true iff X is a cheap shift without a sign extend. */ ++ ++static bool ++aarch64_cheap_mult_shift_p (rtx x) ++{ ++ rtx op0, op1; ++ ++ op0 = XEXP (x, 0); ++ op1 = XEXP (x, 1); ++ ++ if (!(aarch64_tune_params.extra_tuning_flags ++ & AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND)) ++ return false; ++ ++ if (GET_CODE (op0) == SIGN_EXTEND) ++ return false; ++ ++ if (GET_CODE (x) == ASHIFT && CONST_INT_P (op1) ++ && UINTVAL (op1) <= 4) ++ return true; ++ ++ if (GET_CODE (x) != MULT || !CONST_INT_P (op1)) ++ return false; ++ ++ HOST_WIDE_INT l2 = exact_log2 (INTVAL (op1)); ++ ++ if (l2 > 0 && l2 <= 4) ++ return true; ++ ++ return false; ++} ++ + /* Helper function for rtx cost calculation. Calculate the cost of + a MULT or ASHIFT, which may be part of a compound PLUS/MINUS rtx. + Return the calculated cost of the expression, recursing manually in to +@@ -6065,7 +6390,11 @@ aarch64_rtx_mult_cost (rtx x, enum rtx_code code, int outer, bool speed) + { + if (compound_p) + { +- if (REG_P (op1)) ++ /* If the shift is considered cheap, ++ then don't add any cost. */ ++ if (aarch64_cheap_mult_shift_p (x)) ++ ; ++ else if (REG_P (op1)) + /* ARITH + shift-by-register. */ + cost += extra_cost->alu.arith_shift_reg; + else if (is_extend) +@@ -6083,7 +6412,7 @@ aarch64_rtx_mult_cost (rtx x, enum rtx_code code, int outer, bool speed) + } + /* Strip extends as we will have costed them in the case above. */ + if (is_extend) +- op0 = aarch64_strip_extend (op0); ++ op0 = aarch64_strip_extend (op0, true); + + cost += rtx_cost (op0, VOIDmode, code, 0, speed); + +@@ -6675,6 +7004,25 @@ aarch64_rtx_costs (rtx x, machine_mode mode, int outer ATTRIBUTE_UNUSED, + return true; + + case CONST_DOUBLE: ++ ++ /* First determine number of instructions to do the move ++ as an integer constant. */ ++ if (!aarch64_float_const_representable_p (x) ++ && !aarch64_can_const_movi_rtx_p (x, mode) ++ && aarch64_float_const_rtx_p (x)) ++ { ++ unsigned HOST_WIDE_INT ival; ++ bool succeed = aarch64_reinterpret_float_as_int (x, &ival); ++ gcc_assert (succeed); ++ ++ machine_mode imode = mode == HFmode ? SImode ++ : int_mode_for_mode (mode); ++ int ncost = aarch64_internal_mov_immediate ++ (NULL_RTX, gen_int_mode (ival, imode), false, imode); ++ *cost += COSTS_N_INSNS (ncost); ++ return true; ++ } ++ + if (speed) + { + /* mov[df,sf]_aarch64. */ +@@ -6928,13 +7276,13 @@ cost_minus: + if (speed) + *cost += extra_cost->alu.extend_arith; + +- op1 = aarch64_strip_extend (op1); ++ op1 = aarch64_strip_extend (op1, true); + *cost += rtx_cost (op1, VOIDmode, + (enum rtx_code) GET_CODE (op1), 0, speed); + return true; + } + +- rtx new_op1 = aarch64_strip_extend (op1); ++ rtx new_op1 = aarch64_strip_extend (op1, false); + + /* Cost this as an FMA-alike operation. */ + if ((GET_CODE (new_op1) == MULT +@@ -7007,7 +7355,7 @@ cost_plus: + if (speed) + *cost += extra_cost->alu.extend_arith; + +- op0 = aarch64_strip_extend (op0); ++ op0 = aarch64_strip_extend (op0, true); + *cost += rtx_cost (op0, VOIDmode, + (enum rtx_code) GET_CODE (op0), 0, speed); + return true; +@@ -7015,7 +7363,7 @@ cost_plus: + + /* Strip any extend, leave shifts behind as we will + cost them through mult_cost. */ +- new_op0 = aarch64_strip_extend (op0); ++ new_op0 = aarch64_strip_extend (op0, false); + + if (GET_CODE (new_op0) == MULT + || aarch64_shift_p (GET_CODE (new_op0))) +@@ -7485,17 +7833,13 @@ cost_plus: + case UMOD: + if (speed) + { ++ /* Slighly prefer UMOD over SMOD. */ + if (VECTOR_MODE_P (mode)) + *cost += extra_cost->vect.alu; + else if (GET_MODE_CLASS (mode) == MODE_INT) + *cost += (extra_cost->mult[mode == DImode].add +- + extra_cost->mult[mode == DImode].idiv); +- else if (mode == DFmode) +- *cost += (extra_cost->fp[1].mult +- + extra_cost->fp[1].div); +- else if (mode == SFmode) +- *cost += (extra_cost->fp[0].mult +- + extra_cost->fp[0].div); ++ + extra_cost->mult[mode == DImode].idiv ++ + (code == MOD ? 1 : 0)); + } + return false; /* All arguments need to be in registers. */ + +@@ -7509,7 +7853,9 @@ cost_plus: + else if (GET_MODE_CLASS (mode) == MODE_INT) + /* There is no integer SQRT, so only DIV and UDIV can get + here. */ +- *cost += extra_cost->mult[mode == DImode].idiv; ++ *cost += (extra_cost->mult[mode == DImode].idiv ++ /* Slighly prefer UDIV over SDIV. */ ++ + (code == DIV ? 1 : 0)); + else + *cost += extra_cost->fp[mode == DFmode].div; + } +@@ -8671,12 +9017,38 @@ aarch64_override_options_internal (struct gcc_options *opts) + opts->x_param_values, + global_options_set.x_param_values); + +- /* Set the L1 cache line size. */ +- if (selected_cpu->tune->cache_line_size != 0) ++ /* Set up parameters to be used in prefetching algorithm. Do not ++ override the defaults unless we are tuning for a core we have ++ researched values for. */ ++ if (aarch64_tune_params.prefetch->num_slots > 0) ++ maybe_set_param_value (PARAM_SIMULTANEOUS_PREFETCHES, ++ aarch64_tune_params.prefetch->num_slots, ++ opts->x_param_values, ++ global_options_set.x_param_values); ++ if (aarch64_tune_params.prefetch->l1_cache_size >= 0) ++ maybe_set_param_value (PARAM_L1_CACHE_SIZE, ++ aarch64_tune_params.prefetch->l1_cache_size, ++ opts->x_param_values, ++ global_options_set.x_param_values); ++ if (aarch64_tune_params.prefetch->l1_cache_line_size >= 0) + maybe_set_param_value (PARAM_L1_CACHE_LINE_SIZE, +- selected_cpu->tune->cache_line_size, ++ aarch64_tune_params.prefetch->l1_cache_line_size, + opts->x_param_values, + global_options_set.x_param_values); ++ if (aarch64_tune_params.prefetch->l2_cache_size >= 0) ++ maybe_set_param_value (PARAM_L2_CACHE_SIZE, ++ aarch64_tune_params.prefetch->l2_cache_size, ++ opts->x_param_values, ++ global_options_set.x_param_values); ++ ++ /* Enable sw prefetching at specified optimization level for ++ CPUS that have prefetch. Lower optimization level threshold by 1 ++ when profiling is enabled. */ ++ if (opts->x_flag_prefetch_loop_arrays < 0 ++ && !opts->x_optimize_size ++ && aarch64_tune_params.prefetch->default_opt_level >= 0 ++ && opts->x_optimize >= aarch64_tune_params.prefetch->default_opt_level) ++ opts->x_flag_prefetch_loop_arrays = 1; + + aarch64_override_options_after_change_1 (opts); + } +@@ -9954,18 +10326,16 @@ aarch64_legitimate_pic_operand_p (rtx x) + /* Return true if X holds either a quarter-precision or + floating-point +0.0 constant. */ + static bool +-aarch64_valid_floating_const (machine_mode mode, rtx x) ++aarch64_valid_floating_const (rtx x) + { + if (!CONST_DOUBLE_P (x)) + return false; + +- if (aarch64_float_const_zero_rtx_p (x)) ++ /* This call determines which constants can be used in mov ++ as integer moves instead of constant loads. */ ++ if (aarch64_float_const_rtx_p (x)) + return true; + +- /* We only handle moving 0.0 to a TFmode register. */ +- if (!(mode == SFmode || mode == DFmode)) +- return false; +- + return aarch64_float_const_representable_p (x); + } + +@@ -9977,11 +10347,15 @@ aarch64_legitimate_constant_p (machine_mode mode, rtx x) + if (TARGET_SIMD && aarch64_vect_struct_mode_p (mode)) + return false; + +- /* This could probably go away because +- we now decompose CONST_INTs according to expand_mov_immediate. */ ++ /* For these cases we never want to use a literal load. ++ As such we have to prevent the compiler from forcing these ++ to memory. */ + if ((GET_CODE (x) == CONST_VECTOR + && aarch64_simd_valid_immediate (x, mode, false, NULL)) +- || CONST_INT_P (x) || aarch64_valid_floating_const (mode, x)) ++ || CONST_INT_P (x) ++ || aarch64_valid_floating_const (x) ++ || aarch64_can_const_movi_rtx_p (x, mode) ++ || aarch64_float_const_rtx_p (x)) + return !targetm.cannot_force_const_mem (mode, x); + + if (GET_CODE (x) == HIGH +@@ -11258,23 +11632,6 @@ aarch64_mask_from_zextract_ops (rtx width, rtx pos) + return GEN_INT (mask << UINTVAL (pos)); + } + +-bool +-aarch64_simd_imm_scalar_p (rtx x, machine_mode mode ATTRIBUTE_UNUSED) +-{ +- HOST_WIDE_INT imm = INTVAL (x); +- int i; +- +- for (i = 0; i < 8; i++) +- { +- unsigned int byte = imm & 0xff; +- if (byte != 0xff && byte != 0) +- return false; +- imm >>= 8; +- } +- +- return true; +-} +- + bool + aarch64_mov_operand_p (rtx x, machine_mode mode) + { +@@ -11621,6 +11978,57 @@ aarch64_expand_vector_init (rtx target, rtx vals) + return; + } + ++ enum insn_code icode = optab_handler (vec_set_optab, mode); ++ gcc_assert (icode != CODE_FOR_nothing); ++ ++ /* If there are only variable elements, try to optimize ++ the insertion using dup for the most common element ++ followed by insertions. */ ++ ++ /* The algorithm will fill matches[*][0] with the earliest matching element, ++ and matches[X][1] with the count of duplicate elements (if X is the ++ earliest element which has duplicates). */ ++ ++ if (n_var == n_elts && n_elts <= 16) ++ { ++ int matches[16][2] = {0}; ++ for (int i = 0; i < n_elts; i++) ++ { ++ for (int j = 0; j <= i; j++) ++ { ++ if (rtx_equal_p (XVECEXP (vals, 0, i), XVECEXP (vals, 0, j))) ++ { ++ matches[i][0] = j; ++ matches[j][1]++; ++ break; ++ } ++ } ++ } ++ int maxelement = 0; ++ int maxv = 0; ++ for (int i = 0; i < n_elts; i++) ++ if (matches[i][1] > maxv) ++ { ++ maxelement = i; ++ maxv = matches[i][1]; ++ } ++ ++ /* Create a duplicate of the most common element. */ ++ rtx x = copy_to_mode_reg (inner_mode, XVECEXP (vals, 0, maxelement)); ++ aarch64_emit_move (target, gen_rtx_VEC_DUPLICATE (mode, x)); ++ ++ /* Insert the rest. */ ++ for (int i = 0; i < n_elts; i++) ++ { ++ rtx x = XVECEXP (vals, 0, i); ++ if (matches[i][0] == maxelement) ++ continue; ++ x = copy_to_mode_reg (inner_mode, x); ++ emit_insn (GEN_FCN (icode) (target, x, GEN_INT (i))); ++ } ++ return; ++ } ++ + /* Initialise a vector which is part-variable. We want to first try + to build those lanes which are constant in the most efficient way we + can. */ +@@ -11654,10 +12062,6 @@ aarch64_expand_vector_init (rtx target, rtx vals) + } + + /* Insert the variable lanes directly. */ +- +- enum insn_code icode = optab_handler (vec_set_optab, mode); +- gcc_assert (icode != CODE_FOR_nothing); +- + for (int i = 0; i < n_elts; i++) + { + rtx x = XVECEXP (vals, 0, i); +@@ -12023,6 +12427,17 @@ aarch64_split_compare_and_swap (rtx operands[]) + mode = GET_MODE (mem); + model = memmodel_from_int (INTVAL (model_rtx)); + ++ /* When OLDVAL is zero and we want the strong version we can emit a tighter ++ loop: ++ .label1: ++ LD[A]XR rval, [mem] ++ CBNZ rval, .label2 ++ ST[L]XR scratch, newval, [mem] ++ CBNZ scratch, .label1 ++ .label2: ++ CMP rval, 0. */ ++ bool strong_zero_p = !is_weak && oldval == const0_rtx; ++ + label1 = NULL; + if (!is_weak) + { +@@ -12039,11 +12454,21 @@ aarch64_split_compare_and_swap (rtx operands[]) + else + aarch64_emit_load_exclusive (mode, rval, mem, model_rtx); + +- cond = aarch64_gen_compare_reg (NE, rval, oldval); +- x = gen_rtx_NE (VOIDmode, cond, const0_rtx); +- x = gen_rtx_IF_THEN_ELSE (VOIDmode, x, +- gen_rtx_LABEL_REF (Pmode, label2), pc_rtx); +- aarch64_emit_unlikely_jump (gen_rtx_SET (pc_rtx, x)); ++ if (strong_zero_p) ++ { ++ x = gen_rtx_NE (VOIDmode, rval, const0_rtx); ++ x = gen_rtx_IF_THEN_ELSE (VOIDmode, x, ++ gen_rtx_LABEL_REF (Pmode, label2), pc_rtx); ++ aarch64_emit_unlikely_jump (gen_rtx_SET (pc_rtx, x)); ++ } ++ else ++ { ++ cond = aarch64_gen_compare_reg (NE, rval, oldval); ++ x = gen_rtx_NE (VOIDmode, cond, const0_rtx); ++ x = gen_rtx_IF_THEN_ELSE (VOIDmode, x, ++ gen_rtx_LABEL_REF (Pmode, label2), pc_rtx); ++ aarch64_emit_unlikely_jump (gen_rtx_SET (pc_rtx, x)); ++ } + + aarch64_emit_store_exclusive (mode, scratch, mem, newval, model_rtx); + +@@ -12062,7 +12487,15 @@ aarch64_split_compare_and_swap (rtx operands[]) + } + + emit_label (label2); +- ++ /* If we used a CBNZ in the exchange loop emit an explicit compare with RVAL ++ to set the condition flags. If this is not used it will be removed by ++ later passes. */ ++ if (strong_zero_p) ++ { ++ cond = gen_rtx_REG (CCmode, CC_REGNUM); ++ x = gen_rtx_COMPARE (CCmode, rval, const0_rtx); ++ emit_insn (gen_rtx_SET (cond, x)); ++ } + /* Emit any final barrier needed for a __sync operation. */ + if (is_mm_sync (model)) + aarch64_emit_post_barrier (model); +@@ -12582,15 +13015,28 @@ aarch64_output_simd_mov_immediate (rtx const_vector, + } + + char* +-aarch64_output_scalar_simd_mov_immediate (rtx immediate, +- machine_mode mode) ++aarch64_output_scalar_simd_mov_immediate (rtx immediate, machine_mode mode) + { ++ ++ /* If a floating point number was passed and we desire to use it in an ++ integer mode do the conversion to integer. */ ++ if (CONST_DOUBLE_P (immediate) && GET_MODE_CLASS (mode) == MODE_INT) ++ { ++ unsigned HOST_WIDE_INT ival; ++ if (!aarch64_reinterpret_float_as_int (immediate, &ival)) ++ gcc_unreachable (); ++ immediate = gen_int_mode (ival, mode); ++ } ++ + machine_mode vmode; ++ /* use a 64 bit mode for everything except for DI/DF mode, where we use ++ a 128 bit vector mode. */ ++ int width = GET_MODE_BITSIZE (mode) == 64 ? 128 : 64; + + gcc_assert (!VECTOR_MODE_P (mode)); +- vmode = aarch64_simd_container_mode (mode, 64); ++ vmode = aarch64_simd_container_mode (mode, width); + rtx v_op = aarch64_simd_gen_const_vector_dup (vmode, INTVAL (immediate)); +- return aarch64_output_simd_mov_immediate (v_op, vmode, 64); ++ return aarch64_output_simd_mov_immediate (v_op, vmode, width); + } + + /* Split operands into moves from op[1] + op[2] into op[0]. */ +@@ -13953,15 +14399,70 @@ aarch_macro_fusion_pair_p (rtx_insn *prev, rtx_insn *curr) + if (aarch64_fusion_enabled_p (AARCH64_FUSE_CMP_BRANCH) + && any_condjump_p (curr)) + { +- enum attr_type prev_type = get_attr_type (prev); ++ unsigned int condreg1, condreg2; ++ rtx cc_reg_1; ++ aarch64_fixed_condition_code_regs (&condreg1, &condreg2); ++ cc_reg_1 = gen_rtx_REG (CCmode, condreg1); + +- /* FIXME: this misses some which is considered simple arthematic +- instructions for ThunderX. Simple shifts are missed here. */ +- if (prev_type == TYPE_ALUS_SREG +- || prev_type == TYPE_ALUS_IMM +- || prev_type == TYPE_LOGICS_REG +- || prev_type == TYPE_LOGICS_IMM) +- return true; ++ if (reg_referenced_p (cc_reg_1, PATTERN (curr)) ++ && prev ++ && modified_in_p (cc_reg_1, prev)) ++ { ++ enum attr_type prev_type = get_attr_type (prev); ++ ++ /* FIXME: this misses some which is considered simple arthematic ++ instructions for ThunderX. Simple shifts are missed here. */ ++ if (prev_type == TYPE_ALUS_SREG ++ || prev_type == TYPE_ALUS_IMM ++ || prev_type == TYPE_LOGICS_REG ++ || prev_type == TYPE_LOGICS_IMM) ++ return true; ++ } ++ } ++ ++ if (prev_set ++ && curr_set ++ && aarch64_fusion_enabled_p (AARCH64_FUSE_ALU_BRANCH) ++ && any_condjump_p (curr)) ++ { ++ /* We're trying to match: ++ prev (alu_insn) == (set (r0) plus ((r0) (r1/imm))) ++ curr (cbz) == (set (pc) (if_then_else (eq/ne) (r0) ++ (const_int 0)) ++ (label_ref ("SYM")) ++ (pc)) */ ++ if (SET_DEST (curr_set) == (pc_rtx) ++ && GET_CODE (SET_SRC (curr_set)) == IF_THEN_ELSE ++ && REG_P (XEXP (XEXP (SET_SRC (curr_set), 0), 0)) ++ && REG_P (SET_DEST (prev_set)) ++ && REGNO (SET_DEST (prev_set)) ++ == REGNO (XEXP (XEXP (SET_SRC (curr_set), 0), 0))) ++ { ++ /* Fuse ALU operations followed by conditional branch instruction. */ ++ switch (get_attr_type (prev)) ++ { ++ case TYPE_ALU_IMM: ++ case TYPE_ALU_SREG: ++ case TYPE_ADC_REG: ++ case TYPE_ADC_IMM: ++ case TYPE_ADCS_REG: ++ case TYPE_ADCS_IMM: ++ case TYPE_LOGIC_REG: ++ case TYPE_LOGIC_IMM: ++ case TYPE_CSEL: ++ case TYPE_ADR: ++ case TYPE_MOV_IMM: ++ case TYPE_SHIFT_REG: ++ case TYPE_SHIFT_IMM: ++ case TYPE_BFM: ++ case TYPE_RBIT: ++ case TYPE_REV: ++ case TYPE_EXTEND: ++ return true; ++ ++ default:; ++ } ++ } + } + + return false; +--- a/src/gcc/config/aarch64/aarch64.h ++++ b/src/gcc/config/aarch64/aarch64.h +@@ -98,14 +98,24 @@ + && (ALIGN) < BITS_PER_WORD) \ + ? BITS_PER_WORD : ALIGN) + +-#define DATA_ALIGNMENT(EXP, ALIGN) \ +- ((((ALIGN) < BITS_PER_WORD) \ +- && (TREE_CODE (EXP) == ARRAY_TYPE \ +- || TREE_CODE (EXP) == UNION_TYPE \ +- || TREE_CODE (EXP) == RECORD_TYPE)) \ +- ? BITS_PER_WORD : (ALIGN)) +- +-#define LOCAL_ALIGNMENT(EXP, ALIGN) DATA_ALIGNMENT(EXP, ALIGN) ++/* Align definitions of arrays, unions and structures so that ++ initializations and copies can be made more efficient. This is not ++ ABI-changing, so it only affects places where we can see the ++ definition. Increasing the alignment tends to introduce padding, ++ so don't do this when optimizing for size/conserving stack space. */ ++#define AARCH64_EXPAND_ALIGNMENT(COND, EXP, ALIGN) \ ++ (((COND) && ((ALIGN) < BITS_PER_WORD) \ ++ && (TREE_CODE (EXP) == ARRAY_TYPE \ ++ || TREE_CODE (EXP) == UNION_TYPE \ ++ || TREE_CODE (EXP) == RECORD_TYPE)) ? BITS_PER_WORD : (ALIGN)) ++ ++/* Align global data. */ ++#define DATA_ALIGNMENT(EXP, ALIGN) \ ++ AARCH64_EXPAND_ALIGNMENT (!optimize_size, EXP, ALIGN) ++ ++/* Similarly, make sure that objects on the stack are sensibly aligned. */ ++#define LOCAL_ALIGNMENT(EXP, ALIGN) \ ++ AARCH64_EXPAND_ALIGNMENT (!flag_conserve_stack, EXP, ALIGN) + + #define STRUCTURE_SIZE_BOUNDARY 8 + +@@ -134,12 +144,15 @@ extern unsigned aarch64_architecture_version; + #define AARCH64_FL_CRC (1 << 3) /* Has CRC. */ + /* ARMv8.1-A architecture extensions. */ + #define AARCH64_FL_LSE (1 << 4) /* Has Large System Extensions. */ +-#define AARCH64_FL_V8_1 (1 << 5) /* Has ARMv8.1-A extensions. */ ++#define AARCH64_FL_RDMA (1 << 5) /* Has Round Double Multiply Add. */ ++#define AARCH64_FL_V8_1 (1 << 6) /* Has ARMv8.1-A extensions. */ + /* ARMv8.2-A architecture extensions. */ +-#define AARCH64_FL_V8_2 (1 << 8) /* Has ARMv8.2-A features. */ ++#define AARCH64_FL_V8_2 (1 << 8) /* Has ARMv8.2-A features. */ + #define AARCH64_FL_F16 (1 << 9) /* Has ARMv8.2-A FP16 extensions. */ + /* ARMv8.3-A architecture extensions. */ +-#define AARCH64_FL_V8_3 (1 << 10) /* Has ARMv8.3-A features. */ ++#define AARCH64_FL_V8_3 (1 << 10) /* Has ARMv8.3-A features. */ ++#define AARCH64_FL_RCPC (1 << 11) /* Has support for RCpc model. */ ++#define AARCH64_FL_DOTPROD (1 << 12) /* Has ARMv8.2-A Dot Product ins. */ + + /* Has FP and SIMD. */ + #define AARCH64_FL_FPSIMD (AARCH64_FL_FP | AARCH64_FL_SIMD) +@@ -150,7 +163,8 @@ extern unsigned aarch64_architecture_version; + /* Architecture flags that effect instruction selection. */ + #define AARCH64_FL_FOR_ARCH8 (AARCH64_FL_FPSIMD) + #define AARCH64_FL_FOR_ARCH8_1 \ +- (AARCH64_FL_FOR_ARCH8 | AARCH64_FL_LSE | AARCH64_FL_CRC | AARCH64_FL_V8_1) ++ (AARCH64_FL_FOR_ARCH8 | AARCH64_FL_LSE | AARCH64_FL_CRC \ ++ | AARCH64_FL_RDMA | AARCH64_FL_V8_1) + #define AARCH64_FL_FOR_ARCH8_2 \ + (AARCH64_FL_FOR_ARCH8_1 | AARCH64_FL_V8_2) + #define AARCH64_FL_FOR_ARCH8_3 \ +@@ -163,10 +177,11 @@ extern unsigned aarch64_architecture_version; + #define AARCH64_ISA_FP (aarch64_isa_flags & AARCH64_FL_FP) + #define AARCH64_ISA_SIMD (aarch64_isa_flags & AARCH64_FL_SIMD) + #define AARCH64_ISA_LSE (aarch64_isa_flags & AARCH64_FL_LSE) +-#define AARCH64_ISA_RDMA (aarch64_isa_flags & AARCH64_FL_V8_1) ++#define AARCH64_ISA_RDMA (aarch64_isa_flags & AARCH64_FL_RDMA) + #define AARCH64_ISA_V8_2 (aarch64_isa_flags & AARCH64_FL_V8_2) + #define AARCH64_ISA_F16 (aarch64_isa_flags & AARCH64_FL_F16) + #define AARCH64_ISA_V8_3 (aarch64_isa_flags & AARCH64_FL_V8_3) ++#define AARCH64_ISA_DOTPROD (aarch64_isa_flags & AARCH64_FL_DOTPROD) + + /* Crypto is an optional extension to AdvSIMD. */ + #define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO) +@@ -181,6 +196,9 @@ extern unsigned aarch64_architecture_version; + #define TARGET_FP_F16INST (TARGET_FLOAT && AARCH64_ISA_F16) + #define TARGET_SIMD_F16INST (TARGET_SIMD && AARCH64_ISA_F16) + ++/* Dot Product is an optional extension to AdvSIMD enabled through +dotprod. */ ++#define TARGET_DOTPROD (TARGET_SIMD && AARCH64_ISA_DOTPROD) ++ + /* ARMv8.3-A features. */ + #define TARGET_ARMV8_3 (AARCH64_ISA_V8_3) + +--- a/src/gcc/config/aarch64/aarch64.md ++++ b/src/gcc/config/aarch64/aarch64.md +@@ -181,6 +181,11 @@ + ;; will be disabled when !TARGET_FLOAT. + (define_attr "fp" "no,yes" (const_string "no")) + ++;; Attribute that specifies whether or not the instruction touches half ++;; precision fp registers. When this is set to yes for an alternative, ++;; that alternative will be disabled when !TARGET_FP_F16INST. ++(define_attr "fp16" "no,yes" (const_string "no")) ++ + ;; Attribute that specifies whether or not the instruction touches simd + ;; registers. When this is set to yes for an alternative, that alternative + ;; will be disabled when !TARGET_SIMD. +@@ -194,11 +199,14 @@ + ;; registers when -mgeneral-regs-only is specified. + (define_attr "enabled" "no,yes" + (cond [(ior +- (and (eq_attr "fp" "yes") +- (eq (symbol_ref "TARGET_FLOAT") (const_int 0))) +- (and (eq_attr "simd" "yes") +- (eq (symbol_ref "TARGET_SIMD") (const_int 0)))) +- (const_string "no") ++ (ior ++ (and (eq_attr "fp" "yes") ++ (eq (symbol_ref "TARGET_FLOAT") (const_int 0))) ++ (and (eq_attr "simd" "yes") ++ (eq (symbol_ref "TARGET_SIMD") (const_int 0)))) ++ (and (eq_attr "fp16" "yes") ++ (eq (symbol_ref "TARGET_FP_F16INST") (const_int 0)))) ++ (const_string "no") + ] (const_string "yes"))) + + ;; Attribute that specifies whether we are dealing with a branch to a +@@ -519,27 +527,31 @@ + ) + + (define_insn "prefetch" +- [(prefetch (match_operand:DI 0 "register_operand" "r") ++ [(prefetch (match_operand:DI 0 "aarch64_prefetch_operand" "Dp") + (match_operand:QI 1 "const_int_operand" "") + (match_operand:QI 2 "const_int_operand" ""))] + "" + { +- const char * pftype[2][4] = ++ const char * pftype[2][4] = + { +- {"prfm\\tPLDL1STRM, %a0", +- "prfm\\tPLDL3KEEP, %a0", +- "prfm\\tPLDL2KEEP, %a0", +- "prfm\\tPLDL1KEEP, %a0"}, +- {"prfm\\tPSTL1STRM, %a0", +- "prfm\\tPSTL3KEEP, %a0", +- "prfm\\tPSTL2KEEP, %a0", +- "prfm\\tPSTL1KEEP, %a0"}, ++ {"prfm\\tPLDL1STRM, %0", ++ "prfm\\tPLDL3KEEP, %0", ++ "prfm\\tPLDL2KEEP, %0", ++ "prfm\\tPLDL1KEEP, %0"}, ++ {"prfm\\tPSTL1STRM, %0", ++ "prfm\\tPSTL3KEEP, %0", ++ "prfm\\tPSTL2KEEP, %0", ++ "prfm\\tPSTL1KEEP, %0"}, + }; + + int locality = INTVAL (operands[2]); + + gcc_assert (IN_RANGE (locality, 0, 3)); + ++ /* PRFM accepts the same addresses as a 64-bit LDR so wrap ++ the address into a DImode MEM so that aarch64_print_operand knows ++ how to print it. */ ++ operands[0] = gen_rtx_MEM (DImode, operands[0]); + return pftype[INTVAL(operands[1])][locality]; + } + [(set_attr "type" "load1")] +@@ -713,12 +725,6 @@ + ;; Subroutine calls and sibcalls + ;; ------------------------------------------------------------------- + +-(define_expand "call_internal" +- [(parallel [(call (match_operand 0 "memory_operand" "") +- (match_operand 1 "general_operand" "")) +- (use (match_operand 2 "" "")) +- (clobber (reg:DI LR_REGNUM))])]) +- + (define_expand "call" + [(parallel [(call (match_operand 0 "memory_operand" "") + (match_operand 1 "general_operand" "")) +@@ -727,57 +733,22 @@ + "" + " + { +- rtx callee, pat; +- +- /* In an untyped call, we can get NULL for operand 2. */ +- if (operands[2] == NULL) +- operands[2] = const0_rtx; +- +- /* Decide if we should generate indirect calls by loading the +- 64-bit address of the callee into a register before performing +- the branch-and-link. */ +- callee = XEXP (operands[0], 0); +- if (GET_CODE (callee) == SYMBOL_REF +- ? (aarch64_is_long_call_p (callee) +- || aarch64_is_noplt_call_p (callee)) +- : !REG_P (callee)) +- XEXP (operands[0], 0) = force_reg (Pmode, callee); +- +- pat = gen_call_internal (operands[0], operands[1], operands[2]); +- aarch64_emit_call_insn (pat); ++ aarch64_expand_call (NULL_RTX, operands[0], false); + DONE; + }" + ) + +-(define_insn "*call_reg" +- [(call (mem:DI (match_operand:DI 0 "register_operand" "r")) ++(define_insn "*call_insn" ++ [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "r, Usf")) + (match_operand 1 "" "")) +- (use (match_operand 2 "" "")) + (clobber (reg:DI LR_REGNUM))] + "" +- "blr\\t%0" +- [(set_attr "type" "call")] +-) +- +-(define_insn "*call_symbol" +- [(call (mem:DI (match_operand:DI 0 "" "")) +- (match_operand 1 "" "")) +- (use (match_operand 2 "" "")) +- (clobber (reg:DI LR_REGNUM))] +- "GET_CODE (operands[0]) == SYMBOL_REF +- && !aarch64_is_long_call_p (operands[0]) +- && !aarch64_is_noplt_call_p (operands[0])" +- "bl\\t%a0" +- [(set_attr "type" "call")] ++ "@ ++ blr\\t%0 ++ bl\\t%a0" ++ [(set_attr "type" "call, call")] + ) + +-(define_expand "call_value_internal" +- [(parallel [(set (match_operand 0 "" "") +- (call (match_operand 1 "memory_operand" "") +- (match_operand 2 "general_operand" ""))) +- (use (match_operand 3 "" "")) +- (clobber (reg:DI LR_REGNUM))])]) +- + (define_expand "call_value" + [(parallel [(set (match_operand 0 "" "") + (call (match_operand 1 "memory_operand" "") +@@ -787,60 +758,23 @@ + "" + " + { +- rtx callee, pat; +- +- /* In an untyped call, we can get NULL for operand 3. */ +- if (operands[3] == NULL) +- operands[3] = const0_rtx; +- +- /* Decide if we should generate indirect calls by loading the +- 64-bit address of the callee into a register before performing +- the branch-and-link. */ +- callee = XEXP (operands[1], 0); +- if (GET_CODE (callee) == SYMBOL_REF +- ? (aarch64_is_long_call_p (callee) +- || aarch64_is_noplt_call_p (callee)) +- : !REG_P (callee)) +- XEXP (operands[1], 0) = force_reg (Pmode, callee); +- +- pat = gen_call_value_internal (operands[0], operands[1], operands[2], +- operands[3]); +- aarch64_emit_call_insn (pat); ++ aarch64_expand_call (operands[0], operands[1], false); + DONE; + }" + ) + +-(define_insn "*call_value_reg" ++(define_insn "*call_value_insn" + [(set (match_operand 0 "" "") +- (call (mem:DI (match_operand:DI 1 "register_operand" "r")) ++ (call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "r, Usf")) + (match_operand 2 "" ""))) +- (use (match_operand 3 "" "")) + (clobber (reg:DI LR_REGNUM))] + "" +- "blr\\t%1" +- [(set_attr "type" "call")] +- +-) +- +-(define_insn "*call_value_symbol" +- [(set (match_operand 0 "" "") +- (call (mem:DI (match_operand:DI 1 "" "")) +- (match_operand 2 "" ""))) +- (use (match_operand 3 "" "")) +- (clobber (reg:DI LR_REGNUM))] +- "GET_CODE (operands[1]) == SYMBOL_REF +- && !aarch64_is_long_call_p (operands[1]) +- && !aarch64_is_noplt_call_p (operands[1])" +- "bl\\t%a1" +- [(set_attr "type" "call")] ++ "@ ++ blr\\t%1 ++ bl\\t%a1" ++ [(set_attr "type" "call, call")] + ) + +-(define_expand "sibcall_internal" +- [(parallel [(call (match_operand 0 "memory_operand" "") +- (match_operand 1 "general_operand" "")) +- (return) +- (use (match_operand 2 "" ""))])]) +- + (define_expand "sibcall" + [(parallel [(call (match_operand 0 "memory_operand" "") + (match_operand 1 "general_operand" "")) +@@ -848,29 +782,11 @@ + (use (match_operand 2 "" ""))])] + "" + { +- rtx pat; +- rtx callee = XEXP (operands[0], 0); +- if (!REG_P (callee) +- && ((GET_CODE (callee) != SYMBOL_REF) +- || aarch64_is_noplt_call_p (callee))) +- XEXP (operands[0], 0) = force_reg (Pmode, callee); +- +- if (operands[2] == NULL_RTX) +- operands[2] = const0_rtx; +- +- pat = gen_sibcall_internal (operands[0], operands[1], operands[2]); +- aarch64_emit_call_insn (pat); ++ aarch64_expand_call (NULL_RTX, operands[0], true); + DONE; + } + ) + +-(define_expand "sibcall_value_internal" +- [(parallel [(set (match_operand 0 "" "") +- (call (match_operand 1 "memory_operand" "") +- (match_operand 2 "general_operand" ""))) +- (return) +- (use (match_operand 3 "" ""))])]) +- + (define_expand "sibcall_value" + [(parallel [(set (match_operand 0 "" "") + (call (match_operand 1 "memory_operand" "") +@@ -879,19 +795,7 @@ + (use (match_operand 3 "" ""))])] + "" + { +- rtx pat; +- rtx callee = XEXP (operands[1], 0); +- if (!REG_P (callee) +- && ((GET_CODE (callee) != SYMBOL_REF) +- || aarch64_is_noplt_call_p (callee))) +- XEXP (operands[1], 0) = force_reg (Pmode, callee); +- +- if (operands[3] == NULL_RTX) +- operands[3] = const0_rtx; +- +- pat = gen_sibcall_value_internal (operands[0], operands[1], operands[2], +- operands[3]); +- aarch64_emit_call_insn (pat); ++ aarch64_expand_call (operands[0], operands[1], true); + DONE; + } + ) +@@ -899,8 +803,7 @@ + (define_insn "*sibcall_insn" + [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "Ucs, Usf")) + (match_operand 1 "" "")) +- (return) +- (use (match_operand 2 "" ""))] ++ (return)] + "SIBLING_CALL_P (insn)" + "@ + br\\t%0 +@@ -913,8 +816,7 @@ + (call (mem:DI + (match_operand:DI 1 "aarch64_call_insn_operand" "Ucs, Usf")) + (match_operand 2 "" ""))) +- (return) +- (use (match_operand 3 "" ""))] ++ (return)] + "SIBLING_CALL_P (insn)" + "@ + br\\t%1 +@@ -1026,8 +928,8 @@ + ) + + (define_insn_and_split "*movsi_aarch64" +- [(set (match_operand:SI 0 "nonimmediate_operand" "=r,k,r,r,r,r,*w,m, m,r,r ,*w, r,*w") +- (match_operand:SI 1 "aarch64_mov_operand" " r,r,k,M,n,m, m,rZ,*w,S,Ush,rZ,*w,*w"))] ++ [(set (match_operand:SI 0 "nonimmediate_operand" "=r,k,r,r,r,r,*w,m, m,r,r ,*w, r,*w,w") ++ (match_operand:SI 1 "aarch64_mov_operand" " r,r,k,M,n,m, m,rZ,*w,Usa,Ush,rZ,w,*w,Ds"))] + "(register_operand (operands[0], SImode) + || aarch64_reg_or_zero (operands[1], SImode))" + "@ +@@ -1044,8 +946,9 @@ + adrp\\t%x0, %A1 + fmov\\t%s0, %w1 + fmov\\t%w0, %s1 +- fmov\\t%s0, %s1" +- "CONST_INT_P (operands[1]) && !aarch64_move_imm (INTVAL (operands[1]), SImode) ++ fmov\\t%s0, %s1 ++ * return aarch64_output_scalar_simd_mov_immediate (operands[1], SImode);" ++ "CONST_INT_P (operands[1]) && !aarch64_move_imm (INTVAL (operands[1]), SImode) + && REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))" + [(const_int 0)] + "{ +@@ -1053,13 +956,14 @@ + DONE; + }" + [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,mov_imm,load1,load1,store1,store1,\ +- adr,adr,f_mcr,f_mrc,fmov") +- (set_attr "fp" "*,*,*,*,*,*,yes,*,yes,*,*,yes,yes,yes")] ++ adr,adr,f_mcr,f_mrc,fmov,neon_move") ++ (set_attr "fp" "*,*,*,*,*,*,yes,*,yes,*,*,yes,yes,yes,*") ++ (set_attr "simd" "*,*,*,*,*,*,*,*,*,*,*,*,*,*,yes")] + ) + + (define_insn_and_split "*movdi_aarch64" +- [(set (match_operand:DI 0 "nonimmediate_operand" "=r,k,r,r,r,r,*w,m, m,r,r, *w, r,*w,w") +- (match_operand:DI 1 "aarch64_mov_operand" " r,r,k,N,n,m, m,rZ,*w,S,Ush,rZ,*w,*w,Dd"))] ++ [(set (match_operand:DI 0 "nonimmediate_operand" "=r,k,r,r,r,r,r,*w,m, m,r,r, *w,r,*w,w") ++ (match_operand:DI 1 "aarch64_mov_operand" " r,r,k,N,M,n,m, m,rZ,*w,Usa,Ush,rZ,w,*w,Dd"))] + "(register_operand (operands[0], DImode) + || aarch64_reg_or_zero (operands[1], DImode))" + "@ +@@ -1067,6 +971,7 @@ + mov\\t%0, %x1 + mov\\t%x0, %1 + mov\\t%x0, %1 ++ mov\\t%w0, %1 + # + ldr\\t%x0, %1 + ldr\\t%d0, %1 +@@ -1077,7 +982,7 @@ + fmov\\t%d0, %x1 + fmov\\t%x0, %d1 + fmov\\t%d0, %d1 +- movi\\t%d0, %1" ++ * return aarch64_output_scalar_simd_mov_immediate (operands[1], DImode);" + "(CONST_INT_P (operands[1]) && !aarch64_move_imm (INTVAL (operands[1]), DImode)) + && REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))" + [(const_int 0)] +@@ -1085,10 +990,10 @@ + aarch64_expand_mov_immediate (operands[0], operands[1]); + DONE; + }" +- [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,mov_imm,load1,load1,store1,store1,\ +- adr,adr,f_mcr,f_mrc,fmov,neon_move") +- (set_attr "fp" "*,*,*,*,*,*,yes,*,yes,*,*,yes,yes,yes,*") +- (set_attr "simd" "*,*,*,*,*,*,*,*,*,*,*,*,*,*,yes")] ++ [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,mov_imm,mov_imm,load1,\ ++ load1,store1,store1,adr,adr,f_mcr,f_mrc,fmov,neon_move") ++ (set_attr "fp" "*,*,*,*,*,*,*,yes,*,yes,*,*,yes,yes,yes,*") ++ (set_attr "simd" "*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,yes")] + ) + + (define_insn "insv_imm" +@@ -1123,7 +1028,7 @@ + # + # + # +- orr\\t%0.16b, %1.16b, %1.16b ++ mov\\t%0.16b, %1.16b + ldp\\t%0, %H0, %1 + stp\\t%1, %H1, %0 + stp\\txzr, xzr, %0 +@@ -1168,28 +1073,31 @@ + ) + + (define_insn "*movhf_aarch64" +- [(set (match_operand:HF 0 "nonimmediate_operand" "=w,w ,?r,w,w,m,r,m ,r") +- (match_operand:HF 1 "general_operand" "Y ,?rY, w,w,m,w,m,rY,r"))] ++ [(set (match_operand:HF 0 "nonimmediate_operand" "=w,w ,?r,w,w ,w ,w,m,r,m ,r") ++ (match_operand:HF 1 "general_operand" "Y ,?rY, w,w,Ufc,Uvi,m,w,m,rY,r"))] + "TARGET_FLOAT && (register_operand (operands[0], HFmode) + || aarch64_reg_or_fp_zero (operands[1], HFmode))" + "@ + movi\\t%0.4h, #0 +- mov\\t%0.h[0], %w1 ++ fmov\\t%h0, %w1 + umov\\t%w0, %1.h[0] + mov\\t%0.h[0], %1.h[0] ++ fmov\\t%h0, %1 ++ * return aarch64_output_scalar_simd_mov_immediate (operands[1], SImode); + ldr\\t%h0, %1 + str\\t%h1, %0 + ldrh\\t%w0, %1 + strh\\t%w1, %0 + mov\\t%w0, %w1" +- [(set_attr "type" "neon_move,neon_from_gp,neon_to_gp,neon_move,\ +- f_loads,f_stores,load1,store1,mov_reg") +- (set_attr "simd" "yes,yes,yes,yes,*,*,*,*,*")] ++ [(set_attr "type" "neon_move,f_mcr,neon_to_gp,neon_move,fconsts, \ ++ neon_move,f_loads,f_stores,load1,store1,mov_reg") ++ (set_attr "simd" "yes,*,yes,yes,*,yes,*,*,*,*,*") ++ (set_attr "fp16" "*,yes,*,*,yes,*,*,*,*,*,*")] + ) + + (define_insn "*movsf_aarch64" +- [(set (match_operand:SF 0 "nonimmediate_operand" "=w,w ,?r,w,w ,w,m,r,m ,r") +- (match_operand:SF 1 "general_operand" "Y ,?rY, w,w,Ufc,m,w,m,rY,r"))] ++ [(set (match_operand:SF 0 "nonimmediate_operand" "=w,w ,?r,w,w ,w ,w,m,r,m ,r,r") ++ (match_operand:SF 1 "general_operand" "Y ,?rY, w,w,Ufc,Uvi,m,w,m,rY,r,M"))] + "TARGET_FLOAT && (register_operand (operands[0], SFmode) + || aarch64_reg_or_fp_zero (operands[1], SFmode))" + "@ +@@ -1198,19 +1106,22 @@ + fmov\\t%w0, %s1 + fmov\\t%s0, %s1 + fmov\\t%s0, %1 ++ * return aarch64_output_scalar_simd_mov_immediate (operands[1], SImode); + ldr\\t%s0, %1 + str\\t%s1, %0 + ldr\\t%w0, %1 + str\\t%w1, %0 +- mov\\t%w0, %w1" +- [(set_attr "type" "neon_move,f_mcr,f_mrc,fmov,fconsts,\ +- f_loads,f_stores,load1,store1,mov_reg") +- (set_attr "simd" "yes,*,*,*,*,*,*,*,*,*")] ++ mov\\t%w0, %w1 ++ mov\\t%w0, %1" ++ [(set_attr "type" "neon_move,f_mcr,f_mrc,fmov,fconsts,neon_move,\ ++ f_loads,f_stores,load1,store1,mov_reg,\ ++ fconsts") ++ (set_attr "simd" "yes,*,*,*,*,yes,*,*,*,*,*,*")] + ) + + (define_insn "*movdf_aarch64" +- [(set (match_operand:DF 0 "nonimmediate_operand" "=w,w ,?r,w,w ,w,m,r,m ,r") +- (match_operand:DF 1 "general_operand" "Y ,?rY, w,w,Ufc,m,w,m,rY,r"))] ++ [(set (match_operand:DF 0 "nonimmediate_operand" "=w, w ,?r,w,w ,w ,w,m,r,m ,r,r") ++ (match_operand:DF 1 "general_operand" "Y , ?rY, w,w,Ufc,Uvi,m,w,m,rY,r,N"))] + "TARGET_FLOAT && (register_operand (operands[0], DFmode) + || aarch64_reg_or_fp_zero (operands[1], DFmode))" + "@ +@@ -1219,14 +1130,37 @@ + fmov\\t%x0, %d1 + fmov\\t%d0, %d1 + fmov\\t%d0, %1 ++ * return aarch64_output_scalar_simd_mov_immediate (operands[1], DImode); + ldr\\t%d0, %1 + str\\t%d1, %0 + ldr\\t%x0, %1 + str\\t%x1, %0 +- mov\\t%x0, %x1" +- [(set_attr "type" "neon_move,f_mcr,f_mrc,fmov,fconstd,\ +- f_loadd,f_stored,load1,store1,mov_reg") +- (set_attr "simd" "yes,*,*,*,*,*,*,*,*,*")] ++ mov\\t%x0, %x1 ++ mov\\t%x0, %1" ++ [(set_attr "type" "neon_move,f_mcr,f_mrc,fmov,fconstd,neon_move,\ ++ f_loadd,f_stored,load1,store1,mov_reg,\ ++ fconstd") ++ (set_attr "simd" "yes,*,*,*,*,yes,*,*,*,*,*,*")] ++) ++ ++(define_split ++ [(set (match_operand:GPF_HF 0 "nonimmediate_operand") ++ (match_operand:GPF_HF 1 "general_operand"))] ++ "can_create_pseudo_p () ++ && !aarch64_can_const_movi_rtx_p (operands[1], mode) ++ && !aarch64_float_const_representable_p (operands[1]) ++ && aarch64_float_const_rtx_p (operands[1])" ++ [(const_int 0)] ++ { ++ unsigned HOST_WIDE_INT ival; ++ if (!aarch64_reinterpret_float_as_int (operands[1], &ival)) ++ FAIL; ++ ++ rtx tmp = gen_reg_rtx (mode); ++ emit_move_insn (tmp, gen_int_mode (ival, mode)); ++ emit_move_insn (operands[0], gen_lowpart (mode, tmp)); ++ DONE; ++ } + ) + + (define_insn "*movtf_aarch64" +@@ -1237,7 +1171,7 @@ + "TARGET_FLOAT && (register_operand (operands[0], TFmode) + || aarch64_reg_or_fp_zero (operands[1], TFmode))" + "@ +- orr\\t%0.16b, %1.16b, %1.16b ++ mov\\t%0.16b, %1.16b + # + # + # +@@ -2340,6 +2274,55 @@ + [(set_attr "type" "alus_sreg")] + ) + ++(define_insn "sub3_compare1_imm" ++ [(set (reg:CC CC_REGNUM) ++ (compare:CC ++ (match_operand:GPI 1 "register_operand" "r") ++ (match_operand:GPI 3 "const_int_operand" "n"))) ++ (set (match_operand:GPI 0 "register_operand" "=r") ++ (plus:GPI (match_dup 1) ++ (match_operand:GPI 2 "aarch64_sub_immediate" "J")))] ++ "INTVAL (operands[3]) == -INTVAL (operands[2])" ++ "subs\\t%0, %1, #%n2" ++ [(set_attr "type" "alus_sreg")] ++) ++ ++(define_peephole2 ++ [(set (match_operand:GPI 0 "register_operand") ++ (minus:GPI (match_operand:GPI 1 "aarch64_reg_or_zero") ++ (match_operand:GPI 2 "aarch64_reg_or_zero"))) ++ (set (reg:CC CC_REGNUM) ++ (compare:CC ++ (match_dup 1) ++ (match_dup 2)))] ++ "!reg_overlap_mentioned_p (operands[0], operands[1]) ++ && !reg_overlap_mentioned_p (operands[0], operands[2])" ++ [(const_int 0)] ++ { ++ emit_insn (gen_sub3_compare1 (operands[0], operands[1], ++ operands[2])); ++ DONE; ++ } ++) ++ ++(define_peephole2 ++ [(set (match_operand:GPI 0 "register_operand") ++ (plus:GPI (match_operand:GPI 1 "register_operand") ++ (match_operand:GPI 2 "aarch64_sub_immediate"))) ++ (set (reg:CC CC_REGNUM) ++ (compare:CC ++ (match_dup 1) ++ (match_operand:GPI 3 "const_int_operand")))] ++ "!reg_overlap_mentioned_p (operands[0], operands[1]) ++ && INTVAL (operands[3]) == -INTVAL (operands[2])" ++ [(const_int 0)] ++ { ++ emit_insn (gen_sub3_compare1_imm (operands[0], operands[1], ++ operands[2], operands[3])); ++ DONE; ++ } ++) ++ + (define_insn "*sub__" + [(set (match_operand:GPI 0 "register_operand" "=r") + (minus:GPI (match_operand:GPI 3 "register_operand" "r") +@@ -3882,6 +3865,22 @@ + [(set_attr "type" "logics_reg,logics_imm")] + ) + ++(define_split ++ [(set (reg:CC_NZ CC_REGNUM) ++ (compare:CC_NZ ++ (and:GPI (match_operand:GPI 0 "register_operand") ++ (match_operand:GPI 1 "aarch64_mov_imm_operand")) ++ (const_int 0))) ++ (clobber (match_operand:SI 2 "register_operand"))] ++ "" ++ [(set (match_dup 2) (match_dup 1)) ++ (set (reg:CC_NZ CC_REGNUM) ++ (compare:CC_NZ ++ (and:GPI (match_dup 0) ++ (match_dup 2)) ++ (const_int 0)))] ++) ++ + (define_insn "*and3nr_compare0_zextract" + [(set (reg:CC_NZ CC_REGNUM) + (compare:CC_NZ +@@ -3917,6 +3916,26 @@ + [(set_attr "type" "logics_shift_imm")] + ) + ++(define_split ++ [(set (reg:CC_NZ CC_REGNUM) ++ (compare:CC_NZ ++ (and:GPI (SHIFT:GPI ++ (match_operand:GPI 0 "register_operand") ++ (match_operand:QI 1 "aarch64_shift_imm_")) ++ (match_operand:GPI 2 "aarch64_mov_imm_operand")) ++ (const_int 0))) ++ (clobber (match_operand:SI 3 "register_operand"))] ++ "" ++ [(set (match_dup 3) (match_dup 2)) ++ (set (reg:CC_NZ CC_REGNUM) ++ (compare:CC_NZ ++ (and:GPI (SHIFT:GPI ++ (match_dup 0) ++ (match_dup 1)) ++ (match_dup 3)) ++ (const_int 0)))] ++) ++ + ;; ------------------------------------------------------------------- + ;; Shifts + ;; ------------------------------------------------------------------- +@@ -4998,6 +5017,18 @@ + [(set_attr "type" "f_minmax")] + ) + ++(define_expand "lrint2" ++ [(match_operand:GPI 0 "register_operand") ++ (match_operand:GPF 1 "register_operand")] ++ "TARGET_FLOAT" ++{ ++ rtx cvt = gen_reg_rtx (mode); ++ emit_insn (gen_rint2 (cvt, operands[1])); ++ emit_insn (gen_lbtrunc2 (operands[0], cvt)); ++ DONE; ++} ++) ++ + ;; For copysign (x, y), we want to generate: + ;; + ;; LDR d2, #(1 << 63) +@@ -5031,14 +5062,16 @@ + (match_operand:SF 2 "register_operand")] + "TARGET_FLOAT && TARGET_SIMD" + { +- rtx mask = gen_reg_rtx (DImode); ++ rtx v_bitmask = gen_reg_rtx (V2SImode); + + /* Juggle modes to get us in to a vector mode for BSL. */ +- rtx op1 = lowpart_subreg (V2SFmode, operands[1], SFmode); ++ rtx op1 = lowpart_subreg (DImode, operands[1], SFmode); + rtx op2 = lowpart_subreg (V2SFmode, operands[2], SFmode); + rtx tmp = gen_reg_rtx (V2SFmode); +- emit_move_insn (mask, GEN_INT (HOST_WIDE_INT_1U << 31)); +- emit_insn (gen_aarch64_simd_bslv2sf (tmp, mask, op2, op1)); ++ emit_move_insn (v_bitmask, ++ aarch64_simd_gen_const_vector_dup (V2SImode, ++ HOST_WIDE_INT_M1U << 31)); ++ emit_insn (gen_aarch64_simd_bslv2sf (tmp, v_bitmask, op2, op1)); + emit_move_insn (operands[0], lowpart_subreg (SFmode, tmp, V2SFmode)); + DONE; + } +--- a/src/gcc/config/aarch64/arm_neon.h ++++ b/src/gcc/config/aarch64/arm_neon.h +@@ -12162,7 +12162,7 @@ vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c) + + /* ARMv8.1-A instrinsics. */ + #pragma GCC push_options +-#pragma GCC target ("arch=armv8.1-a") ++#pragma GCC target ("+nothing+rdma") + + __extension__ extern __inline int16x4_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +@@ -31541,6 +31541,99 @@ vminnmvq_f16 (float16x8_t __a) + + #pragma GCC pop_options + ++/* AdvSIMD Dot Product intrinsics. */ ++ ++#pragma GCC push_options ++#pragma GCC target ("arch=armv8.2-a+dotprod") ++ ++__extension__ extern __inline uint32x2_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b) ++{ ++ return __builtin_aarch64_udotv8qi_uuuu (__r, __a, __b); ++} ++ ++__extension__ extern __inline uint32x4_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b) ++{ ++ return __builtin_aarch64_udotv16qi_uuuu (__r, __a, __b); ++} ++ ++__extension__ extern __inline int32x2_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b) ++{ ++ return __builtin_aarch64_sdotv8qi (__r, __a, __b); ++} ++ ++__extension__ extern __inline int32x4_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b) ++{ ++ return __builtin_aarch64_sdotv16qi (__r, __a, __b); ++} ++ ++__extension__ extern __inline uint32x2_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index) ++{ ++ return __builtin_aarch64_udot_lanev8qi_uuuus (__r, __a, __b, __index); ++} ++ ++__extension__ extern __inline uint32x2_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdot_laneq_u32 (uint32x2_t __r, uint8x8_t __a, uint8x16_t __b, ++ const int __index) ++{ ++ return __builtin_aarch64_udot_laneqv8qi_uuuus (__r, __a, __b, __index); ++} ++ ++__extension__ extern __inline uint32x4_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b, ++ const int __index) ++{ ++ return __builtin_aarch64_udot_lanev16qi_uuuus (__r, __a, __b, __index); ++} ++ ++__extension__ extern __inline uint32x4_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdotq_laneq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b, ++ const int __index) ++{ ++ return __builtin_aarch64_udot_laneqv16qi_uuuus (__r, __a, __b, __index); ++} ++ ++__extension__ extern __inline int32x2_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index) ++{ ++ return __builtin_aarch64_sdot_lanev8qi (__r, __a, __b, __index); ++} ++ ++__extension__ extern __inline int32x2_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdot_laneq_s32 (int32x2_t __r, int8x8_t __a, int8x16_t __b, const int __index) ++{ ++ return __builtin_aarch64_sdot_laneqv8qi (__r, __a, __b, __index); ++} ++ ++__extension__ extern __inline int32x4_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index) ++{ ++ return __builtin_aarch64_sdot_lanev16qi (__r, __a, __b, __index); ++} ++ ++__extension__ extern __inline int32x4_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index) ++{ ++ return __builtin_aarch64_sdot_laneqv16qi (__r, __a, __b, __index); ++} ++#pragma GCC pop_options ++ + #undef __aarch64_vget_lane_any + + #undef __aarch64_vdup_lane_any +--- a/src/gcc/config/aarch64/atomics.md ++++ b/src/gcc/config/aarch64/atomics.md +@@ -25,7 +25,7 @@ + (match_operand:ALLI 1 "register_operand" "") ;; val out + (match_operand:ALLI 2 "aarch64_sync_memory_operand" "") ;; memory + (match_operand:ALLI 3 "general_operand" "") ;; expected +- (match_operand:ALLI 4 "register_operand" "") ;; desired ++ (match_operand:ALLI 4 "aarch64_reg_or_zero" "") ;; desired + (match_operand:SI 5 "const_int_operand") ;; is_weak + (match_operand:SI 6 "const_int_operand") ;; mod_s + (match_operand:SI 7 "const_int_operand")] ;; mod_f +@@ -45,7 +45,7 @@ + (set (match_dup 1) + (unspec_volatile:SHORT + [(match_operand:SI 2 "aarch64_plus_operand" "rI") ;; expected +- (match_operand:SHORT 3 "register_operand" "r") ;; desired ++ (match_operand:SHORT 3 "aarch64_reg_or_zero" "rZ") ;; desired + (match_operand:SI 4 "const_int_operand") ;; is_weak + (match_operand:SI 5 "const_int_operand") ;; mod_s + (match_operand:SI 6 "const_int_operand")] ;; mod_f +@@ -69,7 +69,7 @@ + (set (match_dup 1) + (unspec_volatile:GPI + [(match_operand:GPI 2 "aarch64_plus_operand" "rI") ;; expect +- (match_operand:GPI 3 "register_operand" "r") ;; desired ++ (match_operand:GPI 3 "aarch64_reg_or_zero" "rZ") ;; desired + (match_operand:SI 4 "const_int_operand") ;; is_weak + (match_operand:SI 5 "const_int_operand") ;; mod_s + (match_operand:SI 6 "const_int_operand")] ;; mod_f +@@ -94,7 +94,7 @@ + (set (match_dup 1) + (unspec_volatile:SHORT + [(match_operand:SI 2 "aarch64_plus_operand" "rI") ;; expected +- (match_operand:SHORT 3 "register_operand" "r") ;; desired ++ (match_operand:SHORT 3 "aarch64_reg_or_zero" "rZ") ;; desired + (match_operand:SI 4 "const_int_operand") ;; is_weak + (match_operand:SI 5 "const_int_operand") ;; mod_s + (match_operand:SI 6 "const_int_operand")] ;; mod_f +@@ -119,7 +119,7 @@ + (set (match_dup 1) + (unspec_volatile:GPI + [(match_operand:GPI 2 "aarch64_plus_operand" "rI") ;; expect +- (match_operand:GPI 3 "register_operand" "r") ;; desired ++ (match_operand:GPI 3 "aarch64_reg_or_zero" "rZ") ;; desired + (match_operand:SI 4 "const_int_operand") ;; is_weak + (match_operand:SI 5 "const_int_operand") ;; mod_s + (match_operand:SI 6 "const_int_operand")] ;; mod_f +@@ -534,7 +534,7 @@ + (unspec_volatile:SI [(const_int 0)] UNSPECV_SX)) + (set (match_operand:ALLI 1 "aarch64_sync_memory_operand" "=Q") + (unspec_volatile:ALLI +- [(match_operand:ALLI 2 "register_operand" "r") ++ [(match_operand:ALLI 2 "aarch64_reg_or_zero" "rZ") + (match_operand:SI 3 "const_int_operand")] + UNSPECV_SX))] + "" +@@ -616,7 +616,7 @@ + (set (match_dup 1) + (unspec_volatile:SHORT + [(match_dup 0) +- (match_operand:SHORT 2 "register_operand" "r") ;; value. ++ (match_operand:SHORT 2 "aarch64_reg_or_zero" "rZ") ;; value. + (match_operand:SI 3 "const_int_operand" "")] ;; model. + UNSPECV_ATOMIC_CAS))] + "TARGET_LSE && reload_completed" +@@ -640,7 +640,7 @@ + (set (match_dup 1) + (unspec_volatile:GPI + [(match_dup 0) +- (match_operand:GPI 2 "register_operand" "r") ;; value. ++ (match_operand:GPI 2 "aarch64_reg_or_zero" "rZ") ;; value. + (match_operand:SI 3 "const_int_operand" "")] ;; model. + UNSPECV_ATOMIC_CAS))] + "TARGET_LSE && reload_completed" +--- a/src/gcc/config/aarch64/constraints.md ++++ b/src/gcc/config/aarch64/constraints.md +@@ -98,6 +98,14 @@ + (and (match_code "high") + (match_test "aarch64_valid_symref (XEXP (op, 0), GET_MODE (XEXP (op, 0)))"))) + ++(define_constraint "Usa" ++ "@internal ++ A constraint that matches an absolute symbolic address that can be ++ loaded by a single ADR." ++ (and (match_code "const,symbol_ref,label_ref") ++ (match_test "aarch64_symbolic_address_p (op)") ++ (match_test "aarch64_mov_operand_p (op, GET_MODE (op))"))) ++ + (define_constraint "Uss" + "@internal + A constraint that matches an immediate shift constant in SImode." +@@ -118,7 +126,8 @@ + (define_constraint "Usf" + "@internal Usf is a symbol reference under the context where plt stub allowed." + (and (match_code "symbol_ref") +- (match_test "!aarch64_is_noplt_call_p (op)"))) ++ (match_test "!(aarch64_is_noplt_call_p (op) ++ || aarch64_is_long_call_p (op))"))) + + (define_constraint "UsM" + "@internal +@@ -167,6 +176,12 @@ + (and (match_code "const_double") + (match_test "aarch64_float_const_representable_p (op)"))) + ++(define_constraint "Uvi" ++ "A floating point constant which can be used with a\ ++ MOVI immediate operation." ++ (and (match_code "const_double") ++ (match_test "aarch64_can_const_movi_rtx_p (op, GET_MODE (op))"))) ++ + (define_constraint "Dn" + "@internal + A constraint that matches vector of immediates." +@@ -211,6 +226,19 @@ + + (define_constraint "Dd" + "@internal +- A constraint that matches an immediate operand valid for AdvSIMD scalar." ++ A constraint that matches an integer immediate operand valid\ ++ for AdvSIMD scalar operations in DImode." + (and (match_code "const_int") +- (match_test "aarch64_simd_imm_scalar_p (op, GET_MODE (op))"))) ++ (match_test "aarch64_can_const_movi_rtx_p (op, DImode)"))) ++ ++(define_constraint "Ds" ++ "@internal ++ A constraint that matches an integer immediate operand valid\ ++ for AdvSIMD scalar operations in SImode." ++ (and (match_code "const_int") ++ (match_test "aarch64_can_const_movi_rtx_p (op, SImode)"))) ++ ++(define_address_constraint "Dp" ++ "@internal ++ An address valid for a prefetch instruction." ++ (match_test "aarch64_address_valid_for_prefetch_p (op, true)")) +--- a/src/gcc/config/aarch64/iterators.md ++++ b/src/gcc/config/aarch64/iterators.md +@@ -44,6 +44,9 @@ + ;; Iterator for all scalar floating point modes (HF, SF, DF) + (define_mode_iterator GPF_F16 [(HF "AARCH64_ISA_F16") SF DF]) + ++;; Iterator for all scalar floating point modes (HF, SF, DF) ++(define_mode_iterator GPF_HF [HF SF DF]) ++ + ;; Iterator for all scalar floating point modes (HF, SF, DF and TF) + (define_mode_iterator GPF_TF_F16 [HF SF DF TF]) + +@@ -351,6 +354,8 @@ + UNSPEC_SQRDMLSH ; Used in aarch64-simd.md. + UNSPEC_FMAXNM ; Used in aarch64-simd.md. + UNSPEC_FMINNM ; Used in aarch64-simd.md. ++ UNSPEC_SDOT ; Used in aarch64-simd.md. ++ UNSPEC_UDOT ; Used in aarch64-simd.md. + ]) + + ;; ------------------------------------------------------------------ +@@ -796,6 +801,10 @@ + (define_mode_attr vsi2qi [(V2SI "v8qi") (V4SI "v16qi")]) + (define_mode_attr VSI2QI [(V2SI "V8QI") (V4SI "V16QI")]) + ++ ++;; Register suffix for DOTPROD input types from the return type. ++(define_mode_attr Vdottype [(V2SI "8b") (V4SI "16b")]) ++ + ;; Sum of lengths of instructions needed to move vector registers of a mode. + (define_mode_attr insn_count [(OI "8") (CI "12") (XI "16")]) + +@@ -1025,6 +1034,7 @@ + UNSPEC_SHSUB UNSPEC_UHSUB + UNSPEC_SRHSUB UNSPEC_URHSUB]) + ++(define_int_iterator DOTPROD [UNSPEC_SDOT UNSPEC_UDOT]) + + (define_int_iterator ADDSUBHN [UNSPEC_ADDHN UNSPEC_RADDHN + UNSPEC_SUBHN UNSPEC_RSUBHN]) +@@ -1162,6 +1172,7 @@ + (UNSPEC_USHLL "u") (UNSPEC_SSHLL "s") + (UNSPEC_URSHL "ur") (UNSPEC_SRSHL "sr") + (UNSPEC_UQRSHL "u") (UNSPEC_SQRSHL "s") ++ (UNSPEC_SDOT "s") (UNSPEC_UDOT "u") + ]) + + (define_int_attr r [(UNSPEC_SQDMULH "") (UNSPEC_SQRDMULH "r") +--- a/src/gcc/config/aarch64/predicates.md ++++ b/src/gcc/config/aarch64/predicates.md +@@ -77,6 +77,10 @@ + (define_predicate "aarch64_fp_vec_pow2" + (match_test "aarch64_vec_fpconst_pow_of_2 (op) > 0")) + ++(define_predicate "aarch64_sub_immediate" ++ (and (match_code "const_int") ++ (match_test "aarch64_uimm12_shift (-INTVAL (op))"))) ++ + (define_predicate "aarch64_plus_immediate" + (and (match_code "const_int") + (ior (match_test "aarch64_uimm12_shift (INTVAL (op))") +@@ -106,6 +110,10 @@ + (ior (match_operand 0 "register_operand") + (match_operand 0 "aarch64_logical_immediate"))) + ++(define_predicate "aarch64_mov_imm_operand" ++ (and (match_code "const_int") ++ (match_test "aarch64_move_imm (INTVAL (op), mode)"))) ++ + (define_predicate "aarch64_logical_and_immediate" + (and (match_code "const_int") + (match_test "aarch64_and_bitmask_imm (INTVAL (op), mode)"))) +@@ -165,6 +173,9 @@ + (match_test "aarch64_legitimate_address_p (mode, XEXP (op, 0), PARALLEL, + 0)"))) + ++(define_predicate "aarch64_prefetch_operand" ++ (match_test "aarch64_address_valid_for_prefetch_p (op, false)")) ++ + (define_predicate "aarch64_valid_symref" + (match_code "const, symbol_ref, label_ref") + { +--- a/src/gcc/config/aarch64/thunderx2t99.md ++++ b/src/gcc/config/aarch64/thunderx2t99.md +@@ -441,3 +441,23 @@ + (and (eq_attr "tune" "thunderx2t99") + (eq_attr "type" "neon_store2_one_lane,neon_store2_one_lane_q")) + "thunderx2t99_ls01,thunderx2t99_f01") ++ ++;; Crypto extensions. ++ ++(define_insn_reservation "thunderx2t99_aes" 5 ++ (and (eq_attr "tune" "thunderx2t99") ++ (eq_attr "type" "crypto_aese,crypto_aesmc")) ++ "thunderx2t99_f1") ++ ++(define_insn_reservation "thunderx2t99_sha" 7 ++ (and (eq_attr "tune" "thunderx2t99") ++ (eq_attr "type" "crypto_sha1_fast,crypto_sha1_xor,crypto_sha1_slow,\ ++ crypto_sha256_fast,crypto_sha256_slow")) ++ "thunderx2t99_f1") ++ ++;; CRC extension. ++ ++(define_insn_reservation "thunderx2t99_crc" 4 ++ (and (eq_attr "tune" "thunderx2t99") ++ (eq_attr "type" "crc")) ++ "thunderx2t99_i1") +--- a/src/gcc/config/arm/aarch-common-protos.h ++++ b/src/gcc/config/arm/aarch-common-protos.h +@@ -25,12 +25,13 @@ + + extern int aarch_accumulator_forwarding (rtx_insn *, rtx_insn *); + extern int aarch_crypto_can_dual_issue (rtx_insn *, rtx_insn *); +-extern int aarch_forward_to_shift_is_not_shifted_reg (rtx_insn *, rtx_insn *); + extern bool aarch_rev16_p (rtx); + extern bool aarch_rev16_shleft_mask_imm_p (rtx, machine_mode); + extern bool aarch_rev16_shright_mask_imm_p (rtx, machine_mode); + extern int arm_early_load_addr_dep (rtx, rtx); ++extern int arm_early_load_addr_dep_ptr (rtx, rtx); + extern int arm_early_store_addr_dep (rtx, rtx); ++extern int arm_early_store_addr_dep_ptr (rtx, rtx); + extern int arm_mac_accumulator_is_mul_result (rtx, rtx); + extern int arm_mac_accumulator_is_result (rtx, rtx); + extern int arm_no_early_alu_shift_dep (rtx, rtx); +--- a/src/gcc/config/arm/aarch-common.c ++++ b/src/gcc/config/arm/aarch-common.c +@@ -241,6 +241,24 @@ arm_early_load_addr_dep (rtx producer, rtx consumer) + return reg_overlap_mentioned_p (value, addr); + } + ++/* Return nonzero if the CONSUMER instruction (a load) does need ++ a Pmode PRODUCER's value to calculate the address. */ ++ ++int ++arm_early_load_addr_dep_ptr (rtx producer, rtx consumer) ++{ ++ rtx value = arm_find_sub_rtx_with_code (PATTERN (producer), SET, false); ++ rtx addr = arm_find_sub_rtx_with_code (PATTERN (consumer), SET, false); ++ ++ if (!value || !addr || !MEM_P (SET_SRC (value))) ++ return 0; ++ ++ value = SET_DEST (value); ++ addr = SET_SRC (addr); ++ ++ return GET_MODE (value) == Pmode && reg_overlap_mentioned_p (value, addr); ++} ++ + /* Return nonzero if the CONSUMER instruction (an ALU op) does not + have an early register shift value or amount dependency on the + result of PRODUCER. */ +@@ -254,12 +272,7 @@ arm_no_early_alu_shift_dep (rtx producer, rtx consumer) + return 0; + + if ((early_op = arm_find_shift_sub_rtx (op))) +- { +- if (REG_P (early_op)) +- early_op = op; +- +- return !reg_overlap_mentioned_p (value, early_op); +- } ++ return !reg_overlap_mentioned_p (value, early_op); + + return 0; + } +@@ -336,6 +349,24 @@ arm_early_store_addr_dep (rtx producer, rtx consumer) + return !arm_no_early_store_addr_dep (producer, consumer); + } + ++/* Return nonzero if the CONSUMER instruction (a store) does need ++ a Pmode PRODUCER's value to calculate the address. */ ++ ++int ++arm_early_store_addr_dep_ptr (rtx producer, rtx consumer) ++{ ++ rtx value = arm_find_sub_rtx_with_code (PATTERN (producer), SET, false); ++ rtx addr = arm_find_sub_rtx_with_code (PATTERN (consumer), SET, false); ++ ++ if (!value || !addr || !MEM_P (SET_SRC (value))) ++ return 0; ++ ++ value = SET_DEST (value); ++ addr = SET_DEST (addr); ++ ++ return GET_MODE (value) == Pmode && reg_overlap_mentioned_p (value, addr); ++} ++ + /* Return non-zero iff the consumer (a multiply-accumulate or a + multiple-subtract instruction) has an accumulator dependency on the + result of the producer and no other dependency on that result. It +@@ -472,38 +503,6 @@ aarch_accumulator_forwarding (rtx_insn *producer, rtx_insn *consumer) + return (REGNO (dest) == REGNO (accumulator)); + } + +-/* Return nonzero if the CONSUMER instruction is some sort of +- arithmetic or logic + shift operation, and the register we are +- writing in PRODUCER is not used in a register shift by register +- operation. */ +- +-int +-aarch_forward_to_shift_is_not_shifted_reg (rtx_insn *producer, +- rtx_insn *consumer) +-{ +- rtx value, op; +- rtx early_op; +- +- if (!arm_get_set_operands (producer, consumer, &value, &op)) +- return 0; +- +- if ((early_op = arm_find_shift_sub_rtx (op))) +- { +- if (REG_P (early_op)) +- early_op = op; +- +- /* Any other canonicalisation of a shift is a shift-by-constant +- so we don't care. */ +- if (GET_CODE (early_op) == ASHIFT) +- return (!REG_P (XEXP (early_op, 0)) +- || !REG_P (XEXP (early_op, 1))); +- else +- return 1; +- } +- +- return 0; +-} +- + /* Return non-zero if the consumer (a multiply-accumulate instruction) + has an accumulator dependency on the result of the producer (a + multiplication instruction) and no other dependency on that result. */ +--- a/src/gcc/config/arm/aarch-cost-tables.h ++++ b/src/gcc/config/arm/aarch-cost-tables.h +@@ -154,7 +154,7 @@ const struct cpu_cost_table cortexa53_extra_costs = + COSTS_N_INSNS (1), /* extend. */ + COSTS_N_INSNS (1), /* add. */ + COSTS_N_INSNS (1), /* extend_add. */ +- COSTS_N_INSNS (7) /* idiv. */ ++ COSTS_N_INSNS (9) /* idiv. */ + }, + /* MULT DImode */ + { +--- a/src/gcc/config/arm/arm-builtins.c ++++ b/src/gcc/config/arm/arm-builtins.c +@@ -104,6 +104,13 @@ arm_ternop_qualifiers[SIMD_MAX_BUILTIN_ARGS] + = { qualifier_none, qualifier_none, qualifier_none, qualifier_none }; + #define TERNOP_QUALIFIERS (arm_ternop_qualifiers) + ++/* unsigned T (unsigned T, unsigned T, unsigned T). */ ++static enum arm_type_qualifiers ++arm_unsigned_uternop_qualifiers[SIMD_MAX_BUILTIN_ARGS] ++ = { qualifier_unsigned, qualifier_unsigned, qualifier_unsigned, ++ qualifier_unsigned }; ++#define UTERNOP_QUALIFIERS (arm_unsigned_uternop_qualifiers) ++ + /* T (T, immediate). */ + static enum arm_type_qualifiers + arm_binop_imm_qualifiers[SIMD_MAX_BUILTIN_ARGS] +@@ -130,6 +137,13 @@ arm_mac_lane_qualifiers[SIMD_MAX_BUILTIN_ARGS] + qualifier_none, qualifier_lane_index }; + #define MAC_LANE_QUALIFIERS (arm_mac_lane_qualifiers) + ++/* unsigned T (unsigned T, unsigned T, unsigend T, lane index). */ ++static enum arm_type_qualifiers ++arm_umac_lane_qualifiers[SIMD_MAX_BUILTIN_ARGS] ++ = { qualifier_unsigned, qualifier_unsigned, qualifier_unsigned, ++ qualifier_unsigned, qualifier_lane_index }; ++#define UMAC_LANE_QUALIFIERS (arm_umac_lane_qualifiers) ++ + /* T (T, T, immediate). */ + static enum arm_type_qualifiers + arm_ternop_imm_qualifiers[SIMD_MAX_BUILTIN_ARGS] +@@ -3060,15 +3074,15 @@ arm_expand_builtin (tree exp, + } + + for (i = 0, d = bdesc_2arg; i < ARRAY_SIZE (bdesc_2arg); i++, d++) +- if (d->code == (const enum arm_builtins) fcode) ++ if (d->code == (enum arm_builtins) fcode) + return arm_expand_binop_builtin (d->icode, exp, target); + + for (i = 0, d = bdesc_1arg; i < ARRAY_SIZE (bdesc_1arg); i++, d++) +- if (d->code == (const enum arm_builtins) fcode) ++ if (d->code == (enum arm_builtins) fcode) + return arm_expand_unop_builtin (d->icode, exp, target, 0); + + for (i = 0, d = bdesc_3arg; i < ARRAY_SIZE (bdesc_3arg); i++, d++) +- if (d->code == (const enum arm_builtins) fcode) ++ if (d->code == (enum arm_builtins) fcode) + return arm_expand_ternop_builtin (d->icode, exp, target); + + /* @@@ Should really do something sensible here. */ +--- a/src/gcc/config/arm/arm-c.c ++++ b/src/gcc/config/arm/arm-c.c +@@ -72,11 +72,11 @@ arm_cpu_builtins (struct cpp_reader* pfile) + + def_or_undef_macro (pfile, "__ARM_FEATURE_QRDMX", TARGET_NEON_RDMA); + +- if (TARGET_CRC32) +- builtin_define ("__ARM_FEATURE_CRC32"); +- ++ def_or_undef_macro (pfile, "__ARM_FEATURE_CRC32", TARGET_CRC32); ++ def_or_undef_macro (pfile, "__ARM_FEATURE_DOTPROD", TARGET_DOTPROD); + def_or_undef_macro (pfile, "__ARM_32BIT_STATE", TARGET_32BIT); + ++ cpp_undef (pfile, "__ARM_FEATURE_CMSE"); + if (arm_arch8 && !arm_arch_notm) + { + if (arm_arch_cmse && use_cmse) +--- a/src/gcc/config/arm/arm-cpu-cdata.h ++++ b/src/gcc/config/arm/arm-cpu-cdata.h +@@ -1005,6 +1005,20 @@ static const struct arm_arch_core_flag arm_arch_core_flags[] = + isa_nobit + }, + }, ++ { ++ "armv8.2-a+dotprod", ++ { ++ ISA_ARMv8_2a,isa_bit_dotprod, ++ isa_nobit ++ }, ++ }, ++ { ++ "armv8.2-a+fp16+dotprod", ++ { ++ ISA_ARMv8_2a,isa_bit_fp16,isa_bit_dotprod, ++ isa_nobit ++ }, ++ }, + { + "armv8-m.base", + { +--- a/src/gcc/config/arm/arm-cpu-data.h ++++ b/src/gcc/config/arm/arm-cpu-data.h +@@ -1535,6 +1535,26 @@ static const struct processors all_architectures[] = + }, + NULL + }, ++ { ++ "armv8.2-a+dotprod", TARGET_CPU_cortexa53, ++ (TF_CO_PROC), ++ "8A", BASE_ARCH_8A, ++ { ++ ISA_ARMv8_2a,isa_bit_dotprod, ++ isa_nobit ++ }, ++ NULL ++ }, ++ { ++ "armv8.2-a+fp16+dotprod", TARGET_CPU_cortexa53, ++ (TF_CO_PROC), ++ "8A", BASE_ARCH_8A, ++ { ++ ISA_ARMv8_2a,isa_bit_fp16,isa_bit_dotprod, ++ isa_nobit ++ }, ++ NULL ++ }, + { + "armv8-m.base", TARGET_CPU_cortexm23, + 0, +--- a/src/gcc/config/arm/arm-cpus.in ++++ b/src/gcc/config/arm/arm-cpus.in +@@ -267,6 +267,20 @@ begin arch armv8.2-a+fp16 + isa ARMv8_2a bit_fp16 + end arch armv8.2-a+fp16 + ++begin arch armv8.2-a+dotprod ++ tune for cortex-a53 ++ tune flags CO_PROC ++ base 8A ++ isa ARMv8_2a bit_dotprod ++end arch armv8.2-a+dotprod ++ ++begin arch armv8.2-a+fp16+dotprod ++ tune for cortex-a53 ++ tune flags CO_PROC ++ base 8A ++ isa ARMv8_2a bit_fp16 bit_dotprod ++end arch armv8.2-a+fp16+dotprod ++ + begin arch armv8-m.base + tune for cortex-m23 + base 8M_BASE +--- a/src/gcc/config/arm/arm-isa.h ++++ b/src/gcc/config/arm/arm-isa.h +@@ -66,6 +66,7 @@ enum isa_feature + isa_bit_fp_d32, /* 32 Double precision registers. */ + isa_bit_crypto, /* Crypto extension to ARMv8. */ + isa_bit_fp16, /* FP16 data processing (half-precision float). */ ++ isa_bit_dotprod, /* Dot Product instructions. */ + + /* ISA Quirks (errata?). Don't forget to add this to the list of + all quirks below. */ +@@ -128,7 +129,8 @@ enum isa_feature + #define ISA_ARMv8m_main ISA_ARMv7m, isa_bit_ARMv8, isa_bit_cmse + + /* List of all FPU bits to strip out if -mfpu is used to override the +- default. isa_bit_fp16 is deliberately missing from this list. */ ++ default. isa_bit_fp16 and isa_bit_dotprod are deliberately missing from ++ this list. */ + #define ISA_ALL_FPU isa_bit_VFPv2, isa_bit_VFPv3, isa_bit_VFPv4, \ + isa_bit_FPv5, isa_bit_FP_ARMv8, isa_bit_neon, isa_bit_fp16conv, \ + isa_bit_fp_dbl, isa_bit_fp_d32, isa_bit_crypto +@@ -144,6 +146,7 @@ enum isa_feature + #define ISA_FP_D32 ISA_FP_DBL, isa_bit_fp_d32 + #define ISA_NEON ISA_FP_D32, isa_bit_neon + #define ISA_CRYPTO ISA_NEON, isa_bit_crypto ++#define ISA_DOTPROD ISA_NEON, isa_bit_dotprod + + /* List of all quirk bits to strip out when comparing CPU features with + architectures. */ +--- a/src/gcc/config/arm/arm-tables.opt ++++ b/src/gcc/config/arm/arm-tables.opt +@@ -446,19 +446,25 @@ EnumValue + Enum(arm_arch) String(armv8.2-a+fp16) Value(30) + + EnumValue +-Enum(arm_arch) String(armv8-m.base) Value(31) ++Enum(arm_arch) String(armv8.2-a+dotprod) Value(31) + + EnumValue +-Enum(arm_arch) String(armv8-m.main) Value(32) ++Enum(arm_arch) String(armv8.2-a+fp16+dotprod) Value(32) + + EnumValue +-Enum(arm_arch) String(armv8-m.main+dsp) Value(33) ++Enum(arm_arch) String(armv8-m.base) Value(33) + + EnumValue +-Enum(arm_arch) String(iwmmxt) Value(34) ++Enum(arm_arch) String(armv8-m.main) Value(34) + + EnumValue +-Enum(arm_arch) String(iwmmxt2) Value(35) ++Enum(arm_arch) String(armv8-m.main+dsp) Value(35) ++ ++EnumValue ++Enum(arm_arch) String(iwmmxt) Value(36) ++ ++EnumValue ++Enum(arm_arch) String(iwmmxt2) Value(37) + + Enum + Name(arm_fpu) Type(enum fpu_type) +--- a/src/gcc/config/arm/arm.c ++++ b/src/gcc/config/arm/arm.c +@@ -85,6 +85,7 @@ static bool arm_const_not_ok_for_debug_p (rtx); + static int arm_needs_doubleword_align (machine_mode, const_tree); + static int arm_compute_static_chain_stack_bytes (void); + static arm_stack_offsets *arm_get_frame_offsets (void); ++static void arm_compute_frame_layout (void); + static void arm_add_gc_roots (void); + static int arm_gen_constant (enum rtx_code, machine_mode, rtx, + unsigned HOST_WIDE_INT, rtx, rtx, int, int); +@@ -680,6 +681,9 @@ static const struct attribute_spec arm_attribute_table[] = + #undef TARGET_SCALAR_MODE_SUPPORTED_P + #define TARGET_SCALAR_MODE_SUPPORTED_P arm_scalar_mode_supported_p + ++#undef TARGET_COMPUTE_FRAME_LAYOUT ++#define TARGET_COMPUTE_FRAME_LAYOUT arm_compute_frame_layout ++ + #undef TARGET_FRAME_POINTER_REQUIRED + #define TARGET_FRAME_POINTER_REQUIRED arm_frame_pointer_required + +@@ -4009,6 +4013,10 @@ use_simple_return_p (void) + { + arm_stack_offsets *offsets; + ++ /* Note this function can be called before or after reload. */ ++ if (!reload_completed) ++ arm_compute_frame_layout (); ++ + offsets = arm_get_frame_offsets (); + return offsets->outgoing_args != 0; + } +@@ -7858,6 +7866,8 @@ arm_legitimate_index_p (machine_mode mode, rtx index, RTX_CODE outer, + { + HOST_WIDE_INT val = INTVAL (index); + ++ /* Assume we emit ldrd or 2x ldr if !TARGET_LDRD. ++ If vldr is selected it uses arm_coproc_mem_operand. */ + if (TARGET_LDRD) + return val > -256 && val < 256; + else +@@ -7985,11 +7995,13 @@ thumb2_legitimate_index_p (machine_mode mode, rtx index, int strict_p) + if (code == CONST_INT) + { + HOST_WIDE_INT val = INTVAL (index); +- /* ??? Can we assume ldrd for thumb2? */ +- /* Thumb-2 ldrd only has reg+const addressing modes. */ +- /* ldrd supports offsets of +-1020. +- However the ldr fallback does not. */ +- return val > -256 && val < 256 && (val & 3) == 0; ++ /* Thumb-2 ldrd only has reg+const addressing modes. ++ Assume we emit ldrd or 2x ldr if !TARGET_LDRD. ++ If vldr is selected it uses arm_coproc_mem_operand. */ ++ if (TARGET_LDRD) ++ return IN_RANGE (val, -1020, 1020) && (val & 3) == 0; ++ else ++ return IN_RANGE (val, -255, 4095 - 4); + } + else + return 0; +@@ -9285,6 +9297,10 @@ arm_rtx_costs_internal (rtx x, enum rtx_code code, enum rtx_code outer_code, + *cost += COSTS_N_INSNS (speed_p ? extra_cost->mult[0].idiv : 0); + else + *cost = LIBCALL_COST (2); ++ ++ /* Make the cost of sdiv more expensive so when both sdiv and udiv are ++ possible udiv is prefered. */ ++ *cost += (code == DIV ? COSTS_N_INSNS (1) : 0); + return false; /* All arguments must be in registers. */ + + case MOD: +@@ -9307,7 +9323,9 @@ arm_rtx_costs_internal (rtx x, enum rtx_code code, enum rtx_code outer_code, + + /* Fall-through. */ + case UMOD: +- *cost = LIBCALL_COST (2); ++ /* Make the cost of sdiv more expensive so when both sdiv and udiv are ++ possible udiv is prefered. */ ++ *cost = LIBCALL_COST (2) + (code == MOD ? COSTS_N_INSNS (1) : 0); + return false; /* All arguments must be in registers. */ + + case ROTATE: +@@ -13548,10 +13566,7 @@ gen_ldm_seq (rtx *operands, int nops, bool sort_regs) + emit_insn (gen_addsi3 (newbase, base_reg_rtx, GEN_INT (offset))); + offset = 0; + if (!TARGET_THUMB1) +- { +- base_reg = regs[0]; +- base_reg_rtx = newbase; +- } ++ base_reg_rtx = newbase; + } + + for (i = 0; i < nops; i++) +@@ -14075,7 +14090,6 @@ arm_gen_movmemqi (rtx *operands) + { + HOST_WIDE_INT in_words_to_go, out_words_to_go, last_bytes; + HOST_WIDE_INT srcoffset, dstoffset; +- int i; + rtx src, dst, srcbase, dstbase; + rtx part_bytes_reg = NULL; + rtx mem; +@@ -14105,7 +14119,7 @@ arm_gen_movmemqi (rtx *operands) + if (out_words_to_go != in_words_to_go && ((in_words_to_go - 1) & 3) != 0) + part_bytes_reg = gen_rtx_REG (SImode, (in_words_to_go - 1) & 3); + +- for (i = 0; in_words_to_go >= 2; i+=4) ++ while (in_words_to_go >= 2) + { + if (in_words_to_go > 4) + emit_insn (arm_gen_load_multiple (arm_regs_in_sequence, 4, src, +@@ -16874,9 +16888,10 @@ compute_not_to_clear_mask (tree arg_type, rtx arg_rtx, int regno, + return not_to_clear_mask; + } + +-/* Saves callee saved registers, clears callee saved registers and caller saved +- registers not used to pass arguments before a cmse_nonsecure_call. And +- restores the callee saved registers after. */ ++/* Clears caller saved registers not used to pass arguments before a ++ cmse_nonsecure_call. Saving, clearing and restoring of callee saved ++ registers is done in __gnu_cmse_nonsecure_call libcall. ++ See libgcc/config/arm/cmse_nonsecure_call.S. */ + + static void + cmse_nonsecure_call_clear_caller_saved (void) +@@ -19126,7 +19141,7 @@ arm_compute_static_chain_stack_bytes (void) + + /* Compute a bit mask of which registers need to be + saved on the stack for the current function. +- This is used by arm_get_frame_offsets, which may add extra registers. */ ++ This is used by arm_compute_frame_layout, which may add extra registers. */ + + static unsigned long + arm_compute_save_reg_mask (void) +@@ -20765,12 +20780,25 @@ any_sibcall_could_use_r3 (void) + alignment. */ + + ++/* Return cached stack offsets. */ ++ ++static arm_stack_offsets * ++arm_get_frame_offsets (void) ++{ ++ struct arm_stack_offsets *offsets; ++ ++ offsets = &cfun->machine->stack_offsets; ++ ++ return offsets; ++} ++ ++ + /* Calculate stack offsets. These are used to calculate register elimination + offsets and in prologue/epilogue code. Also calculates which registers + should be saved. */ + +-static arm_stack_offsets * +-arm_get_frame_offsets (void) ++static void ++arm_compute_frame_layout (void) + { + struct arm_stack_offsets *offsets; + unsigned long func_type; +@@ -20781,9 +20809,6 @@ arm_get_frame_offsets (void) + + offsets = &cfun->machine->stack_offsets; + +- if (reload_completed) +- return offsets; +- + /* Initially this is the size of the local variables. It will translated + into an offset once we have determined the size of preceding data. */ + frame_size = ROUND_UP_WORD (get_frame_size ()); +@@ -20848,7 +20873,7 @@ arm_get_frame_offsets (void) + { + offsets->outgoing_args = offsets->soft_frame; + offsets->locals_base = offsets->soft_frame; +- return offsets; ++ return; + } + + /* Ensure SFP has the correct alignment. */ +@@ -20924,8 +20949,6 @@ arm_get_frame_offsets (void) + offsets->outgoing_args += 4; + gcc_assert (!(offsets->outgoing_args & 7)); + } +- +- return offsets; + } + + +@@ -21564,7 +21587,7 @@ arm_expand_prologue (void) + { + /* If no coprocessor registers are being pushed and we don't have + to worry about a frame pointer then push extra registers to +- create the stack frame. This is done is a way that does not ++ create the stack frame. This is done in a way that does not + alter the frame layout, so is independent of the epilogue. */ + int n; + int frame; +@@ -21692,8 +21715,8 @@ arm_expand_prologue (void) + will prevent the scheduler from moving stores to the frame + before the stack adjustment. */ + if (frame_pointer_needed) +- insn = emit_insn (gen_stack_tie (stack_pointer_rtx, +- hard_frame_pointer_rtx)); ++ emit_insn (gen_stack_tie (stack_pointer_rtx, ++ hard_frame_pointer_rtx)); + } + + +@@ -23778,7 +23801,6 @@ thumb_pop (FILE *f, unsigned long mask) + { + int regno; + int lo_mask = mask & 0xFF; +- int pushed_words = 0; + + gcc_assert (mask); + +@@ -23801,8 +23823,6 @@ thumb_pop (FILE *f, unsigned long mask) + + if ((lo_mask & ~1) != 0) + fprintf (f, ", "); +- +- pushed_words++; + } + } + +@@ -24077,9 +24097,6 @@ thumb_exit (FILE *f, int reg_containing_return_addr) + move_to = number_of_first_bit_set (regs_to_pop); + + asm_fprintf (f, "\tmov\t%r, %r\n", move_to, popped_into); +- +- regs_to_pop &= ~(1 << move_to); +- + --pops_needed; + } + +@@ -28291,17 +28308,32 @@ arm_expand_compare_and_swap (rtx operands[]) + gcc_unreachable (); + } + +- switch (mode) ++ if (TARGET_THUMB1) + { +- case QImode: gen = gen_atomic_compare_and_swapqi_1; break; +- case HImode: gen = gen_atomic_compare_and_swaphi_1; break; +- case SImode: gen = gen_atomic_compare_and_swapsi_1; break; +- case DImode: gen = gen_atomic_compare_and_swapdi_1; break; +- default: +- gcc_unreachable (); ++ switch (mode) ++ { ++ case QImode: gen = gen_atomic_compare_and_swapt1qi_1; break; ++ case HImode: gen = gen_atomic_compare_and_swapt1hi_1; break; ++ case SImode: gen = gen_atomic_compare_and_swapt1si_1; break; ++ case DImode: gen = gen_atomic_compare_and_swapt1di_1; break; ++ default: ++ gcc_unreachable (); ++ } ++ } ++ else ++ { ++ switch (mode) ++ { ++ case QImode: gen = gen_atomic_compare_and_swap32qi_1; break; ++ case HImode: gen = gen_atomic_compare_and_swap32hi_1; break; ++ case SImode: gen = gen_atomic_compare_and_swap32si_1; break; ++ case DImode: gen = gen_atomic_compare_and_swap32di_1; break; ++ default: ++ gcc_unreachable (); ++ } + } + +- bdst = TARGET_THUMB1 ? bval : gen_rtx_REG (CCmode, CC_REGNUM); ++ bdst = TARGET_THUMB1 ? bval : gen_rtx_REG (CC_Zmode, CC_REGNUM); + emit_insn (gen (bdst, rval, mem, oldval, newval, is_weak, mod_s, mod_f)); + + if (mode == QImode || mode == HImode) +--- a/src/gcc/config/arm/arm.h ++++ b/src/gcc/config/arm/arm.h +@@ -209,6 +209,12 @@ extern tree arm_fp16_type_node; + /* FPU supports ARMv8.1 Adv.SIMD extensions. */ + #define TARGET_NEON_RDMA (TARGET_NEON && arm_arch8_1) + ++/* Supports the Dot Product AdvSIMD extensions. */ ++#define TARGET_DOTPROD (TARGET_NEON \ ++ && bitmap_bit_p (arm_active_target.isa, \ ++ isa_bit_dotprod) \ ++ && arm_arch8_2) ++ + /* FPU supports the floating point FP16 instructions for ARMv8.2 and later. */ + #define TARGET_VFP_FP16INST \ + (TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FPU_ARMV8 && arm_fp16_inst) +@@ -682,7 +688,7 @@ extern int arm_arch_cmse; + /* Standard register usage. */ + + /* Register allocation in ARM Procedure Call Standard +- (S - saved over call). ++ (S - saved over call, F - Frame-related). + + r0 * argument word/integer result + r1-r3 argument word +--- a/src/gcc/config/arm/arm.md ++++ b/src/gcc/config/arm/arm.md +@@ -457,14 +457,13 @@ + ) + + (define_insn_and_split "*arm_adddi3" +- [(set (match_operand:DI 0 "s_register_operand" "=&r,&r,&r,&r,&r") +- (plus:DI (match_operand:DI 1 "s_register_operand" "%0, 0, r, 0, r") +- (match_operand:DI 2 "arm_adddi_operand" "r, 0, r, Dd, Dd"))) ++ [(set (match_operand:DI 0 "arm_general_register_operand" "=&r,&r,&r,&r,&r") ++ (plus:DI (match_operand:DI 1 "arm_general_register_operand" "%0, 0, r, 0, r") ++ (match_operand:DI 2 "arm_general_adddi_operand" "r, 0, r, Dd, Dd"))) + (clobber (reg:CC CC_REGNUM))] + "TARGET_32BIT && !TARGET_NEON" + "#" +- "TARGET_32BIT && reload_completed +- && ! (TARGET_NEON && IS_VFP_REGNUM (REGNO (operands[0])))" ++ "TARGET_32BIT && ((!TARGET_NEON && !TARGET_IWMMXT) || reload_completed)" + [(parallel [(set (reg:CC_C CC_REGNUM) + (compare:CC_C (plus:SI (match_dup 1) (match_dup 2)) + (match_dup 1))) +@@ -1263,13 +1262,13 @@ + ) + + (define_insn_and_split "*arm_subdi3" +- [(set (match_operand:DI 0 "s_register_operand" "=&r,&r,&r") +- (minus:DI (match_operand:DI 1 "s_register_operand" "0,r,0") +- (match_operand:DI 2 "s_register_operand" "r,0,0"))) ++ [(set (match_operand:DI 0 "arm_general_register_operand" "=&r,&r,&r") ++ (minus:DI (match_operand:DI 1 "arm_general_register_operand" "0,r,0") ++ (match_operand:DI 2 "arm_general_register_operand" "r,0,0"))) + (clobber (reg:CC CC_REGNUM))] + "TARGET_32BIT && !TARGET_NEON" + "#" ; "subs\\t%Q0, %Q1, %Q2\;sbc\\t%R0, %R1, %R2" +- "&& reload_completed" ++ "&& (!TARGET_IWMMXT || reload_completed)" + [(parallel [(set (reg:CC CC_REGNUM) + (compare:CC (match_dup 1) (match_dup 2))) + (set (match_dup 0) (minus:SI (match_dup 1) (match_dup 2)))]) +@@ -2255,7 +2254,24 @@ + (and:DI (match_operand:DI 1 "s_register_operand" "") + (match_operand:DI 2 "neon_inv_logic_op2" "")))] + "TARGET_32BIT" +- "" ++ " ++ if (!TARGET_NEON && !TARGET_IWMMXT) ++ { ++ rtx low = simplify_gen_binary (AND, SImode, ++ gen_lowpart (SImode, operands[1]), ++ gen_lowpart (SImode, operands[2])); ++ rtx high = simplify_gen_binary (AND, SImode, ++ gen_highpart (SImode, operands[1]), ++ gen_highpart_mode (SImode, DImode, ++ operands[2])); ++ ++ emit_insn (gen_rtx_SET (gen_lowpart (SImode, operands[0]), low)); ++ emit_insn (gen_rtx_SET (gen_highpart (SImode, operands[0]), high)); ++ ++ DONE; ++ } ++ /* Otherwise expand pattern as above. */ ++ " + ) + + (define_insn_and_split "*anddi3_insn" +@@ -3128,7 +3144,24 @@ + (ior:DI (match_operand:DI 1 "s_register_operand" "") + (match_operand:DI 2 "neon_logic_op2" "")))] + "TARGET_32BIT" +- "" ++ " ++ if (!TARGET_NEON && !TARGET_IWMMXT) ++ { ++ rtx low = simplify_gen_binary (IOR, SImode, ++ gen_lowpart (SImode, operands[1]), ++ gen_lowpart (SImode, operands[2])); ++ rtx high = simplify_gen_binary (IOR, SImode, ++ gen_highpart (SImode, operands[1]), ++ gen_highpart_mode (SImode, DImode, ++ operands[2])); ++ ++ emit_insn (gen_rtx_SET (gen_lowpart (SImode, operands[0]), low)); ++ emit_insn (gen_rtx_SET (gen_highpart (SImode, operands[0]), high)); ++ ++ DONE; ++ } ++ /* Otherwise expand pattern as above. */ ++ " + ) + + (define_insn_and_split "*iordi3_insn" +@@ -3316,6 +3349,22 @@ + no NEON instructions that take an immediate. */ + if (TARGET_IWMMXT && !REG_P (operands[2])) + operands[2] = force_reg (DImode, operands[2]); ++ if (!TARGET_NEON && !TARGET_IWMMXT) ++ { ++ rtx low = simplify_gen_binary (XOR, SImode, ++ gen_lowpart (SImode, operands[1]), ++ gen_lowpart (SImode, operands[2])); ++ rtx high = simplify_gen_binary (XOR, SImode, ++ gen_highpart (SImode, operands[1]), ++ gen_highpart_mode (SImode, DImode, ++ operands[2])); ++ ++ emit_insn (gen_rtx_SET (gen_lowpart (SImode, operands[0]), low)); ++ emit_insn (gen_rtx_SET (gen_highpart (SImode, operands[0]), high)); ++ ++ DONE; ++ } ++ /* Otherwise expand pattern as above. */ + } + ) + +@@ -5024,7 +5073,31 @@ + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE" + "") + +-(define_insn_and_split "one_cmpldi2" ++(define_expand "one_cmpldi2" ++ [(set (match_operand:DI 0 "s_register_operand" "") ++ (not:DI (match_operand:DI 1 "s_register_operand" "")))] ++ "TARGET_32BIT" ++ " ++ if (!TARGET_NEON && !TARGET_IWMMXT) ++ { ++ rtx low = simplify_gen_unary (NOT, SImode, ++ gen_lowpart (SImode, operands[1]), ++ SImode); ++ rtx high = simplify_gen_unary (NOT, SImode, ++ gen_highpart_mode (SImode, DImode, ++ operands[1]), ++ SImode); ++ ++ emit_insn (gen_rtx_SET (gen_lowpart (SImode, operands[0]), low)); ++ emit_insn (gen_rtx_SET (gen_highpart (SImode, operands[0]), high)); ++ ++ DONE; ++ } ++ /* Otherwise expand pattern as above. */ ++ " ++) ++ ++(define_insn_and_split "*one_cmpldi2_insn" + [(set (match_operand:DI 0 "s_register_operand" "=w,&r,&r,?w") + (not:DI (match_operand:DI 1 "s_register_operand" " w, 0, r, w")))] + "TARGET_32BIT" +--- a/src/gcc/config/arm/arm_neon.h ++++ b/src/gcc/config/arm/arm_neon.h +@@ -17069,14 +17069,22 @@ __extension__ extern __inline float16x4_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vadd_f16 (float16x4_t __a, float16x4_t __b) + { ++#ifdef __FAST_MATH__ ++ return __a + __b; ++#else + return __builtin_neon_vaddv4hf (__a, __b); ++#endif + } + + __extension__ extern __inline float16x8_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vaddq_f16 (float16x8_t __a, float16x8_t __b) + { ++#ifdef __FAST_MATH__ ++ return __a + __b; ++#else + return __builtin_neon_vaddv8hf (__a, __b); ++#endif + } + + __extension__ extern __inline uint16x4_t +@@ -17587,7 +17595,11 @@ __extension__ extern __inline float16x4_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vmul_f16 (float16x4_t __a, float16x4_t __b) + { ++#ifdef __FAST_MATH__ ++ return __a * __b; ++#else + return __builtin_neon_vmulfv4hf (__a, __b); ++#endif + } + + __extension__ extern __inline float16x4_t +@@ -17608,7 +17620,11 @@ __extension__ extern __inline float16x8_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vmulq_f16 (float16x8_t __a, float16x8_t __b) + { ++#ifdef __FAST_MATH__ ++ return __a * __b; ++#else + return __builtin_neon_vmulfv8hf (__a, __b); ++#endif + } + + __extension__ extern __inline float16x8_t +@@ -17804,14 +17820,22 @@ __extension__ extern __inline float16x4_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vsub_f16 (float16x4_t __a, float16x4_t __b) + { ++#ifdef __FAST_MATH__ ++ return __a - __b; ++#else + return __builtin_neon_vsubv4hf (__a, __b); ++#endif + } + + __extension__ extern __inline float16x8_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vsubq_f16 (float16x8_t __a, float16x8_t __b) + { ++#ifdef __FAST_MATH__ ++ return __a - __b; ++#else + return __builtin_neon_vsubv8hf (__a, __b); ++#endif + } + + #endif /* __ARM_FEATURE_VECTOR_FP16_ARITHMETIC. */ +@@ -18010,6 +18034,69 @@ vzipq_f16 (float16x8_t __a, float16x8_t __b) + + #endif + ++/* AdvSIMD Dot Product intrinsics. */ ++ ++#ifdef __ARM_FEATURE_DOTPROD ++ ++__extension__ extern __inline uint32x2_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b) ++{ ++ return __builtin_neon_udotv8qi_uuuu (__r, __a, __b); ++} ++ ++__extension__ extern __inline uint32x4_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b) ++{ ++ return __builtin_neon_udotv16qi_uuuu (__r, __a, __b); ++} ++ ++__extension__ extern __inline int32x2_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b) ++{ ++ return __builtin_neon_sdotv8qi (__r, __a, __b); ++} ++ ++__extension__ extern __inline int32x4_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b) ++{ ++ return __builtin_neon_sdotv16qi (__r, __a, __b); ++} ++ ++__extension__ extern __inline uint32x2_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index) ++{ ++ return __builtin_neon_udot_lanev8qi_uuuus (__r, __a, __b, __index); ++} ++ ++__extension__ extern __inline uint32x4_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b, ++ const int __index) ++{ ++ return __builtin_neon_udot_lanev16qi_uuuus (__r, __a, __b, __index); ++} ++ ++__extension__ extern __inline int32x2_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index) ++{ ++ return __builtin_neon_sdot_lanev8qi (__r, __a, __b, __index); ++} ++ ++__extension__ extern __inline int32x4_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index) ++{ ++ return __builtin_neon_sdot_lanev16qi (__r, __a, __b, __index); ++} ++ ++#endif /* __ARM_FEATURE_DOTPROD */ ++ + #ifdef __cplusplus + } + #endif +--- a/src/gcc/config/arm/arm_neon_builtins.def ++++ b/src/gcc/config/arm/arm_neon_builtins.def +@@ -331,3 +331,7 @@ VAR11 (STORE1, vst4, + v8qi, v4hi, v4hf, v2si, v2sf, di, v16qi, v8hi, v8hf, v4si, v4sf) + VAR9 (STORE1LANE, vst4_lane, + v8qi, v4hi, v4hf, v2si, v2sf, v8hi, v8hf, v4si, v4sf) ++VAR2 (TERNOP, sdot, v8qi, v16qi) ++VAR2 (UTERNOP, udot, v8qi, v16qi) ++VAR2 (MAC_LANE, sdot_lane, v8qi, v16qi) ++VAR2 (UMAC_LANE, udot_lane, v8qi, v16qi) +--- a/src/gcc/config/arm/cortex-a53.md ++++ b/src/gcc/config/arm/cortex-a53.md +@@ -211,7 +211,7 @@ + + (define_bypass 1 "cortex_a53_alu*" + "cortex_a53_alu_shift*" +- "aarch_forward_to_shift_is_not_shifted_reg") ++ "arm_no_early_alu_shift_dep") + + (define_bypass 2 "cortex_a53_alu*" + "cortex_a53_alu_*,cortex_a53_shift*") +@@ -254,6 +254,16 @@ + "cortex_a53_store*" + "arm_no_early_store_addr_dep") + ++;; Model a bypass for load to load/store address. ++ ++(define_bypass 3 "cortex_a53_load1" ++ "cortex_a53_load*" ++ "arm_early_load_addr_dep_ptr") ++ ++(define_bypass 3 "cortex_a53_load1" ++ "cortex_a53_store*" ++ "arm_early_store_addr_dep_ptr") ++ + ;; Model a GP->FP register move as similar to stores. + + (define_bypass 0 "cortex_a53_alu*,cortex_a53_shift*" +@@ -501,19 +511,19 @@ + ;; Floating-point arithmetic. + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +-(define_insn_reservation "cortex_a53_fpalu" 5 ++(define_insn_reservation "cortex_a53_fpalu" 4 + (and (eq_attr "tune" "cortexa53") + (eq_attr "type" "ffariths, fadds, ffarithd, faddd, fmov, + f_cvt, fcmps, fcmpd, fccmps, fccmpd, fcsel, + f_rints, f_rintd, f_minmaxs, f_minmaxd")) + "cortex_a53_slot_any,cortex_a53_fp_alu") + +-(define_insn_reservation "cortex_a53_fconst" 3 ++(define_insn_reservation "cortex_a53_fconst" 2 + (and (eq_attr "tune" "cortexa53") + (eq_attr "type" "fconsts,fconstd")) + "cortex_a53_slot_any,cortex_a53_fp_alu") + +-(define_insn_reservation "cortex_a53_fpmul" 5 ++(define_insn_reservation "cortex_a53_fpmul" 4 + (and (eq_attr "tune" "cortexa53") + (eq_attr "type" "fmuls,fmuld")) + "cortex_a53_slot_any,cortex_a53_fp_mul") +@@ -564,7 +574,7 @@ + ;; Floating-point load/store. + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +-(define_insn_reservation "cortex_a53_f_load_64" 4 ++(define_insn_reservation "cortex_a53_f_load_64" 3 + (and (eq_attr "tune" "cortexa53") + (ior (eq_attr "type" "f_loads,f_loadd") + (eq_attr "cortex_a53_advsimd_type" +@@ -572,7 +582,7 @@ + "cortex_a53_slot_any+cortex_a53_ls_agen, + cortex_a53_load") + +-(define_insn_reservation "cortex_a53_f_load_many" 5 ++(define_insn_reservation "cortex_a53_f_load_many" 4 + (and (eq_attr "tune" "cortexa53") + (eq_attr "cortex_a53_advsimd_type" + "advsimd_load_128,advsimd_load_lots")) +@@ -606,22 +616,22 @@ + ;; or a 128-bit operation in which case we require in our model that we + ;; issue from slot 0. + +-(define_insn_reservation "cortex_a53_advsimd_alu" 5 ++(define_insn_reservation "cortex_a53_advsimd_alu" 4 + (and (eq_attr "tune" "cortexa53") + (eq_attr "cortex_a53_advsimd_type" "advsimd_alu")) + "cortex_a53_slot_any,cortex_a53_fp_alu") + +-(define_insn_reservation "cortex_a53_advsimd_alu_q" 5 ++(define_insn_reservation "cortex_a53_advsimd_alu_q" 4 + (and (eq_attr "tune" "cortexa53") + (eq_attr "cortex_a53_advsimd_type" "advsimd_alu_q")) + "cortex_a53_slot0,cortex_a53_fp_alu_q") + +-(define_insn_reservation "cortex_a53_advsimd_mul" 5 ++(define_insn_reservation "cortex_a53_advsimd_mul" 4 + (and (eq_attr "tune" "cortexa53") + (eq_attr "cortex_a53_advsimd_type" "advsimd_mul")) + "cortex_a53_slot_any,cortex_a53_fp_mul") + +-(define_insn_reservation "cortex_a53_advsimd_mul_q" 5 ++(define_insn_reservation "cortex_a53_advsimd_mul_q" 4 + (and (eq_attr "tune" "cortexa53") + (eq_attr "cortex_a53_advsimd_type" "advsimd_mul_q")) + "cortex_a53_slot0,cortex_a53_fp_mul_q") +@@ -700,20 +710,18 @@ + ;; multiply-accumulate operations as a bypass reducing the latency + ;; of producing instructions to near zero. + +-(define_bypass 1 "cortex_a53_fp*, ++(define_bypass 1 "cortex_a53_fpalu, ++ cortex_a53_fpmul, + cortex_a53_r2f, ++ cortex_a53_r2f_cvt, ++ cortex_a53_fconst, + cortex_a53_f_load*" + "cortex_a53_fpmac" + "aarch_accumulator_forwarding") + +-;; Model a bypass from the result of an FP operation to a use. +- +-(define_bypass 4 "cortex_a53_fpalu, +- cortex_a53_fpmul" +- "cortex_a53_fpalu, +- cortex_a53_fpmul, +- cortex_a53_fpmac, +- cortex_a53_advsimd_div*") ++(define_bypass 4 "cortex_a53_fpmac" ++ "cortex_a53_fpmac" ++ "aarch_accumulator_forwarding") + + ;; We want AESE and AESMC to end up consecutive to one another. + +--- a/src/gcc/config/arm/iterators.md ++++ b/src/gcc/config/arm/iterators.md +@@ -45,6 +45,9 @@ + ;; A list of the 32bit and 64bit integer modes + (define_mode_iterator SIDI [SI DI]) + ++;; A list of atomic compare and swap success return modes ++(define_mode_iterator CCSI [(CC_Z "TARGET_32BIT") (SI "TARGET_THUMB1")]) ++ + ;; A list of modes which the VFP unit can handle + (define_mode_iterator SDF [(SF "") (DF "TARGET_VFP_DOUBLE")]) + +@@ -411,10 +414,16 @@ + + (define_int_iterator VFM_LANE_AS [UNSPEC_VFMA_LANE UNSPEC_VFMS_LANE]) + ++(define_int_iterator DOTPROD [UNSPEC_DOT_S UNSPEC_DOT_U]) ++ + ;;---------------------------------------------------------------------------- + ;; Mode attributes + ;;---------------------------------------------------------------------------- + ++;; Determine name of atomic compare and swap from success result mode. This ++;; distinguishes between 16-bit Thumb and 32-bit Thumb/ARM. ++(define_mode_attr arch [(CC_Z "32") (SI "t1")]) ++ + ;; Determine element size suffix from vector mode. + (define_mode_attr MMX_char [(V8QI "b") (V4HI "h") (V2SI "w") (DI "d")]) + +@@ -709,6 +718,9 @@ + + (define_mode_attr pf [(V8QI "p") (V16QI "p") (V2SF "f") (V4SF "f")]) + ++(define_mode_attr VSI2QI [(V2SI "V8QI") (V4SI "V16QI")]) ++(define_mode_attr vsi2qi [(V2SI "v8qi") (V4SI "v16qi")]) ++ + ;;---------------------------------------------------------------------------- + ;; Code attributes + ;;---------------------------------------------------------------------------- +@@ -805,6 +817,7 @@ + (UNSPEC_VSRA_S_N "s") (UNSPEC_VSRA_U_N "u") + (UNSPEC_VRSRA_S_N "s") (UNSPEC_VRSRA_U_N "u") + (UNSPEC_VCVTH_S "s") (UNSPEC_VCVTH_U "u") ++ (UNSPEC_DOT_S "s") (UNSPEC_DOT_U "u") + ]) + + (define_int_attr vcvth_op +@@ -992,3 +1005,6 @@ + + (define_int_attr mrrc [(VUNSPEC_MRRC "mrrc") (VUNSPEC_MRRC2 "mrrc2")]) + (define_int_attr MRRC [(VUNSPEC_MRRC "MRRC") (VUNSPEC_MRRC2 "MRRC2")]) ++ ++(define_int_attr opsuffix [(UNSPEC_DOT_S "s8") ++ (UNSPEC_DOT_U "u8")]) +--- a/src/gcc/config/arm/neon.md ++++ b/src/gcc/config/arm/neon.md +@@ -505,6 +505,23 @@ + (const_string "neon_add")))] + ) + ++;; As with SFmode, full support for HFmode vector arithmetic is only available ++;; when flag-unsafe-math-optimizations is enabled. ++ ++(define_insn "add3" ++ [(set ++ (match_operand:VH 0 "s_register_operand" "=w") ++ (plus:VH ++ (match_operand:VH 1 "s_register_operand" "w") ++ (match_operand:VH 2 "s_register_operand" "w")))] ++ "TARGET_NEON_FP16INST && flag_unsafe_math_optimizations" ++ "vadd.\t%0, %1, %2" ++ [(set (attr "type") ++ (if_then_else (match_test "") ++ (const_string "neon_fp_addsub_s") ++ (const_string "neon_add")))] ++) ++ + (define_insn "add3_fp16" + [(set + (match_operand:VH 0 "s_register_operand" "=w") +@@ -557,6 +574,17 @@ + (const_string "neon_sub")))] + ) + ++(define_insn "sub3" ++ [(set ++ (match_operand:VH 0 "s_register_operand" "=w") ++ (minus:VH ++ (match_operand:VH 1 "s_register_operand" "w") ++ (match_operand:VH 2 "s_register_operand" "w")))] ++ "TARGET_NEON_FP16INST && flag_unsafe_math_optimizations" ++ "vsub.\t%0, %1, %2" ++ [(set_attr "type" "neon_sub")] ++) ++ + (define_insn "sub3_fp16" + [(set + (match_operand:VH 0 "s_register_operand" "=w") +@@ -650,7 +678,7 @@ + (match_operand:VCVTF 2 "register_operand" "w") + (match_operand:VCVTF 3 "register_operand" "0")))] + "TARGET_NEON && TARGET_FMA && flag_unsafe_math_optimizations" +- "vfma%?.\\t%0, %1, %2" ++ "vfma.\\t%0, %1, %2" + [(set_attr "type" "neon_fp_mla_s")] + ) + +@@ -660,12 +688,21 @@ + (match_operand:VCVTF 2 "register_operand" "w") + (match_operand:VCVTF 3 "register_operand" "0")))] + "TARGET_NEON && TARGET_FMA" +- "vfma%?.\\t%0, %1, %2" ++ "vfma.\\t%0, %1, %2" + [(set_attr "type" "neon_fp_mla_s")] + ) + +-;; There is limited support for unsafe-math optimizations using the NEON FP16 +-;; arithmetic instructions, so only the intrinsic is currently supported. ++(define_insn "fma4" ++ [(set (match_operand:VH 0 "register_operand" "=w") ++ (fma:VH ++ (match_operand:VH 1 "register_operand" "w") ++ (match_operand:VH 2 "register_operand" "w") ++ (match_operand:VH 3 "register_operand" "0")))] ++ "TARGET_NEON_FP16INST && flag_unsafe_math_optimizations" ++ "vfma.\\t%0, %1, %2" ++ [(set_attr "type" "neon_fp_mla_s")] ++) ++ + (define_insn "fma4_intrinsic" + [(set (match_operand:VH 0 "register_operand" "=w") + (fma:VH +@@ -683,7 +720,7 @@ + (match_operand:VCVTF 2 "register_operand" "w") + (match_operand:VCVTF 3 "register_operand" "0")))] + "TARGET_NEON && TARGET_FMA && flag_unsafe_math_optimizations" +- "vfms%?.\\t%0, %1, %2" ++ "vfms.\\t%0, %1, %2" + [(set_attr "type" "neon_fp_mla_s")] + ) + +@@ -694,7 +731,7 @@ + (match_operand:VCVTF 2 "register_operand" "w") + (match_operand:VCVTF 3 "register_operand" "0")))] + "TARGET_NEON && TARGET_FMA" +- "vfms%?.\\t%0, %1, %2" ++ "vfms.\\t%0, %1, %2" + [(set_attr "type" "neon_fp_mla_s")] + ) + +@@ -715,7 +752,7 @@ + "s_register_operand" "w")] + NEON_VRINT))] + "TARGET_NEON && TARGET_FPU_ARMV8" +- "vrint%?.f32\\t%0, %1" ++ "vrint.f32\\t%0, %1" + [(set_attr "type" "neon_fp_round_")] + ) + +@@ -2175,6 +2212,17 @@ + (const_string "neon_mul_")))] + ) + ++(define_insn "mul3" ++ [(set ++ (match_operand:VH 0 "s_register_operand" "=w") ++ (mult:VH ++ (match_operand:VH 1 "s_register_operand" "w") ++ (match_operand:VH 2 "s_register_operand" "w")))] ++ "TARGET_NEON_FP16INST && flag_unsafe_math_optimizations" ++ "vmul.f16\t%0, %1, %2" ++ [(set_attr "type" "neon_mul_")] ++) ++ + (define_insn "neon_vmulf" + [(set + (match_operand:VH 0 "s_register_operand" "=w") +@@ -2996,6 +3044,76 @@ + DONE; + }) + ++;; These instructions map to the __builtins for the Dot Product operations. ++(define_insn "neon_dot" ++ [(set (match_operand:VCVTI 0 "register_operand" "=w") ++ (plus:VCVTI (match_operand:VCVTI 1 "register_operand" "0") ++ (unspec:VCVTI [(match_operand: 2 ++ "register_operand" "w") ++ (match_operand: 3 ++ "register_operand" "w")] ++ DOTPROD)))] ++ "TARGET_DOTPROD" ++ "vdot.\\t%0, %2, %3" ++ [(set_attr "type" "neon_dot")] ++) ++ ++;; These instructions map to the __builtins for the Dot Product ++;; indexed operations. ++(define_insn "neon_dot_lane" ++ [(set (match_operand:VCVTI 0 "register_operand" "=w") ++ (plus:VCVTI (match_operand:VCVTI 1 "register_operand" "0") ++ (unspec:VCVTI [(match_operand: 2 ++ "register_operand" "w") ++ (match_operand:V8QI 3 "register_operand" "t") ++ (match_operand:SI 4 "immediate_operand" "i")] ++ DOTPROD)))] ++ "TARGET_DOTPROD" ++ { ++ operands[4] ++ = GEN_INT (NEON_ENDIAN_LANE_N (V8QImode, INTVAL (operands[4]))); ++ return "vdot.\\t%0, %2, %P3[%c4]"; ++ } ++ [(set_attr "type" "neon_dot")] ++) ++ ++;; These expands map to the Dot Product optab the vectorizer checks for. ++;; The auto-vectorizer expects a dot product builtin that also does an ++;; accumulation into the provided register. ++;; Given the following pattern ++;; ++;; for (i=0; idot_prod" ++ [(set (match_operand:VCVTI 0 "register_operand") ++ (plus:VCVTI (unspec:VCVTI [(match_operand: 1 ++ "register_operand") ++ (match_operand: 2 ++ "register_operand")] ++ DOTPROD) ++ (match_operand:VCVTI 3 "register_operand")))] ++ "TARGET_DOTPROD" ++{ ++ emit_insn ( ++ gen_neon_dot (operands[3], operands[3], operands[1], ++ operands[2])); ++ emit_insn (gen_rtx_SET (operands[0], operands[3])); ++ DONE; ++}) ++ + (define_expand "neon_copysignf" + [(match_operand:VCVTF 0 "register_operand") + (match_operand:VCVTF 1 "register_operand") +--- a/src/gcc/config/arm/predicates.md ++++ b/src/gcc/config/arm/predicates.md +@@ -82,6 +82,11 @@ + || REGNO (op) >= FIRST_PSEUDO_REGISTER)); + }) + ++(define_predicate "arm_general_adddi_operand" ++ (ior (match_operand 0 "arm_general_register_operand") ++ (and (match_code "const_int") ++ (match_test "const_ok_for_dimode_op (INTVAL (op), PLUS)")))) ++ + (define_predicate "vfp_register_operand" + (match_code "reg,subreg") + { +--- a/src/gcc/config/arm/sync.md ++++ b/src/gcc/config/arm/sync.md +@@ -191,9 +191,9 @@ + + ;; Constraints of this pattern must be at least as strict as those of the + ;; cbranchsi operations in thumb1.md and aim to be as permissive. +-(define_insn_and_split "atomic_compare_and_swap_1" +- [(set (match_operand 0 "cc_register_operand" "=&c,&l,&l,&l") ;; bool out +- (unspec_volatile:CC_Z [(const_int 0)] VUNSPEC_ATOMIC_CAS)) ++(define_insn_and_split "atomic_compare_and_swap_1" ++ [(set (match_operand:CCSI 0 "cc_register_operand" "=&c,&l,&l,&l") ;; bool out ++ (unspec_volatile:CCSI [(const_int 0)] VUNSPEC_ATOMIC_CAS)) + (set (match_operand:SI 1 "s_register_operand" "=&r,&l,&0,&l*h") ;; val out + (zero_extend:SI + (match_operand:NARROW 2 "mem_noofs_operand" "+Ua,Ua,Ua,Ua"))) ;; memory +@@ -223,9 +223,9 @@ + + ;; Constraints of this pattern must be at least as strict as those of the + ;; cbranchsi operations in thumb1.md and aim to be as permissive. +-(define_insn_and_split "atomic_compare_and_swap_1" +- [(set (match_operand 0 "cc_register_operand" "=&c,&l,&l,&l") ;; bool out +- (unspec_volatile:CC_Z [(const_int 0)] VUNSPEC_ATOMIC_CAS)) ++(define_insn_and_split "atomic_compare_and_swap_1" ++ [(set (match_operand:CCSI 0 "cc_register_operand" "=&c,&l,&l,&l") ;; bool out ++ (unspec_volatile:CCSI [(const_int 0)] VUNSPEC_ATOMIC_CAS)) + (set (match_operand:SIDI 1 "s_register_operand" "=&r,&l,&0,&l*h") ;; val out + (match_operand:SIDI 2 "mem_noofs_operand" "+Ua,Ua,Ua,Ua")) ;; memory + (set (match_dup 2) +--- a/src/gcc/config/arm/t-aprofile ++++ b/src/gcc/config/arm/t-aprofile +@@ -24,30 +24,13 @@ + # have their default values during the configure step. We enforce + # this during the top-level configury. + +-MULTILIB_OPTIONS = +-MULTILIB_DIRNAMES = +-MULTILIB_EXCEPTIONS = +-MULTILIB_MATCHES = +-MULTILIB_REUSE = ++# Arch and FPU variants to build libraries with + +-# We have the following hierachy: +-# ISA: A32 (.) or T32 (thumb) +-# Architecture: ARMv7-A (v7-a), ARMv7VE (v7ve), or ARMv8-A (v8-a). +-# FPU: VFPv3-D16 (fpv3), NEONv1 (simdv1), VFPv4-D16 (fpv4), +-# NEON-VFPV4 (simdvfpv4), NEON for ARMv8 (simdv8), or None (.). +-# Float-abi: Soft (.), softfp (softfp), or hard (hardfp). ++MULTI_ARCH_OPTS_A = march=armv7-a/march=armv7ve/march=armv8-a ++MULTI_ARCH_DIRS_A = v7-a v7ve v8-a + +-MULTILIB_OPTIONS += mthumb +-MULTILIB_DIRNAMES += thumb +- +-MULTILIB_OPTIONS += march=armv7-a/march=armv7ve/march=armv8-a +-MULTILIB_DIRNAMES += v7-a v7ve v8-a +- +-MULTILIB_OPTIONS += mfpu=vfpv3-d16/mfpu=neon/mfpu=vfpv4-d16/mfpu=neon-vfpv4/mfpu=neon-fp-armv8 +-MULTILIB_DIRNAMES += fpv3 simdv1 fpv4 simdvfpv4 simdv8 +- +-MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard +-MULTILIB_DIRNAMES += softfp hard ++MULTI_FPU_OPTS_A = mfpu=vfpv3-d16/mfpu=neon/mfpu=vfpv4-d16/mfpu=neon-vfpv4/mfpu=neon-fp-armv8 ++MULTI_FPU_DIRS_A = fpv3 simdv1 fpv4 simdvfpv4 simdv8 + + + # Option combinations to build library with +@@ -71,7 +54,11 @@ MULTILIB_REQUIRED += *march=armv8-a + MULTILIB_REQUIRED += *march=armv8-a/mfpu=neon-fp-armv8/mfloat-abi=* + + ++# Matches ++ + # CPU Matches ++MULTILIB_MATCHES += march?armv7-a=mcpu?marvell-pj4 ++MULTILIB_MATCHES += march?armv7-a=mcpu?generic-armv7-a + MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a8 + MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a9 + MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a5 +--- /dev/null ++++ b/src/gcc/config/arm/t-multilib +@@ -0,0 +1,69 @@ ++# Copyright (C) 2016 Free Software Foundation, Inc. ++# ++# This file is part of GCC. ++# ++# GCC is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3, or (at your option) ++# any later version. ++# ++# GCC is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GCC; see the file COPYING3. If not see ++# . ++ ++# This is a target makefile fragment that attempts to get ++# multilibs built for the range of CPU's, FPU's and ABI's that ++# are relevant for the ARM architecture. It should not be used in ++# conjunction with another make file fragment and assumes --with-arch, ++# --with-cpu, --with-fpu, --with-float, --with-mode have their default ++# values during the configure step. We enforce this during the ++# top-level configury. ++ ++MULTILIB_OPTIONS = ++MULTILIB_DIRNAMES = ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = ++MULTILIB_REUSE = ++ ++comma := , ++tm_multilib_list := $(subst $(comma), ,$(TM_MULTILIB_CONFIG)) ++ ++HAS_APROFILE := $(filter aprofile,$(tm_multilib_list)) ++HAS_RMPROFILE := $(filter rmprofile,$(tm_multilib_list)) ++ ++ifneq (,$(HAS_APROFILE)) ++include $(srcdir)/config/arm/t-aprofile ++endif ++ifneq (,$(HAS_RMPROFILE)) ++include $(srcdir)/config/arm/t-rmprofile ++endif ++SEP := $(and $(HAS_APROFILE),$(HAS_RMPROFILE),/) ++ ++ ++# We have the following hierachy: ++# ISA: A32 (.) or T16/T32 (thumb) ++# Architecture: ARMv6-M (v6-m), ARMv7-M (v7-m), ARMv7E-M (v7e-m), ++# ARMv7 (v7-ar), ARMv7-A (v7-a), ARMv7VE (v7ve), ++# ARMv8-M Baseline (v8-m.base), ARMv8-M Mainline (v8-m.main) ++# or ARMv8-A (v8-a). ++# FPU: VFPv3-D16 (fpv3), NEONv1 (simdv1), FPV4-SP-D16 (fpv4-sp), ++# VFPv4-D16 (fpv4), NEON-VFPV4 (simdvfpv4), FPV5-SP-D16 (fpv5-sp), ++# VFPv5-D16 (fpv5), NEON for ARMv8 (simdv8), or None (.). ++# Float-abi: Soft (.), softfp (softfp), or hard (hard). ++ ++MULTILIB_OPTIONS += mthumb ++MULTILIB_DIRNAMES += thumb ++ ++MULTILIB_OPTIONS += $(MULTI_ARCH_OPTS_A)$(SEP)$(MULTI_ARCH_OPTS_RM) ++MULTILIB_DIRNAMES += $(MULTI_ARCH_DIRS_A) $(MULTI_ARCH_DIRS_RM) ++ ++MULTILIB_OPTIONS += $(MULTI_FPU_OPTS_A)$(SEP)$(MULTI_FPU_OPTS_RM) ++MULTILIB_DIRNAMES += $(MULTI_FPU_DIRS_A) $(MULTI_FPU_DIRS_RM) ++ ++MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard ++MULTILIB_DIRNAMES += softfp hard +--- a/src/gcc/config/arm/t-rmprofile ++++ b/src/gcc/config/arm/t-rmprofile +@@ -24,33 +24,14 @@ + # values during the configure step. We enforce this during the + # top-level configury. + +-MULTILIB_OPTIONS = +-MULTILIB_DIRNAMES = +-MULTILIB_EXCEPTIONS = +-MULTILIB_MATCHES = +-MULTILIB_REUSE = + +-# We have the following hierachy: +-# ISA: A32 (.) or T16/T32 (thumb). +-# Architecture: ARMv6S-M (v6-m), ARMv7-M (v7-m), ARMv7E-M (v7e-m), +-# ARMv8-M Baseline (v8-m.base) or ARMv8-M Mainline (v8-m.main). +-# FPU: VFPv3-D16 (fpv3), FPV4-SP-D16 (fpv4-sp), FPV5-SP-D16 (fpv5-sp), +-# VFPv5-D16 (fpv5), or None (.). +-# Float-abi: Soft (.), softfp (softfp), or hard (hardfp). ++# Arch and FPU variants to build libraries with + +-# Options to build libraries with ++MULTI_ARCH_OPTS_RM = march=armv6s-m/march=armv7-m/march=armv7e-m/march=armv7/march=armv8-m.base/march=armv8-m.main ++MULTI_ARCH_DIRS_RM = v6-m v7-m v7e-m v7-ar v8-m.base v8-m.main + +-MULTILIB_OPTIONS += mthumb +-MULTILIB_DIRNAMES += thumb +- +-MULTILIB_OPTIONS += march=armv6s-m/march=armv7-m/march=armv7e-m/march=armv7/march=armv8-m.base/march=armv8-m.main +-MULTILIB_DIRNAMES += v6-m v7-m v7e-m v7-ar v8-m.base v8-m.main +- +-MULTILIB_OPTIONS += mfpu=vfpv3-d16/mfpu=fpv4-sp-d16/mfpu=fpv5-sp-d16/mfpu=fpv5-d16 +-MULTILIB_DIRNAMES += fpv3 fpv4-sp fpv5-sp fpv5 +- +-MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard +-MULTILIB_DIRNAMES += softfp hard ++MULTI_FPU_OPTS_RM = mfpu=vfpv3-d16/mfpu=fpv4-sp-d16/mfpu=fpv5-sp-d16/mfpu=fpv5-d16 ++MULTI_FPU_DIRS_RM = fpv3 fpv4-sp fpv5-sp fpv5 + + + # Option combinations to build library with +--- a/src/gcc/config/arm/types.md ++++ b/src/gcc/config/arm/types.md +@@ -316,6 +316,8 @@ + ; neon_cls_q + ; neon_cnt + ; neon_cnt_q ++; neon_dot ++; neon_dot_q + ; neon_ext + ; neon_ext_q + ; neon_rbit +@@ -763,6 +765,8 @@ + \ + neon_abs,\ + neon_abs_q,\ ++ neon_dot,\ ++ neon_dot_q,\ + neon_neg,\ + neon_neg_q,\ + neon_qneg,\ +@@ -1108,8 +1112,8 @@ + neon_sub, neon_sub_q, neon_sub_widen, neon_sub_long, neon_qsub,\ + neon_qsub_q, neon_sub_halve, neon_sub_halve_q,\ + neon_sub_halve_narrow_q,\ +- neon_abs, neon_abs_q, neon_neg, neon_neg_q, neon_qneg,\ +- neon_qneg_q, neon_qabs, neon_qabs_q, neon_abd, neon_abd_q,\ ++ neon_abs, neon_abs_q, neon_dot, neon_dot_q, neon_neg, neon_neg_q,\ ++ neon_qneg, neon_qneg_q, neon_qabs, neon_qabs_q, neon_abd, neon_abd_q,\ + neon_abd_long, neon_minmax, neon_minmax_q, neon_compare,\ + neon_compare_q, neon_compare_zero, neon_compare_zero_q,\ + neon_arith_acc, neon_arith_acc_q, neon_reduc_add,\ +--- a/src/gcc/config/arm/unspecs.md ++++ b/src/gcc/config/arm/unspecs.md +@@ -410,4 +410,6 @@ + UNSPEC_VRNDN + UNSPEC_VRNDP + UNSPEC_VRNDX ++ UNSPEC_DOT_S ++ UNSPEC_DOT_U + ]) +--- a/src/gcc/config/i386/i386.c ++++ b/src/gcc/config/i386/i386.c +@@ -30249,6 +30249,15 @@ ix86_macro_fusion_pair_p (rtx_insn *condgen, rtx_insn *condjmp) + if (!any_condjump_p (condjmp)) + return false; + ++ unsigned int condreg1, condreg2; ++ rtx cc_reg_1; ++ ix86_fixed_condition_code_regs (&condreg1, &condreg2); ++ cc_reg_1 = gen_rtx_REG (CCmode, condreg1); ++ if (!reg_referenced_p (cc_reg_1, PATTERN (condjmp)) ++ || !condgen ++ || !modified_in_p (cc_reg_1, condgen)) ++ return false; ++ + if (get_attr_type (condgen) != TYPE_TEST + && get_attr_type (condgen) != TYPE_ICMP + && get_attr_type (condgen) != TYPE_INCDEC +--- a/src/gcc/configure ++++ b/src/gcc/configure +@@ -1717,7 +1717,8 @@ Optional Packages: + --with-stabs arrange to use stabs instead of host debug format + --with-dwarf2 force the default debug format to be DWARF 2 + --with-specs=SPECS add SPECS to driver command-line processing +- --with-pkgversion=PKG Use PKG in the version string in place of "GCC" ++ --with-pkgversion=PKG Use PKG in the version string in place of "Linaro ++ GCC `cat $srcdir/LINARO-VERSION`" + --with-bugurl=URL Direct users to URL to report a bug + --with-multilib-list select multilibs (AArch64, SH and x86-64 only) + --with-gnu-ld assume the C compiler uses GNU ld default=no +@@ -7637,7 +7638,7 @@ if test "${with_pkgversion+set}" = set; then : + *) PKGVERSION="($withval) " ;; + esac + else +- PKGVERSION="(GCC) " ++ PKGVERSION="(Linaro GCC `cat $srcdir/LINARO-VERSION`) " + + fi + +@@ -18433,7 +18434,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 18436 "configure" ++#line 18437 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -18539,7 +18540,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 18542 "configure" ++#line 18543 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +--- a/src/gcc/configure.ac ++++ b/src/gcc/configure.ac +@@ -929,7 +929,7 @@ AC_ARG_WITH(specs, + ) + AC_SUBST(CONFIGURE_SPECS) + +-ACX_PKGVERSION([GCC]) ++ACX_PKGVERSION([Linaro GCC `cat $srcdir/LINARO-VERSION`]) + ACX_BUGURL([https://gcc.gnu.org/bugs/]) + + # Sanity check enable_languages in case someone does not run the toplevel +--- a/src/gcc/cppbuiltin.c ++++ b/src/gcc/cppbuiltin.c +@@ -53,18 +53,41 @@ parse_basever (int *major, int *minor, int *patchlevel) + *patchlevel = s_patchlevel; + } + ++/* Parse a LINAROVER version string of the format "M.m-year.month[-spin][~dev]" ++ to create Linaro release number YYYYMM and spin version. */ ++static void ++parse_linarover (int *release, int *spin) ++{ ++ static int s_year = -1, s_month, s_spin; ++ ++ if (s_year == -1) ++ if (sscanf (LINAROVER, "%*[^-]-%d.%d-%d", &s_year, &s_month, &s_spin) != 3) ++ { ++ sscanf (LINAROVER, "%*[^-]-%d.%d", &s_year, &s_month); ++ s_spin = 0; ++ } ++ ++ if (release) ++ *release = s_year * 100 + s_month; ++ ++ if (spin) ++ *spin = s_spin; ++} + + /* Define __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ and __VERSION__. */ + static void + define__GNUC__ (cpp_reader *pfile) + { +- int major, minor, patchlevel; ++ int major, minor, patchlevel, linaro_release, linaro_spin; + + parse_basever (&major, &minor, &patchlevel); ++ parse_linarover (&linaro_release, &linaro_spin); + cpp_define_formatted (pfile, "__GNUC__=%d", major); + cpp_define_formatted (pfile, "__GNUC_MINOR__=%d", minor); + cpp_define_formatted (pfile, "__GNUC_PATCHLEVEL__=%d", patchlevel); + cpp_define_formatted (pfile, "__VERSION__=\"%s\"", version_string); ++ cpp_define_formatted (pfile, "__LINARO_RELEASE__=%d", linaro_release); ++ cpp_define_formatted (pfile, "__LINARO_SPIN__=%d", linaro_spin); + cpp_define_formatted (pfile, "__ATOMIC_RELAXED=%d", MEMMODEL_RELAXED); + cpp_define_formatted (pfile, "__ATOMIC_SEQ_CST=%d", MEMMODEL_SEQ_CST); + cpp_define_formatted (pfile, "__ATOMIC_ACQUIRE=%d", MEMMODEL_ACQUIRE); +--- a/src/gcc/dbgcnt.def ++++ b/src/gcc/dbgcnt.def +@@ -174,6 +174,7 @@ DEBUG_COUNTER (merged_ipa_icf) + DEBUG_COUNTER (postreload_cse) + DEBUG_COUNTER (pre) + DEBUG_COUNTER (pre_insn) ++DEBUG_COUNTER (prefetch) + DEBUG_COUNTER (registered_jump_thread) + DEBUG_COUNTER (sched2_func) + DEBUG_COUNTER (sched_block) +--- a/src/gcc/emit-rtl.h ++++ b/src/gcc/emit-rtl.h +@@ -267,7 +267,7 @@ struct GTY(()) rtl_data { + + /* Nonzero if function being compiled doesn't contain any calls + (ignoring the prologue and epilogue). This is set prior to +- local register allocation and is valid for the remaining ++ register allocation in IRA and is valid for the remaining + compiler passes. */ + bool is_leaf; + +--- a/src/gcc/expr.c ++++ b/src/gcc/expr.c +@@ -8907,6 +8907,15 @@ expand_expr_real_2 (sepops ops, rtx target, machine_mode tmode, + end_sequence (); + unsigned uns_cost = seq_cost (uns_insns, speed_p); + unsigned sgn_cost = seq_cost (sgn_insns, speed_p); ++ ++ /* If costs are the same then use as tie breaker the other ++ other factor. */ ++ if (uns_cost == sgn_cost) ++ { ++ uns_cost = seq_cost (uns_insns, !speed_p); ++ sgn_cost = seq_cost (sgn_insns, !speed_p); ++ } ++ + if (uns_cost < sgn_cost || (uns_cost == sgn_cost && unsignedp)) + { + emit_insn (uns_insns); +@@ -9826,7 +9835,7 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode, + if (targetm.gen_ccmp_first) + { + gcc_checking_assert (targetm.gen_ccmp_next != NULL); +- r = expand_ccmp_expr (g); ++ r = expand_ccmp_expr (g, mode); + if (r) + break; + } +--- a/src/gcc/generic-match-head.c ++++ b/src/gcc/generic-match-head.c +@@ -34,6 +34,7 @@ along with GCC; see the file COPYING3. If not see + #include "dumpfile.h" + #include "case-cfn-macros.h" + #include "gimplify.h" ++#include "optabs-tree.h" + + + /* Routine to determine if the types T1 and T2 are effectively +--- a/src/gcc/gimple-fold.c ++++ b/src/gcc/gimple-fold.c +@@ -3252,6 +3252,28 @@ gimple_fold_builtin_acc_on_device (gimple_stmt_iterator *gsi, tree arg0) + return true; + } + ++/* Fold realloc (0, n) -> malloc (n). */ ++ ++static bool ++gimple_fold_builtin_realloc (gimple_stmt_iterator *gsi) ++{ ++ gimple *stmt = gsi_stmt (*gsi); ++ tree arg = gimple_call_arg (stmt, 0); ++ tree size = gimple_call_arg (stmt, 1); ++ ++ if (operand_equal_p (arg, null_pointer_node, 0)) ++ { ++ tree fn_malloc = builtin_decl_implicit (BUILT_IN_MALLOC); ++ if (fn_malloc) ++ { ++ gcall *repl = gimple_build_call (fn_malloc, 1, size); ++ replace_call_with_call_and_fold (gsi, repl); ++ return true; ++ } ++ } ++ return false; ++} ++ + /* Fold the non-target builtin at *GSI and return whether any simplification + was made. */ + +@@ -3410,6 +3432,9 @@ gimple_fold_builtin (gimple_stmt_iterator *gsi) + case BUILT_IN_ACC_ON_DEVICE: + return gimple_fold_builtin_acc_on_device (gsi, + gimple_call_arg (stmt, 0)); ++ case BUILT_IN_REALLOC: ++ return gimple_fold_builtin_realloc (gsi); ++ + default:; + } + +--- a/src/gcc/gimple-match-head.c ++++ b/src/gcc/gimple-match-head.c +@@ -39,6 +39,7 @@ along with GCC; see the file COPYING3. If not see + #include "internal-fn.h" + #include "case-cfn-macros.h" + #include "gimplify.h" ++#include "optabs-tree.h" + + + /* Forward declarations of the private auto-generated matchers. +--- a/src/gcc/lra-constraints.c ++++ b/src/gcc/lra-constraints.c +@@ -5416,6 +5416,29 @@ choose_split_class (enum reg_class allocno_class, + #endif + } + ++/* Copy any equivalence information from ORIGINAL_REGNO to NEW_REGNO. ++ It only makes sense to call this function if NEW_REGNO is always ++ equal to ORIGINAL_REGNO. */ ++ ++static void ++lra_copy_reg_equiv (unsigned int new_regno, unsigned int original_regno) ++{ ++ if (!ira_reg_equiv[original_regno].defined_p) ++ return; ++ ++ ira_expand_reg_equiv (); ++ ira_reg_equiv[new_regno].defined_p = true; ++ if (ira_reg_equiv[original_regno].memory) ++ ira_reg_equiv[new_regno].memory ++ = copy_rtx (ira_reg_equiv[original_regno].memory); ++ if (ira_reg_equiv[original_regno].constant) ++ ira_reg_equiv[new_regno].constant ++ = copy_rtx (ira_reg_equiv[original_regno].constant); ++ if (ira_reg_equiv[original_regno].invariant) ++ ira_reg_equiv[new_regno].invariant ++ = copy_rtx (ira_reg_equiv[original_regno].invariant); ++} ++ + /* Do split transformations for insn INSN, which defines or uses + ORIGINAL_REGNO. NEXT_USAGE_INSNS specifies which instruction in + the EBB next uses ORIGINAL_REGNO; it has the same form as the +@@ -5537,6 +5560,7 @@ split_reg (bool before_p, int original_regno, rtx_insn *insn, + new_reg = lra_create_new_reg (mode, original_reg, rclass, "split"); + reg_renumber[REGNO (new_reg)] = hard_regno; + } ++ int new_regno = REGNO (new_reg); + save = emit_spill_move (true, new_reg, original_reg); + if (NEXT_INSN (save) != NULL_RTX && !call_save_p) + { +@@ -5545,7 +5569,7 @@ split_reg (bool before_p, int original_regno, rtx_insn *insn, + fprintf + (lra_dump_file, + " Rejecting split %d->%d resulting in > 2 save insns:\n", +- original_regno, REGNO (new_reg)); ++ original_regno, new_regno); + dump_rtl_slim (lra_dump_file, save, NULL, -1, 0); + fprintf (lra_dump_file, + " ))))))))))))))))))))))))))))))))))))))))))))))))\n"); +@@ -5560,18 +5584,24 @@ split_reg (bool before_p, int original_regno, rtx_insn *insn, + fprintf (lra_dump_file, + " Rejecting split %d->%d " + "resulting in > 2 restore insns:\n", +- original_regno, REGNO (new_reg)); ++ original_regno, new_regno); + dump_rtl_slim (lra_dump_file, restore, NULL, -1, 0); + fprintf (lra_dump_file, + " ))))))))))))))))))))))))))))))))))))))))))))))))\n"); + } + return false; + } ++ /* Transfer equivalence information to the spill register, so that ++ if we fail to allocate the spill register, we have the option of ++ rematerializing the original value instead of spilling to the stack. */ ++ if (!HARD_REGISTER_NUM_P (original_regno) ++ && mode == PSEUDO_REGNO_MODE (original_regno)) ++ lra_copy_reg_equiv (new_regno, original_regno); + after_p = usage_insns[original_regno].after_p; +- lra_reg_info[REGNO (new_reg)].restore_rtx = regno_reg_rtx[original_regno]; +- bitmap_set_bit (&check_only_regs, REGNO (new_reg)); ++ lra_reg_info[new_regno].restore_rtx = regno_reg_rtx[original_regno]; ++ bitmap_set_bit (&check_only_regs, new_regno); + bitmap_set_bit (&check_only_regs, original_regno); +- bitmap_set_bit (&lra_split_regs, REGNO (new_reg)); ++ bitmap_set_bit (&lra_split_regs, new_regno); + for (;;) + { + if (GET_CODE (next_usage_insns) != INSN_LIST) +@@ -5587,7 +5617,7 @@ split_reg (bool before_p, int original_regno, rtx_insn *insn, + if (lra_dump_file != NULL) + { + fprintf (lra_dump_file, " Split reuse change %d->%d:\n", +- original_regno, REGNO (new_reg)); ++ original_regno, new_regno); + dump_insn_slim (lra_dump_file, as_a (usage_insn)); + } + } +--- a/src/gcc/lra-eliminations.c ++++ b/src/gcc/lra-eliminations.c +@@ -1196,6 +1196,8 @@ update_reg_eliminate (bitmap insns_with_changed_offsets) + struct lra_elim_table *ep, *ep1; + HARD_REG_SET temp_hard_reg_set; + ++ targetm.compute_frame_layout (); ++ + /* Clear self elimination offsets. */ + for (ep = reg_eliminate; ep < ®_eliminate[NUM_ELIMINABLE_REGS]; ep++) + self_elim_offsets[ep->from] = 0; +--- a/src/gcc/lto/lto-partition.c ++++ b/src/gcc/lto/lto-partition.c +@@ -132,7 +132,7 @@ add_symbol_to_partition_1 (ltrans_partition part, symtab_node *node) + + /* Be sure that we never try to duplicate partitioned symbol + or add external symbol. */ +- gcc_assert (c != SYMBOL_EXTERNAL ++ gcc_assert ((c != SYMBOL_EXTERNAL || node->alias) + && (c == SYMBOL_DUPLICATE || !symbol_partitioned_p (node))); + + part->symbols++; +--- a/src/gcc/lto/lto-symtab.c ++++ b/src/gcc/lto/lto-symtab.c +@@ -998,6 +998,42 @@ lto_symtab_merge_symbols (void) + if (tgt) + node->resolve_alias (tgt, true); + } ++ /* If the symbol was preempted outside IR, see if we want to get rid ++ of the definition. */ ++ if (node->analyzed ++ && !DECL_EXTERNAL (node->decl) ++ && (node->resolution == LDPR_PREEMPTED_REG ++ || node->resolution == LDPR_RESOLVED_IR ++ || node->resolution == LDPR_RESOLVED_EXEC ++ || node->resolution == LDPR_RESOLVED_DYN)) ++ { ++ DECL_EXTERNAL (node->decl) = 1; ++ /* If alias to local symbol was preempted by external definition, ++ we know it is not pointing to the local symbol. Remove it. */ ++ if (node->alias ++ && !node->weakref ++ && !node->transparent_alias ++ && node->get_alias_target ()->binds_to_current_def_p ()) ++ { ++ node->alias = false; ++ node->remove_all_references (); ++ node->definition = false; ++ node->analyzed = false; ++ node->cpp_implicit_alias = false; ++ } ++ else if (!node->alias ++ && node->definition ++ && node->get_availability () <= AVAIL_INTERPOSABLE) ++ { ++ if ((cnode = dyn_cast (node)) != NULL) ++ cnode->reset (); ++ else ++ { ++ node->analyzed = node->definition = false; ++ node->remove_all_references (); ++ } ++ } ++ } + + if (!(cnode = dyn_cast (node)) + || !cnode->clone_of +--- a/src/gcc/match.pd ++++ b/src/gcc/match.pd +@@ -147,6 +147,18 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) + (op @0 integer_onep) + (non_lvalue @0))) + ++/* (A / (1 << B)) -> (A >> B). ++ Only for unsigned A. For signed A, this would not preserve rounding ++ toward zero. ++ For example: (-1 / ( 1 << B)) != -1 >> B. */ ++(simplify ++ (trunc_div @0 (lshift integer_onep@1 @2)) ++ (if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (@0)) ++ && (!VECTOR_TYPE_P (type) ++ || target_supports_op_p (type, RSHIFT_EXPR, optab_vector) ++ || target_supports_op_p (type, RSHIFT_EXPR, optab_scalar))) ++ (rshift @0 @2))) ++ + /* Preserve explicit divisions by 0: the C++ front-end wants to detect + undefined behavior in constexpr evaluation, and assuming that the division + traps enables better optimizations than these anyway. */ +--- a/src/gcc/optabs-tree.c ++++ b/src/gcc/optabs-tree.c +@@ -376,3 +376,18 @@ init_tree_optimization_optabs (tree optnode) + ggc_free (tmp_optabs); + } + } ++ ++/* Return TRUE if the target has support for vector right shift of an ++ operand of type TYPE. If OT_TYPE is OPTAB_DEFAULT, check for existence ++ of a shift by either a scalar or a vector. Otherwise, check only ++ for a shift that matches OT_TYPE. */ ++ ++bool ++target_supports_op_p (tree type, enum tree_code code, ++ enum optab_subtype ot_subtype) ++{ ++ optab ot = optab_for_tree_code (code, type, ot_subtype); ++ return (ot != unknown_optab ++ && optab_handler (ot, TYPE_MODE (type)) != CODE_FOR_nothing); ++} ++ +--- a/src/gcc/optabs-tree.h ++++ b/src/gcc/optabs-tree.h +@@ -41,5 +41,7 @@ bool supportable_convert_operation (enum tree_code, tree, tree, tree *, + bool expand_vec_cmp_expr_p (tree, tree, enum tree_code); + bool expand_vec_cond_expr_p (tree, tree, enum tree_code); + void init_tree_optimization_optabs (tree); ++bool target_supports_op_p (tree, enum tree_code, ++ enum optab_subtype = optab_default); + + #endif +--- a/src/gcc/reload1.c ++++ b/src/gcc/reload1.c +@@ -3821,6 +3821,7 @@ verify_initial_elim_offsets (void) + if (!num_eliminable) + return true; + ++ targetm.compute_frame_layout (); + for (ep = reg_eliminate; ep < ®_eliminate[NUM_ELIMINABLE_REGS]; ep++) + { + INITIAL_ELIMINATION_OFFSET (ep->from, ep->to, t); +@@ -3838,6 +3839,7 @@ set_initial_elim_offsets (void) + { + struct elim_table *ep = reg_eliminate; + ++ targetm.compute_frame_layout (); + for (; ep < ®_eliminate[NUM_ELIMINABLE_REGS]; ep++) + { + INITIAL_ELIMINATION_OFFSET (ep->from, ep->to, ep->initial_offset); +--- a/src/gcc/sched-deps.c ++++ b/src/gcc/sched-deps.c +@@ -2834,18 +2834,23 @@ static void + sched_macro_fuse_insns (rtx_insn *insn) + { + rtx_insn *prev; +- ++ prev = prev_nonnote_nondebug_insn (insn); ++ if (!prev) ++ return; ++ + if (any_condjump_p (insn)) + { + unsigned int condreg1, condreg2; + rtx cc_reg_1; + targetm.fixed_condition_code_regs (&condreg1, &condreg2); + cc_reg_1 = gen_rtx_REG (CCmode, condreg1); +- prev = prev_nonnote_nondebug_insn (insn); +- if (!reg_referenced_p (cc_reg_1, PATTERN (insn)) +- || !prev +- || !modified_in_p (cc_reg_1, prev)) +- return; ++ if (reg_referenced_p (cc_reg_1, PATTERN (insn)) ++ && modified_in_p (cc_reg_1, prev)) ++ { ++ if (targetm.sched.macro_fusion_pair_p (prev, insn)) ++ SCHED_GROUP_P (insn) = 1; ++ return; ++ } + } + else + { +--- a/src/gcc/simplify-rtx.c ++++ b/src/gcc/simplify-rtx.c +@@ -3346,19 +3346,21 @@ simplify_binary_operation_1 (enum rtx_code code, machine_mode mode, + && UINTVAL (trueop0) == GET_MODE_MASK (mode) + && ! side_effects_p (op1)) + return op0; ++ ++ canonicalize_shift: + /* Given: + scalar modes M1, M2 + scalar constants c1, c2 + size (M2) > size (M1) + c1 == size (M2) - size (M1) + optimize: +- (ashiftrt:M1 (subreg:M1 (lshiftrt:M2 (reg:M2) (const_int )) ++ ([a|l]shiftrt:M1 (subreg:M1 (lshiftrt:M2 (reg:M2) (const_int )) + ) + (const_int )) + to: +- (subreg:M1 (ashiftrt:M2 (reg:M2) (const_int )) ++ (subreg:M1 ([a|l]shiftrt:M2 (reg:M2) (const_int )) + ). */ +- if (code == ASHIFTRT ++ if ((code == ASHIFTRT || code == LSHIFTRT) + && !VECTOR_MODE_P (mode) + && SUBREG_P (op0) + && CONST_INT_P (op1) +@@ -3375,13 +3377,13 @@ simplify_binary_operation_1 (enum rtx_code code, machine_mode mode, + rtx tmp = GEN_INT (INTVAL (XEXP (SUBREG_REG (op0), 1)) + + INTVAL (op1)); + machine_mode inner_mode = GET_MODE (SUBREG_REG (op0)); +- tmp = simplify_gen_binary (ASHIFTRT, ++ tmp = simplify_gen_binary (code, + GET_MODE (SUBREG_REG (op0)), + XEXP (SUBREG_REG (op0), 0), + tmp); + return lowpart_subreg (mode, tmp, inner_mode); + } +- canonicalize_shift: ++ + if (SHIFT_COUNT_TRUNCATED && CONST_INT_P (op1)) + { + val = INTVAL (op1) & (GET_MODE_PRECISION (mode) - 1); +--- a/src/gcc/target.def ++++ b/src/gcc/target.def +@@ -5395,6 +5395,18 @@ five otherwise. This is best for most machines.", + unsigned int, (void), + default_case_values_threshold) + ++/* Optional callback to advise the target to compute the frame layout. */ ++DEFHOOK ++(compute_frame_layout, ++ "This target hook is called once each time the frame layout needs to be\n\ ++recalculated. The calculations can be cached by the target and can then\n\ ++be used by @code{INITIAL_ELIMINATION_OFFSET} instead of re-computing the\n\ ++layout on every invocation of that hook. This is particularly useful\n\ ++for targets that have an expensive frame layout function. Implementing\n\ ++this callback is optional.", ++ void, (void), ++ hook_void_void) ++ + /* Return true if a function must have and use a frame pointer. */ + DEFHOOK + (frame_pointer_required, +--- a/src/gcc/testsuite/g++.dg/other/i386-9.C ++++ b/src/gcc/testsuite/g++.dg/other/i386-9.C +@@ -2,6 +2,7 @@ + // Testcase by Zdenek Sojka + + // { dg-do run { target i?86-*-* x86_64-*-* } } ++/* { dg-require-stack-check "" } */ + // { dg-options "-Os -mpreferred-stack-boundary=5 -fstack-check -fno-omit-frame-pointer" } + + int main() +--- /dev/null ++++ b/src/gcc/testsuite/gcc.c-torture/compile/stack-check-1.c +@@ -0,0 +1,4 @@ ++/* { dg-require-effective-target untyped_assembly } */ ++/* { dg-require-stack-check "" } */ ++/* { dg-additional-options "-fstack-check" } */ ++#include "20031023-1.c" +--- a/src/gcc/testsuite/gcc.c-torture/execute/pr78622.c ++++ b/src/gcc/testsuite/gcc.c-torture/execute/pr78622.c +@@ -1,6 +1,7 @@ + /* PR middle-end/78622 - [7 Regression] -Wformat-overflow/-fprintf-return-value + incorrect with overflow/wrapping + { dg-skip-if "Requires %hhd format" { hppa*-*-hpux* } { "*" } { "" } } ++ { dg-require-effective-target c99_runtime } + { dg-additional-options "-Wformat-overflow=2" } */ + + __attribute__((noinline, noclone)) int +--- a/src/gcc/testsuite/gcc.dg/graphite/run-id-pr47653.c ++++ b/src/gcc/testsuite/gcc.dg/graphite/run-id-pr47653.c +@@ -1,3 +1,4 @@ ++/* { dg-require-stack-check "generic" } */ + /* { dg-options "-O -fstack-check=generic -ftree-pre -fgraphite-identity" } */ + /* nvptx doesn't expose a stack. */ + /* { dg-skip-if "" { nvptx-*-* } { "*" } { "" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.dg/lsr-div1.c +@@ -0,0 +1,57 @@ ++/* Test division by const int generates only one shift. */ ++/* { dg-do run } */ ++/* { dg-options "-O2 -fdump-rtl-combine-all" } */ ++/* { dg-options "-O2 -fdump-rtl-combine-all -mtune=cortex-a53" { target aarch64*-*-* } } */ ++/* { dg-require-effective-target int32plus } */ ++ ++extern void abort (void); ++ ++#define NOINLINE __attribute__((noinline)) ++ ++static NOINLINE int ++f1 (unsigned int n) ++{ ++ return n % 0x33; ++} ++ ++static NOINLINE int ++f2 (unsigned int n) ++{ ++ return n % 0x12; ++} ++ ++int ++main () ++{ ++ int a = 0xaaaaaaaa; ++ int b = 0x55555555; ++ int c; ++ c = f1 (a); ++ if (c != 0x11) ++ abort (); ++ c = f1 (b); ++ if (c != 0x22) ++ abort (); ++ c = f2 (a); ++ if (c != 0xE) ++ abort (); ++ c = f2 (b); ++ if (c != 0x7) ++ abort (); ++ return 0; ++} ++ ++/* Following replacement pattern of intger division by constant, GCC is expected ++ to generate UMULL and (x)SHIFTRT. This test checks that considering division ++ by const 0x33, gcc generates a single LSHIFTRT by 37, instead of ++ two - LSHIFTRT by 32 and LSHIFTRT by 5. */ ++ ++/* { dg-final { scan-rtl-dump "\\(set \\(subreg:DI \\(reg:SI" "combine" { target aarch64*-*-* } } } */ ++/* { dg-final { scan-rtl-dump "\\(lshiftrt:DI \\(reg:DI" "combine" { target aarch64*-*-* } } } */ ++/* { dg-final { scan-rtl-dump "\\(const_int 37 " "combine" { target aarch64*-*-* } } } */ ++ ++/* Similarly, considering division by const 0x12, gcc generates a ++ single LSHIFTRT by 34, instead of two - LSHIFTRT by 32 and LSHIFTRT by 2. */ ++ ++/* { dg-final { scan-rtl-dump "\\(const_int 34 " "combine" { target aarch64*-*-* } } } */ ++ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.dg/lto/pr69866_0.c +@@ -0,0 +1,13 @@ ++/* { dg-lto-do link } */ ++ ++int _umh(int i) ++{ ++ return i+1; ++} ++ ++int weaks(int i) __attribute__((weak, alias("_umh"))); ++ ++int main() ++{ ++ return weaks(10); ++} +--- /dev/null ++++ b/src/gcc/testsuite/gcc.dg/lto/pr69866_1.c +@@ -0,0 +1,6 @@ ++/* { dg-options { -fno-lto } } */ ++ ++int weaks(int i) ++{ ++ return i+1; ++} +--- a/src/gcc/testsuite/gcc.dg/pr47443.c ++++ b/src/gcc/testsuite/gcc.dg/pr47443.c +@@ -1,5 +1,6 @@ + /* PR tree-optimization/47443 */ + /* { dg-do compile } */ ++/* { dg-require-stack-check "generic" } */ + /* { dg-options "-O -fstack-check=generic" } */ + + static inline int bar (char *c, int i) +--- a/src/gcc/testsuite/gcc.dg/pr48134.c ++++ b/src/gcc/testsuite/gcc.dg/pr48134.c +@@ -1,4 +1,5 @@ + /* { dg-do compile } */ ++/* { dg-require-stack-check "specific" } */ + /* { dg-options "-O2 -fstack-check=specific -fno-tree-dse -fno-tree-fre -fno-tree-loop-optimize -g" } */ + + struct S +--- a/src/gcc/testsuite/gcc.dg/pr70017.c ++++ b/src/gcc/testsuite/gcc.dg/pr70017.c +@@ -1,4 +1,5 @@ + /* { dg-do compile } */ ++/* { dg-require-stack-check "generic" } */ + /* { dg-options "-fstack-check=generic" } */ + + /* Check that the expected warning is issued for large frames. */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/forwprop-37.c +@@ -0,0 +1,25 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O -fdump-tree-forwprop1-raw" } */ ++ ++unsigned int ++f1 (unsigned int a, unsigned int b) ++{ ++ unsigned int x = 1U << b; ++ return a / x; ++} ++ ++unsigned long ++f2 (unsigned long a, int b) ++{ ++ unsigned long x = 1UL << b; ++ return a / x; ++} ++ ++unsigned long long ++f3 (unsigned long long a, int b) ++{ ++ unsigned long long x = 1ULL << b; ++ return a / x; ++} ++ ++/* { dg-final { scan-tree-dump-not "trunc_div_expr" "forwprop1" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/pr79697.c +@@ -0,0 +1,21 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -fdump-tree-gimple -fdump-tree-cddce-details -fdump-tree-optimized" } */ ++ ++void f(void) ++{ ++ __builtin_strdup ("abc"); ++} ++ ++void g(void) ++{ ++ __builtin_strndup ("abc", 3); ++} ++ ++void h(void) ++{ ++ __builtin_realloc (0, 10); ++} ++ ++/* { dg-final { scan-tree-dump "Deleting : __builtin_strdup" "cddce1" } } */ ++/* { dg-final { scan-tree-dump "Deleting : __builtin_strndup" "cddce1" } } */ ++/* { dg-final { scan-tree-dump "__builtin_malloc" "gimple" } } */ +--- a/src/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c ++++ b/src/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c +@@ -1,4 +1,7 @@ + /* { dg-require-effective-target vect_int } */ ++/* { dg-require-effective-target arm_v8_2a_dotprod_neon_hw { target { aarch64*-*-* || arm*-*-* } } } */ ++/* { dg-additional-options "-march=armv8.2-a+dotprod" { target { aarch64*-*-* } } } */ ++/* { dg-add-options arm_v8_2a_dotprod_neon } */ + + #include + #include "tree-vect.h" +--- a/src/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c ++++ b/src/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c +@@ -1,4 +1,7 @@ + /* { dg-require-effective-target vect_int } */ ++/* { dg-require-effective-target arm_v8_2a_dotprod_neon_hw { target { aarch64*-*-* || arm*-*-* } } } */ ++/* { dg-additional-options "-march=armv8.2-a+dotprod" { target { aarch64*-*-* } } } */ ++/* { dg-add-options arm_v8_2a_dotprod_neon } */ + + #include + #include "tree-vect.h" +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-compile.c +@@ -0,0 +1,73 @@ ++/* { dg-do compile { target { aarch64*-*-* } } } */ ++/* { dg-additional-options "-O3 -march=armv8.2-a+dotprod" } */ ++ ++#include ++ ++/* Unsigned Dot Product instructions. */ ++ ++uint32x2_t ufoo (uint32x2_t r, uint8x8_t x, uint8x8_t y) ++{ ++ return vdot_u32 (r, x, y); ++} ++ ++uint32x4_t ufooq (uint32x4_t r, uint8x16_t x, uint8x16_t y) ++{ ++ return vdotq_u32 (r, x, y); ++} ++ ++uint32x2_t ufoo_lane (uint32x2_t r, uint8x8_t x, uint8x8_t y) ++{ ++ return vdot_lane_u32 (r, x, y, 0); ++} ++ ++uint32x2_t ufoo_laneq (uint32x2_t r, uint8x8_t x, uint8x16_t y) ++{ ++ return vdot_laneq_u32 (r, x, y, 0); ++} ++ ++uint32x4_t ufooq_lane (uint32x4_t r, uint8x16_t x, uint8x8_t y) ++{ ++ return vdotq_lane_u32 (r, x, y, 0); ++} ++ ++uint32x4_t ufooq_laneq (uint32x4_t r, uint8x16_t x, uint8x16_t y) ++{ ++ return vdotq_laneq_u32 (r, x, y, 0); ++} ++ ++/* Signed Dot Product instructions. */ ++ ++int32x2_t sfoo (int32x2_t r, int8x8_t x, int8x8_t y) ++{ ++ return vdot_s32 (r, x, y); ++} ++ ++int32x4_t sfooq (int32x4_t r, int8x16_t x, int8x16_t y) ++{ ++ return vdotq_s32 (r, x, y); ++} ++ ++int32x2_t sfoo_lane (int32x2_t r, int8x8_t x, int8x8_t y) ++{ ++ return vdot_lane_s32 (r, x, y, 0); ++} ++ ++int32x2_t sfoo_laneq (int32x2_t r, int8x8_t x, int8x16_t y) ++{ ++ return vdot_laneq_s32 (r, x, y, 0); ++} ++ ++int32x4_t sfooq_lane (int32x4_t r, int8x16_t x, int8x8_t y) ++{ ++ return vdotq_lane_s32 (r, x, y, 0); ++} ++ ++int32x4_t sfooq_laneq (int32x4_t r, int8x16_t x, int8x16_t y) ++{ ++ return vdotq_laneq_s32 (r, x, y, 0); ++} ++ ++/* { dg-final { scan-assembler-times {[us]dot\tv[0-9]+\.2s, v[0-9]+\.8b, v[0-9]+\.8b} 2 } } */ ++/* { dg-final { scan-assembler-times {[us]dot\tv[0-9]+\.2s, v[0-9]+\.8b, v[0-9]+\.4b\[[0-9]+\]} 4 } } */ ++/* { dg-final { scan-assembler-times {[us]dot\tv[0-9]+\.4s, v[0-9]+\.16b, v[0-9]+\.16b} 2 } } */ ++/* { dg-final { scan-assembler-times {[us]dot\tv[0-9]+\.4s, v[0-9]+\.16b, v[0-9]+\.4b\[[0-9]+\]} 4 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-exec.c +@@ -0,0 +1,81 @@ ++/* { dg-skip-if "can't compile on arm." { arm*-*-* } } */ ++/* { dg-do run { target { aarch64*-*-* } } } */ ++/* { dg-additional-options "-O3 -march=armv8.2-a+dotprod" } */ ++/* { dg-require-effective-target arm_v8_2a_dotprod_neon_hw } */ ++ ++#include ++ ++extern void abort(); ++ ++#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ ++# define ORDER(x, y) y ++#else ++# define ORDER(x, y) x - y ++#endif ++ ++#define P(n1,n2) n1,n1,n1,n1,n2,n2,n2,n2 ++#define ARR(nm, p, ty, ...) ty nm##_##p = { __VA_ARGS__ } ++#define TEST(t1, t2, t3, f, r1, r2, n1, n2) \ ++ ARR(f, x, t1, r1); \ ++ ARR(f, y, t2, r2); \ ++ t3 f##_##r = {0}; \ ++ f##_##r = f (f##_##r, f##_##x, f##_##y); \ ++ if (f##_##r[0] != n1 || f##_##r[1] != n2) \ ++ abort (); ++ ++#define TEST_LANE(t1, t2, t3, f, r1, r2, n1, n2, n3, n4) \ ++ ARR(f, x, t1, r1); \ ++ ARR(f, y, t2, r2); \ ++ t3 f##_##rx = {0}; \ ++ f##_##rx = f (f##_##rx, f##_##x, f##_##y, ORDER (1, 0)); \ ++ if (f##_##rx[0] != n1 || f##_##rx[1] != n2) \ ++ abort (); \ ++ t3 f##_##rx1 = {0}; \ ++ f##_##rx1 = f (f##_##rx1, f##_##x, f##_##y, ORDER (1, 1)); \ ++ if (f##_##rx1[0] != n3 || f##_##rx1[1] != n4) \ ++ abort (); ++ ++#define Px(n1,n2,n3,n4) P(n1,n2),P(n3,n4) ++#define TEST_LANEQ(t1, t2, t3, f, r1, r2, n1, n2, n3, n4, n5, n6, n7, n8) \ ++ ARR(f, x, t1, r1); \ ++ ARR(f, y, t2, r2); \ ++ t3 f##_##rx = {0}; \ ++ f##_##rx = f (f##_##rx, f##_##x, f##_##y, ORDER (3, 0)); \ ++ if (f##_##rx[0] != n1 || f##_##rx[1] != n2) \ ++ abort (); \ ++ t3 f##_##rx1 = {0}; \ ++ f##_##rx1 = f (f##_##rx1, f##_##x, f##_##y, ORDER (3, 1)); \ ++ if (f##_##rx1[0] != n3 || f##_##rx1[1] != n4) \ ++ abort (); \ ++ t3 f##_##rx2 = {0}; \ ++ f##_##rx2 = f (f##_##rx2, f##_##x, f##_##y, ORDER (3, 2)); \ ++ if (f##_##rx2[0] != n5 || f##_##rx2[1] != n6) \ ++ abort (); \ ++ t3 f##_##rx3 = {0}; \ ++ f##_##rx3 = f (f##_##rx3, f##_##x, f##_##y, ORDER (3, 3)); \ ++ if (f##_##rx3[0] != n7 || f##_##rx3[1] != n8) \ ++ abort (); ++ ++int ++main() ++{ ++ TEST (uint8x8_t, uint8x8_t, uint32x2_t, vdot_u32, P(1,2), P(2,3), 8, 24); ++ TEST (int8x8_t, int8x8_t, int32x2_t, vdot_s32, P(1,2), P(-2,-3), -8, -24); ++ ++ TEST (uint8x16_t, uint8x16_t, uint32x4_t, vdotq_u32, P(1,2), P(2,3), 8, 24); ++ TEST (int8x16_t, int8x16_t, int32x4_t, vdotq_s32, P(1,2), P(-2,-3), -8, -24); ++ ++ TEST_LANE (uint8x8_t, uint8x8_t, uint32x2_t, vdot_lane_u32, P(1,2), P(2,3), 8, 16, 12, 24); ++ TEST_LANE (int8x8_t, int8x8_t, int32x2_t, vdot_lane_s32, P(1,2), P(-2,-3), -8, -16, -12, -24); ++ ++ TEST_LANE (uint8x16_t, uint8x8_t, uint32x4_t, vdotq_lane_u32, P(1,2), P(2,3), 8, 16, 12, 24); ++ TEST_LANE (int8x16_t, int8x8_t, int32x4_t, vdotq_lane_s32, P(1,2), P(-2,-3), -8, -16, -12, -24); ++ ++ TEST_LANEQ (uint8x8_t, uint8x16_t, uint32x2_t, vdot_laneq_u32, P(1,2), Px(2,3,1,4), 8, 16, 12, 24, 4, 8, 16, 32); ++ TEST_LANEQ (int8x8_t, int8x16_t, int32x2_t, vdot_laneq_s32, P(1,2), Px(-2,-3,-1,-4), -8, -16, -12, -24, -4, -8, -16, -32); ++ ++ TEST_LANEQ (uint8x16_t, uint8x16_t, uint32x4_t, vdotq_laneq_u32, Px(1,2,2,1), Px(2,3,1,4), 8, 16, 12, 24, 4, 8, 16, 32); ++ TEST_LANEQ (int8x16_t, int8x16_t, int32x4_t, vdotq_laneq_s32, Px(1,2,2,1), Px(-2,-3,-1,-4), -8, -16, -12, -24, -4, -8, -16, -32); ++ ++ return 0; ++} +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vect-dot-qi.h +@@ -0,0 +1,15 @@ ++TYPE char X[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))); ++TYPE char Y[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))); ++ ++__attribute__ ((noinline)) int ++foo1(int len) { ++ int i; ++ TYPE int result = 0; ++ TYPE short prod; ++ ++ for (i=0; i ++ ++float16_t f0(void) ++{ ++ float16_t x = 0.0f; ++ return x; ++} ++ ++float16_t fn1(void) ++{ ++ float16_t x = -0.0f; ++ return x; ++} ++ ++float16_t f1(void) ++{ ++ float16_t x = 256.0f; ++ return x; ++} ++ ++float16_t f2(void) ++{ ++ float16_t x = 123256.0f; ++ return x; ++} ++ ++float16_t f3(void) ++{ ++ float16_t x = 17.0; ++ return x; ++} ++ ++/* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.4h, ?#0" 1 } } */ ++/* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.2s, 0x80, lsl 8" 1 } } */ ++/* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.2s, 0x5c, lsl 8" 1 } } */ ++/* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.2s, 0x7c, lsl 8" 1 } } */ ++ ++/* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, 19520" 1 } } */ ++/* { dg-final { scan-assembler-times "fmov\th\[0-9\], w\[0-9\]+" 1 } } */ ++ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c +@@ -0,0 +1,52 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O3" } */ ++ ++float f0(void) ++{ ++ float x = 0.0f; ++ return x; ++} ++ ++float fn1(void) ++{ ++ float x = -0.0f; ++ return x; ++} ++ ++float f1(void) ++{ ++ float x = 256.0f; ++ return x; ++} ++ ++float f2(void) ++{ ++ float x = 123256.0f; ++ return x; ++} ++ ++float f3(void) ++{ ++ float x = 2.0f; ++ return x; ++} ++ ++float f4(void) ++{ ++ float x = -20000.1; ++ return x; ++} ++ ++ ++/* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.2s, ?#0" 1 } } */ ++/* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.2s, 0x80, lsl 24" 1 } } */ ++/* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.2s, 0x80, lsl 24" 1 } } */ ++ ++/* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, 48128" 1 } } */ ++/* { dg-final { scan-assembler-times "movk\tw\[0-9\]+, 0x47f0, lsl 16" 1 } } */ ++ ++/* { dg-final { scan-assembler-times "fmov\ts\[0-9\]+, 2\\\.0e\\\+0" 1 } } */ ++ ++/* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, 16435" 1 } } */ ++/* { dg-final { scan-assembler-times "movk\tw\[0-9\]+, 0xc69c, lsl 16" 1 } } */ ++ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/hfmode_ins_1.c +@@ -0,0 +1,21 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++/* Check that we can perform this in a single INS without doing any DUPs. */ ++ ++#include ++ ++float16x8_t ++foo (float16x8_t a, float16x8_t b) ++{ ++ return vsetq_lane_f16 (vgetq_lane_f16 (b, 2), a, 3); ++} ++ ++float16x4_t ++bar (float16x4_t a, float16x4_t b) ++{ ++ return vset_lane_f16 (vget_lane_f16 (b, 2), a, 3); ++} ++ ++/* { dg-final { scan-assembler-times "ins\\t" 2 } } */ ++/* { dg-final { scan-assembler-not "dup\\t" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c +@@ -0,0 +1,18 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target lp64 } */ ++/* { dg-options "-O3 -fno-math-errno" } */ ++ ++#include "lrint-matherr.h" ++ ++TEST (dld, double, long, ) ++TEST (flf, float , long, ) ++ ++TEST (did, double, int, ) ++TEST (fif, float , int, ) ++ ++TEST (dlld, double, long long, l) ++TEST (fllf, float , long long, l) ++ ++/* { dg-final { scan-assembler-times "frintx\t\[d,s\]\[0-9\]+, \[d,s\]\[0-9\]+" 6 } } */ ++/* { dg-final { scan-assembler-times "fcvtzs\tx\[0-9\]+, \[d,s\]\[0-9\]+" 6 } } */ ++/* { dg-final { scan-assembler-not "bl" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/inline-lrint_2.c +@@ -0,0 +1,18 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target ilp32 } */ ++/* { dg-options "-O3 -fno-math-errno" } */ ++ ++#include "lrint-matherr.h" ++ ++TEST (dld, double, long, ) ++TEST (flf, float , long, ) ++ ++TEST (did, double, int, ) ++TEST (fif, float , int, ) ++ ++TEST (dlld, double, long long, l) ++TEST (fllf, float , long long, l) ++ ++/* { dg-final { scan-assembler-times "frintx\t\[d,s\]\[0-9\]+, \[d,s\]\[0-9\]+" 6 } } */ ++/* { dg-final { scan-assembler-times "fcvtzs\t\[w,x\]\[0-9\]+, \[d,s\]\[0-9\]+" 6 } } */ ++/* { dg-final { scan-assembler-not "bl" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/int_mov_immediate_1.c +@@ -0,0 +1,59 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target lp64 } */ ++/* { dg-options "-O3" } */ ++ ++long long f1(void) ++{ ++ return 0xffff6666; ++} ++ ++int f3(void) ++{ ++ return 0xffff6666; ++} ++ ++ ++long f2(void) ++{ ++ return 0x11110000ffff6666; ++} ++ ++long f4(void) ++{ ++ return 0x11110001ffff6666; ++} ++ ++long f5(void) ++{ ++ return 0x111100001ff6666; ++} ++ ++long f6(void) ++{ ++ return 0x00001111ffff6666; ++} ++ ++long f7(void) ++{ ++ return 0x000011116666ffff; ++} ++ ++long f8(void) ++{ ++ return 0x0f0011116666ffff; ++} ++ ++/* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, -39322" 1 } } */ ++/* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, 4294927974" 3 } } */ ++/* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, 1718026239" 1 } } */ ++/* { dg-final { scan-assembler-times "mov\tx\[0-9\]+, -2576941057" 1 } } */ ++/* { dg-final { scan-assembler-times "mov\tx\[0-9\]+, -39322" 1 } } */ ++/* { dg-final { scan-assembler-times "mov\tx\[0-9\]+, 26214" 1 } } */ ++/* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0xf00, lsl 48" 1 } } */ ++/* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0x1111, lsl 48" 2 } } */ ++/* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0x1000, lsl 32" 1 } } */ ++/* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0x1111, lsl 32" 3 } } */ ++/* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0x111, lsl 48" 1 } } */ ++/* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0x1ff, lsl 16" 1 } } */ ++/* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0x1, lsl 32" 1 } } */ ++ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/lrint-matherr.h +@@ -0,0 +1,5 @@ ++#define TEST(name, float_type, int_type, pref) void f_##name (float_type x) \ ++{ \ ++ volatile float_type a = __builtin_rint (x); \ ++ volatile int_type b = __builtin_l##pref##rint (x); \ ++} +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c +@@ -0,0 +1,19 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target lp64 } */ ++/* { dg-options "-O3" } */ ++ ++#include "lrint-matherr.h" ++ ++TEST (dld, double, long, ) ++TEST (flf, float , long, ) ++ ++TEST (did, double, int, ) ++TEST (fif, float , int, ) ++ ++TEST (dlld, double, long long, l) ++TEST (fllf, float , long long, l) ++ ++/* { dg-final { scan-assembler-times "frintx\t\[d,s\]\[0-9\]+, \[d,s\]\[0-9\]+" 6 } } */ ++/* { dg-final { scan-assembler-times "bl\tlrint" 4 } } */ ++/* { dg-final { scan-assembler-times "bl\tllrint" 2 } } */ ++/* { dg-final { scan-assembler-not "fcvtzs" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/no-inline-lrint_2.c +@@ -0,0 +1,19 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target ilp32 } */ ++/* { dg-options "-O3" } */ ++ ++#include "lrint-matherr.h" ++ ++TEST (dld, double, long, ) ++TEST (flf, float , long, ) ++ ++TEST (did, double, int, ) ++TEST (fif, float , int, ) ++ ++TEST (dlld, double, long long, l) ++TEST (fllf, float , long long, l) ++ ++/* { dg-final { scan-assembler-times "frintx\t\[d,s\]\[0-9\]+, \[d,s\]\[0-9\]+" 6 } } */ ++/* { dg-final { scan-assembler-times "bl\tlrint" 4 } } */ ++/* { dg-final { scan-assembler-times "bl\tllrint" 2 } } */ ++/* { dg-final { scan-assembler-not "fcvtzs" } } */ +--- a/src/gcc/testsuite/gcc.target/aarch64/pr63304_1.c ++++ b/src/gcc/testsuite/gcc.target/aarch64/pr63304_1.c +@@ -4,10 +4,10 @@ + #pragma GCC target ("+nothing+simd, cmodel=small") + + int +-cal (float a) ++cal (double a) + { +- float b = 1.2; +- float c = 2.2; ++ double b = 3.2; ++ double c = 2.2; + if ((a + b) != c) + return 0; + else +@@ -19,11 +19,11 @@ cal (float a) + #pragma GCC target ("cmodel=large") + + int +-cal2 (float a) ++cal2 (double a) + { + +- float b = 1.2; +- float c = 2.2; ++ double b = 3.2; ++ double c = 2.2; + if ((a + b) != c) + return 0; + else +@@ -33,11 +33,11 @@ cal2 (float a) + #pragma GCC pop_options + + int +-cal3 (float a) ++cal3 (double a) + { + +- float b = 1.2; +- float c = 2.2; ++ double b = 3.2; ++ double c = 2.2; + if ((a + b) != c) + return 0; + else +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/prfm_imm_offset_1.c +@@ -0,0 +1,18 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++/* Check that we can generate the immediate-offset addressing ++ mode for PRFM. */ ++ ++#define ARRSIZE 65 ++int *bad_addr[ARRSIZE]; ++ ++void ++prefetch_for_read (void) ++{ ++ int i; ++ for (i = 0; i < ARRSIZE; i++) ++ __builtin_prefetch (bad_addr[i] + 2, 0, 0); ++} ++ ++/* { dg-final { scan-assembler-times "prfm.*\\\[x\[0-9\]+, 8\\\]" 1 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/sdiv_costs_1.c +@@ -0,0 +1,38 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O3" } */ ++ ++/* Both sdiv and udiv can be used here, so prefer udiv. */ ++int f1 (unsigned char *p) ++{ ++ return 100 / p[1]; ++} ++ ++int f2 (unsigned char *p, unsigned short x) ++{ ++ return x / p[0]; ++} ++ ++int f3 (unsigned char *p, int x) ++{ ++ x &= 0x7fffffff; ++ return x / p[0]; ++} ++ ++int f5 (unsigned char *p, unsigned short x) ++{ ++ return x % p[0]; ++} ++ ++/* This should only generate signed divisions. */ ++int f4 (unsigned char *p) ++{ ++ return -100 / p[1]; ++} ++ ++int f6 (unsigned char *p, short x) ++{ ++ return x % p[0]; ++} ++ ++/* { dg-final { scan-assembler-times "udiv\tw\[0-9\]+, w\[0-9\]+" 4 } } */ ++/* { dg-final { scan-assembler-times "sdiv\tw\[0-9\]+, w\[0-9\]+" 2 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/simd/vmla_elem_1.c +@@ -0,0 +1,67 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O3" } */ ++ ++typedef short int __attribute__ ((vector_size (16))) v8hi; ++ ++v8hi ++mla8hi (v8hi v0, v8hi v1, short int v2) ++{ ++ /* { dg-final { scan-assembler "mla\\tv\[0-9\]\+\\.8h, v\[0-9\]\+\\.8h, v\[0-9\]\+\\.h\\\[0\\\]" } } */ ++ return v0 + v1 * v2; ++} ++ ++ ++v8hi ++mls8hi (v8hi v0, v8hi v1, short int v2) ++{ ++ /* { dg-final { scan-assembler "mls\\tv\[0-9\]\+\\.8h, v\[0-9\]\+\\.8h, v\[0-9\]\+\\.h\\\[0\\\]" } } */ ++ return v0 - v1 * v2; ++} ++ ++typedef short int __attribute__ ((vector_size (8))) v4hi; ++ ++v4hi ++mla4hi (v4hi v0, v4hi v1, short int v2) ++{ ++ /* { dg-final { scan-assembler "mla\\tv\[0-9\]\+\\.4h, v\[0-9\]\+\\.4h, v\[0-9\]\+\\.h\\\[0\\\]" } } */ ++ return v0 + v1 * v2; ++} ++ ++v4hi ++mls4hi (v4hi v0, v4hi v1, short int v2) ++{ ++ /* { dg-final { scan-assembler "mls\\tv\[0-9\]\+\\.4h, v\[0-9\]\+\\.4h, v\[0-9\]\+\\.h\\\[0\\\]" } } */ ++ return v0 - v1 * v2; ++} ++ ++typedef int __attribute__ ((vector_size (16))) v4si; ++ ++v4si ++mla4si (v4si v0, v4si v1, int v2) ++{ ++ /* { dg-final { scan-assembler "mla\\tv\[0-9\]\+\\.4s, v\[0-9\]\+\\.4s, v\[0-9\]\+\\.s\\\[0\\\]" } } */ ++ return v0 + v1 * v2; ++} ++ ++v4si ++mls4si (v4si v0, v4si v1, int v2) ++{ ++ /* { dg-final { scan-assembler "mls\\tv\[0-9\]\+\\.4s, v\[0-9\]\+\\.4s, v\[0-9\]\+\\.s\\\[0\\\]" } } */ ++ return v0 - v1 * v2; ++} ++ ++typedef int __attribute__((vector_size (8))) v2si; ++ ++v2si ++mla2si (v2si v0, v2si v1, int v2) ++{ ++ /* { dg-final { scan-assembler "mla\\tv\[0-9\]\+\\.2s, v\[0-9\]\+\\.2s, v\[0-9\]\+\\.s\\\[0\\\]" } } */ ++ return v0 + v1 * v2; ++} ++ ++v2si ++mls2si (v2si v0, v2si v1, int v2) ++{ ++ /* { dg-final { scan-assembler "mls\\tv\[0-9\]\+\\.2s, v\[0-9\]\+\\.2s, v\[0-9\]\+\\.s\\\[0\\\]" } } */ ++ return v0 - v1 * v2; ++} +--- a/src/gcc/testsuite/gcc.target/aarch64/spellcheck_1.c ++++ b/src/gcc/testsuite/gcc.target/aarch64/spellcheck_1.c +@@ -3,7 +3,7 @@ + __attribute__((target ("arch=armv8-a-typo"))) void + foo () + { ++ /* { dg-message "valid arguments are: \[^\n\r]*; did you mean 'armv8-a'?" "" { target *-*-* } .-1 } */ ++ /* { dg-error "unknown value 'armv8-a-typo' for 'arch' target attribute" "" { target *-*-* } .-2 } */ ++ /* { dg-error "target attribute 'arch=armv8-a-typo' is invalid" "" { target *-*-* } .-3 } */ + } +-/* { dg-message "valid arguments are: \[^\n\r]*; did you mean 'armv8-a'?" "" { target *-*-* } 5 } */ +-/* { dg-error "unknown value 'armv8-a-typo' for 'arch' target attribute" "" { target *-*-* } 5 } */ +-/* { dg-error "target attribute 'arch=armv8-a-typo' is invalid" "" { target *-*-* } 5 } */ +--- a/src/gcc/testsuite/gcc.target/aarch64/spellcheck_2.c ++++ b/src/gcc/testsuite/gcc.target/aarch64/spellcheck_2.c +@@ -3,7 +3,7 @@ + __attribute__((target ("cpu=cortex-a57-typo"))) void + foo () + { ++ /* { dg-message "valid arguments are: \[^\n\r]*; did you mean 'cortex-a57?" "" { target *-*-* } .-1 } */ ++ /* { dg-error "unknown value 'cortex-a57-typo' for 'cpu' target attribute" "" { target *-*-* } .-2 } */ ++ /* { dg-error "target attribute 'cpu=cortex-a57-typo' is invalid" "" { target *-*-* } .-3 } */ + } +-/* { dg-message "valid arguments are: \[^\n\r]*; did you mean 'cortex-a57?" "" { target *-*-* } 5 } */ +-/* { dg-error "unknown value 'cortex-a57-typo' for 'cpu' target attribute" "" { target *-*-* } 5 } */ +-/* { dg-error "target attribute 'cpu=cortex-a57-typo' is invalid" "" { target *-*-* } 5 } */ +--- a/src/gcc/testsuite/gcc.target/aarch64/spellcheck_3.c ++++ b/src/gcc/testsuite/gcc.target/aarch64/spellcheck_3.c +@@ -3,7 +3,7 @@ + __attribute__((target ("tune=cortex-a57-typo"))) void + foo () + { ++ /* { dg-message "valid arguments are: \[^\n\r]*; did you mean 'cortex-a57?" "" { target *-*-* } .-1 } */ ++ /* { dg-error "unknown value 'cortex-a57-typo' for 'tune' target attribute" "" { target *-*-* } .-2 } */ ++ /* { dg-error "target attribute 'tune=cortex-a57-typo' is invalid" "" { target *-*-* } .-3 } */ + } +-/* { dg-message "valid arguments are: \[^\n\r]*; did you mean 'cortex-a57?" "" { target *-*-* } 5 } */ +-/* { dg-error "unknown value 'cortex-a57-typo' for 'tune' target attribute" "" { target *-*-* } 5 } */ +-/* { dg-error "target attribute 'tune=cortex-a57-typo' is invalid" "" { target *-*-* } 5 } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/spill_1.c +@@ -0,0 +1,18 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++typedef int v4si __attribute__ ((vector_size (16))); ++ ++void bar (void); ++void ++foo (void) ++{ ++ v4si x = { 1, 1, 1, 1 }; ++ asm ("# %0" :: "w" (x)); ++ bar (); ++ asm ("# %0" :: "w" (x)); ++} ++ ++/* { dg-final { scan-assembler-times {\tmovi\tv[0-9]+\.4s,} 2 } } */ ++/* { dg-final { scan-assembler-not {\tldr\t} } } */ ++/* { dg-final { scan-assembler-not {\tstr\t} } } */ +--- a/src/gcc/testsuite/gcc.target/aarch64/stack-checking.c ++++ b/src/gcc/testsuite/gcc.target/aarch64/stack-checking.c +@@ -1,4 +1,5 @@ + /* { dg-do run { target { *-*-linux* } } } */ ++/* { dg-require-stack-check "" } */ + /* { dg-options "-fstack-check" } */ + + int main(void) +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/store_lane0_str_1.c +@@ -0,0 +1,54 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++typedef int v2si __attribute__ ((vector_size (8))); ++typedef float v2sf __attribute__ ((vector_size (8))); ++typedef short v4hi __attribute__ ((vector_size (8))); ++typedef __fp16 v4hf __attribute__ ((vector_size (8))); ++typedef char v8qi __attribute__ ((vector_size (8))); ++ ++typedef int v4si __attribute__ ((vector_size (16))); ++typedef float v4sf __attribute__ ((vector_size (16))); ++typedef short v8hi __attribute__ ((vector_size (16))); ++typedef __fp16 v8hf __attribute__ ((vector_size (16))); ++typedef char v16qi __attribute__ ((vector_size (16))); ++typedef long long v2di __attribute__ ((vector_size (16))); ++typedef double v2df __attribute__ ((vector_size (16))); ++ ++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++#define LANE(N) (N - 1) ++#else ++#define LANE(N) 0 ++#endif ++ ++#define FUNC(T, E, N) \ ++void \ ++store_lane_##T (T x, E *y) \ ++{ \ ++ y[0] = x[N - 1 - LANE (N)]; \ ++ y[3] = x[LANE (N)]; \ ++} ++ ++FUNC (v2si, int, 2) ++FUNC (v2sf, float, 2) ++FUNC (v4hi, short, 4) ++FUNC (v4hf, __fp16, 4) ++FUNC (v8qi, char, 8) ++ ++FUNC (v4si, int, 4) ++FUNC (v4sf, float, 4) ++FUNC (v8hi, short, 8) ++FUNC (v8hf, __fp16, 8) ++FUNC (v16qi, char, 16) ++FUNC (v2di, long long, 2) ++FUNC (v2df, double, 2) ++ ++/* When storing lane zero of a vector we can use the scalar STR instruction ++ that supports more addressing modes. */ ++ ++/* { dg-final { scan-assembler-times "str\ts\[0-9\]+" 4 } } */ ++/* { dg-final { scan-assembler-times "str\tb\[0-9\]+" 2 } } */ ++/* { dg-final { scan-assembler-times "str\th\[0-9\]+" 4 } } */ ++/* { dg-final { scan-assembler-times "str\td\[0-9\]+" 2 } } */ ++/* { dg-final { scan-assembler-not "umov" } } */ ++/* { dg-final { scan-assembler-not "dup" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/subs_compare_1.c +@@ -0,0 +1,15 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++int ++foo (int a, int b) ++{ ++ int x = a - b; ++ if (a <= b) ++ return x; ++ else ++ return 0; ++} ++ ++/* { dg-final { scan-assembler-times "subs\\tw\[0-9\]+, w\[0-9\]+, w\[0-9\]+" 1 } } */ ++/* { dg-final { scan-assembler-not "cmp\\tw\[0-9\]+, w\[0-9\]+" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/subs_compare_2.c +@@ -0,0 +1,15 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++int ++foo (int a, int b) ++{ ++ int x = a - 4; ++ if (a < 4) ++ return x; ++ else ++ return 0; ++} ++ ++/* { dg-final { scan-assembler-times "subs\\tw\[0-9\]+, w\[0-9\]+, #4" 1 } } */ ++/* { dg-final { scan-assembler-not "cmp\\tw\[0-9\]+, w\[0-9\]+" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/tst_imm_split_1.c +@@ -0,0 +1,18 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++int ++f (unsigned char *p) ++{ ++ return p[0] == 50 || p[0] == 52; ++} ++ ++int ++g (unsigned char *p) ++{ ++ return (p[0] >> 4 & 0xfd) == 0; ++} ++ ++/* { dg-final { scan-assembler-not "and\\t\[xw\]\[0-9\]+, \[xw\]\[0-9\]+.*" } } */ ++/* { dg-final { scan-assembler "tst\\t\[xw\]\[0-9\]+, \[xw\]\[0-9\]+" } } */ ++/* { dg-final { scan-assembler "tst\\t\[xw\]\[0-9\]+, \[xw\]\[0-9\]+, lsr 4" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/vect-init-1.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++#define vector __attribute__((vector_size(16))) ++ ++vector float combine (float a, float b, float c, float d) ++{ ++ return (vector float) { a, b, c, d }; ++} ++ ++/* { dg-final { scan-assembler-not "movi\t" } } */ ++/* { dg-final { scan-assembler-not "orr\t" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/vect-init-2.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++#define vector __attribute__((vector_size(16))) ++ ++vector float combine (float a, float b, float d) ++{ ++ return (vector float) { a, b, a, d }; ++} ++ ++/* { dg-final { scan-assembler-not "movi\t" } } */ ++/* { dg-final { scan-assembler-not "orr\t" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/vect-init-3.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++#define vector __attribute__((vector_size(16))) ++ ++vector float combine (float a, float b) ++{ ++ return (vector float) { a, b, a, b }; ++} ++ ++/* { dg-final { scan-assembler-not "movi\t" } } */ ++/* { dg-final { scan-assembler-not "orr\t" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/vect-init-4.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++#define vector __attribute__((vector_size(16))) ++ ++vector float combine (float a, float b) ++{ ++ return (vector float) { a, b, b, a }; ++} ++ ++/* { dg-final { scan-assembler-not "movi\t" } } */ ++/* { dg-final { scan-assembler-not "orr\t" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/vect-init-5.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++#define vector __attribute__((vector_size(16))) ++ ++vector float combine (float a, float b) ++{ ++ return (vector float) { a, b, a, a }; ++} ++ ++/* { dg-final { scan-assembler-not "movi\t" } } */ ++/* { dg-final { scan-assembler-not "orr\t" } } */ +--- a/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-1.c ++++ b/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-1.c +@@ -3,7 +3,8 @@ + /* { dg-options "-O2 -ffast-math" } */ + /* { dg-add-options arm_v8_2a_fp16_neon } */ + +-/* Test instructions generated for half-precision arithmetic. */ ++/* Test instructions generated for half-precision arithmetic with ++ unsafe-math-optimizations enabled. */ + + typedef __fp16 float16_t; + typedef __simd64_float16_t float16x4_t; +@@ -90,9 +91,18 @@ TEST_CMP (greaterthanqual, >=, int16x8_t, float16x8_t) + /* { dg-final { scan-assembler-times {vneg\.f16\tq[0-9]+, q[0-9]+} 1 } } */ + /* { dg-final { scan-assembler-times {vabs\.f16\ts[0-9]+, s[0-9]+} 2 } } */ + +-/* { dg-final { scan-assembler-times {vadd\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ +-/* { dg-final { scan-assembler-times {vsub\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ +-/* { dg-final { scan-assembler-times {vmul\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ ++/* { dg-final { scan-assembler-times {vadd\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vadd\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vadd\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++/* { dg-final { scan-assembler-times {vsub\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vsub\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vsub\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++/* { dg-final { scan-assembler-times {vmul\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vmul\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vmul\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ + /* { dg-final { scan-assembler-times {vdiv\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ + /* { dg-final { scan-assembler-times {vcmp\.f32\ts[0-9]+, s[0-9]+} 26 } } */ + /* { dg-final { scan-assembler-times {vcmpe\.f32\ts[0-9]+, s[0-9]+} 52 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-2.c +@@ -0,0 +1,109 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_v8_2a_fp16_neon_ok } */ ++/* { dg-options "-O2 -fno-fast-math" } */ ++/* { dg-add-options arm_v8_2a_fp16_neon } */ ++ ++/* Test instructions generated for half-precision arithmetic without ++ unsafe-math-optimizations. */ ++ ++typedef __fp16 float16_t; ++typedef __simd64_float16_t float16x4_t; ++typedef __simd128_float16_t float16x8_t; ++ ++typedef short int16x4_t __attribute__ ((vector_size (8))); ++typedef short int int16x8_t __attribute__ ((vector_size (16))); ++ ++float16_t ++fp16_abs (float16_t a) ++{ ++ return (a < 0) ? -a : a; ++} ++ ++#define TEST_UNOP(NAME, OPERATOR, TY) \ ++ TY test_##NAME##_##TY (TY a) \ ++ { \ ++ return OPERATOR (a); \ ++ } ++ ++#define TEST_BINOP(NAME, OPERATOR, TY) \ ++ TY test_##NAME##_##TY (TY a, TY b) \ ++ { \ ++ return a OPERATOR b; \ ++ } ++ ++#define TEST_CMP(NAME, OPERATOR, RTY, TY) \ ++ RTY test_##NAME##_##TY (TY a, TY b) \ ++ { \ ++ return a OPERATOR b; \ ++ } ++ ++/* Scalars. */ ++ ++TEST_UNOP (neg, -, float16_t) ++TEST_UNOP (abs, fp16_abs, float16_t) ++ ++TEST_BINOP (add, +, float16_t) ++TEST_BINOP (sub, -, float16_t) ++TEST_BINOP (mult, *, float16_t) ++TEST_BINOP (div, /, float16_t) ++ ++TEST_CMP (equal, ==, int, float16_t) ++TEST_CMP (unequal, !=, int, float16_t) ++TEST_CMP (lessthan, <, int, float16_t) ++TEST_CMP (greaterthan, >, int, float16_t) ++TEST_CMP (lessthanequal, <=, int, float16_t) ++TEST_CMP (greaterthanqual, >=, int, float16_t) ++ ++/* Vectors of size 4. */ ++ ++TEST_UNOP (neg, -, float16x4_t) ++ ++TEST_BINOP (add, +, float16x4_t) ++TEST_BINOP (sub, -, float16x4_t) ++TEST_BINOP (mult, *, float16x4_t) ++TEST_BINOP (div, /, float16x4_t) ++ ++TEST_CMP (equal, ==, int16x4_t, float16x4_t) ++TEST_CMP (unequal, !=, int16x4_t, float16x4_t) ++TEST_CMP (lessthan, <, int16x4_t, float16x4_t) ++TEST_CMP (greaterthan, >, int16x4_t, float16x4_t) ++TEST_CMP (lessthanequal, <=, int16x4_t, float16x4_t) ++TEST_CMP (greaterthanqual, >=, int16x4_t, float16x4_t) ++ ++/* Vectors of size 8. */ ++ ++TEST_UNOP (neg, -, float16x8_t) ++ ++TEST_BINOP (add, +, float16x8_t) ++TEST_BINOP (sub, -, float16x8_t) ++TEST_BINOP (mult, *, float16x8_t) ++TEST_BINOP (div, /, float16x8_t) ++ ++TEST_CMP (equal, ==, int16x8_t, float16x8_t) ++TEST_CMP (unequal, !=, int16x8_t, float16x8_t) ++TEST_CMP (lessthan, <, int16x8_t, float16x8_t) ++TEST_CMP (greaterthan, >, int16x8_t, float16x8_t) ++TEST_CMP (lessthanequal, <=, int16x8_t, float16x8_t) ++TEST_CMP (greaterthanqual, >=, int16x8_t, float16x8_t) ++ ++/* { dg-final { scan-assembler-times {vneg\.f16\ts[0-9]+, s[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vneg\.f16\td[0-9]+, d[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vneg\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++/* { dg-final { scan-assembler-times {vadd\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ ++/* { dg-final { scan-assembler-times {vsub\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ ++/* { dg-final { scan-assembler-times {vmul\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ ++/* { dg-final { scan-assembler-times {vdiv\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ ++/* { dg-final { scan-assembler-times {vcmp\.f32\ts[0-9]+, s[0-9]+} 26 } } */ ++ ++/* { dg-final { scan-assembler-times {vcmpe\.f32\ts[0-9]+, s[0-9]+} 52 } } */ ++/* { dg-final { scan-assembler-times {vcmpe\.f32\ts[0-9]+, #0} 2 } } */ ++ ++/* { dg-final { scan-assembler-not {vabs\.f16} } } */ ++ ++/* { dg-final { scan-assembler-not {vadd\.f32} } } */ ++/* { dg-final { scan-assembler-not {vsub\.f32} } } */ ++/* { dg-final { scan-assembler-not {vmul\.f32} } } */ ++/* { dg-final { scan-assembler-not {vdiv\.f32} } } */ ++/* { dg-final { scan-assembler-not {vcmp\.f16} } } */ ++/* { dg-final { scan-assembler-not {vcmpe\.f16} } } */ +--- a/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-1.c ++++ b/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-1.c +@@ -137,7 +137,7 @@ + } + + VCMP1_TEST (vceqz) +-/* { dg-final { scan-assembler-times {vceq\.f16\td[0-9]+, d[0-0]+, #0} 1 } } */ ++/* { dg-final { scan-assembler-times {vceq\.f16\td[0-9]+, d[0-9]+, #0} 1 } } */ + /* { dg-final { scan-assembler-times {vceq\.f16\tq[0-9]+, q[0-9]+, #0} 1 } } */ + + VCMP1_TEST (vcgtz) +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-2.c +@@ -0,0 +1,491 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_v8_2a_fp16_neon_ok } */ ++/* { dg-options "-O2 -ffast-math" } */ ++/* { dg-add-options arm_v8_2a_fp16_neon } */ ++ ++/* Test instructions generated for the FP16 vector intrinsics with ++ -ffast-math */ ++ ++#include ++ ++#define MSTRCAT(L, str) L##str ++ ++#define UNOP_TEST(insn) \ ++ float16x4_t \ ++ MSTRCAT (test_##insn, _16x4) (float16x4_t a) \ ++ { \ ++ return MSTRCAT (insn, _f16) (a); \ ++ } \ ++ float16x8_t \ ++ MSTRCAT (test_##insn, _16x8) (float16x8_t a) \ ++ { \ ++ return MSTRCAT (insn, q_f16) (a); \ ++ } ++ ++#define BINOP_TEST(insn) \ ++ float16x4_t \ ++ MSTRCAT (test_##insn, _16x4) (float16x4_t a, float16x4_t b) \ ++ { \ ++ return MSTRCAT (insn, _f16) (a, b); \ ++ } \ ++ float16x8_t \ ++ MSTRCAT (test_##insn, _16x8) (float16x8_t a, float16x8_t b) \ ++ { \ ++ return MSTRCAT (insn, q_f16) (a, b); \ ++ } ++ ++#define BINOP_LANE_TEST(insn, I) \ ++ float16x4_t \ ++ MSTRCAT (test_##insn##_lane, _16x4) (float16x4_t a, float16x4_t b) \ ++ { \ ++ return MSTRCAT (insn, _lane_f16) (a, b, I); \ ++ } \ ++ float16x8_t \ ++ MSTRCAT (test_##insn##_lane, _16x8) (float16x8_t a, float16x4_t b) \ ++ { \ ++ return MSTRCAT (insn, q_lane_f16) (a, b, I); \ ++ } ++ ++#define BINOP_LANEQ_TEST(insn, I) \ ++ float16x4_t \ ++ MSTRCAT (test_##insn##_laneq, _16x4) (float16x4_t a, float16x8_t b) \ ++ { \ ++ return MSTRCAT (insn, _laneq_f16) (a, b, I); \ ++ } \ ++ float16x8_t \ ++ MSTRCAT (test_##insn##_laneq, _16x8) (float16x8_t a, float16x8_t b) \ ++ { \ ++ return MSTRCAT (insn, q_laneq_f16) (a, b, I); \ ++ } \ ++ ++#define BINOP_N_TEST(insn) \ ++ float16x4_t \ ++ MSTRCAT (test_##insn##_n, _16x4) (float16x4_t a, float16_t b) \ ++ { \ ++ return MSTRCAT (insn, _n_f16) (a, b); \ ++ } \ ++ float16x8_t \ ++ MSTRCAT (test_##insn##_n, _16x8) (float16x8_t a, float16_t b) \ ++ { \ ++ return MSTRCAT (insn, q_n_f16) (a, b); \ ++ } ++ ++#define TERNOP_TEST(insn) \ ++ float16_t \ ++ MSTRCAT (test_##insn, _16) (float16_t a, float16_t b, float16_t c) \ ++ { \ ++ return MSTRCAT (insn, h_f16) (a, b, c); \ ++ } \ ++ float16x4_t \ ++ MSTRCAT (test_##insn, _16x4) (float16x4_t a, float16x4_t b, \ ++ float16x4_t c) \ ++ { \ ++ return MSTRCAT (insn, _f16) (a, b, c); \ ++ } \ ++ float16x8_t \ ++ MSTRCAT (test_##insn, _16x8) (float16x8_t a, float16x8_t b, \ ++ float16x8_t c) \ ++ { \ ++ return MSTRCAT (insn, q_f16) (a, b, c); \ ++ } ++ ++#define VCMP1_TEST(insn) \ ++ uint16x4_t \ ++ MSTRCAT (test_##insn, _16x4) (float16x4_t a) \ ++ { \ ++ return MSTRCAT (insn, _f16) (a); \ ++ } \ ++ uint16x8_t \ ++ MSTRCAT (test_##insn, _16x8) (float16x8_t a) \ ++ { \ ++ return MSTRCAT (insn, q_f16) (a); \ ++ } ++ ++#define VCMP2_TEST(insn) \ ++ uint16x4_t \ ++ MSTRCAT (test_##insn, _16x4) (float16x4_t a, float16x4_t b) \ ++ { \ ++ return MSTRCAT (insn, _f16) (a, b); \ ++ } \ ++ uint16x8_t \ ++ MSTRCAT (test_##insn, _16x8) (float16x8_t a, float16x8_t b) \ ++ { \ ++ return MSTRCAT (insn, q_f16) (a, b); \ ++ } ++ ++#define VCVT_TEST(insn, TY, TO, FR) \ ++ MSTRCAT (TO, 16x4_t) \ ++ MSTRCAT (test_##insn, TY) (MSTRCAT (FR, 16x4_t) a) \ ++ { \ ++ return MSTRCAT (insn, TY) (a); \ ++ } \ ++ MSTRCAT (TO, 16x8_t) \ ++ MSTRCAT (test_##insn##_q, TY) (MSTRCAT (FR, 16x8_t) a) \ ++ { \ ++ return MSTRCAT (insn, q##TY) (a); \ ++ } ++ ++#define VCVT_N_TEST(insn, TY, TO, FR) \ ++ MSTRCAT (TO, 16x4_t) \ ++ MSTRCAT (test_##insn##_n, TY) (MSTRCAT (FR, 16x4_t) a) \ ++ { \ ++ return MSTRCAT (insn, _n##TY) (a, 1); \ ++ } \ ++ MSTRCAT (TO, 16x8_t) \ ++ MSTRCAT (test_##insn##_n_q, TY) (MSTRCAT (FR, 16x8_t) a) \ ++ { \ ++ return MSTRCAT (insn, q_n##TY) (a, 1); \ ++ } ++ ++VCMP1_TEST (vceqz) ++/* { dg-final { scan-assembler-times {vceq\.f16\td[0-9]+, d[0-9]+, #0} 1 } } */ ++/* { dg-final { scan-assembler-times {vceq\.f16\tq[0-9]+, q[0-9]+, #0} 1 } } */ ++ ++VCMP1_TEST (vcgtz) ++/* { dg-final { scan-assembler-times {vcgt\.f16\td[0-9]+, d[0-9]+, #0} 1 } } */ ++/* { dg-final { scan-assembler-times {vceq\.f16\tq[0-9]+, q[0-9]+, #0} 1 } } */ ++ ++VCMP1_TEST (vcgez) ++/* { dg-final { scan-assembler-times {vcge\.f16\td[0-9]+, d[0-9]+, #0} 1 } } */ ++/* { dg-final { scan-assembler-times {vcge\.f16\tq[0-9]+, q[0-9]+, #0} 1 } } */ ++ ++VCMP1_TEST (vcltz) ++/* { dg-final { scan-assembler-times {vclt.f16\td[0-9]+, d[0-9]+, #0} 1 } } */ ++/* { dg-final { scan-assembler-times {vclt.f16\tq[0-9]+, q[0-9]+, #0} 1 } } */ ++ ++VCMP1_TEST (vclez) ++/* { dg-final { scan-assembler-times {vcle\.f16\td[0-9]+, d[0-9]+, #0} 1 } } */ ++/* { dg-final { scan-assembler-times {vcle\.f16\tq[0-9]+, q[0-9]+, #0} 1 } } */ ++ ++VCVT_TEST (vcvt, _f16_s16, float, int) ++VCVT_N_TEST (vcvt, _f16_s16, float, int) ++/* { dg-final { scan-assembler-times {vcvt\.f16\.s16\td[0-9]+, d[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.f16\.s16\tq[0-9]+, q[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.f16\.s16\td[0-9]+, d[0-9]+, #1} 1 } } ++ { dg-final { scan-assembler-times {vcvt\.f16\.s16\tq[0-9]+, q[0-9]+, #1} 1 } } */ ++ ++VCVT_TEST (vcvt, _f16_u16, float, uint) ++VCVT_N_TEST (vcvt, _f16_u16, float, uint) ++/* { dg-final { scan-assembler-times {vcvt\.f16\.u16\td[0-9]+, d[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.f16\.u16\tq[0-9]+, q[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.f16\.u16\td[0-9]+, d[0-9]+, #1} 1 } } ++ { dg-final { scan-assembler-times {vcvt\.f16\.u16\tq[0-9]+, q[0-9]+, #1} 1 } } */ ++ ++VCVT_TEST (vcvt, _s16_f16, int, float) ++VCVT_N_TEST (vcvt, _s16_f16, int, float) ++/* { dg-final { scan-assembler-times {vcvt\.s16\.f16\td[0-9]+, d[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.s16\.f16\tq[0-9]+, q[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.s16\.f16\td[0-9]+, d[0-9]+, #1} 1 } } ++ { dg-final { scan-assembler-times {vcvt\.s16\.f16\tq[0-9]+, q[0-9]+, #1} 1 } } */ ++ ++VCVT_TEST (vcvt, _u16_f16, uint, float) ++VCVT_N_TEST (vcvt, _u16_f16, uint, float) ++/* { dg-final { scan-assembler-times {vcvt\.u16\.f16\td[0-9]+, d[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.u16\.f16\tq[0-9]+, q[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.u16\.f16\td[0-9]+, d[0-9]+, #1} 1 } } ++ { dg-final { scan-assembler-times {vcvt\.u16\.f16\tq[0-9]+, q[0-9]+, #1} 1 } } */ ++ ++VCVT_TEST (vcvta, _s16_f16, int, float) ++/* { dg-final { scan-assembler-times {vcvta\.s16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvta\.s16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvta, _u16_f16, uint, float) ++/* { dg-final { scan-assembler-times {vcvta\.u16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvta\.u16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvtm, _s16_f16, int, float) ++/* { dg-final { scan-assembler-times {vcvtm\.s16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvtm\.s16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvtm, _u16_f16, uint, float) ++/* { dg-final { scan-assembler-times {vcvtm\.u16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvtm\.u16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvtn, _s16_f16, int, float) ++/* { dg-final { scan-assembler-times {vcvtn\.s16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvtn\.s16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvtn, _u16_f16, uint, float) ++/* { dg-final { scan-assembler-times {vcvtn\.u16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvtn\.u16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvtp, _s16_f16, int, float) ++/* { dg-final { scan-assembler-times {vcvtp\.s16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvtp\.s16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvtp, _u16_f16, uint, float) ++/* { dg-final { scan-assembler-times {vcvtp\.u16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvtp\.u16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++UNOP_TEST (vabs) ++/* { dg-final { scan-assembler-times {vabs\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vabs\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vneg) ++/* { dg-final { scan-assembler-times {vneg\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vneg\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrecpe) ++/* { dg-final { scan-assembler-times {vrecpe\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrecpe\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrnd) ++/* { dg-final { scan-assembler-times {vrintz\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrintz\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrnda) ++/* { dg-final { scan-assembler-times {vrinta\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrinta\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrndm) ++/* { dg-final { scan-assembler-times {vrintm\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrintm\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrndn) ++/* { dg-final { scan-assembler-times {vrintn\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrintn\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrndp) ++/* { dg-final { scan-assembler-times {vrintp\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrintp\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrndx) ++/* { dg-final { scan-assembler-times {vrintx\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrintx\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrsqrte) ++/* { dg-final { scan-assembler-times {vrsqrte\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrsqrte\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vadd) ++/* { dg-final { scan-assembler-times {vadd\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vadd\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vabd) ++/* { dg-final { scan-assembler-times {vabd\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vabd\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcage) ++/* { dg-final { scan-assembler-times {vacge\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vacge\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcagt) ++/* { dg-final { scan-assembler-times {vacgt\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vacgt\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcale) ++/* { dg-final { scan-assembler-times {vacle\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vacle\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcalt) ++/* { dg-final { scan-assembler-times {vaclt\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vaclt\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vceq) ++/* { dg-final { scan-assembler-times {vceq\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vceq\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcge) ++/* { dg-final { scan-assembler-times {vcge\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcge\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcgt) ++/* { dg-final { scan-assembler-times {vcgt\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcgt\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcle) ++/* { dg-final { scan-assembler-times {vcle\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcle\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vclt) ++/* { dg-final { scan-assembler-times {vclt\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vclt\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vmax) ++/* { dg-final { scan-assembler-times {vmax\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vmax\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vmin) ++/* { dg-final { scan-assembler-times {vmin\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vmin\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vmaxnm) ++/* { dg-final { scan-assembler-times {vmaxnm\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vmaxnm\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vminnm) ++/* { dg-final { scan-assembler-times {vminnm\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vminnm\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vmul) ++/* { dg-final { scan-assembler-times {vmul\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 3 } } ++ { dg-final { scan-assembler-times {vmul\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++BINOP_LANE_TEST (vmul, 2) ++/* { dg-final { scan-assembler-times {vmul\.f16\td[0-9]+, d[0-9]+, d[0-9]+\[2\]} 1 } } ++ { dg-final { scan-assembler-times {vmul\.f16\tq[0-9]+, q[0-9]+, d[0-9]+\[2\]} 1 } } */ ++BINOP_N_TEST (vmul) ++/* { dg-final { scan-assembler-times {vmul\.f16\td[0-9]+, d[0-9]+, d[0-9]+\[0\]} 1 } } ++ { dg-final { scan-assembler-times {vmul\.f16\tq[0-9]+, q[0-9]+, d[0-9]+\[0\]} 1 } }*/ ++ ++float16x4_t ++test_vpadd_16x4 (float16x4_t a, float16x4_t b) ++{ ++ return vpadd_f16 (a, b); ++} ++/* { dg-final { scan-assembler-times {vpadd\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++ ++float16x4_t ++test_vpmax_16x4 (float16x4_t a, float16x4_t b) ++{ ++ return vpmax_f16 (a, b); ++} ++/* { dg-final { scan-assembler-times {vpmax\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++ ++float16x4_t ++test_vpmin_16x4 (float16x4_t a, float16x4_t b) ++{ ++ return vpmin_f16 (a, b); ++} ++/* { dg-final { scan-assembler-times {vpmin\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++ ++BINOP_TEST (vsub) ++/* { dg-final { scan-assembler-times {vsub\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vsub\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vrecps) ++/* { dg-final { scan-assembler-times {vrecps\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrecps\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vrsqrts) ++/* { dg-final { scan-assembler-times {vrsqrts\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrsqrts\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++TERNOP_TEST (vfma) ++/* { dg-final { scan-assembler-times {vfma\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vfma\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++TERNOP_TEST (vfms) ++/* { dg-final { scan-assembler-times {vfms\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vfms\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++float16x4_t ++test_vmov_n_f16 (float16_t a) ++{ ++ return vmov_n_f16 (a); ++} ++ ++float16x4_t ++test_vdup_n_f16 (float16_t a) ++{ ++ return vdup_n_f16 (a); ++} ++/* { dg-final { scan-assembler-times {vdup\.16\td[0-9]+, r[0-9]+} 2 } } */ ++ ++float16x8_t ++test_vmovq_n_f16 (float16_t a) ++{ ++ return vmovq_n_f16 (a); ++} ++ ++float16x8_t ++test_vdupq_n_f16 (float16_t a) ++{ ++ return vdupq_n_f16 (a); ++} ++/* { dg-final { scan-assembler-times {vdup\.16\tq[0-9]+, r[0-9]+} 2 } } */ ++ ++float16x4_t ++test_vdup_lane_f16 (float16x4_t a) ++{ ++ return vdup_lane_f16 (a, 1); ++} ++/* { dg-final { scan-assembler-times {vdup\.16\td[0-9]+, d[0-9]+\[1\]} 1 } } */ ++ ++float16x8_t ++test_vdupq_lane_f16 (float16x4_t a) ++{ ++ return vdupq_lane_f16 (a, 1); ++} ++/* { dg-final { scan-assembler-times {vdup\.16\tq[0-9]+, d[0-9]+\[1\]} 1 } } */ ++ ++float16x4_t ++test_vext_f16 (float16x4_t a, float16x4_t b) ++{ ++ return vext_f16 (a, b, 1); ++} ++/* { dg-final { scan-assembler-times {vext\.16\td[0-9]+, d[0-9]+, d[0-9]+, #1} 1 } } */ ++ ++float16x8_t ++test_vextq_f16 (float16x8_t a, float16x8_t b) ++{ ++ return vextq_f16 (a, b, 1); ++} ++/* { dg-final { scan-assembler-times {vext\.16\tq[0-9]+, q[0-9]+, q[0-9]+, #1} 1 } } */ ++ ++UNOP_TEST (vrev64) ++/* { dg-final { scan-assembler-times {vrev64\.16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrev64\.16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++float16x4_t ++test_vbsl16x4 (uint16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vbsl_f16 (a, b, c); ++} ++/* { dg-final { scan-assembler-times {vbsl\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++ ++float16x8_t ++test_vbslq16x8 (uint16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vbslq_f16 (a, b, c); ++} ++/*{ dg-final { scan-assembler-times {vbsl\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++float16x4x2_t ++test_vzip16x4 (float16x4_t a, float16x4_t b) ++{ ++ return vzip_f16 (a, b); ++} ++/* { dg-final { scan-assembler-times {vzip\.16\td[0-9]+, d[0-9]+} 1 } } */ ++ ++float16x8x2_t ++test_vzipq16x8 (float16x8_t a, float16x8_t b) ++{ ++ return vzipq_f16 (a, b); ++} ++/*{ dg-final { scan-assembler-times {vzip\.16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++float16x4x2_t ++test_vuzp16x4 (float16x4_t a, float16x4_t b) ++{ ++ return vuzp_f16 (a, b); ++} ++/* { dg-final { scan-assembler-times {vuzp\.16\td[0-9]+, d[0-9]+} 1 } } */ ++ ++float16x8x2_t ++test_vuzpq16x8 (float16x8_t a, float16x8_t b) ++{ ++ return vuzpq_f16 (a, b); ++} ++/*{ dg-final { scan-assembler-times {vuzp\.16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++float16x4x2_t ++test_vtrn16x4 (float16x4_t a, float16x4_t b) ++{ ++ return vtrn_f16 (a, b); ++} ++/* { dg-final { scan-assembler-times {vtrn\.16\td[0-9]+, d[0-9]+} 1 } } */ ++ ++float16x8x2_t ++test_vtrnq16x8 (float16x8_t a, float16x8_t b) ++{ ++ return vtrnq_f16 (a, b); ++} ++/*{ dg-final { scan-assembler-times {vtrn\.16\tq[0-9]+, q[0-9]+} 1 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-3.c +@@ -0,0 +1,108 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_v8_2a_fp16_neon_ok } */ ++/* { dg-options "-O2 -ffast-math" } */ ++/* { dg-add-options arm_v8_2a_fp16_neon } */ ++ ++/* Test compiler use of FP16 FMA/FMS instructions with -ffast-math. */ ++ ++#include ++ ++float16x4_t ++test_vfma_1 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vadd_f16 (vmul_f16 (a, b), c); ++} ++ ++float16x4_t ++test_vfma_2 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vsub_f16 (vmul_f16 (a, b), vneg_f16 (c)); ++} ++ ++float16x4_t ++test_vfma_3 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vsub_f16 (vmul_f16 (vneg_f16 (a), vneg_f16 (b)), vneg_f16 (c)); ++} ++ ++float16x4_t ++test_vfma_4 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vsub_f16 (vmul_f16 (a, b), vneg_f16 (c)); ++} ++/* { dg-final { scan-assembler-times {vfma\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 4 } } */ ++ ++float16x8_t ++test_vfmaq_1 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vaddq_f16 (vmulq_f16 (a, b), c); ++} ++ ++float16x8_t ++test_vfmaq_2 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vsubq_f16 (vmulq_f16 (a, b), vnegq_f16 (c)); ++} ++ ++float16x8_t ++test_vfmaq_3 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vsubq_f16 (vmulq_f16 (vnegq_f16 (a), vnegq_f16 (b)), vnegq_f16 (c)); ++} ++ ++float16x8_t ++test_vfmaq_4 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vsubq_f16 (vmulq_f16 (a, b), vnegq_f16 (c)); ++} ++/* { dg-final { scan-assembler-times {vfma\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 4 } } */ ++ ++float16x4_t ++test_vfms_1 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vsub_f16 (c, vmul_f16 (a, b)); ++} ++ ++float16x4_t ++test_vfms_2 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vsub_f16 (a, vmul_f16 (b, c)); ++} ++ ++float16x4_t ++test_vfms_3 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vadd_f16 (vmul_f16 (vneg_f16 (a), b), c); ++} ++ ++float16x4_t ++test_vfms_4 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vadd_f16 (vmul_f16 (a, vneg_f16 (b)), c); ++} ++/* { dg-final { scan-assembler-times {vfms\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 4 } } */ ++ ++float16x8_t ++test_vfmsq_1 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vsubq_f16 (c, vmulq_f16 (a, b)); ++} ++ ++float16x8_t ++test_vfmsq_2 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vsubq_f16 (a, vmulq_f16 (b, c)); ++} ++ ++float16x8_t ++test_vfmsq_3 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vaddq_f16 (vmulq_f16 (vnegq_f16 (a), b), c); ++} ++ ++float16x8_t ++test_vfmsq_4 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vaddq_f16 (vmulq_f16 (a, vnegq_f16 (b)), c); ++} ++/* { dg-final { scan-assembler-times {vfms\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 4 } } */ +--- a/src/gcc/testsuite/gcc.target/arm/its.c ++++ b/src/gcc/testsuite/gcc.target/arm/its.c +@@ -1,4 +1,6 @@ + /* { dg-do compile } */ ++/* { dg-require-effective-target arm_cortex_m } */ ++/* { dg-require-effective-target arm_thumb2 } */ + /* { dg-options "-O2" } */ + int test (int a, int b) + { +@@ -17,4 +19,6 @@ int test (int a, int b) + r -= 3; + return r; + } +-/* { dg-final { scan-assembler-times "\tit" 2 { target arm_thumb2 } } } */ ++/* Ensure there is no IT block with more than 2 instructions, ie. we only allow ++ IT, ITT and ITE. */ ++/* { dg-final { scan-assembler-not "\\sit\[te\]{2}" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/movdi_movt.c +@@ -0,0 +1,18 @@ ++/* { dg-do compile { target { arm_cortex_m && { arm_thumb2_ok || arm_thumb1_movt_ok } } } } */ ++/* { dg-options "-O2 -mslow-flash-data" } */ ++ ++unsigned long long ++movdi_1 (int a) ++{ ++ return 0xF0F00000LLU; ++} ++ ++unsigned long long ++movdi_2 (int a) ++{ ++ return 0xF0F0000000000000LLU; ++} ++ ++/* Accept r1 because big endian targets put the low bits in the highest ++ numbered register of a pair. */ ++/* { dg-final { scan-assembler-times "movt\tr\[01\], 61680" 2 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/movsi_movt.c +@@ -0,0 +1,10 @@ ++/* { dg-do compile { target { arm_cortex_m && { arm_thumb2_ok || arm_thumb1_movt_ok } } } } */ ++/* { dg-options "-O2 -mslow-flash-data" } */ ++ ++unsigned ++movsi (void) ++{ ++ return 0xF0F00000U; ++} ++ ++/* { dg-final { scan-assembler-times "movt\tr0, 61680" 1 } } */ +--- a/src/gcc/testsuite/gcc.target/arm/pr69180.c ++++ b/src/gcc/testsuite/gcc.target/arm/pr69180.c +@@ -8,9 +8,10 @@ + #pragma GCC target ("fpu=neon-fp-armv8") + + #define __ARM_NEON_FP 0 ++/* { dg-warning ".__ARM_NEON_FP. redefined" "" { target *-*-* } .-1 } */ ++ + #define __ARM_FP 0 +-#define __ARM_FEATURE_LDREX 0 ++/* { dg-warning ".__ARM_FP. redefined" "" { target *-*-* } .-1 } */ + +-/* { dg-warning ".__ARM_NEON_FP. redefined" "" { target *-*-* } 10 } */ +-/* { dg-warning ".__ARM_FP. redefined" "" { target *-*-* } 11 } */ +-/* { dg-warning ".__ARM_FEATURE_LDREX. redefined" "" { target *-*-* } 12 } */ ++#define __ARM_FEATURE_LDREX 0 ++/* { dg-warning ".__ARM_FEATURE_LDREX. redefined" "" { target *-*-* } .-1 } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/pr77308-1.c +@@ -0,0 +1,169 @@ ++/* { dg-do compile } */ ++/* { dg-options "-Os -Wstack-usage=2500" } */ ++ ++/* This is a modified algorithm with bit-not "~" at the Sigma-blocks. ++ It improves the test coverage of one_cmpldi2 and subdi3 patterns. ++ Unlike the original test case these insns can reach the reload pass, ++ which may result in large stack usage. */ ++ ++#define SHA_LONG64 unsigned long long ++#define U64(C) C##ULL ++ ++#define SHA_LBLOCK 16 ++#define SHA512_CBLOCK (SHA_LBLOCK*8) ++ ++typedef struct SHA512state_st { ++ SHA_LONG64 h[8]; ++ SHA_LONG64 Nl, Nh; ++ union { ++ SHA_LONG64 d[SHA_LBLOCK]; ++ unsigned char p[SHA512_CBLOCK]; ++ } u; ++ unsigned int num, md_len; ++} SHA512_CTX; ++ ++static const SHA_LONG64 K512[80] = { ++ U64(0x428a2f98d728ae22), U64(0x7137449123ef65cd), ++ U64(0xb5c0fbcfec4d3b2f), U64(0xe9b5dba58189dbbc), ++ U64(0x3956c25bf348b538), U64(0x59f111f1b605d019), ++ U64(0x923f82a4af194f9b), U64(0xab1c5ed5da6d8118), ++ U64(0xd807aa98a3030242), U64(0x12835b0145706fbe), ++ U64(0x243185be4ee4b28c), U64(0x550c7dc3d5ffb4e2), ++ U64(0x72be5d74f27b896f), U64(0x80deb1fe3b1696b1), ++ U64(0x9bdc06a725c71235), U64(0xc19bf174cf692694), ++ U64(0xe49b69c19ef14ad2), U64(0xefbe4786384f25e3), ++ U64(0x0fc19dc68b8cd5b5), U64(0x240ca1cc77ac9c65), ++ U64(0x2de92c6f592b0275), U64(0x4a7484aa6ea6e483), ++ U64(0x5cb0a9dcbd41fbd4), U64(0x76f988da831153b5), ++ U64(0x983e5152ee66dfab), U64(0xa831c66d2db43210), ++ U64(0xb00327c898fb213f), U64(0xbf597fc7beef0ee4), ++ U64(0xc6e00bf33da88fc2), U64(0xd5a79147930aa725), ++ U64(0x06ca6351e003826f), U64(0x142929670a0e6e70), ++ U64(0x27b70a8546d22ffc), U64(0x2e1b21385c26c926), ++ U64(0x4d2c6dfc5ac42aed), U64(0x53380d139d95b3df), ++ U64(0x650a73548baf63de), U64(0x766a0abb3c77b2a8), ++ U64(0x81c2c92e47edaee6), U64(0x92722c851482353b), ++ U64(0xa2bfe8a14cf10364), U64(0xa81a664bbc423001), ++ U64(0xc24b8b70d0f89791), U64(0xc76c51a30654be30), ++ U64(0xd192e819d6ef5218), U64(0xd69906245565a910), ++ U64(0xf40e35855771202a), U64(0x106aa07032bbd1b8), ++ U64(0x19a4c116b8d2d0c8), U64(0x1e376c085141ab53), ++ U64(0x2748774cdf8eeb99), U64(0x34b0bcb5e19b48a8), ++ U64(0x391c0cb3c5c95a63), U64(0x4ed8aa4ae3418acb), ++ U64(0x5b9cca4f7763e373), U64(0x682e6ff3d6b2b8a3), ++ U64(0x748f82ee5defb2fc), U64(0x78a5636f43172f60), ++ U64(0x84c87814a1f0ab72), U64(0x8cc702081a6439ec), ++ U64(0x90befffa23631e28), U64(0xa4506cebde82bde9), ++ U64(0xbef9a3f7b2c67915), U64(0xc67178f2e372532b), ++ U64(0xca273eceea26619c), U64(0xd186b8c721c0c207), ++ U64(0xeada7dd6cde0eb1e), U64(0xf57d4f7fee6ed178), ++ U64(0x06f067aa72176fba), U64(0x0a637dc5a2c898a6), ++ U64(0x113f9804bef90dae), U64(0x1b710b35131c471b), ++ U64(0x28db77f523047d84), U64(0x32caab7b40c72493), ++ U64(0x3c9ebe0a15c9bebc), U64(0x431d67c49c100d4c), ++ U64(0x4cc5d4becb3e42b6), U64(0x597f299cfc657e2a), ++ U64(0x5fcb6fab3ad6faec), U64(0x6c44198c4a475817) ++}; ++ ++#define B(x,j) (((SHA_LONG64)(*(((const unsigned char *)(&x))+j)))<<((7-j)*8)) ++#define PULL64(x) (B(x,0)|B(x,1)|B(x,2)|B(x,3)|B(x,4)|B(x,5)|B(x,6)|B(x,7)) ++#define ROTR(x,s) (((x)>>s) | (x)<<(64-s)) ++#define Sigma0(x) ~(ROTR((x),28) ^ ROTR((x),34) ^ ROTR((x),39)) ++#define Sigma1(x) ~(ROTR((x),14) ^ ROTR((x),18) ^ ROTR((x),41)) ++#define sigma0(x) ~(ROTR((x),1) ^ ROTR((x),8) ^ ((x)>>7)) ++#define sigma1(x) ~(ROTR((x),19) ^ ROTR((x),61) ^ ((x)>>6)) ++#define Ch(x,y,z) (((x) & (y)) ^ ((~(x)) & (z))) ++#define Maj(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) ++ ++#define ROUND_00_15(i,a,b,c,d,e,f,g,h) do { \ ++ T1 += h + Sigma1(e) + Ch(e,f,g) + K512[i]; \ ++ h = Sigma0(a) + Maj(a,b,c); \ ++ d += T1; h += T1; } while (0) ++#define ROUND_16_80(i,j,a,b,c,d,e,f,g,h,X) do { \ ++ s0 = X[(j+1)&0x0f]; s0 = sigma0(s0); \ ++ s1 = X[(j+14)&0x0f]; s1 = sigma1(s1); \ ++ T1 = X[(j)&0x0f] += s0 + s1 + X[(j+9)&0x0f]; \ ++ ROUND_00_15(i+j,a,b,c,d,e,f,g,h); } while (0) ++void sha512_block_data_order(SHA512_CTX *ctx, const void *in, ++ unsigned int num) ++{ ++ const SHA_LONG64 *W = in; ++ SHA_LONG64 a, b, c, d, e, f, g, h, s0, s1, T1; ++ SHA_LONG64 X[16]; ++ int i; ++ ++ while (num--) { ++ ++ a = ctx->h[0]; ++ b = ctx->h[1]; ++ c = ctx->h[2]; ++ d = ctx->h[3]; ++ e = ctx->h[4]; ++ f = ctx->h[5]; ++ g = ctx->h[6]; ++ h = ctx->h[7]; ++ ++ T1 = X[0] = PULL64(W[0]); ++ ROUND_00_15(0, a, b, c, d, e, f, g, h); ++ T1 = X[1] = PULL64(W[1]); ++ ROUND_00_15(1, h, a, b, c, d, e, f, g); ++ T1 = X[2] = PULL64(W[2]); ++ ROUND_00_15(2, g, h, a, b, c, d, e, f); ++ T1 = X[3] = PULL64(W[3]); ++ ROUND_00_15(3, f, g, h, a, b, c, d, e); ++ T1 = X[4] = PULL64(W[4]); ++ ROUND_00_15(4, e, f, g, h, a, b, c, d); ++ T1 = X[5] = PULL64(W[5]); ++ ROUND_00_15(5, d, e, f, g, h, a, b, c); ++ T1 = X[6] = PULL64(W[6]); ++ ROUND_00_15(6, c, d, e, f, g, h, a, b); ++ T1 = X[7] = PULL64(W[7]); ++ ROUND_00_15(7, b, c, d, e, f, g, h, a); ++ T1 = X[8] = PULL64(W[8]); ++ ROUND_00_15(8, a, b, c, d, e, f, g, h); ++ T1 = X[9] = PULL64(W[9]); ++ ROUND_00_15(9, h, a, b, c, d, e, f, g); ++ T1 = X[10] = PULL64(W[10]); ++ ROUND_00_15(10, g, h, a, b, c, d, e, f); ++ T1 = X[11] = PULL64(W[11]); ++ ROUND_00_15(11, f, g, h, a, b, c, d, e); ++ T1 = X[12] = PULL64(W[12]); ++ ROUND_00_15(12, e, f, g, h, a, b, c, d); ++ T1 = X[13] = PULL64(W[13]); ++ ROUND_00_15(13, d, e, f, g, h, a, b, c); ++ T1 = X[14] = PULL64(W[14]); ++ ROUND_00_15(14, c, d, e, f, g, h, a, b); ++ T1 = X[15] = PULL64(W[15]); ++ ROUND_00_15(15, b, c, d, e, f, g, h, a); ++ ++ for (i = 16; i < 80; i += 16) { ++ ROUND_16_80(i, 0, a, b, c, d, e, f, g, h, X); ++ ROUND_16_80(i, 1, h, a, b, c, d, e, f, g, X); ++ ROUND_16_80(i, 2, g, h, a, b, c, d, e, f, X); ++ ROUND_16_80(i, 3, f, g, h, a, b, c, d, e, X); ++ ROUND_16_80(i, 4, e, f, g, h, a, b, c, d, X); ++ ROUND_16_80(i, 5, d, e, f, g, h, a, b, c, X); ++ ROUND_16_80(i, 6, c, d, e, f, g, h, a, b, X); ++ ROUND_16_80(i, 7, b, c, d, e, f, g, h, a, X); ++ ROUND_16_80(i, 8, a, b, c, d, e, f, g, h, X); ++ ROUND_16_80(i, 9, h, a, b, c, d, e, f, g, X); ++ ROUND_16_80(i, 10, g, h, a, b, c, d, e, f, X); ++ ROUND_16_80(i, 11, f, g, h, a, b, c, d, e, X); ++ ROUND_16_80(i, 12, e, f, g, h, a, b, c, d, X); ++ ROUND_16_80(i, 13, d, e, f, g, h, a, b, c, X); ++ ROUND_16_80(i, 14, c, d, e, f, g, h, a, b, X); ++ ROUND_16_80(i, 15, b, c, d, e, f, g, h, a, X); ++ } ++ ++ ctx->h[0] += a; ++ ctx->h[1] += b; ++ ctx->h[2] += c; ++ ctx->h[3] += d; ++ ctx->h[4] += e; ++ ctx->h[5] += f; ++ ctx->h[6] += g; ++ ctx->h[7] += h; ++ ++ W += SHA_LBLOCK; ++ } ++} +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/sdiv_costs_1.c +@@ -0,0 +1,40 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O3" } */ ++/* { dg-require-effective-target arm_arch_v8a_ok } */ ++/* { dg-add-options arm_arch_v8a } */ ++ ++/* Both sdiv and udiv can be used here, so prefer udiv. */ ++int f1 (unsigned char *p) ++{ ++ return 100 / p[1]; ++} ++ ++int f2 (unsigned char *p, unsigned short x) ++{ ++ return x / p[0]; ++} ++ ++int f3 (unsigned char *p, int x) ++{ ++ x &= 0x7fffffff; ++ return x / p[0]; ++} ++ ++int f5 (unsigned char *p, unsigned short x) ++{ ++ return x % p[0]; ++} ++ ++/* This should only generate signed divisions. */ ++int f4 (unsigned char *p) ++{ ++ return -100 / p[1]; ++} ++ ++int f6 (unsigned char *p, short x) ++{ ++ return x % p[0]; ++} ++ ++/* { dg-final { scan-assembler-times "udiv\tr\[0-9\]+, r\[0-9\]+, r\[0-9\]+" 4 } } */ ++/* { dg-final { scan-assembler-times "sdiv\tr\[0-9\]+, r\[0-9\]+, r\[0-9\]+" 2 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/simd/vdot-compile.c +@@ -0,0 +1,56 @@ ++/* { dg-do compile } */ ++/* { dg-additional-options "-O3" } */ ++/* { dg-require-effective-target arm_v8_2a_dotprod_neon_ok } */ ++/* { dg-add-options arm_v8_2a_dotprod_neon } */ ++ ++#include ++ ++/* Unsigned Dot Product instructions. */ ++ ++uint32x2_t ufoo (uint32x2_t r, uint8x8_t x, uint8x8_t y) ++{ ++ return vdot_u32 (r, x, y); ++} ++ ++uint32x4_t ufooq (uint32x4_t r, uint8x16_t x, uint8x16_t y) ++{ ++ return vdotq_u32 (r, x, y); ++} ++ ++uint32x2_t ufoo_lane (uint32x2_t r, uint8x8_t x, uint8x8_t y) ++{ ++ return vdot_lane_u32 (r, x, y, 0); ++} ++ ++uint32x4_t ufooq_lane (uint32x4_t r, uint8x16_t x, uint8x8_t y) ++{ ++ return vdotq_lane_u32 (r, x, y, 0); ++} ++ ++/* Signed Dot Product instructions. */ ++ ++int32x2_t sfoo (int32x2_t r, int8x8_t x, int8x8_t y) ++{ ++ return vdot_s32 (r, x, y); ++} ++ ++int32x4_t sfooq (int32x4_t r, int8x16_t x, int8x16_t y) ++{ ++ return vdotq_s32 (r, x, y); ++} ++ ++int32x2_t sfoo_lane (int32x2_t r, int8x8_t x, int8x8_t y) ++{ ++ return vdot_lane_s32 (r, x, y, 0); ++} ++ ++int32x4_t sfooq_lane (int32x4_t r, int8x16_t x, int8x8_t y) ++{ ++ return vdotq_lane_s32 (r, x, y, 0); ++} ++ ++/* { dg-final { scan-assembler-times {v[us]dot\.[us]8\td[0-9]+, d[0-9]+, d[0-9]+} 4 } } */ ++/* { dg-final { scan-assembler-times {v[us]dot\.[us]8\tq[0-9]+, q[0-9]+, q[0-9]+} 2 } } */ ++/* { dg-final { scan-assembler-times {v[us]dot\.[us]8\td[0-9]+, d[0-9]+, d[0-9]+\[#?[0-9]\]} 2 } } */ ++/* { dg-final { scan-assembler-times {v[us]dot\.[us]8\tq[0-9]+, q[0-9]+, d[0-9]+\[#?[0-9]\]} 2 } } */ ++ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/simd/vdot-exec.c +@@ -0,0 +1,55 @@ ++/* { dg-do run } */ ++/* { dg-additional-options "-O3" } */ ++/* { dg-require-effective-target arm_v8_2a_dotprod_neon_hw } */ ++/* { dg-add-options arm_v8_2a_dotprod_neon } */ ++ ++#include ++ ++extern void abort(); ++ ++#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ ++# define ORDER(x, y) y ++#else ++# define ORDER(x, y) x - y ++#endif ++ ++#define P(n1,n2) n1,n1,n1,n1,n2,n2,n2,n2 ++#define ARR(nm, p, ty, ...) ty nm##_##p = { __VA_ARGS__ } ++#define TEST(t1, t2, t3, f, r1, r2, n1, n2) \ ++ ARR(f, x, t1, r1); \ ++ ARR(f, y, t2, r2); \ ++ t3 f##_##r = {0}; \ ++ f##_##r = f (f##_##r, f##_##x, f##_##y); \ ++ if (f##_##r[0] != n1 || f##_##r[1] != n2) \ ++ abort (); ++ ++#define TEST_LANE(t1, t2, t3, f, r1, r2, n1, n2, n3, n4) \ ++ ARR(f, x, t1, r1); \ ++ ARR(f, y, t2, r2); \ ++ t3 f##_##rx = {0}; \ ++ f##_##rx = f (f##_##rx, f##_##x, f##_##y, ORDER (1, 0)); \ ++ if (f##_##rx[0] != n1 || f##_##rx[1] != n2) \ ++ abort (); \ ++ t3 f##_##rx1 = {0}; \ ++ f##_##rx1 = f (f##_##rx1, f##_##x, f##_##y, ORDER (1, 1)); \ ++ if (f##_##rx1[0] != n3 || f##_##rx1[1] != n4) \ ++ abort (); \ ++ ++int ++main() ++{ ++ TEST (uint8x8_t, uint8x8_t, uint32x2_t, vdot_u32, P(1,2), P(2,3), 8, 24); ++ TEST (int8x8_t, int8x8_t, int32x2_t, vdot_s32, P(1,2), P(-2,-3), -8, -24); ++ ++ TEST (uint8x16_t, uint8x16_t, uint32x4_t, vdotq_u32, P(1,2), P(2,3), 8, 24); ++ TEST (int8x16_t, int8x16_t, int32x4_t, vdotq_s32, P(1,2), P(-2,-3), -8, -24); ++ ++ TEST_LANE (uint8x8_t, uint8x8_t, uint32x2_t, vdot_lane_u32, P(1,2), P(2,3), 8, 16, 12, 24); ++ ++ TEST_LANE (int8x8_t, int8x8_t, int32x2_t, vdot_lane_s32, P(1,2), P(-2,-3), -8, -16, -12, -24); ++ ++ TEST_LANE (uint8x16_t, uint8x8_t, uint32x4_t, vdotq_lane_u32, P(1,2), P(2,3), 8, 16, 12, 24); ++ TEST_LANE (int8x16_t, int8x8_t, int32x4_t, vdotq_lane_s32, P(1,2), P(-2,-3), -8, -16, -12, -24); ++ ++ return 0; ++} +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/simd/vect-dot-qi.h +@@ -0,0 +1,16 @@ ++TYPE char X[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))); ++TYPE char Y[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))); ++ ++__attribute__ ((noinline)) int ++foo1(int len) { ++ int i; ++ TYPE int result = 0; ++ TYPE short prod; ++ ++ for (i=0; i 1.1234f) ++ return 2.1234f; ++ else ++ return 3.1234f; ++} ++ ++double ++testdf (double *p) ++{ ++ if (*p > 4.1234) ++ return 2.1234; ++ else ++ return 3.1234; ++} ++ ++long long ++testll (long long *p) ++{ ++ if (*p > 0x123456789ABCDEFll) ++ return 0x111111111ll; ++ else ++ return 0x222222222ll; ++} ++ ++char * ++testchar () ++{ ++ return p + 4; ++} ++ ++int ++foo (int a, int b) ++{ ++ int i; ++ volatile int *labelref = &&label1; ++ ++ if (a > b) ++ { ++ while (i < b) ++ { ++ a += *labelref; ++ i += 1; ++ } ++ goto *labelref; ++ } ++ else ++ b = b + 3; ++ ++ a = a * b; ++ ++label1: ++ return a + b; ++} ++ ++/* { dg-final { scan-assembler-not "\\.(float|l\\?double|\d?byte|short|int|long|quad|word)\\s+\[^.\]" } } */ +--- a/src/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data.c ++++ b/src//dev/null +@@ -1,73 +0,0 @@ +-/* The option -mslow-flash-data is just for performance tuning, it +- doesn't totally disable the use of literal pools. But for below +- simple cases, the use of literal pool should be replaced by +- movw/movt or read-only constant pool. */ +- +-/* { dg-do compile } */ +-/* { dg-require-effective-target arm_cortex_m } */ +-/* { dg-require-effective-target arm_thumb2_ok } */ +-/* { dg-options "-O2 -mthumb -mslow-flash-data" } */ +- +-float sf; +-double df; +-long long l; +-static char *p = "Hello World"; +- +-float +-testsf (float *p) +-{ +- if (*p > 1.1234f) +- return 2.1234f; +- else +- return 3.1234f; +-} +- +-double +-testdf (double *p) +-{ +- if (*p > 4.1234) +- return 2.1234; +- else +- return 3.1234; +-} +- +-long long +-testll (long long *p) +-{ +- if (*p > 0x123456789ABCDEFll) +- return 0x111111111ll; +- else +- return 0x222222222ll; +-} +- +-char * +-testchar () +-{ +- return p + 4; +-} +- +-int +-foo (int a, int b) +-{ +- int i; +- volatile int *labelref = &&label1; +- +- if (a > b) +- { +- while (i < b) +- { +- a += *labelref; +- i += 1; +- } +- goto *labelref; +- } +- else +- b = b + 3; +- +- a = a * b; +- +-label1: +- return a + b; +-} +- +-/* { dg-final { scan-assembler-not "\\.(float|l\\?double|\d?byte|short|int|long|quad|word)\\s+\[^.\]" } } */ +--- a/src/gcc/testsuite/gcc.target/i386/pr48723.c ++++ b/src/gcc/testsuite/gcc.target/i386/pr48723.c +@@ -1,4 +1,5 @@ + /* { dg-do compile } */ ++/* { dg-require-stack-check "" } */ + /* { dg-options "-fstack-check -mavx" } */ + + struct S0 +--- a/src/gcc/testsuite/gcc.target/i386/pr55672.c ++++ b/src/gcc/testsuite/gcc.target/i386/pr55672.c +@@ -1,4 +1,5 @@ + /* { dg-do compile } */ ++/* { dg-require-stack-check "generic" } */ + /* { dg-options "-O -fstack-check=generic" } */ + + int main () +--- a/src/gcc/testsuite/gcc.target/i386/pr67265-2.c ++++ b/src/gcc/testsuite/gcc.target/i386/pr67265-2.c +@@ -1,4 +1,5 @@ + /* { dg-do compile } */ ++/* { dg-require-stack-check "" } */ + /* { dg-options "-O -fstack-check" } */ + + void foo (int n) +--- a/src/gcc/testsuite/gcc.target/i386/pr67265.c ++++ b/src/gcc/testsuite/gcc.target/i386/pr67265.c +@@ -2,6 +2,7 @@ + /* Reduced testcase by Johannes Dewender */ + + /* { dg-do compile } */ ++/* { dg-require-stack-check "" } */ + /* { dg-options "-O -fstack-check -fPIC" } */ + + int a, b, c, d, e; +--- a/src/gcc/testsuite/gnat.dg/opt49.adb ++++ b/src/gcc/testsuite/gnat.dg/opt49.adb +@@ -1,4 +1,5 @@ + -- { dg-do run } ++-- { dg-require-stack-check "" } + -- { dg-options "-O -fstack-check" } + + procedure Opt49 is +--- a/src/gcc/testsuite/gnat.dg/stack_check1.adb ++++ b/src/gcc/testsuite/gnat.dg/stack_check1.adb +@@ -1,4 +1,5 @@ + -- { dg-do run } ++-- { dg-require-stack-check "" } + -- { dg-options "-fstack-check" } + + -- This test requires architecture- and OS-specific support code for unwinding +--- a/src/gcc/testsuite/gnat.dg/stack_check2.adb ++++ b/src/gcc/testsuite/gnat.dg/stack_check2.adb +@@ -1,4 +1,5 @@ + -- { dg-do run } ++-- { dg-require-stack-check "" } + -- { dg-options "-fstack-check" } + + -- This test requires architecture- and OS-specific support code for unwinding +--- a/src/gcc/testsuite/gnat.dg/stack_check3.adb ++++ b/src/gcc/testsuite/gnat.dg/stack_check3.adb +@@ -1,4 +1,5 @@ + -- { dg-do compile } ++-- { dg-require-stack-check "" } + -- { dg-options "-O -fstack-check" } + + package body Stack_Check3 is +--- a/src/gcc/testsuite/lib/target-supports-dg.exp ++++ b/src/gcc/testsuite/lib/target-supports-dg.exp +@@ -265,6 +265,21 @@ proc dg-require-linker-plugin { args } { + } + } + ++# If this target does not support the "stack-check" option, skip this ++# test. ++ ++proc dg-require-stack-check { args } { ++ set stack_check_available [ check_stack_check_available [lindex $args 1 ] ] ++ if { $stack_check_available == -1 } { ++ upvar name name ++ unresolved "$name" ++ } ++ if { $stack_check_available != 1 } { ++ upvar dg-do-what dg-do-what ++ set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] ++ } ++} ++ + # Add any target-specific flags needed for accessing the given list + # of features. This must come after all dg-options. + +--- a/src/gcc/testsuite/lib/target-supports.exp ++++ b/src/gcc/testsuite/lib/target-supports.exp +@@ -1029,6 +1029,17 @@ proc check_effective_target_fstack_protector {} { + } "-fstack-protector"] + } + ++# Return 1 if the target supports -fstack-check or -fstack-check=$stack_kind ++proc check_stack_check_available { stack_kind } { ++ if [string match "" $stack_kind] then { ++ set stack_opt "-fstack-check" ++ } else { set stack_opt "-fstack-check=$stack_kind" } ++ ++ return [check_no_compiler_messages stack_check_$stack_kind executable { ++ int main (void) { return 0; } ++ } "$stack_opt"] ++} ++ + # Return 1 if compilation with -freorder-blocks-and-partition is error-free + # for trivial code, 0 otherwise. As some targets (ARM for example) only + # warn when -fprofile-use is also supplied we test that combination too. +@@ -3365,7 +3376,7 @@ proc add_options_for_arm_v8_1a_neon { flags } { + return "$flags" + } + global et_arm_v8_1a_neon_flags +- return "$flags $et_arm_v8_1a_neon_flags -march=armv8.1-a" ++ return "$flags $et_arm_v8_1a_neon_flags" + } + + # Add the options needed for ARMv8.2 with the scalar FP16 extension. +@@ -3802,12 +3813,13 @@ proc check_effective_target_arm_fp16_hw { } { + # can be selected and a routine to give the flags to select that architecture + # Note: Extra flags may be added to disable options from newer compilers + # (Thumb in particular - but others may be added in the future). +-# -march=armv7ve is special and is handled explicitly after this loop because +-# it needs more than one predefine check to identify. ++# Warning: Do not use check_effective_target_arm_arch_*_ok for architecture ++# extension (eg. ARMv8.1-A) since there is no macro defined for them. See ++# how only __ARM_ARCH_8A__ is checked for ARMv8.1-A. + # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */ + # /* { dg-add-options arm_arch_v5 } */ + # /* { dg-require-effective-target arm_arch_v5_multilib } */ +-foreach { armfunc armflag armdef } { ++foreach { armfunc armflag armdefs } { + v4 "-march=armv4 -marm" __ARM_ARCH_4__ + v4t "-march=armv4t" __ARM_ARCH_4T__ + v5 "-march=armv5 -marm" __ARM_ARCH_5__ +@@ -3822,20 +3834,23 @@ foreach { armfunc armflag armdef } { + v7r "-march=armv7-r" __ARM_ARCH_7R__ + v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__ + v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__ ++ v7ve "-march=armv7ve -marm" ++ "__ARM_ARCH_7A__ && __ARM_FEATURE_IDIV" + v8a "-march=armv8-a" __ARM_ARCH_8A__ + v8_1a "-march=armv8.1a" __ARM_ARCH_8A__ + v8_2a "-march=armv8.2a" __ARM_ARCH_8A__ +- v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__ ++ v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" ++ __ARM_ARCH_8M_BASE__ + v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } { +- eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] { ++ eval [string map [list FUNC $armfunc FLAG $armflag DEFS $armdefs ] { + proc check_effective_target_arm_arch_FUNC_ok { } { + if { [ string match "*-marm*" "FLAG" ] && + ![check_effective_target_arm_arm_ok] } { + return 0 + } + return [check_no_compiler_messages arm_arch_FUNC_ok assembly { +- #if !defined (DEF) +- #error !DEF ++ #if !(DEFS) ++ #error !(DEFS) + #endif + } "FLAG" ] + } +@@ -3856,26 +3871,6 @@ foreach { armfunc armflag armdef } { + }] + } + +-# Same functions as above but for -march=armv7ve. To uniquely identify +-# -march=armv7ve we need to check for __ARM_ARCH_7A__ as well as +-# __ARM_FEATURE_IDIV otherwise it aliases with armv7-a. +- +-proc check_effective_target_arm_arch_v7ve_ok { } { +- if { [ string match "*-marm*" "-march=armv7ve" ] && +- ![check_effective_target_arm_arm_ok] } { +- return 0 +- } +- return [check_no_compiler_messages arm_arch_v7ve_ok assembly { +- #if !defined (__ARM_ARCH_7A__) || !defined (__ARM_FEATURE_IDIV) +- #error !armv7ve +- #endif +- } "-march=armv7ve" ] +-} +- +-proc add_options_for_arm_arch_v7ve { flags } { +- return "$flags -march=armv7ve" +-} +- + # Return 1 if GCC was configured with --with-mode= + proc check_effective_target_default_mode { } { + +@@ -4071,13 +4066,15 @@ proc check_effective_target_arm_v8_1a_neon_ok_nocache { } { + # since AArch64 only needs the -march setting. + foreach flags {"" "-mfpu=neon-fp-armv8" "-mfloat-abi=softfp" \ + "-mfpu=neon-fp-armv8 -mfloat-abi=softfp"} { +- if { [check_no_compiler_messages_nocache arm_v8_1a_neon_ok object { +- #if !defined (__ARM_FEATURE_QRDMX) +- #error "__ARM_FEATURE_QRDMX not defined" +- #endif +- } "$flags -march=armv8.1-a"] } { +- set et_arm_v8_1a_neon_flags "$flags -march=armv8.1-a" +- return 1 ++ foreach arches { "-march=armv8-a+rdma" "-march=armv8.1-a" } { ++ if { [check_no_compiler_messages_nocache arm_v8_1a_neon_ok object { ++ #if !defined (__ARM_FEATURE_QRDMX) ++ #error "__ARM_FEATURE_QRDMX not defined" ++ #endif ++ } "$flags $arches"] } { ++ set et_arm_v8_1a_neon_flags "$flags $arches" ++ return 1 ++ } + } + } + +@@ -4159,6 +4156,51 @@ proc check_effective_target_arm_v8_2a_fp16_neon_ok { } { + check_effective_target_arm_v8_2a_fp16_neon_ok_nocache] + } + ++# Return 1 if the target supports ARMv8.2 Adv.SIMD Dot Product ++# instructions, 0 otherwise. The test is valid for ARM and for AArch64. ++# Record the command line options needed. ++ ++proc check_effective_target_arm_v8_2a_dotprod_neon_ok_nocache { } { ++ global et_arm_v8_2a_dotprod_neon_flags ++ set et_arm_v8_2a_dotprod_neon_flags "" ++ ++ if { ![istarget arm*-*-*] && ![istarget aarch64*-*-*] } { ++ return 0; ++ } ++ ++ # Iterate through sets of options to find the compiler flags that ++ # need to be added to the -march option. ++ foreach flags {"" "-mfloat-abi=softfp -mfpu=neon-fp-armv8" "-mfloat-abi=hard -mfpu=neon-fp-armv8"} { ++ if { [check_no_compiler_messages_nocache \ ++ arm_v8_2a_dotprod_neon_ok object { ++ #if !defined (__ARM_FEATURE_DOTPROD) ++ #error "__ARM_FEATURE_DOTPROD not defined" ++ #else ++ /* Make sure including arm_neon.h is OK. */ ++ #include ++ #endif ++ } "$flags -march=armv8.2-a+dotprod"] } { ++ set et_arm_v8_2a_dotprod_neon_flags "$flags -march=armv8.2-a+dotprod" ++ return 1 ++ } ++ } ++ ++ return 0; ++} ++ ++proc check_effective_target_arm_v8_2a_dotprod_neon_ok { } { ++ return [check_cached_effective_target arm_v8_2a_dotprod_neon_ok \ ++ check_effective_target_arm_v8_2a_dotprod_neon_ok_nocache] ++} ++ ++proc add_options_for_arm_v8_2a_dotprod_neon { flags } { ++ if { ! [check_effective_target_arm_v8_2a_dotprod_neon_ok] } { ++ return "$flags" ++ } ++ global et_arm_v8_2a_dotprod_neon_flags ++ return "$flags $et_arm_v8_2a_dotprod_neon_flags" ++} ++ + # Return 1 if the target supports executing ARMv8 NEON instructions, 0 + # otherwise. + +@@ -4296,6 +4338,42 @@ proc check_effective_target_arm_v8_2a_fp16_neon_hw { } { + } [add_options_for_arm_v8_2a_fp16_neon ""]] + } + ++# Return 1 if the target supports executing AdvSIMD instructions from ARMv8.2 ++# with the Dot Product extension, 0 otherwise. The test is valid for ARM and for ++# AArch64. ++ ++proc check_effective_target_arm_v8_2a_dotprod_neon_hw { } { ++ if { ![check_effective_target_arm_v8_2a_dotprod_neon_ok] } { ++ return 0; ++ } ++ return [check_runtime arm_v8_2a_dotprod_neon_hw_available { ++ #include "arm_neon.h" ++ int ++ main (void) ++ { ++ ++ uint32x2_t results = {0,0}; ++ uint8x8_t a = {1,1,1,1,2,2,2,2}; ++ uint8x8_t b = {2,2,2,2,3,3,3,3}; ++ ++ #ifdef __ARM_ARCH_ISA_A64 ++ asm ("udot %0.2s, %1.8b, %2.8b" ++ : "=w"(results) ++ : "w"(a), "w"(b) ++ : /* No clobbers. */); ++ ++ #else ++ asm ("vudot.u8 %P0, %P1, %P2" ++ : "=w"(results) ++ : "w"(a), "w"(b) ++ : /* No clobbers. */); ++ #endif ++ ++ return (results[0] == 8 && results[1] == 24) ? 1 : 0; ++ } ++ } [add_options_for_arm_v8_2a_dotprod_neon ""]] ++} ++ + # Return 1 if this is a ARM target with NEON enabled. + + proc check_effective_target_arm_neon { } { +@@ -5566,6 +5644,8 @@ proc check_effective_target_vect_sdot_qi { } { + } else { + set et_vect_sdot_qi_saved($et_index) 0 + if { [istarget ia64-*-*] ++ || [istarget aarch64*-*-*] ++ || [istarget arm*-*-*] + || ([istarget mips*-*-*] + && [et-is-effective-target mips_msa]) } { + set et_vect_udot_qi_saved 1 +@@ -5590,6 +5670,8 @@ proc check_effective_target_vect_udot_qi { } { + } else { + set et_vect_udot_qi_saved($et_index) 0 + if { [istarget powerpc*-*-*] ++ || [istarget aarch64*-*-*] ++ || [istarget arm*-*-*] + || [istarget ia64-*-*] + || ([istarget mips*-*-*] + && [et-is-effective-target mips_msa]) } { +@@ -7900,7 +7982,7 @@ proc check_effective_target_aarch64_tiny { } { + # Create functions to check that the AArch64 assembler supports the + # various architecture extensions via the .arch_extension pseudo-op. + +-foreach { aarch64_ext } { "fp" "simd" "crypto" "crc" "lse"} { ++foreach { aarch64_ext } { "fp" "simd" "crypto" "crc" "lse" "dotprod"} { + eval [string map [list FUNC $aarch64_ext] { + proc check_effective_target_aarch64_asm_FUNC_ok { } { + if { [istarget aarch64*-*-*] } { +--- a/src/gcc/tree-ssa-dce.c ++++ b/src/gcc/tree-ssa-dce.c +@@ -233,6 +233,8 @@ mark_stmt_if_obviously_necessary (gimple *stmt, bool aggressive) + case BUILT_IN_CALLOC: + case BUILT_IN_ALLOCA: + case BUILT_IN_ALLOCA_WITH_ALIGN: ++ case BUILT_IN_STRDUP: ++ case BUILT_IN_STRNDUP: + return; + + default:; +--- a/src/gcc/tree-ssa-loop-prefetch.c ++++ b/src/gcc/tree-ssa-loop-prefetch.c +@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see + #include "tree-inline.h" + #include "tree-data-ref.h" + #include "diagnostic-core.h" ++#include "dbgcnt.h" + + /* This pass inserts prefetch instructions to optimize cache usage during + accesses to arrays in loops. It processes loops sequentially and: +@@ -227,6 +228,7 @@ struct mem_ref_group + tree step; /* Step of the reference. */ + struct mem_ref *refs; /* References in the group. */ + struct mem_ref_group *next; /* Next group of references. */ ++ unsigned int uid; /* Group UID, used only for debugging. */ + }; + + /* Assigned to PREFETCH_BEFORE when all iterations are to be prefetched. */ +@@ -269,6 +271,7 @@ struct mem_ref + unsigned reuse_distance; /* The amount of data accessed before the first + reuse of this value. */ + struct mem_ref *next; /* The next reference in the group. */ ++ unsigned int uid; /* Ref UID, used only for debugging. */ + unsigned write_p : 1; /* Is it a write? */ + unsigned independent_p : 1; /* True if the reference is independent on + all other references inside the loop. */ +@@ -290,11 +293,8 @@ dump_mem_details (FILE *file, tree base, tree step, + else + print_generic_expr (file, step, TDF_TREE); + fprintf (file, ")\n"); +- fprintf (file, " delta "); +- fprintf (file, HOST_WIDE_INT_PRINT_DEC, delta); +- fprintf (file, "\n"); +- fprintf (file, " %s\n", write_p ? "write" : "read"); +- fprintf (file, "\n"); ++ fprintf (file, " delta " HOST_WIDE_INT_PRINT_DEC "\n", delta); ++ fprintf (file, " %s\n\n", write_p ? "write" : "read"); + } + + /* Dumps information about reference REF to FILE. */ +@@ -302,12 +302,9 @@ dump_mem_details (FILE *file, tree base, tree step, + static void + dump_mem_ref (FILE *file, struct mem_ref *ref) + { +- fprintf (file, "Reference %p:\n", (void *) ref); +- +- fprintf (file, " group %p ", (void *) ref->group); +- +- dump_mem_details (file, ref->group->base, ref->group->step, ref->delta, +- ref->write_p); ++ fprintf (file, "reference %u:%u (", ref->group->uid, ref->uid); ++ print_generic_expr (file, ref->mem, TDF_SLIM); ++ fprintf (file, ")\n"); + } + + /* Finds a group with BASE and STEP in GROUPS, or creates one if it does not +@@ -316,6 +313,9 @@ dump_mem_ref (FILE *file, struct mem_ref *ref) + static struct mem_ref_group * + find_or_create_group (struct mem_ref_group **groups, tree base, tree step) + { ++ /* Global count for setting struct mem_ref_group->uid. */ ++ static unsigned int last_mem_ref_group_uid = 0; ++ + struct mem_ref_group *group; + + for (; *groups; groups = &(*groups)->next) +@@ -335,6 +335,7 @@ find_or_create_group (struct mem_ref_group **groups, tree base, tree step) + group->base = base; + group->step = step; + group->refs = NULL; ++ group->uid = ++last_mem_ref_group_uid; + group->next = *groups; + *groups = group; + +@@ -348,11 +349,14 @@ static void + record_ref (struct mem_ref_group *group, gimple *stmt, tree mem, + HOST_WIDE_INT delta, bool write_p) + { ++ unsigned int last_mem_ref_uid = 0; + struct mem_ref **aref; + + /* Do not record the same address twice. */ + for (aref = &group->refs; *aref; aref = &(*aref)->next) + { ++ last_mem_ref_uid = (*aref)->uid; ++ + /* It does not have to be possible for write reference to reuse the read + prefetch, or vice versa. */ + if (!WRITE_CAN_USE_READ_PREFETCH +@@ -381,9 +385,16 @@ record_ref (struct mem_ref_group *group, gimple *stmt, tree mem, + (*aref)->next = NULL; + (*aref)->independent_p = false; + (*aref)->storent_p = false; ++ (*aref)->uid = last_mem_ref_uid + 1; + + if (dump_file && (dump_flags & TDF_DETAILS)) +- dump_mem_ref (dump_file, *aref); ++ { ++ dump_mem_ref (dump_file, *aref); ++ ++ fprintf (dump_file, " group %u ", group->uid); ++ dump_mem_details (dump_file, group->base, group->step, delta, ++ write_p); ++ } + } + + /* Release memory references in GROUPS. */ +@@ -938,7 +949,7 @@ prune_group_by_reuse (struct mem_ref_group *group) + + if (dump_file && (dump_flags & TDF_DETAILS)) + { +- fprintf (dump_file, "Reference %p:", (void *) ref_pruned); ++ dump_mem_ref (dump_file, ref_pruned); + + if (ref_pruned->prefetch_before == PREFETCH_ALL + && ref_pruned->prefetch_mod == 1) +@@ -986,8 +997,8 @@ should_issue_prefetch_p (struct mem_ref *ref) + if (ref->prefetch_before != PREFETCH_ALL) + { + if (dump_file && (dump_flags & TDF_DETAILS)) +- fprintf (dump_file, "Ignoring %p due to prefetch_before\n", +- (void *) ref); ++ fprintf (dump_file, "Ignoring reference %u:%u due to prefetch_before\n", ++ ref->group->uid, ref->uid); + return false; + } + +@@ -995,7 +1006,7 @@ should_issue_prefetch_p (struct mem_ref *ref) + if (ref->storent_p) + { + if (dump_file && (dump_flags & TDF_DETAILS)) +- fprintf (dump_file, "Ignoring nontemporal store %p\n", (void *) ref); ++ fprintf (dump_file, "Ignoring nontemporal store reference %u:%u\n", ref->group->uid, ref->uid); + return false; + } + +@@ -1058,7 +1069,14 @@ schedule_prefetches (struct mem_ref_group *groups, unsigned unroll_factor, + if (2 * remaining_prefetch_slots < prefetch_slots) + continue; + ++ /* Stop prefetching if debug counter is activated. */ ++ if (!dbg_cnt (prefetch)) ++ continue; ++ + ref->issue_prefetch_p = true; ++ if (dump_file && (dump_flags & TDF_DETAILS)) ++ fprintf (dump_file, "Decided to issue prefetch for reference %u:%u\n", ++ ref->group->uid, ref->uid); + + if (remaining_prefetch_slots <= prefetch_slots) + return true; +@@ -1122,9 +1140,9 @@ issue_prefetch_ref (struct mem_ref *ref, unsigned unroll_factor, unsigned ahead) + bool nontemporal = ref->reuse_distance >= L2_CACHE_SIZE_BYTES; + + if (dump_file && (dump_flags & TDF_DETAILS)) +- fprintf (dump_file, "Issued%s prefetch for %p.\n", ++ fprintf (dump_file, "Issued%s prefetch for reference %u:%u.\n", + nontemporal ? " nontemporal" : "", +- (void *) ref); ++ ref->group->uid, ref->uid); + + bsi = gsi_for_stmt (ref->stmt); + +@@ -1144,8 +1162,8 @@ issue_prefetch_ref (struct mem_ref *ref, unsigned unroll_factor, unsigned ahead) + delta = (ahead + ap * ref->prefetch_mod) * + int_cst_value (ref->group->step); + addr = fold_build_pointer_plus_hwi (addr_base, delta); +- addr = force_gimple_operand_gsi (&bsi, unshare_expr (addr), true, NULL, +- true, GSI_SAME_STMT); ++ addr = force_gimple_operand_gsi (&bsi, unshare_expr (addr), true, ++ NULL, true, GSI_SAME_STMT); + } + else + { +@@ -1229,8 +1247,8 @@ mark_nontemporal_store (struct mem_ref *ref) + return false; + + if (dump_file && (dump_flags & TDF_DETAILS)) +- fprintf (dump_file, "Marked reference %p as a nontemporal store.\n", +- (void *) ref); ++ fprintf (dump_file, "Marked reference %u:%u as a nontemporal store.\n", ++ ref->group->uid, ref->uid); + + gimple_assign_set_nontemporal_move (ref->stmt, true); + ref->storent_p = true; +@@ -1340,7 +1358,7 @@ should_unroll_loop_p (struct loop *loop, struct tree_niter_desc *desc, + + /* Determine the coefficient by that unroll LOOP, from the information + contained in the list of memory references REFS. Description of +- umber of iterations of LOOP is stored to DESC. NINSNS is the number of ++ number of iterations of LOOP is stored to DESC. NINSNS is the number of + insns of the LOOP. EST_NITER is the estimated number of iterations of + the loop, or -1 if no estimate is available. */ + +@@ -1715,8 +1733,8 @@ determine_loop_nest_reuse (struct loop *loop, struct mem_ref_group *refs, + fprintf (dump_file, "Reuse distances:\n"); + for (gr = refs; gr; gr = gr->next) + for (ref = gr->refs; ref; ref = ref->next) +- fprintf (dump_file, " ref %p distance %u\n", +- (void *) ref, ref->reuse_distance); ++ fprintf (dump_file, " reference %u:%u distance %u\n", ++ ref->group->uid, ref->uid, ref->reuse_distance); + } + + return true; +--- a/src/libgcc/config.host ++++ b/src/libgcc/config.host +@@ -231,6 +231,10 @@ case ${host} in + ;; + esac + ;; ++*-*-fuchsia*) ++ tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia" ++ extra_parts="crtbegin.o crtend.o" ++ ;; + *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) + tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux" + extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" +@@ -343,6 +347,10 @@ aarch64*-*-freebsd*) + tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm" + md_unwind_header=aarch64/freebsd-unwind.h + ;; ++aarch64*-*-fuchsia*) ++ tmake_file="${tmake_file} ${cpu_type}/t-aarch64" ++ tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp" ++ ;; + aarch64*-*-linux*) + extra_parts="$extra_parts crtfastmath.o" + md_unwind_header=aarch64/linux-unwind.h +@@ -395,6 +403,12 @@ arm*-*-freebsd*) # ARM FreeBSD EABI + unwind_header=config/arm/unwind-arm.h + tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + ;; ++arm*-*-fuchsia*) ++ tmake_file="${tmake_file} arm/t-arm arm/t-elf arm/t-bpabi" ++ tmake_file="${tmake_file} arm/tsoftfp t-softfp" ++ tm_file="${tm_file} arm/bpabi-lib.h" ++ unwind_header=config/arm/unwind-arm.h ++ ;; + arm*-*-netbsdelf*) + tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover" + ;; +@@ -589,6 +603,9 @@ i[34567]86-*-elf*) + x86_64-*-elf* | x86_64-*-rtems*) + tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" + ;; ++x86_64-*-fuchsia*) ++ tmake_file="$tmake_file t-libgcc-pic" ++ ;; + i[34567]86-*-dragonfly*) + tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff" + md_unwind_header=i386/dragonfly-unwind.h +--- a/src/libgcc/config/arm/unwind-arm.h ++++ b/src/libgcc/config/arm/unwind-arm.h +@@ -49,7 +49,7 @@ extern "C" { + return 0; + + #if (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__) \ +- || defined(__FreeBSD__) ++ || defined(__FreeBSD__) || defined(__fuchsia__) + /* Pc-relative indirect. */ + #define _GLIBCXX_OVERRIDE_TTYPE_ENCODING (DW_EH_PE_pcrel | DW_EH_PE_indirect) + tmp += ptr; +--- /dev/null ++++ b/src/libgcc/config/t-slibgcc-fuchsia +@@ -0,0 +1,44 @@ ++# Copyright (C) 2017 Free Software Foundation, Inc. ++# ++# This file is part of GCC. ++# ++# GCC is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3, or (at your option) ++# any later version. ++# ++# GCC is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GCC; see the file COPYING3. If not see ++# . ++ ++# Fuchsia-specific shared library overrides. ++ ++SHLIB_LDFLAGS = -Wl,--soname=$(SHLIB_SONAME) \ ++ $(LDFLAGS) ++# Copyright (C) 2017 Free Software Foundation, Inc. ++# ++# This file is part of GCC. ++# ++# GCC is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3, or (at your option) ++# any later version. ++# ++# GCC is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GCC; see the file COPYING3. If not see ++# . ++ ++# Fuchsia-specific shared library overrides. ++ ++SHLIB_LDFLAGS = -Wl,--soname=$(SHLIB_SONAME) \ ++ $(LDFLAGS) +--- /dev/null ++++ b/src/libstdc++-v3/config/cpu/aarch64/opt/bits/opt_random.h +@@ -0,0 +1,47 @@ ++// Optimizations for random number functions, aarch64 version -*- C++ -*- ++ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// Under Section 7 of GPL version 3, you are granted additional ++// permissions described in the GCC Runtime Library Exception, version ++// 3.1, as published by the Free Software Foundation. ++ ++// You should have received a copy of the GNU General Public License and ++// a copy of the GCC Runtime Library Exception along with this program; ++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++// . ++ ++/** @file bits/opt_random.h ++ * This is an internal header file, included by other library headers. ++ * Do not attempt to use it directly. @headername{random} ++ */ ++ ++#ifndef _BITS_OPT_RANDOM_H ++#define _BITS_OPT_RANDOM_H 1 ++ ++#pragma GCC system_header ++ ++ ++namespace std _GLIBCXX_VISIBILITY (default) ++{ ++_GLIBCXX_BEGIN_NAMESPACE_VERSION ++ ++ ++ ++ ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace ++ ++ ++#endif // _BITS_OPT_RANDOM_H +--- /dev/null ++++ b/src/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h +@@ -0,0 +1,180 @@ ++// Optimizations for random number extensions, aarch64 version -*- C++ -*- ++ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// Under Section 7 of GPL version 3, you are granted additional ++// permissions described in the GCC Runtime Library Exception, version ++// 3.1, as published by the Free Software Foundation. ++ ++// You should have received a copy of the GNU General Public License and ++// a copy of the GCC Runtime Library Exception along with this program; ++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++// . ++ ++/** @file ext/random.tcc ++ * This is an internal header file, included by other library headers. ++ * Do not attempt to use it directly. @headername{ext/random} ++ */ ++ ++#ifndef _EXT_OPT_RANDOM_H ++#define _EXT_OPT_RANDOM_H 1 ++ ++#pragma GCC system_header ++ ++#ifdef __ARM_NEON ++ ++#ifdef __AARCH64EB__ ++# define __VEXT(_A,_B,_C) __builtin_shuffle (_A, _B, (__Uint8x16_t) \ ++ {16-_C, 17-_C, 18-_C, 19-_C, 20-_C, 21-_C, 22-_C, 23-_C, \ ++ 24-_C, 25-_C, 26-_C, 27-_C, 28-_C, 29-_C, 30-_C, 31-_C}) ++#else ++# define __VEXT(_A,_B,_C) __builtin_shuffle (_B, _A, (__Uint8x16_t) \ ++ {_C, _C+1, _C+2, _C+3, _C+4, _C+5, _C+6, _C+7, \ ++ _C+8, _C+9, _C+10, _C+11, _C+12, _C+13, _C+14, _C+15}) ++#endif ++ ++namespace __gnu_cxx _GLIBCXX_VISIBILITY (default) ++{ ++_GLIBCXX_BEGIN_NAMESPACE_VERSION ++ ++ namespace { ++ // Logical Shift right 128-bits by c * 8 bits ++ ++ __extension__ extern __inline __Uint32x4_t ++ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++ __aarch64_lsr_128 (__Uint8x16_t __a, __const int __c) ++ { ++ const __Uint8x16_t __zero = {0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0}; ++ ++ return (__Uint32x4_t) __VEXT (__zero, __a, __c); ++ } ++ ++ // Logical Shift left 128-bits by c * 8 bits ++ ++ __extension__ extern __inline __Uint32x4_t ++ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++ __aarch64_lsl_128 (__Uint8x16_t __a, __const int __c) ++ { ++ const __Uint8x16_t __zero = {0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0}; ++ ++ return (__Uint32x4_t) __VEXT (__a, __zero, 16 - __c); ++ } ++ ++ template ++ inline __Uint32x4_t __aarch64_recursion (__Uint32x4_t __a, ++ __Uint32x4_t __b, ++ __Uint32x4_t __c, ++ __Uint32x4_t __d, ++ __Uint32x4_t __e) ++ { ++ __Uint32x4_t __y = (__b >> __sr1); ++ __Uint32x4_t __z = __aarch64_lsr_128 ((__Uint8x16_t) __c, __sr2); ++ ++ __Uint32x4_t __v = __d << __sl1; ++ ++ __z = __z ^ __a; ++ __z = __z ^ __v; ++ ++ __Uint32x4_t __x = __aarch64_lsl_128 ((__Uint8x16_t) __a, __sl2); ++ ++ __y = __y & __e; ++ __z = __z ^ __x; ++ return __z ^ __y; ++ } ++} ++ ++#define _GLIBCXX_OPT_HAVE_RANDOM_SFMT_GEN_READ 1 ++ template ++ void simd_fast_mersenne_twister_engine<_UIntType, __m, ++ __pos1, __sl1, __sl2, __sr1, __sr2, ++ __msk1, __msk2, __msk3, __msk4, ++ __parity1, __parity2, __parity3, ++ __parity4>:: ++ _M_gen_rand (void) ++ { ++ __Uint32x4_t __r1 = _M_state[_M_nstate - 2]; ++ __Uint32x4_t __r2 = _M_state[_M_nstate - 1]; ++ ++ __Uint32x4_t __aData = {__msk1, __msk2, __msk3, __msk4}; ++ ++ size_t __i; ++ for (__i = 0; __i < _M_nstate - __pos1; ++__i) ++ { ++ __Uint32x4_t __r = __aarch64_recursion<__sl1, __sl2, __sr1, __sr2> ++ (_M_state[__i], _M_state[__i + __pos1], __r1, __r2, __aData); ++ ++ _M_state[__i] = __r; ++ ++ __r1 = __r2; ++ __r2 = __r; ++ } ++ for (; __i < _M_nstate; ++__i) ++ { ++ __Uint32x4_t __r = __aarch64_recursion<__sl1, __sl2, __sr1, __sr2> ++ (_M_state[__i], _M_state[__i + __pos1 - _M_nstate], __r1, __r2, ++ __aData); ++ ++ _M_state[__i] = __r; ++ ++ __r1 = __r2; ++ __r2 = __r; ++ } ++ ++ _M_pos = 0; ++ } ++ ++ ++#define _GLIBCXX_OPT_HAVE_RANDOM_SFMT_OPERATOREQUAL 1 ++ template ++ bool ++ operator==(const __gnu_cxx::simd_fast_mersenne_twister_engine<_UIntType, ++ __m, __pos1, __sl1, __sl2, __sr1, __sr2, ++ __msk1, __msk2, __msk3, __msk4, ++ __parity1, __parity2, __parity3, __parity4>& __lhs, ++ const __gnu_cxx::simd_fast_mersenne_twister_engine<_UIntType, ++ __m, __pos1, __sl1, __sl2, __sr1, __sr2, ++ __msk1, __msk2, __msk3, __msk4, ++ __parity1, __parity2, __parity3, __parity4>& __rhs) ++ { ++ if (__lhs._M_pos != __rhs._M_pos) ++ return false; ++ ++ __Uint32x4_t __res = __lhs._M_state[0] ^ __rhs._M_state[0]; ++ ++ for (size_t __i = 1; __i < __lhs._M_nstate; ++__i) ++ __res |= __lhs._M_state[__i] ^ __rhs._M_state[__i]; ++ ++ return (__int128) __res == 0; ++ } ++ ++_GLIBCXX_END_NAMESPACE_VERSION ++ } // namespace ++ ++#endif // __ARM_NEON ++ ++#endif // _EXT_OPT_RANDOM_H +--- a/src/libstdc++-v3/include/ext/random ++++ b/src/libstdc++-v3/include/ext/random +@@ -183,6 +183,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + { + #ifdef __SSE2__ + __m128i _M_state[_M_nstate]; ++#endif ++#ifdef __ARM_NEON ++#ifdef __aarch64__ ++ __Uint32x4_t _M_state[_M_nstate]; ++#endif + #endif + uint32_t _M_state32[_M_nstate32]; + result_type _M_stateT[state_size]; --- gcc-7-7.5.0.orig/debian/patches/gcc-multiarch.diff +++ gcc-7-7.5.0/debian/patches/gcc-multiarch.diff @@ -0,0 +1,234 @@ +# DP: - Remaining multiarch patches, not yet submitted upstream. +# DP: - Add MULTIARCH_DIRNAME definitions for multilib configurations, +# DP: which are used for the non-multilib builds. + +2013-06-12 Matthias Klose + + * config/i386/t-linux64: Set MULTIARCH_DIRNAME. + * config/i386/t-kfreebsd: Set MULTIARCH_DIRNAME. + * config.gcc (i[34567]86-*-linux* | x86_64-*-linux*): Prepend + i386/t-linux to $tmake_file; + set default ABI to N64 for mips64el. + * config/mips/t-linux64: Set MULTIARCH_DIRNAME. + * config/rs6000/t-linux64: Set MULTIARCH_DIRNAME. + * config/s390/t-linux64: Set MULTIARCH_DIRNAME. + * config/sparc/t-linux64: Set MULTIARCH_DIRNAME. + * src/gcc/config/mips/mips.h: (/usr)/lib as default path. + +--- a/src/gcc/config/sh/t-linux ++++ b/src/gcc/config/sh/t-linux +@@ -1,2 +1,10 @@ + MULTILIB_DIRNAMES= + MULTILIB_MATCHES = ++ ++ifneq (,$(findstring sh4,$(target))) ++MULTILIB_OSDIRNAMES = .:sh4-linux-gnu sh4_nofpu-linux-gnu:sh4-linux-gnu ++MULTIARCH_DIRNAME = $(call if_multiarch,sh4-linux-gnu) ++else ++MULTILIB_OSDIRNAMES = .:sh3-linux-gnu sh3_nofpu-linux-gnu:sh3-linux-gnu ++MULTIARCH_DIRNAME = $(call if_multiarch,sh3-linux-gnu) ++endif +--- a/src/gcc/config/sparc/t-linux64 ++++ b/src/gcc/config/sparc/t-linux64 +@@ -27,3 +27,5 @@ MULTILIB_OPTIONS = m64/m32 + MULTILIB_DIRNAMES = 64 32 + MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:sparc64-linux-gnu) + MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:sparc-linux-gnu) ++ ++MULTIARCH_DIRNAME = $(call if_multiarch,sparc$(if $(findstring 64,$(target)),64)-linux-gnu) +--- a/src/gcc/config/s390/t-linux64 ++++ b/src/gcc/config/s390/t-linux64 +@@ -9,3 +9,5 @@ MULTILIB_OPTIONS = m64/m31 + MULTILIB_DIRNAMES = 64 32 + MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:s390x-linux-gnu) + MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:s390-linux-gnu) ++ ++MULTIARCH_DIRNAME = $(call if_multiarch,s390$(if $(findstring s390x,$(target)),x)-linux-gnu) +--- a/src/gcc/config/rs6000/t-linux64 ++++ b/src/gcc/config/rs6000/t-linux64 +@@ -31,6 +31,8 @@ MULTILIB_EXTRA_OPTS := + MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu) + MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu) + ++MULTIARCH_DIRNAME = $(call if_multiarch,powerpc$(if $(findstring 64,$(target)),64)-linux-gnu) ++ + rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c + $(COMPILE) $< + $(POSTCOMPILE) +--- a/src/gcc/config/i386/t-linux64 ++++ b/src/gcc/config/i386/t-linux64 +@@ -36,3 +36,13 @@ MULTILIB_DIRNAMES = $(patsubst m%, %, + MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) + MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) + MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) ++ ++ifneq (,$(findstring x86_64,$(target))) ++ ifneq (,$(findstring biarchx32.h,$(tm_include_list))) ++ MULTIARCH_DIRNAME = $(call if_multiarch,x86_64-linux-gnux32) ++ else ++ MULTIARCH_DIRNAME = $(call if_multiarch,x86_64-linux-gnu) ++ endif ++else ++ MULTIARCH_DIRNAME = $(call if_multiarch,i386-linux-gnu) ++endif +--- a/src/gcc/config/i386/t-kfreebsd ++++ b/src/gcc/config/i386/t-kfreebsd +@@ -1,5 +1,9 @@ +-MULTIARCH_DIRNAME = $(call if_multiarch,i386-kfreebsd-gnu) ++ifeq (,$(MULTIARCH_DIRNAME)) ++ MULTIARCH_DIRNAME = $(call if_multiarch,i386-kfreebsd-gnu) ++endif + + # MULTILIB_OSDIRNAMES are set in t-linux64. + KFREEBSD_OS = $(filter kfreebsd%, $(word 3, $(subst -, ,$(target)))) + MULTILIB_OSDIRNAMES := $(filter-out mx32=%,$(subst linux,$(KFREEBSD_OS),$(MULTILIB_OSDIRNAMES))) ++ ++MULTIARCH_DIRNAME := $(subst linux,$(KFREEBSD_OS),$(MULTIARCH_DIRNAME)) +--- a/src/gcc/config/mips/t-linux64 ++++ b/src/gcc/config/mips/t-linux64 +@@ -18,9 +18,22 @@ + + MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64 + MULTILIB_DIRNAMES = n32 32 64 ++MIPS_R6 = $(if $(findstring r6, $(firstword $(subst -, ,$(target)))),r6) ++MIPS_32 = $(if $(findstring r6, $(firstword $(subst -, ,$(target)))),32) ++MIPS_ISA = $(if $(findstring r6, $(firstword $(subst -, ,$(target)))),isa) + MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el) + MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) + MULTILIB_OSDIRNAMES = \ + ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ + ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ + ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++ ++ifneq (,$(findstring abin32,$(target))) ++MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) ++else ++ifneq (,$(findstring abi64,$(target))) ++MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++else ++MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) ++endif ++endif +--- a/src/gcc/config.gcc ++++ b/src/gcc/config.gcc +@@ -2124,6 +2124,11 @@ mips*-*-linux*) # Linux MIPS, either + target_cpu_default=MASK_SOFT_FLOAT_ABI + enable_mips_multilibs="yes" + ;; ++ mipsisa64r6*-*-linux-gnuabi64) ++ default_mips_abi=64 ++ default_mips_arch=mips64r6 ++ enable_mips_multilibs="yes" ++ ;; + mipsisa64r6*-*-linux*) + default_mips_abi=n32 + default_mips_arch=mips64r6 +@@ -2134,6 +2139,10 @@ mips*-*-linux*) # Linux MIPS, either + default_mips_arch=mips64r2 + enable_mips_multilibs="yes" + ;; ++ mips64*-*-linux-gnuabi64 | mipsisa64*-*-linux-gnuabi64) ++ default_mips_abi=64 ++ enable_mips_multilibs="yes" ++ ;; + mips64*-*-linux* | mipsisa64*-*-linux*) + default_mips_abi=n32 + enable_mips_multilibs="yes" +@@ -3127,6 +3136,16 @@ powerpc*-*-* | rs6000-*-*) + tm_file="${tm_file} rs6000/option-defaults.h" + esac + ++# non-glibc systems ++case ${target} in ++*-linux-musl*) ++ tmake_file="${tmake_file} t-musl" ++ ;; ++*-linux-uclibc*) ++ tmake_file="${tmake_file} t-uclibc" ++ ;; ++esac ++ + # Build mkoffload tool + case ${target} in + *-intelmic-* | *-intelmicemul-*) +@@ -4575,7 +4594,7 @@ case ${target} in + i[34567]86-*-darwin* | x86_64-*-darwin*) + ;; + i[34567]86-*-linux* | x86_64-*-linux*) +- tmake_file="$tmake_file i386/t-linux" ++ tmake_file="i386/t-linux $tmake_file" + ;; + i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu) + tmake_file="$tmake_file i386/t-kfreebsd" +--- a/src/gcc/config/aarch64/t-aarch64-linux ++++ b/src/gcc/config/aarch64/t-aarch64-linux +@@ -22,7 +22,7 @@ LIB1ASMSRC = aarch64/lib1funcs.asm + LIB1ASMFUNCS = _aarch64_sync_cache_range + + AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) +-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) +-MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) ++MULTILIB_OSDIRNAMES = mabi.lp64=../lib$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) ++MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)_ilp32-linux-gnu) + +-MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32 ++MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) +--- a/src/gcc/config/mips/mips.h ++++ b/src/gcc/config/mips/mips.h +@@ -3499,16 +3499,6 @@ struct GTY(()) machine_function { + #define PMODE_INSN(NAME, ARGS) \ + (Pmode == SImode ? NAME ## _si ARGS : NAME ## _di ARGS) + +-/* If we are *not* using multilibs and the default ABI is not ABI_32 we +- need to change these from /lib and /usr/lib. */ +-#if MIPS_ABI_DEFAULT == ABI_N32 +-#define STANDARD_STARTFILE_PREFIX_1 "/lib32/" +-#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib32/" +-#elif MIPS_ABI_DEFAULT == ABI_64 +-#define STANDARD_STARTFILE_PREFIX_1 "/lib64/" +-#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib64/" +-#endif +- + /* Load store bonding is not supported by micromips and fix_24k. The + performance can be degraded for those targets. Hence, do not bond for + micromips or fix_24k. */ +--- a/src/gcc/config/tilegx/t-tilegx ++++ b/src/gcc/config/tilegx/t-tilegx +@@ -1,6 +1,7 @@ + MULTILIB_OPTIONS = m64/m32 + MULTILIB_DIRNAMES = 64 32 +-MULTILIB_OSDIRNAMES = ../lib ../lib32 ++MULTILIB_OSDIRNAMES = ../lib$(call if_multiarch,:tilegx-linux-gnu) ../lib32$(call if_multiarch,:tilegx32-linux-gnu) ++MULTIARCH_DIRNAME = $(call if_multiarch,tilegx-linux-gnu) + + LIBGCC = stmp-multilib + INSTALL_LIBGCC = install-multilib +--- a/src/gcc/config/riscv/t-linux ++++ b/src/gcc/config/riscv/t-linux +@@ -1,3 +1,5 @@ + # Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/ + MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES))) + MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES)) ++ ++MULTIARCH_DIRNAME := $(call if_multiarch,$(firstword $(subst -, ,$(target)))-linux-gnu) +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -521,7 +521,7 @@ SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER + STMP_FIXINC = @STMP_FIXINC@ + + # Test to see whether exists in the system header files. +-LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ] ++LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h -o -f $(SYSTEM_HEADER_DIR)/$(MULTIARCH_DIRNAME)/limits.h ] + + # Directory for prefix to system directories, for + # each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc. +--- /dev/null ++++ b/src/gcc/config/t-musl +@@ -0,0 +1,2 @@ ++MULTIARCH_DIRNAME := $(subst -linux-gnu,-linux-musl,$(MULTIARCH_DIRNAME)) ++MULTILIB_OSDIRNAMES := $(subst -linux-gnu,-linux-musl,$(MULTILIB_OSDIRNAMES)) +--- /dev/null ++++ b/src/gcc/config/t-uclibc +@@ -0,0 +1,2 @@ ++MULTIARCH_DIRNAME := $(subst -linux-gnu,-linux-uclibc,$(MULTIARCH_DIRNAME)) ++MULTILIB_OSDIRNAMES := $(subst -linux-gnu,-linux-uclibc,$(MULTILIB_OSDIRNAMES)) --- gcc-7-7.5.0.orig/debian/patches/gcc-multilib-multiarch.diff +++ gcc-7-7.5.0/debian/patches/gcc-multilib-multiarch.diff @@ -0,0 +1,114 @@ +# DP: Don't auto-detect multilib osdirnames. + +--- a/src/gcc/config/sparc/t-linux64 ++++ b/src/gcc/config/sparc/t-linux64 +@@ -25,7 +25,12 @@ + + MULTILIB_OPTIONS = m64/m32 + MULTILIB_DIRNAMES = 64 32 ++ifneq (,$(findstring sparc64,$(target))) ++MULTILIB_OSDIRNAMES = ../lib$(call if_multiarch,:sparc64-linux-gnu) ++MULTILIB_OSDIRNAMES += ../lib32$(call if_multiarch,:sparc-linux-gnu) ++else + MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:sparc64-linux-gnu) +-MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:sparc-linux-gnu) ++MULTILIB_OSDIRNAMES += ../lib$(call if_multiarch,:sparc-linux-gnu) ++endif + + MULTIARCH_DIRNAME = $(call if_multiarch,sparc$(if $(findstring 64,$(target)),64)-linux-gnu) +--- a/src/gcc/config/s390/t-linux64 ++++ b/src/gcc/config/s390/t-linux64 +@@ -7,7 +7,12 @@ + + MULTILIB_OPTIONS = m64/m31 + MULTILIB_DIRNAMES = 64 32 ++ifneq (,$(findstring s390x,$(target))) ++MULTILIB_OSDIRNAMES = ../lib$(call if_multiarch,:s390x-linux-gnu) ++MULTILIB_OSDIRNAMES += ../lib32$(call if_multiarch,:s390-linux-gnu) ++else + MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:s390x-linux-gnu) +-MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:s390-linux-gnu) ++MULTILIB_OSDIRNAMES += ../lib$(call if_multiarch,:s390-linux-gnu) ++endif + + MULTIARCH_DIRNAME = $(call if_multiarch,s390$(if $(findstring s390x,$(target)),x)-linux-gnu) +--- a/src/gcc/config/rs6000/t-linux64 ++++ b/src/gcc/config/rs6000/t-linux64 +@@ -28,8 +28,13 @@ + MULTILIB_OPTIONS := m64/m32 + MULTILIB_DIRNAMES := 64 32 + MULTILIB_EXTRA_OPTS := ++ifneq (,$(findstring powerpc64,$(target))) ++MULTILIB_OSDIRNAMES := m64=../lib$(call if_multiarch,:powerpc64-linux-gnu) ++MULTILIB_OSDIRNAMES += m32=../lib32$(call if_multiarch,:powerpc-linux-gnu) ++else + MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu) +-MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu) ++MULTILIB_OSDIRNAMES += m32=../lib$(call if_multiarch,:powerpc-linux-gnu) ++endif + + MULTIARCH_DIRNAME = $(call if_multiarch,powerpc$(if $(findstring 64,$(target)),64)-linux-gnu) + +--- a/src/gcc/config/i386/t-linux64 ++++ b/src/gcc/config/i386/t-linux64 +@@ -33,9 +33,19 @@ + comma=, + MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) + MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) ++ifneq (,$(findstring gnux32,$(target))) + MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) +-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) ++MULTILIB_OSDIRNAMES+= m32=../lib32$(call if_multiarch,:i386-linux-gnu) ++MULTILIB_OSDIRNAMES+= mx32=../lib$(call if_multiarch,:x86_64-linux-gnux32) ++else ifneq (,$(findstring x86_64,$(target))) ++MULTILIB_OSDIRNAMES = m64=../lib$(call if_multiarch,:x86_64-linux-gnu) ++MULTILIB_OSDIRNAMES+= m32=../lib32$(call if_multiarch,:i386-linux-gnu) + MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) ++else ++MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) ++MULTILIB_OSDIRNAMES+= m32=../lib$(call if_multiarch,:i386-linux-gnu) ++MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) ++endif + + ifneq (,$(findstring x86_64,$(target))) + ifneq (,$(findstring biarchx32.h,$(tm_include_list))) +--- a/src/gcc/config/mips/t-linux64 ++++ b/src/gcc/config/mips/t-linux64 +@@ -23,10 +23,23 @@ MIPS_32 = $(if $(findstring r6, $(firstw + MIPS_ISA = $(if $(findstring r6, $(firstword $(subst -, ,$(target)))),isa) + MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el) + MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) ++ ++ifneq (,$(findstring gnuabi64,$(target))) ++MULTILIB_OSDIRNAMES = \ ++ ../lib32$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ ++ ../libo32$(call if_multiarch,:mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ ++ ../lib$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++else ifneq (,$(findstring gnuabin32,$(target))) ++MULTILIB_OSDIRNAMES = \ ++ ../lib$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ ++ ../libo32$(call if_multiarch,:mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ ++ ../lib64$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++else + MULTILIB_OSDIRNAMES = \ +- ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ +- ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ +- ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++ ../lib32$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ ++ ../lib$(call if_multiarch,:mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ ++ ../lib64$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++endif + + ifneq (,$(findstring abin32,$(target))) + MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) +--- a/src/gcc/config/rs6000/t-linux ++++ b/src/gcc/config/rs6000/t-linux +@@ -2,7 +2,7 @@ + # or soft-float. + ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float))) + ifneq (,$(findstring powerpc64,$(target))) +-MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu) ++MULTILIB_OSDIRNAMES := .=../lib$(call if_multiarch,:powerpc64-linux-gnu) + else + ifneq (,$(findstring spe,$(target))) + MULTIARCH_DIRNAME := $(call if_multiarch,powerpc-linux-gnuspe$(if $(findstring 8548,$(with_cpu)),,v1)) --- gcc-7-7.5.0.orig/debian/patches/gcc-search-prefixed-as-ld.diff +++ gcc-7-7.5.0/debian/patches/gcc-search-prefixed-as-ld.diff @@ -0,0 +1,37 @@ +# DP: Search for the -as / -ld before serching for as / ld. + +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -2533,6 +2533,7 @@ for_each_path (const struct path_prefix + { + len = paths->max_len + extra_space + 1; + len += MAX (MAX (suffix_len, multi_os_dir_len), multiarch_len); ++ len += multiarch_len + 2; /* triplet prefix for as, ld. */ + path = XNEWVEC (char, len); + } + +@@ -2746,6 +2747,24 @@ file_at_path (char *path, void *data) + struct file_at_path_info *info = (struct file_at_path_info *) data; + size_t len = strlen (path); + ++ /* search for the -as / -ld first. */ ++ if (! strcmp (info->name, "as") || ! strcmp (info->name, "ld")) ++ { ++ struct file_at_path_info prefix_info = *info; ++ char *prefixed_name = XNEWVEC (char, info->name_len + 2 ++ + strlen (DEFAULT_REAL_TARGET_MACHINE)); ++ strcpy (prefixed_name, DEFAULT_REAL_TARGET_MACHINE); ++ strcat (prefixed_name, "-"); ++ strcat (prefixed_name, info->name); ++ prefix_info.name = (const char *) prefixed_name; ++ prefix_info.name_len = strlen (prefixed_name); ++ if (file_at_path (path, &prefix_info)) ++ { ++ XDELETEVEC (prefixed_name); ++ return path; ++ } ++ XDELETEVEC (prefixed_name); ++ } + memcpy (path + len, info->name, info->name_len); + len += info->name_len; + --- gcc-7-7.5.0.orig/debian/patches/gcc-target-include-asm.diff +++ gcc-7-7.5.0/debian/patches/gcc-target-include-asm.diff @@ -0,0 +1,15 @@ +# DP: Search $(builddir)/sys-include for the asm header files + +Index: b/src/configure.ac +=================================================================== +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -3156,7 +3156,7 @@ fi + # being built; programs in there won't even run. + if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then + # Search for pre-installed headers if nothing else fits. +- FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include' ++ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include -isystem $(CURDIR)/sys-include' + fi + + if test "x${use_gnu_ld}" = x && --- gcc-7-7.5.0.orig/debian/patches/gcc-textdomain.diff +++ gcc-7-7.5.0/debian/patches/gcc-textdomain.diff @@ -0,0 +1,96 @@ +# DP: Set gettext's domain and textdomain to the versioned package name. + +Index: b/src/gcc/intl.c +=================================================================== +--- a/src/gcc/intl.c ++++ b/src/gcc/intl.c +@@ -55,8 +55,8 @@ gcc_init_libintl (void) + setlocale (LC_ALL, ""); + #endif + +- (void) bindtextdomain ("gcc", LOCALEDIR); +- (void) textdomain ("gcc"); ++ (void) bindtextdomain ("gcc-7", LOCALEDIR); ++ (void) textdomain ("gcc-7"); + + /* Opening quotation mark. */ + open_quote = _("`"); +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -4117,8 +4117,8 @@ install-po: + dir=$(localedir)/$$lang/LC_MESSAGES; \ + echo $(mkinstalldirs) $(DESTDIR)$$dir; \ + $(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \ +- echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \ +- $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \ ++ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc-7.mo; \ ++ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc-7.mo; \ + done + + # Rule for regenerating the message template (gcc.pot). +Index: b/src/libcpp/init.c +=================================================================== +--- a/src/libcpp/init.c ++++ b/src/libcpp/init.c +@@ -155,7 +155,7 @@ init_library (void) + init_trigraph_map (); + + #ifdef ENABLE_NLS +- (void) bindtextdomain (PACKAGE, LOCALEDIR); ++ (void) bindtextdomain (PACKAGE PACKAGE_SUFFIX, LOCALEDIR); + #endif + } + } +Index: b/src/libcpp/system.h +=================================================================== +--- a/src/libcpp/system.h ++++ b/src/libcpp/system.h +@@ -280,7 +280,7 @@ extern int errno; + #endif + + #ifndef _ +-# define _(msgid) dgettext (PACKAGE, msgid) ++# define _(msgid) dgettext (PACKAGE PACKAGE_SUFFIX, msgid) + #endif + + #ifndef N_ +Index: b/src/libcpp/Makefile.in +=================================================================== +--- a/src/libcpp/Makefile.in ++++ b/src/libcpp/Makefile.in +@@ -49,6 +49,7 @@ LDFLAGS = @LDFLAGS@ + LIBICONV = @LIBICONV@ + LIBINTL = @LIBINTL@ + PACKAGE = @PACKAGE@ ++PACKAGE_SUFFIX = -7 + RANLIB = @RANLIB@ + SHELL = @SHELL@ + USED_CATALOGS = @USED_CATALOGS@ +@@ -72,10 +73,12 @@ depcomp = $(SHELL) $(srcdir)/../depcomp + + INCLUDES = -I$(srcdir) -I. -I$(srcdir)/../include @INCINTL@ \ + -I$(srcdir)/include ++DEBCPPFLAGS += -DPACKAGE_SUFFIX=\"$(strip $(PACKAGE_SUFFIX))\" + +-ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(PICFLAG) ++ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(PICFLAG) \ ++ $(DEBCPPFLAGS) + ALL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(NOEXCEPTION_FLAGS) $(INCLUDES) \ +- $(CPPFLAGS) $(PICFLAG) ++ $(CPPFLAGS) $(PICFLAG) $(DEBCPPFLAGS) + + # The name of the compiler to use. + COMPILER = $(CXX) +@@ -164,8 +167,8 @@ install-strip install: all installdirs + else continue; \ + fi; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ +- echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ +- $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ ++ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(PACKAGE_SUFFIX).mo; \ ++ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(PACKAGE_SUFFIX).mo; \ + done + + mostlyclean: --- gcc-7-7.5.0.orig/debian/patches/gdc-7-doc.diff +++ gcc-7-7.5.0/debian/patches/gdc-7-doc.diff @@ -0,0 +1,106 @@ +# DP: This implements D language support in the GCC back end, and adds +# DP: relevant documentation about the GDC front end (documentation part). + +Index: b/src/gcc/doc/frontends.texi +=================================================================== +--- a/src/gcc/doc/frontends.texi ++++ b/src/gcc/doc/frontends.texi +@@ -9,6 +9,7 @@ + @cindex GNU Compiler Collection + @cindex GNU C Compiler + @cindex Ada ++@cindex D + @cindex Fortran + @cindex Go + @cindex Objective-C +@@ -16,7 +17,7 @@ + GCC stands for ``GNU Compiler Collection''. GCC is an integrated + distribution of compilers for several major programming languages. These + languages currently include C, C++, Objective-C, Objective-C++, +-Fortran, Ada, Go, and BRIG (HSAIL). ++Fortran, Ada, Go, D, and BRIG (HSAIL). + + The abbreviation @dfn{GCC} has multiple meanings in common use. The + current official meaning is ``GNU Compiler Collection'', which refers +Index: b/src/gcc/doc/install.texi +=================================================================== +--- a/src/gcc/doc/install.texi ++++ b/src/gcc/doc/install.texi +@@ -1622,12 +1622,12 @@ their runtime libraries should be built. + grep ^language= */config-lang.in + @end smallexample + Currently, you can use any of the following: +-@code{all}, @code{ada}, @code{c}, @code{c++}, @code{fortran}, ++@code{all}, @code{ada}, @code{c}, @code{c++}, @code{d}, @code{fortran}, + @code{go}, @code{jit}, @code{lto}, @code{objc}, @code{obj-c++}. + Building the Ada compiler has special requirements, see below. + If you do not pass this flag, or specify the option @code{all}, then all + default languages available in the @file{gcc} sub-tree will be configured. +-Ada, Go, Jit, and Objective-C++ are not default languages. LTO is not a ++Ada, D, Go, Jit, and Objective-C++ are not default languages. LTO is not a + default language, but is built by default because @option{--enable-lto} is + enabled by default. The other languages are default languages. + +Index: b/src/gcc/doc/invoke.texi +=================================================================== +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -1354,6 +1354,15 @@ called @dfn{specs}. + Ada source code file containing a library unit body (a subprogram or + package body). Such files are also called @dfn{bodies}. + ++@item @var{file}.d ++D source code file. ++ ++@item @var{file}.di ++D interface code file. ++ ++@item @var{file}.dd ++D documentation code file. ++ + @c GCC also knows about some suffixes for languages not yet included: + @c Pascal: + @c @var{file}.p +@@ -1389,6 +1398,7 @@ objective-c objective-c-header objecti + objective-c++ objective-c++-header objective-c++-cpp-output + assembler assembler-with-cpp + ada ++d + f77 f77-cpp-input f95 f95-cpp-input + go + brig +Index: b/src/gcc/doc/sourcebuild.texi +=================================================================== +--- a/src/gcc/doc/sourcebuild.texi ++++ b/src/gcc/doc/sourcebuild.texi +@@ -106,6 +106,9 @@ The Objective-C and Objective-C++ runtim + @item libquadmath + The runtime support library for quad-precision math operations. + ++@item libphobos ++The D standard runtime library. ++ + @item libssp + The Stack protector runtime library. + +Index: b/src/gcc/doc/standards.texi +=================================================================== +--- a/src/gcc/doc/standards.texi ++++ b/src/gcc/doc/standards.texi +@@ -309,6 +309,16 @@ capability is typically utilized to impl + finalization extension for a gcc supported processor. HSA standards are + freely available at @uref{http://www.hsafoundation.com/standards/}. + ++@section D language ++ ++The D language is under development as of this writing; see the ++@uref{http://dlang.org/@/language-reference.html, current language ++reference}. At present the current major version of D is 2.0, and ++there is no way to describe the language supported by GCC in terms of ++a specific minor version. In general GCC follows the D frontend ++releases closely, and any given GCC release will support the current ++language as of the date that the release was frozen. ++ + @section References for Other Languages + + @xref{Top, GNAT Reference Manual, About This Guide, gnat_rm, --- gcc-7-7.5.0.orig/debian/patches/gdc-7.diff +++ gcc-7-7.5.0/debian/patches/gdc-7.diff @@ -0,0 +1,127 @@ +# DP: This implements D language support in the GCC back end, and adds +# DP: relevant documentation about the GDC front end (code part). + +--- a/src/gcc/config/darwin.h ++++ b/src/gcc/config/darwin.h +@@ -49,6 +49,10 @@ see the files COPYING3 and COPYING.RUNTI + /* Suppress g++ attempt to link in the math library automatically. */ + #define MATH_LIBRARY "" + ++/* Suppress gdc attempt to link in the thread and time library automatically. */ ++#define THREAD_LIBRARY "" ++#define TIME_LIBRARY "" ++ + /* We have atexit. */ + + #define HAVE_ATEXIT +--- a/src/gcc/config/i386/cygming.h ++++ b/src/gcc/config/i386/cygming.h +@@ -181,6 +181,10 @@ along with GCC; see the file COPYING3. + + #undef MATH_LIBRARY + #define MATH_LIBRARY "" ++#undef THREAD_LIBRARY ++#define THREAD_LIBRARY "" ++#undef TIME_LIBRARY ++#define TIME_LIBRARY "" + + #undef TARGET_LIBC_HAS_FUNCTION + #define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function +--- a/src/gcc/config/linux-android.h ++++ b/src/gcc/config/linux-android.h +@@ -57,3 +57,9 @@ + + #define ANDROID_ENDFILE_SPEC \ + "%{shared: crtend_so%O%s;: crtend_android%O%s}" ++ ++/* Suppress gdc attempt to link in the thread and time library automatically. */ ++#if ANDROID_DEFAULT ++# define THREAD_LIBRARY "" ++# define TIME_LIBRARY "" ++#endif +--- a/src/gcc/config/rs6000/rs6000.c ++++ b/src/gcc/config/rs6000/rs6000.c +@@ -31820,7 +31820,8 @@ rs6000_output_function_epilogue (FILE *f + if (lang_GNU_C () + || ! strcmp (language_string, "GNU GIMPLE") + || ! strcmp (language_string, "GNU Go") +- || ! strcmp (language_string, "libgccjit")) ++ || ! strcmp (language_string, "libgccjit") ++ || ! strcmp (language_string, "GNU D")) + i = 0; + else if (! strcmp (language_string, "GNU F77") + || lang_GNU_Fortran ()) +--- a/src/gcc/dwarf2out.c ++++ b/src/gcc/dwarf2out.c +@@ -5090,6 +5090,16 @@ is_ada (void) + return lang == DW_LANG_Ada95 || lang == DW_LANG_Ada83; + } + ++/* Return TRUE if the language is D. */ ++ ++static inline bool ++is_dlang (void) ++{ ++ unsigned int lang = get_AT_unsigned (comp_unit_die (), DW_AT_language); ++ ++ return lang == DW_LANG_D; ++} ++ + /* Remove the specified attribute if present. Return TRUE if removal + was successful. */ + +@@ -23624,6 +23634,8 @@ gen_compile_unit_die (const char *filena + language = DW_LANG_ObjC; + else if (strcmp (language_string, "GNU Objective-C++") == 0) + language = DW_LANG_ObjC_plus_plus; ++ else if (strcmp (language_string, "GNU D") == 0) ++ language = DW_LANG_D; + else if (dwarf_version >= 5 || !dwarf_strict) + { + if (strcmp (language_string, "GNU Go") == 0) +@@ -25208,7 +25220,7 @@ declare_in_namespace (tree thing, dw_die + + if (ns_context != context_die) + { +- if (is_fortran ()) ++ if (is_fortran () || is_dlang ()) + return ns_context; + if (DECL_P (thing)) + gen_decl_die (thing, NULL, NULL, ns_context); +@@ -25231,7 +25243,7 @@ gen_namespace_die (tree decl, dw_die_ref + { + /* Output a real namespace or module. */ + context_die = setup_namespace_context (decl, comp_unit_die ()); +- namespace_die = new_die (is_fortran () ++ namespace_die = new_die (is_fortran () || is_dlang () + ? DW_TAG_module : DW_TAG_namespace, + context_die, decl); + /* For Fortran modules defined in different CU don't add src coords. */ +@@ -25298,7 +25310,7 @@ gen_decl_die (tree decl, tree origin, st + break; + + case CONST_DECL: +- if (!is_fortran () && !is_ada ()) ++ if (!is_fortran () && !is_ada () && !is_dlang ()) + { + /* The individual enumerators of an enum type get output when we output + the Dwarf representation of the relevant enum type itself. */ +@@ -25851,7 +25863,7 @@ dwarf2out_decl (tree decl) + case CONST_DECL: + if (debug_info_level <= DINFO_LEVEL_TERSE) + return; +- if (!is_fortran () && !is_ada ()) ++ if (!is_fortran () && !is_ada () && !is_dlang ()) + return; + if (TREE_STATIC (decl) && decl_function_context (decl)) + context_die = lookup_decl_die (DECL_CONTEXT (decl)); +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -1307,6 +1307,7 @@ static const struct compiler default_com + {".java", "#Java", 0, 0, 0}, {".class", "#Java", 0, 0, 0}, + {".zip", "#Java", 0, 0, 0}, {".jar", "#Java", 0, 0, 0}, + {".go", "#Go", 0, 1, 0}, ++ {".d", "#D", 0, 1, 0}, {".dd", "#D", 0, 1, 0}, {".di", "#D", 0, 1, 0}, + /* Next come the entries for C. */ + {".c", "@c", 0, 0, 1}, + {"@c", --- gcc-7-7.5.0.orig/debian/patches/gdc-cross-biarch.diff +++ gcc-7-7.5.0/debian/patches/gdc-cross-biarch.diff @@ -0,0 +1,13 @@ +# DP: Fix the location of target's libs in cross-build for biarch + +--- a/src/config-ml.in ++++ b/src/config-ml.in +@@ -891,6 +915,8 @@ + case $arg in + -[BIL]"${ML_POPDIR}"/*) + GDC_="${GDC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ GDC_="${GDC_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + GDC_="${GDC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) --- gcc-7-7.5.0.orig/debian/patches/gdc-cross-build.diff +++ gcc-7-7.5.0/debian/patches/gdc-cross-build.diff @@ -0,0 +1,13 @@ +# DP: Build idgen.dmdgen.o with the build compiler + +--- a/src/gcc/d/Make-lang.in ++++ b/src/gcc/d/Make-lang.in +@@ -257,7 +257,7 @@ d/impcvgen: d/impcnvgen.dmdgen.o + +$(LINKER_FOR_BUILD) $(BUILD_LINKER_FLAGS) $(BUILD_LDFLAGS) -o $@ $^ + + d/idgen.dmdgen.o: d/dfrontend/idgen.c +- $(filter-out -fprofile-%,$(DMD_COMPILE)) $(D_INCLUDES) $< ++ $(filter-out -fprofile-%,$(DMDGEN_COMPILE)) $(D_INCLUDES) $< + $(POSTCOMPILE) + + d/impcnvgen.dmdgen.o: $(srcdir)/d/dfrontend/impcnvgen.c --- gcc-7-7.5.0.orig/debian/patches/gdc-cross-install-location.diff +++ gcc-7-7.5.0/debian/patches/gdc-cross-install-location.diff @@ -0,0 +1,28 @@ +Index: b/src/libphobos/configure.ac +=================================================================== +--- a/src/libphobos/configure.ac ++++ b/src/libphobos/configure.ac +@@ -118,6 +118,8 @@ + AC_SUBST([DRUNTIME_SOVERSION]) + AC_SUBST([PHOBOS_SOVERSION]) + ++# trigger rebuild of the configure file ++ + # Set default flags (after DRUNTIME_WERROR!) + if test -z "$DFLAGS"; then + DFLAGS="-Wall $WERROR_FLAG -g -frelease -O2" +Index: b/src/libphobos/m4/druntime.m4 +=================================================================== +--- a/src/libphobos/m4/druntime.m4 ++++ b/src/libphobos/m4/druntime.m4 +@@ -78,7 +78,7 @@ AC_DEFUN([DRUNTIME_INSTALL_DIRECTORIES], + AC_SUBST(toolexeclibdir) + + # Default case for install directory for D sources files. +- gdc_include_dir='${libdir}/gcc/${target_alias}'/${d_gcc_ver}/include/d ++ gdc_include_dir='${libdir}/gcc-cross/${target_alias}'/${d_gcc_ver}/include/d + AC_SUBST(gdc_include_dir) + ]) + +--- gcc/src/libphobos/configure.ac~ 2017-05-03 13:31:07.175437754 +0200 ++++ gcc/src/libphobos/configure.ac 2017-05-03 13:33:19.905663189 +0200 --- gcc-7-7.5.0.orig/debian/patches/gdc-driver-nophobos.diff +++ gcc-7-7.5.0/debian/patches/gdc-driver-nophobos.diff @@ -0,0 +1,28 @@ +# DP: Modify gdc driver to have no libphobos by default. + +Index: b/src/gcc/d/d-lang.cc +=================================================================== +--- a/src/gcc/d/d-lang.cc ++++ b/src/gcc/d/d-lang.cc +@@ -198,7 +198,7 @@ static void + d_init_options_struct(gcc_options *opts) + { + // GCC options +- opts->x_flag_exceptions = 1; ++ opts->x_flag_exceptions = 0; + + // Avoid range issues for complex multiply and divide. + opts->x_flag_complex_method = 2; +Index: b/src/gcc/d/d-spec.c +=================================================================== +--- a/src/gcc/d/d-spec.c ++++ b/src/gcc/d/d-spec.c +@@ -62,7 +62,7 @@ static int library = 0; + + /* If true, use the standard D runtime library when linking with + standard libraries. */ +-static bool need_phobos = true; ++static bool need_phobos = false; + + void + lang_specific_driver (cl_decoded_option **in_decoded_options, --- gcc-7-7.5.0.orig/debian/patches/gdc-frontend-posix.diff +++ gcc-7-7.5.0/debian/patches/gdc-frontend-posix.diff @@ -0,0 +1,15 @@ +# DP: Fix build of the D frontend on the Hurd and KFreeBSD. + +Index: b/src/gcc/d/dfrontend/object.h +=================================================================== +--- a/src/gcc/d/dfrontend/object.h ++++ b/src/gcc/d/dfrontend/object.h +@@ -10,7 +10,7 @@ + #ifndef OBJECT_H + #define OBJECT_H + +-#define POSIX (__linux__ || __APPLE__ || __FreeBSD__ || __OpenBSD__ || __sun) ++#define POSIX (__linux__ || __GLIBC__ || __gnu_hurd__ || __APPLE__ || __FreeBSD__ || __OpenBSD__ || __sun) + + #if __DMC__ + #pragma once --- gcc-7-7.5.0.orig/debian/patches/gdc-libphobos-build.diff +++ gcc-7-7.5.0/debian/patches/gdc-libphobos-build.diff @@ -0,0 +1,950 @@ +# DP: This implements building of libphobos library in GCC. + +# Please read ada-changes-in-autogen-output.diff about src/Makefile.[def|tpl]. + +Index: b/src/Makefile.def +=================================================================== +--- a/src/Makefile.def ++++ b/src/Makefile.def +@@ -167,6 +167,7 @@ target_modules = { module= libgfortran; + target_modules = { module= libobjc; }; + target_modules = { module= libgo; }; + target_modules = { module= libhsail-rt; }; ++target_modules = { module= libphobos; }; + target_modules = { module= libtermcap; no_check=true; + missing=mostlyclean; + missing=clean; +@@ -312,6 +313,7 @@ flags_to_pass = { flag= FLAGS_FOR_TARGET + flags_to_pass = { flag= GFORTRAN_FOR_TARGET ; }; + flags_to_pass = { flag= GOC_FOR_TARGET ; }; + flags_to_pass = { flag= GOCFLAGS_FOR_TARGET ; }; ++flags_to_pass = { flag= GDC_FOR_TARGET ; }; + flags_to_pass = { flag= LD_FOR_TARGET ; }; + flags_to_pass = { flag= LIPO_FOR_TARGET ; }; + flags_to_pass = { flag= LDFLAGS_FOR_TARGET ; }; +@@ -585,6 +587,8 @@ dependencies = { module=configure-target + dependencies = { module=all-target-libgo; on=all-target-libbacktrace; }; + dependencies = { module=all-target-libgo; on=all-target-libffi; }; + dependencies = { module=all-target-libgo; on=all-target-libatomic; }; ++dependencies = { module=configure-target-libphobos; on=configure-target-zlib; }; ++dependencies = { module=all-target-libphobos; on=all-target-zlib; }; + dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; }; + dependencies = { module=configure-target-liboffloadmic; on=configure-target-libgomp; }; + dependencies = { module=configure-target-libsanitizer; on=all-target-libstdc++-v3; }; +@@ -639,6 +643,8 @@ languages = { language=go; gcc-check-tar + lib-check-target=check-target-libgo; }; + languages = { language=brig; gcc-check-target=check-brig; + lib-check-target=check-target-libhsail-rt; }; ++languages = { language=d; gcc-check-target=check-d; ++ lib-check-target=check-target-libphobos; }; + + // Toplevel bootstrap + bootstrap_stage = { id=1 ; }; +Index: b/src/Makefile.tpl +=================================================================== +--- a/src/Makefile.tpl ++++ b/src/Makefile.tpl +@@ -159,6 +159,7 @@ BUILD_EXPORTS = \ + GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ + GOC="$(GOC_FOR_BUILD)"; export GOC; \ + GOCFLAGS="$(GOCFLAGS_FOR_BUILD)"; export GOCFLAGS; \ ++ GDC="$(GDC_FOR_BUILD)"; export GDC; \ + DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ + LD="$(LD_FOR_BUILD)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \ +@@ -195,6 +196,7 @@ HOST_EXPORTS = \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + GFORTRAN="$(GFORTRAN)"; export GFORTRAN; \ + GOC="$(GOC)"; export GOC; \ ++ GDC="$(GDC)"; export GDC; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ +@@ -281,6 +283,7 @@ BASE_TARGET_EXPORTS = \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GFORTRAN; \ + GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \ ++ GDC="$(GDC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GDC; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ +@@ -345,6 +348,7 @@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ + DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ + GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@ + GOC_FOR_BUILD = @GOC_FOR_BUILD@ ++GDC_FOR_BUILD = @GDC_FOR_BUILD@ + LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ + LD_FOR_BUILD = @LD_FOR_BUILD@ + NM_FOR_BUILD = @NM_FOR_BUILD@ +@@ -484,6 +488,7 @@ CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_ + RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@ + GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@ + GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@ ++GDC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GDC_FOR_TARGET@ + DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ + LD_FOR_TARGET=@LD_FOR_TARGET@ + +@@ -609,6 +614,7 @@ EXTRA_HOST_FLAGS = \ + 'DLLTOOL=$(DLLTOOL)' \ + 'GFORTRAN=$(GFORTRAN)' \ + 'GOC=$(GOC)' \ ++ 'GDC=$(GDC)' \ + 'LD=$(LD)' \ + 'LIPO=$(LIPO)' \ + 'NM=$(NM)' \ +@@ -665,6 +671,7 @@ EXTRA_TARGET_FLAGS = \ + 'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ + 'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ + 'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \ ++ 'GDC=$$(GDC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ + 'LD=$(COMPILER_LD_FOR_TARGET)' \ + 'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \ + 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \ +Index: b/src/config-ml.in +=================================================================== +--- a/src/config-ml.in ++++ b/src/config-ml.in +@@ -512,6 +512,7 @@ multi-do: + prefix="$(prefix)" \ + exec_prefix="$(exec_prefix)" \ + GOCFLAGS="$(GOCFLAGS) $${flags}" \ ++ GDCFLAGS="$(GDCFLAGS) $${flags}" \ + CXXFLAGS="$(CXXFLAGS) $${flags}" \ + LIBCFLAGS="$(LIBCFLAGS) $${flags}" \ + LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \ +@@ -746,6 +747,7 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + fi + done + ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags" F77="${F77_}$flags" GFORTRAN="${GFORTRAN_}$flags" GOC="${GOC_}$flags"' ++ ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags" F77="${F77_}$flags" GFORTRAN="${GFORTRAN_}$flags" GOC="${GOC_}$flags" GDC="${GDC_}$flags"' + + if [ "${with_target_subdir}" = "." ]; then + CC_=$CC' ' +@@ -753,6 +755,7 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + F77_=$F77' ' + GFORTRAN_=$GFORTRAN' ' + GOC_=$GOC' ' ++ GDC_=$GDC' ' + else + # Create a regular expression that matches any string as long + # as ML_POPDIR. +@@ -817,6 +820,18 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + esac + done + ++ GDC_= ++ for arg in ${GDC}; do ++ case $arg in ++ -[BIL]"${ML_POPDIR}"/*) ++ GDC_="${GDC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ "${ML_POPDIR}"/*) ++ GDC_="${GDC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ *) ++ GDC_="${GDC_}${arg} " ;; ++ esac ++ done ++ + if test "x${LD_LIBRARY_PATH+set}" = xset; then + LD_LIBRARY_PATH_= + for arg in `echo "$LD_LIBRARY_PATH" | tr ':' ' '`; do +Index: b/src/config/multi.m4 +=================================================================== +--- a/src/config/multi.m4 ++++ b/src/config/multi.m4 +@@ -64,4 +64,5 @@ multi_basedir="$multi_basedir" + CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + CC="$CC" + CXX="$CXX" +-GFORTRAN="$GFORTRAN"])])dnl ++GFORTRAN="$GFORTRAN" ++GDC="$GDC"])])dnl +Index: b/src/configure.ac +=================================================================== +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -173,7 +173,9 @@ target_libraries="target-libgcc \ + target-libada-sjlj \ + ${target_libiberty} \ + target-libgnatvsn \ +- target-libgo" ++ target-libgo \ ++ target-zlib \ ++ target-libphobos" + + # these tools are built using the target libraries, and are intended to + # run only in the target environment +@@ -1283,6 +1285,7 @@ if test "${build}" != "${host}" ; then + CXX_FOR_BUILD=${CXX_FOR_BUILD-g++} + GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran} + GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo} ++ GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc} + DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool} + LD_FOR_BUILD=${LD_FOR_BUILD-ld} + NM_FOR_BUILD=${NM_FOR_BUILD-nm} +@@ -1296,6 +1299,7 @@ else + CXX_FOR_BUILD="\$(CXX)" + GFORTRAN_FOR_BUILD="\$(GFORTRAN)" + GOC_FOR_BUILD="\$(GOC)" ++ GDC_FOR_BUILD="\$(GDC)" + DLLTOOL_FOR_BUILD="\$(DLLTOOL)" + LD_FOR_BUILD="\$(LD)" + NM_FOR_BUILD="\$(NM)" +@@ -3225,6 +3229,7 @@ AC_SUBST(CXX_FOR_BUILD) + AC_SUBST(DLLTOOL_FOR_BUILD) + AC_SUBST(GFORTRAN_FOR_BUILD) + AC_SUBST(GOC_FOR_BUILD) ++AC_SUBST(GDC_FOR_BUILD) + AC_SUBST(LDFLAGS_FOR_BUILD) + AC_SUBST(LD_FOR_BUILD) + AC_SUBST(NM_FOR_BUILD) +@@ -3334,6 +3339,7 @@ NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TA + NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET}) + NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran) + NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo) ++NCN_STRICT_CHECK_TARGET_TOOLS(GDC_FOR_TARGET, gdc) + + ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar) + ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as) +@@ -3367,6 +3373,8 @@ GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_T + [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran) + GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC, + [gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go) ++GCC_TARGET_TOOL(gdc, GDC_FOR_TARGET, GDC, ++ [gcc/gdc -B$$r/$(HOST_SUBDIR)/gcc/], d) + GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new]) + GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO) + GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new]) +Index: b/src/Makefile.in +=================================================================== +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -156,6 +156,7 @@ BUILD_EXPORTS = \ + GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ + GOC="$(GOC_FOR_BUILD)"; export GOC; \ + GOCFLAGS="$(GOCFLAGS_FOR_BUILD)"; export GOCFLAGS; \ ++ GDC="$(GDC_FOR_BUILD)"; export GDC; \ + DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ + LD="$(LD_FOR_BUILD)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \ +@@ -192,6 +193,7 @@ HOST_EXPORTS = \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + GFORTRAN="$(GFORTRAN)"; export GFORTRAN; \ + GOC="$(GOC)"; export GOC; \ ++ GDC="$(GDC)"; export GDC; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ +@@ -278,6 +280,7 @@ BASE_TARGET_EXPORTS = \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GFORTRAN; \ + GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \ ++ GDC="$(GDC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GDC; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ +@@ -342,6 +345,7 @@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ + DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ + GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@ + GOC_FOR_BUILD = @GOC_FOR_BUILD@ ++GDC_FOR_BUILD = @GDC_FOR_BUILD@ + LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ + LD_FOR_BUILD = @LD_FOR_BUILD@ + NM_FOR_BUILD = @NM_FOR_BUILD@ +@@ -551,6 +555,7 @@ CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_ + RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@ + GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@ + GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@ ++GDC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GDC_FOR_TARGET@ + DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ + LD_FOR_TARGET=@LD_FOR_TARGET@ + +@@ -774,6 +779,7 @@ BASE_FLAGS_TO_PASS = \ + "GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \ + "GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \ + "GOCFLAGS_FOR_TARGET=$(GOCFLAGS_FOR_TARGET)" \ ++ "GDC_FOR_TARGET=$(GDC_FOR_TARGET)" \ + "LD_FOR_TARGET=$(LD_FOR_TARGET)" \ + "LIPO_FOR_TARGET=$(LIPO_FOR_TARGET)" \ + "LDFLAGS_FOR_TARGET=$(LDFLAGS_FOR_TARGET)" \ +@@ -833,6 +839,7 @@ EXTRA_HOST_FLAGS = \ + 'DLLTOOL=$(DLLTOOL)' \ + 'GFORTRAN=$(GFORTRAN)' \ + 'GOC=$(GOC)' \ ++ 'GDC=$(GDC)' \ + 'LD=$(LD)' \ + 'LIPO=$(LIPO)' \ + 'NM=$(NM)' \ +@@ -889,6 +896,7 @@ EXTRA_TARGET_FLAGS = \ + 'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ + 'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ + 'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \ ++ 'GDC=$$(GDC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ + 'LD=$(COMPILER_LD_FOR_TARGET)' \ + 'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \ + 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \ +@@ -992,6 +1000,7 @@ configure-target: \ + maybe-configure-target-libobjc \ + maybe-configure-target-libgo \ + maybe-configure-target-libhsail-rt \ ++ maybe-configure-target-libphobos \ + maybe-configure-target-libtermcap \ + maybe-configure-target-winsup \ + maybe-configure-target-libgloss \ +@@ -1158,6 +1167,7 @@ all-target: maybe-all-target-libgfortran + all-target: maybe-all-target-libobjc + all-target: maybe-all-target-libgo + all-target: maybe-all-target-libhsail-rt ++all-target: maybe-all-target-libphobos + all-target: maybe-all-target-libtermcap + all-target: maybe-all-target-winsup + all-target: maybe-all-target-libgloss +@@ -1251,6 +1261,7 @@ info-target: maybe-info-target-libgfortr + info-target: maybe-info-target-libobjc + info-target: maybe-info-target-libgo + info-target: maybe-info-target-libhsail-rt ++info-target: maybe-info-target-libphobos + info-target: maybe-info-target-libtermcap + info-target: maybe-info-target-winsup + info-target: maybe-info-target-libgloss +@@ -1337,6 +1348,7 @@ dvi-target: maybe-dvi-target-libgfortran + dvi-target: maybe-dvi-target-libobjc + dvi-target: maybe-dvi-target-libgo + dvi-target: maybe-dvi-target-libhsail-rt ++dvi-target: maybe-dvi-target-libphobos + dvi-target: maybe-dvi-target-libtermcap + dvi-target: maybe-dvi-target-winsup + dvi-target: maybe-dvi-target-libgloss +@@ -1423,6 +1435,7 @@ pdf-target: maybe-pdf-target-libgfortran + pdf-target: maybe-pdf-target-libobjc + pdf-target: maybe-pdf-target-libgo + pdf-target: maybe-pdf-target-libhsail-rt ++pdf-target: maybe-pdf-target-libphobos + pdf-target: maybe-pdf-target-libtermcap + pdf-target: maybe-pdf-target-winsup + pdf-target: maybe-pdf-target-libgloss +@@ -1509,6 +1522,7 @@ html-target: maybe-html-target-libgfortr + html-target: maybe-html-target-libobjc + html-target: maybe-html-target-libgo + html-target: maybe-html-target-libhsail-rt ++html-target: maybe-html-target-libphobos + html-target: maybe-html-target-libtermcap + html-target: maybe-html-target-winsup + html-target: maybe-html-target-libgloss +@@ -1595,6 +1609,7 @@ TAGS-target: maybe-TAGS-target-libgfortr + TAGS-target: maybe-TAGS-target-libobjc + TAGS-target: maybe-TAGS-target-libgo + TAGS-target: maybe-TAGS-target-libhsail-rt ++TAGS-target: maybe-TAGS-target-libphobos + TAGS-target: maybe-TAGS-target-libtermcap + TAGS-target: maybe-TAGS-target-winsup + TAGS-target: maybe-TAGS-target-libgloss +@@ -1681,6 +1696,7 @@ install-info-target: maybe-install-info- + install-info-target: maybe-install-info-target-libobjc + install-info-target: maybe-install-info-target-libgo + install-info-target: maybe-install-info-target-libhsail-rt ++install-info-target: maybe-install-info-target-libphobos + install-info-target: maybe-install-info-target-libtermcap + install-info-target: maybe-install-info-target-winsup + install-info-target: maybe-install-info-target-libgloss +@@ -1767,6 +1783,7 @@ install-pdf-target: maybe-install-pdf-ta + install-pdf-target: maybe-install-pdf-target-libobjc + install-pdf-target: maybe-install-pdf-target-libgo + install-pdf-target: maybe-install-pdf-target-libhsail-rt ++install-pdf-target: maybe-install-pdf-target-libphobos + install-pdf-target: maybe-install-pdf-target-libtermcap + install-pdf-target: maybe-install-pdf-target-winsup + install-pdf-target: maybe-install-pdf-target-libgloss +@@ -1853,6 +1870,7 @@ install-html-target: maybe-install-html- + install-html-target: maybe-install-html-target-libobjc + install-html-target: maybe-install-html-target-libgo + install-html-target: maybe-install-html-target-libhsail-rt ++install-html-target: maybe-install-html-target-libphobos + install-html-target: maybe-install-html-target-libtermcap + install-html-target: maybe-install-html-target-winsup + install-html-target: maybe-install-html-target-libgloss +@@ -1939,6 +1957,7 @@ installcheck-target: maybe-installcheck- + installcheck-target: maybe-installcheck-target-libobjc + installcheck-target: maybe-installcheck-target-libgo + installcheck-target: maybe-installcheck-target-libhsail-rt ++installcheck-target: maybe-installcheck-target-libphobos + installcheck-target: maybe-installcheck-target-libtermcap + installcheck-target: maybe-installcheck-target-winsup + installcheck-target: maybe-installcheck-target-libgloss +@@ -2025,6 +2044,7 @@ mostlyclean-target: maybe-mostlyclean-ta + mostlyclean-target: maybe-mostlyclean-target-libobjc + mostlyclean-target: maybe-mostlyclean-target-libgo + mostlyclean-target: maybe-mostlyclean-target-libhsail-rt ++mostlyclean-target: maybe-mostlyclean-target-libphobos + mostlyclean-target: maybe-mostlyclean-target-libtermcap + mostlyclean-target: maybe-mostlyclean-target-winsup + mostlyclean-target: maybe-mostlyclean-target-libgloss +@@ -2111,6 +2131,7 @@ clean-target: maybe-clean-target-libgfor + clean-target: maybe-clean-target-libobjc + clean-target: maybe-clean-target-libgo + clean-target: maybe-clean-target-libhsail-rt ++clean-target: maybe-clean-target-libphobos + clean-target: maybe-clean-target-libtermcap + clean-target: maybe-clean-target-winsup + clean-target: maybe-clean-target-libgloss +@@ -2197,6 +2218,7 @@ distclean-target: maybe-distclean-target + distclean-target: maybe-distclean-target-libobjc + distclean-target: maybe-distclean-target-libgo + distclean-target: maybe-distclean-target-libhsail-rt ++distclean-target: maybe-distclean-target-libphobos + distclean-target: maybe-distclean-target-libtermcap + distclean-target: maybe-distclean-target-winsup + distclean-target: maybe-distclean-target-libgloss +@@ -2283,6 +2305,7 @@ maintainer-clean-target: maybe-maintaine + maintainer-clean-target: maybe-maintainer-clean-target-libobjc + maintainer-clean-target: maybe-maintainer-clean-target-libgo + maintainer-clean-target: maybe-maintainer-clean-target-libhsail-rt ++maintainer-clean-target: maybe-maintainer-clean-target-libphobos + maintainer-clean-target: maybe-maintainer-clean-target-libtermcap + maintainer-clean-target: maybe-maintainer-clean-target-winsup + maintainer-clean-target: maybe-maintainer-clean-target-libgloss +@@ -2425,6 +2448,7 @@ check-target: \ + maybe-check-target-libobjc \ + maybe-check-target-libgo \ + maybe-check-target-libhsail-rt \ ++ maybe-check-target-libphobos \ + maybe-check-target-libtermcap \ + maybe-check-target-winsup \ + maybe-check-target-libgloss \ +@@ -2607,6 +2631,7 @@ install-target: \ + maybe-install-target-libobjc \ + maybe-install-target-libgo \ + maybe-install-target-libhsail-rt \ ++ maybe-install-target-libphobos \ + maybe-install-target-libtermcap \ + maybe-install-target-winsup \ + maybe-install-target-libgloss \ +@@ -2713,6 +2738,7 @@ install-strip-target: \ + maybe-install-strip-target-libobjc \ + maybe-install-strip-target-libgo \ + maybe-install-strip-target-libhsail-rt \ ++ maybe-install-strip-target-libphobos \ + maybe-install-strip-target-libtermcap \ + maybe-install-strip-target-winsup \ + maybe-install-strip-target-libgloss \ +@@ -46570,6 +46596,464 @@ maintainer-clean-target-libhsail-rt: + + + ++.PHONY: configure-target-libphobos maybe-configure-target-libphobos ++maybe-configure-target-libphobos: ++@if gcc-bootstrap ++configure-target-libphobos: stage_current ++@endif gcc-bootstrap ++@if target-libphobos ++maybe-configure-target-libphobos: configure-target-libphobos ++configure-target-libphobos: ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ echo "Checking multilib configuration for libphobos..."; \ ++ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos; \ ++ $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libphobos/multilib.tmp 2> /dev/null; \ ++ if test -r $(TARGET_SUBDIR)/libphobos/multilib.out; then \ ++ if cmp -s $(TARGET_SUBDIR)/libphobos/multilib.tmp $(TARGET_SUBDIR)/libphobos/multilib.out; then \ ++ rm -f $(TARGET_SUBDIR)/libphobos/multilib.tmp; \ ++ else \ ++ rm -f $(TARGET_SUBDIR)/libphobos/Makefile; \ ++ mv $(TARGET_SUBDIR)/libphobos/multilib.tmp $(TARGET_SUBDIR)/libphobos/multilib.out; \ ++ fi; \ ++ else \ ++ mv $(TARGET_SUBDIR)/libphobos/multilib.tmp $(TARGET_SUBDIR)/libphobos/multilib.out; \ ++ fi; \ ++ test ! -f $(TARGET_SUBDIR)/libphobos/Makefile || exit 0; \ ++ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo Configuring in $(TARGET_SUBDIR)/libphobos; \ ++ cd "$(TARGET_SUBDIR)/libphobos" || exit 1; \ ++ case $(srcdir) in \ ++ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \ ++ *) topdir=`echo $(TARGET_SUBDIR)/libphobos/ | \ ++ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \ ++ esac; \ ++ module_srcdir=libphobos; \ ++ rm -f no-such-file || : ; \ ++ CONFIG_SITE=no-such-file $(SHELL) \ ++ $$s/$$module_srcdir/configure \ ++ --srcdir=$${topdir}/$$module_srcdir \ ++ $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \ ++ --target=${target_alias} \ ++ || exit 1 ++@endif target-libphobos ++ ++ ++ ++ ++ ++.PHONY: all-target-libphobos maybe-all-target-libphobos ++maybe-all-target-libphobos: ++@if gcc-bootstrap ++all-target-libphobos: stage_current ++@endif gcc-bootstrap ++@if target-libphobos ++TARGET-target-libphobos=all ++maybe-all-target-libphobos: all-target-libphobos ++all-target-libphobos: configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \ ++ $(TARGET-target-libphobos)) ++@endif target-libphobos ++ ++ ++ ++ ++ ++.PHONY: check-target-libphobos maybe-check-target-libphobos ++maybe-check-target-libphobos: ++@if target-libphobos ++maybe-check-target-libphobos: check-target-libphobos ++ ++check-target-libphobos: ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) ++ ++@endif target-libphobos ++ ++.PHONY: install-target-libphobos maybe-install-target-libphobos ++maybe-install-target-libphobos: ++@if target-libphobos ++maybe-install-target-libphobos: install-target-libphobos ++ ++install-target-libphobos: installdirs ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) ++ ++@endif target-libphobos ++ ++.PHONY: install-strip-target-libphobos maybe-install-strip-target-libphobos ++maybe-install-strip-target-libphobos: ++@if target-libphobos ++maybe-install-strip-target-libphobos: install-strip-target-libphobos ++ ++install-strip-target-libphobos: installdirs ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) install-strip) ++ ++@endif target-libphobos ++ ++# Other targets (info, dvi, pdf, etc.) ++ ++.PHONY: maybe-info-target-libphobos info-target-libphobos ++maybe-info-target-libphobos: ++@if target-libphobos ++maybe-info-target-libphobos: info-target-libphobos ++ ++info-target-libphobos: \ ++ configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing info in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ info) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-dvi-target-libphobos dvi-target-libphobos ++maybe-dvi-target-libphobos: ++@if target-libphobos ++maybe-dvi-target-libphobos: dvi-target-libphobos ++ ++dvi-target-libphobos: \ ++ configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing dvi in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ dvi) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-pdf-target-libphobos pdf-target-libphobos ++maybe-pdf-target-libphobos: ++@if target-libphobos ++maybe-pdf-target-libphobos: pdf-target-libphobos ++ ++pdf-target-libphobos: \ ++ configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing pdf in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ pdf) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-html-target-libphobos html-target-libphobos ++maybe-html-target-libphobos: ++@if target-libphobos ++maybe-html-target-libphobos: html-target-libphobos ++ ++html-target-libphobos: \ ++ configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing html in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ html) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-TAGS-target-libphobos TAGS-target-libphobos ++maybe-TAGS-target-libphobos: ++@if target-libphobos ++maybe-TAGS-target-libphobos: TAGS-target-libphobos ++ ++TAGS-target-libphobos: \ ++ configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing TAGS in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ TAGS) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-install-info-target-libphobos install-info-target-libphobos ++maybe-install-info-target-libphobos: ++@if target-libphobos ++maybe-install-info-target-libphobos: install-info-target-libphobos ++ ++install-info-target-libphobos: \ ++ configure-target-libphobos \ ++ info-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing install-info in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ install-info) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-install-pdf-target-libphobos install-pdf-target-libphobos ++maybe-install-pdf-target-libphobos: ++@if target-libphobos ++maybe-install-pdf-target-libphobos: install-pdf-target-libphobos ++ ++install-pdf-target-libphobos: \ ++ configure-target-libphobos \ ++ pdf-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing install-pdf in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ install-pdf) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-install-html-target-libphobos install-html-target-libphobos ++maybe-install-html-target-libphobos: ++@if target-libphobos ++maybe-install-html-target-libphobos: install-html-target-libphobos ++ ++install-html-target-libphobos: \ ++ configure-target-libphobos \ ++ html-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing install-html in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ install-html) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-installcheck-target-libphobos installcheck-target-libphobos ++maybe-installcheck-target-libphobos: ++@if target-libphobos ++maybe-installcheck-target-libphobos: installcheck-target-libphobos ++ ++installcheck-target-libphobos: \ ++ configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing installcheck in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ installcheck) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-mostlyclean-target-libphobos mostlyclean-target-libphobos ++maybe-mostlyclean-target-libphobos: ++@if target-libphobos ++maybe-mostlyclean-target-libphobos: mostlyclean-target-libphobos ++ ++mostlyclean-target-libphobos: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing mostlyclean in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ mostlyclean) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-clean-target-libphobos clean-target-libphobos ++maybe-clean-target-libphobos: ++@if target-libphobos ++maybe-clean-target-libphobos: clean-target-libphobos ++ ++clean-target-libphobos: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing clean in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ clean) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-distclean-target-libphobos distclean-target-libphobos ++maybe-distclean-target-libphobos: ++@if target-libphobos ++maybe-distclean-target-libphobos: distclean-target-libphobos ++ ++distclean-target-libphobos: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing distclean in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ distclean) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-maintainer-clean-target-libphobos maintainer-clean-target-libphobos ++maybe-maintainer-clean-target-libphobos: ++@if target-libphobos ++maybe-maintainer-clean-target-libphobos: maintainer-clean-target-libphobos ++ ++maintainer-clean-target-libphobos: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ maintainer-clean) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++ ++ ++ ++ + .PHONY: configure-target-libtermcap maybe-configure-target-libtermcap + maybe-configure-target-libtermcap: + @if gcc-bootstrap +@@ -51864,6 +52348,14 @@ check-gcc-brig: + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-brig); + check-brig: check-gcc-brig check-target-libhsail-rt + ++.PHONY: check-gcc-d check-d ++check-gcc-d: ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(HOST_EXPORTS) \ ++ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-d); ++check-d: check-gcc-d check-target-libphobos ++ + + # The gcc part of install-no-fixedincludes, which relies on an intimate + # knowledge of how a number of gcc internal targets (inter)operate. Delegate. +@@ -54742,6 +55234,7 @@ configure-target-libgfortran: stage_last + configure-target-libobjc: stage_last + configure-target-libgo: stage_last + configure-target-libhsail-rt: stage_last ++configure-target-libphobos: stage_last + configure-target-libtermcap: stage_last + configure-target-winsup: stage_last + configure-target-libgloss: stage_last +@@ -54777,6 +55270,7 @@ configure-target-libgfortran: maybe-all- + configure-target-libobjc: maybe-all-gcc + configure-target-libgo: maybe-all-gcc + configure-target-libhsail-rt: maybe-all-gcc ++configure-target-libphobos: maybe-all-gcc + configure-target-libtermcap: maybe-all-gcc + configure-target-winsup: maybe-all-gcc + configure-target-libgloss: maybe-all-gcc +@@ -55803,6 +56297,8 @@ configure-target-libgo: maybe-all-target + all-target-libgo: maybe-all-target-libbacktrace + all-target-libgo: maybe-all-target-libffi + all-target-libgo: maybe-all-target-libatomic ++configure-target-libphobos: maybe-configure-target-zlib ++all-target-libphobos: maybe-all-target-zlib + configure-target-libstdc++-v3: maybe-configure-target-libgomp + + configure-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp +@@ -55930,6 +56426,7 @@ configure-target-libgfortran: maybe-all- + configure-target-libobjc: maybe-all-target-libgcc + configure-target-libgo: maybe-all-target-libgcc + configure-target-libhsail-rt: maybe-all-target-libgcc ++configure-target-libphobos: maybe-all-target-libgcc + configure-target-libtermcap: maybe-all-target-libgcc + configure-target-winsup: maybe-all-target-libgcc + configure-target-libgloss: maybe-all-target-libgcc +@@ -55973,6 +56470,8 @@ configure-target-libgo: maybe-all-target + + configure-target-libhsail-rt: maybe-all-target-newlib maybe-all-target-libgloss + ++configure-target-libphobos: maybe-all-target-newlib maybe-all-target-libgloss ++ + configure-target-libtermcap: maybe-all-target-newlib maybe-all-target-libgloss + + configure-target-winsup: maybe-all-target-newlib maybe-all-target-libgloss --- gcc-7-7.5.0.orig/debian/patches/gdc-multiarch.diff +++ gcc-7-7.5.0/debian/patches/gdc-multiarch.diff @@ -0,0 +1,17 @@ +# DP: Set the D target include directory to a multiarch location. + +--- a/src/gcc/d/Make-lang.in ++++ b/src/gcc/d/Make-lang.in +@@ -61,7 +61,11 @@ + $(D_DMD_H) + + +-gcc_d_target_include_dir=$(gcc_d_include_dir)/$(target_noncanonical) ++ifneq (,$(MULTIARCH_DIRNAME)) ++ gcc_d_target_include_dir = /usr/include/$(MULTIARCH_DIRNAME)/d/$(version) ++else ++ gcc_d_target_include_dir=$(gcc_d_include_dir)/$(target_noncanonical) ++endif + + # Name of phobos library + D_LIBPHOBOS = -DLIBPHOBOS=\"gphobos2\" --- gcc-7-7.5.0.orig/debian/patches/gdc-profiledbuild.diff +++ gcc-7-7.5.0/debian/patches/gdc-profiledbuild.diff @@ -0,0 +1,21 @@ +# DP: Don't build gdc build tools idgen and impcnvgen with profiling flags + +Index: b/src/gcc/d/Make-lang.in +=================================================================== +--- a/src/gcc/d/Make-lang.in ++++ b/src/gcc/d/Make-lang.in +@@ -256,6 +256,14 @@ d/idgen: d/idgen.dmdgen.o + d/impcvgen: d/impcnvgen.dmdgen.o + +$(LINKER_FOR_BUILD) $(BUILD_LINKER_FLAGS) $(BUILD_LDFLAGS) -o $@ $^ + ++d/idgen.dmdgen.o: d/dfrontend/idgen.c ++ $(filter-out -fprofile-%,$(DMD_COMPILE)) $(D_INCLUDES) $< ++ $(POSTCOMPILE) ++ ++d/impcnvgen.dmdgen.o: $(srcdir)/d/dfrontend/impcnvgen.c ++ $(filter-out -fprofile-%,$(DMDGEN_COMPILE)) $(D_INCLUDES) $< ++ $(POSTCOMPILE) ++ + # Generated sources. + d/id.c: d/idgen + cd d && ./idgen --- gcc-7-7.5.0.orig/debian/patches/gdc-sparc-fix.diff +++ gcc-7-7.5.0/debian/patches/gdc-sparc-fix.diff @@ -0,0 +1,12 @@ +# DP: Fix gdc build on sparc. + +--- a/src/gcc/d/d-target.cc ++++ b/src/gcc/d/d-target.cc +@@ -18,6 +18,7 @@ + #include "config.h" + #include "system.h" + #include "coretypes.h" ++#include "memmodel.h" + + #include "dfrontend/aggregate.h" + #include "dfrontend/module.h" --- gcc-7-7.5.0.orig/debian/patches/gdc-texinfo.diff +++ gcc-7-7.5.0/debian/patches/gdc-texinfo.diff @@ -0,0 +1,55 @@ +# DP: Add macros for the gdc texinfo documentation. + +Index: b/src/gcc/d/gdc.texi +=================================================================== +--- a/src/gcc/d/gdc.texi ++++ b/src/gcc/d/gdc.texi +@@ -57,6 +57,22 @@ man page gfdl(7). + @insertcopying + @end ifinfo + ++@macro versionsubtitle ++@ifclear DEVELOPMENT ++@subtitle For @sc{gcc} version @value{version-GCC} ++@end ifclear ++@ifset DEVELOPMENT ++@subtitle For @sc{gcc} version @value{version-GCC} (pre-release) ++@end ifset ++@ifset VERSION_PACKAGE ++@sp 1 ++@subtitle @value{VERSION_PACKAGE} ++@end ifset ++@c Even if there are no authors, the second titlepage line should be ++@c forced to the bottom of the page. ++@vskip 0pt plus 1filll ++@end macro ++ + @titlepage + @title The GNU D Compiler + @versionsubtitle +@@ -139,6 +155,25 @@ the options specific to @command{gdc}. + * Environment Variables:: Environment variables that affect @command{gdc}. + @end menu + ++@macro gcctabopt{body} ++@code{\body\} ++@end macro ++@macro gccoptlist{body} ++@smallexample ++\body\ ++@end smallexample ++@end macro ++@c Makeinfo handles the above macro OK, TeX needs manual line breaks; ++@c they get lost at some point in handling the macro. But if @macro is ++@c used here rather than @alias, it produces double line breaks. ++@iftex ++@alias gol = * ++@end iftex ++@ifnottex ++@macro gol ++@end macro ++@end ifnottex ++ + @c man begin OPTIONS + + @node Input and Output files --- gcc-7-7.5.0.orig/debian/patches/gdc-updates.diff +++ gcc-7-7.5.0/debian/patches/gdc-updates.diff @@ -0,0 +1,30 @@ +# DP: gdc updates up to 20160115. + + * Make-lang.in (d-warn): Filter out -Wmissing-format-attribute. + +Index: b/src/gcc/d/Make-lang.in +=================================================================== +--- a/src/gcc/d/Make-lang.in ++++ b/src/gcc/d/Make-lang.in +@@ -46,7 +46,7 @@ gdc-cross$(exeext): gdc$(exeext) + cp gdc$(exeext) gdc-cross$(exeext) + + # Filter out pedantic and virtual overload warnings. +-d-warn = $(filter-out -pedantic -Woverloaded-virtual, $(STRICT_WARN)) ++d-warn = $(filter-out -pedantic -Woverloaded-virtual -Wmissing-format-attribute, $(STRICT_WARN)) + + # D Frontend has slightly relaxed warnings compared to rest of GDC. + DMD_WARN_CXXFLAGS = -Wno-deprecated -Wstrict-aliasing -Wuninitialized +Index: b/src/libphobos/src/std/internal/math/gammafunction.d +=================================================================== +--- a/src/libphobos/src/std/internal/math/gammafunction.d ++++ b/src/libphobos/src/std/internal/math/gammafunction.d +@@ -437,7 +437,7 @@ real logGamma(real x) + if ( p == q ) + return real.infinity; + int intpart = cast(int)(p); +- real sgngam = 1; ++ real sgngam = 1.0L; + if ( (intpart & 1) == 0 ) + sgngam = -1; + z = q - p; --- gcc-7-7.5.0.orig/debian/patches/gdc-versym-cpu.diff +++ gcc-7-7.5.0/debian/patches/gdc-versym-cpu.diff @@ -0,0 +1,357 @@ +# DP: Implements D CPU version conditions. + +This implements the following versions: +* D_HardFloat +* D_SoftFloat + +for all supported architectures. And these where appropriate: +* ARM +** ARM_Thumb +** ARM_HardFloat +** ARM_SoftFloat +** ARM_SoftFP +* AArch64 +* Alpha +** Alpha_SoftFloat +** Alpha_HardFloat +* X86 +* X86_64 +** D_X32 +* IA64 +* MIPS32 +* MIPS64 +** MIPS_O32 +** MIPS_O64 +** MIPS_N32 +** MIPS_N64 +** MIPS_EABI +** MIPS_HardFloat +** MIPS_SoftFloat +* HPPA +* HPPA64 +* PPC +* PPC64 +** PPC_HardFloat +** PPC_SoftFloat +* S390 +* S390X +* SH +* SH64 +* SPARC +* SPARC64 +* SPARC_V8Plus +** SPARC_HardFloat +** SPARC_SoftFloat + +--- a/src/gcc/config/aarch64/aarch64.h ++++ b/src/gcc/config/aarch64/aarch64.h +@@ -26,6 +26,14 @@ + #define TARGET_CPU_CPP_BUILTINS() \ + aarch64_cpu_cpp_builtins (pfile) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("AArch64"); \ ++ builtin_define ("D_HardFloat"); \ ++ } while (0) ++ + + + #define REGISTER_TARGET_PRAGMAS() aarch64_register_pragmas () +--- a/src/gcc/config/alpha/alpha.h ++++ b/src/gcc/config/alpha/alpha.h +@@ -72,6 +72,23 @@ along with GCC; see the file COPYING3. + SUBTARGET_LANGUAGE_CPP_BUILTINS(); \ + } while (0) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("Alpha"); \ ++ if (TARGET_SOFT_FP) \ ++ { \ ++ builtin_define ("D_SoftFloat"); \ ++ builtin_define ("Alpha_SoftFloat"); \ ++ } \ ++ else \ ++ { \ ++ builtin_define ("D_HardFloat"); \ ++ builtin_define ("Alpha_HardFloat"); \ ++ } \ ++} while (0) ++ + #ifndef SUBTARGET_LANGUAGE_CPP_BUILTINS + #define SUBTARGET_LANGUAGE_CPP_BUILTINS() \ + do \ +--- a/src/gcc/config/arm/arm.h ++++ b/src/gcc/config/arm/arm.h +@@ -47,6 +47,31 @@ extern char arm_arch_name[]; + /* Target CPU builtins. */ + #define TARGET_CPU_CPP_BUILTINS() arm_cpu_cpp_builtins (pfile) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("ARM"); \ ++ \ ++ if (TARGET_THUMB || TARGET_THUMB2) \ ++ builtin_define ("ARM_Thumb"); \ ++ \ ++ if (TARGET_HARD_FLOAT_ABI) \ ++ builtin_define ("ARM_HardFloat"); \ ++ else \ ++ { \ ++ if(TARGET_SOFT_FLOAT) \ ++ builtin_define ("ARM_SoftFloat"); \ ++ else if(TARGET_HARD_FLOAT) \ ++ builtin_define ("ARM_SoftFP"); \ ++ } \ ++ \ ++ if(TARGET_SOFT_FLOAT) \ ++ builtin_define ("D_SoftFloat"); \ ++ else if(TARGET_HARD_FLOAT) \ ++ builtin_define ("D_HardFloat"); \ ++ } while (0) ++ + #include "config/arm/arm-opts.h" + + /* The processor for which instructions should be scheduled. */ +--- a/src/gcc/config/i386/i386.h ++++ b/src/gcc/config/i386/i386.h +@@ -671,6 +671,24 @@ extern const char *host_detect_local_cpu + /* Target CPU builtins. */ + #define TARGET_CPU_CPP_BUILTINS() ix86_target_macros () + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do { \ ++ if (TARGET_64BIT) \ ++ { \ ++ builtin_define("X86_64"); \ ++ if (TARGET_X32) \ ++ builtin_define("D_X32"); \ ++ } \ ++ else \ ++ builtin_define("X86"); \ ++ \ ++ if (TARGET_80387) \ ++ builtin_define("D_HardFloat"); \ ++ else \ ++ builtin_define("D_SoftFloat"); \ ++ } while (0) ++ + /* Target Pragmas. */ + #define REGISTER_TARGET_PRAGMAS() ix86_register_pragmas () + +--- a/src/gcc/config/ia64/ia64.h ++++ b/src/gcc/config/ia64/ia64.h +@@ -40,6 +40,13 @@ do { \ + builtin_define("__BIG_ENDIAN__"); \ + } while (0) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++do { \ ++ builtin_define ("IA64"); \ ++ builtin_define ("D_HardFloat"); \ ++} while (0) ++ + #ifndef SUBTARGET_EXTRA_SPECS + #define SUBTARGET_EXTRA_SPECS + #endif +--- a/src/gcc/config/mips/mips.h ++++ b/src/gcc/config/mips/mips.h +@@ -644,6 +644,54 @@ struct mips_cpu_info { + } \ + while (0) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ if (TARGET_64BIT) \ ++ builtin_define("MIPS64"); \ ++ else \ ++ builtin_define("MIPS32"); \ ++ \ ++ switch (mips_abi) \ ++ { \ ++ case ABI_32: \ ++ builtin_define("MIPS_O32"); \ ++ break; \ ++ \ ++ case ABI_O64: \ ++ builtin_define("MIPS_O64"); \ ++ break; \ ++ \ ++ case ABI_N32: \ ++ builtin_define("MIPS_N32"); \ ++ break; \ ++ \ ++ case ABI_64: \ ++ builtin_define("MIPS_N64"); \ ++ break; \ ++ \ ++ case ABI_EABI: \ ++ builtin_define("MIPS_EABI"); \ ++ break; \ ++ \ ++ default: \ ++ gcc_unreachable(); \ ++ } \ ++ \ ++ if (TARGET_HARD_FLOAT_ABI) \ ++ { \ ++ builtin_define("MIPS_HardFloat"); \ ++ builtin_define("D_HardFloat"); \ ++ } \ ++ else if (TARGET_SOFT_FLOAT_ABI) \ ++ { \ ++ builtin_define("MIPS_SoftFloat"); \ ++ builtin_define("D_SoftFloat"); \ ++ } \ ++ } \ ++ while (0) ++ + /* Default target_flags if no switches are specified */ + + #ifndef TARGET_DEFAULT +--- a/src/gcc/config/pa/pa.h ++++ b/src/gcc/config/pa/pa.h +@@ -179,6 +179,20 @@ do { \ + builtin_define("_PA_RISC1_0"); \ + } while (0) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++do { \ ++ if(TARGET_64BIT) \ ++ builtin_define("HPPA64"); \ ++ else \ ++ builtin_define("HPPA"); \ ++ \ ++ if(TARGET_SOFT_FLOAT) \ ++ builtin_define ("D_SoftFloat"); \ ++ else \ ++ builtin_define ("D_HardFloat"); \ ++} while (0) ++ + /* An old set of OS defines for various BSD-like systems. */ + #define TARGET_OS_CPP_BUILTINS() \ + do \ +--- a/src/gcc/config/rs6000/rs6000.h ++++ b/src/gcc/config/rs6000/rs6000.h +@@ -824,6 +824,28 @@ extern unsigned char rs6000_recip_bits[] + #define TARGET_CPU_CPP_BUILTINS() \ + rs6000_cpu_cpp_builtins (pfile) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ if (TARGET_64BIT) \ ++ builtin_define ("PPC64"); \ ++ else \ ++ builtin_define ("PPC"); \ ++ \ ++ if (TARGET_HARD_FLOAT) \ ++ { \ ++ builtin_define ("PPC_HardFloat"); \ ++ builtin_define ("D_HardFloat"); \ ++ } \ ++ else if (TARGET_SOFT_FLOAT) \ ++ { \ ++ builtin_define ("PPC_SoftFloat"); \ ++ builtin_define ("D_SoftFloat"); \ ++ } \ ++ } \ ++ while (0) ++ + /* This is used by rs6000_cpu_cpp_builtins to indicate the byte order + we're compiling for. Some configurations may need to override it. */ + #define RS6000_CPU_CPP_ENDIAN_BUILTINS() \ +--- a/src/gcc/config/s390/s390.h ++++ b/src/gcc/config/s390/s390.h +@@ -194,6 +194,22 @@ enum processor_flags + /* Target CPU builtins. */ + #define TARGET_CPU_CPP_BUILTINS() s390_cpu_cpp_builtins (pfile) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ if (TARGET_64BIT) \ ++ builtin_define ("S390X"); \ ++ else \ ++ builtin_define ("S390"); \ ++ \ ++ if(TARGET_SOFT_FLOAT) \ ++ builtin_define ("D_SoftFloat"); \ ++ else if(TARGET_HARD_FLOAT) \ ++ builtin_define ("D_HardFloat"); \ ++ } \ ++ while (0) ++ + #ifdef DEFAULT_TARGET_64BIT + #define TARGET_DEFAULT (MASK_64BIT | MASK_ZARCH | MASK_HARD_DFP \ + | MASK_OPT_HTM | MASK_OPT_VX) +--- a/src/gcc/config/sh/sh.h ++++ b/src/gcc/config/sh/sh.h +@@ -31,6 +31,19 @@ extern int code_for_indirect_jump_scratc + + #define TARGET_CPU_CPP_BUILTINS() sh_cpu_cpp_builtins (pfile) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("SH"); \ ++ \ ++ if (TARGET_FPU_ANY) \ ++ builtin_define ("D_HardFloat"); \ ++ else \ ++ builtin_define ("D_SoftFloat"); \ ++ } \ ++ while (0) ++ + /* Value should be nonzero if functions must have frame pointers. + Zero means the frame pointer need not be set up (and parms may be accessed + via the stack pointer) in functions that seem suitable. */ +--- a/src/gcc/config/sparc/sparc.h ++++ b/src/gcc/config/sparc/sparc.h +@@ -27,6 +27,31 @@ along with GCC; see the file COPYING3. + + #define TARGET_CPU_CPP_BUILTINS() sparc_target_macros () + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++do \ ++ { \ ++ if (TARGET_64BIT) \ ++ builtin_define ("SPARC64"); \ ++ else \ ++ builtin_define ("SPARC"); \ ++ \ ++ if(TARGET_V8PLUS) \ ++ builtin_define ("SPARC_V8Plus"); \ ++ \ ++ if(TARGET_FPU) \ ++ { \ ++ builtin_define ("D_HardFloat"); \ ++ builtin_define ("SPARC_HardFloat"); \ ++ } \ ++ else \ ++ { \ ++ builtin_define ("D_SoftFloat"); \ ++ builtin_define ("SPARC_SoftFloat"); \ ++ } \ ++ } \ ++ while (0) ++ + /* Specify this in a cover file to provide bi-architecture (32/64) support. */ + /* #define SPARC_BI_ARCH */ + --- gcc-7-7.5.0.orig/debian/patches/gdc-versym-os.diff +++ gcc-7-7.5.0/debian/patches/gdc-versym-os.diff @@ -0,0 +1,371 @@ +# DP: Implements D OS version conditions. + +This implements the following official versions: +* Windows +** Win32 +** Win64 +** Cygwin +** MinGW +* linux +* OSX +* FreeBSD +* OpenBSD +* NetBSD +* Solaris +* Posix +* AIX +* SysV4 +* Hurd +* Android + +These gdc specific versions are also implemented: +* GNU_MinGW64 (for mingw-w64) +* GNU_OpenSolaris (for opensolaris) +* GNU_GLibc (implemented for linux & bsd & opensolaris) +* GNU_UCLibc (implemented for linux) +* GNU_Bionic (implemented for linux) + +These official OS versions are not implemented: +* DragonFlyBSD +* BSD (other BSDs) +* Haiku +* SkyOS +* SysV3 + +--- a/src/gcc/config/alpha/linux.h ++++ b/src/gcc/config/alpha/linux.h +@@ -33,6 +33,16 @@ along with GCC; see the file COPYING3. + builtin_define ("_GNU_SOURCE"); \ + } while (0) + ++#undef TARGET_OS_D_BUILTINS ++#define TARGET_OS_D_BUILTINS() \ ++ do { \ ++ if (OPTION_GLIBC) \ ++ builtin_define ("GNU_GLibc"); \ ++ \ ++ builtin_define ("linux"); \ ++ builtin_define ("Posix"); \ ++ } while (0) ++ + #undef LIB_SPEC + #define LIB_SPEC \ + "%{pthread:-lpthread} \ +--- a/src/gcc/config/arm/linux-eabi.h ++++ b/src/gcc/config/arm/linux-eabi.h +@@ -30,6 +30,15 @@ + } \ + while (false) + ++#undef TARGET_OS_D_BUILTINS ++#define TARGET_OS_D_BUILTINS() \ ++ do \ ++ { \ ++ TARGET_GENERIC_LINUX_OS_D_BUILTINS(); \ ++ ANDROID_TARGET_OS_D_BUILTINS(); \ ++ } \ ++ while (false) ++ + /* We default to a soft-float ABI so that binaries can run on all + target hardware. If you override this to use the hard-float ABI then + change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well. */ +--- a/src/gcc/config/darwin.h ++++ b/src/gcc/config/darwin.h +@@ -1048,4 +1048,10 @@ extern void darwin_driver_init (unsigned + #define DEF_LD64 LD64_VERSION + #endif + ++#define TARGET_OS_D_BUILTINS() \ ++ do { \ ++ builtin_define ("OSX"); \ ++ builtin_define ("Posix"); \ ++ } while (0) ++ + #endif /* CONFIG_DARWIN_H */ +--- a/src/gcc/config/freebsd.h ++++ b/src/gcc/config/freebsd.h +@@ -32,6 +32,13 @@ along with GCC; see the file COPYING3. + #undef TARGET_OS_CPP_BUILTINS + #define TARGET_OS_CPP_BUILTINS() FBSD_TARGET_OS_CPP_BUILTINS() + ++#undef TARGET_OS_D_BUILTINS ++#define TARGET_OS_D_BUILTINS() \ ++ do { \ ++ builtin_define ("FreeBSD"); \ ++ builtin_define ("Posix"); \ ++ } while (0) ++ + #undef CPP_SPEC + #define CPP_SPEC FBSD_CPP_SPEC + +--- a/src/gcc/config/gnu.h ++++ b/src/gcc/config/gnu.h +@@ -31,3 +31,11 @@ along with GCC. If not, see . symlink, and having a +# DP: /usr directory like the other ports. So this patch should NOT go +# DP: upstream. + +--- + config.gcc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/src/gcc/config.gcc (révision 182461) ++++ b/src/gcc/config.gcc (copie de travail) +@@ -583,7 +583,7 @@ + *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu) + :;; + *-*-gnu*) +- native_system_header_dir=/include ++ # native_system_header_dir=/include + ;; + esac + # glibc / uclibc / bionic switch. --- gcc-7-7.5.0.orig/debian/patches/ignore-pie-specs-when-not-enabled.diff +++ gcc-7-7.5.0/debian/patches/ignore-pie-specs-when-not-enabled.diff @@ -0,0 +1,56 @@ +# DP: Ignore dpkg's pie specs when pie is not enabled. + +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -3715,6 +3715,36 @@ handle_foffload_option (const char *arg) + } + } + ++static bool ignore_pie_specs_when_not_enabled(const char *envvar, ++ const char *specname) ++{ ++ const char *envval = secure_getenv(envvar); ++ char *hardening; ++ bool ignore; ++ ++ if (strstr (specname, "/pie-compile.specs") == NULL ++ && strstr (specname, "/pie-link.specs") == NULL) ++ return false; ++ if (envval == NULL || strstr (envval, "hardening=") == NULL) ++ return true; ++ ignore = true; ++ hardening = (char *) xmalloc (strlen(envval) + 1); ++ strcpy (hardening, strstr (envval, "hardening=")); ++ if (strchr (hardening, ' ')) ++ *strchr (hardening, ' ') = '\0'; ++ if (strstr(hardening, "+all")) ++ { ++ if (strstr(hardening, "-pie") == NULL) ++ ignore = false; ++ } ++ else if (strstr(hardening, "+pie")) ++ { ++ ignore = false; ++ } ++ free (hardening); ++ return ignore; ++} ++ + /* Handle a driver option; arguments and return value as for + handle_option. */ + +@@ -3989,6 +4019,12 @@ driver_handle_option (struct gcc_options + break; + + case OPT_specs_: ++ if (ignore_pie_specs_when_not_enabled("DEB_BUILD_MAINT_OPTIONS", arg) ++ && ignore_pie_specs_when_not_enabled("DEB_BUILD_OPTIONS", arg)) ++ { ++ inform (0, "pie specs %s ignored when pie is not enabled", arg); ++ return true; ++ } + { + struct user_specs *user = XNEW (struct user_specs); + --- gcc-7-7.5.0.orig/debian/patches/kfreebsd-decimal-float.diff +++ gcc-7-7.5.0/debian/patches/kfreebsd-decimal-float.diff @@ -0,0 +1,43 @@ +# DP: Enable decimal float support on kfreebsd-amd64 + +--- a/src/gcc/configure.ac ++++ b/src/gcc/configure.ac +@@ -817,6 +817,7 @@ AC_ARG_ENABLE(__cxa_atexit, + [], []) + + # Enable C extension for decimal float if target supports it. ++# touch the file, adding decimal support for kfreebsd-amd64 in config/dfp.m4 + GCC_AC_ENABLE_DECIMAL_FLOAT([$target]) + + dfp=`if test $enable_decimal_float != no; then echo 1; else echo 0; fi` +--- a/src/config/dfp.m4 ++++ b/src/config/dfp.m4 +@@ -21,7 +21,7 @@ Valid choices are 'yes', 'bid', 'dpd', a + [ + case $1 in + powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | s390*-*-linux* | \ +- i?86*-*-elfiamcu | i?86*-*-gnu* | \ ++ i?86*-*-elfiamcu | i?86*-*-gnu* | x86_64*-*-gnu* | \ + i?86*-*-mingw* | x86_64*-*-mingw* | \ + i?86*-*-cygwin* | x86_64*-*-cygwin*) + enable_decimal_float=yes +--- a/src/libdecnumber/configure.ac ++++ b/src/libdecnumber/configure.ac +@@ -77,6 +77,7 @@ AC_CANONICAL_TARGET + + # Default decimal format + # If you change the defaults here, be sure to change them in the GCC directory also ++# touch the file, adding decimal support for kfreebsd-amd64 in config/dfp.m4 + AC_MSG_CHECKING([for decimal floating point]) + + GCC_AC_ENABLE_DECIMAL_FLOAT([$target]) +--- a/src/libgcc/configure.ac ++++ b/src/libgcc/configure.ac +@@ -206,6 +206,7 @@ AC_CHECK_HEADERS(inttypes.h stdint.h std + AC_HEADER_STDC + + # Check for decimal float support. ++# touch the file, adding decimal support for kfreebsd-amd64 in config/dfp.m4 + AC_CACHE_CHECK([whether decimal floating point is supported], [libgcc_cv_dfp], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include --- gcc-7-7.5.0.orig/debian/patches/kfreebsd-unwind.diff +++ gcc-7-7.5.0/debian/patches/kfreebsd-unwind.diff @@ -0,0 +1,48 @@ +# DP: DWARF2 EH unwinding support for AMD x86-64 and x86 KFreeBSD. + +Index: b/src/libgcc/config.host +=================================================================== +--- a/src/libgcc/config.host ++++ b/src/libgcc/config.host +@@ -621,7 +621,13 @@ i[34567]86-*-linux*) + tm_file="${tm_file} i386/elf-lib.h" + md_unwind_header=i386/linux-unwind.h + ;; +-i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu) ++i[34567]86-*-kfreebsd*-gnu) ++ extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" ++ tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules" ++ tm_file="${tm_file} i386/elf-lib.h" ++ md_unwind_header=i386/freebsd-unwind.h ++ ;; ++i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu) + extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" + tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules" + tm_file="${tm_file} i386/elf-lib.h" +@@ -636,6 +642,7 @@ x86_64-*-kfreebsd*-gnu) + extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" + tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules" + tm_file="${tm_file} i386/elf-lib.h" ++ md_unwind_header=i386/freebsd-unwind.h + ;; + i[34567]86-pc-msdosdjgpp*) + ;; +Index: b/src/libgcc/config/i386/freebsd-unwind.h +=================================================================== +--- a/src/libgcc/config/i386/freebsd-unwind.h ++++ b/src/libgcc/config/i386/freebsd-unwind.h +@@ -26,6 +26,8 @@ see the files COPYING3 and COPYING.RUNTI + /* Do code reading to identify a signal frame, and set the frame + state data appropriately. See unwind-dw2.c for the structs. */ + ++#ifndef inhibit_libc ++ + #include + #include + #include +@@ -210,3 +212,5 @@ x86_freebsd_fallback_frame_state + return _URC_NO_REASON; + } + #endif /* ifdef __x86_64__ */ ++ ++#endif /* ifndef inhibit_libc */ --- gcc-7-7.5.0.orig/debian/patches/libasan-sparc.diff +++ gcc-7-7.5.0/debian/patches/libasan-sparc.diff @@ -0,0 +1,163 @@ +# DP: Re-apply sanitizer patch for sparc, dropped upstream + +# don't remove, this is regularly overwritten, see PR sanitizer/63958. + +libsanitizer/ + +2014-10-14 David S. Miller + + * sanitizer_common/sanitizer_platform_limits_linux.cc (time_t): + Define at __kernel_time_t, as needed for sparc. + (struct __old_kernel_stat): Don't check if __sparc__ is defined. + * libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h + (__sanitizer): Define struct___old_kernel_stat_sz, + struct_kernel_stat_sz, and struct_kernel_stat64_sz for sparc. + (__sanitizer_ipc_perm): Adjust for sparc targets. + (__sanitizer_shmid_ds): Likewsie. + (__sanitizer_sigaction): Likewsie. + (IOC_SIZE): Likewsie. + +Index: libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +=================================================================== +--- a/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h (revision 216223) ++++ a/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h (revision 216224) +@@ -72,6 +72,14 @@ + const unsigned struct_kernel_stat_sz = 144; + #endif + const unsigned struct_kernel_stat64_sz = 104; ++#elif defined(__sparc__) && defined(__arch64__) ++ const unsigned struct___old_kernel_stat_sz = 0; ++ const unsigned struct_kernel_stat_sz = 104; ++ const unsigned struct_kernel_stat64_sz = 144; ++#elif defined(__sparc__) && !defined(__arch64__) ++ const unsigned struct___old_kernel_stat_sz = 0; ++ const unsigned struct_kernel_stat_sz = 64; ++ const unsigned struct_kernel_stat64_sz = 104; + #endif + struct __sanitizer_perf_event_attr { + unsigned type; +@@ -94,7 +102,7 @@ + + #if defined(__powerpc64__) + const unsigned struct___old_kernel_stat_sz = 0; +-#else ++#elif !defined(__sparc__) + const unsigned struct___old_kernel_stat_sz = 32; + #endif + +@@ -173,6 +181,18 @@ + unsigned short __pad1; + unsigned long __unused1; + unsigned long __unused2; ++#elif defined(__sparc__) ++# if defined(__arch64__) ++ unsigned mode; ++ unsigned short __pad1; ++# else ++ unsigned short __pad1; ++ unsigned short mode; ++ unsigned short __pad2; ++# endif ++ unsigned short __seq; ++ unsigned long long __unused1; ++ unsigned long long __unused2; + #else + unsigned short mode; + unsigned short __pad1; +@@ -190,6 +210,26 @@ + + struct __sanitizer_shmid_ds { + __sanitizer_ipc_perm shm_perm; ++ #if defined(__sparc__) ++ # if !defined(__arch64__) ++ u32 __pad1; ++ # endif ++ long shm_atime; ++ # if !defined(__arch64__) ++ u32 __pad2; ++ # endif ++ long shm_dtime; ++ # if !defined(__arch64__) ++ u32 __pad3; ++ # endif ++ long shm_ctime; ++ uptr shm_segsz; ++ int shm_cpid; ++ int shm_lpid; ++ unsigned long shm_nattch; ++ unsigned long __glibc_reserved1; ++ unsigned long __glibc_reserved2; ++ #else + #ifndef __powerpc__ + uptr shm_segsz; + #elif !defined(__powerpc64__) +@@ -227,6 +267,7 @@ + uptr __unused4; + uptr __unused5; + #endif ++#endif + }; + #elif SANITIZER_FREEBSD + struct __sanitizer_ipc_perm { +@@ -523,9 +564,13 @@ + #else + __sanitizer_sigset_t sa_mask; + #ifndef __mips__ ++#if defined(__sparc__) ++ unsigned long sa_flags; ++#else + int sa_flags; + #endif + #endif ++#endif + #if SANITIZER_LINUX + void (*sa_restorer)(); + #endif +@@ -745,7 +790,7 @@ + + #define IOC_NRBITS 8 + #define IOC_TYPEBITS 8 +-#if defined(__powerpc__) || defined(__powerpc64__) || defined(__mips__) ++#if defined(__powerpc__) || defined(__powerpc64__) || defined(__mips__) || defined(__sparc__) + #define IOC_SIZEBITS 13 + #define IOC_DIRBITS 3 + #define IOC_NONE 1U +@@ -775,7 +820,17 @@ + #define IOC_DIR(nr) (((nr) >> IOC_DIRSHIFT) & IOC_DIRMASK) + #define IOC_TYPE(nr) (((nr) >> IOC_TYPESHIFT) & IOC_TYPEMASK) + #define IOC_NR(nr) (((nr) >> IOC_NRSHIFT) & IOC_NRMASK) ++ ++#if defined(__sparc__) ++// In sparc the 14 bits SIZE field overlaps with the ++// least significant bit of DIR, so either IOC_READ or ++// IOC_WRITE shall be 1 in order to get a non-zero SIZE. ++# define IOC_SIZE(nr) \ ++ ((((((nr) >> 29) & 0x7) & (4U|2U)) == 0)? \ ++ 0 : (((nr) >> 16) & 0x3fff)) ++#else + #define IOC_SIZE(nr) (((nr) >> IOC_SIZESHIFT) & IOC_SIZEMASK) ++#endif + + extern unsigned struct_arpreq_sz; + extern unsigned struct_ifreq_sz; +Index: libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc +=================================================================== +--- a/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc (revision 216223) ++++ a/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc (revision 216224) +@@ -36,6 +36,7 @@ + #define uid_t __kernel_uid_t + #define gid_t __kernel_gid_t + #define off_t __kernel_off_t ++#define time_t __kernel_time_t + // This header seems to contain the definitions of _kernel_ stat* structs. + #include + #undef ino_t +@@ -60,7 +61,7 @@ + } // namespace __sanitizer + + #if !defined(__powerpc64__) && !defined(__x86_64__) && !defined(__aarch64__)\ +- && !defined(__mips__) ++ && !defined(__mips__) && !defined(__sparc__) + COMPILER_CHECK(struct___old_kernel_stat_sz == sizeof(struct __old_kernel_stat)); + #endif + --- gcc-7-7.5.0.orig/debian/patches/libcc1-compiler-name.diff +++ gcc-7-7.5.0/debian/patches/libcc1-compiler-name.diff @@ -0,0 +1,192 @@ +# DP: libcc1: Fix setting the compiler name, taken from the trunk + +libcc1/ + +2017-11-16 Sergio Durigan Junior + Pedro Alves + + * Makefile.am: Remove references to c-compiler-name.h and + cp-compiler-name.h + * Makefile.in: Regenerate. + * compiler-name.hh: New file. + * libcc1.cc: Don't include c-compiler-name.h. Include + compiler-name.hh. + * libcp1.cc: Don't include cp-compiler-name.h. Include + compiler-name.hh. + +Index: libcc1/libcc1.cc +=================================================================== +--- a/src/libcc1/libcc1.cc (revision 254837) ++++ b/src/libcc1/libcc1.cc (revision 254838) +@@ -37,7 +37,7 @@ + #include "libiberty.h" + #include "xregex.h" + #include "findcomp.hh" +-#include "c-compiler-name.h" ++#include "compiler-name.hh" + #include "intl.h" + + struct libcc1; +Index: libcc1/Makefile.in +=================================================================== +--- a/src/libcc1/Makefile.in (revision 254837) ++++ b/src/libcc1/Makefile.in (revision 254838) +@@ -307,8 +307,6 @@ + cc1libdir = $(libdir)/$(libsuffix) + @ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la + @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la +-BUILT_SOURCES = c-compiler-name.h cp-compiler-name.h +-MOSTLYCLEANFILES = c-compiler-name.h cp-compiler-name.h + shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \ + marshall.cc marshall.hh rpc.hh status.hh + +@@ -344,7 +342,7 @@ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(libcc1_la_LDFLAGS) $(LTLDFLAGS) -o $@ + +-all: $(BUILT_SOURCES) cc1plugin-config.h ++all: cc1plugin-config.h + $(MAKE) $(AM_MAKEFLAGS) all-am + + .SUFFIXES: +@@ -567,15 +565,13 @@ + distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + check-am: all-am +-check: $(BUILT_SOURCES) +- $(MAKE) $(AM_MAKEFLAGS) check-am ++check: check-am + all-am: Makefile $(LTLIBRARIES) cc1plugin-config.h + installdirs: + for dir in "$(DESTDIR)$(cc1libdir)" "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +-install: $(BUILT_SOURCES) +- $(MAKE) $(AM_MAKEFLAGS) install-am ++install: install-am + install-exec: install-exec-am + install-data: install-data-am + uninstall: uninstall-am +@@ -595,7 +591,6 @@ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi + mostlyclean-generic: +- -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + + clean-generic: + +@@ -606,7 +601,6 @@ + maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +- -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + clean: clean-am + + clean-am: clean-cc1libLTLIBRARIES clean-generic clean-libtool \ +@@ -681,7 +675,7 @@ + + uninstall-am: uninstall-cc1libLTLIBRARIES uninstall-pluginLTLIBRARIES + +-.MAKE: all check install install-am install-strip ++.MAKE: all install-am install-strip + + .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ + clean-cc1libLTLIBRARIES clean-generic clean-libtool \ +@@ -702,21 +696,6 @@ + override CXXFLAGS := $(filter-out -fsanitize=address,$(CXXFLAGS)) + override LDFLAGS := $(filter-out -fsanitize=address,$(LDFLAGS)) + +-# Put this in a header so we don't run sed for each compilation. This +-# is also simpler to debug as one can easily see the constant. +-# FIXME: compute it in configure.ac and output it in config.status, or +-# introduce timestamp files for some indirection to avoid rebuilding it +-# every time. +-c-compiler-name.h: Makefile +- -rm -f $@T +- echo "#define C_COMPILER_NAME \"`echo gcc | sed '$(transform)'`\"" > $@T +- mv $@T $@ # $(SHELL) $(srcdir)/../move-if-change $@T $@ +- +-cp-compiler-name.h: Makefile +- -rm -f $@T +- echo "#define CP_COMPILER_NAME \"`echo g++ | sed '$(transform)'`\"" > $@T +- mv $@T $@ # $(SHELL) $(srcdir)/../move-if-change $@T $@ +- + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: +Index: libcc1/compiler-name.hh +=================================================================== +--- a/src/libcc1/compiler-name.hh (nonexistent) ++++ b/src/libcc1/compiler-name.hh (revision 254838) +@@ -0,0 +1,29 @@ ++/* The names of the compilers we use. ++ Copyright (C) 2017 Free Software Foundation, Inc. ++ ++This file is part of GCC. ++ ++GCC is free software; you can redistribute it and/or modify it under ++the terms of the GNU General Public License as published by the Free ++Software Foundation; either version 3, or (at your option) any later ++version. ++ ++GCC is distributed in the hope that it will be useful, but WITHOUT ANY ++WARRANTY; without even the implied warranty of MERCHANTABILITY or ++FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GCC; see the file COPYING3. If not see ++. */ ++ ++#ifndef COMPILER_NAME_H ++#define COMPILER_NAME_H ++ ++// C compiler name. ++#define C_COMPILER_NAME "gcc" ++ ++// C++ compiler name. ++#define CP_COMPILER_NAME "g++" ++ ++#endif // ! COMPILER_NAME_H +Index: libcc1/libcp1.cc +=================================================================== +--- a/src/libcc1/libcp1.cc (revision 254837) ++++ b/src/libcc1/libcp1.cc (revision 254838) +@@ -37,7 +37,7 @@ + #include "libiberty.h" + #include "xregex.h" + #include "findcomp.hh" +-#include "cp-compiler-name.h" ++#include "compiler-name.hh" + #include "intl.h" + + struct libcp1; +Index: libcc1/Makefile.am +=================================================================== +--- a/src/libcc1/Makefile.am (revision 254837) ++++ b/src/libcc1/Makefile.am (revision 254838) +@@ -45,24 +45,6 @@ + cc1lib_LTLIBRARIES = libcc1.la + endif + +-BUILT_SOURCES = c-compiler-name.h cp-compiler-name.h +-MOSTLYCLEANFILES = c-compiler-name.h cp-compiler-name.h +- +-# Put this in a header so we don't run sed for each compilation. This +-# is also simpler to debug as one can easily see the constant. +-# FIXME: compute it in configure.ac and output it in config.status, or +-# introduce timestamp files for some indirection to avoid rebuilding it +-# every time. +-c-compiler-name.h: Makefile +- -rm -f $@T +- echo "#define C_COMPILER_NAME \"`echo gcc | sed '$(transform)'`\"" > $@T +- mv $@T $@ # $(SHELL) $(srcdir)/../move-if-change $@T $@ +- +-cp-compiler-name.h: Makefile +- -rm -f $@T +- echo "#define CP_COMPILER_NAME \"`echo g++ | sed '$(transform)'`\"" > $@T +- mv $@T $@ # $(SHELL) $(srcdir)/../move-if-change $@T $@ +- + shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \ + marshall.cc marshall.hh rpc.hh status.hh + --- gcc-7-7.5.0.orig/debian/patches/libcilkrts-targets.diff +++ gcc-7-7.5.0/debian/patches/libcilkrts-targets.diff @@ -0,0 +1,21 @@ +# DP: Disable libcilkrts on KFreeBSD and the Hurd. See #734973. + +Index: b/src/libcilkrts/configure.tgt +=================================================================== +--- a/src/libcilkrts/configure.tgt ++++ b/src/libcilkrts/configure.tgt +@@ -57,3 +57,14 @@ esac + + # Disable libcilkrts on non POSIX hosted systems. + . ${srcdir}/../config/target-posix ++ ++# Disable libcilkrts on KFreeBSD and the Hurd. ++if test x$enable_libcilkrts = x ; then ++ case "${target}" in ++ *-*-linux*) ++ ;; ++ *-*-gnu* | *-*-k*bsd*-gnu) ++ UNSUPPORTED=1 ++ ;; ++ esac ++fi --- gcc-7-7.5.0.orig/debian/patches/libffi-mips.diff +++ gcc-7-7.5.0/debian/patches/libffi-mips.diff @@ -0,0 +1,711 @@ +# DP: Backport Mips go closure support, taken from libffi issue #197. + +Index: b/src/libffi/src/mips/ffi.c +=================================================================== +--- a/src/libffi/src/mips/ffi.c ++++ b/src/libffi/src/mips/ffi.c +@@ -581,14 +581,15 @@ ffi_status ffi_prep_cif_machdep(ffi_cif + /* Low level routine for calling O32 functions */ + extern int ffi_call_O32(void (*)(char *, extended_cif *, int, int), + extended_cif *, unsigned, +- unsigned, unsigned *, void (*)(void)); ++ unsigned, unsigned *, void (*)(void), void *closure); + + /* Low level routine for calling N32 functions */ + extern int ffi_call_N32(void (*)(char *, extended_cif *, int, int), + extended_cif *, unsigned, +- unsigned, void *, void (*)(void)); ++ unsigned, void *, void (*)(void), void *closure); + +-void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) ++void ffi_call_int(ffi_cif *cif, void (*fn)(void), void *rvalue, ++ void **avalue, void *closure) + { + extended_cif ecif; + +@@ -610,7 +611,7 @@ void ffi_call(ffi_cif *cif, void (*fn)(v + case FFI_O32: + case FFI_O32_SOFT_FLOAT: + ffi_call_O32(ffi_prep_args, &ecif, cif->bytes, +- cif->flags, ecif.rvalue, fn); ++ cif->flags, ecif.rvalue, fn, closure); + break; + #endif + +@@ -642,7 +643,7 @@ void ffi_call(ffi_cif *cif, void (*fn)(v + #endif + } + ffi_call_N32(ffi_prep_args, &ecif, cif->bytes, +- cif->flags, rvalue_copy, fn); ++ cif->flags, rvalue_copy, fn, closure); + if (copy_rvalue) + memcpy(ecif.rvalue, rvalue_copy + copy_offset, cif->rtype->size); + } +@@ -655,11 +656,27 @@ void ffi_call(ffi_cif *cif, void (*fn)(v + } + } + ++void ++ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) ++{ ++ ffi_call_int (cif, fn, rvalue, avalue, NULL); ++} ++ ++void ++ffi_call_go (ffi_cif *cif, void (*fn)(void), void *rvalue, ++ void **avalue, void *closure) ++{ ++ ffi_call_int (cif, fn, rvalue, avalue, closure); ++} ++ ++ + #if FFI_CLOSURES + #if defined(FFI_MIPS_O32) + extern void ffi_closure_O32(void); ++extern void ffi_go_closure_O32(void); + #else + extern void ffi_closure_N32(void); ++extern void ffi_go_closure_N32(void); + #endif /* FFI_MIPS_O32 */ + + ffi_status +@@ -770,17 +787,17 @@ ffi_prep_closure_loc (ffi_closure *closu + * Based on the similar routine for sparc. + */ + int +-ffi_closure_mips_inner_O32 (ffi_closure *closure, ++ffi_closure_mips_inner_O32 (ffi_cif *cif, ++ void (*fun)(ffi_cif*, void*, void**, void*), ++ void *user_data, + void *rvalue, ffi_arg *ar, + double *fpr) + { +- ffi_cif *cif; + void **avaluep; + ffi_arg *avalue; + ffi_type **arg_types; + int i, avn, argn, seen_int; + +- cif = closure->cif; + avalue = alloca (cif->nargs * sizeof (ffi_arg)); + avaluep = alloca (cif->nargs * sizeof (ffi_arg)); + +@@ -848,7 +865,7 @@ ffi_closure_mips_inner_O32 (ffi_closure + } + + /* Invoke the closure. */ +- (closure->fun) (cif, rvalue, avaluep, closure->user_data); ++ fun(cif, rvalue, avaluep, user_data); + + if (cif->abi == FFI_O32_SOFT_FLOAT) + { +@@ -924,11 +941,12 @@ copy_struct_N32(char *target, unsigned o + * + */ + int +-ffi_closure_mips_inner_N32 (ffi_closure *closure, ++ffi_closure_mips_inner_N32 (ffi_cif *cif, ++ void (*fun)(ffi_cif*, void*, void**, void*), ++ void *user_data, + void *rvalue, ffi_arg *ar, + ffi_arg *fpr) + { +- ffi_cif *cif; + void **avaluep; + ffi_arg *avalue; + ffi_type **arg_types; +@@ -936,7 +954,6 @@ ffi_closure_mips_inner_N32 (ffi_closure + int soft_float; + ffi_arg *argp; + +- cif = closure->cif; + soft_float = cif->abi == FFI_N64_SOFT_FLOAT + || cif->abi == FFI_N32_SOFT_FLOAT; + avalue = alloca (cif->nargs * sizeof (ffi_arg)); +@@ -1048,11 +1065,49 @@ ffi_closure_mips_inner_N32 (ffi_closure + } + + /* Invoke the closure. */ +- (closure->fun) (cif, rvalue, avaluep, closure->user_data); ++ fun (cif, rvalue, avaluep, user_data); + + return cif->flags >> (FFI_FLAG_BITS * 8); + } + + #endif /* FFI_MIPS_N32 */ + ++#if defined(FFI_MIPS_O32) ++extern void ffi_closure_O32(void); ++extern void ffi_go_closure_O32(void); ++#else ++extern void ffi_closure_N32(void); ++extern void ffi_go_closure_N32(void); ++#endif /* FFI_MIPS_O32 */ ++ ++ffi_status ++ffi_prep_go_closure (ffi_go_closure* closure, ffi_cif* cif, ++ void (*fun)(ffi_cif*,void*,void**,void*)) ++{ ++ void * fn; ++ ++#if defined(FFI_MIPS_O32) ++ if (cif->abi != FFI_O32 && cif->abi != FFI_O32_SOFT_FLOAT) ++ return FFI_BAD_ABI; ++ fn = ffi_go_closure_O32; ++#else ++#if _MIPS_SIM ==_ABIN32 ++ if (cif->abi != FFI_N32 ++ && cif->abi != FFI_N32_SOFT_FLOAT) ++ return FFI_BAD_ABI; ++#else ++ if (cif->abi != FFI_N64 ++ && cif->abi != FFI_N64_SOFT_FLOAT) ++ return FFI_BAD_ABI; ++#endif ++ fn = ffi_go_closure_N32; ++#endif /* FFI_MIPS_O32 */ ++ ++ closure->tramp = (void *)fn; ++ closure->cif = cif; ++ closure->fun = fun; ++ ++ return FFI_OK; ++} ++ + #endif /* FFI_CLOSURES */ +Index: b/src/libffi/src/mips/ffitarget.h +=================================================================== +--- a/src/libffi/src/mips/ffitarget.h ++++ b/src/libffi/src/mips/ffitarget.h +@@ -231,12 +231,14 @@ typedef enum ffi_abi { + + #if defined(FFI_MIPS_O32) + #define FFI_CLOSURES 1 ++#define FFI_GO_CLOSURES 1 + #define FFI_TRAMPOLINE_SIZE 20 + #else + /* N32/N64. */ + # define FFI_CLOSURES 1 ++#define FFI_GO_CLOSURES 1 + #if _MIPS_SIM==_ABI64 +-#define FFI_TRAMPOLINE_SIZE 52 ++#define FFI_TRAMPOLINE_SIZE 56 + #else + #define FFI_TRAMPOLINE_SIZE 20 + #endif +Index: b/src/libffi/src/mips/n32.S +=================================================================== +--- a/src/libffi/src/mips/n32.S ++++ b/src/libffi/src/mips/n32.S +@@ -37,8 +37,12 @@ + #define flags a3 + #define raddr a4 + #define fn a5 ++#define closure a6 + +-#define SIZEOF_FRAME ( 8 * FFI_SIZEOF_ARG ) ++/* Note: to keep stack 16 byte aligned we need even number slots ++ used 9 slots here ++*/ ++#define SIZEOF_FRAME ( 10 * FFI_SIZEOF_ARG ) + + #ifdef __GNUC__ + .abicalls +@@ -51,24 +55,25 @@ + .globl ffi_call_N32 + .ent ffi_call_N32 + ffi_call_N32: +-.LFB3: ++.LFB0: + .frame $fp, SIZEOF_FRAME, ra + .mask 0xc0000000,-FFI_SIZEOF_ARG + .fmask 0x00000000,0 + + # Prologue + SUBU $sp, SIZEOF_FRAME # Frame size +-.LCFI0: ++.LCFI00: + REG_S $fp, SIZEOF_FRAME - 2*FFI_SIZEOF_ARG($sp) # Save frame pointer + REG_S ra, SIZEOF_FRAME - 1*FFI_SIZEOF_ARG($sp) # Save return address +-.LCFI1: ++.LCFI01: + move $fp, $sp +-.LCFI3: ++.LCFI02: + move t9, callback # callback function pointer + REG_S bytes, 2*FFI_SIZEOF_ARG($fp) # bytes + REG_S flags, 3*FFI_SIZEOF_ARG($fp) # flags + REG_S raddr, 4*FFI_SIZEOF_ARG($fp) # raddr + REG_S fn, 5*FFI_SIZEOF_ARG($fp) # fn ++ REG_S closure, 6*FFI_SIZEOF_ARG($fp) # closure + + # Allocate at least 4 words in the argstack + move v0, bytes +@@ -200,6 +205,9 @@ callit: + # Load the function pointer + REG_L t9, 5*FFI_SIZEOF_ARG($fp) + ++ # install the static chain(t7=$15) ++ REG_L t7, 6*FFI_SIZEOF_ARG($fp) ++ + # If the return value pointer is NULL, assume no return value. + REG_L t5, 4*FFI_SIZEOF_ARG($fp) + beqz t5, noretval +@@ -348,7 +356,7 @@ epilogue: + ADDU $sp, SIZEOF_FRAME # Fix stack pointer + j ra + +-.LFE3: ++.LFE0: + .end ffi_call_N32 + + /* ffi_closure_N32. Expects address of the passed-in ffi_closure in t0 +@@ -408,6 +416,41 @@ epilogue: + #define GP_OFF2 (0 * FFI_SIZEOF_ARG) + + .align 2 ++ .globl ffi_go_closure_N32 ++ .ent ffi_go_closure_N32 ++ffi_go_closure_N32: ++.LFB1: ++ .frame $sp, SIZEOF_FRAME2, ra ++ .mask 0x90000000,-(SIZEOF_FRAME2 - RA_OFF2) ++ .fmask 0x00000000,0 ++ SUBU $sp, SIZEOF_FRAME2 ++.LCFI10: ++ .cpsetup t9, GP_OFF2, ffi_go_closure_N32 ++ REG_S ra, RA_OFF2($sp) # Save return address ++.LCFI11: ++ ++ REG_S a0, A0_OFF2($sp) ++ REG_S a1, A1_OFF2($sp) ++ REG_S a2, A2_OFF2($sp) ++ REG_S a3, A3_OFF2($sp) ++ REG_S a4, A4_OFF2($sp) ++ REG_S a5, A5_OFF2($sp) ++ ++ # Call ffi_closure_mips_inner_N32 to do the real work. ++ LA t9, ffi_closure_mips_inner_N32 ++ REG_L a0, 8($15) # cif ++ REG_L a1, 16($15) # fun ++ move a2, t7 # userdata=closure ++ ADDU a3, $sp, V0_OFF2 # rvalue ++ ADDU a4, $sp, A0_OFF2 # ar ++ ADDU a5, $sp, F12_OFF2 # fpr ++ ++ b $do_closure ++ ++.LFE1: ++ .end ffi_go_closure_N32 ++ ++ .align 2 + .globl ffi_closure_N32 + .ent ffi_closure_N32 + ffi_closure_N32: +@@ -416,18 +459,29 @@ ffi_closure_N32: + .mask 0x90000000,-(SIZEOF_FRAME2 - RA_OFF2) + .fmask 0x00000000,0 + SUBU $sp, SIZEOF_FRAME2 +-.LCFI5: ++.LCFI20: + .cpsetup t9, GP_OFF2, ffi_closure_N32 + REG_S ra, RA_OFF2($sp) # Save return address +-.LCFI6: +- # Store all possible argument registers. If there are more than +- # fit in registers, then they were stored on the stack. ++.LCFI21: + REG_S a0, A0_OFF2($sp) + REG_S a1, A1_OFF2($sp) + REG_S a2, A2_OFF2($sp) + REG_S a3, A3_OFF2($sp) + REG_S a4, A4_OFF2($sp) + REG_S a5, A5_OFF2($sp) ++ ++ # Call ffi_closure_mips_inner_N32 to do the real work. ++ LA t9, ffi_closure_mips_inner_N32 ++ REG_L a0, 56($12) # cif ++ REG_L a1, 64($12) # fun ++ REG_L a2, 72($12) # user_data ++ ADDU a3, $sp, V0_OFF2 ++ ADDU a4, $sp, A0_OFF2 ++ ADDU a5, $sp, F12_OFF2 ++ ++$do_closure: ++ # Store all possible argument registers. If there are more than ++ # fit in registers, then they were stored on the stack. + REG_S a6, A6_OFF2($sp) + REG_S a7, A7_OFF2($sp) + +@@ -441,12 +495,6 @@ ffi_closure_N32: + s.d $f18, F18_OFF2($sp) + s.d $f19, F19_OFF2($sp) + +- # Call ffi_closure_mips_inner_N32 to do the real work. +- LA t9, ffi_closure_mips_inner_N32 +- move a0, $12 # Pointer to the ffi_closure +- ADDU a1, $sp, V0_OFF2 +- ADDU a2, $sp, A0_OFF2 +- ADDU a3, $sp, F12_OFF2 + jalr t9 + + # Return flags are in v0 +@@ -533,46 +581,66 @@ cls_epilogue: + .align EH_FRAME_ALIGN + .LECIE1: + +-.LSFDE1: +- .4byte .LEFDE1-.LASFDE1 # length. +-.LASFDE1: +- .4byte .LASFDE1-.Lframe1 # CIE_pointer. +- FDE_ADDR_BYTES .LFB3 # initial_location. +- FDE_ADDR_BYTES .LFE3-.LFB3 # address_range. ++.LSFDE0: ++ .4byte .LEFDE0-.LASFDE0 # length. ++.LASFDE0: ++ .4byte .LASFDE0-.Lframe1 # CIE_pointer. ++ FDE_ADDR_BYTES .LFB0 # initial_location. ++ FDE_ADDR_BYTES .LFE0-.LFB0 # address_range. + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte .LCFI0-.LFB3 # to .LCFI0 ++ .4byte .LCFI00-.LFB0 # to .LCFI00 + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 SIZEOF_FRAME # adjust stack.by SIZEOF_FRAME + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte .LCFI1-.LCFI0 # to .LCFI1 ++ .4byte .LCFI01-.LCFI00 # to .LCFI01 + .byte 0x9e # DW_CFA_offset of $fp + .uleb128 2*FFI_SIZEOF_ARG/4 # + .byte 0x9f # DW_CFA_offset of ra + .uleb128 1*FFI_SIZEOF_ARG/4 # + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte .LCFI3-.LCFI1 # to .LCFI3 ++ .4byte .LCFI02-.LCFI01 # to .LCFI02 + .byte 0xd # DW_CFA_def_cfa_register + .uleb128 0x1e # in $fp + .align EH_FRAME_ALIGN ++.LEFDE0: ++ ++.LSFDE1: ++ .4byte .LEFDE1-.LASFDE1 # length ++.LASFDE1: ++ .4byte .LASFDE1-.Lframe1 # CIE_pointer. ++ FDE_ADDR_BYTES .LFB1 # initial_location. ++ FDE_ADDR_BYTES .LFE1-.LFB1 # address_range. ++ .byte 0x4 # DW_CFA_advance_loc4 ++ .4byte .LCFI10-.LFB1 # to .LCFI10 ++ .byte 0xe # DW_CFA_def_cfa_offset ++ .uleb128 SIZEOF_FRAME2 # adjust stack.by SIZEOF_FRAME ++ .byte 0x4 # DW_CFA_advance_loc4 ++ .4byte .LCFI11-.LCFI10 # to .LCFI11 ++ .byte 0x9c # DW_CFA_offset of $gp ($28) ++ .uleb128 (SIZEOF_FRAME2 - GP_OFF2)/4 ++ .byte 0x9f # DW_CFA_offset of ra ($31) ++ .uleb128 (SIZEOF_FRAME2 - RA_OFF2)/4 ++ .align EH_FRAME_ALIGN + .LEFDE1: +-.LSFDE3: +- .4byte .LEFDE3-.LASFDE3 # length +-.LASFDE3: +- .4byte .LASFDE3-.Lframe1 # CIE_pointer. ++ ++.LSFDE2: ++ .4byte .LEFDE2-.LASFDE2 # length ++.LASFDE2: ++ .4byte .LASFDE2-.Lframe1 # CIE_pointer. + FDE_ADDR_BYTES .LFB2 # initial_location. + FDE_ADDR_BYTES .LFE2-.LFB2 # address_range. + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte .LCFI5-.LFB2 # to .LCFI5 ++ .4byte .LCFI20-.LFB2 # to .LCFI20 + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 SIZEOF_FRAME2 # adjust stack.by SIZEOF_FRAME + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte .LCFI6-.LCFI5 # to .LCFI6 ++ .4byte .LCFI21-.LCFI20 # to .LCFI21 + .byte 0x9c # DW_CFA_offset of $gp ($28) + .uleb128 (SIZEOF_FRAME2 - GP_OFF2)/4 + .byte 0x9f # DW_CFA_offset of ra ($31) + .uleb128 (SIZEOF_FRAME2 - RA_OFF2)/4 + .align EH_FRAME_ALIGN +-.LEFDE3: ++.LEFDE2: + #endif /* __GNUC__ */ + + #endif +Index: b/src/libffi/src/mips/o32.S +=================================================================== +--- a/src/libffi/src/mips/o32.S ++++ b/src/libffi/src/mips/o32.S +@@ -50,14 +50,14 @@ ffi_call_O32: + $LFB0: + # Prologue + SUBU $sp, SIZEOF_FRAME # Frame size +-$LCFI0: ++$LCFI00: + REG_S $fp, FP_OFF($sp) # Save frame pointer +-$LCFI1: ++$LCFI01: + REG_S ra, RA_OFF($sp) # Save return address +-$LCFI2: ++$LCFI02: + move $fp, $sp + +-$LCFI3: ++$LCFI03: + move t9, callback # callback function pointer + REG_S flags, A3_OFF($fp) # flags + +@@ -132,6 +132,9 @@ pass_f_d: + l.d $f14, 2*FFI_SIZEOF_ARG($sp) # passing double and float + + call_it: ++ # Load the static chain pointer ++ REG_L t7, SIZEOF_FRAME + 6*FFI_SIZEOF_ARG($fp) ++ + # Load the function pointer + REG_L t9, SIZEOF_FRAME + 5*FFI_SIZEOF_ARG($fp) + +@@ -204,13 +207,15 @@ $LFE0: + -8 - f14 (le low, be high) + -9 - f12 (le high, be low) + -10 - f12 (le low, be high) +- -11 - Called function a3 save +- -12 - Called function a2 save +- -13 - Called function a1 save +- -14 - Called function a0 save, our sp and fp point here ++ -11 - Called function a5 save ++ -12 - Called function a4 save ++ -13 - Called function a3 save ++ -14 - Called function a2 save ++ -15 - Called function a1 save ++ -16 - Called function a0 save, our sp and fp point here + */ + +-#define SIZEOF_FRAME2 (14 * FFI_SIZEOF_ARG) ++#define SIZEOF_FRAME2 (16 * FFI_SIZEOF_ARG) + #define A3_OFF2 (SIZEOF_FRAME2 + 3 * FFI_SIZEOF_ARG) + #define A2_OFF2 (SIZEOF_FRAME2 + 2 * FFI_SIZEOF_ARG) + #define A1_OFF2 (SIZEOF_FRAME2 + 1 * FFI_SIZEOF_ARG) +@@ -225,13 +230,71 @@ $LFE0: + #define FA_1_0_OFF2 (SIZEOF_FRAME2 - 8 * FFI_SIZEOF_ARG) + #define FA_0_1_OFF2 (SIZEOF_FRAME2 - 9 * FFI_SIZEOF_ARG) + #define FA_0_0_OFF2 (SIZEOF_FRAME2 - 10 * FFI_SIZEOF_ARG) ++#define CALLED_A5_OFF2 (SIZEOF_FRAME2 - 11 * FFI_SIZEOF_ARG) ++#define CALLED_A4_OFF2 (SIZEOF_FRAME2 - 12 * FFI_SIZEOF_ARG) + + .text ++ ++ .align 2 ++ .globl ffi_go_closure_O32 ++ .ent ffi_go_closure_O32 ++ffi_go_closure_O32: ++$LFB1: ++ # Prologue ++ .frame $fp, SIZEOF_FRAME2, ra ++ .set noreorder ++ .cpload t9 ++ .set reorder ++ SUBU $sp, SIZEOF_FRAME2 ++ .cprestore GP_OFF2 ++$LCFI10: ++ ++ REG_S $16, S0_OFF2($sp) # Save s0 ++ REG_S $fp, FP_OFF2($sp) # Save frame pointer ++ REG_S ra, RA_OFF2($sp) # Save return address ++$LCFI11: ++ ++ move $fp, $sp ++$LCFI12: ++ ++ REG_S a0, A0_OFF2($fp) ++ REG_S a1, A1_OFF2($fp) ++ REG_S a2, A2_OFF2($fp) ++ REG_S a3, A3_OFF2($fp) ++ ++ # Load ABI enum to s0 ++ REG_L $16, 4($15) # cif ++ REG_L $16, 0($16) # abi is first member. ++ ++ li $13, 1 # FFI_O32 ++ bne $16, $13, 1f # Skip fp save if FFI_O32_SOFT_FLOAT ++ ++ # Store all possible float/double registers. ++ s.d $f12, FA_0_0_OFF2($fp) ++ s.d $f14, FA_1_0_OFF2($fp) ++1: ++ # prepare arguments for ffi_closure_mips_inner_O32 ++ REG_L a0, 4($15) # cif ++ REG_L a1, 8($15) # fun ++ move a2, $15 # user_data = go closure ++ addu a3, $fp, V0_OFF2 # rvalue ++ ++ addu t9, $fp, A0_OFF2 # ar ++ REG_S t9, CALLED_A4_OFF2($fp) ++ ++ addu t9, $fp, FA_0_0_OFF2 #fpr ++ REG_S t9, CALLED_A5_OFF2($fp) ++ ++ b $do_closure ++ ++$LFE1: ++ .end ffi_go_closure_O32 ++ + .align 2 + .globl ffi_closure_O32 + .ent ffi_closure_O32 + ffi_closure_O32: +-$LFB1: ++$LFB2: + # Prologue + .frame $fp, SIZEOF_FRAME2, ra + .set noreorder +@@ -239,14 +302,14 @@ $LFB1: + .set reorder + SUBU $sp, SIZEOF_FRAME2 + .cprestore GP_OFF2 +-$LCFI4: ++$LCFI20: + REG_S $16, S0_OFF2($sp) # Save s0 + REG_S $fp, FP_OFF2($sp) # Save frame pointer + REG_S ra, RA_OFF2($sp) # Save return address +-$LCFI6: ++$LCFI21: + move $fp, $sp + +-$LCFI7: ++$LCFI22: + # Store all possible argument registers. If there are more than + # four arguments, then they are stored above where we put a3. + REG_S a0, A0_OFF2($fp) +@@ -265,12 +328,21 @@ $LCFI7: + s.d $f12, FA_0_0_OFF2($fp) + s.d $f14, FA_1_0_OFF2($fp) + 1: +- # Call ffi_closure_mips_inner_O32 to do the work. ++ # prepare arguments for ffi_closure_mips_inner_O32 ++ REG_L a0, 20($12) # cif pointer follows tramp. ++ REG_L a1, 24($12) # fun ++ REG_L a2, 28($12) # user_data ++ addu a3, $fp, V0_OFF2 # rvalue ++ ++ addu t9, $fp, A0_OFF2 # ar ++ REG_S t9, CALLED_A4_OFF2($fp) ++ ++ addu t9, $fp, FA_0_0_OFF2 #fpr ++ REG_S t9, CALLED_A5_OFF2($fp) ++ ++$do_closure: + la t9, ffi_closure_mips_inner_O32 +- move a0, $12 # Pointer to the ffi_closure +- addu a1, $fp, V0_OFF2 +- addu a2, $fp, A0_OFF2 +- addu a3, $fp, FA_0_0_OFF2 ++ # Call ffi_closure_mips_inner_O32 to do the work. + jalr t9 + + # Load the return value into the appropriate register. +@@ -300,7 +372,7 @@ closure_done: + REG_L ra, RA_OFF2($sp) # Restore return address + ADDU $sp, SIZEOF_FRAME2 + j ra +-$LFE1: ++$LFE2: + .end ffi_closure_O32 + + /* DWARF-2 unwind info. */ +@@ -322,6 +394,7 @@ $LSCIE0: + .uleb128 0x0 + .align 2 + $LECIE0: ++ + $LSFDE0: + .4byte $LEFDE0-$LASFDE0 # FDE Length + $LASFDE0: +@@ -330,11 +403,11 @@ $LASFDE0: + .4byte $LFE0-$LFB0 # FDE address range + .uleb128 0x0 # Augmentation size + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI0-$LFB0 ++ .4byte $LCFI00-$LFB0 + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 0x18 + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI2-$LCFI0 ++ .4byte $LCFI01-$LCFI00 + .byte 0x11 # DW_CFA_offset_extended_sf + .uleb128 0x1e # $fp + .sleb128 -2 # SIZEOF_FRAME2 - 2*FFI_SIZEOF_ARG($sp) +@@ -342,12 +415,13 @@ $LASFDE0: + .uleb128 0x1f # $ra + .sleb128 -1 # SIZEOF_FRAME2 - 1*FFI_SIZEOF_ARG($sp) + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI3-$LCFI2 ++ .4byte $LCFI02-$LCFI01 + .byte 0xc # DW_CFA_def_cfa + .uleb128 0x1e + .uleb128 0x18 + .align 2 + $LEFDE0: ++ + $LSFDE1: + .4byte $LEFDE1-$LASFDE1 # FDE Length + $LASFDE1: +@@ -356,11 +430,11 @@ $LASFDE1: + .4byte $LFE1-$LFB1 # FDE address range + .uleb128 0x0 # Augmentation size + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI4-$LFB1 ++ .4byte $LCFI10-$LFB1 + .byte 0xe # DW_CFA_def_cfa_offset +- .uleb128 0x38 ++ .uleb128 SIZEOF_FRAME2 + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI6-$LCFI4 ++ .4byte $LCFI11-$LCFI10 + .byte 0x11 # DW_CFA_offset_extended_sf + .uleb128 0x10 # $16 + .sleb128 -3 # SIZEOF_FRAME2 - 3*FFI_SIZEOF_ARG($sp) +@@ -371,11 +445,41 @@ $LASFDE1: + .uleb128 0x1f # $ra + .sleb128 -1 # SIZEOF_FRAME2 - 1*FFI_SIZEOF_ARG($sp) + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI7-$LCFI6 ++ .4byte $LCFI12-$LCFI11 + .byte 0xc # DW_CFA_def_cfa + .uleb128 0x1e +- .uleb128 0x38 ++ .uleb128 SIZEOF_FRAME2 + .align 2 + $LEFDE1: + ++$LSFDE2: ++ .4byte $LEFDE2-$LASFDE2 # FDE Length ++$LASFDE2: ++ .4byte $LASFDE2-$Lframe0 # FDE CIE offset ++ .4byte $LFB2 # FDE initial location ++ .4byte $LFE2-$LFB2 # FDE address range ++ .uleb128 0x0 # Augmentation size ++ .byte 0x4 # DW_CFA_advance_loc4 ++ .4byte $LCFI20-$LFB2 ++ .byte 0xe # DW_CFA_def_cfa_offset ++ .uleb128 SIZEOF_FRAME2 ++ .byte 0x4 # DW_CFA_advance_loc4 ++ .4byte $LCFI21-$LCFI20 ++ .byte 0x11 # DW_CFA_offset_extended_sf ++ .uleb128 0x10 # $16 ++ .sleb128 -3 # SIZEOF_FRAME2 - 3*FFI_SIZEOF_ARG($sp) ++ .byte 0x11 # DW_CFA_offset_extended_sf ++ .uleb128 0x1e # $fp ++ .sleb128 -2 # SIZEOF_FRAME2 - 2*FFI_SIZEOF_ARG($sp) ++ .byte 0x11 # DW_CFA_offset_extended_sf ++ .uleb128 0x1f # $ra ++ .sleb128 -1 # SIZEOF_FRAME2 - 1*FFI_SIZEOF_ARG($sp) ++ .byte 0x4 # DW_CFA_advance_loc4 ++ .4byte $LCFI22-$LCFI21 ++ .byte 0xc # DW_CFA_def_cfa ++ .uleb128 0x1e ++ .uleb128 SIZEOF_FRAME2 ++ .align 2 ++$LEFDE2: ++ + #endif --- gcc-7-7.5.0.orig/debian/patches/libffi-mipsen-r6.diff +++ gcc-7-7.5.0/debian/patches/libffi-mipsen-r6.diff @@ -0,0 +1,44 @@ +# DP: libffi: mips/n32.S: disable .set mips4 on mips r6 + +Index: b/src/libffi/src/mips/n32.S +=================================================================== +--- a/src/libffi/src/mips/n32.S ++++ b/src/libffi/src/mips/n32.S +@@ -43,7 +43,9 @@ + #ifdef __GNUC__ + .abicalls + #endif ++#if !defined(__mips_isa_rev) || (__mips_isa_rev<6) + .set mips4 ++#endif + .text + .align 2 + .globl ffi_call_N32 +Index: b/src/libffi/src/mips/ffi.c +=================================================================== +--- a/src/libffi/src/mips/ffi.c ++++ b/src/libffi/src/mips/ffi.c +@@ -698,7 +698,11 @@ ffi_prep_closure_loc (ffi_closure *closu + /* lui $12,high(codeloc) */ + tramp[2] = 0x3c0c0000 | ((unsigned)codeloc >> 16); + /* jr $25 */ ++#if !defined(__mips_isa_rev) || (__mips_isa_rev<6) + tramp[3] = 0x03200008; ++#else ++ tramp[3] = 0x03200009; ++#endif + /* ori $12,low(codeloc) */ + tramp[4] = 0x358c0000 | ((unsigned)codeloc & 0xffff); + #else +@@ -726,7 +730,11 @@ ffi_prep_closure_loc (ffi_closure *closu + /* ori $25,low(fn) */ + tramp[10] = 0x37390000 | ((unsigned long)fn & 0xffff); + /* jr $25 */ ++#if !defined(__mips_isa_rev) || (__mips_isa_rev<6) + tramp[11] = 0x03200008; ++#else ++ tramp[11] = 0x03200009; ++#endif + /* ori $12,low(codeloc) */ + tramp[12] = 0x358c0000 | ((unsigned long)codeloc & 0xffff); + --- gcc-7-7.5.0.orig/debian/patches/libffi-pax.diff +++ gcc-7-7.5.0/debian/patches/libffi-pax.diff @@ -0,0 +1,161 @@ +From 757876336c183f5b20b6620d674cc9817fd0d280 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20B=C3=BChler?= +Date: Wed, 7 Sep 2016 15:50:54 +0200 +Subject: [PATCH 2/2] always check for PaX MPROTECT on linux, make EMUTRAMP + experimental + +- ffi_prep_closure_loc doesn't necessarily generate trampolines recognized by + PaX EMUTRAMP handler; there is no way to check before, and it isn't working +on x86-64 right now -> experimental +- if MPROTECT is enabled use the same workaround as is used for SELinux (double + mmap()) +--- + configure.ac | 11 +++++++--- + src/closures.c | 68 +++++++++++++++++++++++++++++++++++++++------------------- + 2 files changed, 54 insertions(+), 25 deletions(-) + +--- a/src/libffi/configure.ac ++++ b/src/libffi/configure.ac +@@ -177,12 +177,17 @@ + ;; + esac + +-# On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC. ++# On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC; ++# if EMUTRAMP is active too ffi could try mapping without PROT_EXEC, ++# but the kernel needs to recognize the trampoline generated by ffi. ++# Otherwise fallback to double mmap trick. + AC_ARG_ENABLE(pax_emutramp, +- [ --enable-pax_emutramp enable pax emulated trampolines, for we can't use PROT_EXEC], ++ [ --enable-pax_emutramp enable pax emulated trampolines (experimental)], + if test "$enable_pax_emutramp" = "yes"; then ++ AC_MSG_WARN([EMUTRAMP is experimental only. Use --enable-pax_emutramp=experimental to enforce.]) ++ elif test "$enable_pax_emutramp" = "experimental"; then + AC_DEFINE(FFI_MMAP_EXEC_EMUTRAMP_PAX, 1, +- [Define this if you want to enable pax emulated trampolines]) ++ [Define this if you want to enable pax emulated trampolines (experimental)]) + fi) + + FFI_EXEC_TRAMPOLINE_TABLE=0 +--- a/src/libffi/src/closures.c ++++ b/src/libffi/src/closures.c +@@ -53,14 +53,18 @@ + # endif + #endif + +-#if FFI_MMAP_EXEC_WRIT && !defined FFI_MMAP_EXEC_SELINUX +-# ifdef __linux__ ++#if FFI_MMAP_EXEC_WRIT && defined __linux__ ++# if !defined FFI_MMAP_EXEC_SELINUX + /* When defined to 1 check for SELinux and if SELinux is active, + don't attempt PROT_EXEC|PROT_WRITE mapping at all, as that + might cause audit messages. */ + # define FFI_MMAP_EXEC_SELINUX 1 +-# endif +-#endif ++# endif /* !defined FFI_MMAP_EXEC_SELINUX */ ++# if !defined FFI_MMAP_PAX ++/* Also check for PaX MPROTECT */ ++# define FFI_MMAP_PAX 1 ++# endif /* !defined FFI_MMAP_PAX */ ++#endif /* FFI_MMAP_EXEC_WRIT && defined __linux__ */ + + #if FFI_CLOSURES + +@@ -172,14 +176,18 @@ + + #endif /* !FFI_MMAP_EXEC_SELINUX */ + +-/* On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC. */ +-#ifdef FFI_MMAP_EXEC_EMUTRAMP_PAX ++/* On PaX enable kernels that have MPROTECT enabled we can't use PROT_EXEC. */ ++#if defined FFI_MMAP_PAX + #include + +-static int emutramp_enabled = -1; ++enum { ++ PAX_MPROTECT = (1 << 0), ++ PAX_EMUTRAMP = (1 << 1), ++}; ++static int cached_pax_flags = -1; + + static int +-emutramp_enabled_check (void) ++pax_flags_check (void) + { + char *buf = NULL; + size_t len = 0; +@@ -193,9 +201,10 @@ + while (getline (&buf, &len, f) != -1) + if (!strncmp (buf, "PaX:", 4)) + { +- char emutramp; +- if (sscanf (buf, "%*s %*c%c", &emutramp) == 1) +- ret = (emutramp == 'E'); ++ if (NULL != strchr (buf + 4, 'M')) ++ ret |= PAX_MPROTECT; ++ if (NULL != strchr (buf + 4, 'E')) ++ ret |= PAX_EMUTRAMP; + break; + } + free (buf); +@@ -203,9 +212,13 @@ + return ret; + } + +-#define is_emutramp_enabled() (emutramp_enabled >= 0 ? emutramp_enabled \ +- : (emutramp_enabled = emutramp_enabled_check ())) +-#endif /* FFI_MMAP_EXEC_EMUTRAMP_PAX */ ++#define get_pax_flags() (cached_pax_flags >= 0 ? cached_pax_flags \ ++ : (cached_pax_flags = pax_flags_check ())) ++#define has_pax_flags(flags) ((flags) == ((flags) & get_pax_flags ())) ++#define is_mprotect_enabled() (has_pax_flags (PAX_MPROTECT)) ++#define is_emutramp_enabled() (has_pax_flags (PAX_EMUTRAMP)) ++ ++#endif /* defined FFI_MMAP_PAX */ + + #elif defined (__CYGWIN__) || defined(__INTERIX) + +@@ -216,9 +229,10 @@ + + #endif /* !defined(X86_WIN32) && !defined(X86_WIN64) */ + +-#ifndef FFI_MMAP_EXEC_EMUTRAMP_PAX +-#define is_emutramp_enabled() 0 +-#endif /* FFI_MMAP_EXEC_EMUTRAMP_PAX */ ++#if !defined FFI_MMAP_PAX ++# define is_mprotect_enabled() 0 ++# define is_emutramp_enabled() 0 ++#endif /* !defined FFI_MMAP_PAX */ + + /* Declare all functions defined in dlmalloc.c as static. */ + static void *dlmalloc(size_t); +@@ -525,13 +539,23 @@ + printf ("mapping in %zi\n", length); + #endif + +- if (execfd == -1 && is_emutramp_enabled ()) ++ /* -1 != execfd hints that we already decided to use dlmmap_locked ++ last time. */ ++ if (execfd == -1 && is_mprotect_enabled ()) + { +- ptr = mmap (start, length, prot & ~PROT_EXEC, flags, fd, offset); +- return ptr; ++#ifdef FFI_MMAP_EXEC_EMUTRAMP_PAX ++ if (is_emutramp_enabled ()) ++ { ++ /* emutramp requires the kernel recognizing the trampoline pattern ++ generated by ffi_prep_closure_loc; there is no way to test ++ in advance whether this will work, so this is experimental. */ ++ ptr = mmap (start, length, prot & ~PROT_EXEC, flags, fd, offset); ++ return ptr; ++ } ++#endif ++ /* fallback to dlmmap_locked. */ + } +- +- if (execfd == -1 && !is_selinux_enabled ()) ++ else if (execfd == -1 && !is_selinux_enabled ()) + { + ptr = mmap (start, length, prot | PROT_EXEC, flags, fd, offset); + --- gcc-7-7.5.0.orig/debian/patches/libffi-race-condition.diff +++ gcc-7-7.5.0/debian/patches/libffi-race-condition.diff @@ -0,0 +1,33 @@ +From 48d2e46528fb6e621d95a7fa194069fd136b712d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20B=C3=BChler?= +Date: Wed, 7 Sep 2016 15:49:48 +0200 +Subject: [PATCH 1/2] dlmmap_locked always needs locking as it always modifies + execsize + +--- + src/closures.c | 13 ++++--------- + 1 file changed, 4 insertions(+), 9 deletions(-) + +--- a/src/libffi/src/closures.c ++++ b/src/libffi/src/closures.c +@@ -568,16 +568,11 @@ + MREMAP_DUP and prot at this point. */ + } + +- if (execsize == 0 || execfd == -1) +- { +- pthread_mutex_lock (&open_temp_exec_file_mutex); +- ptr = dlmmap_locked (start, length, prot, flags, offset); +- pthread_mutex_unlock (&open_temp_exec_file_mutex); ++ pthread_mutex_lock (&open_temp_exec_file_mutex); ++ ptr = dlmmap_locked (start, length, prot, flags, offset); ++ pthread_mutex_unlock (&open_temp_exec_file_mutex); + +- return ptr; +- } +- +- return dlmmap_locked (start, length, prot, flags, offset); ++ return ptr; + } + + /* Release memory at the given address, as well as the corresponding --- gcc-7-7.5.0.orig/debian/patches/libffi-riscv.diff +++ gcc-7-7.5.0/debian/patches/libffi-riscv.diff @@ -0,0 +1,860 @@ +# DP: Backport RISC-V support, taken from libffi commit 3840d49aaa + +--- a/src/libffi/Makefile.am ++++ b/src/libffi/Makefile.am +@@ -138,6 +138,7 @@ noinst_HEADERS = \ + src/or1k/ffitarget.h \ + src/pa/ffitarget.h \ + src/powerpc/ffitarget.h src/powerpc/asm.h src/powerpc/ffi_powerpc.h \ ++ src/riscv/ffitarget.h \ + src/s390/ffitarget.h \ + src/sh/ffitarget.h \ + src/sh64/ffitarget.h \ +@@ -173,6 +174,7 @@ EXTRA_libffi_la_SOURCES = \ + src/powerpc/linux64_closure.S src/powerpc/ppc_closure.S \ + src/powerpc/aix.S src/powerpc/darwin.S src/powerpc/aix_closure.S \ + src/powerpc/darwin_closure.S src/powerpc/ffi_darwin.c \ ++ src/riscv/ffi.c src/riscv/sysv.S \ + src/s390/ffi.c src/s390/sysv.S \ + src/sh/ffi.c src/sh/sysv.S \ + src/sh64/ffi.c src/sh64/sysv.S \ +--- a/src/libffi/Makefile.in ++++ b/src/libffi/Makefile.in +@@ -432,6 +432,7 @@ noinst_HEADERS = \ + src/or1k/ffitarget.h \ + src/pa/ffitarget.h \ + src/powerpc/ffitarget.h src/powerpc/asm.h src/powerpc/ffi_powerpc.h \ ++ src/riscv/ffitarget.h \ + src/s390/ffitarget.h \ + src/sh/ffitarget.h \ + src/sh64/ffitarget.h \ +@@ -467,6 +468,7 @@ EXTRA_libffi_la_SOURCES = \ + src/powerpc/linux64_closure.S src/powerpc/ppc_closure.S \ + src/powerpc/aix.S src/powerpc/darwin.S src/powerpc/aix_closure.S \ + src/powerpc/darwin_closure.S src/powerpc/ffi_darwin.c \ ++ src/riscv/ffi.c src/riscv/sysv.S \ + src/s390/ffi.c src/s390/sysv.S \ + src/sh/ffi.c src/sh/sysv.S \ + src/sh64/ffi.c src/sh64/sysv.S \ +@@ -831,6 +833,16 @@ src/powerpc/darwin_closure.lo: src/power + src/powerpc/$(DEPDIR)/$(am__dirstamp) + src/powerpc/ffi_darwin.lo: src/powerpc/$(am__dirstamp) \ + src/powerpc/$(DEPDIR)/$(am__dirstamp) ++src/riscv/$(am__dirstamp): ++ @$(MKDIR_P) src/riscv ++ @: > src/riscv/$(am__dirstamp) ++src/riscv/$(DEPDIR)/$(am__dirstamp): ++ @$(MKDIR_P) src/riscv/$(DEPDIR) ++ @: > src/riscv/$(DEPDIR)/$(am__dirstamp) ++src/riscv/ffi.lo: src/riscv/$(am__dirstamp) \ ++ src/riscv/$(DEPDIR)/$(am__dirstamp) ++src/riscv/sysv.lo: src/riscv/$(am__dirstamp) \ ++ src/riscv/$(DEPDIR)/$(am__dirstamp) + src/s390/$(am__dirstamp): + @$(MKDIR_P) src/s390 + @: > src/s390/$(am__dirstamp) +@@ -1051,6 +1063,10 @@ mostlyclean-compile: + -rm -f src/prep_cif.lo + -rm -f src/raw_api.$(OBJEXT) + -rm -f src/raw_api.lo ++ -rm -f src/riscv/ffi.$(OBJEXT) ++ -rm -f src/riscv/ffi.lo ++ -rm -f src/riscv/sysv.$(OBJEXT) ++ -rm -f src/riscv/sysv.lo + -rm -f src/s390/ffi.$(OBJEXT) + -rm -f src/s390/ffi.lo + -rm -f src/s390/sysv.$(OBJEXT) +@@ -1167,6 +1183,8 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@src/powerpc/$(DEPDIR)/linux64_closure.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/powerpc/$(DEPDIR)/ppc_closure.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/powerpc/$(DEPDIR)/sysv.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@src/riscv/$(DEPDIR)/ffi.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@src/riscv/$(DEPDIR)/sysv.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/s390/$(DEPDIR)/ffi.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/s390/$(DEPDIR)/sysv.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@src/sh/$(DEPDIR)/ffi.Plo@am__quote@ +@@ -1268,6 +1286,7 @@ clean-libtool: + -rm -rf src/or1k/.libs src/or1k/_libs + -rm -rf src/pa/.libs src/pa/_libs + -rm -rf src/powerpc/.libs src/powerpc/_libs ++ -rm -rf src/riscv/.libs src/riscv/_libs + -rm -rf src/s390/.libs src/s390/_libs + -rm -rf src/sh/.libs src/sh/_libs + -rm -rf src/sh64/.libs src/sh64/_libs +@@ -1672,6 +1691,8 @@ distclean-generic: + -rm -f src/pa/$(am__dirstamp) + -rm -f src/powerpc/$(DEPDIR)/$(am__dirstamp) + -rm -f src/powerpc/$(am__dirstamp) ++ -rm -f src/riscv/$(DEPDIR)/$(am__dirstamp) ++ -rm -f src/riscv/$(am__dirstamp) + -rm -f src/s390/$(DEPDIR)/$(am__dirstamp) + -rm -f src/s390/$(am__dirstamp) + -rm -f src/sh/$(DEPDIR)/$(am__dirstamp) +@@ -1701,7 +1722,7 @@ clean-am: clean-aminfo clean-generic cle + + distclean: distclean-multi distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) +- -rm -rf src/$(DEPDIR) src/aarch64/$(DEPDIR) src/alpha/$(DEPDIR) src/arc/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/bfin/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/m88k/$(DEPDIR) src/metag/$(DEPDIR) src/microblaze/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/nios2/$(DEPDIR) src/or1k/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/tile/$(DEPDIR) src/vax/$(DEPDIR) src/x86/$(DEPDIR) src/xtensa/$(DEPDIR) ++ -rm -rf src/$(DEPDIR) src/aarch64/$(DEPDIR) src/alpha/$(DEPDIR) src/arc/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/bfin/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/m88k/$(DEPDIR) src/metag/$(DEPDIR) src/microblaze/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/nios2/$(DEPDIR) src/or1k/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/riscv/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/tile/$(DEPDIR) src/vax/$(DEPDIR) src/x86/$(DEPDIR) src/xtensa/$(DEPDIR) + -rm -f Makefile + distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags +@@ -1840,7 +1861,7 @@ installcheck-am: + maintainer-clean: maintainer-clean-multi maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache +- -rm -rf src/$(DEPDIR) src/aarch64/$(DEPDIR) src/alpha/$(DEPDIR) src/arc/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/bfin/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/m88k/$(DEPDIR) src/metag/$(DEPDIR) src/microblaze/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/nios2/$(DEPDIR) src/or1k/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/tile/$(DEPDIR) src/vax/$(DEPDIR) src/x86/$(DEPDIR) src/xtensa/$(DEPDIR) ++ -rm -rf src/$(DEPDIR) src/aarch64/$(DEPDIR) src/alpha/$(DEPDIR) src/arc/$(DEPDIR) src/arm/$(DEPDIR) src/avr32/$(DEPDIR) src/bfin/$(DEPDIR) src/cris/$(DEPDIR) src/frv/$(DEPDIR) src/ia64/$(DEPDIR) src/m32r/$(DEPDIR) src/m68k/$(DEPDIR) src/m88k/$(DEPDIR) src/metag/$(DEPDIR) src/microblaze/$(DEPDIR) src/mips/$(DEPDIR) src/moxie/$(DEPDIR) src/nios2/$(DEPDIR) src/or1k/$(DEPDIR) src/pa/$(DEPDIR) src/powerpc/$(DEPDIR) src/riscv/$(DEPDIR) src/s390/$(DEPDIR) src/sh/$(DEPDIR) src/sh64/$(DEPDIR) src/sparc/$(DEPDIR) src/tile/$(DEPDIR) src/vax/$(DEPDIR) src/x86/$(DEPDIR) src/xtensa/$(DEPDIR) + -rm -f Makefile + maintainer-clean-am: distclean-am maintainer-clean-aminfo \ + maintainer-clean-generic maintainer-clean-vti +--- a/src/libffi/configure.host ++++ b/src/libffi/configure.host +@@ -195,6 +195,11 @@ case "${host}" in + TARGET=POWERPC; TARGETDIR=powerpc + ;; + ++ riscv*-*) ++ TARGET=RISCV; TARGETDIR=riscv ++ SOURCES="ffi.c sysv.S" ++ ;; ++ + s390-*-* | s390x-*-*) + TARGET=S390; TARGETDIR=s390 + SOURCES="ffi.c sysv.S" +--- /dev/null ++++ b/src/libffi/src/riscv/ffi.c +@@ -0,0 +1,445 @@ ++/* ----------------------------------------------------------------------- ++ ffi.c - Copyright (c) 2015 Michael Knyszek ++ 2015 Andrew Waterman ++ 2018 Stef O'Rear ++ Based on MIPS N32/64 port ++ ++ RISC-V Foreign Function Interface ++ ++ Permission is hereby granted, free of charge, to any person obtaining ++ a copy of this software and associated documentation files (the ++ ``Software''), to deal in the Software without restriction, including ++ without limitation the rights to use, copy, modify, merge, publish, ++ distribute, sublicense, and/or sell copies of the Software, and to ++ permit persons to whom the Software is furnished to do so, subject to ++ the following conditions: ++ ++ The above copyright notice and this permission notice shall be included ++ in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, ++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ DEALINGS IN THE SOFTWARE. ++ ----------------------------------------------------------------------- */ ++ ++#include ++#include ++ ++#include ++#include ++ ++#if __riscv_float_abi_double ++#define ABI_FLEN 64 ++#define ABI_FLOAT double ++#elif __riscv_float_abi_single ++#define ABI_FLEN 32 ++#define ABI_FLOAT float ++#endif ++ ++#define NARGREG 8 ++#define STKALIGN 16 ++#define MAXCOPYARG (2 * sizeof(double)) ++ ++typedef struct call_context ++{ ++#if ABI_FLEN ++ ABI_FLOAT fa[8]; ++#endif ++ size_t a[8]; ++ /* used by the assembly code to in-place construct its own stack frame */ ++ char frame[16]; ++} call_context; ++ ++typedef struct call_builder ++{ ++ call_context *aregs; ++ int used_integer; ++ int used_float; ++ size_t *used_stack; ++} call_builder; ++ ++/* integer (not pointer) less than ABI XLEN */ ++/* FFI_TYPE_INT does not appear to be used */ ++#if __SIZEOF_POINTER__ == 8 ++#define IS_INT(type) ((type) >= FFI_TYPE_UINT8 && (type) <= FFI_TYPE_SINT64) ++#else ++#define IS_INT(type) ((type) >= FFI_TYPE_UINT8 && (type) <= FFI_TYPE_SINT32) ++#endif ++ ++#if ABI_FLEN ++typedef struct { ++ char as_elements, type1, offset2, type2; ++} float_struct_info; ++ ++#if ABI_FLEN >= 64 ++#define IS_FLOAT(type) ((type) >= FFI_TYPE_FLOAT && (type) <= FFI_TYPE_DOUBLE) ++#else ++#define IS_FLOAT(type) ((type) == FFI_TYPE_FLOAT) ++#endif ++ ++static ffi_type **flatten_struct(ffi_type *in, ffi_type **out, ffi_type **out_end) { ++ int i; ++ if (out == out_end) return out; ++ if (in->type != FFI_TYPE_STRUCT) { ++ *(out++) = in; ++ } else { ++ for (i = 0; in->elements[i]; i++) ++ out = flatten_struct(in->elements[i], out, out_end); ++ } ++ return out; ++} ++ ++/* Structs with at most two fields after flattening, one of which is of ++ floating point type, are passed in multiple registers if sufficient ++ registers are available. */ ++static float_struct_info struct_passed_as_elements(call_builder *cb, ffi_type *top) { ++ float_struct_info ret = {0, 0, 0, 0}; ++ ffi_type *fields[3]; ++ int num_floats, num_ints; ++ int num_fields = flatten_struct(top, fields, fields + 3) - fields; ++ ++ if (num_fields == 1) { ++ if (IS_FLOAT(fields[0]->type)) { ++ ret.as_elements = 1; ++ ret.type1 = fields[0]->type; ++ } ++ } else if (num_fields == 2) { ++ num_floats = IS_FLOAT(fields[0]->type) + IS_FLOAT(fields[1]->type); ++ num_ints = IS_INT(fields[0]->type) + IS_INT(fields[1]->type); ++ if (num_floats == 0 || num_floats + num_ints != 2) ++ return ret; ++ if (cb->used_float + num_floats > NARGREG || cb->used_integer + (2 - num_floats) > NARGREG) ++ return ret; ++ if (!IS_FLOAT(fields[0]->type) && !IS_FLOAT(fields[1]->type)) ++ return ret; ++ ++ ret.type1 = fields[0]->type; ++ ret.type2 = fields[1]->type; ++ ret.offset2 = ALIGN(fields[0]->size, fields[1]->alignment); ++ ret.as_elements = 1; ++ } ++ ++ return ret; ++} ++#endif ++ ++/* allocates a single register, float register, or XLEN-sized stack slot to a datum */ ++static void marshal_atom(call_builder *cb, int type, void *data) { ++ size_t value = 0; ++ switch (type) { ++ case FFI_TYPE_UINT8: value = *(uint8_t *)data; break; ++ case FFI_TYPE_SINT8: value = *(int8_t *)data; break; ++ case FFI_TYPE_UINT16: value = *(uint16_t *)data; break; ++ case FFI_TYPE_SINT16: value = *(int16_t *)data; break; ++ /* 32-bit quantities are always sign-extended in the ABI */ ++ case FFI_TYPE_UINT32: value = *(int32_t *)data; break; ++ case FFI_TYPE_SINT32: value = *(int32_t *)data; break; ++#if __SIZEOF_POINTER__ == 8 ++ case FFI_TYPE_UINT64: value = *(uint64_t *)data; break; ++ case FFI_TYPE_SINT64: value = *(int64_t *)data; break; ++#endif ++ case FFI_TYPE_POINTER: value = *(size_t *)data; break; ++ ++ /* float values may be recoded in an implementation-defined way ++ by hardware conforming to 2.1 or earlier, so use asm to ++ reinterpret floats as doubles */ ++#if ABI_FLEN >= 32 ++ case FFI_TYPE_FLOAT: ++ asm("" : "=f"(cb->aregs->fa[cb->used_float++]) : "0"(*(float *)data)); ++ return; ++#endif ++#if ABI_FLEN >= 64 ++ case FFI_TYPE_DOUBLE: ++ asm("" : "=f"(cb->aregs->fa[cb->used_float++]) : "0"(*(double *)data)); ++ return; ++#endif ++ default: FFI_ASSERT(0); break; ++ } ++ ++ if (cb->used_integer == NARGREG) { ++ *cb->used_stack++ = value; ++ } else { ++ cb->aregs->a[cb->used_integer++] = value; ++ } ++} ++ ++static void unmarshal_atom(call_builder *cb, int type, void *data) { ++ size_t value; ++ switch (type) { ++#if ABI_FLEN >= 32 ++ case FFI_TYPE_FLOAT: ++ asm("" : "=f"(*(float *)data) : "0"(cb->aregs->fa[cb->used_float++])); ++ return; ++#endif ++#if ABI_FLEN >= 64 ++ case FFI_TYPE_DOUBLE: ++ asm("" : "=f"(*(double *)data) : "0"(cb->aregs->fa[cb->used_float++])); ++ return; ++#endif ++ } ++ ++ if (cb->used_integer == NARGREG) { ++ value = *cb->used_stack++; ++ } else { ++ value = cb->aregs->a[cb->used_integer++]; ++ } ++ ++ switch (type) { ++ case FFI_TYPE_UINT8: *(uint8_t *)data = value; break; ++ case FFI_TYPE_SINT8: *(uint8_t *)data = value; break; ++ case FFI_TYPE_UINT16: *(uint16_t *)data = value; break; ++ case FFI_TYPE_SINT16: *(uint16_t *)data = value; break; ++ case FFI_TYPE_UINT32: *(uint32_t *)data = value; break; ++ case FFI_TYPE_SINT32: *(uint32_t *)data = value; break; ++#if __SIZEOF_POINTER__ == 8 ++ case FFI_TYPE_UINT64: *(uint64_t *)data = value; break; ++ case FFI_TYPE_SINT64: *(uint64_t *)data = value; break; ++#endif ++ case FFI_TYPE_POINTER: *(size_t *)data = value; break; ++ default: FFI_ASSERT(0); break; ++ } ++} ++ ++/* adds an argument to a call, or a not by reference return value */ ++static void marshal(call_builder *cb, ffi_type *type, int var, void *data) { ++ size_t realign[2]; ++ ++#if ABI_FLEN ++ if (!var && type->type == FFI_TYPE_STRUCT) { ++ float_struct_info fsi = struct_passed_as_elements(cb, type); ++ if (fsi.as_elements) { ++ marshal_atom(cb, fsi.type1, data); ++ if (fsi.offset2) ++ marshal_atom(cb, fsi.type2, ((char*)data) + fsi.offset2); ++ return; ++ } ++ } ++ ++ if (!var && cb->used_float < NARGREG && IS_FLOAT(type->type)) { ++ marshal_atom(cb, type->type, data); ++ return; ++ } ++#endif ++ ++ if (type->size > 2 * __SIZEOF_POINTER__) { ++ /* pass by reference */ ++ marshal_atom(cb, FFI_TYPE_POINTER, &data); ++ } else if (IS_INT(type->type) || type->type == FFI_TYPE_POINTER) { ++ marshal_atom(cb, type->type, data); ++ } else { ++ /* overlong integers, soft-float floats, and structs without special ++ float handling are treated identically from this point on */ ++ ++ /* variadics are aligned even in registers */ ++ if (type->alignment > __SIZEOF_POINTER__) { ++ if (var) ++ cb->used_integer = ALIGN(cb->used_integer, 2); ++ cb->used_stack = (size_t *)ALIGN(cb->used_stack, 2*__SIZEOF_POINTER__); ++ } ++ ++ memcpy(realign, data, type->size); ++ if (type->size > 0) ++ marshal_atom(cb, FFI_TYPE_POINTER, realign); ++ if (type->size > __SIZEOF_POINTER__) ++ marshal_atom(cb, FFI_TYPE_POINTER, realign + 1); ++ } ++} ++ ++/* for arguments passed by reference returns the pointer, otherwise the arg is copied (up to MAXCOPYARG bytes) */ ++static void *unmarshal(call_builder *cb, ffi_type *type, int var, void *data) { ++ size_t realign[2]; ++ void *pointer; ++ ++#if ABI_FLEN ++ if (!var && type->type == FFI_TYPE_STRUCT) { ++ float_struct_info fsi = struct_passed_as_elements(cb, type); ++ if (fsi.as_elements) { ++ unmarshal_atom(cb, fsi.type1, data); ++ if (fsi.offset2) ++ unmarshal_atom(cb, fsi.type2, ((char*)data) + fsi.offset2); ++ return data; ++ } ++ } ++ ++ if (!var && cb->used_float < NARGREG && IS_FLOAT(type->type)) { ++ unmarshal_atom(cb, type->type, data); ++ return data; ++ } ++#endif ++ ++ if (type->size > 2 * __SIZEOF_POINTER__) { ++ /* pass by reference */ ++ unmarshal_atom(cb, FFI_TYPE_POINTER, (char*)&pointer); ++ return pointer; ++ } else if (IS_INT(type->type) || type->type == FFI_TYPE_POINTER) { ++ unmarshal_atom(cb, type->type, data); ++ return data; ++ } else { ++ /* overlong integers, soft-float floats, and structs without special ++ float handling are treated identically from this point on */ ++ ++ /* variadics are aligned even in registers */ ++ if (type->alignment > __SIZEOF_POINTER__) { ++ if (var) ++ cb->used_integer = ALIGN(cb->used_integer, 2); ++ cb->used_stack = (size_t *)ALIGN(cb->used_stack, 2*__SIZEOF_POINTER__); ++ } ++ ++ if (type->size > 0) ++ unmarshal_atom(cb, FFI_TYPE_POINTER, realign); ++ if (type->size > __SIZEOF_POINTER__) ++ unmarshal_atom(cb, FFI_TYPE_POINTER, realign + 1); ++ memcpy(data, realign, type->size); ++ return data; ++ } ++} ++ ++static int passed_by_ref(call_builder *cb, ffi_type *type, int var) { ++#if ABI_FLEN ++ if (!var && type->type == FFI_TYPE_STRUCT) { ++ float_struct_info fsi = struct_passed_as_elements(cb, type); ++ if (fsi.as_elements) return 0; ++ } ++#endif ++ ++ return type->size > 2 * __SIZEOF_POINTER__; ++} ++ ++/* Perform machine dependent cif processing */ ++ffi_status ffi_prep_cif_machdep(ffi_cif *cif) { ++ cif->riscv_nfixedargs = cif->nargs; ++ return FFI_OK; ++} ++ ++/* Perform machine dependent cif processing when we have a variadic function */ ++ ++ffi_status ffi_prep_cif_machdep_var(ffi_cif *cif, unsigned int nfixedargs, unsigned int ntotalargs) { ++ cif->riscv_nfixedargs = nfixedargs; ++ return FFI_OK; ++} ++ ++/* Low level routine for calling functions */ ++extern void ffi_call_asm(void *stack, struct call_context *regs, void (*fn)(void)) FFI_HIDDEN; ++ ++void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) ++{ ++ /* this is a conservative estimate, assuming a complex return value and ++ that all remaining arguments are long long / __int128 */ ++ size_t arg_bytes = cif->nargs <= 3 ? 0 : ++ ALIGN(2 * sizeof(size_t) * (cif->nargs - 3), STKALIGN); ++ size_t rval_bytes = 0; ++ if (rvalue == NULL && cif->rtype->size > 2*__SIZEOF_POINTER__) ++ rval_bytes = ALIGN(cif->rtype->size, STKALIGN); ++ size_t alloc_size = arg_bytes + rval_bytes + sizeof(call_context); ++ ++ /* the assembly code will deallocate all stack data at lower addresses ++ than the argument region, so we need to allocate the frame and the ++ return value after the arguments in a single allocation */ ++ size_t alloc_base; ++ /* Argument region must be 16-byte aligned */ ++ if (_Alignof(max_align_t) >= STKALIGN) { ++ /* since sizeof long double is normally 16, the compiler will ++ guarantee alloca alignment to at least that much */ ++ alloc_base = (size_t)alloca(alloc_size); ++ } else { ++ alloc_base = ALIGN(alloca(alloc_size + STKALIGN - 1), STKALIGN); ++ } ++ ++ if (rval_bytes) ++ rvalue = (void*)(alloc_base + arg_bytes); ++ ++ call_builder cb; ++ cb.used_float = cb.used_integer = 0; ++ cb.aregs = (call_context*)(alloc_base + arg_bytes + rval_bytes); ++ cb.used_stack = (void*)alloc_base; ++ ++ int return_by_ref = passed_by_ref(&cb, cif->rtype, 0); ++ if (return_by_ref) ++ marshal(&cb, &ffi_type_pointer, 0, &rvalue); ++ ++ int i; ++ for (i = 0; i < cif->nargs; i++) ++ marshal(&cb, cif->arg_types[i], i >= cif->riscv_nfixedargs, avalue[i]); ++ ++ ffi_call_asm((void*)alloc_base, cb.aregs, fn); ++ ++ cb.used_float = cb.used_integer = 0; ++ if (!return_by_ref && rvalue) ++ unmarshal(&cb, cif->rtype, 0, rvalue); ++} ++ ++extern void ffi_closure_asm(void) FFI_HIDDEN; ++ ++ffi_status ffi_prep_closure_loc(ffi_closure *closure, ffi_cif *cif, void (*fun)(ffi_cif*,void*,void**,void*), void *user_data, void *codeloc) ++{ ++ uint32_t *tramp = (uint32_t *) &closure->tramp[0]; ++ uint64_t fn = (uint64_t) (uintptr_t) ffi_closure_asm; ++ ++ if (cif->abi <= FFI_FIRST_ABI || cif->abi >= FFI_LAST_ABI) ++ return FFI_BAD_ABI; ++ ++ /* we will call ffi_closure_inner with codeloc, not closure, but as long ++ as the memory is readable it should work */ ++ ++ tramp[0] = 0x00000317; /* auipc t1, 0 (i.e. t0 <- codeloc) */ ++#if __SIZEOF_POINTER__ == 8 ++ tramp[1] = 0x01033383; /* ld t2, 16(t1) */ ++#else ++ tramp[1] = 0x01032383; /* lw t2, 16(t1) */ ++#endif ++ tramp[2] = 0x00038067; /* jr t2 */ ++ tramp[3] = 0x00000013; /* nop */ ++ tramp[4] = fn; ++ tramp[5] = fn >> 32; ++ ++ closure->cif = cif; ++ closure->fun = fun; ++ closure->user_data = user_data; ++ ++ __builtin___clear_cache(codeloc, codeloc + FFI_TRAMPOLINE_SIZE); ++ ++ return FFI_OK; ++} ++ ++/* Called by the assembly code with aregs pointing to saved argument registers ++ and stack pointing to the stacked arguments. Return values passed in ++ registers will be reloaded from aregs. */ ++void FFI_HIDDEN ffi_closure_inner(size_t *stack, call_context *aregs, ffi_closure *closure) { ++ ffi_cif *cif = closure->cif; ++ void **avalue = alloca(cif->nargs * sizeof(void*)); ++ /* storage for arguments which will be copied by unmarshal(). We could ++ theoretically avoid the copies in many cases and use at most 128 bytes ++ of memory, but allocating disjoint storage for each argument is ++ simpler. */ ++ char *astorage = alloca(cif->nargs * MAXCOPYARG); ++ void *rvalue; ++ call_builder cb; ++ int return_by_ref; ++ int i; ++ ++ cb.aregs = aregs; ++ cb.used_integer = cb.used_float = 0; ++ cb.used_stack = stack; ++ ++ return_by_ref = passed_by_ref(&cb, cif->rtype, 0); ++ if (return_by_ref) ++ unmarshal(&cb, &ffi_type_pointer, 0, &rvalue); ++ else ++ rvalue = alloca(cif->rtype->size); ++ ++ for (i = 0; i < cif->nargs; i++) ++ avalue[i] = unmarshal(&cb, cif->arg_types[i], ++ i >= cif->riscv_nfixedargs, astorage + i*MAXCOPYARG); ++ ++ (closure->fun)(cif, rvalue, avalue, closure->user_data); ++ ++ if (!return_by_ref && cif->rtype->type != FFI_TYPE_VOID) { ++ cb.used_integer = cb.used_float = 0; ++ marshal(&cb, cif->rtype, 0, rvalue); ++ } ++} +--- /dev/null ++++ b/src/libffi/src/riscv/ffitarget.h +@@ -0,0 +1,68 @@ ++/* -----------------------------------------------------------------*-C-*- ++ ffitarget.h - 2014 Michael Knyszek ++ ++ Target configuration macros for RISC-V. ++ ++ Permission is hereby granted, free of charge, to any person obtaining ++ a copy of this software and associated documentation files (the ++ ``Software''), to deal in the Software without restriction, including ++ without limitation the rights to use, copy, modify, merge, publish, ++ distribute, sublicense, and/or sell copies of the Software, and to ++ permit persons to whom the Software is furnished to do so, subject to ++ the following conditions: ++ ++ The above copyright notice and this permission notice shall be included ++ in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, ++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ DEALINGS IN THE SOFTWARE. ++ ++ ----------------------------------------------------------------------- */ ++ ++#ifndef LIBFFI_TARGET_H ++#define LIBFFI_TARGET_H ++ ++#ifndef LIBFFI_H ++#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead." ++#endif ++ ++#ifndef __riscv ++#error "libffi was configured for a RISC-V target but this does not appear to be a RISC-V compiler." ++#endif ++ ++#ifndef LIBFFI_ASM ++ ++typedef unsigned long ffi_arg; ++typedef signed long ffi_sarg; ++ ++/* FFI_UNUSED_NN and riscv_unused are to maintain ABI compatibility with a ++ distributed Berkeley patch from 2014, and can be removed at SONAME bump */ ++typedef enum ffi_abi { ++ FFI_FIRST_ABI = 0, ++ FFI_SYSV, ++ FFI_UNUSED_1, ++ FFI_UNUSED_2, ++ FFI_UNUSED_3, ++ FFI_LAST_ABI, ++ ++ FFI_DEFAULT_ABI = FFI_SYSV ++} ffi_abi; ++ ++#endif /* LIBFFI_ASM */ ++ ++/* ---- Definitions for closures ----------------------------------------- */ ++ ++#define FFI_CLOSURES 1 ++#define FFI_TRAMPOLINE_SIZE 24 ++#define FFI_NATIVE_RAW_API 0 ++#define FFI_EXTRA_CIF_FIELDS unsigned riscv_nfixedargs; unsigned riscv_unused; ++#define FFI_TARGET_SPECIFIC_VARIADIC ++ ++#endif ++ +--- /dev/null ++++ b/src/libffi/src/riscv/sysv.S +@@ -0,0 +1,214 @@ ++/* ----------------------------------------------------------------------- ++ ffi.c - Copyright (c) 2015 Michael Knyszek ++ 2015 Andrew Waterman ++ 2018 Stef O'Rear ++ ++ RISC-V Foreign Function Interface ++ ++ Permission is hereby granted, free of charge, to any person obtaining ++ a copy of this software and associated documentation files (the ++ ``Software''), to deal in the Software without restriction, including ++ without limitation the rights to use, copy, modify, merge, publish, ++ distribute, sublicense, and/or sell copies of the Software, and to ++ permit persons to whom the Software is furnished to do so, subject to ++ the following conditions: ++ ++ The above copyright notice and this permission notice shall be included ++ in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, ++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ DEALINGS IN THE SOFTWARE. ++ ----------------------------------------------------------------------- */ ++ ++#define LIBFFI_ASM ++#include ++#include ++ ++/* Define aliases so that we can handle all ABIs uniformly */ ++ ++#if __SIZEOF_POINTER__ == 8 ++#define PTRS 8 ++#define LARG ld ++#define SARG sd ++#else ++#define PTRS 4 ++#define LARG lw ++#define SARG sw ++#endif ++ ++#if __riscv_float_abi_double ++#define FLTS 8 ++#define FLARG fld ++#define FSARG fsd ++#elif __riscv_float_abi_single ++#define FLTS 4 ++#define FLARG flw ++#define FSARG fsw ++#else ++#define FLTS 0 ++#endif ++ ++#define fp s0 ++ ++ .text ++ .globl ffi_call_asm ++ .type ffi_call_asm, @function ++ .hidden ffi_call_asm ++/* ++ struct call_context { ++ floatreg fa[8]; ++ intreg a[8]; ++ intreg pad[rv32 ? 2 : 0]; ++ intreg save_fp, save_ra; ++ } ++ void ffi_call_asm(size_t *stackargs, struct call_context *regargs, ++ void (*fn)(void)); ++*/ ++ ++#define FRAME_LEN (8 * FLTS + 8 * PTRS + 16) ++ ++ffi_call_asm: ++ .cfi_startproc ++ ++ /* ++ We are NOT going to set up an ordinary stack frame. In order to pass ++ the stacked args to the called function, we adjust our stack pointer to ++ a0, which is in the _caller's_ alloca area. We establish our own stack ++ frame at the end of the call_context. ++ ++ Anything below the arguments will be freed at this point, although we ++ preserve the call_context so that it can be read back in the caller. ++ */ ++ ++ .cfi_def_cfa 11, FRAME_LEN # interim CFA based on a1 ++ SARG fp, FRAME_LEN - 2*PTRS(a1) ++ .cfi_offset 8, -2*PTRS ++ SARG ra, FRAME_LEN - 1*PTRS(a1) ++ .cfi_offset 1, -1*PTRS ++ ++ addi fp, a1, FRAME_LEN ++ mv sp, a0 ++ .cfi_def_cfa 8, 0 # our frame is fully set up ++ ++ # Load arguments ++ mv t1, a2 ++ ++#if FLTS ++ FLARG fa0, -FRAME_LEN+0*FLTS(fp) ++ FLARG fa1, -FRAME_LEN+1*FLTS(fp) ++ FLARG fa2, -FRAME_LEN+2*FLTS(fp) ++ FLARG fa3, -FRAME_LEN+3*FLTS(fp) ++ FLARG fa4, -FRAME_LEN+4*FLTS(fp) ++ FLARG fa5, -FRAME_LEN+5*FLTS(fp) ++ FLARG fa6, -FRAME_LEN+6*FLTS(fp) ++ FLARG fa7, -FRAME_LEN+7*FLTS(fp) ++#endif ++ ++ LARG a0, -FRAME_LEN+8*FLTS+0*PTRS(fp) ++ LARG a1, -FRAME_LEN+8*FLTS+1*PTRS(fp) ++ LARG a2, -FRAME_LEN+8*FLTS+2*PTRS(fp) ++ LARG a3, -FRAME_LEN+8*FLTS+3*PTRS(fp) ++ LARG a4, -FRAME_LEN+8*FLTS+4*PTRS(fp) ++ LARG a5, -FRAME_LEN+8*FLTS+5*PTRS(fp) ++ LARG a6, -FRAME_LEN+8*FLTS+6*PTRS(fp) ++ LARG a7, -FRAME_LEN+8*FLTS+7*PTRS(fp) ++ ++ /* Call */ ++ jalr t1 ++ ++ /* Save return values - only a0/a1 (fa0/fa1) are used */ ++#if FLTS ++ FSARG fa0, -FRAME_LEN+0*FLTS(fp) ++ FSARG fa1, -FRAME_LEN+1*FLTS(fp) ++#endif ++ ++ SARG a0, -FRAME_LEN+8*FLTS+0*PTRS(fp) ++ SARG a1, -FRAME_LEN+8*FLTS+1*PTRS(fp) ++ ++ /* Restore and return */ ++ addi sp, fp, -FRAME_LEN ++ .cfi_def_cfa 2, FRAME_LEN ++ LARG ra, -1*PTRS(fp) ++ .cfi_restore 1 ++ LARG fp, -2*PTRS(fp) ++ .cfi_restore 8 ++ ret ++ .cfi_endproc ++ .size ffi_call_asm, .-ffi_call_asm ++ ++ ++/* ++ ffi_closure_asm. Expects address of the passed-in ffi_closure in t1. ++ void ffi_closure_inner(size_t *stackargs, struct call_context *regargs, ++ ffi_closure *closure); ++*/ ++ ++ .globl ffi_closure_asm ++ .hidden ffi_closure_asm ++ .type ffi_closure_asm, @function ++ffi_closure_asm: ++ .cfi_startproc ++ ++ addi sp, sp, -FRAME_LEN ++ .cfi_def_cfa_offset FRAME_LEN ++ ++ /* make a frame */ ++ SARG fp, FRAME_LEN - 2*PTRS(sp) ++ .cfi_offset 8, -2*PTRS ++ SARG ra, FRAME_LEN - 1*PTRS(sp) ++ .cfi_offset 1, -1*PTRS ++ addi fp, sp, FRAME_LEN ++ ++ /* save arguments */ ++#if FLTS ++ FSARG fa0, 0*FLTS(sp) ++ FSARG fa1, 1*FLTS(sp) ++ FSARG fa2, 2*FLTS(sp) ++ FSARG fa3, 3*FLTS(sp) ++ FSARG fa4, 4*FLTS(sp) ++ FSARG fa5, 5*FLTS(sp) ++ FSARG fa6, 6*FLTS(sp) ++ FSARG fa7, 7*FLTS(sp) ++#endif ++ ++ SARG a0, 8*FLTS+0*PTRS(sp) ++ SARG a1, 8*FLTS+1*PTRS(sp) ++ SARG a2, 8*FLTS+2*PTRS(sp) ++ SARG a3, 8*FLTS+3*PTRS(sp) ++ SARG a4, 8*FLTS+4*PTRS(sp) ++ SARG a5, 8*FLTS+5*PTRS(sp) ++ SARG a6, 8*FLTS+6*PTRS(sp) ++ SARG a7, 8*FLTS+7*PTRS(sp) ++ ++ /* enter C */ ++ addi a0, sp, FRAME_LEN ++ mv a1, sp ++ mv a2, t1 ++ ++ call ffi_closure_inner ++ ++ /* return values */ ++#if FLTS ++ FLARG fa0, 0*FLTS(sp) ++ FLARG fa1, 1*FLTS(sp) ++#endif ++ ++ LARG a0, 8*FLTS+0*PTRS(sp) ++ LARG a1, 8*FLTS+1*PTRS(sp) ++ ++ /* restore and return */ ++ LARG ra, FRAME_LEN-1*PTRS(sp) ++ .cfi_restore 1 ++ LARG fp, FRAME_LEN-2*PTRS(sp) ++ .cfi_restore 8 ++ addi sp, sp, FRAME_LEN ++ .cfi_def_cfa_offset 0 ++ ret ++ .cfi_endproc ++ .size ffi_closure_asm, .-ffi_closure_asm --- gcc-7-7.5.0.orig/debian/patches/libffi-ro-eh_frame_sect.diff +++ gcc-7-7.5.0/debian/patches/libffi-ro-eh_frame_sect.diff @@ -0,0 +1,15 @@ +# DP: PR libffi/47248, force a read only eh frame section. + +Index: b/src/libffi/configure.ac +=================================================================== +--- a/src/libffi/configure.ac ++++ b/src/libffi/configure.ac +@@ -275,6 +275,8 @@ if test "x$GCC" = "xyes"; then + libffi_cv_hidden_visibility_attribute=yes + fi + fi ++ # FIXME: see PR libffi/47248 ++ libffi_cv_ro_eh_frame=yes + rm -f conftest.* + ]) + if test $libffi_cv_hidden_visibility_attribute = yes; then --- gcc-7-7.5.0.orig/debian/patches/libgo-cleanfiles.diff +++ gcc-7-7.5.0/debian/patches/libgo-cleanfiles.diff @@ -0,0 +1,31 @@ +Index: b/src/libgo/Makefile.am +=================================================================== +--- a/src/libgo/Makefile.am ++++ b/src/libgo/Makefile.am +@@ -1422,7 +1422,9 @@ mostlyclean-local: + find . -name '*-testsum' -print | xargs rm -f + find . -name '*-testlog' -print | xargs rm -f + +-CLEANFILES = *.go *.gox goc2c *.c s-version libgo.sum libgo.log ++CLEANFILES = *.go *.gox goc2c *.c s-* libgo.sum libgo.log \ ++ *.dep */*.dep */*/*.dep */*/*/*.dep */*/*.dep */*/*/*/*.dep \ ++ */*/*/*/*/*.dep + + clean-local: + find . -name '*.la' -print | xargs $(LIBTOOL) --mode=clean rm -f +Index: b/src/libgo/Makefile.in +=================================================================== +--- a/src/libgo/Makefile.in ++++ b/src/libgo/Makefile.in +@@ -1346,7 +1346,10 @@ TEST_PACKAGES = \ + unicode/utf8/check + + MOSTLYCLEAN_FILES = libgo.head libgo.sum.sep libgo.log.sep +-CLEANFILES = *.go *.gox goc2c *.c s-version libgo.sum libgo.log ++CLEANFILES = *.go *.gox goc2c *.c s-* libgo.sum libgo.log \ ++ *.dep */*.dep */*/*.dep */*/*/*.dep */*/*.dep */*/*/*/*.dep \ ++ */*/*/*/*/*.dep ++ + all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + --- gcc-7-7.5.0.orig/debian/patches/libgo-ia64.diff +++ gcc-7-7.5.0/debian/patches/libgo-ia64.diff @@ -0,0 +1,11 @@ +--- a/src/libgo/go/runtime/lfstack_64bit.go ++++ b/src/libgo/go/runtime/lfstack_64bit.go +@@ -2,7 +2,7 @@ + // Use of this source code is governed by a BSD-style + // license that can be found in the LICENSE file. + +-// +build amd64 arm64 mips64 mips64le ppc64 ppc64le s390x arm64be alpha sparc64 ++// +build amd64 arm64 mips64 mips64le ppc64 ppc64le s390x arm64be alpha sparc64 ia64 + + package runtime + --- gcc-7-7.5.0.orig/debian/patches/libgo-revert-timeout-exp.diff +++ gcc-7-7.5.0/debian/patches/libgo-revert-timeout-exp.diff @@ -0,0 +1,12 @@ +Index: b/src/libgo/testsuite/lib/libgo.exp +=================================================================== +--- a/src/libgo/testsuite/lib/libgo.exp ++++ b/src/libgo/testsuite/lib/libgo.exp +@@ -46,7 +46,6 @@ load_gcc_lib wrapper.exp + load_gcc_lib target-supports.exp + load_gcc_lib target-utils.exp + load_gcc_lib gcc-defs.exp +-load_gcc_lib timeout.exp + load_gcc_lib go.exp + + proc libgo_init { args } { --- gcc-7-7.5.0.orig/debian/patches/libgo-setcontext-config.diff +++ gcc-7-7.5.0/debian/patches/libgo-setcontext-config.diff @@ -0,0 +1,19 @@ +# DP: libgo: Overwrite the setcontext_clobbers_tls check on mips* + +--- a/src/libgo/configure.ac ++++ b/src/libgo/configure.ac +@@ -820,6 +820,14 @@ main () + CFLAGS="$CFLAGS_hold" + LIBS="$LIBS_hold" + ]) ++dnl overwrite for the mips* 64bit multilibs, fails on some buildds ++if test "$libgo_cv_lib_setcontext_clobbers_tls" = "yes"; then ++ case "$target" in ++ mips*-linux-*) ++ AC_MSG_WARN([FIXME: overwrite setcontext_clobbers_tls for $target:$ptr_type_size]) ++ libgo_cv_lib_setcontext_clobbers_tls=no ;; ++ esac ++fi + if test "$libgo_cv_lib_setcontext_clobbers_tls" = "yes"; then + AC_DEFINE(SETCONTEXT_CLOBBERS_TLS, 1, + [Define if setcontext clobbers TLS variables]) --- gcc-7-7.5.0.orig/debian/patches/libgo-sparc64.diff +++ gcc-7-7.5.0/debian/patches/libgo-sparc64.diff @@ -0,0 +1,99 @@ +From c536feb42f56afd6397697f9ee9e5d8d918bef1b Mon Sep 17 00:00:00 2001 +From: ian +Date: Wed, 31 May 2017 21:36:42 +0000 +Subject: [PATCH] libgo: support for sparc64 GNU/Linux + + Fix lfstack code to work with sparc64 GNU/Linux address map. + + Force alignment of epollevent. To make this work reliably, pass + GOARCH explicitly to mkrsysinfo.sh. + + Patch by Vladimir Mezentsev. + + Reviewed-on: https://go-review.googlesource.com/44494 + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248765 138bc75d-0d04-0410-961f-82ee72b054a4 +--- +[gcc/go/gofrontend/MERGE | 2 +-] + libgo/Makefile.am | 2 +- + libgo/Makefile.in | 2 +- + libgo/go/runtime/lfstack_64bit.go | 12 ++++++++++++ + libgo/mkrsysinfo.sh | 6 +++++- + 5 files changed, 20 insertions(+), 4 deletions(-) + +Index: b/src/libgo/Makefile.am +=================================================================== +--- a/src/libgo/Makefile.am ++++ b/src/libgo/Makefile.am +@@ -551,7 +551,7 @@ s-version: Makefile + + runtime_sysinfo.go: s-runtime_sysinfo; @true + s-runtime_sysinfo: $(srcdir)/mkrsysinfo.sh gen-sysinfo.go +- $(SHELL) $(srcdir)/mkrsysinfo.sh ++ GOARCH=$(GOARCH) GOOS=$(GOOS) $(SHELL) $(srcdir)/mkrsysinfo.sh + $(SHELL) $(srcdir)/mvifdiff.sh tmp-runtime_sysinfo.go runtime_sysinfo.go + $(STAMP) $@ + +Index: b/src/libgo/Makefile.in +=================================================================== +--- a/src/libgo/Makefile.in ++++ b/src/libgo/Makefile.in +@@ -3199,7 +3199,7 @@ s-version: Makefile + + runtime_sysinfo.go: s-runtime_sysinfo; @true + s-runtime_sysinfo: $(srcdir)/mkrsysinfo.sh gen-sysinfo.go +- $(SHELL) $(srcdir)/mkrsysinfo.sh ++ GOARCH=$(GOARCH) GOOS=$(GOOS) $(SHELL) $(srcdir)/mkrsysinfo.sh + $(SHELL) $(srcdir)/mvifdiff.sh tmp-runtime_sysinfo.go runtime_sysinfo.go + $(STAMP) $@ + +Index: b/src/libgo/go/runtime/lfstack_64bit.go +=================================================================== +--- a/src/libgo/go/runtime/lfstack_64bit.go ++++ b/src/libgo/go/runtime/lfstack_64bit.go +@@ -32,9 +32,18 @@ const ( + // bottom, because node must be pointer-aligned, giving a total of 19 bits + // of count. + cntBits = 64 - addrBits + 3 ++ ++ // On sparc64-linux, user addresses are 52-bit numbers sign extended to 64. ++ // We shift the address left 12 to eliminate the sign extended part and make ++ // room in the bottom for the count. ++ sparcLinuxAddrBits = 52 ++ sparcLinuxCntBits = 64 - sparcLinuxAddrBits + 3 + ) + + func lfstackPack(node *lfnode, cnt uintptr) uint64 { ++ if GOARCH == "sparc64" && GOOS == "linux" { ++ return uint64(uintptr(unsafe.Pointer(node)))<<(64-sparcLinuxAddrBits) | uint64(cnt&(1<> cntBits << 3))) + } ++ if GOARCH == "sparc64" && GOOS == "linux" { ++ return (*lfnode)(unsafe.Pointer(uintptr(int64(val) >> sparcLinuxCntBits << 3))) ++ } + return (*lfnode)(unsafe.Pointer(uintptr(val >> cntBits << 3))) + } +Index: b/src/libgo/mkrsysinfo.sh +=================================================================== +--- a/src/libgo/mkrsysinfo.sh ++++ b/src/libgo/mkrsysinfo.sh +@@ -77,7 +77,11 @@ if grep '^const _epoll_data_offset ' ${O + if test "$val" = "4"; then + echo 'type epollevent struct { events uint32; data [8]byte }' >> ${OUT} + elif test "$val" = "8"; then +- echo 'type epollevent struct { events uint32; pad [4]byte; data [8]byte }' >> ${OUT} ++ if test "$GOARCH" = "sparc64" -a "$GOOS" = "linux"; then ++ echo 'type epollevent struct { events uint32; pad [4]byte; data [8]byte; _align [0]int64 }' >> ${OUT} ++ else ++ echo 'type epollevent struct { events uint32; pad [4]byte; data [8]byte }' >> ${OUT} ++ fi + else + echo 1>&2 "unknown epoll data offset value ${val}" + exit 1 --- gcc-7-7.5.0.orig/debian/patches/libgo-testsuite.diff +++ gcc-7-7.5.0/debian/patches/libgo-testsuite.diff @@ -0,0 +1,70 @@ +# DP: Only run the libgo testsuite for flags configured in RUNTESTFLAGS + +Index: gcc-7-7.2.0/src/libgo/Makefile.am +=================================================================== +--- gcc-7-7.2.0.orig/src/libgo/Makefile.am ++++ gcc-7-7.2.0/src/libgo/Makefile.am +@@ -929,7 +929,7 @@ BUILDGOX = \ + $(SHELL) $(srcdir)/mvifdiff.sh $@.tmp `echo $@ | sed -e 's/s-gox/gox/'` + + GOTESTFLAGS = +-GOBENCH = ++GOBENCH = + + # Check a package. + CHECK = \ +@@ -948,6 +948,12 @@ CHECK = \ + $(MKDIR_P) $(@D); \ + rm -f $@-testsum $@-testlog; \ + files=`$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/$(@D) --extrafiles="$(extra_go_files_$(subst /,_,$(@D)))" $(matchargs_$(subst /,_,$(@D)))`; \ ++ run_check=yes; \ ++ MULTILIBDIR="$(MULTILIBDIR)"; \ ++ case "$$MULTILIBDIR" in /64|/x32) \ ++ echo "$$RUNTESTFLAGS" | grep -q "$${MULTILIBDIR\#/*}" || run_check=; \ ++ esac; \ ++ if test "$$run_check" = "yes"; then \ + if test "$(USE_DEJAGNU)" = "yes"; then \ + $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --testname="$(@D)" $(GOTESTFLAGS); \ + elif test "$(GOBENCH)" != ""; then \ +@@ -963,6 +969,7 @@ CHECK = \ + echo "FAIL: $(@D)" > $@-testsum; \ + exit 1; \ + fi; \ ++ fi; \ + fi + + # Build all packages before checking any. +Index: gcc-7-7.2.0/src/libgo/Makefile.in +=================================================================== +--- gcc-7-7.2.0.orig/src/libgo/Makefile.in ++++ gcc-7-7.2.0/src/libgo/Makefile.in +@@ -1085,7 +1085,7 @@ BUILDGOX = \ + $(SHELL) $(srcdir)/mvifdiff.sh $@.tmp `echo $@ | sed -e 's/s-gox/gox/'` + + GOTESTFLAGS = +-GOBENCH = ++GOBENCH = + + # Check a package. + CHECK = \ +@@ -1104,6 +1104,12 @@ CHECK = \ + $(MKDIR_P) $(@D); \ + rm -f $@-testsum $@-testlog; \ + files=`$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/$(@D) --extrafiles="$(extra_go_files_$(subst /,_,$(@D)))" $(matchargs_$(subst /,_,$(@D)))`; \ ++ run_check=yes; \ ++ MULTILIBDIR="$(MULTILIBDIR)"; \ ++ case "$$MULTILIBDIR" in /64|/x32) \ ++ echo "$$RUNTESTFLAGS" | grep -q "$${MULTILIBDIR\#/*}" || run_check=; \ ++ esac; \ ++ if test "$$run_check" = "yes"; then \ + if test "$(USE_DEJAGNU)" = "yes"; then \ + $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --testname="$(@D)" $(GOTESTFLAGS); \ + elif test "$(GOBENCH)" != ""; then \ +@@ -1119,6 +1125,7 @@ CHECK = \ + echo "FAIL: $(@D)" > $@-testsum; \ + exit 1; \ + fi; \ ++ fi; \ + fi + + --- gcc-7-7.5.0.orig/debian/patches/libgomp-kfreebsd-testsuite.diff +++ gcc-7-7.5.0/debian/patches/libgomp-kfreebsd-testsuite.diff @@ -0,0 +1,16 @@ +# DP: Disable lock-2.c test on kfreebsd-* + +Index: b/src/libgomp/testsuite/libgomp.c/lock-2.c +=================================================================== +--- a/src/libgomp/testsuite/libgomp.c/lock-2.c ++++ b/src/libgomp/testsuite/libgomp.c/lock-2.c +@@ -4,6 +4,9 @@ + int + main (void) + { ++#ifdef __FreeBSD_kernel__ ++ return 1; ++#endif + int l = 0; + omp_nest_lock_t lock; + omp_init_nest_lock (&lock); --- gcc-7-7.5.0.orig/debian/patches/libgomp-omp_h-multilib.diff +++ gcc-7-7.5.0/debian/patches/libgomp-omp_h-multilib.diff @@ -0,0 +1,28 @@ +# DP: Fix up omp.h for multilibs. + +2008-06-09 Jakub Jelinek + + * omp.h.in (omp_nest_lock_t): Fix up for Linux multilibs. + +2015-03-25 Matthias Klose + + * omp.h.in (omp_nest_lock_t): Limit the fix Linux. + +Index: b/src/libgomp/omp.h.in +=================================================================== +--- a/src/libgomp/omp.h.in ++++ b/src/libgomp/omp.h.in +@@ -40,8 +40,13 @@ typedef struct + + typedef struct + { ++#if defined(__linux__) ++ unsigned char _x[8 + sizeof (void *)] ++ __attribute__((__aligned__(sizeof (void *)))); ++#else + unsigned char _x[@OMP_NEST_LOCK_SIZE@] + __attribute__((__aligned__(@OMP_NEST_LOCK_ALIGN@))); ++#endif + } omp_nest_lock_t; + #endif + --- gcc-7-7.5.0.orig/debian/patches/libitm-no-fortify-source.diff +++ gcc-7-7.5.0/debian/patches/libitm-no-fortify-source.diff @@ -0,0 +1,19 @@ +# DP: Build libitm with -U_FORTIFY_SOURCE on x86 and x86_64. + +Index: b/src/libitm/configure.tgt +=================================================================== +--- a/src/libitm/configure.tgt ++++ b/src/libitm/configure.tgt +@@ -119,6 +119,12 @@ case "${target_cpu}" in + ;; + esac + ++# FIXME: ftbfs with -D_FORTIFY_SOURCE (error: invalid use of '__builtin_va_arg_pack ()) ++case "${target}" in ++ *-*-linux*) ++ XCFLAGS="${XCFLAGS} -U_FORTIFY_SOURCE" ++esac ++ + # For the benefit of top-level configure, determine if the cpu is supported. + test -d ${srcdir}/config/$ARCH || UNSUPPORTED=1 + --- gcc-7-7.5.0.orig/debian/patches/libjit-ldflags.diff +++ gcc-7-7.5.0/debian/patches/libjit-ldflags.diff @@ -0,0 +1,13 @@ +Index: b/src/gcc/jit/Make-lang.in +=================================================================== +--- a/src/gcc/jit/Make-lang.in ++++ b/src/gcc/jit/Make-lang.in +@@ -86,7 +86,7 @@ $(LIBGCCJIT_FILENAME): $(jit_OBJS) \ + $(CPPLIB) $(LIBDECNUMBER) $(LIBS) $(BACKENDLIBS) \ + $(EXTRA_GCC_OBJS) \ + -Wl,--version-script=$(srcdir)/jit/libgccjit.map \ +- -Wl,-soname,$(LIBGCCJIT_SONAME) ++ -Wl,-soname,$(LIBGCCJIT_SONAME) $(LDFLAGS) + + $(LIBGCCJIT_SONAME_SYMLINK): $(LIBGCCJIT_FILENAME) + ln -sf $(LIBGCCJIT_FILENAME) $(LIBGCCJIT_SONAME_SYMLINK) --- gcc-7-7.5.0.orig/debian/patches/libphobos-zlib.diff +++ gcc-7-7.5.0/debian/patches/libphobos-zlib.diff @@ -0,0 +1,74 @@ +# DP: Build zlib in any case to have a fall back for missing libz multilibs + +Index: b/src/libphobos/configure.ac +=================================================================== +--- a/src/libphobos/configure.ac ++++ b/src/libphobos/configure.ac +@@ -104,6 +104,7 @@ WITH_LOCAL_DRUNTIME([ + + DRUNTIME_LIBBACKTRACE_SETUP + DRUNTIME_INSTALL_DIRECTORIES ++dnl fake change to regenerate the configure file + + # Add dependencies for libgphobos.spec file + LIBS="$LIBS $LIBADD_DLOPEN" +Index: b/src/libphobos/m4/druntime/libraries.m4 +=================================================================== +--- a/src/libphobos/m4/druntime/libraries.m4 ++++ b/src/libphobos/m4/druntime/libraries.m4 +@@ -39,18 +39,44 @@ AC_DEFUN([DRUNTIME_LIBRARIES_ZLIB], + [ + AC_ARG_WITH(target-system-zlib, + AS_HELP_STRING([--with-target-system-zlib], +- [use installed libz (default: no)])) ++ [use installed libz (default: no)]), ++ [system_zlib=yes],[system_zlib=no]) + +- system_zlib=false +- AS_IF([test "x$with_target_system_zlib" = "xyes"], [ +- AC_CHECK_LIB([z], [deflate], [ +- system_zlib=yes +- ], [ +- AC_MSG_ERROR([System zlib not found])]) +- ], [ +- AC_MSG_CHECKING([for zlib]) +- AC_MSG_RESULT([just compiled]) +- ]) ++ AC_MSG_CHECKING([for system zlib]) ++ save_LIBS=$LIBS ++ LIBS="$LIBS -lz" ++ dnl the link test is not good enough for ARM32 multilib detection, ++ dnl first check to link, then to run ++ AC_LANG_PUSH(C) ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([#include ],[gzopen("none", "rb")])], ++ [ ++ AC_RUN_IFELSE([AC_LANG_SOURCE([[ ++ #include ++ int main() { ++ gzFile file = gzopen("none", "rb"); ++ return 0; ++ } ++ ]])], ++ [system_zlib_found=yes], ++ [system_zlib_found=no], ++ dnl no system zlib for cross builds ... ++ [system_zlib_found=no] ++ ) ++ ], ++ [system_zlib_found=no]) ++ LIBS=$save_LIBS ++ if test x$system_zlib = xyes; then ++ if test x$system_zlib_found = xyes; then ++ AC_MSG_RESULT([found]) ++ else ++ AC_MSG_RESULT([not found, disabled]) ++ system_zlib=no ++ fi ++ else ++ AC_MSG_RESULT([not enabled]) ++ fi ++ AC_LANG_POP + + AM_CONDITIONAL([DRUNTIME_ZLIB_SYSTEM], [test "$with_target_system_zlib" = yes]) + ]) --- gcc-7-7.5.0.orig/debian/patches/libstdc++-doclink.diff +++ gcc-7-7.5.0/debian/patches/libstdc++-doclink.diff @@ -0,0 +1,74 @@ +# DP: adjust hrefs to point to the local documentation + +--- + libstdc++-v3/doc/doxygen/mainpage.html | 10 +++++----- + 1 files changed, 5 insertions(+), 5 deletions(-) + +Index: b/src/libstdc++-v3/doc/doxygen/mainpage.html +=================================================================== +--- a/src/libstdc++-v3/doc/doxygen/mainpage.html ++++ b/src/libstdc++-v3/doc/doxygen/mainpage.html +@@ -27,10 +27,10 @@ +

Generated on @DATE@.

+ +

There are two types of documentation for libstdc++. One is the +- distribution documentation, which can be read online +- here +- or offline from the file doc/html/index.html in the library source +- directory. ++ distribution documentation, which can be read ++ offline in the documentation directory ++ or ++ online. +

+ +

The other type is the source documentation, of which this is the first page. +@@ -82,8 +82,11 @@ + +

License, Copyright, and Other Lawyerly Verbosity

+

The libstdc++ documentation is released under ++ these terms ++ (read offline or + +- these terms. ++ read online. ++ ). +

+

Part of the generated documentation involved comments and notes from + SGI, who says we gotta say this: +Index: b/src/libstdc++-v3/doc/html/api.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/api.html ++++ b/src/libstdc++-v3/doc/html/api.html +@@ -20,6 +20,8 @@ + member functions for the library classes, finding out what is in a + particular include file, looking at inheritance diagrams, etc. +

++The API documentation, rendered into HTML, can be viewed offline. ++

+ The API documentation, rendered into HTML, can be viewed online + for each GCC release + and +@@ -38,4 +40,4 @@ +

+ In addition, a rendered set of man pages are available in the same + location specified above. Start with C++Intro(3). +-

+\ No newline at end of file ++

+Index: b/src/libstdc++-v3/doc/xml/api.xml +=================================================================== +--- a/src/libstdc++-v3/doc/xml/api.xml ++++ b/src/libstdc++-v3/doc/xml/api.xml +@@ -40,6 +40,11 @@ + + + ++ The source-level documentation for this release can be viewed offline. ++ ++ ++ ++ + The API documentation, rendered into HTML, can be viewed online + for each GCC release + and --- gcc-7-7.5.0.orig/debian/patches/libstdc++-futex.diff +++ gcc-7-7.5.0/debian/patches/libstdc++-futex.diff @@ -0,0 +1,87 @@ +# DP: Fix GCC_LINUX_FUTEX to work with C99 compilers + +config/ + +2019-09-06 Florian Weimer + + * futex.m4 (GCC_LINUX_FUTEX): Include for the syscall + function. + +libitm/ libgomp/ libstdc++-v3/ + +2019-09-06 Florian Weimer + + * configure: Regenerate. + +--- a/src/config/futex.m4 ++++ b/src/config/futex.m4 +@@ -22,6 +22,7 @@ case "$target" in + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include ++ #include + int lk;], + [syscall (SYS_gettid); syscall (SYS_futex, &lk, 0, 0, 0);])], + [save_LIBS="$LIBS" +@@ -48,6 +49,7 @@ If so, please configure with --disable-l + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include ++ #include + int lk;], + [syscall (SYS_gettid); syscall (SYS_futex, &lk, 0, 0, 0);])],[], + [AC_MSG_ERROR([SYS_gettid and SYS_futex required for --enable-linux-futex])]) +--- a/src/libitm/configure ++++ b/src/libitm/configure +@@ -16250,6 +16250,7 @@ case "$target" in + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include ++#include + int lk; + int + main () +@@ -16302,6 +16303,7 @@ rm -f core conftest.err conftest.$ac_obj + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include ++ #include + int lk; + int + main () +--- a/src/libgomp/configure ++++ b/src/libgomp/configure +@@ -15623,6 +15623,7 @@ case "$target" in + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include ++ #include + int lk; + int + main () +@@ -15675,6 +15676,7 @@ rm -f core conftest.err conftest.$ac_obj + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include ++ #include + int lk; + int + main () +--- a/src/libstdc++-v3/configure ++++ b/src/libstdc++-v3/configure +@@ -78577,6 +78577,7 @@ fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include ++ #include + int lk; + int + main () +@@ -78635,6 +78636,7 @@ fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include ++ #include + int lk; + int + main () --- gcc-7-7.5.0.orig/debian/patches/libstdc++-man-3cxx.diff +++ gcc-7-7.5.0/debian/patches/libstdc++-man-3cxx.diff @@ -0,0 +1,67 @@ +# DP: Install libstdc++ man pages with suffix .3cxx instead of .3 + +Index: b/src/libstdc++-v3/doc/doxygen/user.cfg.in +=================================================================== +--- a/src/libstdc++-v3/doc/doxygen/user.cfg.in ++++ b/src/libstdc++-v3/doc/doxygen/user.cfg.in +@@ -1968,7 +1968,7 @@ MAN_OUTPUT = man + # The default value is: .3. + # This tag requires that the tag GENERATE_MAN is set to YES. + +-MAN_EXTENSION = .3 ++MAN_EXTENSION = .3cxx + + # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it + # will generate one additional man file for each entity documented in the real +Index: b/src/libstdc++-v3/scripts/run_doxygen +=================================================================== +--- a/src/libstdc++-v3/scripts/run_doxygen ++++ b/src/libstdc++-v3/scripts/run_doxygen +@@ -243,6 +243,9 @@ fi + if $do_man; then + echo :: + echo :: Fixing up the man pages... ++mkdir -p $outdir/man/man3 ++mv $outdir/man/man3cxx/* $outdir/man/man3/ ++rmdir $outdir/man/man3cxx + cd $outdir/man/man3 + + # File names with embedded spaces (EVIL!) need to be....? renamed or removed? +@@ -264,7 +267,7 @@ rm -f *.h.3 *.hpp.3 *config* *.cc.3 *.tc + # and I'm off getting coffee then anyhow, so I didn't care enough to make + # this super-fast. + g++ ${srcdir}/doc/doxygen/stdheader.cc -o ./stdheader +-problematic=`egrep -l '#include <.*_.*>' [a-z]*.3` ++problematic=`egrep -l '#include <.*_.*>' [a-z]*.3 [a-z]*.3cxx` + for f in $problematic; do + # this is also slow, but safe and easy to debug + oldh=`sed -n '/fC#include .*/\1/p' $f` +@@ -277,7 +280,7 @@ rm stdheader + # Some of the pages for generated modules have text that confuses certain + # implementations of man(1), e.g. on GNU/Linux. We need to have another + # top-level *roff tag to /stop/ the .SH NAME entry. +-problematic=`egrep --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3` ++problematic=`egrep --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3cxx` + #problematic='Containers.3 Sequences.3 Assoc_containers.3 Iterator_types.3' + + for f in $problematic; do +@@ -291,7 +294,7 @@ a\ + done + + # Also, break this (generated) line up. It's ugly as sin. +-problematic=`grep -l '[^^]Definition at line' *.3` ++problematic=`grep -l '[^^]Definition at line' *.3 *.3cxx` + for f in $problematic; do + sed 's/Definition at line/\ + .PP\ +@@ -408,8 +411,8 @@ for f in ios streambuf istream ostream i + istringstream ostringstream stringstream filebuf ifstream \ + ofstream fstream string; + do +- echo ".so man3/std::basic_${f}.3" > std::${f}.3 +- echo ".so man3/std::basic_${f}.3" > std::w${f}.3 ++ echo ".so man3/std::basic_${f}.3cxx" > std::${f}.3cxx ++ echo ".so man3/std::basic_${f}.3cxx" > std::w${f}.3cxx + done + + echo :: --- gcc-7-7.5.0.orig/debian/patches/libstdc++-no-testsuite.diff +++ gcc-7-7.5.0/debian/patches/libstdc++-no-testsuite.diff @@ -0,0 +1,12 @@ +# DP: Don't run the libstdc++ testsuite on arm, hppa and mipsel (timeouts on the buildds) + +--- a/src/libstdc++-v3/testsuite/Makefile.in ++++ b/src/libstdc++-v3/testsuite/Makefile.in +@@ -567,6 +567,7 @@ + + # Run the testsuite in normal mode. + check-DEJAGNU $(check_DEJAGNU_normal_targets): check-DEJAGNU%: site.exp ++ case "$(target)" in arm*|hppa*|mipsel*) exit 0;; esac; \ + $(if $*,@)AR="$(AR)"; export AR; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + if [ -z "$*" ] && [ "$(filter -j, $(MFLAGS))" = "-j" ]; then \ --- gcc-7-7.5.0.orig/debian/patches/libstdc++-nothumb-check.diff +++ gcc-7-7.5.0/debian/patches/libstdc++-nothumb-check.diff @@ -0,0 +1,38 @@ +# DP: Don't run the libstdc++-v3 testsuite in thumb mode on armel + +Index: testsuite/Makefile.in +=================================================================== +--- a/src/libstdc++-v3/testsuite/Makefile.in (revision 156820) ++++ b/src/libstdc++-v3/testsuite/Makefile.in (working copy) +@@ -583,6 +583,8 @@ + srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \ + EXPECT=$(EXPECT); export EXPECT; \ + runtest=$(RUNTEST); \ ++ runtestflags="`echo '$(RUNTESTFLAGS)' | sed 's/,-marm/-marm/'`"; \ ++ case "$$runtestflags" in *\\{\\}) runtestflags=; esac; \ + if [ -z "$$runtest" ]; then runtest=runtest; fi; \ + tool=libstdc++; \ + dirs=; \ +@@ -590,7 +592,7 @@ + normal0) \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ +- $(RUNTESTFLAGS) abi.exp; \ ++ $$runtestflags abi.exp; \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi; \ + dirs="`cd $$srcdir; echo [013-9][0-9]_*/* [abep]*/*`";; \ +@@ -605,11 +607,11 @@ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + if [ -n "$$dirs" ]; then \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ +- $(RUNTESTFLAGS) \ ++ $$runtestflags \ + "conformance.exp=`echo $$dirs | sed 's/ /* /g;s/$$/*/'`"; \ + else \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ +- $(RUNTESTFLAGS); \ ++ $$runtestflags; \ + fi; \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi --- gcc-7-7.5.0.orig/debian/patches/libstdc++-pic.diff +++ gcc-7-7.5.0/debian/patches/libstdc++-pic.diff @@ -0,0 +1,91 @@ +# DP: Build and install libstdc++_pic.a library. + +--- a/src/libstdc++-v3/src/Makefile.am ++++ b/src/libstdc++-v3/src/Makefile.am +@@ -311,10 +311,12 @@ if GLIBCXX_BUILD_DEBUG + STAMP_DEBUG = build-debug + STAMP_INSTALL_DEBUG = install-debug + CLEAN_DEBUG = debug ++STAMP_INSTALL_PIC = install-pic + else + STAMP_DEBUG = + STAMP_INSTALL_DEBUG = + CLEAN_DEBUG = ++STAMP_INSTALL_PIC = + endif + + # Build a debug variant. +@@ -349,6 +351,7 @@ build-debug: stamp-debug + mv Makefile Makefile.tmp; \ + sed -e 's,all-local: all-once,all-local:,' \ + -e 's,install-data-local: install-data-once,install-data-local:,' \ ++ -e 's,install-exec-local:.*,install-exec-local:,' \ + -e '/vpath/!s,src/c,src/debug/c,' \ + < Makefile.tmp > Makefile ; \ + rm -f Makefile.tmp ; \ +@@ -359,3 +362,8 @@ build-debug: stamp-debug + install-debug: build-debug + (cd ${debugdir} && $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \ + toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) ; ++ ++install-exec-local: $(STAMP_INSTALL_PIC) ++$(STAMP_INSTALL_PIC): ++ $(MKDIR_P) $(DESTDIR)$(toolexeclibdir) ++ $(INSTALL_DATA) .libs/libstdc++convenience.a $(DESTDIR)$(toolexeclibdir)/libstdc++_pic.a +--- a/src/libstdc++-v3/src/Makefile.in ++++ b/src/libstdc++-v3/src/Makefile.in +@@ -535,6 +535,8 @@ CXXLINK = \ + @GLIBCXX_BUILD_DEBUG_TRUE@STAMP_INSTALL_DEBUG = install-debug + @GLIBCXX_BUILD_DEBUG_FALSE@CLEAN_DEBUG = + @GLIBCXX_BUILD_DEBUG_TRUE@CLEAN_DEBUG = debug ++@GLIBCXX_BUILD_DEBUG_FALSE@STAMP_INSTALL_PIC = ++@GLIBCXX_BUILD_DEBUG_TRUE@STAMP_INSTALL_PIC = install-pic + + # Build a debug variant. + # Take care to fix all possibly-relative paths. +@@ -833,7 +835,7 @@ install-dvi: install-dvi-recursive + + install-dvi-am: + +-install-exec-am: install-toolexeclibLTLIBRARIES ++install-exec-am: install-exec-local install-toolexeclibLTLIBRARIES + + install-html: install-html-recursive + +@@ -884,11 +886,11 @@ uninstall-am: uninstall-toolexeclibLTLIB + distclean-libtool distclean-tags dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-data-local install-dvi install-dvi-am install-exec \ +- install-exec-am install-html install-html-am install-info \ +- install-info-am install-man install-pdf install-pdf-am \ +- install-ps install-ps-am install-strip \ +- install-toolexeclibLTLIBRARIES installcheck installcheck-am \ +- installdirs installdirs-am maintainer-clean \ ++ install-exec-am install-exec-local install-html \ ++ install-html-am install-info install-info-am install-man \ ++ install-pdf install-pdf-am install-ps install-ps-am \ ++ install-strip install-toolexeclibLTLIBRARIES installcheck \ ++ installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am \ +@@ -1021,6 +1023,7 @@ build-debug: stamp-debug + mv Makefile Makefile.tmp; \ + sed -e 's,all-local: all-once,all-local:,' \ + -e 's,install-data-local: install-data-once,install-data-local:,' \ ++ -e 's,install-exec-local:.*,install-exec-local:,' \ + -e '/vpath/!s,src/c,src/debug/c,' \ + < Makefile.tmp > Makefile ; \ + rm -f Makefile.tmp ; \ +@@ -1032,6 +1035,11 @@ install-debug: build-debug + (cd ${debugdir} && $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \ + toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) ; + ++install-exec-local: $(STAMP_INSTALL_PIC) ++$(STAMP_INSTALL_PIC): ++ $(MKDIR_P) $(DESTDIR)$(toolexeclibdir) ++ $(INSTALL_DATA) .libs/libstdc++convenience.a $(DESTDIR)$(toolexeclibdir)/libstdc++_pic.a ++ + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: --- gcc-7-7.5.0.orig/debian/patches/libstdc++-r250464.diff +++ gcc-7-7.5.0/debian/patches/libstdc++-r250464.diff @@ -0,0 +1,267 @@ +# DP: Backport r250464 from the trunk (mersenne twister for AArch64) + + +libstdc++-v3/ + +2017-07-23 Michael Collison + + Add optimized implementation of mersenne twister for aarch64 + * config/cpu/aarch64/opt/ext/opt_random.h: New file. + (__arch64_recursion): New function. + (__aarch64_lsr_128): New function. + (__aarch64_lsl_128): New function. + (operator==): New function. + (simd_fast_mersenne_twister_engine): Implement + method _M_gen_rand. + * config/cpu/aarch64/opt/bits/opt_random.h: New file. + * include/ext/random: (simd_fast_mersenne_twister_engine): + add _M_state private array. + + +--- a/src/libstdc++-v3/include/ext/random ++++ b/src/libstdc++-v3/include/ext/random +@@ -184,6 +184,11 @@ + #ifdef __SSE2__ + __m128i _M_state[_M_nstate]; + #endif ++#ifdef __ARM_NEON ++#ifdef __aarch64__ ++ __Uint32x4_t _M_state[_M_nstate]; ++#endif ++#endif + uint32_t _M_state32[_M_nstate32]; + result_type _M_stateT[state_size]; + } __attribute__ ((__aligned__ (16))); +--- a/src/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h ++++ b/src/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h +@@ -0,0 +1,180 @@ ++// Optimizations for random number extensions, aarch64 version -*- C++ -*- ++ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// Under Section 7 of GPL version 3, you are granted additional ++// permissions described in the GCC Runtime Library Exception, version ++// 3.1, as published by the Free Software Foundation. ++ ++// You should have received a copy of the GNU General Public License and ++// a copy of the GCC Runtime Library Exception along with this program; ++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++// . ++ ++/** @file ext/random.tcc ++ * This is an internal header file, included by other library headers. ++ * Do not attempt to use it directly. @headername{ext/random} ++ */ ++ ++#ifndef _EXT_OPT_RANDOM_H ++#define _EXT_OPT_RANDOM_H 1 ++ ++#pragma GCC system_header ++ ++#ifdef __ARM_NEON ++ ++#ifdef __AARCH64EB__ ++# define __VEXT(_A,_B,_C) __builtin_shuffle (_A, _B, (__Uint8x16_t) \ ++ {16-_C, 17-_C, 18-_C, 19-_C, 20-_C, 21-_C, 22-_C, 23-_C, \ ++ 24-_C, 25-_C, 26-_C, 27-_C, 28-_C, 29-_C, 30-_C, 31-_C}) ++#else ++# define __VEXT(_A,_B,_C) __builtin_shuffle (_B, _A, (__Uint8x16_t) \ ++ {_C, _C+1, _C+2, _C+3, _C+4, _C+5, _C+6, _C+7, \ ++ _C+8, _C+9, _C+10, _C+11, _C+12, _C+13, _C+14, _C+15}) ++#endif ++ ++namespace __gnu_cxx _GLIBCXX_VISIBILITY (default) ++{ ++_GLIBCXX_BEGIN_NAMESPACE_VERSION ++ ++ namespace { ++ // Logical Shift right 128-bits by c * 8 bits ++ ++ __extension__ extern __inline __Uint32x4_t ++ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++ __aarch64_lsr_128 (__Uint8x16_t __a, __const int __c) ++ { ++ const __Uint8x16_t __zero = {0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0}; ++ ++ return (__Uint32x4_t) __VEXT (__zero, __a, __c); ++ } ++ ++ // Logical Shift left 128-bits by c * 8 bits ++ ++ __extension__ extern __inline __Uint32x4_t ++ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++ __aarch64_lsl_128 (__Uint8x16_t __a, __const int __c) ++ { ++ const __Uint8x16_t __zero = {0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0}; ++ ++ return (__Uint32x4_t) __VEXT (__a, __zero, 16 - __c); ++ } ++ ++ template ++ inline __Uint32x4_t __aarch64_recursion (__Uint32x4_t __a, ++ __Uint32x4_t __b, ++ __Uint32x4_t __c, ++ __Uint32x4_t __d, ++ __Uint32x4_t __e) ++ { ++ __Uint32x4_t __y = (__b >> __sr1); ++ __Uint32x4_t __z = __aarch64_lsr_128 ((__Uint8x16_t) __c, __sr2); ++ ++ __Uint32x4_t __v = __d << __sl1; ++ ++ __z = __z ^ __a; ++ __z = __z ^ __v; ++ ++ __Uint32x4_t __x = __aarch64_lsl_128 ((__Uint8x16_t) __a, __sl2); ++ ++ __y = __y & __e; ++ __z = __z ^ __x; ++ return __z ^ __y; ++ } ++} ++ ++#define _GLIBCXX_OPT_HAVE_RANDOM_SFMT_GEN_READ 1 ++ template ++ void simd_fast_mersenne_twister_engine<_UIntType, __m, ++ __pos1, __sl1, __sl2, __sr1, __sr2, ++ __msk1, __msk2, __msk3, __msk4, ++ __parity1, __parity2, __parity3, ++ __parity4>:: ++ _M_gen_rand (void) ++ { ++ __Uint32x4_t __r1 = _M_state[_M_nstate - 2]; ++ __Uint32x4_t __r2 = _M_state[_M_nstate - 1]; ++ ++ __Uint32x4_t __aData = {__msk1, __msk2, __msk3, __msk4}; ++ ++ size_t __i; ++ for (__i = 0; __i < _M_nstate - __pos1; ++__i) ++ { ++ __Uint32x4_t __r = __aarch64_recursion<__sl1, __sl2, __sr1, __sr2> ++ (_M_state[__i], _M_state[__i + __pos1], __r1, __r2, __aData); ++ ++ _M_state[__i] = __r; ++ ++ __r1 = __r2; ++ __r2 = __r; ++ } ++ for (; __i < _M_nstate; ++__i) ++ { ++ __Uint32x4_t __r = __aarch64_recursion<__sl1, __sl2, __sr1, __sr2> ++ (_M_state[__i], _M_state[__i + __pos1 - _M_nstate], __r1, __r2, ++ __aData); ++ ++ _M_state[__i] = __r; ++ ++ __r1 = __r2; ++ __r2 = __r; ++ } ++ ++ _M_pos = 0; ++ } ++ ++ ++#define _GLIBCXX_OPT_HAVE_RANDOM_SFMT_OPERATOREQUAL 1 ++ template ++ bool ++ operator==(const __gnu_cxx::simd_fast_mersenne_twister_engine<_UIntType, ++ __m, __pos1, __sl1, __sl2, __sr1, __sr2, ++ __msk1, __msk2, __msk3, __msk4, ++ __parity1, __parity2, __parity3, __parity4>& __lhs, ++ const __gnu_cxx::simd_fast_mersenne_twister_engine<_UIntType, ++ __m, __pos1, __sl1, __sl2, __sr1, __sr2, ++ __msk1, __msk2, __msk3, __msk4, ++ __parity1, __parity2, __parity3, __parity4>& __rhs) ++ { ++ if (__lhs._M_pos != __rhs._M_pos) ++ return false; ++ ++ __Uint32x4_t __res = __lhs._M_state[0] ^ __rhs._M_state[0]; ++ ++ for (size_t __i = 1; __i < __lhs._M_nstate; ++__i) ++ __res |= __lhs._M_state[__i] ^ __rhs._M_state[__i]; ++ ++ return (__int128) __res == 0; ++ } ++ ++_GLIBCXX_END_NAMESPACE_VERSION ++ } // namespace ++ ++#endif // __ARM_NEON ++ ++#endif // _EXT_OPT_RANDOM_H +--- a/src/libstdc++-v3/config/cpu/aarch64/opt/bits/opt_random.h ++++ b/src/libstdc++-v3/config/cpu/aarch64/opt/bits/opt_random.h +@@ -0,0 +1,47 @@ ++// Optimizations for random number functions, aarch64 version -*- C++ -*- ++ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// Under Section 7 of GPL version 3, you are granted additional ++// permissions described in the GCC Runtime Library Exception, version ++// 3.1, as published by the Free Software Foundation. ++ ++// You should have received a copy of the GNU General Public License and ++// a copy of the GCC Runtime Library Exception along with this program; ++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++// . ++ ++/** @file bits/opt_random.h ++ * This is an internal header file, included by other library headers. ++ * Do not attempt to use it directly. @headername{random} ++ */ ++ ++#ifndef _BITS_OPT_RANDOM_H ++#define _BITS_OPT_RANDOM_H 1 ++ ++#pragma GCC system_header ++ ++ ++namespace std _GLIBCXX_VISIBILITY (default) ++{ ++_GLIBCXX_BEGIN_NAMESPACE_VERSION ++ ++ ++ ++ ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace ++ ++ ++#endif // _BITS_OPT_RANDOM_H --- gcc-7-7.5.0.orig/debian/patches/libstdc++-test-installed.diff +++ gcc-7-7.5.0/debian/patches/libstdc++-test-installed.diff @@ -0,0 +1,78 @@ +# DP: Add support to run the libstdc++-v3 testsuite using the +# DP: installed shared libraries. + +Index: b/src/libstdc++-v3/testsuite/lib/libstdc++.exp +=================================================================== +--- a/src/libstdc++-v3/testsuite/lib/libstdc++.exp ++++ b/src/libstdc++-v3/testsuite/lib/libstdc++.exp +@@ -37,6 +37,12 @@ + # the last thing before testing begins. This can be defined in, e.g., + # ~/.dejagnurc or $DEJAGNU. + ++set test_installed 0 ++if [info exists env(TEST_INSTALLED)] { ++ verbose -log "test installed libstdc++-v3" ++ set test_installed 1 ++} ++ + proc load_gcc_lib { filename } { + global srcdir loaded_libs + +@@ -101,6 +107,7 @@ proc libstdc++_init { testfile } { + global tool_timeout + global DEFAULT_CXXFLAGS + global STATIC_LIBCXXFLAGS ++ global test_installed + + # We set LC_ALL and LANG to C so that we get the same error + # messages as expected. +@@ -120,6 +127,9 @@ proc libstdc++_init { testfile } { + + set blddir [lookfor_file [get_multilibs] libstdc++-v3] + set flags_file "${blddir}/scripts/testsuite_flags" ++ if {$test_installed} { ++ set flags_file "${blddir}/scripts/testsuite_flags.installed" ++ } + set shlib_ext [get_shlib_extension] + v3track flags_file 2 + +@@ -154,7 +164,11 @@ proc libstdc++_init { testfile } { + + # Locate libgcc.a so we don't need to account for different values of + # SHLIB_EXT on different platforms +- set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a] ++ if {$test_installed} { ++ set gccdir "" ++ } else { ++ set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a] ++ } + if {$gccdir != ""} { + set gccdir [file dirname $gccdir] + append ld_library_path_tmp ":${gccdir}" +@@ -163,7 +177,11 @@ proc libstdc++_init { testfile } { + + # Locate libgomp. This is only required for parallel mode. + set v3-libgomp 0 +- set libgompdir [lookfor_file $blddir/../libgomp .libs/libgomp.$shlib_ext] ++ if {$test_installed} { ++ set libgompdir "" ++ } else { ++ set libgompdir [lookfor_file $blddir/../libgomp .libs/libgomp.$shlib_ext] ++ } + if {$libgompdir != ""} { + set v3-libgomp 1 + set libgompdir [file dirname $libgompdir] +@@ -185,7 +203,12 @@ proc libstdc++_init { testfile } { + + # Locate libstdc++ shared library. (ie libstdc++.so.) + set v3-sharedlib 0 +- set sharedlibdir [lookfor_file $blddir src/.libs/libstdc++.$shlib_ext] ++ if {$test_installed} { ++ set sharedlibdir "" ++ set v3-sharedlib 1 ++ } else { ++ set sharedlibdir [lookfor_file $blddir src/.libs/libstdc++.$shlib_ext] ++ } + if {$sharedlibdir != ""} { + if { ([string match "*-*-gnu*" $target_triplet] + || [string match "*-*-linux*" $target_triplet] --- gcc-7-7.5.0.orig/debian/patches/linaro-issue2575.diff +++ gcc-7-7.5.0/debian/patches/linaro-issue2575.diff @@ -0,0 +1,16 @@ +# DP: Fix ICE in tree_to_shwi, Linaro issue #2575. + +--- a/src/gcc/varasm.c ++++ b/src/gcc/varasm.c +@@ -6777,8 +6777,9 @@ + anchor range to reduce the amount of instructions require to refer + to the entire declaration. */ + if (decl && DECL_SIZE (decl) +- && tree_to_shwi (DECL_SIZE (decl)) +- >= (targetm.max_anchor_offset * BITS_PER_UNIT)) ++ && (!tree_fits_shwi_p (DECL_SIZE (decl)) ++ || tree_to_shwi (DECL_SIZE (decl)) ++ >= (targetm.max_anchor_offset * BITS_PER_UNIT))) + return false; + + } --- gcc-7-7.5.0.orig/debian/patches/note-gnu-stack.diff +++ gcc-7-7.5.0/debian/patches/note-gnu-stack.diff @@ -0,0 +1,139 @@ +# DP: Add .note.GNU-stack sections for gcc's crt files, libffi and boehm-gc +# DP: Taken from FC. + +gcc/ + +2004-09-20 Jakub Jelinek + + * config/rs6000/ppc-asm.h: Add .note.GNU-stack section also + on ppc64-linux. + + * config/ia64/lib1funcs.asm: Add .note.GNU-stack section on + ia64-linux. + * config/ia64/crtbegin.asm: Likewise. + * config/ia64/crtend.asm: Likewise. + * config/ia64/crti.asm: Likewise. + * config/ia64/crtn.asm: Likewise. + +2004-05-14 Jakub Jelinek + + * config/ia64/linux.h (TARGET_ASM_FILE_END): Define. + +libffi/ + +2007-05-11 Daniel Jacobowitz + + * src/arm/sysv.S: Fix ARM comment marker. + +2005-02-08 Jakub Jelinek + + * src/alpha/osf.S: Add .note.GNU-stack on Linux. + * src/s390/sysv.S: Likewise. + * src/powerpc/linux64.S: Likewise. + * src/powerpc/linux64_closure.S: Likewise. + * src/powerpc/ppc_closure.S: Likewise. + * src/powerpc/sysv.S: Likewise. + * src/x86/unix64.S: Likewise. + * src/x86/sysv.S: Likewise. + * src/sparc/v8.S: Likewise. + * src/sparc/v9.S: Likewise. + * src/m68k/sysv.S: Likewise. + * src/ia64/unix.S: Likewise. + * src/arm/sysv.S: Likewise. + +--- + gcc/config/ia64/linux.h | 3 +++ + gcc/config/rs6000/ppc-asm.h | 2 +- + libgcc/config/ia64/crtbegin.S | 4 ++++ + libgcc/config/ia64/crtend.S | 4 ++++ + libgcc/config/ia64/crti.S | 4 ++++ + libgcc/config/ia64/crtn.S | 4 ++++ + libgcc/config/ia64/lib1funcs.S | 4 ++++ + 9 files changed, 39 insertions(+), 13 deletions(-) + +Index: b/src/libgcc/config/ia64/crtbegin.S +=================================================================== +--- a/src/libgcc/config/ia64/crtbegin.S ++++ b/src/libgcc/config/ia64/crtbegin.S +@@ -185,3 +185,7 @@ __do_global_dtors_aux: + .weak __cxa_finalize + #endif + .weak _Jv_RegisterClasses ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +Index: b/src/libgcc/config/ia64/crtend.S +=================================================================== +--- a/src/libgcc/config/ia64/crtend.S ++++ b/src/libgcc/config/ia64/crtend.S +@@ -114,3 +114,7 @@ __do_global_ctors_aux: + + br.ret.sptk.many rp + .endp __do_global_ctors_aux ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +Index: b/src/libgcc/config/ia64/crti.S +=================================================================== +--- a/src/libgcc/config/ia64/crti.S ++++ b/src/libgcc/config/ia64/crti.S +@@ -51,3 +51,7 @@ _fini: + .body + + # end of crti.S ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +Index: b/src/libgcc/config/ia64/crtn.S +=================================================================== +--- a/src/libgcc/config/ia64/crtn.S ++++ b/src/libgcc/config/ia64/crtn.S +@@ -41,3 +41,7 @@ + br.ret.sptk.many b0 + + # end of crtn.S ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +Index: b/src/libgcc/config/ia64/lib1funcs.S +=================================================================== +--- a/src/libgcc/config/ia64/lib1funcs.S ++++ b/src/libgcc/config/ia64/lib1funcs.S +@@ -793,3 +793,7 @@ __floattitf: + .endp __floattitf + #endif + #endif ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +Index: b/src/gcc/config/ia64/linux.h +=================================================================== +--- a/src/gcc/config/ia64/linux.h ++++ b/src/gcc/config/ia64/linux.h +@@ -79,5 +79,8 @@ do { \ + #undef TARGET_INIT_LIBFUNCS + #define TARGET_INIT_LIBFUNCS ia64_soft_fp_init_libfuncs + ++#undef TARGET_ASM_FILE_END ++#define TARGET_ASM_FILE_END file_end_indicate_exec_stack ++ + /* Define this to be nonzero if static stack checking is supported. */ + #define STACK_CHECK_STATIC_BUILTIN 1 +Index: b/src/gcc/config/rs6000/ppc-asm.h +=================================================================== +--- a/src/gcc/config/rs6000/ppc-asm.h ++++ b/src/gcc/config/rs6000/ppc-asm.h +@@ -375,7 +375,7 @@ GLUE(.L,name): \ + #endif + #endif + +-#if defined __linux__ && !defined __powerpc64__ ++#if defined __linux__ + .section .note.GNU-stack + .previous + #endif --- gcc-7-7.5.0.orig/debian/patches/powerpc_nofprs.diff +++ gcc-7-7.5.0/debian/patches/powerpc_nofprs.diff @@ -0,0 +1,85 @@ +Index: b/src/libgcc/config/rs6000/crtsavfpr.S +=================================================================== +--- a/src/libgcc/config/rs6000/crtsavfpr.S ++++ b/src/libgcc/config/rs6000/crtsavfpr.S +@@ -32,6 +32,7 @@ + + /* On PowerPC64 Linux, these functions are provided by the linker. */ + #ifndef __powerpc64__ ++#ifndef __NO_FPRS__ + + /* Routines for saving floating point registers, called by the compiler. */ + /* Called with r11 pointing to the stack header word of the caller of the */ +@@ -78,3 +79,4 @@ FUNC_END(_savefpr_14) + CFI_ENDPROC + + #endif ++#endif +Index: b/src/libgcc/config/rs6000/crtresfpr.S +=================================================================== +--- a/src/libgcc/config/rs6000/crtresfpr.S ++++ b/src/libgcc/config/rs6000/crtresfpr.S +@@ -32,6 +32,7 @@ + + /* On PowerPC64 Linux, these functions are provided by the linker. */ + #ifndef __powerpc64__ ++#ifndef __NO_FPRS__ + + /* Routines for restoring floating point registers, called by the compiler. */ + /* Called with r11 pointing to the stack header word of the caller of the */ +@@ -78,3 +79,4 @@ FUNC_END(_restfpr_14) + CFI_ENDPROC + + #endif ++#endif +Index: b/src/libgcc/config/rs6000/crtresxfpr.S +=================================================================== +--- a/src/libgcc/config/rs6000/crtresxfpr.S ++++ b/src/libgcc/config/rs6000/crtresxfpr.S +@@ -32,6 +32,7 @@ + + /* On PowerPC64 Linux, these functions are provided by the linker. */ + #ifndef __powerpc64__ ++#ifndef __NO_FPRS__ + + /* Routines for restoring floating point registers, called by the compiler. */ + /* Called with r11 pointing to the stack header word of the caller of the */ +@@ -123,3 +124,4 @@ FUNC_END(_restfpr_14_x) + CFI_ENDPROC + + #endif ++#endif +Index: b/src/libgcc/config/rs6000/crtsavevr.S +=================================================================== +--- a/src/libgcc/config/rs6000/crtsavevr.S ++++ b/src/libgcc/config/rs6000/crtsavevr.S +@@ -24,6 +24,7 @@ + + /* On PowerPC64 Linux, these functions are provided by the linker. */ + #ifndef __powerpc64__ ++#ifndef __NO_FPRS__ + + #undef __ALTIVEC__ + #define __ALTIVEC__ 1 +@@ -86,3 +87,4 @@ FUNC_END(_savevr_20) + CFI_ENDPROC + + #endif ++#endif +Index: b/src/libgcc/config/rs6000/crtrestvr.S +=================================================================== +--- a/src/libgcc/config/rs6000/crtrestvr.S ++++ b/src/libgcc/config/rs6000/crtrestvr.S +@@ -24,6 +24,7 @@ + + /* On PowerPC64 Linux, these functions are provided by the linker. */ + #ifndef __powerpc64__ ++#ifndef __NO_FPRS__ + + #undef __ALTIVEC__ + #define __ALTIVEC__ 1 +@@ -86,3 +87,4 @@ FUNC_END(_restvr_20) + CFI_ENDPROC + + #endif ++#endif --- gcc-7-7.5.0.orig/debian/patches/powerpc_remove_many.diff +++ gcc-7-7.5.0/debian/patches/powerpc_remove_many.diff @@ -0,0 +1,31 @@ +# DP: Subject: [PATCH] remove -many on __SPE__ target +# DP: this helps to to detect opcodes which are not part of the current +# DP: CPU because without -many gas won't touch them. This currently could +# DP: break the kernel build as the 603 on steroids cpus use performance +# DP: counter opcodes which are not available on the steroid less 603 core. + +--- a/src/gcc/config/rs6000/rs6000.h ++++ b/src/gcc/config/rs6000/rs6000.h +@@ -107,6 +107,12 @@ + #define ASM_CPU_476_SPEC "-mpower4" + #endif + ++#ifndef __SPE__ ++#define ASM_CPU_SPU_MANY_NOT_SPE "-many" ++#else ++#define ASM_CPU_SPU_MANY_NOT_SPE ++#endif ++ + /* Common ASM definitions used by ASM_SPEC among the various targets for + handling -mcpu=xxx switches. There is a parallel list in driver-rs6000.c to + provide the default assembler options if the user uses -mcpu=native, so if +@@ -175,7 +181,8 @@ + %{mvsx: -mvsx %{!maltivec: -maltivec} %{!mcpu*: %(asm_cpu_power7)}} \ + %{mpower8-vector|mcrypto|mdirect-move|mhtm: %{!mcpu*: %(asm_cpu_power8)}} \ + %{mpower9-vector: %{!mcpu*|mcpu=power8: %(asm_cpu_power9)}} \ +--many" ++" \ ++ASM_CPU_SPU_MANY_NOT_SPE + + #define CPP_DEFAULT_SPEC "" + --- gcc-7-7.5.0.orig/debian/patches/pr39491.diff +++ gcc-7-7.5.0/debian/patches/pr39491.diff @@ -0,0 +1,132 @@ +# DP: Proposed patch for PR libstdc++/39491. + +2009-04-16 Benjamin Kosnik + + * src/math_stubs_long_double.cc (__signbitl): Add for hppa linux only. + +Index: a/src/libstdc++-v3/src/math_stubs_long_double.cc +=================================================================== +--- a/src/libstdc++-v3/src/math_stubs_long_double.cc (revision 146216) ++++ b/src/libstdc++-v3/src/math_stubs_long_double.cc (working copy) +@@ -213,4 +221,111 @@ + return tanh((double) x); + } + #endif ++ ++ // From libmath/signbitl.c ++ // XXX ABI mistakenly exported ++#if defined (__hppa__) && defined (__linux__) ++# include ++# include ++ ++typedef unsigned int U_int32_t __attribute ((mode (SI))); ++typedef int Int32_t __attribute ((mode (SI))); ++typedef unsigned int U_int64_t __attribute ((mode (DI))); ++typedef int Int64_t __attribute ((mode (DI))); ++ ++#if BYTE_ORDER == BIG_ENDIAN ++typedef union ++{ ++ long double value; ++ struct ++ { ++ unsigned int sign_exponent:16; ++ unsigned int empty:16; ++ U_int32_t msw; ++ U_int32_t lsw; ++ } parts; ++} ieee_long_double_shape_type; ++#endif ++#if BYTE_ORDER == LITTLE_ENDIAN ++typedef union ++{ ++ long double value; ++ struct ++ { ++ U_int32_t lsw; ++ U_int32_t msw; ++ unsigned int sign_exponent:16; ++ unsigned int empty:16; ++ } parts; ++} ieee_long_double_shape_type; ++#endif ++ ++/* Get int from the exponent of a long double. */ ++#define GET_LDOUBLE_EXP(exp,d) \ ++do { \ ++ ieee_long_double_shape_type ge_u; \ ++ ge_u.value = (d); \ ++ (exp) = ge_u.parts.sign_exponent; \ ++} while (0) ++ ++#if BYTE_ORDER == BIG_ENDIAN ++typedef union ++{ ++ long double value; ++ struct ++ { ++ U_int64_t msw; ++ U_int64_t lsw; ++ } parts64; ++ struct ++ { ++ U_int32_t w0, w1, w2, w3; ++ } parts32; ++} ieee_quad_double_shape_type; ++#endif ++ ++#if BYTE_ORDER == LITTLE_ENDIAN ++typedef union ++{ ++ long double value; ++ struct ++ { ++ U_int64_t lsw; ++ U_int64_t msw; ++ } parts64; ++ struct ++ { ++ U_int32_t w3, w2, w1, w0; ++ } parts32; ++} ieee_quad_double_shape_type; ++#endif ++ ++/* Get most significant 64 bit int from a quad long double. */ ++#define GET_LDOUBLE_MSW64(msw,d) \ ++do { \ ++ ieee_quad_double_shape_type qw_u; \ ++ qw_u.value = (d); \ ++ (msw) = qw_u.parts64.msw; \ ++} while (0) ++ ++int ++__signbitl (long double x) ++{ ++#if LDBL_MANT_DIG == 113 ++ Int64_t msw; ++ ++ GET_LDOUBLE_MSW64 (msw, x); ++ return msw < 0; ++#else ++ Int32_t e; ++ ++ GET_LDOUBLE_EXP (e, x); ++ return e & 0x8000; ++#endif ++} ++#endif ++ ++#ifndef _GLIBCXX_HAVE___SIGNBITL ++ ++#endif + } // extern "C" +--- a/src/libstdc++-v3/config/abi/pre/gnu.ver~ 2009-04-10 01:23:07.000000000 +0200 ++++ b/src/libstdc++-v3/config/abi/pre/gnu.ver 2009-04-21 16:24:24.000000000 +0200 +@@ -635,6 +635,7 @@ + sqrtf; + sqrtl; + copysignf; ++ __signbitl; + + # GLIBCXX_ABI compatibility only. + # std::string --- gcc-7-7.5.0.orig/debian/patches/pr47818.diff +++ gcc-7-7.5.0/debian/patches/pr47818.diff @@ -0,0 +1,26 @@ +Description: allow pragma Assert with No_Implementation_Pragmas restriction. +Author: Eugeniy Meshcheryakov +Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47818 + +Index: b/src/gcc/ada/sem_prag.adb +=================================================================== +--- a/src/gcc/ada/sem_prag.adb ++++ b/src/gcc/ada/sem_prag.adb +@@ -16864,7 +16864,16 @@ package body Sem_Prag is + Typ_Arg : Node_Id; + + begin +- GNAT_Pragma; ++ -- This could be a rewritten pragma Assert. If it is the case ++ -- then don't check restrictions, because they are different for ++ -- pragma Assert and were already checked. ++ ++ if Nkind (Original_Node (N)) /= N_Pragma ++ or else Pragma_Name (Original_Node (N)) /= Name_Assert ++ then ++ GNAT_Pragma; ++ end if; ++ + Check_At_Least_N_Arguments (2); + Check_At_Most_N_Arguments (3); + Check_Optional_Identifier (Arg1, Name_Entity); --- gcc-7-7.5.0.orig/debian/patches/pr66368.diff +++ gcc-7-7.5.0/debian/patches/pr66368.diff @@ -0,0 +1,26 @@ +# DP: PR go/66368, build libgo with -fno-stack-protector + +Index: b/src/libgo/Makefile.am +=================================================================== +--- a/src/libgo/Makefile.am ++++ b/src/libgo/Makefile.am +@@ -41,6 +41,7 @@ AM_CPPFLAGS = -I $(srcdir)/runtime $(LIB + ACLOCAL_AMFLAGS = -I ./config -I ../config + + AM_CFLAGS = -fexceptions -fnon-call-exceptions -fplan9-extensions \ ++ -fno-stack-protector \ + $(SPLIT_STACK) $(WARN_CFLAGS) \ + $(STRINGOPS_FLAG) $(HWCAP_CFLAGS) $(OSCFLAGS) \ + -I $(srcdir)/../libgcc -I $(srcdir)/../libbacktrace \ +Index: b/src/libgo/Makefile.in +=================================================================== +--- a/src/libgo/Makefile.in ++++ b/src/libgo/Makefile.in +@@ -458,6 +458,7 @@ WARN_CFLAGS = $(WARN_FLAGS) $(WERROR) + AM_CPPFLAGS = -I $(srcdir)/runtime $(LIBFFIINCS) $(PTHREAD_CFLAGS) + ACLOCAL_AMFLAGS = -I ./config -I ../config + AM_CFLAGS = -fexceptions -fnon-call-exceptions -fplan9-extensions \ ++ -fno-stack-protector \ + $(SPLIT_STACK) $(WARN_CFLAGS) \ + $(STRINGOPS_FLAG) $(HWCAP_CFLAGS) $(OSCFLAGS) \ + -I $(srcdir)/../libgcc -I $(srcdir)/../libbacktrace \ --- gcc-7-7.5.0.orig/debian/patches/pr67165.diff +++ gcc-7-7.5.0/debian/patches/pr67165.diff @@ -0,0 +1,2503 @@ +# DP: Fix PR other/67165, libbacktrace support for compressed debug sections + +2017-09-28 Ian Lance Taylor + + PR other/67165 + * elf.c (__builtin_prefetch): Define if not __GNUC__. + (unlikely): Define. + (SHF_UNCOMPRESSED, ELFCOMPRESS_ZLIB): Define. + (b_elf_chdr): Define type. + (enum debug_section): Add ZDEBUG_xxx values. + (debug_section_names): Add names for new sections. + (struct debug_section_info): Add compressed field. + (elf_zlib_failed, elf_zlib_fetch): New static functions. + (HUFFMAN_TABLE_SIZE, HUFFMAN_VALUE_MASK): Define. + (HUFFMAN_BITS_SHIFT, HUFFMAN_BITS_MASK): Define. + (HUFFMAN_SECONDARY_SHIFT): Define. + (ZDEBUG_TABLE_SIZE): Define. + (ZDEBUG_TABLE_CODELEN_OFFSET, ZDEBUG_TABLE_WORK_OFFSET): Define. + (final_next_secondary): New static variable if + BACKTRACE_GENERATE_FIXED_HUFFMAN_TABLE. + (elf_zlib_inflate_table): New static function. + (BACKTRACE_GENERATE_FIXED_HUFFMAN_TABLE): If define, define main + function to produce fixed Huffman table. + (elf_zlib_default_table): New static variable. + (elf_zlib_inflate): New static function. + (elf_zlib_verify_checksum): Likewise. + (elf_zlib_inflate_and_verify): Likewise. + (elf_uncompress_zdebug): Likewise. + (elf_uncompress_chdr): Likewise. + (backtrace_uncompress_zdebug): New extern function. + (elf_add): Look for .zdebug sections and SHF_COMPRESSED debug + sections, and uncompress them. + * internal.h (backtrace_compress_zdebug): Declare. + * ztest.c: New file. + * configure.ac: Check for -lz and check whether the linker + supports --compress-debug-sections. + * Makefile.am (ztest_SOURCES): New variable. + (ztest_CFLAGS, ztest_LDADD): New variables. + (check_PROGRAMS): Add ztest. + (ctestg_SOURCES): New variable. + (ctestg_CFLAGS, ctestg_LDFLAGS, ctestg_LDADD): New variables. + (ctesta_SOURCES): New variable. + (ctesta_CFLAGS, ctesta_LDFLAGS, ctesta_LDADD): New variables. + (check_PROGRAMS): Add ctestg and ctesta. + * configure, config.h.in, Makefile.in: Rebuild. + +Index: b/src/libbacktrace/Makefile.in +=================================================================== +--- a/src/libbacktrace/Makefile.in ++++ b/src/libbacktrace/Makefile.in +@@ -16,7 +16,7 @@ + @SET_MAKE@ + + # Makefile.am -- Backtrace Makefile. +-# Copyright (C) 2012-2016 Free Software Foundation, Inc. ++# Copyright (C) 2012-2017 Free Software Foundation, Inc. + + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are +@@ -83,9 +83,11 @@ POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ + target_triplet = @target@ +-check_PROGRAMS = $(am__EXEEXT_1) +-@NATIVE_TRUE@am__append_1 = btest stest +-@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_2 = dtest ++check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) ++@NATIVE_TRUE@am__append_1 = btest stest ztest ++@HAVE_ZLIB_TRUE@@NATIVE_TRUE@am__append_2 = -lz ++@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_3 = dtest ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__append_4 = ctestg ctesta + subdir = . + DIST_COMMON = README ChangeLog $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/configure \ +@@ -114,16 +116,44 @@ am__DEPENDENCIES_1 = + am_libbacktrace_la_OBJECTS = atomic.lo dwarf.lo fileline.lo posix.lo \ + print.lo sort.lo state.lo + libbacktrace_la_OBJECTS = $(am_libbacktrace_la_OBJECTS) +-@NATIVE_TRUE@am__EXEEXT_1 = btest$(EXEEXT) stest$(EXEEXT) ++@NATIVE_TRUE@am__EXEEXT_1 = btest$(EXEEXT) stest$(EXEEXT) \ ++@NATIVE_TRUE@ ztest$(EXEEXT) ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__EXEEXT_2 = \ ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg$(EXEEXT) \ ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta$(EXEEXT) + @NATIVE_TRUE@am_btest_OBJECTS = btest-btest.$(OBJEXT) + btest_OBJECTS = $(am_btest_OBJECTS) + @NATIVE_TRUE@btest_DEPENDENCIES = libbacktrace.la + btest_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(btest_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am_ctesta_OBJECTS = ctesta-btest.$(OBJEXT) \ ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctesta-testlib.$(OBJEXT) ++ctesta_OBJECTS = $(am_ctesta_OBJECTS) ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_DEPENDENCIES = \ ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ libbacktrace.la ++ctesta_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(ctesta_CFLAGS) $(CFLAGS) \ ++ $(ctesta_LDFLAGS) $(LDFLAGS) -o $@ ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am_ctestg_OBJECTS = ctestg-btest.$(OBJEXT) \ ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ ctestg-testlib.$(OBJEXT) ++ctestg_OBJECTS = $(am_ctestg_OBJECTS) ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_DEPENDENCIES = \ ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ libbacktrace.la ++ctestg_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(ctestg_CFLAGS) $(CFLAGS) \ ++ $(ctestg_LDFLAGS) $(LDFLAGS) -o $@ + @NATIVE_TRUE@am_stest_OBJECTS = stest.$(OBJEXT) + stest_OBJECTS = $(am_stest_OBJECTS) + @NATIVE_TRUE@stest_DEPENDENCIES = libbacktrace.la ++@NATIVE_TRUE@am_ztest_OBJECTS = ztest-ztest.$(OBJEXT) \ ++@NATIVE_TRUE@ ztest-testlib.$(OBJEXT) ++ztest_OBJECTS = $(am_ztest_OBJECTS) ++@NATIVE_TRUE@ztest_DEPENDENCIES = libbacktrace.la \ ++@NATIVE_TRUE@ $(am__DEPENDENCIES_1) ++ztest_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(ztest_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ ++ $(LDFLAGS) -o $@ + DEFAULT_INCLUDES = -I.@am__isrc@ + depcomp = + am__depfiles_maybe = +@@ -137,7 +167,8 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLF + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ + SOURCES = $(libbacktrace_la_SOURCES) $(EXTRA_libbacktrace_la_SOURCES) \ +- $(btest_SOURCES) $(stest_SOURCES) ++ $(btest_SOURCES) $(ctesta_SOURCES) $(ctestg_SOURCES) \ ++ $(stest_SOURCES) $(ztest_SOURCES) + MULTISRCTOP = + MULTIBUILDTOP = + MULTIDIRS = +@@ -326,12 +357,23 @@ libbacktrace_la_LIBADD = \ + $(ALLOC_FILE) + + libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD) +-TESTS = $(check_PROGRAMS) $(am__append_2) ++TESTS = $(check_PROGRAMS) $(am__append_3) + @NATIVE_TRUE@btest_SOURCES = btest.c + @NATIVE_TRUE@btest_CFLAGS = $(AM_CFLAGS) -g -O + @NATIVE_TRUE@btest_LDADD = libbacktrace.la + @NATIVE_TRUE@stest_SOURCES = stest.c + @NATIVE_TRUE@stest_LDADD = libbacktrace.la ++@NATIVE_TRUE@ztest_SOURCES = ztest.c testlib.c ++@NATIVE_TRUE@ztest_CFLAGS = -DSRCDIR=\"$(srcdir)\" ++@NATIVE_TRUE@ztest_LDADD = libbacktrace.la $(am__append_2) ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_SOURCES = btest.c testlib.c ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_CFLAGS = $(AM_CFLAGS) -g ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_LDFLAGS = -Wl,--compress-debug-sections=zlib-gnu ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctestg_LDADD = libbacktrace.la ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_SOURCES = btest.c testlib.c ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_CFLAGS = $(AM_CFLAGS) -g ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi ++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_LDADD = libbacktrace.la + + # We can't use automake's automatic dependency tracking, because it + # breaks when using bootstrap-lean. Automatic dependency tracking +@@ -424,9 +466,18 @@ clean-checkPROGRAMS: + btest$(EXEEXT): $(btest_OBJECTS) $(btest_DEPENDENCIES) $(EXTRA_btest_DEPENDENCIES) + @rm -f btest$(EXEEXT) + $(btest_LINK) $(btest_OBJECTS) $(btest_LDADD) $(LIBS) ++ctesta$(EXEEXT): $(ctesta_OBJECTS) $(ctesta_DEPENDENCIES) $(EXTRA_ctesta_DEPENDENCIES) ++ @rm -f ctesta$(EXEEXT) ++ $(ctesta_LINK) $(ctesta_OBJECTS) $(ctesta_LDADD) $(LIBS) ++ctestg$(EXEEXT): $(ctestg_OBJECTS) $(ctestg_DEPENDENCIES) $(EXTRA_ctestg_DEPENDENCIES) ++ @rm -f ctestg$(EXEEXT) ++ $(ctestg_LINK) $(ctestg_OBJECTS) $(ctestg_LDADD) $(LIBS) + stest$(EXEEXT): $(stest_OBJECTS) $(stest_DEPENDENCIES) $(EXTRA_stest_DEPENDENCIES) + @rm -f stest$(EXEEXT) + $(LINK) $(stest_OBJECTS) $(stest_LDADD) $(LIBS) ++ztest$(EXEEXT): $(ztest_OBJECTS) $(ztest_DEPENDENCIES) $(EXTRA_ztest_DEPENDENCIES) ++ @rm -f ztest$(EXEEXT) ++ $(ztest_LINK) $(ztest_OBJECTS) $(ztest_LDADD) $(LIBS) + + mostlyclean-compile: + -rm -f *.$(OBJEXT) +@@ -449,6 +500,42 @@ btest-btest.o: btest.c + btest-btest.obj: btest.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` + ++ctesta-btest.o: btest.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c ++ ++ctesta-btest.obj: btest.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` ++ ++ctesta-testlib.o: testlib.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c ++ ++ctesta-testlib.obj: testlib.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` ++ ++ctestg-btest.o: btest.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c ++ ++ctestg-btest.obj: btest.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi` ++ ++ctestg-testlib.o: testlib.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c ++ ++ctestg-testlib.obj: testlib.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` ++ ++ztest-ztest.o: ztest.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-ztest.o `test -f 'ztest.c' || echo '$(srcdir)/'`ztest.c ++ ++ztest-ztest.obj: ztest.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-ztest.obj `if test -f 'ztest.c'; then $(CYGPATH_W) 'ztest.c'; else $(CYGPATH_W) '$(srcdir)/ztest.c'; fi` ++ ++ztest-testlib.o: testlib.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c ++ ++ztest-testlib.obj: testlib.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi` ++ + mostlyclean-libtool: + -rm -f *.lo + +Index: b/src/libbacktrace/elf.c +=================================================================== +--- a/src/libbacktrace/elf.c ++++ b/src/libbacktrace/elf.c +@@ -56,6 +56,13 @@ POSSIBILITY OF SUCH DAMAGE. */ + #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) + #endif + ++#ifndef __GNUC__ ++#define __builtin_prefetch(p, r, l) ++#define unlikely(x) (x) ++#else ++#define unlikely(x) __builtin_expect(!!(x), 0) ++#endif ++ + #if !defined(HAVE_DECL_STRNLEN) || !HAVE_DECL_STRNLEN + + /* If strnlen is not declared, provide our own version. */ +@@ -139,6 +146,7 @@ dl_iterate_phdr (int (*callback) (struct + #undef STT_OBJECT + #undef STT_FUNC + #undef NT_GNU_BUILD_ID ++#undef ELFCOMPRESS_ZLIB + + /* Basic types. */ + +@@ -231,6 +239,8 @@ typedef struct { + + #define SHF_COMPRESSED 0x800 + ++#define SHF_COMPRESSED 0x800 ++ + #if BACKTRACE_ELF_SIZE == 32 + + typedef struct +@@ -270,6 +280,29 @@ typedef struct + + #define NT_GNU_BUILD_ID 3 + ++#if BACKTRACE_ELF_SIZE == 32 ++ ++typedef struct ++{ ++ b_elf_word ch_type; /* Compresstion algorithm */ ++ b_elf_word ch_size; /* Uncompressed size */ ++ b_elf_word ch_addralign; /* Alignment for uncompressed data */ ++} b_elf_chdr; /* Elf_Chdr */ ++ ++#else /* BACKTRACE_ELF_SIZE != 32 */ ++ ++typedef struct ++{ ++ b_elf_word ch_type; /* Compression algorithm */ ++ b_elf_word ch_reserved; /* Reserved */ ++ b_elf_xword ch_size; /* Uncompressed size */ ++ b_elf_xword ch_addralign; /* Alignment for uncompressed data */ ++} b_elf_chdr; /* Elf_Chdr */ ++ ++#endif /* BACKTRACE_ELF_SIZE != 32 */ ++ ++#define ELFCOMPRESS_ZLIB 1 ++ + /* An index of ELF sections we care about. */ + + enum debug_section +@@ -279,6 +312,15 @@ enum debug_section + DEBUG_ABBREV, + DEBUG_RANGES, + DEBUG_STR, ++ ++ /* The old style compressed sections. This list must correspond to ++ the list of normal debug sections. */ ++ ZDEBUG_INFO, ++ ZDEBUG_LINE, ++ ZDEBUG_ABBREV, ++ ZDEBUG_RANGES, ++ ZDEBUG_STR, ++ + DEBUG_MAX + }; + +@@ -290,7 +332,12 @@ static const char * const debug_section_ + ".debug_line", + ".debug_abbrev", + ".debug_ranges", +- ".debug_str" ++ ".debug_str", ++ ".zdebug_info", ++ ".zdebug_line", ++ ".zdebug_abbrev", ++ ".zdebug_ranges", ++ ".zdebug_str" + }; + + /* Information we gather for the sections we care about. */ +@@ -303,6 +350,8 @@ struct debug_section_info + size_t size; + /* Section contents, after read from file. */ + const unsigned char *data; ++ /* Whether the SHF_COMPRESSED flag is set for the section. */ ++ int compressed; + }; + + /* Information we keep for an ELF symbol. */ +@@ -939,6 +988,1493 @@ elf_open_debugfile_by_debuglink (struct + return ddescriptor; + } + ++/* A function useful for setting a breakpoint for an inflation failure ++ when this code is compiled with -g. */ ++ ++static void ++elf_zlib_failed(void) ++{ ++} ++ ++/* *PVAL is the current value being read from the stream, and *PBITS ++ is the number of valid bits. Ensure that *PVAL holds at least 15 ++ bits by reading additional bits from *PPIN, up to PINEND, as ++ needed. Updates *PPIN, *PVAL and *PBITS. Returns 1 on success, 0 ++ on error. */ ++ ++static int ++elf_zlib_fetch (const unsigned char **ppin, const unsigned char *pinend, ++ uint32_t *pval, unsigned int *pbits) ++{ ++ unsigned int bits; ++ const unsigned char *pin; ++ uint32_t val; ++ ++ bits = *pbits; ++ if (bits >= 15) ++ return 1; ++ pin = *ppin; ++ val = *pval; ++ ++ if (unlikely (pinend - pin < 2)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ val |= pin[0] << bits; ++ val |= pin[1] << (bits + 8); ++ bits += 16; ++ pin += 2; ++ ++ /* We will need the next two bytes soon. We ask for high temporal ++ locality because we will need the whole cache line soon. */ ++ __builtin_prefetch (pin, 0, 3); ++ __builtin_prefetch (pin + 1, 0, 3); ++ ++ *ppin = pin; ++ *pval = val; ++ *pbits = bits; ++ return 1; ++} ++ ++/* Huffman code tables, like the rest of the zlib format, are defined ++ by RFC 1951. We store a Huffman code table as a series of tables ++ stored sequentially in memory. Each entry in a table is 16 bits. ++ The first, main, table has 256 entries. It is followed by a set of ++ secondary tables of length 2 to 128 entries. The maximum length of ++ a code sequence in the deflate format is 15 bits, so that is all we ++ need. Each secondary table has an index, which is the offset of ++ the table in the overall memory storage. ++ ++ The deflate format says that all codes of a given bit length are ++ lexicographically consecutive. Perhaps we could have 130 values ++ that require a 15-bit code, perhaps requiring three secondary ++ tables of size 128. I don't know if this is actually possible, but ++ it suggests that the maximum size required for secondary tables is ++ 3 * 128 + 3 * 64 ... == 768. The zlib enough program reports 660 ++ as the maximum. We permit 768, since in addition to the 256 for ++ the primary table, with two bytes per entry, and with the two ++ tables we need, that gives us a page. ++ ++ A single table entry needs to store a value or (for the main table ++ only) the index and size of a secondary table. Values range from 0 ++ to 285, inclusive. Secondary table indexes, per above, range from ++ 0 to 510. For a value we need to store the number of bits we need ++ to determine that value (one value may appear multiple times in the ++ table), which is 1 to 8. For a secondary table we need to store ++ the number of bits used to index into the table, which is 1 to 7. ++ And of course we need 1 bit to decide whether we have a value or a ++ secondary table index. So each entry needs 9 bits for value/table ++ index, 3 bits for size, 1 bit what it is. For simplicity we use 16 ++ bits per entry. */ ++ ++/* Number of entries we allocate to for one code table. We get a page ++ for the two code tables we need. */ ++ ++#define HUFFMAN_TABLE_SIZE (1024) ++ ++/* Bit masks and shifts for the values in the table. */ ++ ++#define HUFFMAN_VALUE_MASK 0x01ff ++#define HUFFMAN_BITS_SHIFT 9 ++#define HUFFMAN_BITS_MASK 0x7 ++#define HUFFMAN_SECONDARY_SHIFT 12 ++ ++/* For working memory while inflating we need two code tables, we need ++ an array of code lengths (max value 15, so we use unsigned char), ++ and an array of unsigned shorts used while building a table. The ++ latter two arrays must be large enough to hold the maximum number ++ of code lengths, which RFC 1951 defines as 286 + 30. */ ++ ++#define ZDEBUG_TABLE_SIZE \ ++ (2 * HUFFMAN_TABLE_SIZE * sizeof (uint16_t) \ ++ + (286 + 30) * sizeof (uint16_t) \ ++ + (286 + 30) * sizeof (unsigned char)) ++ ++#define ZDEBUG_TABLE_CODELEN_OFFSET \ ++ (2 * HUFFMAN_TABLE_SIZE * sizeof (uint16_t) \ ++ + (286 + 30) * sizeof (uint16_t)) ++ ++#define ZDEBUG_TABLE_WORK_OFFSET \ ++ (2 * HUFFMAN_TABLE_SIZE * sizeof (uint16_t)) ++ ++#ifdef BACKTRACE_GENERATE_FIXED_HUFFMAN_TABLE ++ ++/* Used by the main function that generates the fixed table to learn ++ the table size. */ ++static size_t final_next_secondary; ++ ++#endif ++ ++/* Build a Huffman code table from an array of lengths in CODES of ++ length CODES_LEN. The table is stored into *TABLE. ZDEBUG_TABLE ++ is the same as for elf_zlib_inflate, used to find some work space. ++ Returns 1 on success, 0 on error. */ ++ ++static int ++elf_zlib_inflate_table (unsigned char *codes, size_t codes_len, ++ uint16_t *zdebug_table, uint16_t *table) ++{ ++ uint16_t count[16]; ++ uint16_t start[16]; ++ uint16_t prev[16]; ++ uint16_t firstcode[7]; ++ uint16_t *next; ++ size_t i; ++ size_t j; ++ unsigned int code; ++ size_t next_secondary; ++ ++ /* Count the number of code of each length. Set NEXT[val] to be the ++ next value after VAL with the same bit length. */ ++ ++ next = (uint16_t *) (((unsigned char *) zdebug_table) ++ + ZDEBUG_TABLE_WORK_OFFSET); ++ ++ memset (&count[0], 0, 16 * sizeof (uint16_t)); ++ for (i = 0; i < codes_len; ++i) ++ { ++ if (unlikely (codes[i] >= 16)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ if (count[codes[i]] == 0) ++ { ++ start[codes[i]] = i; ++ prev[codes[i]] = i; ++ } ++ else ++ { ++ next[prev[codes[i]]] = i; ++ prev[codes[i]] = i; ++ } ++ ++ ++count[codes[i]]; ++ } ++ ++ /* For each length, fill in the table for the codes of that ++ length. */ ++ ++ memset (table, 0, HUFFMAN_TABLE_SIZE * sizeof (uint16_t)); ++ ++ /* Handle the values that do not require a secondary table. */ ++ ++ code = 0; ++ for (j = 1; j <= 8; ++j) ++ { ++ unsigned int jcnt; ++ unsigned int val; ++ ++ jcnt = count[j]; ++ if (jcnt == 0) ++ continue; ++ ++ if (unlikely (jcnt > (1U << j))) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ /* There are JCNT values that have this length, the values ++ starting from START[j] continuing through NEXT[VAL]. Those ++ values are assigned consecutive values starting at CODE. */ ++ ++ val = start[j]; ++ for (i = 0; i < jcnt; ++i) ++ { ++ uint16_t tval; ++ size_t ind; ++ unsigned int incr; ++ ++ /* In the compressed bit stream, the value VAL is encoded as ++ J bits with the value C. */ ++ ++ if (unlikely ((val & ~HUFFMAN_VALUE_MASK) != 0)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ tval = val | ((j - 1) << HUFFMAN_BITS_SHIFT); ++ ++ /* The table lookup uses 8 bits. If J is less than 8, we ++ don't know what the other bits will be. We need to fill ++ in all possibilities in the table. Since the Huffman ++ code is unambiguous, those entries can't be used for any ++ other code. */ ++ ++ for (ind = code; ind < 0x100; ind += 1 << j) ++ { ++ if (unlikely (table[ind] != 0)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ table[ind] = tval; ++ } ++ ++ /* Advance to the next value with this length. */ ++ if (i + 1 < jcnt) ++ val = next[val]; ++ ++ /* The Huffman codes are stored in the bitstream with the ++ most significant bit first, as is required to make them ++ unambiguous. The effect is that when we read them from ++ the bitstream we see the bit sequence in reverse order: ++ the most significant bit of the Huffman code is the least ++ significant bit of the value we read from the bitstream. ++ That means that to make our table lookups work, we need ++ to reverse the bits of CODE. Since reversing bits is ++ tedious and in general requires using a table, we instead ++ increment CODE in reverse order. That is, if the number ++ of bits we are currently using, here named J, is 3, we ++ count as 000, 100, 010, 110, 001, 101, 011, 111, which is ++ to say the numbers from 0 to 7 but with the bits ++ reversed. Going to more bits, aka incrementing J, ++ effectively just adds more zero bits as the beginning, ++ and as such does not change the numeric value of CODE. ++ ++ To increment CODE of length J in reverse order, find the ++ most significant zero bit and set it to one while ++ clearing all higher bits. In other words, add 1 modulo ++ 2^J, only reversed. */ ++ ++ incr = 1U << (j - 1); ++ while ((code & incr) != 0) ++ incr >>= 1; ++ if (incr == 0) ++ code = 0; ++ else ++ { ++ code &= incr - 1; ++ code += incr; ++ } ++ } ++ } ++ ++ /* Handle the values that require a secondary table. */ ++ ++ /* Set FIRSTCODE, the number at which the codes start, for each ++ length. */ ++ ++ for (j = 9; j < 16; j++) ++ { ++ unsigned int jcnt; ++ unsigned int k; ++ ++ jcnt = count[j]; ++ if (jcnt == 0) ++ continue; ++ ++ /* There are JCNT values that have this length, the values ++ starting from START[j]. Those values are assigned ++ consecutive values starting at CODE. */ ++ ++ firstcode[j - 9] = code; ++ ++ /* Reverse add JCNT to CODE modulo 2^J. */ ++ for (k = 0; k < j; ++k) ++ { ++ if ((jcnt & (1U << k)) != 0) ++ { ++ unsigned int m; ++ unsigned int bit; ++ ++ bit = 1U << (j - k - 1); ++ for (m = 0; m < j - k; ++m, bit >>= 1) ++ { ++ if ((code & bit) == 0) ++ { ++ code += bit; ++ break; ++ } ++ code &= ~bit; ++ } ++ jcnt &= ~(1U << k); ++ } ++ } ++ if (unlikely (jcnt != 0)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ } ++ ++ /* For J from 9 to 15, inclusive, we store COUNT[J] consecutive ++ values starting at START[J] with consecutive codes starting at ++ FIRSTCODE[J - 9]. In the primary table we need to point to the ++ secondary table, and the secondary table will be indexed by J - 9 ++ bits. We count down from 15 so that we install the larger ++ secondary tables first, as the smaller ones may be embedded in ++ the larger ones. */ ++ ++ next_secondary = 0; /* Index of next secondary table (after primary). */ ++ for (j = 15; j >= 9; j--) ++ { ++ unsigned int jcnt; ++ unsigned int val; ++ size_t primary; /* Current primary index. */ ++ size_t secondary; /* Offset to current secondary table. */ ++ size_t secondary_bits; /* Bit size of current secondary table. */ ++ ++ jcnt = count[j]; ++ if (jcnt == 0) ++ continue; ++ ++ val = start[j]; ++ code = firstcode[j - 9]; ++ primary = 0x100; ++ secondary = 0; ++ secondary_bits = 0; ++ for (i = 0; i < jcnt; ++i) ++ { ++ uint16_t tval; ++ size_t ind; ++ unsigned int incr; ++ ++ if ((code & 0xff) != primary) ++ { ++ uint16_t tprimary; ++ ++ /* Fill in a new primary table entry. */ ++ ++ primary = code & 0xff; ++ ++ tprimary = table[primary]; ++ if (tprimary == 0) ++ { ++ /* Start a new secondary table. */ ++ ++ if (unlikely ((next_secondary & HUFFMAN_VALUE_MASK) ++ != next_secondary)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ secondary = next_secondary; ++ secondary_bits = j - 8; ++ next_secondary += 1 << secondary_bits; ++ table[primary] = (secondary ++ + ((j - 8) << HUFFMAN_BITS_SHIFT) ++ + (1U << HUFFMAN_SECONDARY_SHIFT)); ++ } ++ else ++ { ++ /* There is an existing entry. It had better be a ++ secondary table with enough bits. */ ++ if (unlikely ((tprimary & (1U << HUFFMAN_SECONDARY_SHIFT)) ++ == 0)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ secondary = tprimary & HUFFMAN_VALUE_MASK; ++ secondary_bits = ((tprimary >> HUFFMAN_BITS_SHIFT) ++ & HUFFMAN_BITS_MASK); ++ if (unlikely (secondary_bits < j - 8)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ } ++ } ++ ++ /* Fill in secondary table entries. */ ++ ++ tval = val | ((j - 8) << HUFFMAN_BITS_SHIFT); ++ ++ for (ind = code >> 8; ++ ind < (1U << secondary_bits); ++ ind += 1U << (j - 8)) ++ { ++ if (unlikely (table[secondary + 0x100 + ind] != 0)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ table[secondary + 0x100 + ind] = tval; ++ } ++ ++ if (i + 1 < jcnt) ++ val = next[val]; ++ ++ incr = 1U << (j - 1); ++ while ((code & incr) != 0) ++ incr >>= 1; ++ if (incr == 0) ++ code = 0; ++ else ++ { ++ code &= incr - 1; ++ code += incr; ++ } ++ } ++ } ++ ++#ifdef BACKTRACE_GENERATE_FIXED_HUFFMAN_TABLE ++ final_next_secondary = next_secondary; ++#endif ++ ++ return 1; ++} ++ ++#ifdef BACKTRACE_GENERATE_FIXED_HUFFMAN_TABLE ++ ++/* Used to generate the fixed Huffman table for block type 1. */ ++ ++#include ++ ++static uint16_t table[ZDEBUG_TABLE_SIZE]; ++static unsigned char codes[287]; ++ ++int ++main () ++{ ++ size_t i; ++ ++ for (i = 0; i <= 143; ++i) ++ codes[i] = 8; ++ for (i = 144; i <= 255; ++i) ++ codes[i] = 9; ++ for (i = 256; i <= 279; ++i) ++ codes[i] = 7; ++ for (i = 280; i <= 287; ++i) ++ codes[i] = 8; ++ if (!elf_zlib_inflate_table (&codes[0], 287, &table[0], &table[0])) ++ { ++ fprintf (stderr, "elf_zlib_inflate_table failed\n"); ++ exit (EXIT_FAILURE); ++ } ++ ++ printf ("static const uint16_t elf_zlib_default_table[%#zx] =\n", ++ final_next_secondary + 0x100); ++ printf ("{\n"); ++ for (i = 0; i < final_next_secondary + 0x100; i += 8) ++ { ++ size_t j; ++ ++ printf (" "); ++ for (j = i; j < final_next_secondary + 0x100 && j < i + 8; ++j) ++ printf (" %#x,", table[j]); ++ printf ("\n"); ++ } ++ printf ("};\n"); ++ return 0; ++} ++ ++#endif ++ ++/* The fixed table generated by the #ifdef'ed out main function ++ above. */ ++ ++static const uint16_t elf_zlib_default_table[0x170] = ++{ ++ 0xd00, 0xe50, 0xe10, 0xf18, 0xd10, 0xe70, 0xe30, 0x1232, ++ 0xd08, 0xe60, 0xe20, 0x1212, 0xe00, 0xe80, 0xe40, 0x1252, ++ 0xd04, 0xe58, 0xe18, 0x1202, 0xd14, 0xe78, 0xe38, 0x1242, ++ 0xd0c, 0xe68, 0xe28, 0x1222, 0xe08, 0xe88, 0xe48, 0x1262, ++ 0xd02, 0xe54, 0xe14, 0xf1c, 0xd12, 0xe74, 0xe34, 0x123a, ++ 0xd0a, 0xe64, 0xe24, 0x121a, 0xe04, 0xe84, 0xe44, 0x125a, ++ 0xd06, 0xe5c, 0xe1c, 0x120a, 0xd16, 0xe7c, 0xe3c, 0x124a, ++ 0xd0e, 0xe6c, 0xe2c, 0x122a, 0xe0c, 0xe8c, 0xe4c, 0x126a, ++ 0xd01, 0xe52, 0xe12, 0xf1a, 0xd11, 0xe72, 0xe32, 0x1236, ++ 0xd09, 0xe62, 0xe22, 0x1216, 0xe02, 0xe82, 0xe42, 0x1256, ++ 0xd05, 0xe5a, 0xe1a, 0x1206, 0xd15, 0xe7a, 0xe3a, 0x1246, ++ 0xd0d, 0xe6a, 0xe2a, 0x1226, 0xe0a, 0xe8a, 0xe4a, 0x1266, ++ 0xd03, 0xe56, 0xe16, 0xf1e, 0xd13, 0xe76, 0xe36, 0x123e, ++ 0xd0b, 0xe66, 0xe26, 0x121e, 0xe06, 0xe86, 0xe46, 0x125e, ++ 0xd07, 0xe5e, 0xe1e, 0x120e, 0xd17, 0xe7e, 0xe3e, 0x124e, ++ 0xd0f, 0xe6e, 0xe2e, 0x122e, 0xe0e, 0xe8e, 0xe4e, 0x126e, ++ 0xd00, 0xe51, 0xe11, 0xf19, 0xd10, 0xe71, 0xe31, 0x1234, ++ 0xd08, 0xe61, 0xe21, 0x1214, 0xe01, 0xe81, 0xe41, 0x1254, ++ 0xd04, 0xe59, 0xe19, 0x1204, 0xd14, 0xe79, 0xe39, 0x1244, ++ 0xd0c, 0xe69, 0xe29, 0x1224, 0xe09, 0xe89, 0xe49, 0x1264, ++ 0xd02, 0xe55, 0xe15, 0xf1d, 0xd12, 0xe75, 0xe35, 0x123c, ++ 0xd0a, 0xe65, 0xe25, 0x121c, 0xe05, 0xe85, 0xe45, 0x125c, ++ 0xd06, 0xe5d, 0xe1d, 0x120c, 0xd16, 0xe7d, 0xe3d, 0x124c, ++ 0xd0e, 0xe6d, 0xe2d, 0x122c, 0xe0d, 0xe8d, 0xe4d, 0x126c, ++ 0xd01, 0xe53, 0xe13, 0xf1b, 0xd11, 0xe73, 0xe33, 0x1238, ++ 0xd09, 0xe63, 0xe23, 0x1218, 0xe03, 0xe83, 0xe43, 0x1258, ++ 0xd05, 0xe5b, 0xe1b, 0x1208, 0xd15, 0xe7b, 0xe3b, 0x1248, ++ 0xd0d, 0xe6b, 0xe2b, 0x1228, 0xe0b, 0xe8b, 0xe4b, 0x1268, ++ 0xd03, 0xe57, 0xe17, 0x1200, 0xd13, 0xe77, 0xe37, 0x1240, ++ 0xd0b, 0xe67, 0xe27, 0x1220, 0xe07, 0xe87, 0xe47, 0x1260, ++ 0xd07, 0xe5f, 0xe1f, 0x1210, 0xd17, 0xe7f, 0xe3f, 0x1250, ++ 0xd0f, 0xe6f, 0xe2f, 0x1230, 0xe0f, 0xe8f, 0xe4f, 0, ++ 0x290, 0x291, 0x292, 0x293, 0x294, 0x295, 0x296, 0x297, ++ 0x298, 0x299, 0x29a, 0x29b, 0x29c, 0x29d, 0x29e, 0x29f, ++ 0x2a0, 0x2a1, 0x2a2, 0x2a3, 0x2a4, 0x2a5, 0x2a6, 0x2a7, ++ 0x2a8, 0x2a9, 0x2aa, 0x2ab, 0x2ac, 0x2ad, 0x2ae, 0x2af, ++ 0x2b0, 0x2b1, 0x2b2, 0x2b3, 0x2b4, 0x2b5, 0x2b6, 0x2b7, ++ 0x2b8, 0x2b9, 0x2ba, 0x2bb, 0x2bc, 0x2bd, 0x2be, 0x2bf, ++ 0x2c0, 0x2c1, 0x2c2, 0x2c3, 0x2c4, 0x2c5, 0x2c6, 0x2c7, ++ 0x2c8, 0x2c9, 0x2ca, 0x2cb, 0x2cc, 0x2cd, 0x2ce, 0x2cf, ++ 0x2d0, 0x2d1, 0x2d2, 0x2d3, 0x2d4, 0x2d5, 0x2d6, 0x2d7, ++ 0x2d8, 0x2d9, 0x2da, 0x2db, 0x2dc, 0x2dd, 0x2de, 0x2df, ++ 0x2e0, 0x2e1, 0x2e2, 0x2e3, 0x2e4, 0x2e5, 0x2e6, 0x2e7, ++ 0x2e8, 0x2e9, 0x2ea, 0x2eb, 0x2ec, 0x2ed, 0x2ee, 0x2ef, ++ 0x2f0, 0x2f1, 0x2f2, 0x2f3, 0x2f4, 0x2f5, 0x2f6, 0x2f7, ++ 0x2f8, 0x2f9, 0x2fa, 0x2fb, 0x2fc, 0x2fd, 0x2fe, 0x2ff, ++}; ++ ++/* Inflate a zlib stream from PIN/SIN to POUT/SOUT. Return 1 on ++ success, 0 on some error parsing the stream. */ ++ ++static int ++elf_zlib_inflate (const unsigned char *pin, size_t sin, uint16_t *zdebug_table, ++ unsigned char *pout, size_t sout) ++{ ++ unsigned char *porigout; ++ const unsigned char *pinend; ++ unsigned char *poutend; ++ ++ /* We can apparently see multiple zlib streams concatenated ++ together, so keep going as long as there is something to read. ++ The last 4 bytes are the checksum. */ ++ porigout = pout; ++ pinend = pin + sin; ++ poutend = pout + sout; ++ while ((pinend - pin) > 4) ++ { ++ uint32_t val; ++ unsigned int bits; ++ int last; ++ ++ /* Read the two byte zlib header. */ ++ ++ if (unlikely ((pin[0] & 0xf) != 8)) /* 8 is zlib encoding. */ ++ { ++ /* Unknown compression method. */ ++ elf_zlib_failed (); ++ return 0; ++ } ++ if (unlikely ((pin[0] >> 4) > 7)) ++ { ++ /* Window size too large. Other than this check, we don't ++ care about the window size. */ ++ elf_zlib_failed (); ++ return 0; ++ } ++ if (unlikely ((pin[1] & 0x20) != 0)) ++ { ++ /* Stream expects a predefined dictionary, but we have no ++ dictionary. */ ++ elf_zlib_failed (); ++ return 0; ++ } ++ val = (pin[0] << 8) | pin[1]; ++ if (unlikely (val % 31 != 0)) ++ { ++ /* Header check failure. */ ++ elf_zlib_failed (); ++ return 0; ++ } ++ pin += 2; ++ ++ /* Read blocks until one is marked last. */ ++ ++ val = 0; ++ bits = 0; ++ last = 0; ++ ++ while (!last) ++ { ++ unsigned int type; ++ const uint16_t *tlit; ++ const uint16_t *tdist; ++ ++ if (!elf_zlib_fetch (&pin, pinend, &val, &bits)) ++ return 0; ++ ++ last = val & 1; ++ type = (val >> 1) & 3; ++ val >>= 3; ++ bits -= 3; ++ ++ if (unlikely (type == 3)) ++ { ++ /* Invalid block type. */ ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ if (type == 0) ++ { ++ uint16_t len; ++ uint16_t lenc; ++ ++ /* An uncompressed block. */ ++ ++ /* If we've read ahead more than a byte, back up. */ ++ while (bits > 8) ++ { ++ --pin; ++ bits -= 8; ++ } ++ ++ val = 0; ++ bits = 0; ++ if (unlikely ((pinend - pin) < 4)) ++ { ++ /* Missing length. */ ++ elf_zlib_failed (); ++ return 0; ++ } ++ len = pin[0] | (pin[1] << 8); ++ lenc = pin[2] | (pin[3] << 8); ++ pin += 4; ++ lenc = ~lenc; ++ if (unlikely (len != lenc)) ++ { ++ /* Corrupt data. */ ++ elf_zlib_failed (); ++ return 0; ++ } ++ if (unlikely (len > (unsigned int) (pinend - pin) ++ || len > (unsigned int) (poutend - pout))) ++ { ++ /* Not enough space in buffers. */ ++ elf_zlib_failed (); ++ return 0; ++ } ++ memcpy (pout, pin, len); ++ pout += len; ++ pin += len; ++ ++ /* Go around to read the next block. */ ++ continue; ++ } ++ ++ if (type == 1) ++ { ++ tlit = elf_zlib_default_table; ++ tdist = elf_zlib_default_table; ++ } ++ else ++ { ++ unsigned int nlit; ++ unsigned int ndist; ++ unsigned int nclen; ++ unsigned char codebits[19]; ++ unsigned char *plenbase; ++ unsigned char *plen; ++ unsigned char *plenend; ++ ++ /* Read a Huffman encoding table. The various magic ++ numbers here are from RFC 1951. */ ++ ++ if (!elf_zlib_fetch (&pin, pinend, &val, &bits)) ++ return 0; ++ ++ nlit = (val & 0x1f) + 257; ++ val >>= 5; ++ ndist = (val & 0x1f) + 1; ++ val >>= 5; ++ nclen = (val & 0xf) + 4; ++ val >>= 4; ++ bits -= 14; ++ if (unlikely (nlit > 286 || ndist > 30)) ++ { ++ /* Values out of range. */ ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ /* Read and build the table used to compress the ++ literal, length, and distance codes. */ ++ ++ memset(&codebits[0], 0, 19); ++ ++ /* There are always at least 4 elements in the ++ table. */ ++ ++ if (!elf_zlib_fetch (&pin, pinend, &val, &bits)) ++ return 0; ++ ++ codebits[16] = val & 7; ++ codebits[17] = (val >> 3) & 7; ++ codebits[18] = (val >> 6) & 7; ++ codebits[0] = (val >> 9) & 7; ++ val >>= 12; ++ bits -= 12; ++ ++ if (nclen == 4) ++ goto codebitsdone; ++ ++ codebits[8] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 5) ++ goto codebitsdone; ++ ++ if (!elf_zlib_fetch (&pin, pinend, &val, &bits)) ++ return 0; ++ ++ codebits[7] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 6) ++ goto codebitsdone; ++ ++ codebits[9] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 7) ++ goto codebitsdone; ++ ++ codebits[6] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 8) ++ goto codebitsdone; ++ ++ codebits[10] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 9) ++ goto codebitsdone; ++ ++ codebits[5] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 10) ++ goto codebitsdone; ++ ++ if (!elf_zlib_fetch (&pin, pinend, &val, &bits)) ++ return 0; ++ ++ codebits[11] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 11) ++ goto codebitsdone; ++ ++ codebits[4] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 12) ++ goto codebitsdone; ++ ++ codebits[12] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 13) ++ goto codebitsdone; ++ ++ codebits[3] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 14) ++ goto codebitsdone; ++ ++ codebits[13] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 15) ++ goto codebitsdone; ++ ++ if (!elf_zlib_fetch (&pin, pinend, &val, &bits)) ++ return 0; ++ ++ codebits[2] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 16) ++ goto codebitsdone; ++ ++ codebits[14] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 17) ++ goto codebitsdone; ++ ++ codebits[1] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ if (nclen == 18) ++ goto codebitsdone; ++ ++ codebits[15] = val & 7; ++ val >>= 3; ++ bits -= 3; ++ ++ codebitsdone: ++ ++ if (!elf_zlib_inflate_table (codebits, 19, zdebug_table, ++ zdebug_table)) ++ return 0; ++ ++ /* Read the compressed bit lengths of the literal, ++ length, and distance codes. We have allocated space ++ at the end of zdebug_table to hold them. */ ++ ++ plenbase = (((unsigned char *) zdebug_table) ++ + ZDEBUG_TABLE_CODELEN_OFFSET); ++ plen = plenbase; ++ plenend = plen + nlit + ndist; ++ while (plen < plenend) ++ { ++ uint16_t t; ++ unsigned int b; ++ uint16_t v; ++ ++ if (!elf_zlib_fetch (&pin, pinend, &val, &bits)) ++ return 0; ++ ++ t = zdebug_table[val & 0xff]; ++ ++ /* The compression here uses bit lengths up to 7, so ++ a secondary table is never necessary. */ ++ if (unlikely ((t & (1U << HUFFMAN_SECONDARY_SHIFT)) != 0)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ b = (t >> HUFFMAN_BITS_SHIFT) & HUFFMAN_BITS_MASK; ++ val >>= b + 1; ++ bits -= b + 1; ++ ++ v = t & HUFFMAN_VALUE_MASK; ++ if (v < 16) ++ *plen++ = v; ++ else if (v == 16) ++ { ++ unsigned int c; ++ unsigned int prev; ++ ++ /* Copy previous entry 3 to 6 times. */ ++ ++ if (unlikely (plen == plenbase)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ /* We used up to 7 bits since the last ++ elf_zlib_fetch, so we have at least 8 bits ++ available here. */ ++ ++ c = 3 + (val & 0x3); ++ val >>= 2; ++ bits -= 2; ++ if (unlikely ((unsigned int) (plenend - plen) < c)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ prev = plen[-1]; ++ switch (c) ++ { ++ case 6: ++ *plen++ = prev; ++ /* fallthrough */ ++ case 5: ++ *plen++ = prev; ++ /* fallthrough */ ++ case 4: ++ *plen++ = prev; ++ } ++ *plen++ = prev; ++ *plen++ = prev; ++ *plen++ = prev; ++ } ++ else if (v == 17) ++ { ++ unsigned int c; ++ ++ /* Store zero 3 to 10 times. */ ++ ++ /* We used up to 7 bits since the last ++ elf_zlib_fetch, so we have at least 8 bits ++ available here. */ ++ ++ c = 3 + (val & 0x7); ++ val >>= 3; ++ bits -= 3; ++ if (unlikely ((unsigned int) (plenend - plen) < c)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ switch (c) ++ { ++ case 10: ++ *plen++ = 0; ++ /* fallthrough */ ++ case 9: ++ *plen++ = 0; ++ /* fallthrough */ ++ case 8: ++ *plen++ = 0; ++ /* fallthrough */ ++ case 7: ++ *plen++ = 0; ++ /* fallthrough */ ++ case 6: ++ *plen++ = 0; ++ /* fallthrough */ ++ case 5: ++ *plen++ = 0; ++ /* fallthrough */ ++ case 4: ++ *plen++ = 0; ++ } ++ *plen++ = 0; ++ *plen++ = 0; ++ *plen++ = 0; ++ } ++ else if (v == 18) ++ { ++ unsigned int c; ++ ++ /* Store zero 11 to 138 times. */ ++ ++ /* We used up to 7 bits since the last ++ elf_zlib_fetch, so we have at least 8 bits ++ available here. */ ++ ++ c = 11 + (val & 0x7f); ++ val >>= 7; ++ bits -= 7; ++ if (unlikely ((unsigned int) (plenend - plen) < c)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ memset (plen, 0, c); ++ plen += c; ++ } ++ else ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ } ++ ++ /* Make sure that the stop code can appear. */ ++ ++ plen = plenbase; ++ if (unlikely (plen[256] == 0)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ /* Build the decompression tables. */ ++ ++ if (!elf_zlib_inflate_table (plen, nlit, zdebug_table, ++ zdebug_table)) ++ return 0; ++ if (!elf_zlib_inflate_table (plen + nlit, ndist, zdebug_table, ++ zdebug_table + HUFFMAN_TABLE_SIZE)) ++ return 0; ++ tlit = zdebug_table; ++ tdist = zdebug_table + HUFFMAN_TABLE_SIZE; ++ } ++ ++ /* Inflate values until the end of the block. This is the ++ main loop of the inflation code. */ ++ ++ while (1) ++ { ++ uint16_t t; ++ unsigned int b; ++ uint16_t v; ++ unsigned int lit; ++ ++ if (!elf_zlib_fetch (&pin, pinend, &val, &bits)) ++ return 0; ++ ++ t = tlit[val & 0xff]; ++ b = (t >> HUFFMAN_BITS_SHIFT) & HUFFMAN_BITS_MASK; ++ v = t & HUFFMAN_VALUE_MASK; ++ ++ if ((t & (1U << HUFFMAN_SECONDARY_SHIFT)) == 0) ++ { ++ lit = v; ++ val >>= b + 1; ++ bits -= b + 1; ++ } ++ else ++ { ++ t = tlit[v + 0x100 + ((val >> 8) & ((1U << b) - 1))]; ++ b = (t >> HUFFMAN_BITS_SHIFT) & HUFFMAN_BITS_MASK; ++ lit = t & HUFFMAN_VALUE_MASK; ++ val >>= b + 8; ++ bits -= b + 8; ++ } ++ ++ if (lit < 256) ++ { ++ if (unlikely (pout == poutend)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ *pout++ = lit; ++ ++ /* We will need to write the next byte soon. We ask ++ for high temporal locality because we will write ++ to the whole cache line soon. */ ++ __builtin_prefetch (pout, 1, 3); ++ } ++ else if (lit == 256) ++ { ++ /* The end of the block. */ ++ break; ++ } ++ else ++ { ++ unsigned int dist; ++ unsigned int len; ++ ++ /* Convert lit into a length. */ ++ ++ if (lit < 265) ++ len = lit - 257 + 3; ++ else if (lit == 285) ++ len = 258; ++ else if (unlikely (lit > 285)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ else ++ { ++ unsigned int extra; ++ ++ if (!elf_zlib_fetch (&pin, pinend, &val, &bits)) ++ return 0; ++ ++ /* This is an expression for the table of length ++ codes in RFC 1951 3.2.5. */ ++ lit -= 265; ++ extra = (lit >> 2) + 1; ++ len = (lit & 3) << extra; ++ len += 11; ++ len += ((1U << (extra - 1)) - 1) << 3; ++ len += val & ((1U << extra) - 1); ++ val >>= extra; ++ bits -= extra; ++ } ++ ++ if (!elf_zlib_fetch (&pin, pinend, &val, &bits)) ++ return 0; ++ ++ t = tdist[val & 0xff]; ++ b = (t >> HUFFMAN_BITS_SHIFT) & HUFFMAN_BITS_MASK; ++ v = t & HUFFMAN_VALUE_MASK; ++ ++ if ((t & (1U << HUFFMAN_SECONDARY_SHIFT)) == 0) ++ { ++ dist = v; ++ val >>= b + 1; ++ bits -= b + 1; ++ } ++ else ++ { ++ t = tdist[v + 0x100 + ((val >> 8) & ((1U << b) - 1))]; ++ b = (t >> HUFFMAN_BITS_SHIFT) & HUFFMAN_BITS_MASK; ++ dist = t & HUFFMAN_VALUE_MASK; ++ val >>= b + 8; ++ bits -= b + 8; ++ } ++ ++ /* Convert dist to a distance. */ ++ ++ if (dist == 0) ++ { ++ /* A distance of 1. A common case, meaning ++ repeat the last character LEN times. */ ++ ++ if (unlikely (pout == porigout)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ if (unlikely ((unsigned int) (poutend - pout) < len)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ memset (pout, pout[-1], len); ++ pout += len; ++ } ++ else if (unlikely (dist > 29)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ else ++ { ++ if (dist < 4) ++ dist = dist + 1; ++ else ++ { ++ unsigned int extra; ++ ++ if (!elf_zlib_fetch (&pin, pinend, &val, &bits)) ++ return 0; ++ ++ /* This is an expression for the table of ++ distance codes in RFC 1951 3.2.5. */ ++ dist -= 4; ++ extra = (dist >> 1) + 1; ++ dist = (dist & 1) << extra; ++ dist += 5; ++ dist += ((1U << (extra - 1)) - 1) << 2; ++ dist += val & ((1U << extra) - 1); ++ val >>= extra; ++ bits -= extra; ++ } ++ ++ /* Go back dist bytes, and copy len bytes from ++ there. */ ++ ++ if (unlikely ((unsigned int) (pout - porigout) < dist)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ if (unlikely ((unsigned int) (poutend - pout) < len)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ if (dist >= len) ++ { ++ memcpy (pout, pout - dist, len); ++ pout += len; ++ } ++ else ++ { ++ while (len > 0) ++ { ++ unsigned int copy; ++ ++ copy = len < dist ? len : dist; ++ memcpy (pout, pout - dist, copy); ++ len -= copy; ++ pout += copy; ++ } ++ } ++ } ++ } ++ } ++ } ++ } ++ ++ /* We should have filled the output buffer. */ ++ if (unlikely (pout != poutend)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ return 1; ++} ++ ++/* Verify the zlib checksum. The checksum is in the 4 bytes at ++ CHECKBYTES, and the uncompressed data is at UNCOMPRESSED / ++ UNCOMPRESSED_SIZE. Returns 1 on success, 0 on failure. */ ++ ++static int ++elf_zlib_verify_checksum (const unsigned char *checkbytes, ++ const unsigned char *uncompressed, ++ size_t uncompressed_size) ++{ ++ unsigned int i; ++ unsigned int cksum; ++ const unsigned char *p; ++ uint32_t s1; ++ uint32_t s2; ++ size_t hsz; ++ ++ cksum = 0; ++ for (i = 0; i < 4; i++) ++ cksum = (cksum << 8) | checkbytes[i]; ++ ++ s1 = 1; ++ s2 = 0; ++ ++ /* Minimize modulo operations. */ ++ ++ p = uncompressed; ++ hsz = uncompressed_size; ++ while (hsz >= 5552) ++ { ++ for (i = 0; i < 5552; i += 16) ++ { ++ /* Manually unroll loop 16 times. */ ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ } ++ hsz -= 5552; ++ s1 %= 65521; ++ s2 %= 65521; ++ } ++ ++ while (hsz >= 16) ++ { ++ /* Manually unroll loop 16 times. */ ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ ++ hsz -= 16; ++ } ++ ++ for (i = 0; i < hsz; ++i) ++ { ++ s1 = s1 + *p++; ++ s2 = s2 + s1; ++ } ++ ++ s1 %= 65521; ++ s2 %= 65521; ++ ++ if (unlikely ((s2 << 16) + s1 != cksum)) ++ { ++ elf_zlib_failed (); ++ return 0; ++ } ++ ++ return 1; ++} ++ ++/* Inflate a zlib stream from PIN/SIN to POUT/SOUT, and verify the ++ checksum. Return 1 on success, 0 on error. */ ++ ++static int ++elf_zlib_inflate_and_verify (const unsigned char *pin, size_t sin, ++ uint16_t *zdebug_table, unsigned char *pout, ++ size_t sout) ++{ ++ if (!elf_zlib_inflate (pin, sin, zdebug_table, pout, sout)) ++ return 0; ++ if (!elf_zlib_verify_checksum (pin + sin - 4, pout, sout)) ++ return 0; ++ return 1; ++} ++ ++/* Uncompress the old compressed debug format, the one emitted by ++ --compress-debug-sections=zlib-gnu. The compressed data is in ++ COMPRESSED / COMPRESSED_SIZE, and the function writes to ++ *UNCOMPRESSED / *UNCOMPRESSED_SIZE. ZDEBUG_TABLE is work space to ++ hold Huffman tables. Returns 0 on error, 1 on successful ++ decompression or if something goes wrong. In general we try to ++ carry on, by returning 1, even if we can't decompress. */ ++ ++static int ++elf_uncompress_zdebug (struct backtrace_state *state, ++ const unsigned char *compressed, size_t compressed_size, ++ uint16_t *zdebug_table, ++ backtrace_error_callback error_callback, void *data, ++ unsigned char **uncompressed, size_t *uncompressed_size) ++{ ++ size_t sz; ++ size_t i; ++ unsigned char *po; ++ ++ *uncompressed = NULL; ++ *uncompressed_size = 0; ++ ++ /* The format starts with the four bytes ZLIB, followed by the 8 ++ byte length of the uncompressed data in big-endian order, ++ followed by a zlib stream. */ ++ ++ if (compressed_size < 12 || memcmp (compressed, "ZLIB", 4) != 0) ++ return 1; ++ ++ sz = 0; ++ for (i = 0; i < 8; i++) ++ sz = (sz << 8) | compressed[i + 4]; ++ ++ if (*uncompressed != NULL && *uncompressed_size >= sz) ++ po = *uncompressed; ++ else ++ { ++ po = (unsigned char *) backtrace_alloc (state, sz, error_callback, data); ++ if (po == NULL) ++ return 0; ++ } ++ ++ if (!elf_zlib_inflate_and_verify (compressed + 12, compressed_size - 12, ++ zdebug_table, po, sz)) ++ return 1; ++ ++ *uncompressed = po; ++ *uncompressed_size = sz; ++ ++ return 1; ++} ++ ++/* Uncompress the new compressed debug format, the official standard ++ ELF approach emitted by --compress-debug-sections=zlib-gabi. The ++ compressed data is in COMPRESSED / COMPRESSED_SIZE, and the ++ function writes to *UNCOMPRESSED / *UNCOMPRESSED_SIZE. ++ ZDEBUG_TABLE is work space as for elf_uncompress_zdebug. Returns 0 ++ on error, 1 on successful decompression or if something goes wrong. ++ In general we try to carry on, by returning 1, even if we can't ++ decompress. */ ++ ++static int ++elf_uncompress_chdr (struct backtrace_state *state, ++ const unsigned char *compressed, size_t compressed_size, ++ uint16_t *zdebug_table, ++ backtrace_error_callback error_callback, void *data, ++ unsigned char **uncompressed, size_t *uncompressed_size) ++{ ++ const b_elf_chdr *chdr; ++ unsigned char *po; ++ ++ *uncompressed = NULL; ++ *uncompressed_size = 0; ++ ++ /* The format starts with an ELF compression header. */ ++ if (compressed_size < sizeof (b_elf_chdr)) ++ return 1; ++ ++ chdr = (const b_elf_chdr *) compressed; ++ ++ if (chdr->ch_type != ELFCOMPRESS_ZLIB) ++ { ++ /* Unsupported compression algorithm. */ ++ return 1; ++ } ++ ++ if (*uncompressed != NULL && *uncompressed_size >= chdr->ch_size) ++ po = *uncompressed; ++ else ++ { ++ po = (unsigned char *) backtrace_alloc (state, chdr->ch_size, ++ error_callback, data); ++ if (po == NULL) ++ return 0; ++ } ++ ++ if (!elf_zlib_inflate_and_verify (compressed + sizeof (b_elf_chdr), ++ compressed_size - sizeof (b_elf_chdr), ++ zdebug_table, po, chdr->ch_size)) ++ return 1; ++ ++ *uncompressed = po; ++ *uncompressed_size = chdr->ch_size; ++ ++ return 1; ++} ++ ++/* This function is a hook for testing the zlib support. It is only ++ used by tests. */ ++ ++int ++backtrace_uncompress_zdebug (struct backtrace_state *state, ++ const unsigned char *compressed, ++ size_t compressed_size, ++ backtrace_error_callback error_callback, ++ void *data, unsigned char **uncompressed, ++ size_t *uncompressed_size) ++{ ++ uint16_t *zdebug_table; ++ int ret; ++ ++ zdebug_table = ((uint16_t *) backtrace_alloc (state, ZDEBUG_TABLE_SIZE, ++ error_callback, data)); ++ if (zdebug_table == NULL) ++ return 0; ++ ret = elf_uncompress_zdebug (state, compressed, compressed_size, ++ zdebug_table, error_callback, data, ++ uncompressed, uncompressed_size); ++ backtrace_free (state, zdebug_table, ZDEBUG_TABLE_SIZE, ++ error_callback, data); ++ return ret; ++} ++ + /* Add the backtrace data for one ELF file. Returns 1 on success, + 0 on failure (in both cases descriptor is closed) or -1 if exe + is non-zero and the ELF file is ET_DYN, which tells the caller that +@@ -985,6 +2521,8 @@ elf_add (struct backtrace_state *state, + off_t max_offset; + struct backtrace_view debug_view; + int debug_view_valid; ++ unsigned int using_debug_view; ++ uint16_t *zdebug_table; + + *found_sym = 0; + *found_dwarf = 0; +@@ -1149,6 +2687,7 @@ elf_add (struct backtrace_state *state, + { + sections[j].offset = shdr->sh_offset; + sections[j].size = shdr->sh_size; ++ sections[j].compressed = (shdr->sh_flags & SHF_COMPRESSED) != 0; + break; + } + } +@@ -1260,8 +2799,6 @@ elf_add (struct backtrace_state *state, + elf_add_syminfo_data (state, sdata); + } + +- /* FIXME: Need to handle compressed debug sections. */ +- + backtrace_release_view (state, &shdrs_view, error_callback, data); + shdrs_view_valid = 0; + backtrace_release_view (state, &names_view, error_callback, data); +@@ -1349,13 +2886,94 @@ elf_add (struct backtrace_state *state, + goto fail; + descriptor = -1; + ++ using_debug_view = 0; + for (i = 0; i < (int) DEBUG_MAX; ++i) + { + if (sections[i].size == 0) + sections[i].data = NULL; + else +- sections[i].data = ((const unsigned char *) debug_view.data +- + (sections[i].offset - min_offset)); ++ { ++ sections[i].data = ((const unsigned char *) debug_view.data ++ + (sections[i].offset - min_offset)); ++ if (i < ZDEBUG_INFO) ++ ++using_debug_view; ++ } ++ } ++ ++ /* Uncompress the old format (--compress-debug-sections=zlib-gnu). */ ++ ++ zdebug_table = NULL; ++ for (i = 0; i < ZDEBUG_INFO; ++i) ++ { ++ struct debug_section_info *pz; ++ ++ pz = §ions[i + ZDEBUG_INFO - DEBUG_INFO]; ++ if (sections[i].size == 0 && pz->size > 0) ++ { ++ unsigned char *uncompressed_data; ++ size_t uncompressed_size; ++ ++ if (zdebug_table == NULL) ++ { ++ zdebug_table = ((uint16_t *) ++ backtrace_alloc (state, ZDEBUG_TABLE_SIZE, ++ error_callback, data)); ++ if (zdebug_table == NULL) ++ goto fail; ++ } ++ ++ uncompressed_data = NULL; ++ uncompressed_size = 0; ++ if (!elf_uncompress_zdebug (state, pz->data, pz->size, zdebug_table, ++ error_callback, data, ++ &uncompressed_data, &uncompressed_size)) ++ goto fail; ++ sections[i].data = uncompressed_data; ++ sections[i].size = uncompressed_size; ++ sections[i].compressed = 0; ++ } ++ } ++ ++ /* Uncompress the official ELF format ++ (--compress-debug-sections=zlib-gabi). */ ++ for (i = 0; i < ZDEBUG_INFO; ++i) ++ { ++ unsigned char *uncompressed_data; ++ size_t uncompressed_size; ++ ++ if (sections[i].size == 0 || !sections[i].compressed) ++ continue; ++ ++ if (zdebug_table == NULL) ++ { ++ zdebug_table = ((uint16_t *) ++ backtrace_alloc (state, ZDEBUG_TABLE_SIZE, ++ error_callback, data)); ++ if (zdebug_table == NULL) ++ goto fail; ++ } ++ ++ uncompressed_data = NULL; ++ uncompressed_size = 0; ++ if (!elf_uncompress_chdr (state, sections[i].data, sections[i].size, ++ zdebug_table, error_callback, data, ++ &uncompressed_data, &uncompressed_size)) ++ goto fail; ++ sections[i].data = uncompressed_data; ++ sections[i].size = uncompressed_size; ++ sections[i].compressed = 0; ++ ++ --using_debug_view; ++ } ++ ++ if (zdebug_table != NULL) ++ backtrace_free (state, zdebug_table, ZDEBUG_TABLE_SIZE, ++ error_callback, data); ++ ++ if (debug_view_valid && using_debug_view == 0) ++ { ++ backtrace_release_view (state, &debug_view, error_callback, data); ++ debug_view_valid = 0; + } + + if (!backtrace_dwarf_add (state, base_address, +Index: b/src/libbacktrace/configure.ac +=================================================================== +--- a/src/libbacktrace/configure.ac ++++ b/src/libbacktrace/configure.ac +@@ -355,6 +355,23 @@ if test "$have_getexecname" = "yes"; the + AC_DEFINE(HAVE_GETEXECNAME, 1, [Define if getexecname is available.]) + fi + ++AC_CHECK_LIB([z], [compress], []) ++if test $ac_cv_lib_z_compress = "yes"; then ++ AC_DEFINE(HAVE_ZLIB, 1, [Define if -lz is available.]) ++fi ++AM_CONDITIONAL(HAVE_ZLIB, test "$ac_cv_lib_z_compress" = yes) ++ ++dnl Test whether the linker supports the --compress_debug_sections option. ++AC_CACHE_CHECK([whether --compress-debug-sections is supported], ++[libgo_cv_ld_compress], ++[LDFLAGS_hold=$LDFLAGS ++LDFLAGS="$LDFLAGS -Wl,--compress-debug-sections=zlib-gnu" ++AC_LINK_IFELSE([AC_LANG_PROGRAM(,)], ++[libgo_cv_ld_compress=yes], ++[libgo_cv_ld_compress=no]) ++LDFLAGS=$LDFLAGS_hold]) ++AM_CONDITIONAL(HAVE_COMPRESSED_DEBUG, test "$libgo_cv_ld_compress" = yes) ++ + AC_ARG_VAR(OBJCOPY, [location of objcopy]) + AC_CHECK_PROG(OBJCOPY, objcopy, objcopy,) + AC_CACHE_CHECK([whether objcopy supports debuglink], +Index: b/src/libbacktrace/ztest.c +=================================================================== +--- /dev/null ++++ b/src/libbacktrace/ztest.c +@@ -0,0 +1,446 @@ ++/* ztest.c -- Test for libbacktrace inflate code. ++ Copyright (C) 2017 Free Software Foundation, Inc. ++ Written by Ian Lance Taylor, Google. ++ ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are ++met: ++ ++ (1) Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ ++ (2) Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in ++ the documentation and/or other materials provided with the ++ distribution. ++ ++ (3) The name of the author may not be used to ++ endorse or promote products derived from this software without ++ specific prior written permission. ++ ++THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, ++INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ++SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ++STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING ++IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ++POSSIBILITY OF SUCH DAMAGE. */ ++ ++#include "config.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef HAVE_ZLIB ++#include ++#endif ++ ++#include "backtrace.h" ++#include "backtrace-supported.h" ++ ++#include "internal.h" ++#include "testlib.h" ++ ++/* Some tests for the local zlib inflation code. */ ++ ++struct zlib_test ++{ ++ const char *name; ++ const char *uncompressed; ++ const char *compressed; ++ size_t compressed_len; ++}; ++ ++/* Error callback. */ ++ ++static void ++error_callback_compress (void *vdata, const char *msg, int errnum) ++{ ++ fprintf (stderr, "%s", msg); ++ if (errnum > 0) ++ fprintf (stderr, ": %s", strerror (errnum)); ++ fprintf (stderr, "\n"); ++ exit (EXIT_FAILURE); ++} ++ ++static const struct zlib_test tests[] = ++{ ++ { ++ "empty", ++ "", ++ "\x78\x9c\x03\x00\x00\x00\x00\x01", ++ 8, ++ }, ++ { ++ "hello", ++ "hello, world\n", ++ ("\x78\x9c\xca\x48\xcd\xc9\xc9\xd7\x51\x28\xcf" ++ "\x2f\xca\x49\xe1\x02\x04\x00\x00\xff\xff\x21\xe7\x04\x93"), ++ 25, ++ }, ++ { ++ "goodbye", ++ "goodbye, world", ++ ("\x78\x9c\x4b\xcf\xcf\x4f\x49\xaa" ++ "\x4c\xd5\x51\x28\xcf\x2f\xca\x49" ++ "\x01\x00\x28\xa5\x05\x5e"), ++ 22, ++ } ++}; ++ ++/* Test the hand coded samples. */ ++ ++static void ++test_samples (struct backtrace_state *state) ++{ ++ size_t i; ++ ++ for (i = 0; i < sizeof tests / sizeof tests[0]; ++i) ++ { ++ char *p; ++ size_t v; ++ size_t j; ++ unsigned char *uncompressed; ++ size_t uncompressed_len; ++ ++ p = malloc (12 + tests[i].compressed_len); ++ memcpy (p, "ZLIB", 4); ++ v = strlen (tests[i].uncompressed); ++ for (j = 0; j < 8; ++j) ++ p[j + 4] = (v >> ((7 - j) * 8)) & 0xff; ++ memcpy (p + 12, tests[i].compressed, tests[i].compressed_len); ++ uncompressed = NULL; ++ uncompressed_len = 0; ++ if (!backtrace_uncompress_zdebug (state, (unsigned char *) p, ++ tests[i].compressed_len + 12, ++ error_callback_compress, NULL, ++ &uncompressed, &uncompressed_len)) ++ { ++ fprintf (stderr, "test %s: uncompress failed\n", tests[i].name); ++ ++failures; ++ } ++ else ++ { ++ if (uncompressed_len != v) ++ { ++ fprintf (stderr, ++ "test %s: got uncompressed length %zu, want %zu\n", ++ tests[i].name, uncompressed_len, v); ++ ++failures; ++ } ++ else if (memcmp (tests[i].uncompressed, uncompressed, v) != 0) ++ { ++ size_t j; ++ ++ fprintf (stderr, "test %s: uncompressed data mismatch\n", ++ tests[i].name); ++ for (j = 0; j < v; ++j) ++ if (tests[i].uncompressed[j] != uncompressed[j]) ++ fprintf (stderr, " %zu: got %#x want %#x\n", j, ++ uncompressed[j], tests[i].uncompressed[j]); ++ ++failures; ++ } ++ else ++ printf ("PASS: inflate %s\n", tests[i].name); ++ ++ backtrace_free (state, uncompressed, uncompressed_len, ++ error_callback_compress, NULL); ++ } ++ } ++} ++ ++#ifdef HAVE_ZLIB ++ ++/* Given a set of TRIALS timings, discard the lowest and highest ++ values and return the mean average of the rest. */ ++ ++static size_t ++average_time (const size_t *times, size_t trials) ++{ ++ size_t imax; ++ size_t max; ++ size_t imin; ++ size_t min; ++ size_t i; ++ size_t sum; ++ ++ imin = 0; ++ imax = 0; ++ min = times[0]; ++ max = times[0]; ++ for (i = 1; i < trials; ++i) ++ { ++ if (times[i] < min) ++ { ++ imin = i; ++ min = times[i]; ++ } ++ if (times[i] > max) ++ { ++ imax = i; ++ max = times[i]; ++ } ++ } ++ ++ sum = 0; ++ for (i = 0; i < trials; ++i) ++ { ++ if (i != imax && i != imin) ++ sum += times[i]; ++ } ++ return sum / (trials - 2); ++} ++ ++#endif ++ ++/* Test a larger text, if available. */ ++ ++static void ++test_large (struct backtrace_state *state) ++{ ++#ifdef HAVE_ZLIB ++ unsigned char *orig_buf; ++ size_t orig_bufsize; ++ size_t i; ++ char *compressed_buf; ++ size_t compressed_bufsize; ++ unsigned long compress_sizearg; ++ unsigned char *uncompressed_buf; ++ size_t uncompressed_bufsize; ++ int r; ++ clockid_t cid; ++ struct timespec ts1; ++ struct timespec ts2; ++ size_t ctime; ++ size_t ztime; ++ const size_t trials = 16; ++ size_t ctimes[16]; ++ size_t ztimes[16]; ++ static const char * const names[] = { ++ "Mark.Twain-Tom.Sawyer.txt", ++ "../libgo/go/compress/testdata/Mark.Twain-Tom.Sawyer.txt" ++ }; ++ ++ orig_buf = NULL; ++ orig_bufsize = 0; ++ uncompressed_buf = NULL; ++ compressed_buf = NULL; ++ ++ for (i = 0; i < sizeof names / sizeof names[0]; ++i) ++ { ++ size_t len; ++ char *namebuf; ++ FILE *e; ++ struct stat st; ++ char *rbuf; ++ size_t got; ++ ++ len = strlen (SRCDIR) + strlen (names[i]) + 2; ++ namebuf = malloc (len); ++ if (namebuf == NULL) ++ { ++ perror ("malloc"); ++ goto fail; ++ } ++ snprintf (namebuf, len, "%s/%s", SRCDIR, names[i]); ++ e = fopen (namebuf, "r"); ++ free (namebuf); ++ if (e == NULL) ++ continue; ++ if (fstat (fileno (e), &st) < 0) ++ { ++ perror ("fstat"); ++ fclose (e); ++ continue; ++ } ++ rbuf = malloc (st.st_size); ++ if (rbuf == NULL) ++ { ++ perror ("malloc"); ++ goto fail; ++ } ++ got = fread (rbuf, 1, st.st_size, e); ++ fclose (e); ++ if (got > 0) ++ { ++ orig_buf = rbuf; ++ orig_bufsize = got; ++ break; ++ } ++ free (rbuf); ++ } ++ ++ if (orig_buf == NULL) ++ { ++ /* We couldn't find an input file. */ ++ printf ("UNSUPPORTED: inflate large\n"); ++ return; ++ } ++ ++ compressed_bufsize = compressBound (orig_bufsize) + 12; ++ compressed_buf = malloc (compressed_bufsize); ++ if (compressed_buf == NULL) ++ { ++ perror ("malloc"); ++ goto fail; ++ } ++ ++ compress_sizearg = compressed_bufsize - 12; ++ r = compress (compressed_buf + 12, &compress_sizearg, ++ orig_buf, orig_bufsize); ++ if (r != Z_OK) ++ { ++ fprintf (stderr, "zlib compress failed: %d\n", r); ++ goto fail; ++ } ++ ++ compressed_bufsize = compress_sizearg + 12; ++ ++ /* Prepare the header that our library expects. */ ++ memcpy (compressed_buf, "ZLIB", 4); ++ for (i = 0; i < 8; ++i) ++ compressed_buf[i + 4] = (orig_bufsize >> ((7 - i) * 8)) & 0xff; ++ ++ uncompressed_buf = malloc (orig_bufsize); ++ if (uncompressed_buf == NULL) ++ { ++ perror ("malloc"); ++ goto fail; ++ } ++ uncompressed_bufsize = orig_bufsize; ++ ++ if (!backtrace_uncompress_zdebug (state, compressed_buf, compressed_bufsize, ++ error_callback_compress, NULL, ++ &uncompressed_buf, &uncompressed_bufsize)) ++ { ++ fprintf (stderr, "inflate large: backtrace_uncompress_zdebug failed\n"); ++ goto fail; ++ } ++ ++ if (uncompressed_bufsize != orig_bufsize) ++ { ++ fprintf (stderr, ++ "inflate large: got uncompressed length %zu, want %zu\n", ++ uncompressed_bufsize, orig_bufsize); ++ goto fail; ++ } ++ ++ if (memcmp (uncompressed_buf, orig_buf, uncompressed_bufsize) != 0) ++ { ++ fprintf (stderr, "inflate large: uncompressed data mismatch\n"); ++ goto fail; ++ } ++ ++ printf ("PASS: inflate large\n"); ++ ++ for (i = 0; i < trials; ++i) ++ { ++ cid = CLOCK_REALTIME; ++#ifdef CLOCK_PROCESS_CPUTIME_ID ++ cid = CLOCK_PROCESS_CPUTIME_ID; ++#endif ++ if (clock_gettime (cid, &ts1) < 0) ++ { ++ perror ("clock_gettime"); ++ return; ++ } ++ ++ if (!backtrace_uncompress_zdebug (state, compressed_buf, ++ compressed_bufsize, ++ error_callback_compress, NULL, ++ &uncompressed_buf, ++ &uncompressed_bufsize)) ++ { ++ fprintf (stderr, ++ ("inflate large: " ++ "benchmark backtrace_uncompress_zdebug failed\n")); ++ return; ++ } ++ ++ if (clock_gettime (cid, &ts2) < 0) ++ { ++ perror ("clock_gettime"); ++ return; ++ } ++ ++ ctime = (ts2.tv_sec - ts1.tv_sec) * 1000000000; ++ ctime += ts2.tv_nsec - ts1.tv_nsec; ++ ctimes[i] = ctime; ++ ++ if (clock_gettime (cid, &ts1) < 0) ++ { ++ perror("clock_gettime"); ++ return; ++ } ++ ++ r = uncompress (uncompressed_buf, &uncompressed_bufsize, ++ compressed_buf + 12, compressed_bufsize - 12); ++ ++ if (clock_gettime (cid, &ts2) < 0) ++ { ++ perror ("clock_gettime"); ++ return; ++ } ++ ++ if (r != Z_OK) ++ { ++ fprintf (stderr, ++ "inflate large: benchmark zlib uncompress failed: %d\n", ++ r); ++ return; ++ } ++ ++ ztime = (ts2.tv_sec - ts1.tv_sec) * 1000000000; ++ ztime += ts2.tv_nsec - ts1.tv_nsec; ++ ztimes[i] = ztime; ++ } ++ ++ /* Toss the highest and lowest times and average the rest. */ ++ ctime = average_time (ctimes, trials); ++ ztime = average_time (ztimes, trials); ++ ++ printf ("backtrace time: %zu ns\n", ctime); ++ printf ("zlib time: : %zu ns\n", ztime); ++ printf ("percentage : %g\n", (double) ztime / (double) ctime); ++ ++ return; ++ ++ fail: ++ printf ("FAIL: inflate large\n"); ++ ++failures; ++ ++ if (orig_buf != NULL) ++ free (orig_buf); ++ if (compressed_buf != NULL) ++ free (compressed_buf); ++ if (uncompressed_buf != NULL) ++ free (uncompressed_buf); ++ ++#else /* !HAVE_ZLIB */ ++ ++ printf ("UNSUPPORTED: inflate large\n"); ++ ++#endif /* !HAVE_ZLIB */ ++} ++ ++int ++main (int argc ATTRIBUTE_UNUSED, char **argv) ++{ ++ struct backtrace_state *state; ++ ++ state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS, ++ error_callback_create, NULL); ++ ++ test_samples (state); ++ test_large (state); ++ ++ exit (failures != 0 ? EXIT_FAILURE : EXIT_SUCCESS); ++} +Index: b/src/libbacktrace/config.h.in +=================================================================== +--- a/src/libbacktrace/config.h.in ++++ b/src/libbacktrace/config.h.in +@@ -28,6 +28,9 @@ + /* Define to 1 if you have the header file. */ + #undef HAVE_INTTYPES_H + ++/* Define to 1 if you have the `z' library (-lz). */ ++#undef HAVE_LIBZ ++ + /* Define to 1 if you have the header file. */ + #undef HAVE_LINK_H + +@@ -61,6 +64,9 @@ + /* Define to 1 if you have the header file. */ + #undef HAVE_UNISTD_H + ++/* Define if -lz is available. */ ++#undef HAVE_ZLIB ++ + /* Define to the sub-directory in which libtool stores uninstalled libraries. + */ + #undef LT_OBJDIR +Index: b/src/libbacktrace/internal.h +=================================================================== +--- a/src/libbacktrace/internal.h ++++ b/src/libbacktrace/internal.h +@@ -292,4 +292,13 @@ extern int backtrace_dwarf_add (struct b + backtrace_error_callback error_callback, + void *data, fileline *fileline_fn); + ++/* A test-only hook for elf_uncompress_zdebug. */ ++ ++extern int backtrace_uncompress_zdebug (struct backtrace_state *, ++ const unsigned char *compressed, ++ size_t compressed_size, ++ backtrace_error_callback, void *data, ++ unsigned char **uncompressed, ++ size_t *uncompressed_size); ++ + #endif +Index: b/src/libbacktrace/Makefile.am +=================================================================== +--- a/src/libbacktrace/Makefile.am ++++ b/src/libbacktrace/Makefile.am +@@ -100,6 +100,16 @@ stest_LDADD = libbacktrace.la + + check_PROGRAMS += stest + ++ztest_SOURCES = ztest.c testlib.c ++ztest_CFLAGS = -DSRCDIR=\"$(srcdir)\" ++ztest_LDADD = libbacktrace.la ++ ++if HAVE_ZLIB ++ztest_LDADD += -lz ++endif ++ ++check_PROGRAMS += ztest ++ + if HAVE_OBJCOPY_DEBUGLINK + + TESTS += dtest +@@ -110,6 +120,22 @@ dtest: btest + + endif HAVE_OBJCOPY_DEBUGLINK + ++if HAVE_COMPRESSED_DEBUG ++ ++ctestg_SOURCES = btest.c testlib.c ++ctestg_CFLAGS = $(AM_CFLAGS) -g ++ctestg_LDFLAGS = -Wl,--compress-debug-sections=zlib-gnu ++ctestg_LDADD = libbacktrace.la ++ ++ctesta_SOURCES = btest.c testlib.c ++ctesta_CFLAGS = $(AM_CFLAGS) -g ++ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi ++ctesta_LDADD = libbacktrace.la ++ ++check_PROGRAMS += ctestg ctesta ++ ++endif ++ + endif NATIVE + + # We can't use automake's automatic dependency tracking, because it --- gcc-7-7.5.0.orig/debian/patches/pr67590.diff +++ gcc-7-7.5.0/debian/patches/pr67590.diff @@ -0,0 +1,38 @@ +# DP: Fix PR67590, setting objdump macro. + +Index: b/src/libcc1/configure.ac +=================================================================== +--- a/src/libcc1/configure.ac ++++ b/src/libcc1/configure.ac +@@ -72,6 +72,31 @@ if test "$GXX" = yes; then + fi + AC_SUBST(libsuffix) + ++# Figure out what objdump we will be using. ++AS_VAR_SET_IF(gcc_cv_objdump,, [ ++if test -f $gcc_cv_binutils_srcdir/configure.ac \ ++ && test -f ../binutils/Makefile \ ++ && test x$build = x$host; then ++ # Single tree build which includes binutils. ++ gcc_cv_objdump=../binutils/objdump$build_exeext ++elif test -x objdump$build_exeext; then ++ gcc_cv_objdump=./objdump$build_exeext ++elif ( set dummy $OBJDUMP_FOR_TARGET; test -x $[2] ); then ++ gcc_cv_objdump="$OBJDUMP_FOR_TARGET" ++else ++ AC_PATH_PROG(gcc_cv_objdump, $OBJDUMP_FOR_TARGET) ++fi]) ++ ++AC_MSG_CHECKING(what objdump to use) ++if test "$gcc_cv_objdump" = ../binutils/objdump$build_exeext; then ++ # Single tree build which includes binutils. ++ AC_MSG_RESULT(newly built objdump) ++elif test x$gcc_cv_objdump = x; then ++ AC_MSG_RESULT(not found) ++else ++ AC_MSG_RESULT($gcc_cv_objdump) ++fi ++ + dnl Test for -lsocket and -lnsl. Copied from libgo/configure.ac. + AC_CACHE_CHECK([for socket libraries], libcc1_cv_lib_sockets, + [libcc1_cv_lib_sockets= --- gcc-7-7.5.0.orig/debian/patches/pr67899.diff +++ gcc-7-7.5.0/debian/patches/pr67899.diff @@ -0,0 +1,31 @@ +# DP: Proposed patch for PR sanitizer/67899 + +Index: b/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +=================================================================== +--- a/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -606,11 +606,10 @@ namespace __sanitizer { + #else + __sanitizer_sigset_t sa_mask; + #ifndef __mips__ +-#if defined(__sparc__) +- unsigned long sa_flags; +-#else +- int sa_flags; ++#if defined(__sparc__) && defined(__arch64__) ++ int __pad; + #endif ++ int sa_flags; + #endif + #endif + #if SANITIZER_LINUX +@@ -640,7 +639,8 @@ namespace __sanitizer { + void (*handler)(int signo); + void (*sigaction)(int signo, void *info, void *ctx); + }; +- unsigned long sa_flags; ++ int __pad; ++ int sa_flags; + void (*sa_restorer)(void); + __sanitizer_kernel_sigset_t sa_mask; + }; --- gcc-7-7.5.0.orig/debian/patches/pr77631.diff +++ gcc-7-7.5.0/debian/patches/pr77631.diff @@ -0,0 +1,884 @@ +# DP: Fix PR sanitizer/77631, support separate debug info in libbacktrace. + +Index: b/src/libbacktrace/Makefile.am +=================================================================== +--- a/src/libbacktrace/Makefile.am ++++ b/src/libbacktrace/Makefile.am +@@ -100,6 +100,16 @@ stest_LDADD = libbacktrace.la + + check_PROGRAMS += stest + ++if HAVE_OBJCOPY_DEBUGLINK ++ ++TESTS += dtest ++ ++dtest: btest ++ $(OBJCOPY) --only-keep-debug btest btest.debug ++ $(OBJCOPY) --strip-debug --add-gnu-debuglink=btest.debug btest dtest ++ ++endif HAVE_OBJCOPY_DEBUGLINK ++ + endif NATIVE + + # We can't use automake's automatic dependency tracking, because it +Index: b/src/libbacktrace/Makefile.in +=================================================================== +--- a/src/libbacktrace/Makefile.in ++++ b/src/libbacktrace/Makefile.in +@@ -85,6 +85,7 @@ host_triplet = @host@ + target_triplet = @target@ + check_PROGRAMS = $(am__EXEEXT_1) + @NATIVE_TRUE@am__append_1 = btest stest ++@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_2 = dtest + subdir = . + DIST_COMMON = README ChangeLog $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/configure \ +@@ -200,6 +201,7 @@ MAKEINFO = @MAKEINFO@ + MKDIR_P = @MKDIR_P@ + NM = @NM@ + NMEDIT = @NMEDIT@ ++OBJCOPY = @OBJCOPY@ + OBJDUMP = @OBJDUMP@ + OBJEXT = @OBJEXT@ + OTOOL = @OTOOL@ +@@ -324,7 +326,7 @@ libbacktrace_la_LIBADD = \ + $(ALLOC_FILE) + + libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD) +-TESTS = $(check_PROGRAMS) ++TESTS = $(check_PROGRAMS) $(am__append_2) + @NATIVE_TRUE@btest_SOURCES = btest.c + @NATIVE_TRUE@btest_CFLAGS = $(AM_CFLAGS) -g -O + @NATIVE_TRUE@btest_LDADD = libbacktrace.la +@@ -745,6 +747,10 @@ uninstall-am: + mostlyclean-multi pdf pdf-am ps ps-am tags uninstall \ + uninstall-am + ++ ++@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@dtest: btest ++@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --only-keep-debug btest btest.debug ++@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --strip-debug --add-gnu-debuglink=btest.debug btest dtest + alloc.lo: config.h backtrace.h internal.h + backtrace.lo: config.h backtrace.h internal.h + btest.lo: (INCDIR)/filenames.h backtrace.h backtrace-supported.h +Index: b/src/libbacktrace/configure.ac +=================================================================== +--- a/src/libbacktrace/configure.ac ++++ b/src/libbacktrace/configure.ac +@@ -355,6 +355,20 @@ if test "$have_getexecname" = "yes"; the + AC_DEFINE(HAVE_GETEXECNAME, 1, [Define if getexecname is available.]) + fi + ++AC_ARG_VAR(OBJCOPY, [location of objcopy]) ++AC_CHECK_PROG(OBJCOPY, objcopy, objcopy,) ++AC_CACHE_CHECK([whether objcopy supports debuglink], ++[libbacktrace_cv_objcopy_debuglink], ++[if test -n "${with_target_subdir}"; then ++ libbacktrace_cv_objcopy_debuglink=no ++elif ${OBJCOPY} --add-gnu-debuglink=x /bin/ls /tmp/ls$$; then ++ rm -f /tmp/ls$$ ++ libbacktrace_cv_objcopy_debuglink=yes ++else ++ libbacktrace_cv_objcopy_debuglink=no ++fi]) ++AM_CONDITIONAL(HAVE_OBJCOPY_DEBUGLINK, test "$libbacktrace_cv_objcopy_debuglink" = yes) ++ + AC_CACHE_CHECK([whether tests can run], + [libbacktrace_cv_sys_native], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([], [return 0;])], +Index: b/src/libbacktrace/elf.c +=================================================================== +--- a/src/libbacktrace/elf.c ++++ b/src/libbacktrace/elf.c +@@ -32,9 +32,12 @@ POSSIBILITY OF SUCH DAMAGE. */ + + #include "config.h" + ++#include + #include + #include + #include ++#include ++#include + + #ifdef HAVE_DL_ITERATE_PHDR + #include +@@ -43,6 +46,35 @@ POSSIBILITY OF SUCH DAMAGE. */ + #include "backtrace.h" + #include "internal.h" + ++#ifndef S_ISLNK ++ #ifndef S_IFLNK ++ #define S_IFLNK 0120000 ++ #endif ++ #ifndef S_IFMT ++ #define S_IFMT 0170000 ++ #endif ++ #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) ++#endif ++ ++#if !defined(HAVE_DECL_STRNLEN) || !HAVE_DECL_STRNLEN ++ ++/* If strnlen is not declared, provide our own version. */ ++ ++static size_t ++xstrnlen (const char *s, size_t maxlen) ++{ ++ size_t i; ++ ++ for (i = 0; i < maxlen; ++i) ++ if (s[i] == '\0') ++ break; ++ return i; ++} ++ ++#define strnlen xstrnlen ++ ++#endif ++ + #ifndef HAVE_DL_ITERATE_PHDR + + /* Dummy version of dl_iterate_phdr for systems that don't have it. */ +@@ -106,6 +138,7 @@ dl_iterate_phdr (int (*callback) (struct + #undef SHF_COMPRESSED + #undef STT_OBJECT + #undef STT_FUNC ++#undef NT_GNU_BUILD_ID + + /* Basic types. */ + +@@ -227,6 +260,16 @@ typedef struct + #define STT_OBJECT 1 + #define STT_FUNC 2 + ++typedef struct ++{ ++ uint32_t namesz; ++ uint32_t descsz; ++ uint32_t type; ++ char name[1]; ++} b_elf_note; ++ ++#define NT_GNU_BUILD_ID 3 ++ + /* An index of ELF sections we care about. */ + + enum debug_section +@@ -286,6 +329,102 @@ struct elf_syminfo_data + size_t count; + }; + ++/* Compute the CRC-32 of BUF/LEN. This uses the CRC used for ++ .gnu_debuglink files. */ ++ ++static uint32_t ++elf_crc32 (uint32_t crc, const unsigned char *buf, size_t len) ++{ ++ static const uint32_t crc32_table[256] = ++ { ++ 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, ++ 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, ++ 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, ++ 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, ++ 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, ++ 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, ++ 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, ++ 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, ++ 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, ++ 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, ++ 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, ++ 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, ++ 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, ++ 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, ++ 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, ++ 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, ++ 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, ++ 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, ++ 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, ++ 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, ++ 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, ++ 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, ++ 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, ++ 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, ++ 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, ++ 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, ++ 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, ++ 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, ++ 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, ++ 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, ++ 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, ++ 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, ++ 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, ++ 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, ++ 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, ++ 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, ++ 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, ++ 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, ++ 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, ++ 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, ++ 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, ++ 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, ++ 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, ++ 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, ++ 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, ++ 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, ++ 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, ++ 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, ++ 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, ++ 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, ++ 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, ++ 0x2d02ef8d ++ }; ++ const unsigned char *end; ++ ++ crc = ~crc; ++ for (end = buf + len; buf < end; ++ buf) ++ crc = crc32_table[(crc ^ *buf) & 0xff] ^ (crc >> 8); ++ return ~crc; ++} ++ ++/* Return the CRC-32 of the entire file open at DESCRIPTOR. */ ++ ++static uint32_t ++elf_crc32_file (struct backtrace_state *state, int descriptor, ++ backtrace_error_callback error_callback, void *data) ++{ ++ struct stat st; ++ struct backtrace_view file_view; ++ uint32_t ret; ++ ++ if (fstat (descriptor, &st) < 0) ++ { ++ error_callback (data, "fstat", errno); ++ return 0; ++ } ++ ++ if (!backtrace_get_view (state, descriptor, 0, st.st_size, error_callback, ++ data, &file_view)) ++ return 0; ++ ++ ret = elf_crc32 (0, (const unsigned char *) file_view.data, st.st_size); ++ ++ backtrace_release_view (state, &file_view, error_callback, data); ++ ++ return ret; ++} ++ + /* A dummy callback function used when we can't find any debug info. */ + + static int +@@ -513,6 +652,293 @@ elf_syminfo (struct backtrace_state *sta + callback (data, addr, sym->name, sym->address, sym->size); + } + ++/* Return whether FILENAME is a symlink. */ ++ ++static int ++elf_is_symlink (const char *filename) ++{ ++ struct stat st; ++ ++ if (lstat (filename, &st) < 0) ++ return 0; ++ return S_ISLNK (st.st_mode); ++} ++ ++/* Return the results of reading the symlink FILENAME in a buffer ++ allocated by backtrace_alloc. Return the length of the buffer in ++ *LEN. */ ++ ++static char * ++elf_readlink (struct backtrace_state *state, const char *filename, ++ backtrace_error_callback error_callback, void *data, ++ size_t *plen) ++{ ++ size_t len; ++ char *buf; ++ ++ len = 128; ++ while (1) ++ { ++ ssize_t rl; ++ ++ buf = backtrace_alloc (state, len, error_callback, data); ++ if (buf == NULL) ++ return NULL; ++ rl = readlink (filename, buf, len); ++ if (rl < 0) ++ { ++ backtrace_free (state, buf, len, error_callback, data); ++ return NULL; ++ } ++ if ((size_t) rl < len - 1) ++ { ++ buf[rl] = '\0'; ++ *plen = len; ++ return buf; ++ } ++ backtrace_free (state, buf, len, error_callback, data); ++ len *= 2; ++ } ++} ++ ++/* Open a separate debug info file, using the build ID to find it. ++ Returns an open file descriptor, or -1. ++ ++ The GDB manual says that the only place gdb looks for a debug file ++ when the build ID is known is in /usr/lib/debug/.build-id. */ ++ ++static int ++elf_open_debugfile_by_buildid (struct backtrace_state *state, ++ const char *buildid_data, size_t buildid_size, ++ backtrace_error_callback error_callback, ++ void *data) ++{ ++ const char * const prefix = "/usr/lib/debug/.build-id/"; ++ const size_t prefix_len = strlen (prefix); ++ const char * const suffix = ".debug"; ++ const size_t suffix_len = strlen (suffix); ++ size_t len; ++ char *bd_filename; ++ char *t; ++ size_t i; ++ int ret; ++ int does_not_exist; ++ ++ len = prefix_len + buildid_size * 2 + suffix_len + 2; ++ bd_filename = backtrace_alloc (state, len, error_callback, data); ++ if (bd_filename == NULL) ++ return -1; ++ ++ t = bd_filename; ++ memcpy (t, prefix, prefix_len); ++ t += prefix_len; ++ for (i = 0; i < buildid_size; i++) ++ { ++ unsigned char b; ++ unsigned char nib; ++ ++ b = (unsigned char) buildid_data[i]; ++ nib = (b & 0xf0) >> 4; ++ *t++ = nib < 10 ? '0' + nib : 'a' + nib - 10; ++ nib = b & 0x0f; ++ *t++ = nib < 10 ? '0' + nib : 'a' + nib - 10; ++ if (i == 0) ++ *t++ = '/'; ++ } ++ memcpy (t, suffix, suffix_len); ++ t[suffix_len] = '\0'; ++ ++ ret = backtrace_open (bd_filename, error_callback, data, &does_not_exist); ++ ++ backtrace_free (state, bd_filename, len, error_callback, data); ++ ++ /* gdb checks that the debuginfo file has the same build ID note. ++ That seems kind of pointless to me--why would it have the right ++ name but not the right build ID?--so skipping the check. */ ++ ++ return ret; ++} ++ ++/* Try to open a file whose name is PREFIX (length PREFIX_LEN) ++ concatenated with PREFIX2 (length PREFIX2_LEN) concatenated with ++ DEBUGLINK_NAME. Returns an open file descriptor, or -1. */ ++ ++static int ++elf_try_debugfile (struct backtrace_state *state, const char *prefix, ++ size_t prefix_len, const char *prefix2, size_t prefix2_len, ++ const char *debuglink_name, ++ backtrace_error_callback error_callback, void *data) ++{ ++ size_t debuglink_len; ++ size_t try_len; ++ char *try; ++ int does_not_exist; ++ int ret; ++ ++ debuglink_len = strlen (debuglink_name); ++ try_len = prefix_len + prefix2_len + debuglink_len + 1; ++ try = backtrace_alloc (state, try_len, error_callback, data); ++ if (try == NULL) ++ return -1; ++ ++ memcpy (try, prefix, prefix_len); ++ memcpy (try + prefix_len, prefix2, prefix2_len); ++ memcpy (try + prefix_len + prefix2_len, debuglink_name, debuglink_len); ++ try[prefix_len + prefix2_len + debuglink_len] = '\0'; ++ ++ ret = backtrace_open (try, error_callback, data, &does_not_exist); ++ ++ backtrace_free (state, try, try_len, error_callback, data); ++ ++ return ret; ++} ++ ++/* Find a separate debug info file, using the debuglink section data ++ to find it. Returns an open file descriptor, or -1. */ ++ ++static int ++elf_find_debugfile_by_debuglink (struct backtrace_state *state, ++ const char *filename, ++ const char *debuglink_name, ++ backtrace_error_callback error_callback, ++ void *data) ++{ ++ int ret; ++ char *alc; ++ size_t alc_len; ++ const char *slash; ++ int ddescriptor; ++ const char *prefix; ++ size_t prefix_len; ++ ++ /* Resolve symlinks in FILENAME. Since FILENAME is fairly likely to ++ be /proc/self/exe, symlinks are common. We don't try to resolve ++ the whole path name, just the base name. */ ++ ret = -1; ++ alc = NULL; ++ alc_len = 0; ++ while (elf_is_symlink (filename)) ++ { ++ char *new_buf; ++ size_t new_len; ++ ++ new_buf = elf_readlink (state, filename, error_callback, data, &new_len); ++ if (new_buf == NULL) ++ break; ++ ++ if (new_buf[0] == '/') ++ filename = new_buf; ++ else ++ { ++ slash = strrchr (filename, '/'); ++ if (slash == NULL) ++ filename = new_buf; ++ else ++ { ++ size_t clen; ++ char *c; ++ ++ slash++; ++ clen = slash - filename + strlen (new_buf) + 1; ++ c = backtrace_alloc (state, clen, error_callback, data); ++ if (c == NULL) ++ goto done; ++ ++ memcpy (c, filename, slash - filename); ++ memcpy (c + (slash - filename), new_buf, strlen (new_buf)); ++ c[slash - filename + strlen (new_buf)] = '\0'; ++ backtrace_free (state, new_buf, new_len, error_callback, data); ++ filename = c; ++ new_buf = c; ++ new_len = clen; ++ } ++ } ++ ++ if (alc != NULL) ++ backtrace_free (state, alc, alc_len, error_callback, data); ++ alc = new_buf; ++ alc_len = new_len; ++ } ++ ++ /* Look for DEBUGLINK_NAME in the same directory as FILENAME. */ ++ ++ slash = strrchr (filename, '/'); ++ if (slash == NULL) ++ { ++ prefix = ""; ++ prefix_len = 0; ++ } ++ else ++ { ++ slash++; ++ prefix = filename; ++ prefix_len = slash - filename; ++ } ++ ++ ddescriptor = elf_try_debugfile (state, prefix, prefix_len, "", 0, ++ debuglink_name, error_callback, data); ++ if (ddescriptor >= 0) ++ { ++ ret = ddescriptor; ++ goto done; ++ } ++ ++ /* Look for DEBUGLINK_NAME in a .debug subdirectory of FILENAME. */ ++ ++ ddescriptor = elf_try_debugfile (state, prefix, prefix_len, ".debug/", ++ strlen (".debug/"), debuglink_name, ++ error_callback, data); ++ if (ddescriptor >= 0) ++ { ++ ret = ddescriptor; ++ goto done; ++ } ++ ++ /* Look for DEBUGLINK_NAME in /usr/lib/debug. */ ++ ++ ddescriptor = elf_try_debugfile (state, "/usr/lib/debug/", ++ strlen ("/usr/lib/debug/"), prefix, ++ prefix_len, debuglink_name, ++ error_callback, data); ++ if (ddescriptor >= 0) ++ ret = ddescriptor; ++ ++ done: ++ if (alc != NULL && alc_len > 0) ++ backtrace_free (state, alc, alc_len, error_callback, data); ++ return ret; ++} ++ ++/* Open a separate debug info file, using the debuglink section data ++ to find it. Returns an open file descriptor, or -1. */ ++ ++static int ++elf_open_debugfile_by_debuglink (struct backtrace_state *state, ++ const char *filename, ++ const char *debuglink_name, ++ uint32_t debuglink_crc, ++ backtrace_error_callback error_callback, ++ void *data) ++{ ++ int ddescriptor; ++ uint32_t got_crc; ++ ++ ddescriptor = elf_find_debugfile_by_debuglink (state, filename, ++ debuglink_name, ++ error_callback, data); ++ if (ddescriptor < 0) ++ return -1; ++ ++ got_crc = elf_crc32_file (state, ddescriptor, error_callback, data); ++ if (got_crc != debuglink_crc) ++ { ++ backtrace_close (ddescriptor, error_callback, data); ++ return -1; ++ } ++ ++ return ddescriptor; ++} ++ + /* Add the backtrace data for one ELF file. Returns 1 on success, + 0 on failure (in both cases descriptor is closed) or -1 if exe + is non-zero and the ELF file is ET_DYN, which tells the caller that +@@ -520,9 +946,10 @@ elf_syminfo (struct backtrace_state *sta + base_address is determined. */ + + static int +-elf_add (struct backtrace_state *state, int descriptor, uintptr_t base_address, +- backtrace_error_callback error_callback, void *data, +- fileline *fileline_fn, int *found_sym, int *found_dwarf, int exe) ++elf_add (struct backtrace_state *state, const char *filename, int descriptor, ++ uintptr_t base_address, backtrace_error_callback error_callback, ++ void *data, fileline *fileline_fn, int *found_sym, int *found_dwarf, ++ int exe, int debuginfo) + { + struct backtrace_view ehdr_view; + b_elf_ehdr ehdr; +@@ -546,6 +973,14 @@ elf_add (struct backtrace_state *state, + int symtab_view_valid; + struct backtrace_view strtab_view; + int strtab_view_valid; ++ struct backtrace_view buildid_view; ++ int buildid_view_valid; ++ const char *buildid_data; ++ uint32_t buildid_size; ++ struct backtrace_view debuglink_view; ++ int debuglink_view_valid; ++ const char *debuglink_name; ++ uint32_t debuglink_crc; + off_t min_offset; + off_t max_offset; + struct backtrace_view debug_view; +@@ -558,6 +993,12 @@ elf_add (struct backtrace_state *state, + names_view_valid = 0; + symtab_view_valid = 0; + strtab_view_valid = 0; ++ buildid_view_valid = 0; ++ buildid_data = NULL; ++ buildid_size = 0; ++ debuglink_view_valid = 0; ++ debuglink_name = NULL; ++ debuglink_crc = 0; + debug_view_valid = 0; + + if (!backtrace_get_view (state, descriptor, 0, sizeof ehdr, error_callback, +@@ -711,11 +1152,62 @@ elf_add (struct backtrace_state *state, + break; + } + } ++ ++ ++ /* Read the build ID if present. This could check for any ++ SHT_NOTE section with the right note name and type, but gdb ++ looks for a specific section name. */ ++ if (!debuginfo ++ && !buildid_view_valid ++ && strcmp (name, ".note.gnu.build-id") == 0) ++ { ++ const b_elf_note *note; ++ ++ if (!backtrace_get_view (state, descriptor, shdr->sh_offset, ++ shdr->sh_size, error_callback, data, ++ &buildid_view)) ++ goto fail; ++ ++ buildid_view_valid = 1; ++ note = (const b_elf_note *) buildid_view.data; ++ if (note->type == NT_GNU_BUILD_ID ++ && note->namesz == 4 ++ && strncmp (note->name, "GNU", 4) == 0 ++ && shdr->sh_size < 12 + ((note->namesz + 3) & ~ 3) + note->descsz) ++ { ++ buildid_data = ¬e->name[0] + ((note->namesz + 3) & ~ 3); ++ buildid_size = note->descsz; ++ } ++ } ++ ++ /* Read the debuglink file if present. */ ++ if (!debuginfo ++ && !debuglink_view_valid ++ && strcmp (name, ".gnu_debuglink") == 0) ++ { ++ const char *debuglink_data; ++ size_t crc_offset; ++ ++ if (!backtrace_get_view (state, descriptor, shdr->sh_offset, ++ shdr->sh_size, error_callback, data, ++ &debuglink_view)) ++ goto fail; ++ ++ debuglink_view_valid = 1; ++ debuglink_data = (const char *) debuglink_view.data; ++ crc_offset = strnlen (debuglink_data, shdr->sh_size); ++ crc_offset = (crc_offset + 3) & ~3; ++ if (crc_offset + 4 <= shdr->sh_size) ++ { ++ debuglink_name = debuglink_data; ++ debuglink_crc = *(const uint32_t*)(debuglink_data + crc_offset); ++ } ++ } + } + + if (symtab_shndx == 0) + symtab_shndx = dynsym_shndx; +- if (symtab_shndx != 0) ++ if (symtab_shndx != 0 && !debuginfo) + { + const b_elf_shdr *symtab_shdr; + unsigned int strtab_shndx; +@@ -761,6 +1253,7 @@ elf_add (struct backtrace_state *state, + /* We no longer need the symbol table, but we hold on to the + string table permanently. */ + backtrace_release_view (state, &symtab_view, error_callback, data); ++ symtab_view_valid = 0; + + *found_sym = 1; + +@@ -774,6 +1267,53 @@ elf_add (struct backtrace_state *state, + backtrace_release_view (state, &names_view, error_callback, data); + names_view_valid = 0; + ++ /* If the debug info is in a separate file, read that one instead. */ ++ ++ if (buildid_data != NULL) ++ { ++ int d; ++ ++ d = elf_open_debugfile_by_buildid (state, buildid_data, buildid_size, ++ error_callback, data); ++ if (d >= 0) ++ { ++ backtrace_release_view (state, &buildid_view, error_callback, data); ++ if (debuglink_view_valid) ++ backtrace_release_view (state, &debuglink_view, error_callback, ++ data); ++ return elf_add (state, NULL, d, base_address, error_callback, data, ++ fileline_fn, found_sym, found_dwarf, 0, 1); ++ } ++ } ++ ++ if (buildid_view_valid) ++ { ++ backtrace_release_view (state, &buildid_view, error_callback, data); ++ buildid_view_valid = 0; ++ } ++ ++ if (debuglink_name != NULL) ++ { ++ int d; ++ ++ d = elf_open_debugfile_by_debuglink (state, filename, debuglink_name, ++ debuglink_crc, error_callback, ++ data); ++ if (d >= 0) ++ { ++ backtrace_release_view (state, &debuglink_view, error_callback, ++ data); ++ return elf_add (state, NULL, d, base_address, error_callback, data, ++ fileline_fn, found_sym, found_dwarf, 0, 1); ++ } ++ } ++ ++ if (debuglink_view_valid) ++ { ++ backtrace_release_view (state, &debuglink_view, error_callback, data); ++ debuglink_view_valid = 0; ++ } ++ + /* Read all the debug sections in a single view, since they are + probably adjacent in the file. We never release this view. */ + +@@ -846,6 +1386,10 @@ elf_add (struct backtrace_state *state, + backtrace_release_view (state, &symtab_view, error_callback, data); + if (strtab_view_valid) + backtrace_release_view (state, &strtab_view, error_callback, data); ++ if (debuglink_view_valid) ++ backtrace_release_view (state, &debuglink_view, error_callback, data); ++ if (buildid_view_valid) ++ backtrace_release_view (state, &buildid_view, error_callback, data); + if (debug_view_valid) + backtrace_release_view (state, &debug_view, error_callback, data); + if (descriptor != -1) +@@ -863,6 +1407,7 @@ struct phdr_data + fileline *fileline_fn; + int *found_sym; + int *found_dwarf; ++ const char *exe_filename; + int exe_descriptor; + }; + +@@ -877,6 +1422,7 @@ phdr_callback (struct dl_phdr_info *info + void *pdata) + { + struct phdr_data *pd = (struct phdr_data *) pdata; ++ const char *filename; + int descriptor; + int does_not_exist; + fileline elf_fileline_fn; +@@ -889,6 +1435,7 @@ phdr_callback (struct dl_phdr_info *info + { + if (pd->exe_descriptor == -1) + return 0; ++ filename = pd->exe_filename; + descriptor = pd->exe_descriptor; + pd->exe_descriptor = -1; + } +@@ -900,14 +1447,16 @@ phdr_callback (struct dl_phdr_info *info + pd->exe_descriptor = -1; + } + ++ filename = info->dlpi_name; + descriptor = backtrace_open (info->dlpi_name, pd->error_callback, + pd->data, &does_not_exist); + if (descriptor < 0) + return 0; + } + +- if (elf_add (pd->state, descriptor, info->dlpi_addr, pd->error_callback, +- pd->data, &elf_fileline_fn, pd->found_sym, &found_dwarf, 0)) ++ if (elf_add (pd->state, filename, descriptor, info->dlpi_addr, ++ pd->error_callback, pd->data, &elf_fileline_fn, pd->found_sym, ++ &found_dwarf, 0, 0)) + { + if (found_dwarf) + { +@@ -924,8 +1473,8 @@ phdr_callback (struct dl_phdr_info *info + sections. */ + + int +-backtrace_initialize (struct backtrace_state *state, int descriptor, +- backtrace_error_callback error_callback, ++backtrace_initialize (struct backtrace_state *state, const char *filename, ++ int descriptor, backtrace_error_callback error_callback, + void *data, fileline *fileline_fn) + { + int ret; +@@ -934,8 +1483,8 @@ backtrace_initialize (struct backtrace_s + fileline elf_fileline_fn = elf_nodebug; + struct phdr_data pd; + +- ret = elf_add (state, descriptor, 0, error_callback, data, &elf_fileline_fn, +- &found_sym, &found_dwarf, 1); ++ ret = elf_add (state, filename, descriptor, 0, error_callback, data, ++ &elf_fileline_fn, &found_sym, &found_dwarf, 1, 0); + if (!ret) + return 0; + +@@ -945,6 +1494,7 @@ backtrace_initialize (struct backtrace_s + pd.fileline_fn = &elf_fileline_fn; + pd.found_sym = &found_sym; + pd.found_dwarf = &found_dwarf; ++ pd.exe_filename = filename; + pd.exe_descriptor = ret < 0 ? descriptor : -1; + + dl_iterate_phdr (phdr_callback, (void *) &pd); +Index: b/src/libbacktrace/fileline.c +=================================================================== +--- a/src/libbacktrace/fileline.c ++++ b/src/libbacktrace/fileline.c +@@ -57,6 +57,7 @@ fileline_initialize (struct backtrace_st + int pass; + int called_error_callback; + int descriptor; ++ const char *filename; + + if (!state->threaded) + failed = state->fileline_initialization_failed; +@@ -82,7 +83,6 @@ fileline_initialize (struct backtrace_st + called_error_callback = 0; + for (pass = 0; pass < 4; ++pass) + { +- const char *filename; + int does_not_exist; + + switch (pass) +@@ -133,8 +133,8 @@ fileline_initialize (struct backtrace_st + + if (!failed) + { +- if (!backtrace_initialize (state, descriptor, error_callback, data, +- &fileline_fn)) ++ if (!backtrace_initialize (state, filename, descriptor, error_callback, ++ data, &fileline_fn)) + failed = 1; + } + +Index: b/src/libbacktrace/internal.h +=================================================================== +--- a/src/libbacktrace/internal.h ++++ b/src/libbacktrace/internal.h +@@ -268,6 +268,7 @@ extern int backtrace_vector_release (str + appropriate one. */ + + extern int backtrace_initialize (struct backtrace_state *state, ++ const char *filename, + int descriptor, + backtrace_error_callback error_callback, + void *data, +Index: b/src/libbacktrace/pecoff.c +=================================================================== +--- a/src/libbacktrace/pecoff.c ++++ b/src/libbacktrace/pecoff.c +@@ -890,7 +890,8 @@ coff_add (struct backtrace_state *state, + sections. */ + + int +-backtrace_initialize (struct backtrace_state *state, int descriptor, ++backtrace_initialize (struct backtrace_state *state, ++ const char *filename ATTRIBUTE_UNUSED, int descriptor, + backtrace_error_callback error_callback, + void *data, fileline *fileline_fn) + { +Index: b/src/libbacktrace/unknown.c +=================================================================== +--- a/src/libbacktrace/unknown.c ++++ b/src/libbacktrace/unknown.c +@@ -54,6 +54,7 @@ unknown_fileline (struct backtrace_state + + int + backtrace_initialize (struct backtrace_state *state ATTRIBUTE_UNUSED, ++ const char *filename ATTRIBUTE_UNUSED, + int descriptor ATTRIBUTE_UNUSED, + backtrace_error_callback error_callback ATTRIBUTE_UNUSED, + void *data ATTRIBUTE_UNUSED, fileline *fileline_fn) --- gcc-7-7.5.0.orig/debian/patches/pr81356.diff +++ gcc-7-7.5.0/debian/patches/pr81356.diff @@ -0,0 +1,59 @@ +# DP: Fix PR target/81356 (AArch64) +# DP: Avoid memory access w/ __builtin_strcpy of empty string. + +--- a/src/gcc/config/aarch64/aarch64.c ++++ b/src/gcc/config/aarch64/aarch64.c +@@ -13627,22 +13627,6 @@ aarch64_asan_shadow_offset (void) + return (HOST_WIDE_INT_1 << 36); + } + +-static bool +-aarch64_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT size, +- unsigned int align, +- enum by_pieces_operation op, +- bool speed_p) +-{ +- /* STORE_BY_PIECES can be used when copying a constant string, but +- in that case each 64-bit chunk takes 5 insns instead of 2 (LDR/STR). +- For now we always fail this and let the move_by_pieces code copy +- the string from read-only memory. */ +- if (op == STORE_BY_PIECES) +- return false; +- +- return default_use_by_pieces_infrastructure_p (size, align, op, speed_p); +-} +- + static rtx + aarch64_gen_ccmp_first (rtx_insn **prep_seq, rtx_insn **gen_seq, + int code, tree treeop0, tree treeop1) +@@ -15082,10 +15066,6 @@ aarch64_libgcc_floating_mode_supported_p + #undef TARGET_LEGITIMIZE_ADDRESS + #define TARGET_LEGITIMIZE_ADDRESS aarch64_legitimize_address + +-#undef TARGET_USE_BY_PIECES_INFRASTRUCTURE_P +-#define TARGET_USE_BY_PIECES_INFRASTRUCTURE_P \ +- aarch64_use_by_pieces_infrastructure_p +- + #undef TARGET_SCHED_CAN_SPECULATE_INSN + #define TARGET_SCHED_CAN_SPECULATE_INSN aarch64_sched_can_speculate_insn + +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/pr81356.c +@@ -0,0 +1,9 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++void f(char *a) ++{ ++ __builtin_strcpy (a, ""); ++} ++ ++/* { dg-final { scan-assembler-not "ldrb" } } */ +--- a/src/gcc/testsuite/gfortran.dg/pr45636.f90 ++++ b/src/gcc/testsuite/gfortran.dg/pr45636.f90 +@@ -12,4 +12,4 @@ program main + end program main + ! This test will fail on targets which prefer memcpy/memset over + ! move_by_pieces/store_by_pieces. +-! { dg-final { scan-tree-dump-times "memset" 0 "forwprop2" { xfail { { hppa*-*-* && { ! lp64 } } || { { mips*-*-* && { ! nomips16 } } || { aarch64*-*-* } } } } } } ++! { dg-final { scan-tree-dump-times "memset" 0 "forwprop2" { xfail { { hppa*-*-* && { ! lp64 } } || { mips*-*-* && { ! nomips16 } } } } } } --- gcc-7-7.5.0.orig/debian/patches/pr83204.diff +++ gcc-7-7.5.0/debian/patches/pr83204.diff @@ -0,0 +1,59 @@ +# DP: Fix PR c++/83204, taken from the trunk + +gcc/cp/ + +2018-02-08 Paolo Carlini + + PR c++/83204 + * pt.c (tsubst_copy_and_build): Use force_paren_expr for INDIRECT_REF. + +gcc/testsuite/ + +2018-02-08 Paolo Carlini + + PR c++/83204 + * g++.dg/cpp0x/lambda/lambda-ice25.C: New. + +--- /dev/null ++++ b/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice25.C +@@ -0,0 +1,27 @@ ++// PR c++/83204 ++// { dg-do compile { target c++11 } } ++ ++int rand(); ++ ++template ++struct s ++{ ++ int count() { return rand(); } ++}; ++ ++template ++void f(s a) ++{ ++ int const x = a.count(); ++ int r = 0; ++ auto l = [&](int& r) ++ { ++ for(int y = 0, yend = (x); y < yend; ++y) ++ { ++ r += y; ++ } ++ }; ++ l(r); ++} ++ ++template void f(s); +--- a/src/gcc/cp/pt.c ++++ b/src/gcc/cp/pt.c +@@ -16842,8 +16842,8 @@ tsubst_copy_and_build (tree t, + r = build_x_indirect_ref (input_location, r, RO_UNARY_STAR, + complain|decltype_flag); + +- if (TREE_CODE (r) == INDIRECT_REF) +- REF_PARENTHESIZED_P (r) = REF_PARENTHESIZED_P (t); ++ if (REF_PARENTHESIZED_P (t)) ++ r = force_paren_expr (r); + + RETURN (r); + } --- gcc-7-7.5.0.orig/debian/patches/pr84475.diff +++ gcc-7-7.5.0/debian/patches/pr84475.diff @@ -0,0 +1,21 @@ +# DP: Fix PR target/84475, taken from the trunk + +gcc/ + +2018-02-13 Andreas Schwab + + * config/riscv/linux.h (CPP_SPEC): Define. + +Index: b/src/gcc/config/riscv/linux.h +=================================================================== +--- a/src/gcc/config/riscv/linux.h ++++ b/src/gcc/config/riscv/linux.h +@@ -47,6 +47,8 @@ along with GCC; see the file COPYING3. + + #define ICACHE_FLUSH_FUNC "__riscv_flush_icache" + ++#define CPP_SPEC "%{pthread:-D_REENTRANT}" ++ + #define LINK_SPEC "\ + -hash-style=gnu \ + -melf" XLEN_SPEC "lriscv \ --- gcc-7-7.5.0.orig/debian/patches/pr87808.diff +++ gcc-7-7.5.0/debian/patches/pr87808.diff @@ -0,0 +1,61 @@ +# DP: Fix PR jit/87808. + + * Make-lang.in (CFLAGS-jit/jit-playback.o): Pass fallback + GCC_EXEC_PREFIX. + * jit-playback.c (invoke_embedded_driver): Use fallback GCC_EXEC_PREFIX + when external driver is not present. + +--- a/src/gcc/jit/Make-lang.in ++++ b/src/gcc/jit/Make-lang.in +@@ -71,6 +71,9 @@ jit_OBJS = attribs.o \ + jit/jit-spec.o \ + gcc.o + ++CFLAGS-jit/jit-playback.o += \ ++ -DFALLBACK_GCC_EXEC_PREFIX=\"$(libdir)/gcc/$(target_subdir)/$(version)\" ++ + # Use strict warnings for this front end. + jit-warn = $(STRICT_WARN) + +--- a/src/gcc/jit/jit-playback.c ++++ b/src/gcc/jit/jit-playback.c +@@ -38,6 +38,7 @@ along with GCC; see the file COPYING3. + #include "fold-const.h" + #include "gcc.h" + #include "diagnostic.h" ++#include "file-find.h" + + #include + +@@ -2453,7 +2454,31 @@ void + playback::context:: + invoke_embedded_driver (const vec *argvec) + { ++ static char* gcc_driver_file = NULL; ++ + JIT_LOG_SCOPE (get_logger ()); ++ ++ /* process_command() uses make_relative_prefix(), searches PATH ++ for the external driver, which might not be found. In this case ++ fall back to the configured default. */ ++#ifdef FALLBACK_GCC_EXEC_PREFIX ++ if (gcc_driver_file == NULL && ::getenv ("GCC_EXEC_PREFIX") == NULL) ++ { ++ struct path_prefix path; ++ ++ prefix_from_env ("PATH", &path); ++ gcc_driver_file = find_a_file (&path, gcc_driver_name, X_OK); ++ if (gcc_driver_file == NULL) ++ { ++ char *str = concat ("GCC_EXEC_PREFIX=", ++ FALLBACK_GCC_EXEC_PREFIX, NULL); ++ ::putenv (str); ++ log ("gcc driver %s not found, using fallback GCC_EXEC_PREFIX=%s", ++ gcc_driver_name, FALLBACK_GCC_EXEC_PREFIX); ++ } ++ } ++#endif ++ + driver d (true, /* can_finalize */ + false); /* debug */ + int result = d.main (argvec->length (), --- gcc-7-7.5.0.orig/debian/patches/rename-info-files.diff +++ gcc-7-7.5.0/debian/patches/rename-info-files.diff @@ -0,0 +1,710 @@ +# DP: Allow transformations on info file names. Reference the +# DP: transformed info file names in the texinfo files. + + +2004-02-17 Matthias Klose + +gcc/ChangeLog: + * Makefile.in: Allow transformations on info file names. + Define MAKEINFODEFS, macros to pass transformated info file + names to makeinfo. + * doc/cpp.texi: Use macros defined in MAKEINFODEFS for references. + * doc/cppinternals.texi: Likewise. + * doc/extend.texi: Likewise. + * doc/gcc.texi: Likewise. + * doc/gccint.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/libgcc.texi: Likewise. + * doc/makefile.texi: Likewise. + * doc/passes.texi: Likewise. + * doc/sourcebuild.texi: Likewise. + * doc/standards.texi: Likewise. + * doc/trouble.texi: Likewise. + +gcc/fortran/ChangeLog: + * Make-lang.in: Allow transformations on info file names. + Pass macros of transformated info file defined in MAKEINFODEFS + names to makeinfo. + * gfortran.texi: Use macros defined in MAKEINFODEFS for references. + +Index: b/src/gcc/fortran/gfortran.texi +=================================================================== +--- a/src/gcc/fortran/gfortran.texi ++++ b/src/gcc/fortran/gfortran.texi +@@ -101,7 +101,7 @@ Texts being (a) (see below), and with th + @ifinfo + @dircategory Software development + @direntry +-* gfortran: (gfortran). The GNU Fortran Compiler. ++* @value{fngfortran}: (@value{fngfortran}). The GNU Fortran Compiler. + @end direntry + This file documents the use and the internals of + the GNU Fortran compiler, (@command{gfortran}). +Index: b/src/gcc/fortran/Make-lang.in +=================================================================== +--- a/src/gcc/fortran/Make-lang.in ++++ b/src/gcc/fortran/Make-lang.in +@@ -114,7 +114,8 @@ fortran.tags: force + cd $(srcdir)/fortran; etags -o TAGS.sub *.c *.h; \ + etags --include TAGS.sub --include ../TAGS.sub + +-fortran.info: doc/gfortran.info doc/gfc-internals.info ++INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)') ++fortran.info: doc/$(INFO_FORTRAN_NAME).info + fortran.dvi: doc/gfortran.dvi doc/gfc-internals.dvi + + F95_HTMLFILES = $(build_htmldir)/gfortran +@@ -181,10 +182,10 @@ GFORTRAN_TEXI = \ + $(srcdir)/doc/include/gcc-common.texi \ + gcc-vers.texi + +-doc/gfortran.info: $(GFORTRAN_TEXI) ++doc/$(INFO_FORTRAN_NAME).info: $(GFORTRAN_TEXI) + if [ x$(BUILD_INFO) = xinfo ]; then \ + rm -f doc/gfortran.info-*; \ +- $(MAKEINFO) -I $(srcdir)/doc/include -I $(srcdir)/fortran \ ++ $(MAKEINFO) $(MAKEINFODEFS) -I $(srcdir)/doc/include -I $(srcdir)/fortran \ + -o $@ $<; \ + else true; fi + +@@ -249,7 +250,7 @@ fortran.install-common: install-finclude + + fortran.install-plugin: + +-fortran.install-info: $(DESTDIR)$(infodir)/gfortran.info ++fortran.install-info: $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info + + fortran.install-man: $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext) + +@@ -267,7 +268,7 @@ fortran.uninstall: + rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_INSTALL_NAME)$(exeext); \ + rm -rf $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext); \ + rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_TARGET_INSTALL_NAME)$(exeext); \ +- rm -rf $(DESTDIR)$(infodir)/gfortran.info* ++ rm -rf $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info* + + # + # Clean hooks: +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -3060,8 +3060,31 @@ install-no-fixedincludes: + + doc: $(BUILD_INFO) $(GENERATED_MANPAGES) + +-INFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \ +- doc/gccinstall.info doc/cppinternals.info ++INFO_CPP_NAME = $(shell echo cpp|sed '$(program_transform_name)') ++INFO_GCC_NAME = $(shell echo gcc|sed '$(program_transform_name)') ++INFO_GXX_NAME = $(shell echo g++|sed '$(program_transform_name)') ++INFO_GCCINT_NAME = $(shell echo gccint|sed '$(program_transform_name)') ++INFO_GCCINSTALL_NAME = $(shell echo gccinstall|sed '$(program_transform_name)') ++INFO_CPPINT_NAME = $(shell echo cppinternals|sed '$(program_transform_name)') ++ ++INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)') ++INFO_GCCGO_NAME = $(shell echo gccgo|sed '$(program_transform_name)') ++ ++INFOFILES = doc/$(INFO_CPP_NAME).info doc/$(INFO_GCC_NAME).info \ ++ doc/$(INFO_GCCINT_NAME).info \ ++ doc/$(INFO_GCCINSTALL_NAME).info doc/$(INFO_CPPINT_NAME).info ++ ++MAKEINFODEFS = -D 'fncpp $(INFO_CPP_NAME)' \ ++ -D 'fngcc $(INFO_GCC_NAME)' \ ++ -D 'fngcov $(INFO_GCC_NAME)' \ ++ -D 'fngcovtool $(INFO_GCC_NAME)' \ ++ -D 'fngcovdump $(INFO_GCC_NAME)' \ ++ -D 'fngxx $(INFO_GXX_NAME)' \ ++ -D 'fngccint $(INFO_GCCINT_NAME)' \ ++ -D 'fngccinstall $(INFO_GCCINSTALL_NAME)' \ ++ -D 'fncppint $(INFO_CPPINT_NAME)' \ ++ -D 'fngfortran $(INFO_FORTRAN_NAME)' \ ++ -D 'fngccgo $(INFO_GCCGO_NAME)' + + info: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo + +@@ -3108,7 +3131,20 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE) + if [ -n "$(PKGVERSION)" ]; then \ + echo "@set VERSION_PACKAGE $(PKGVERSION)" >> $@T; \ + fi +- echo "@set BUGURL $(BUGURL_TEXI)" >> $@T; \ ++ echo "@set BUGURL $(BUGURL_TEXI)" >> $@T ++ ( \ ++ echo '@set fncpp $(INFO_CPP_NAME)'; \ ++ echo '@set fngcc $(INFO_GCC_NAME)'; \ ++ echo '@set fngcov $(INFO_GCC_NAME)'; \ ++ echo '@set fngcovtool $(INFO_GCC_NAME)'; \ ++ echo '@set fngcovdump $(INFO_GCC_NAME)'; \ ++ echo '@set fngxx $(INFO_GXX_NAME)'; \ ++ echo '@set fngccint $(INFO_GCCINT_NAME)'; \ ++ echo '@set fngccinstall $(INFO_GCCINSTALL_NAME)'; \ ++ echo '@set fncppint $(INFO_CPPINT_NAME)'; \ ++ echo '@set fngfortran $(INFO_FORTRAN_NAME)'; \ ++ echo '@set fngccgo $(INFO_GCCGO_NAME)'; \ ++ ) >> $@T + mv -f $@T $@ + + +@@ -3116,21 +3152,41 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE) + # patterns. To use them, put each of the specific targets with its + # specific dependencies but no build commands. + +-doc/cpp.info: $(TEXI_CPP_FILES) +-doc/gcc.info: $(TEXI_GCC_FILES) +-doc/gccint.info: $(TEXI_GCCINT_FILES) +-doc/cppinternals.info: $(TEXI_CPPINT_FILES) +- ++# Generic entry to handle info files, which are not renamed (currently Ada) + doc/%.info: %.texi + if [ x$(BUILD_INFO) = xinfo ]; then \ + $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \ + -I $(gcc_docdir)/include -o $@ $<; \ + fi + ++doc/$(INFO_CPP_NAME).info: $(TEXI_CPP_FILES) ++ if [ x$(BUILD_INFO) = xinfo ]; then \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \ ++ -I $(gcc_docdir)/include -o $@ $<; \ ++ fi ++ ++doc/$(INFO_GCC_NAME).info: $(TEXI_GCC_FILES) ++ if [ x$(BUILD_INFO) = xinfo ]; then \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \ ++ -I $(gcc_docdir)/include -o $@ $<; \ ++ fi ++ ++doc/$(INFO_GCCINT_NAME).info: $(TEXI_GCCINT_FILES) ++ if [ x$(BUILD_INFO) = xinfo ]; then \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \ ++ -I $(gcc_docdir)/include -o $@ $<; \ ++ fi ++ ++doc/$(INFO_CPPINT_NAME).info: $(TEXI_CPPINT_FILES) ++ if [ x$(BUILD_INFO) = xinfo ]; then \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \ ++ -I $(gcc_docdir)/include -o $@ $<; \ ++ fi ++ + # Duplicate entry to handle renaming of gccinstall.info +-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES) ++doc/$(INFO_GCCINSTALL_NAME).info: $(TEXI_GCCINSTALL_FILES) + if [ x$(BUILD_INFO) = xinfo ]; then \ +- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \ + -I $(gcc_docdir)/include -o $@ $<; \ + fi + +@@ -3549,11 +3605,11 @@ install-driver: installdirs xgcc$(exeext + # $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir + # to do the install. + install-info:: doc installdirs \ +- $(DESTDIR)$(infodir)/cpp.info \ +- $(DESTDIR)$(infodir)/gcc.info \ +- $(DESTDIR)$(infodir)/cppinternals.info \ +- $(DESTDIR)$(infodir)/gccinstall.info \ +- $(DESTDIR)$(infodir)/gccint.info \ ++ $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info \ ++ $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info \ ++ $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info \ ++ $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info \ ++ $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info \ + lang.install-info + + $(DESTDIR)$(infodir)/%.info: doc/%.info installdirs +@@ -3774,8 +3830,11 @@ uninstall: lang.uninstall + -rm -rf $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext) + -rm -rf $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext) + -rm -rf $(DESTDIR)$(man1dir)/cpp$(man1ext) +- -rm -f $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info* +- -rm -f $(DESTDIR)$(infodir)/cppinternals.info* $(DESTDIR)$(infodir)/gccint.info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info* + for i in ar nm ranlib ; do \ + install_name=`echo gcc-$$i|sed '$(program_transform_name)'`$(exeext) ;\ + target_install_name=$(target_noncanonical)-`echo gcc-$$i|sed '$(program_transform_name)'`$(exeext) ; \ +Index: b/src/gcc/ada/gnat-style.texi +=================================================================== +--- a/src/gcc/ada/gnat-style.texi ++++ b/src/gcc/ada/gnat-style.texi +@@ -31,7 +31,7 @@ Texts. A copy of the license is include + + @dircategory Software development + @direntry +-* gnat-style: (gnat-style). GNAT Coding Style ++* gnat-style: (gnat-style-6). GNAT Coding Style + @end direntry + + @macro syntax{element} +Index: b/src/gcc/ada/gnat_rm.texi +=================================================================== +--- a/src/gcc/ada/gnat_rm.texi ++++ b/src/gcc/ada/gnat_rm.texi +@@ -12,7 +12,7 @@ + @finalout + @dircategory GNU Ada Tools + @direntry +-* gnat_rm: (gnat_rm.info). gnat_rm ++* GNAT Reference Manual: (gnat_rm-6). Reference Manual for GNU Ada tools. + @end direntry + + @definfoenclose strong,`,' +Index: b/src/gcc/doc/invoke.texi +=================================================================== +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -11612,7 +11612,7 @@ One of the standard libraries bypassed b + @option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines + which GCC uses to overcome shortcomings of particular machines, or special + needs for some languages. +-(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler ++(@xref{Interface,,Interfacing to GCC Output,@value{fngccint},GNU Compiler + Collection (GCC) Internals}, + for more discussion of @file{libgcc.a}.) + In most cases, you need @file{libgcc.a} even when you want to avoid +@@ -11621,7 +11621,7 @@ or @option{-nodefaultlibs} you should us + This ensures that you have no unresolved references to internal GCC + library subroutines. + (An example of such an internal subroutine is @code{__main}, used to ensure C++ +-constructors are called; @pxref{Collect2,,@code{collect2}, gccint, ++constructors are called; @pxref{Collect2,,@code{collect2}, @value{fngccint}, + GNU Compiler Collection (GCC) Internals}.) + + @item -pie +@@ -26626,7 +26626,7 @@ Note that you can also specify places to + @option{-B}, @option{-I} and @option{-L} (@pxref{Directory Options}). These + take precedence over places specified using environment variables, which + in turn take precedence over those specified by the configuration of GCC@. +-@xref{Driver,, Controlling the Compilation Driver @file{gcc}, gccint, ++@xref{Driver,, Controlling the Compilation Driver @file{gcc}, @value{fngccint}, + GNU Compiler Collection (GCC) Internals}. + + @table @env +@@ -26786,7 +26786,7 @@ the headers it contains change. + + A precompiled header file is searched for when @code{#include} is + seen in the compilation. As it searches for the included file +-(@pxref{Search Path,,Search Path,cpp,The C Preprocessor}) the ++(@pxref{Search Path,,Search Path,@value{fncpp},The C Preprocessor}) the + compiler looks for a precompiled header in each directory just before it + looks for the include file in that directory. The name searched for is + the name specified in the @code{#include} with @samp{.gch} appended. If +Index: b/src/gcc/doc/extend.texi +=================================================================== +--- a/src/gcc/doc/extend.texi ++++ b/src/gcc/doc/extend.texi +@@ -21890,7 +21890,7 @@ want to write code that checks whether t + test for the GNU compiler the same way as for C programs: check for a + predefined macro @code{__GNUC__}. You can also use @code{__GNUG__} to + test specifically for GNU C++ (@pxref{Common Predefined Macros,, +-Predefined Macros,cpp,The GNU C Preprocessor}). ++Predefined Macros,@value{fncpp},The GNU C Preprocessor}). + + @menu + * C++ Volatiles:: What constitutes an access to a volatile object. +Index: b/src/gcc/doc/standards.texi +=================================================================== +--- a/src/gcc/doc/standards.texi ++++ b/src/gcc/doc/standards.texi +@@ -315,5 +315,5 @@ freely available at @uref{http://www.hsa + GNAT Reference Manual}, for information on standard + conformance and compatibility of the Ada compiler. + +-@xref{Standards,,Standards, gfortran, The GNU Fortran Compiler}, for details ++@xref{Standards,,Standards, @value{fngfortran}, The GNU Fortran Compiler}, for details + of standards supported by GNU Fortran. +Index: b/src/gcc/doc/libgcc.texi +=================================================================== +--- a/src/gcc/doc/libgcc.texi ++++ b/src/gcc/doc/libgcc.texi +@@ -24,7 +24,7 @@ that needs them. + GCC will also generate calls to C library routines, such as + @code{memcpy} and @code{memset}, in some cases. The set of routines + that GCC may possibly use is documented in @ref{Other +-Builtins,,,gcc, Using the GNU Compiler Collection (GCC)}. ++Builtins,,,@value{fngcc}, Using the GNU Compiler Collection (GCC)}. + + These routines take arguments and return values of a specific machine + mode, not a specific C type. @xref{Machine Modes}, for an explanation +Index: b/src/gcc/doc/gccint.texi +=================================================================== +--- a/src/gcc/doc/gccint.texi ++++ b/src/gcc/doc/gccint.texi +@@ -49,7 +49,7 @@ Texts being (a) (see below), and with th + @ifnottex + @dircategory Software development + @direntry +-* gccint: (gccint). Internals of the GNU Compiler Collection. ++* @value{fngccint}: (@value{fngccint}). Internals of the GNU Compiler Collection. + @end direntry + This file documents the internals of the GNU compilers. + @sp 1 +@@ -81,7 +81,7 @@ write front ends for new languages. It + @value{VERSION_PACKAGE} + @end ifset + version @value{version-GCC}. The use of the GNU compilers is documented in a +-separate manual. @xref{Top,, Introduction, gcc, Using the GNU ++separate manual. @xref{Top,, Introduction, @value{fngcc}, Using the GNU + Compiler Collection (GCC)}. + + This manual is mainly a reference manual rather than a tutorial. It +Index: b/src/gcc/doc/cpp.texi +=================================================================== +--- a/src/gcc/doc/cpp.texi ++++ b/src/gcc/doc/cpp.texi +@@ -50,7 +50,7 @@ This manual contains no Invariant Sectio + @ifinfo + @dircategory Software development + @direntry +-* Cpp: (cpp). The GNU C preprocessor. ++* @value{fncpp}: (@value{fncpp}). The GNU C preprocessor. + @end direntry + @end ifinfo + +Index: b/src/gcc/doc/gcc.texi +=================================================================== +--- a/src/gcc/doc/gcc.texi ++++ b/src/gcc/doc/gcc.texi +@@ -127,7 +127,7 @@ version @value{version-GCC}. + The internals of the GNU compilers, including how to port them to new + targets and some information about how to write front ends for new + languages, are documented in a separate manual. @xref{Top,, +-Introduction, gccint, GNU Compiler Collection (GCC) Internals}. ++Introduction, @value{fngccint}, GNU Compiler Collection (GCC) Internals}. + + @menu + * G++ and GCC:: You can compile C or C++ programs. +Index: b/src/gcc/doc/install.texi +=================================================================== +--- a/src/gcc/doc/install.texi ++++ b/src/gcc/doc/install.texi +@@ -94,7 +94,7 @@ Free Documentation License}''. + @end ifinfo + @dircategory Software development + @direntry +-* gccinstall: (gccinstall). Installing the GNU Compiler Collection. ++* @value{fngccinstall}: (@value{fngccinstall}). Installing the GNU Compiler Collection. + @end direntry + + @c Part 3 Titlepage and Copyright +Index: b/src/gcc/doc/cppinternals.texi +=================================================================== +--- a/src/gcc/doc/cppinternals.texi ++++ b/src/gcc/doc/cppinternals.texi +@@ -7,7 +7,7 @@ + @ifinfo + @dircategory Software development + @direntry +-* Cpplib: (cppinternals). Cpplib internals. ++* @value{fncppint}: (@value{fncppint}). Cpplib internals. + @end direntry + @end ifinfo + +Index: b/src/libgomp/libgomp.texi +=================================================================== +--- a/src/libgomp/libgomp.texi ++++ b/src/libgomp/libgomp.texi +@@ -31,7 +31,7 @@ texts being (a) (see below), and with th + @ifinfo + @dircategory GNU Libraries + @direntry +-* libgomp: (libgomp). GNU Offloading and Multi Processing Runtime Library. ++* @value{fnlibgomp}: (@value{fnlibgomp}). GNU Offloading and Multi Processing Runtime Library. + @end direntry + + This manual documents libgomp, the GNU Offloading and Multi Processing +Index: b/src/libgomp/Makefile.in +=================================================================== +--- a/src/libgomp/Makefile.in ++++ b/src/libgomp/Makefile.in +@@ -487,7 +487,8 @@ info_TEXINFOS = libgomp.texi + + # AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO]) + @BUILD_INFO_TRUE@STAMP_BUILD_INFO = stamp-build-info +-CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libgomp.info ++INFO_LIBGOMP_NAME = $(shell echo libgomp|sed '$(program_transform_name)') ++CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) $(INFO_LIBGOMP_NAME).info + MAINTAINERCLEANFILES = $(srcdir)/libgomp.info + all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive +@@ -1302,15 +1303,16 @@ env.lo: libgomp_f.h + env.o: libgomp_f.h + + all-local: $(STAMP_GENINSRC) +- +-stamp-geninsrc: libgomp.info +- cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info ++stamp-geninsrc: $(INFO_LIBGOMP_NAME).info ++ cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info + @touch $@ + +-libgomp.info: $(STAMP_BUILD_INFO) ++libgomp.info: $(INFO_LIBGOMP_NAME).info ++ [ "$(INFO_LIBGOMP_NAME).info" = libgomp.info ] || cp $(INFO_LIBGOMP_NAME).info libgomp.info ++$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO) + + stamp-build-info: libgomp.texi +- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libgomp.info $(srcdir)/libgomp.texi ++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp $(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.texi + @touch $@ + + # Tell versions [3.59,3.63) of GNU make to not export all variables. +Index: b/src/libgomp/Makefile.am +=================================================================== +--- a/src/libgomp/Makefile.am ++++ b/src/libgomp/Makefile.am +@@ -125,16 +125,19 @@ endif + + all-local: $(STAMP_GENINSRC) + +-stamp-geninsrc: libgomp.info +- cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info ++INFO_LIBGOMP_NAME = $(shell echo libgomp|sed '$(program_transform_name)') ++stamp-geninsrc: $(INFO_LIBGOMP_NAME).info ++ cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info + @touch $@ + +-libgomp.info: $(STAMP_BUILD_INFO) ++libgomp.info: $(INFO_LIBGOMP_NAME).info ++ cp $(INFO_LIBGOMP_NAME).info libgomp.info ++$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO) + + stamp-build-info: libgomp.texi +- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libgomp.info $(srcdir)/libgomp.texi ++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp $(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.texi + @touch $@ + + +-CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libgomp.info ++CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) $(INFO_LIBGOMP_NAME).info + MAINTAINERCLEANFILES = $(srcdir)/libgomp.info +Index: b/src/libitm/libitm.texi +=================================================================== +--- a/src/libitm/libitm.texi ++++ b/src/libitm/libitm.texi +@@ -20,7 +20,7 @@ Free Documentation License''. + @ifinfo + @dircategory GNU Libraries + @direntry +-* libitm: (libitm). GNU Transactional Memory Library ++* @value{fnlibitm}: (@value{fnlibitm}). GNU Transactional Memory Library + @end direntry + + This manual documents the GNU Transactional Memory Library. +Index: b/src/libitm/Makefile.am +=================================================================== +--- a/src/libitm/Makefile.am ++++ b/src/libitm/Makefile.am +@@ -107,14 +107,17 @@ endif + + all-local: $(STAMP_GENINSRC) + +-stamp-geninsrc: libitm.info +- cp -p $(top_builddir)/libitm.info $(srcdir)/libitm.info ++INFO_LIBITM_NAME = $(shell echo libitm|sed '$(program_transform_name)') ++stamp-geninsrc: $(INFO_LIBITM_NAME).info ++ cp -p $(top_builddir)/$(INFO_LIBITM_NAME).info $(srcdir)/libitm.info + @touch $@ + +-libitm.info: $(STAMP_BUILD_INFO) ++libitm.info: $(INFO_LIBITM_NAME).info ++ cp $(INFO_LIBITM_NAME).info libitm.info ++$(INFO_LIBITM_NAME).info: $(STAMP_BUILD_INFO) + + stamp-build-info: libitm.texi +- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libitm.info $(srcdir)/libitm.texi ++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -D 'fnlibitm $(INFO_LIBITM_NAME)'-o $(INFO_LIBITM_NAME).info $(srcdir)/libitm.texi + @touch $@ + + +Index: b/src/libitm/Makefile.in +=================================================================== +--- a/src/libitm/Makefile.in ++++ b/src/libitm/Makefile.in +@@ -1105,14 +1105,17 @@ vpath % $(strip $(search_path)) + + all-local: $(STAMP_GENINSRC) + +-stamp-geninsrc: libitm.info +- cp -p $(top_builddir)/libitm.info $(srcdir)/libitm.info ++INFO_LIBITM_NAME = $(shell echo libitm|sed '$(program_transform_name)') ++stamp-geninsrc: $(INFO_LIBITM_NAME).info ++ cp -p $(top_builddir)/$(INFO_LIBITM_NAME).info $(srcdir)/libitm.info + @touch $@ + +-libitm.info: $(STAMP_BUILD_INFO) ++libitm.info: $(INFO_LIBITM_NAME).info ++ cp $(INFO_LIBITM_NAME).info libitm.info ++$(INFO_LIBITM_NAME).info: $(STAMP_BUILD_INFO) + + stamp-build-info: libitm.texi +- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libitm.info $(srcdir)/libitm.texi ++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -D 'fnlibitm $(INFO_LIBITM_NAME)' -o $(INFO_LIBITM_NAME).info $(srcdir)/libitm.texi + @touch $@ + + # Tell versions [3.59,3.63) of GNU make to not export all variables. +Index: b/src/gcc/go/Make-lang.in +=================================================================== +--- a/src/gcc/go/Make-lang.in ++++ b/src/gcc/go/Make-lang.in +@@ -89,10 +89,11 @@ GO_TEXI_FILES = \ + $(gcc_docdir)/include/gcc-common.texi \ + gcc-vers.texi + +-doc/gccgo.info: $(GO_TEXI_FILES) ++INFO_GCCGO_NAME = $(shell echo gccgo|sed '$(program_transform_name)') ++doc/$(INFO_GCCGO_NAME).info: $(GO_TEXI_FILES) + if test "x$(BUILD_INFO)" = xinfo; then \ +- rm -f doc/gccgo.info*; \ +- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \ ++ rm -f doc/$(INFO_GCCGO_NAME).info*; \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \ + -I $(gcc_docdir)/include -o $@ $<; \ + else true; fi + +@@ -118,7 +119,7 @@ gccgo.pod: go/gccgo.texi + go.all.cross: gccgo-cross$(exeext) + go.start.encap: gccgo$(exeext) + go.rest.encap: +-go.info: doc/gccgo.info ++go.info: doc/$(INFO_GCCGO_NAME).info + go.dvi: doc/gccgo.dvi + go.pdf: doc/gccgo.pdf + go.html: $(build_htmldir)/go/index.html +@@ -154,7 +155,7 @@ go.install-common: installdirs + + go.install-plugin: + +-go.install-info: $(DESTDIR)$(infodir)/gccgo.info ++go.install-info: $(DESTDIR)$(infodir)/$(INFO_GCCGO_NAME).info + + go.install-pdf: doc/gccgo.pdf + @$(NORMAL_INSTALL) +@@ -194,7 +195,7 @@ go.uninstall: + rm -rf $(DESTDIR)$(bindir)/$(GCCGO_INSTALL_NAME)$(exeext) + rm -rf $(DESTDIR)$(man1dir)/$(GCCGO_INSTALL_NAME)$(man1ext) + rm -rf $(DESTDIR)$(bindir)/$(GCCGO_TARGET_INSTALL_NAME)$(exeext) +- rm -rf $(DESTDIR)$(infodir)/gccgo.info* ++ rm -rf $(DESTDIR)$(infodir)/$(INFO_GCCGO_NAME).info* + + # Clean hooks. + +Index: b/src/gcc/go/gccgo.texi +=================================================================== +--- a/src/gcc/go/gccgo.texi ++++ b/src/gcc/go/gccgo.texi +@@ -50,7 +50,7 @@ man page gfdl(7). + @format + @dircategory Software development + @direntry +-* Gccgo: (gccgo). A GCC-based compiler for the Go language ++* @value{fngccgo}: (@value{fngccgo}). A GCC-based compiler for the Go language + @end direntry + @end format + +@@ -124,7 +124,7 @@ and the Info entries for @file{gccgo} an + + The @command{gccgo} command is a frontend to @command{gcc} and + supports many of the same options. @xref{Option Summary, , Option +-Summary, gcc, Using the GNU Compiler Collection (GCC)}. This manual ++Summary, @value{fngcc}, Using the GNU Compiler Collection (GCC)}. This manual + only documents the options specific to @command{gccgo}. + + The @command{gccgo} command may be used to compile Go source code into +Index: b/src/libquadmath/libquadmath.texi +=================================================================== +--- a/src/libquadmath/libquadmath.texi ++++ b/src/libquadmath/libquadmath.texi +@@ -25,7 +25,7 @@ copy and modify this GNU manual. + @ifinfo + @dircategory GNU Libraries + @direntry +-* libquadmath: (libquadmath). GCC Quad-Precision Math Library ++* @value{fnlibquadmath}: (@value{fnlibquadmath}). GCC Quad-Precision Math Library + @end direntry + + This manual documents the GCC Quad-Precision Math Library API. +Index: b/src/libquadmath/Makefile.am +=================================================================== +--- a/src/libquadmath/Makefile.am ++++ b/src/libquadmath/Makefile.am +@@ -133,22 +133,24 @@ endif + + all-local: $(STAMP_GENINSRC) + +-stamp-geninsrc: libquadmath.info +- cp -p $(top_builddir)/libquadmath.info $(srcdir)/libquadmath.info ++INFO_LIBQMATH_NAME = $(shell echo libquadmath|sed '$(program_transform_name)') ++ ++stamp-geninsrc: $(INFO_LIBQMATH_NAME).info ++ cp -p $(top_builddir)/$(INFO_LIBQMATH_NAME).info $(srcdir)/libquadmath.info + @touch $@ + + stamp-build-info: libquadmath.texi $(libquadmath_TEXINFOS) +- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libquadmath.info $(srcdir)/libquadmath.texi ++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o $(INFO_LIBQMATH_NAME).info $(srcdir)/libquadmath.texi + @touch $@ + +-CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libquadmath.info +-MAINTAINERCLEANFILES = $(srcdir)/libquadmath.info ++CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) $(INFO_LIBQMATH_NAME).info ++MAINTAINERCLEANFILES = $(srcdir)/$(INFO_LIBQMATH_NAME).info + + endif BUILD_LIBQUADMATH + + # Unconditionally override this target, so that automake's definition + # does not wrongly interfere. +-libquadmath.info: $(STAMP_BUILD_INFO) ++$(INFO_LIBQMATH_NAME).info: $(STAMP_BUILD_INFO) + + + # Automake Documentation: +Index: b/src/libquadmath/Makefile.in +=================================================================== +--- a/src/libquadmath/Makefile.in ++++ b/src/libquadmath/Makefile.in +@@ -193,7 +193,8 @@ MULTIDIRS = + MULTISUBDIR = + MULTIDO = true + MULTICLEAN = true +-INFO_DEPS = libquadmath.info ++INFO_LIBQMATH_NAME = $(shell echo libquadmath|sed '$(program_transform_name)') ++INFO_DEPS = $(INFO_LIBQMATH_NAME).info + am__TEXINFO_TEX_DIR = $(srcdir)/../gcc/doc/include + DVIS = libquadmath.dvi + PDFS = libquadmath.pdf +@@ -436,8 +437,8 @@ AUTOMAKE_OPTIONS = 1.8 foreign + + # AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO]) + @BUILD_INFO_TRUE@@BUILD_LIBQUADMATH_TRUE@STAMP_BUILD_INFO = stamp-build-info +-@BUILD_LIBQUADMATH_TRUE@CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libquadmath.info +-@BUILD_LIBQUADMATH_TRUE@MAINTAINERCLEANFILES = $(srcdir)/libquadmath.info ++@BUILD_LIBQUADMATH_TRUE@CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) $(INFO_LIBQMATH_NAME).info ++@BUILD_LIBQUADMATH_TRUE@MAINTAINERCLEANFILES = $(srcdir)/$(INFO_LIBQMATH_NAME).info + + # Automake Documentation: + # If your package has Texinfo files in many directories, you can use the +@@ -1518,17 +1519,17 @@ uninstall-am: uninstall-dvi-am uninstall + + @BUILD_LIBQUADMATH_TRUE@all-local: $(STAMP_GENINSRC) + +-@BUILD_LIBQUADMATH_TRUE@stamp-geninsrc: libquadmath.info +-@BUILD_LIBQUADMATH_TRUE@ cp -p $(top_builddir)/libquadmath.info $(srcdir)/libquadmath.info ++@BUILD_LIBQUADMATH_TRUE@stamp-geninsrc: $(INFO_LIBQMATH_NAME).info ++@BUILD_LIBQUADMATH_TRUE@ cp -p $(top_builddir)/$(INFO_LIBQMATH_NAME).info $(srcdir)/$(INFO_LIBQMATH_NAME).info + @BUILD_LIBQUADMATH_TRUE@ @touch $@ + + @BUILD_LIBQUADMATH_TRUE@stamp-build-info: libquadmath.texi $(libquadmath_TEXINFOS) +-@BUILD_LIBQUADMATH_TRUE@ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libquadmath.info $(srcdir)/libquadmath.texi ++@BUILD_LIBQUADMATH_TRUE@ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o $(INFO_LIBQMATH_NAME).info $(srcdir)/libquadmath.texi + @BUILD_LIBQUADMATH_TRUE@ @touch $@ + + # Unconditionally override this target, so that automake's definition + # does not wrongly interfere. +-libquadmath.info: $(STAMP_BUILD_INFO) ++$(INFO_LIBQMATH_NAME).info: $(STAMP_BUILD_INFO) + + libquadmath-vers.texi: + echo "@set BUGURL $(REPORT_BUGS_TEXI)" > $@ --- gcc-7-7.5.0.orig/debian/patches/sh-builtin-trap.diff +++ gcc-7-7.5.0/debian/patches/sh-builtin-trap.diff @@ -0,0 +1,291 @@ +# DP: Proposed patch for PR target/70216, __builtin_trap() on SH + +--- a/src/gcc/config/sh/sh-c.c ++++ b/src/gcc/config/sh/sh-c.c +@@ -139,4 +139,7 @@ sh_cpu_cpp_builtins (cpp_reader* pfile) + + cpp_define_formatted (pfile, "__SH_ATOMIC_MODEL_%s__", + selected_atomic_model ().cdef_name); ++ ++ if (TARGET_SH4_TRAPA_SLEEP_BUG) ++ builtin_define ("__SH4_TRAPA_SLEEP_BUG__"); + } +--- a/src/gcc/config/sh/sh-protos.h ++++ b/src/gcc/config/sh/sh-protos.h +@@ -35,6 +35,46 @@ enum sh_function_kind { + SFUNC_STATIC + }; + ++/* __builtin_trapa handling options. */ ++struct sh_builtin_trap_handler ++{ ++ enum enum_type ++ { ++ none = 0, ++ libcall, ++ trapa, ++ ++ num_handlers ++ }; ++ ++ enum_type type; ++ int trapa_imm_val; ++}; ++ ++extern const sh_builtin_trap_handler& selected_builtin_trap_handler (void); ++ ++#define TARGET_BUILTIN_TRAP_NONE \ ++ (selected_builtin_trap_handler ().type == sh_builtin_trap_handler::none) ++ ++#define TARGET_BUILTIN_TRAP_TRAPA \ ++ (selected_builtin_trap_handler ().type == sh_builtin_trap_handler::trapa) ++ ++#define TARGET_BUILTIN_TRAP_TRAPA_VAL_RTX \ ++ GEN_INT (selected_builtin_trap_handler ().trapa_imm_val) ++ ++#define TARGET_BUILTIN_TRAP_LIBCALL \ ++ (selected_builtin_trap_handler ().type == sh_builtin_trap_handler::libcall) ++ ++#ifdef SH4_TRAPA_SLEEP_BUG_DEFAULT ++#define TARGET_SH4_TRAPA_SLEEP_BUG \ ++ (sh4_trapa_sleep_bug_option == -1 ? (SH4_TRAPA_SLEEP_BUG_DEFAULT != 0) \ ++ : (sh4_trapa_sleep_bug_option != 0)) ++#else ++#define TARGET_SH4_TRAPA_SLEEP_BUG \ ++ ((sh4_trapa_sleep_bug_option == -1 && TARGET_SH4 && !TARGET_SH4A) \ ++ || sh4_trapa_sleep_bug_option == 1) ++#endif ++ + #ifdef RTX_CODE + extern rtx sh_fsca_sf2int (void); + extern rtx sh_fsca_int2sf (void); +--- a/src/gcc/config/sh/sh.c ++++ b/src/gcc/config/sh/sh.c +@@ -752,6 +752,102 @@ got_mode_name:; + #undef err_ret + } + ++/* Information on the currently selected __builtin_trap handler. */ ++static sh_builtin_trap_handler selected_builtin_trap_handler_; ++ ++const sh_builtin_trap_handler& ++selected_builtin_trap_handler (void) ++{ ++ return selected_builtin_trap_handler_; ++} ++ ++static sh_builtin_trap_handler ++parse_validate_builtin_trap_option (const char* str) ++{ ++ const char* names[sh_builtin_trap_handler::num_handlers]; ++ names[sh_builtin_trap_handler::none] = "none"; ++ names[sh_builtin_trap_handler::libcall] = "libcall"; ++ names[sh_builtin_trap_handler::trapa] = "trapa"; ++ ++ sh_builtin_trap_handler ret; ++ ++ #if defined (SH_BUILTIN_TRAP_DEFAULT_TRAPA) ++ #if SH_BUILTIN_TRAP_DEFAULT_TRAPA < 0 || SH_BUILTIN_TRAP_DEFAULT_TRAPA > 255 ++ #error default builtin trap trapa handler value out of range ++ #endif ++ ret.type = sh_builtin_trap_handler::trapa; ++ ret.trapa_imm_val = SH_BUILTIN_TRAP_DEFAULT_TRAPA; ++ #elif defined (SH_BUILTIN_TRAP_DEFAULT_LIBCALL) ++ ret.type = sh_builtin_trap_handler::libcall; ++ ret.trapa_imm_val = 0; ++ #else ++ ret.type = sh_builtin_trap_handler::none; ++ ret.trapa_imm_val = 0; ++ #endif ++ ++ /* Handle empty string as 'none'. */ ++ if (str == NULL || *str == '\0') ++ return ret; ++ ++#define err_ret(...) do { error (__VA_ARGS__); return ret; } while (0) ++ ++ std::vector tokens; ++ for (std::stringstream ss (str); ss.good (); ) ++ { ++ tokens.push_back (std::string ()); ++ std::getline (ss, tokens.back (), ','); ++ } ++ ++ if (tokens.empty ()) ++ err_ret ("invalid builtin trap handler option"); ++ ++ /* The first token must be the handler name. */ ++ { ++ for (size_t i = 0; i < sh_builtin_trap_handler::num_handlers; ++i) ++ if (tokens.front () == names[i]) ++ { ++ ret.type = (sh_builtin_trap_handler::enum_type)i; ++ goto got_mode_name; ++ } ++ ++ err_ret ("invalid builtin trap handler name \"%s\"", ++ tokens.front ().c_str ()); ++got_mode_name:; ++ } ++ ++ /* Go through the remaining tokens. */ ++ bool have_imm = false; ++ ++ for (size_t i = 1; i < tokens.size (); ++i) ++ { ++ if (tokens[i].find ("imm=") == 0) ++ { ++ have_imm = true; ++ std::string imm_str = tokens[i].substr (strlen ("imm=")); ++ ret.trapa_imm_val = integral_argument (imm_str.c_str ()); ++ if (imm_str.empty () || ret.trapa_imm_val == -1) ++ err_ret ("could not parse imm value \"%s\" in builtin trap handler " ++ "option", imm_str.c_str ()); ++ } ++ else ++ err_ret ("unknown parameter \"%s\" in builtin trap handler option", ++ tokens[i].c_str ()); ++ } ++ ++ /* Check that the selection makes sense. */ ++ if (ret.type == sh_builtin_trap_handler::trapa && have_imm == false) ++ err_ret ("immediate value not specified for trapa builtin trap handler"); ++ ++ if (ret.type == sh_builtin_trap_handler::trapa ++ && (ret.trapa_imm_val < 0 || ret.trapa_imm_val > 255)) ++ err_ret ("immediate value for trapa builtin trap handler must be in the " ++ "range 0-255"); ++ ++ return ret; ++ ++#undef err_ret ++} ++ + /* Register SH specific RTL passes. */ + extern opt_pass* make_pass_sh_treg_combine (gcc::context* ctx, bool split_insns, + const char* name); +@@ -969,6 +1065,10 @@ sh_option_override (void) + selected_atomic_model_ + = parse_validate_atomic_model_option (sh_atomic_model_str); + ++ /* Parse __builtin_trap handler option. */ ++ selected_builtin_trap_handler_ ++ = parse_validate_builtin_trap_option (sh_builtin_trap_handler_str); ++ + register_sh_passes (); + } + +--- a/src/gcc/config/sh/sh.md ++++ b/src/gcc/config/sh/sh.md +@@ -8902,6 +8902,55 @@ + ;; Misc + ;; ------------------------------------------------------------------------- + ++;; __builtin_trap ++(define_expand "trap" ++ [(trap_if (const_int 1) (const_int 0))] ++ "TARGET_SH1 && !TARGET_BUILTIN_TRAP_NONE" ++{ ++ if (TARGET_BUILTIN_TRAP_TRAPA) ++ emit_insn (gen_trapa (TARGET_BUILTIN_TRAP_TRAPA_VAL_RTX)); ++ else if (TARGET_BUILTIN_TRAP_LIBCALL) ++ { ++ rtx funcaddr = gen_reg_rtx (Pmode); ++ rtx lab = function_symbol (funcaddr, "__builtin_trap", SFUNC_STATIC).lab; ++ emit_insn (gen_trap_call (funcaddr, lab)); ++ } ++ else ++ gcc_unreachable (); ++ ++ DONE; ++}) ++ ++(define_insn "trapa" ++ [(trap_if (const_int 1) (match_operand:SI 0 "const_logical_operand"))] ++ "TARGET_SH1" ++{ ++ if (TARGET_SH4_TRAPA_SLEEP_BUG) ++ return "trapa %0" "\n" ++ " or r0,r0" "\n" ++ " or r0,r0" "\n" ++ " or r0,r0" "\n" ++ " or r0,r0" "\n" ++ " or r0,r0"; ++ else ++ return "trapa %0"; ++} ++ [(set (attr "length") (if_then_else (match_test "TARGET_SH4_TRAPA_SLEEP_BUG") ++ (const_int 12) (const_int 2))) ++ (set_attr "in_delay_slot" "no")]) ++ ++(define_insn "trap_call" ++ [(trap_if (const_int 1) (const_int 0)) ++ (use (match_operand:SI 0 "arith_reg_operand" "r,r")) ++ (use (match_operand:SI 1 "" "Z,Ccl")) ++ (clobber (reg:SI PR_REG))] ++ "TARGET_SH1" ++ "@ ++ jsr @%0%# ++ bsrf %0\n%01:%#" ++ [(set_attr "type" "sfunc") ++ (set_attr "needs_delay_slot" "yes")]) ++ + ;; String/block move insn. + + (define_expand "movmemsi" +--- a/src/gcc/config.gcc ++++ b/src/gcc/config.gcc +@@ -2708,6 +2708,39 @@ sh-*-elf* | sh[12346l]*-*-elf* | \ + case ${with_endian} in + little*) tm_file="sh/little.h ${tm_file}" ;; + esac ++ ++ case ${with_builtin_trap} in ++ "") ++ case ${target} in ++ sh*-*-linux*) ++ tm_defines="$tm_defines SH_BUILTIN_TRAP_DEFAULT_TRAPA=0x54" ++ esac ++ ;; ++ libcall) ++ tm_defines="$tm_defines SH_BUILTIN_TRAP_DEFAULT_LIBCALL=1" ++ ;; ++ trapa-[0123456789]*) ++ trapa_value=`echo $with_builtin_trap | tr -d -c 0-9` ++ ++ if [ $trapa_value -gt 255 ]; then ++ echo "Invalid trapa number in --with-builtin-trap=$with_builtin_trap" ++ exit 1 ++ fi ++ ++ tm_defines="$tm_defines SH_BUILTIN_TRAP_DEFAULT_TRAPA=$trapa_value" ++ ;; ++ *) ++ echo "Invalid builtin trap handler in --with-builtin-trap=$with_builtin_trap" ++ exit 1 ++ esac ++ ++ if test x$enable_sh4_trapa_sleep_bug = xyes; then ++ tm_defines="$tm_defines SH4_TRAPA_SLEEP_BUG_DEFAULT=1" ++ fi ++ if test x$enable_sh4_trapa_sleep_bug = xno; then ++ tm_defines="$tm_defines SH4_TRAPA_SLEEP_BUG_DEFAULT=0" ++ fi ++ + tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h" + case ${target} in + sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux" +--- a/src/gcc/config/sh/sh.opt ++++ b/src/gcc/config/sh/sh.opt +@@ -301,3 +301,11 @@ Enable the use of the fsrra instruction. + mlra + Target Report Var(sh_lra_flag) Init(0) Save + Use LRA instead of reload (transitional). ++ ++msh4-trapa-sleep-bug ++Target Report Var(sh4_trapa_sleep_bug_option) Init(-1) ++Handle the trapa/sleep/undefined instruction 0xFFFD bug. ++ ++mbuiltin-trap= ++Target Report RejectNegative Joined Var(sh_builtin_trap_handler_str) ++Specify what code to emit for __builtin_trap. --- gcc-7-7.5.0.orig/debian/patches/skip-bootstrap-multilib.diff +++ gcc-7-7.5.0/debian/patches/skip-bootstrap-multilib.diff @@ -0,0 +1,45 @@ +# DP: Skip non-default multilib and libstdc++-v3 debug builds in bootstrap builds + +--- a/src/config-ml.in ++++ b/src/config-ml.in +@@ -479,6 +479,17 @@ esac + # Tests like `if [ -n "$multidirs" ]' require it. + multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ][ ]*/ /g'` + ++# stage1 and stage2 builds of the non-default multilib configurations ++# are not needed; skip these to save some build time. ++if [ -f ../../stage_final ] && [ -f ../../stage_current ]; then ++ stage_final=`cat ../../stage_final` ++ stage_current=`cat ../../stage_current` ++ if [ "$stage_current" != "$stage_final" ]; then ++ echo "Skip `basename $ml_realsrcdir` non-default multilibs for bootstrap stage $stage_current" ++ multidirs= ++ fi ++fi ++ + # Add code to library's top level makefile to handle building the multilib + # subdirs. + +--- a/src/libstdc++-v3/acinclude.m4 ++++ b/src/libstdc++-v3/acinclude.m4 +@@ -2904,7 +2904,20 @@ dnl + AC_DEFUN([GLIBCXX_ENABLE_DEBUG], [ + AC_MSG_CHECKING([for additional debug build]) + GLIBCXX_ENABLE(libstdcxx-debug,$1,,[build extra debug library]) ++ if test x$enable_libstdcxx_debug = xyes; then ++ if test -f $toplevel_builddir/../stage_final && test -f $toplevel_builddir/../stage_current; then ++ stage_final=`cat $toplevel_builddir/../stage_final` ++ stage_current=`cat $toplevel_builddir/../stage_current` ++ if test x$stage_current != x$stage_final ; then ++ skip_debug_build=yes ++ enable_libstdcxx_debug=no ++ fi ++ fi ++ fi + AC_MSG_RESULT($enable_libstdcxx_debug) ++ if test x$skip_debug_build = xyes ; then ++ AC_MSG_NOTICE([Skip libstdc++-v3 debug build for bootstrap stage $stage_current]) ++ fi + GLIBCXX_CONDITIONAL(GLIBCXX_BUILD_DEBUG, test $enable_libstdcxx_debug = yes) + ]) + --- gcc-7-7.5.0.orig/debian/patches/sparc64-biarch-long-double-128.diff +++ gcc-7-7.5.0/debian/patches/sparc64-biarch-long-double-128.diff @@ -0,0 +1,35 @@ +# DP: Fix --with-long-double-128 for sparc32 when defaulting to 64-bit. + +On sparc, the --with-long-double-128 option doesn't change anything for +a 64-bit compiler, as it always default to 128-bit long doubles. For +a 32/64-bit compiler defaulting to 32-bit this correctly control the +size of long double of the 32-bit compiler, however for a 32/64-bit +compiler defaulting to 64-bit, the built-in specs force the +-mlong-double-64 option. This makes the option useless in this case. + +The patch below fixes that by removing the -mlong-double-64 from the +built-in spec, using the default instead. + +Changelog gcc/ + +2013-12-04 Aurelien Jarno + + * config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit, + don't force -mlong-double-64 when -m32 or -mv8plus is given. + +Index: b/src/gcc/config/sparc/linux64.h +=================================================================== +--- a/src/gcc/config/sparc/linux64.h ++++ b/src/gcc/config/sparc/linux64.h +@@ -154,9 +154,9 @@ extern const char *host_detect_local_cpu + #else + #define CC1_SPEC "%{profile:-p} \ + %{m32:%{m64:%emay not use both -m32 and -m64}} \ +-%{m32:-mptr32 -mno-stack-bias %{!mlong-double-128:-mlong-double-64} \ ++%{m32:-mptr32 -mno-stack-bias \ + %{!mcpu*:-mcpu=cypress}} \ +-%{mv8plus:-mptr32 -mno-stack-bias %{!mlong-double-128:-mlong-double-64} \ ++%{mv8plus:-mptr32 -mno-stack-bias \ + %{!mcpu*:-mcpu=v9}} \ + %{!m32:%{!mcpu*:-mcpu=ultrasparc}} \ + %{!mno-vis:%{!m32:%{!mcpu=v9:-mvis}}} \ --- gcc-7-7.5.0.orig/debian/patches/src_gcc_config_i386_gnu.h.diff +++ gcc-7-7.5.0/debian/patches/src_gcc_config_i386_gnu.h.diff @@ -0,0 +1,25 @@ +Index: gcc-7-7.2.0-12.1/src/gcc/config/i386/gnu.h +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/gcc/config/i386/gnu.h ++++ gcc-7-7.2.0-12.1/src/gcc/config/i386/gnu.h +@@ -37,11 +37,14 @@ along with GCC. If not, see /dev/null 2>&1; then ++echo ' _SIGIOT: {_SigNotify + _SigThrow, "SIGIOT: abort"},' ++else + echo ' _SIGABRT: {_SigNotify + _SigThrow, "SIGABRT: abort"},' ++fi + echo ' _SIGBUS: {_SigPanic + _SigUnblock, "SIGBUS: bus error"},' + echo ' _SIGFPE: {_SigPanic + _SigUnblock, "SIGFPE: floating-point exception"},' + echo ' _SIGKILL: {0, "SIGKILL: kill"},' +@@ -77,6 +83,7 @@ checksig _SIGCANCEL ' {_SigSetStack + _S + checksig _SIGXRES ' {_SigNotify, "SIGXRES: resource control exceeded"}' + checksig _SIGJVM1 ' {_SigNotify, "SIGJVM1: reserved signal for Java Virtual Machine"}' + checksig _SIGJVM2 ' {_SigNotify, "SIGJVM2: reserved signal for Java Virtual Machine"}' ++checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (GNU)"}' + + # Special handling of signals 32 and 33 on GNU/Linux systems, + # because they are special to glibc. +@@ -91,6 +98,11 @@ if test -z "$nsig"; then + rtmax=`grep 'const _*SIGRTMAX = [0-9]*$' gen-sysinfo.go | sed -e 's/.* = \([0-9]*\)/\1/'` + if test -n "$rtmax"; then + nsig=`expr $rtmax + 1` ++ elif grep 'const _*SIGRTMAX = [ (]*_*SIGRTMIN[ )]*' gen-sysinfo.go >/dev/null 2>&1; then ++ rtmin=`grep 'const _*SIGRTMIN = [0-9]*$' gen-sysinfo.go | sed -e 's/.* = \([0-9]*\)/\1/'` ++ if test -n "$rtmin"; then ++ nsig=`expr $rtmin + 1` ++ fi + fi + fi + fi +Index: gcc-7-7.2.0-12.1/src/libgo/mksysinfo.sh +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/mksysinfo.sh ++++ gcc-7-7.2.0-12.1/src/libgo/mksysinfo.sh +@@ -43,8 +43,19 @@ grep -v '^// ' gen-sysinfo.go | \ + >> ${OUT} + + # The errno constants. These get type Errno. +- egrep '#define E[A-Z0-9_]+ ' errno.i | \ +- sed -e 's/^#define \(E[A-Z0-9_]*\) .*$/const \1 = Errno(_\1)/' >> ${OUT} ++egrep '#define E[A-Z0-9_]+ [0-9]' errno.i | \ ++ sed -e 's/^#define \(E[A-Z0-9_]*\) .*$/const \1 = Errno(_\1)/' >> ${OUT} ++# Workaround for GNU/Hurd _EMIG_* errors having negative values ++egrep '#define E[A-Z0-9_]+ -[0-9]' errno.i | \ ++ sed -e 's/^#define \(E[A-Z0-9_]*\) .*$/const \1 = Errno(-_\1)/' >> ${OUT} ++ ++# Special treatment of EWOULDBLOCK for GNU/Hurd ++# /usr/include/i386-gnu/bits/errno.h: #define EWOULDBLOCK EAGAIN ++if egrep '^const _EWOULDBLOCK = _EAGAIN' gen-sysinfo.go > /dev/null 2>&1; then ++ if egrep '^const EAGAIN = Errno\(_EAGAIN\)' ${OUT}; then ++ echo 'const EWOULDBLOCK = Errno(_EAGAIN)' >> ${OUT} ++ fi ++fi + + # The O_xxx flags. + egrep '^const _(O|F|FD)_' gen-sysinfo.go | \ +@@ -61,6 +68,11 @@ if ! grep '^const F_DUPFD_CLOEXEC' ${OUT + echo "const F_DUPFD_CLOEXEC = 0" >> ${OUT} + fi + ++# Special treatment of SYS_IOCTL for GNU/Hurd ++if ! grep '^const SYS_IOCTL' ${OUT} > /dev/null 2>&1; then ++ echo "const SYS_IOCTL = 0" >> ${OUT} ++fi ++ + # These flags can be lost on i386 GNU/Linux when using + # -D_FILE_OFFSET_BITS=64, because we see "#define F_SETLK F_SETLK64" + # before we see the definition of F_SETLK64. +@@ -425,6 +437,11 @@ grep '^type _tms ' gen-sysinfo.go | \ + + # The stat type. + # Prefer largefile variant if available. ++# Special treatment of st_dev for GNU/Hurd ++# /usr/include/i386-gnu/bits/stat.h: #define st_dev st_fsid ++if grep 'define st_dev st_fsid' gen-sysinfo.go > /dev/null 2>&1; then ++ sed -i -e 's/; st_fsid/; st_dev/' gen-sysinfo.go ++fi + stat=`grep '^type _stat64 ' gen-sysinfo.go || true` + if test "$stat" != ""; then + grep '^type _stat64 ' gen-sysinfo.go --- gcc-7-7.5.0.orig/debian/patches/src_libgo_go_crypto.diff +++ gcc-7-7.5.0/debian/patches/src_libgo_go_crypto.diff @@ -0,0 +1,15 @@ +Index: gcc-7-7.2.0-12.1/src/libgo/go/crypto/x509/root_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/crypto/x509/root_gnu.go +@@ -0,0 +1,10 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package x509 ++ ++// Possible certificate files; stop after finding one. ++var certFiles = []string{ ++ "/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc. ++} --- gcc-7-7.5.0.orig/debian/patches/src_libgo_go_go_build_syslist.go.diff +++ gcc-7-7.5.0/debian/patches/src_libgo_go_go_build_syslist.go.diff @@ -0,0 +1,11 @@ +Index: gcc-7-7.2.0-12.1/src/libgo/go/go/build/syslist.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/go/build/syslist.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/go/build/syslist.go +@@ -4,5 +4,5 @@ + + package build + +-const goosList = "android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows zos " ++const goosList = "android darwin dragonfly freebsd gnu linux nacl netbsd openbsd plan9 solaris windows zos " + const goarchList = "386 amd64 amd64p32 arm armbe arm64 arm64be alpha m68k ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le ppc s390 s390x sparc sparc64 " --- gcc-7-7.5.0.orig/debian/patches/src_libgo_go_net.diff +++ gcc-7-7.5.0/debian/patches/src_libgo_go_net.diff @@ -0,0 +1,209 @@ +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/cgo_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/cgo_gnu.go +@@ -0,0 +1,16 @@ ++// Copyright 2011 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build cgo,!netgo ++// +build gnu ++ ++package net ++ ++/* ++#include ++*/ ++ ++import "syscall" ++ ++const cgoAddrInfoFlags = syscall.AI_CANONNAME | syscall.AI_V4MAPPED | syscall.AI_ALL +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/sendfile_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/sendfile_gnu.go +@@ -0,0 +1,79 @@ ++// Copyright 2011 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package net ++ ++import ( ++ "io" ++ "os" ++ "syscall" ++) ++ ++// maxSendfileSize is the largest chunk size we ask the kernel to copy ++// at a time. ++const maxSendfileSize int = 4 << 20 ++ ++// sendFile copies the contents of r to c using the sendfile ++// system call to minimize copies. ++// ++// if handled == true, sendFile returns the number of bytes copied and any ++// non-EOF error. ++// ++// if handled == false, sendFile performed no work. ++func sendFile(c *netFD, r io.Reader) (written int64, err error, handled bool) { ++ var remain int64 = 1 << 62 // by default, copy until EOF ++ ++ lr, ok := r.(*io.LimitedReader) ++ if ok { ++ remain, r = lr.N, lr.R ++ if remain <= 0 { ++ return 0, nil, true ++ } ++ } ++ f, ok := r.(*os.File) ++ if !ok { ++ return 0, nil, false ++ } ++ ++ if err := c.writeLock(); err != nil { ++ return 0, err, true ++ } ++ defer c.writeUnlock() ++ ++ dst := c.sysfd ++ src := int(f.Fd()) ++ for remain > 0 { ++ n := maxSendfileSize ++ if int64(n) > remain { ++ n = int(remain) ++ } ++ n, err1 := syscall.Sendfile(dst, src, nil, n) ++ if n > 0 { ++ written += int64(n) ++ remain -= int64(n) ++ } ++ if n == 0 && err1 == nil { ++ break ++ } ++ if err1 == syscall.EAGAIN { ++ if err1 = c.pd.waitWrite(); err1 == nil { ++ continue ++ } ++ } ++ if err1 != nil { ++ // This includes syscall.ENOSYS (no kernel ++ // support) and syscall.EINVAL (fd types which ++ // don't implement sendfile) ++ err = err1 ++ break ++ } ++ } ++ if lr != nil { ++ lr.N = remain ++ } ++ if err != nil { ++ err = os.NewSyscallError("sendfile", err) ++ } ++ return written, err, written > 0 ++} +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/sock_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/sock_gnu.go +@@ -0,0 +1,14 @@ ++// Copyright 2014 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build gnu ++ ++package net ++ ++import "syscall" ++ ++func maxListenerBacklog() int { ++ // From /usr/include/i386-gnu/bits/socket.h ++ return syscall.SOMAXCONN ++} +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/sockopt_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/sockopt_gnu.go +@@ -0,0 +1,45 @@ ++// Copyright 2011 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build gnu ++ ++package net ++ ++import ( ++ "os" ++ "syscall" ++) ++ ++func setDefaultSockopts(s, family, sotype int, ipv6only bool) error { ++ if family == syscall.AF_INET6 && sotype != syscall.SOCK_RAW { ++ // Allow both IP versions even if the OS default ++ // is otherwise. Note that some operating systems ++ // never admit this option. ++ syscall.SetsockoptInt(s, syscall.IPPROTO_IPV6, syscall.IPV6_V6ONLY, boolint(ipv6only)) ++ } ++ // Allow broadcast. ++ return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(s, syscall.SOL_SOCKET, syscall.SO_BROADCAST, 1)) ++} ++ ++func setDefaultListenerSockopts(s int) error { ++ // Allow reuse of recently-used addresses. ++ return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(s, syscall.SOL_SOCKET, syscall.SO_REUSEADDR, 1)) ++} ++ ++func setDefaultMulticastSockopts(s int) error { ++ // Allow multicast UDP and raw IP datagram sockets to listen ++ // concurrently across multiple listeners. ++ if err := syscall.SetsockoptInt(s, syscall.SOL_SOCKET, syscall.SO_REUSEADDR, 1); err != nil { ++ return os.NewSyscallError("setsockopt", err) ++ } ++ // Allow reuse of recently-used ports. ++ // This option is supported only in descendants of 4.4BSD, ++ // to make an effective multicast application that requires ++ // quick draw possible. ++ // Not supported on GNU/Hurd ++ //if syscall.SO_REUSEPORT != 0 { ++ // return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(s, syscall.SOL_SOCKET, syscall.SO_REUSEPORT, 1)) ++ //} ++ return nil ++} +Index: gcc-7-7.2.0-12.1/src/libgo/go/net/sockoptip_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/net/sockoptip_gnu.go +@@ -0,0 +1,30 @@ ++// Copyright 2011 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build gnu ++ ++package net ++ ++import ( ++ "os" ++ "syscall" ++) ++ ++func setIPv4MulticastInterface(fd *netFD, ifi *Interface) error { ++ ip, err := interfaceToIPv4Addr(ifi) ++ if err != nil { ++ return os.NewSyscallError("setsockopt", err) ++ } ++ var a [4]byte ++ copy(a[:], ip.To4()) ++ if err := fd.incref(); err != nil { ++ return err ++ } ++ defer fd.decref() ++ return os.NewSyscallError("setsockopt", syscall.SetsockoptInet4Addr(fd.sysfd, syscall.IPPROTO_IP, syscall.IP_MULTICAST_IF, a)) ++} ++ ++func setIPv4MulticastLoopback(fd *netFD, v bool) error { ++ return syscall.ENOPROTOOPT ++} --- gcc-7-7.5.0.orig/debian/patches/src_libgo_go_os.diff +++ gcc-7-7.5.0/debian/patches/src_libgo_go_os.diff @@ -0,0 +1,53 @@ +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/executable_procfs.go +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/os/executable_procfs.go ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/executable_procfs.go +@@ -19,7 +19,7 @@ var executablePath, executablePathErr = + switch runtime.GOOS { + default: + return "", errors.New("Executable not implemented for " + runtime.GOOS) +- case "linux", "android": ++ case "gnu", "linux", "android": + procfn = "/proc/self/exe" + case "netbsd": + procfn = "/proc/curproc/exe" +Index: gcc-7-7.2.0-12.1/src/libgo/go/os/pipe_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/os/pipe_gnu.go +@@ -0,0 +1,35 @@ ++// Copyright 2013 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build gnu ++ ++package os ++ ++import "syscall" ++ ++// Pipe returns a connected pair of Files; reads from r return bytes written to w. ++// It returns the files and an error, if any. ++func Pipe() (r *File, w *File, err error) { ++ var p [2]int ++ ++ e := syscall.Pipe2(p[0:], syscall.O_CLOEXEC) ++ // pipe2 was added in 2.6.27 and our minimum requirement is 2.6.23, so it ++ // might not be implemented. ++ if e == syscall.ENOSYS { ++ // See ../syscall/exec.go for description of lock. ++ syscall.ForkLock.RLock() ++ e = syscall.Pipe(p[0:]) ++ if e != nil { ++ syscall.ForkLock.RUnlock() ++ return nil, nil, NewSyscallError("pipe", e) ++ } ++ syscall.CloseOnExec(p[0]) ++ syscall.CloseOnExec(p[1]) ++ syscall.ForkLock.RUnlock() ++ } else if e != nil { ++ return nil, nil, NewSyscallError("pipe2", e) ++ } ++ ++ return NewFile(uintptr(p[0]), "|0"), NewFile(uintptr(p[1]), "|1"), nil ++} --- gcc-7-7.5.0.orig/debian/patches/src_libgo_go_runtime.diff +++ gcc-7-7.5.0/debian/patches/src_libgo_go_runtime.diff @@ -0,0 +1,1010 @@ +Index: gcc-7-7.2.0-12.1/src/libgo/go/runtime/netpoll_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/runtime/netpoll_gnu.go +@@ -0,0 +1,303 @@ ++// Copyright 2013 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// FIXME: Fake network poller for gnu. ++// This is based on the former libgo/runtime/netpoll_select.c implementation ++// except that it uses poll instead of select and is written in Go. ++// Inspiration was also taken from netpoll_aix.go and netpoll_solaris.go ++ ++// +build gnu ++ ++package runtime ++ ++import ( ++ "unsafe" ++) ++ ++//From /usr/include/i386-gnu/bits/poll.h ++const _POLLIN = 01 // There is data to read. ++const _POLLPRI = 02 // There is urgent data to read. ++const _POLLOUT = 04 // Writing now will not block. ++const _POLLERR = 010 // Error condition. ++const _POLLHUP = 020 // Hung up. ++const _POLLNVAL = 040 // Invalid polling request. ++ ++type pollfd struct { ++ fd int32 // File descriptor to poll. ++ events int16 // Types of events poller cares about. ++ revents int16 // Types of events that actually occurred. ++} ++ ++//From /usr/include/x86_64-linux-gnu/sys/poll.h ++//extern poll ++func poll (polldata_array *pollfd, nfds int32, timeout int32) int32 ++ ++//extern pipe2 ++func libc_pipe2(fd *int32, flags int32) int32 ++ ++var ( ++ pipefd [2]int32 ++ pollfds int32 = -1 ++ nfds int32 = 0 ++ rdwake int32 ++ wrwake int32 ++ fds [207]pollfd ++ data [207]*pollDesc ++ pd *pollDesc ++ pmtx mutex ++ needsUpdate bool ++ b byte ++ err int32 = 0 ++) ++ ++func netpollinit() { ++ ++ ret := libc_pipe2(&pipefd[0], _O_CLOEXEC|_O_NONBLOCK); ++ if ret == -1 { ++ throw("runtime:netpollinit(): failed to create pipe2") ++ } ++ ++ rdwake = pipefd[0] ++ wrwake = pipefd[1] ++ ++ // Add the read side of the pipe to the pollset. ++ lock(&pmtx) ++ fds[0].fd = int32(rdwake) ++ fds[0].events = int16(_POLLIN) ++ fds[0].revents = int16(0) ++ ++// Checks for pd != nil are made in netpoll() ++ data[0] = nil ++ unlock(&pmtx) ++ ++ nfds = 1 ++ pollfds = 1 ++ ++ return ++} ++ ++func netpolldescriptor() uintptr { ++ // FIXME: see src/libgo/go/os/exec/exec_test.go ++ // Need to return two fds here: wrwake and rdwake ++ return ^uintptr(0) ++} ++ ++func fdadd(fd uintptr, events int16, pd *pollDesc) { ++// println("netpollopen:fdadd: nfds =", nfds, "fd =", fd) ++ ++ fdfound := false ++ // Omit fds[0].fd = rdwake ++ for i := int32(1); i < nfds; i++ { ++ fdsi := fds[i] ++ if fdsi.fd == int32(fd) { ++ fdfound = true ++ fdsi.events = int16(events) ++ fdsi.revents = int16(0) ++ data[i] = pd ++ break ++ } ++ } ++ // fd not found, add it. ++ if fdfound == false { ++ fds[nfds].fd = int32(fd) ++ fds[nfds].events = int16(events) ++ fds[nfds].revents = int16(0) ++ data[nfds] = pd ++ nfds++ ++ } ++ ++// for l := int32(0); l < nfds; l++ { ++// println("fds[", l, "].fd =", fds[l].fd) ++// } ++ ++ return ++} ++ ++func netpollopen(fd uintptr, pd *pollDesc) int32 { ++ lock(&pmtx) ++ needsUpdate = true ++ unlock(&pmtx) ++ ++ // poll will block so wakeup using wrwake first. ++wrloop1: ++ nwritten := write(uintptr(wrwake), unsafe.Pointer(&b), 1) ++ if nwritten == 0 { ++ println("runtime:netpollopen: write retuned zero, fd =", wrwake) ++ return -1 ++ } ++ if nwritten == -1 { ++ err = int32(errno()) ++ if err == _EAGAIN { ++ goto wrloop1 ++ } ++ println("runtime:netpollopen: write failed fd =", wrwake, "errno =", err) ++ return err ++ } ++ ++ // Add fd to the pollset. ++ lock(&pmtx) ++ fdadd(fd, _POLLIN|_POLLOUT, pd) ++ needsUpdate = false ++ unlock(&pmtx) ++ ++ return 0 ++} ++ ++func fdremove(fd uintptr) { ++// println("netpollclose():fdremove() nfds =", nfds, "fd =", fd) ++ ++ fdfound := false ++ // Omit fds[0].fd = rdwake ++ j := 1 ++ for i := int32(1); i < nfds; i++ { ++ fdsi := fds[i] ++ if fdsi.fd == int32(fd) { ++ fdfound = true ++ fdsi.fd = int32(0) ++ fdsi.events = int16(0) ++ fdsi.revents = int16(0) ++ data[i] = nil ++ } else { ++ fds[j].fd = fdsi.fd ++ fds[j].events = fdsi.events ++ fds[j].revents = int16(0) ++ data[j] = data[i] ++ j++ ++ } ++ } ++ nfds-- ++ // fd not found, print an error ++ //FIXME: Still output from here ++ if fdfound == false { ++ println("netpollclose:fdremove: fd =", fd, "NOT FOUND") ++ } ++ ++// for l := int32(0); l < nfds; l++ { ++// println("fds[", l, "].fd =", fds[l].fd) ++// } ++ ++ return ++} ++ ++func netpollclose(fd uintptr) int32 { ++ lock(&pmtx) ++ needsUpdate = true ++ unlock(&pmtx) ++ ++ // poll will block so wakeup using wrwake first. ++wrloop2: ++ nwritten := write(uintptr(wrwake), unsafe.Pointer(&b), 1) ++ if nwritten == 0 { ++ println("runtime:netpollclose: write retuned zero, fd =", wrwake) ++ return -1 ++ } ++ if nwritten == -1 { ++ err = int32(errno()) ++ if err == _EAGAIN { ++ goto wrloop2 ++ } ++ println("runtime:netpollclose: write failed fd =", wrwake, "errno =", err) ++ return err ++ } ++ ++ // Remove fd from the pollset. ++ lock(&pmtx) ++ fdremove(fd) ++ needsUpdate = false ++ unlock(&pmtx) ++ ++ return 0 ++} ++ ++func netpollarm(pd *pollDesc, mode int) { ++ throw("runtime:netpollarm() unused") ++} ++ ++// polls for ready network connections ++// returns list of goroutines that become runnable ++func netpoll(block bool) *g { ++ if pollfds == -1 { ++ return nil ++ } ++ ++ timeout := int32(-1) ++ if !block { ++ timeout = 0 ++ } ++ ++retry: ++ lock(&pmtx) ++ if needsUpdate { ++ unlock(&pmtx) ++ osyield() ++ goto retry ++ } ++ unlock(&pmtx) ++ ++ // Note: poll only returns fds with non-zero revents! ++ nfound := poll(&fds[0], nfds, timeout) ++ if nfound == 0 { ++ return nil ++ } ++ if nfound < 0 { ++ err = int32(errno()) ++ if err == _EINTR || err == _EAGAIN { ++ goto retry ++ } ++ println("runtime: poll failed errno =", err) ++ throw("runtime: netpoll failed") ++ } ++ ++ var mode int32 ++ var gp guintptr ++ // We assume that nfound <= nfds ++ for i := int32(0); i < nfds; i++ { ++ fdsi := &fds[i] ++ ++ // Skip fds with zero revents as poll does ++ if fdsi.revents == 0 { ++ continue ++ } ++ ++ mode = 0 ++ if fdsi.revents&(_POLLIN|_POLLHUP|_POLLERR) != 0 { ++ if fdsi.fd == rdwake { ++rdloop: ++ nread := read(fdsi.fd, unsafe.Pointer(&b), 1) ++ // EOF ++ if nread == 0 { ++ println("runtime:netpoll: read returned zero fd =", fdsi.fd) ++ return nil ++ } ++ if nread == -1 { ++ err = int32(errno()) ++ if err == _EAGAIN { ++ goto rdloop ++ } ++ println("runtime:netpoll: read failed fd =", fdsi.fd, "errno =", err) ++ return nil ++ } ++ continue ++ } ++ mode += 'r' ++ } ++ if fdsi.revents&(_POLLOUT|_POLLHUP|_POLLERR) != 0 { ++ mode += 'w' ++ } ++ if mode != 0 { ++ lock(&pmtx) ++ pd = data[i] ++ unlock(&pmtx) ++ if pd != nil { ++ netpollready(&gp, pd, mode) ++ } ++ } ++ } ++ ++ if block && gp == 0 { ++ goto retry ++ } ++ ++ return gp.ptr() ++} +Index: gcc-7-7.2.0-12.1/src/libgo/go/runtime/os_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/runtime/os_gnu.go +@@ -0,0 +1,86 @@ ++// Copyright 2011 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package runtime ++ ++import "unsafe" ++ ++type mOS struct { ++ waitsema uintptr // semaphore for parking on locks ++} ++ ++//extern malloc ++func libc_malloc(uintptr) unsafe.Pointer ++ ++//go:noescape ++//extern sem_init ++func sem_init(sem *_sem_t, pshared int32, value uint32) int32 ++ ++//go:noescape ++//extern sem_wait ++func sem_wait(sem *_sem_t) int32 ++ ++//go:noescape ++//extern sem_post ++func sem_post(sem *_sem_t) int32 ++ ++//go:noescape ++//extern sem_timedwait ++func sem_timedwait(sem *_sem_t, timeout *timespec) int32 ++ ++//go:nosplit ++func semacreate(mp *m) { ++ if mp.mos.waitsema != 0 { ++ return ++ } ++ ++ var sem *_sem_t ++ ++ // Call libc's malloc rather than malloc. This will ++ // allocate space on the C heap. We can't call malloc ++ // here because it could cause a deadlock. ++ sem = (*_sem_t)(libc_malloc(unsafe.Sizeof(*sem))) ++ if sem_init(sem, 0, 0) != 0 { ++ throw("sem_init") ++ } ++ mp.mos.waitsema = uintptr(unsafe.Pointer(sem)) ++} ++ ++//go:nosplit ++func semasleep(ns int64) int32 { ++ _m_ := getg().m ++ if ns >= 0 { ++ var ts timespec ++ ts.set_sec(ns / 1000000000) ++ ts.set_nsec(int32(ns % 1000000000)) ++ ++ if sem_timedwait((*_sem_t)(unsafe.Pointer(_m_.mos.waitsema)), &ts) != 0 { ++ err := errno() ++ if err == _ETIMEDOUT || err == _EAGAIN || err == _EINTR { ++ return -1 ++ } ++ throw("sem_timedwait") ++ } ++ return 0 ++ } ++ for { ++ r1 := sem_wait((*_sem_t)(unsafe.Pointer(_m_.mos.waitsema))) ++ if r1 == 0 { ++ break ++ } ++ if errno() == _EINTR { ++ continue ++ } ++ throw("sem_wait") ++ } ++ return 0 ++} ++ ++//go:nosplit ++func semawakeup(mp *m) { ++ if sem_post((*_sem_t)(unsafe.Pointer(mp.mos.waitsema))) != 0 { ++ throw("sem_post") ++ } ++} ++ +Index: gcc-7-7.2.0-12.1/src/libgo/go/runtime/signal_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/runtime/signal_gnu.go +@@ -0,0 +1,606 @@ ++// Copyright 2012 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build gnu ++ ++package runtime ++ ++import ( ++ "runtime/internal/sys" ++ "unsafe" ++) ++ ++// For gccgo's C code to call: ++//go:linkname initsig runtime.initsig ++//go:linkname crash runtime.crash ++//go:linkname resetcpuprofiler runtime.resetcpuprofiler ++//go:linkname sigtrampgo runtime.sigtrampgo ++ ++//go:linkname os_sigpipe os.sigpipe ++func os_sigpipe() { ++ systemstack(sigpipe) ++} ++ ++func signame(sig uint32) string { ++ if sig >= uint32(len(sigtable)) { ++ return "" ++ } ++ return sigtable[sig].name ++} ++ ++const ( ++ _SIG_DFL uintptr = 0 ++ _SIG_IGN uintptr = 1 ++) ++ ++// Stores the signal handlers registered before Go installed its own. ++// These signal handlers will be invoked in cases where Go doesn't want to ++// handle a particular signal (e.g., signal occurred on a non-Go thread). ++// See sigfwdgo() for more information on when the signals are forwarded. ++// ++// Signal forwarding is currently available only on Darwin and Linux. ++var fwdSig [_NSIG]uintptr ++ ++// channels for synchronizing signal mask updates with the signal mask ++// thread ++var ( ++ disableSigChan chan uint32 ++ enableSigChan chan uint32 ++ maskUpdatedChan chan struct{} ++) ++ ++func init() { ++ // _NSIG is the number of signals on this operating system. ++ // sigtable should describe what to do for all the possible signals. ++ if len(sigtable) != _NSIG { ++ print("runtime: len(sigtable)=", len(sigtable), " _NSIG=", _NSIG, "\n") ++ throw("bad sigtable len") ++ } ++} ++ ++var signalsOK bool ++ ++// Initialize signals. ++// Called by libpreinit so runtime may not be initialized. ++//go:nosplit ++//go:nowritebarrierrec ++func initsig(preinit bool) { ++ if preinit { ++ // preinit is only passed as true if isarchive should be true. ++ isarchive = true ++ } ++ ++ if !preinit { ++ // It's now OK for signal handlers to run. ++ signalsOK = true ++ } ++ ++ // For c-archive/c-shared this is called by libpreinit with ++ // preinit == true. ++ if (isarchive || islibrary) && !preinit { ++ return ++ } ++ ++ for i := uint32(0); i < _NSIG; i++ { ++ t := &sigtable[i] ++ if t.flags == 0 || t.flags&_SigDefault != 0 { ++ continue ++ } ++ fwdSig[i] = getsig(i) ++ ++ if !sigInstallGoHandler(i) { ++ // Even if we are not installing a signal handler, ++ // set SA_ONSTACK if necessary. ++ if fwdSig[i] != _SIG_DFL && fwdSig[i] != _SIG_IGN { ++ setsigstack(i) ++ } ++ continue ++ } ++ ++ t.flags |= _SigHandling ++ setsig(i, getSigtramp()) ++ } ++} ++ ++//go:nosplit ++//go:nowritebarrierrec ++func sigInstallGoHandler(sig uint32) bool { ++ // For some signals, we respect an inherited SIG_IGN handler ++ // rather than insist on installing our own default handler. ++ // Even these signals can be fetched using the os/signal package. ++ switch sig { ++ case _SIGHUP, _SIGINT: ++ if fwdSig[sig] == _SIG_IGN { ++ return false ++ } ++ } ++ ++ t := &sigtable[sig] ++ if t.flags&_SigSetStack != 0 { ++ return false ++ } ++ ++ // When built using c-archive or c-shared, only install signal ++ // handlers for synchronous signals. ++ if (isarchive || islibrary) && t.flags&_SigPanic == 0 { ++ return false ++ } ++ ++ return true ++} ++ ++func sigenable(sig uint32) { ++ if sig >= uint32(len(sigtable)) { ++ return ++ } ++ ++ t := &sigtable[sig] ++ if t.flags&_SigNotify != 0 { ++ ensureSigM() ++ enableSigChan <- sig ++ <-maskUpdatedChan ++ if t.flags&_SigHandling == 0 { ++ t.flags |= _SigHandling ++ fwdSig[sig] = getsig(sig) ++ setsig(sig, getSigtramp()) ++ } ++ } ++} ++ ++func sigdisable(sig uint32) { ++ if sig >= uint32(len(sigtable)) { ++ return ++ } ++ ++ t := &sigtable[sig] ++ if t.flags&_SigNotify != 0 { ++ ensureSigM() ++ disableSigChan <- sig ++ <-maskUpdatedChan ++ ++ // If initsig does not install a signal handler for a ++ // signal, then to go back to the state before Notify ++ // we should remove the one we installed. ++ if !sigInstallGoHandler(sig) { ++ t.flags &^= _SigHandling ++ setsig(sig, fwdSig[sig]) ++ } ++ } ++} ++ ++func sigignore(sig uint32) { ++ if sig >= uint32(len(sigtable)) { ++ return ++ } ++ ++ t := &sigtable[sig] ++ if t.flags&_SigNotify != 0 { ++ t.flags &^= _SigHandling ++ setsig(sig, _SIG_IGN) ++ } ++} ++ ++func resetcpuprofiler(hz int32) { ++ var it _itimerval ++ if hz == 0 { ++ setitimer(_ITIMER_PROF, &it, nil) ++ } else { ++ it.it_interval.tv_sec = 0 ++ it.it_interval.set_usec(1000000 / hz) ++ it.it_value = it.it_interval ++ setitimer(_ITIMER_PROF, &it, nil) ++ } ++ _g_ := getg() ++ _g_.m.profilehz = hz ++} ++ ++func sigpipe() { ++ if sigsend(_SIGPIPE) { ++ return ++ } ++ dieFromSignal(_SIGPIPE) ++} ++ ++// sigtrampgo is called from the signal handler function, sigtramp, ++// written in assembly code. ++// This is called by the signal handler, and the world may be stopped. ++//go:nosplit ++//go:nowritebarrierrec ++func sigtrampgo(sig uint32, info *_siginfo_t, ctx unsafe.Pointer) { ++ if sigfwdgo(sig, info, ctx) { ++ return ++ } ++ g := getg() ++ if g == nil { ++ c := sigctxt{info, ctx} ++ if sig == _SIGPROF { ++ _, pc := getSiginfo(info, ctx) ++ sigprofNonGoPC(pc) ++ return ++ } ++ badsignal(uintptr(sig), &c) ++ return ++ } ++ ++ setg(g.m.gsignal) ++ sighandler(sig, info, ctx, g) ++ setg(g) ++} ++ ++// sigpanic turns a synchronous signal into a run-time panic. ++// If the signal handler sees a synchronous panic, it arranges the ++// stack to look like the function where the signal occurred called ++// sigpanic, sets the signal's PC value to sigpanic, and returns from ++// the signal handler. The effect is that the program will act as ++// though the function that got the signal simply called sigpanic ++// instead. ++func sigpanic() { ++ g := getg() ++ if !canpanic(g) { ++ throw("unexpected signal during runtime execution") ++ } ++ ++ switch g.sig { ++ case _SIGBUS: ++ if g.sigcode0 == _BUS_ADRERR && g.sigcode1 < 0x1000 { ++ panicmem() ++ } ++ // Support runtime/debug.SetPanicOnFault. ++ if g.paniconfault { ++ panicmem() ++ } ++ print("unexpected fault address ", hex(g.sigcode1), "\n") ++ throw("fault") ++ case _SIGSEGV: ++ if (g.sigcode0 == 0 || g.sigcode0 == _SEGV_MAPERR || g.sigcode0 == _SEGV_ACCERR) && g.sigcode1 < 0x1000 { ++ panicmem() ++ } ++ // Support runtime/debug.SetPanicOnFault. ++ if g.paniconfault { ++ panicmem() ++ } ++ print("unexpected fault address ", hex(g.sigcode1), "\n") ++ throw("fault") ++ case _SIGFPE: ++ switch g.sigcode0 { ++ case _FPE_INTDIV: ++ panicdivide() ++ case _FPE_INTOVF: ++ panicoverflow() ++ } ++ panicfloat() ++ } ++ ++ if g.sig >= uint32(len(sigtable)) { ++ // can't happen: we looked up g.sig in sigtable to decide to call sigpanic ++ throw("unexpected signal value") ++ } ++ panic(errorString(sigtable[g.sig].name)) ++} ++ ++// dieFromSignal kills the program with a signal. ++// This provides the expected exit status for the shell. ++// This is only called with fatal signals expected to kill the process. ++//go:nosplit ++//go:nowritebarrierrec ++func dieFromSignal(sig uint32) { ++ setsig(sig, _SIG_DFL) ++ unblocksig(sig) ++ raise(sig) ++ ++ // That should have killed us. On some systems, though, raise ++ // sends the signal to the whole process rather than to just ++ // the current thread, which means that the signal may not yet ++ // have been delivered. Give other threads a chance to run and ++ // pick up the signal. ++ osyield() ++ osyield() ++ osyield() ++ ++ // If we are still somehow running, just exit with the wrong status. ++ exit(2) ++} ++ ++// raisebadsignal is called when a signal is received on a non-Go ++// thread, and the Go program does not want to handle it (that is, the ++// program has not called os/signal.Notify for the signal). ++func raisebadsignal(sig uint32, c *sigctxt) { ++ if sig == _SIGPROF { ++ // Ignore profiling signals that arrive on non-Go threads. ++ return ++ } ++ ++ var handler uintptr ++ if sig >= _NSIG { ++ handler = _SIG_DFL ++ } else { ++ handler = fwdSig[sig] ++ } ++ ++ // Reset the signal handler and raise the signal. ++ // We are currently running inside a signal handler, so the ++ // signal is blocked. We need to unblock it before raising the ++ // signal, or the signal we raise will be ignored until we return ++ // from the signal handler. We know that the signal was unblocked ++ // before entering the handler, or else we would not have received ++ // it. That means that we don't have to worry about blocking it ++ // again. ++ unblocksig(sig) ++ setsig(sig, handler) ++ ++ // If we're linked into a non-Go program we want to try to ++ // avoid modifying the original context in which the signal ++ // was raised. If the handler is the default, we know it ++ // is non-recoverable, so we don't have to worry about ++ // re-installing sighandler. At this point we can just ++ // return and the signal will be re-raised and caught by ++ // the default handler with the correct context. ++ if (isarchive || islibrary) && handler == _SIG_DFL && c.sigcode() != _SI_USER { ++ return ++ } ++ ++ raise(sig) ++ ++ // Give the signal a chance to be delivered. ++ // In almost all real cases the program is about to crash, ++ // so sleeping here is not a waste of time. ++ usleep(1000) ++ ++ // If the signal didn't cause the program to exit, restore the ++ // Go signal handler and carry on. ++ // ++ // We may receive another instance of the signal before we ++ // restore the Go handler, but that is not so bad: we know ++ // that the Go program has been ignoring the signal. ++ setsig(sig, getSigtramp()) ++} ++ ++func crash() { ++ if GOOS == "darwin" { ++ // OS X core dumps are linear dumps of the mapped memory, ++ // from the first virtual byte to the last, with zeros in the gaps. ++ // Because of the way we arrange the address space on 64-bit systems, ++ // this means the OS X core file will be >128 GB and even on a zippy ++ // workstation can take OS X well over an hour to write (uninterruptible). ++ // Save users from making that mistake. ++ if sys.PtrSize == 8 { ++ return ++ } ++ } ++ ++ dieFromSignal(_SIGIOT) ++} ++ ++// ensureSigM starts one global, sleeping thread to make sure at least one thread ++// is available to catch signals enabled for os/signal. ++func ensureSigM() { ++ if maskUpdatedChan != nil { ++ return ++ } ++ maskUpdatedChan = make(chan struct{}) ++ disableSigChan = make(chan uint32) ++ enableSigChan = make(chan uint32) ++ go func() { ++ // Signal masks are per-thread, so make sure this goroutine stays on one ++ // thread. ++ LockOSThread() ++ defer UnlockOSThread() ++ // The sigBlocked mask contains the signals not active for os/signal, ++ // initially all signals except the essential. When signal.Notify()/Stop is called, ++ // sigenable/sigdisable in turn notify this thread to update its signal ++ // mask accordingly. ++ var sigBlocked sigset ++ sigfillset(&sigBlocked) ++ for i := range sigtable { ++ if sigtable[i].flags&_SigUnblock != 0 { ++ sigdelset(&sigBlocked, i) ++ } ++ } ++ sigprocmask(_SIG_SETMASK, &sigBlocked, nil) ++ for { ++ select { ++ case sig := <-enableSigChan: ++ if sig > 0 { ++ sigdelset(&sigBlocked, int(sig)) ++ } ++ case sig := <-disableSigChan: ++ if sig > 0 { ++ sigaddset(&sigBlocked, int(sig)) ++ } ++ } ++ sigprocmask(_SIG_SETMASK, &sigBlocked, nil) ++ maskUpdatedChan <- struct{}{} ++ } ++ }() ++} ++ ++// This is called when we receive a signal when there is no signal stack. ++// This can only happen if non-Go code calls sigaltstack to disable the ++// signal stack. ++func noSignalStack(sig uint32) { ++ println("signal", sig, "received on thread with no signal stack") ++ throw("non-Go code disabled sigaltstack") ++} ++ ++// This is called if we receive a signal when there is a signal stack ++// but we are not on it. This can only happen if non-Go code called ++// sigaction without setting the SS_ONSTACK flag. ++func sigNotOnStack(sig uint32) { ++ println("signal", sig, "received but handler not on signal stack") ++ throw("non-Go code set up signal handler without SA_ONSTACK flag") ++} ++ ++// This runs on a foreign stack, without an m or a g. No stack split. ++//go:nosplit ++//go:norace ++//go:nowritebarrierrec ++func badsignal(sig uintptr, c *sigctxt) { ++ needm(0) ++ if !sigsend(uint32(sig)) { ++ // A foreign thread received the signal sig, and the ++ // Go code does not want to handle it. ++ raisebadsignal(uint32(sig), c) ++ } ++ dropm() ++} ++ ++// Determines if the signal should be handled by Go and if not, forwards the ++// signal to the handler that was installed before Go's. Returns whether the ++// signal was forwarded. ++// This is called by the signal handler, and the world may be stopped. ++//go:nosplit ++//go:nowritebarrierrec ++func sigfwdgo(sig uint32, info *_siginfo_t, ctx unsafe.Pointer) bool { ++ if sig >= uint32(len(sigtable)) { ++ return false ++ } ++ fwdFn := fwdSig[sig] ++ ++ if !signalsOK { ++ // The only way we can get here is if we are in a ++ // library or archive, we installed a signal handler ++ // at program startup, but the Go runtime has not yet ++ // been initialized. ++ if fwdFn == _SIG_DFL { ++ dieFromSignal(sig) ++ } else { ++ sigfwd(fwdFn, sig, info, ctx) ++ } ++ return true ++ } ++ ++ flags := sigtable[sig].flags ++ ++ // If there is no handler to forward to, no need to forward. ++ if fwdFn == _SIG_DFL { ++ return false ++ } ++ ++ // If we aren't handling the signal, forward it. ++ if flags&_SigHandling == 0 { ++ sigfwd(fwdFn, sig, info, ctx) ++ return true ++ } ++ ++ // Only forward synchronous signals. ++ c := sigctxt{info, ctx} ++ if c.sigcode() == _SI_USER || flags&_SigPanic == 0 { ++ return false ++ } ++ // Determine if the signal occurred inside Go code. We test that: ++ // (1) we were in a goroutine (i.e., m.curg != nil), and ++ // (2) we weren't in CGO (i.e., m.curg.syscallsp == 0). ++ g := getg() ++ if g != nil && g.m != nil && g.m.curg != nil && g.m.curg.syscallsp == 0 { ++ return false ++ } ++ // Signal not handled by Go, forward it. ++ if fwdFn != _SIG_IGN { ++ sigfwd(fwdFn, sig, info, ctx) ++ } ++ return true ++} ++ ++// msigsave saves the current thread's signal mask into mp.sigmask. ++// This is used to preserve the non-Go signal mask when a non-Go ++// thread calls a Go function. ++// This is nosplit and nowritebarrierrec because it is called by needm ++// which may be called on a non-Go thread with no g available. ++//go:nosplit ++//go:nowritebarrierrec ++func msigsave(mp *m) { ++ sigprocmask(_SIG_SETMASK, nil, &mp.sigmask) ++} ++ ++// msigrestore sets the current thread's signal mask to sigmask. ++// This is used to restore the non-Go signal mask when a non-Go thread ++// calls a Go function. ++// This is nosplit and nowritebarrierrec because it is called by dropm ++// after g has been cleared. ++//go:nosplit ++//go:nowritebarrierrec ++func msigrestore(sigmask sigset) { ++ sigprocmask(_SIG_SETMASK, &sigmask, nil) ++} ++ ++// sigblock blocks all signals in the current thread's signal mask. ++// This is used to block signals while setting up and tearing down g ++// when a non-Go thread calls a Go function. ++// The OS-specific code is expected to define sigset_all. ++// This is nosplit and nowritebarrierrec because it is called by needm ++// which may be called on a non-Go thread with no g available. ++//go:nosplit ++//go:nowritebarrierrec ++func sigblock() { ++ var set sigset ++ sigfillset(&set) ++ sigprocmask(_SIG_SETMASK, &set, nil) ++} ++ ++// unblocksig removes sig from the current thread's signal mask. ++// This is nosplit and nowritebarrierrec because it is called from ++// dieFromSignal, which can be called by sigfwdgo while running in the ++// signal handler, on the signal stack, with no g available. ++//go:nosplit ++//go:nowritebarrierrec ++func unblocksig(sig uint32) { ++ var set sigset ++ sigemptyset(&set) ++ sigaddset(&set, int(sig)) ++ sigprocmask(_SIG_UNBLOCK, &set, nil) ++} ++ ++// minitSignals is called when initializing a new m to set the ++// thread's alternate signal stack and signal mask. ++func minitSignals() { ++ minitSignalStack() ++ minitSignalMask() ++} ++ ++// minitSignalStack is called when initializing a new m to set the ++// alternate signal stack. If the alternate signal stack is not set ++// for the thread (the normal case) then set the alternate signal ++// stack to the gsignal stack. If the alternate signal stack is set ++// for the thread (the case when a non-Go thread sets the alternate ++// signal stack and then calls a Go function) then set the gsignal ++// stack to the alternate signal stack. Record which choice was made ++// in newSigstack, so that it can be undone in unminit. ++func minitSignalStack() { ++ _g_ := getg() ++ var st _stack_t ++ sigaltstack(nil, &st) ++ if st.ss_flags&_SS_DISABLE != 0 { ++ signalstack(_g_.m.gsignalstack, _g_.m.gsignalstacksize) ++ _g_.m.newSigstack = true ++ } else { ++ _g_.m.newSigstack = false ++ } ++} ++ ++// minitSignalMask is called when initializing a new m to set the ++// thread's signal mask. When this is called all signals have been ++// blocked for the thread. This starts with m.sigmask, which was set ++// either from initSigmask for a newly created thread or by calling ++// msigsave if this is a non-Go thread calling a Go function. It ++// removes all essential signals from the mask, thus causing those ++// signals to not be blocked. Then it sets the thread's signal mask. ++// After this is called the thread can receive signals. ++func minitSignalMask() { ++ nmask := getg().m.sigmask ++ for i := range sigtable { ++ if sigtable[i].flags&_SigUnblock != 0 { ++ sigdelset(&nmask, i) ++ } ++ } ++ sigprocmask(_SIG_SETMASK, &nmask, nil) ++} ++ ++// unminitSignals is called from dropm, via unminit, to undo the ++// effect of calling minit on a non-Go thread. ++//go:nosplit ++func unminitSignals() { ++ if getg().m.newSigstack { ++ signalstack(nil, 0) ++ } ++} --- gcc-7-7.5.0.orig/debian/patches/src_libgo_go_syscall.diff +++ gcc-7-7.5.0/debian/patches/src_libgo_go_syscall.diff @@ -0,0 +1,781 @@ +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/errstr_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/errstr_gnu.go +@@ -0,0 +1,31 @@ ++// errstr_gnu.go -- GNU/Hurd specific error strings. ++ ++// Copyright 2010 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// We use this rather than errstr.go because on GNU/Linux sterror_r ++// returns a pointer to the error message, and may not use buf at all. ++ ++package syscall ++ ++import "unsafe" ++ ++//sysnb strerror_r(errnum int, b []byte) (errstr *byte) ++//strerror_r(errnum _C_int, b *byte, len Size_t) *byte ++ ++func Errstr(errnum int) string { ++ a := make([]byte, 128) ++ p := strerror_r(errnum, a) ++ b := (*[1000]byte)(unsafe.Pointer(p)) ++ i := 0 ++ for b[i] != 0 { ++ i++ ++ } ++ // Lowercase first letter: Bad -> bad, but STREAM -> STREAM. ++ if i > 1 && 'A' <= b[0] && b[0] <= 'Z' && 'a' <= b[1] && b[1] <= 'z' { ++ c := b[0] + 'a' - 'A' ++ return string(c) + string(b[1:i]) ++ } ++ return string(b[:i]) ++} +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_gnu_386.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_gnu_386.go +@@ -0,0 +1,10 @@ ++// Copyright 2012 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// GNU/Hurd library calls 386 specific. ++ ++package syscall ++ ++//sys Ioperm(from int, num int, on int) (err error) ++//ioperm(from _C_long, num _C_long, on _C_int) _C_int +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_gnu.go +@@ -0,0 +1,181 @@ ++// Copyright 2014 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// GNU/Hurd library calls. ++ ++package syscall ++ ++import "unsafe" ++ ++//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) ++//__go_openat(dirfd _C_int, path *byte, flags _C_int, mode Mode_t) _C_int ++ ++//sys futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) ++//futimesat(dirfd _C_int, path *byte, times *[2]Timeval) _C_int ++func Futimesat(dirfd int, path string, tv []Timeval) (err error) { ++ if len(tv) != 2 { ++ return EINVAL ++ } ++ return futimesat(dirfd, StringBytePtr(path), (*[2]Timeval)(unsafe.Pointer(&tv[0]))) ++} ++ ++func Futimes(fd int, tv []Timeval) (err error) { ++ // Believe it or not, this is the best we can do on GNU/Linux ++ // (and is what glibc does). ++ return Utimes("/proc/self/fd/"+itoa(fd), tv) ++} ++ ++//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) ++//ptrace(request _C_int, pid Pid_t, addr *byte, data *byte) _C_long ++ ++// Dummy function ++func raw_ptrace(request int, pid int, addr *byte, data *byte) Errno { ++ return ENOSYS ++} ++ ++//sys accept4(fd int, sa *RawSockaddrAny, len *Socklen_t, flags int) (nfd int, err error) ++//accept4(fd _C_int, sa *RawSockaddrAny, len *Socklen_t, flags _C_int) _C_int ++ ++func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { ++ var rsa RawSockaddrAny ++ var len Socklen_t = SizeofSockaddrAny ++ nfd, err = accept4(fd, &rsa, &len, flags) ++ if err != nil { ++ return -1, nil, err ++ } ++ sa, err = anyToSockaddr(&rsa) ++ if err != nil { ++ Close(nfd) ++ return -1, nil, err ++ } ++ return nfd, sa, nil ++} ++ ++///INCLUDE? ++///sys Acct(path string) (err error) ++///acct(path *byte) _C_int ++ ++//sysnb Dup3(oldfd int, newfd int, flags int) (err error) ++//dup3(oldfd _C_int, newfd _C_int, flags _C_int) _C_int ++ ++//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) ++//faccessat(dirfd _C_int, pathname *byte, mode _C_int, flags _C_int) _C_int ++ ++//sys Fallocate(fd int, mode uint32, off int64, len int64) (err error) ++//fallocate(fd _C_int, mode _C_int, offset Offset_t, len Offset_t) _C_int ++ ++//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) ++//fchmodat(dirfd _C_int, pathname *byte, mode Mode_t, flags _C_int) _C_int ++ ++//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) ++//fchownat(dirfd _C_int, path *byte, owner Uid_t, group Gid_t, flags _C_int) _C_int ++ ++//sys Flock(fd int, how int) (err error) ++//flock(fd _C_int, how _C_int) _C_int ++ ++//sys Fstatfs(fd int, buf *Statfs_t) (err error) ++//fstatfs(fd _C_int, buf *Statfs_t) _C_int ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var p *byte ++ if len(buf) > 0 { ++ p = &buf[0] ++ } else { ++ p = (*byte)(unsafe.Pointer(&_zero)) ++ } ++ s := SYS_GETDENTS64 ++ if s == 0 { ++ s = SYS_GETDENTS ++ } ++ r1, _, errno := Syscall(uintptr(s), uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(len(buf))) ++ n = int(r1) ++ if n < 0 { ++ err = errno ++ } ++ return ++} ++ ++func clen(n []byte) int { ++ for i := 0; i < len(n); i++ { ++ if n[i] == 0 { ++ return i ++ } ++ } ++ return len(n) ++} ++ ++func ReadDirent(fd int, buf []byte) (n int, err error) { ++ return Getdents(fd, buf) ++} ++ ++ ++///INCLUDE?? ++///sys Getxattr(path string, attr string, dest []byte) (sz int, err error) ++///getxattr(path *byte, attr *byte, buf *byte, count Size_t) Ssize_t ++ ++///INCLUDE?? ++///sys Listxattr(path string, dest []byte) (sz int, err error) ++///listxattr(path *byte, list *byte, size Size_t) Ssize_t ++ ++//sys Mkdirat(dirfd int, path string, mode uint32) (err error) ++//mkdirat(dirfd _C_int, path *byte, mode Mode_t) _C_int ++ ++//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) ++//mknodat(dirfd _C_int, path *byte, mode Mode_t, dev _dev_t) _C_int ++ ++//sysnb pipe2(p *[2]_C_int, flags int) (err error) ++//pipe2(p *[2]_C_int, flags _C_int) _C_int ++func Pipe2(p []int, flags int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, flags) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++///INCLUDE?? ++///sys Removexattr(path string, attr string) (err error) ++///removexattr(path *byte, name *byte) _C_int ++ ++///INCLUDE?? ++///sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) ++///renameat(olddirfd _C_int, oldpath *byte, newdirfd _C_int, newpath *byte) _C_int ++ ++//INCLUDE?? ++///sys Setxattr(path string, attr string, data []byte, flags int) (err error) ++///setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int ++ ++//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) ++//sync_file_range(fd _C_int, off Offset_t, n Offset_t, flags _C_uint) _C_int ++ ++//INCLUDE?? ++///sysnb Sysinfo(info *Sysinfo_t) (err error) ++///sysinfo(info *Sysinfo_t) _C_int ++ ++//func Unlinkat(dirfd int, path string) (err error) { ++// return unlinkat(dirfd, path, 0) ++//} ++ ++///INCLUDE?? ++///sys Ustat(dev int, ubuf *Ustat_t) (err error) ++///ustat(dev _dev_t, ubuf *Ustat_t) _C_int ++ ++//sys sendfile(outfd int, infd int, offset *Offset_t, count int) (written int, err error) ++//sendfile64(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t ++func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ var soff Offset_t ++ var psoff *Offset_t ++ if offset != nil { ++ soff = Offset_t(*offset) ++ psoff = &soff ++ } ++ written, err = sendfile(outfd, infd, psoff, count) ++ if offset != nil { ++ *offset = int64(soff) ++ } ++ return ++} +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_posix_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/libcall_posix_gnu.go +@@ -0,0 +1,402 @@ ++// Copyright 2011 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// POSIX library calls. ++// Removed the mount call for GNU/Hurd, it exists but use translators. ++// Functionality is not the same as descibed in Linux ++// Removed the madvise call for GNU/Hurd, not yet implemented. ++// This file is compiled as ordinary Go code, ++// but it is also input to mksyscall, ++// which parses the //sys lines and generates library call stubs. ++// Note that sometimes we use a lowercase //sys name and ++// wrap it in our own nicer implementation. ++ ++// +build gnu ++ ++package syscall ++ ++import "unsafe" ++ ++/* ++ * Wrapped ++ */ ++ ++//sysnb pipe(p *[2]_C_int) (err error) ++//pipe(p *[2]_C_int) _C_int ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe(&pp) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++//sys utimes(path string, times *[2]Timeval) (err error) ++//utimes(path *byte, times *[2]Timeval) _C_int ++func Utimes(path string, tv []Timeval) (err error) { ++ if len(tv) != 2 { ++ return EINVAL ++ } ++ return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) ++} ++ ++//sys getcwd(buf *byte, size Size_t) (err error) ++//getcwd(buf *byte, size Size_t) *byte ++ ++const ImplementsGetwd = true ++ ++func Getwd() (ret string, err error) { ++ for len := Size_t(4096); ; len *= 2 { ++ b := make([]byte, len) ++ err := getcwd(&b[0], len) ++ if err == nil { ++ i := 0 ++ for b[i] != 0 { ++ i++ ++ } ++ return string(b[0:i]), nil ++ } ++ if err != ERANGE { ++ return "", err ++ } ++ } ++} ++ ++func Getcwd(buf []byte) (n int, err error) { ++ err = getcwd(&buf[0], Size_t(len(buf))) ++ if err == nil { ++ i := 0 ++ for buf[i] != 0 { ++ i++ ++ } ++ n = i + 1 ++ } ++ return ++} ++ ++//sysnb getgroups(size int, list *Gid_t) (nn int, err error) ++//getgroups(size _C_int, list *Gid_t) _C_int ++ ++func Getgroups() (gids []int, err error) { ++ n, err := getgroups(0, nil) ++ if err != nil { ++ return nil, err ++ } ++ if n == 0 { ++ return nil, nil ++ } ++ ++ // Sanity check group count. Max is 1<<16 on GNU/Linux. ++ if n < 0 || n > 1<<20 { ++ return nil, EINVAL ++ } ++ ++ a := make([]Gid_t, n) ++ n, err = getgroups(n, &a[0]) ++ if err != nil { ++ return nil, err ++ } ++ gids = make([]int, n) ++ for i, v := range a[0:n] { ++ gids[i] = int(v) ++ } ++ return ++} ++ ++//sysnb setgroups(n int, list *Gid_t) (err error) ++//setgroups(n Size_t, list *Gid_t) _C_int ++ ++func Setgroups(gids []int) (err error) { ++ if len(gids) == 0 { ++ return setgroups(0, nil) ++ } ++ ++ a := make([]Gid_t, len(gids)) ++ for i, v := range gids { ++ a[i] = Gid_t(v) ++ } ++ return setgroups(len(a), &a[0]) ++} ++ ++type WaitStatus uint32 ++ ++// The WaitStatus methods are implemented in C, to pick up the macros ++// #defines in . ++ ++func (w WaitStatus) Exited() bool ++func (w WaitStatus) Signaled() bool ++func (w WaitStatus) Stopped() bool ++func (w WaitStatus) Continued() bool ++func (w WaitStatus) CoreDump() bool ++func (w WaitStatus) ExitStatus() int ++func (w WaitStatus) Signal() Signal ++func (w WaitStatus) StopSignal() Signal ++func (w WaitStatus) TrapCause() int ++ ++//sys Mkfifo(path string, mode uint32) (err error) ++//mkfifo(path *byte, mode Mode_t) _C_int ++ ++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) ++//select(nfd _C_int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) _C_int ++ ++const nfdbits = int(unsafe.Sizeof(fds_bits_type(0)) * 8) ++ ++type FdSet struct { ++ Bits [(FD_SETSIZE + nfdbits - 1) / nfdbits]fds_bits_type ++} ++ ++func FDSet(fd int, set *FdSet) { ++ set.Bits[fd/nfdbits] |= (1 << (uint)(fd%nfdbits)) ++} ++ ++func FDClr(fd int, set *FdSet) { ++ set.Bits[fd/nfdbits] &^= (1 << (uint)(fd%nfdbits)) ++} ++ ++func FDIsSet(fd int, set *FdSet) bool { ++ if set.Bits[fd/nfdbits]&(1<<(uint)(fd%nfdbits)) != 0 { ++ return true ++ } else { ++ return false ++ } ++} ++ ++func FDZero(set *FdSet) { ++ for i := range set.Bits { ++ set.Bits[i] = 0 ++ } ++} ++ ++//sys Access(path string, mode uint32) (err error) ++//access(path *byte, mode _C_int) _C_int ++ ++//sys Chdir(path string) (err error) ++//chdir(path *byte) _C_int ++ ++//sys Chmod(path string, mode uint32) (err error) ++//chmod(path *byte, mode Mode_t) _C_int ++ ++//sys Chown(path string, uid int, gid int) (err error) ++//chown(path *byte, uid Uid_t, gid Gid_t) _C_int ++ ++//sys Chroot(path string) (err error) ++//chroot(path *byte) _C_int ++ ++//sys Close(fd int) (err error) ++//close(fd _C_int) _C_int ++ ++//sys Creat(path string, mode uint32) (fd int, err error) ++//creat(path *byte, mode Mode_t) _C_int ++ ++//sysnb Dup(oldfd int) (fd int, err error) ++//dup(oldfd _C_int) _C_int ++ ++//sysnb Dup2(oldfd int, newfd int) (err error) ++//dup2(oldfd _C_int, newfd _C_int) _C_int ++ ++//sys Exit(code int) ++//exit(code _C_int) ++ ++//sys Fchdir(fd int) (err error) ++//fchdir(fd _C_int) _C_int ++ ++//sys Fchmod(fd int, mode uint32) (err error) ++//fchmod(fd _C_int, mode Mode_t) _C_int ++ ++//sys Fchown(fd int, uid int, gid int) (err error) ++//fchown(fd _C_int, uid Uid_t, gid Gid_t) _C_int ++ ++//sys fcntl(fd int, cmd int, arg int) (val int, err error) ++//__go_fcntl(fd _C_int, cmd _C_int, arg _C_int) _C_int ++ ++//sys FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) ++//__go_fcntl_flock(fd _C_int, cmd _C_int, arg *Flock_t) _C_int ++ ++//sys Fdatasync(fd int) (err error) ++//fdatasync(fd _C_int) _C_int ++ ++//sys Fsync(fd int) (err error) ++//fsync(fd _C_int) _C_int ++ ++//sysnb Getegid() (egid int) ++//getegid() Gid_t ++ ++//sysnb Geteuid() (euid int) ++//geteuid() Uid_t ++ ++//sysnb Getgid() (gid int) ++//getgid() Gid_t ++ ++//sysnb Getpgid(pid int) (pgid int, err error) ++//getpgid(pid Pid_t) Pid_t ++ ++//sysnb Getpgrp() (pid int) ++//getpgrp() Pid_t ++ ++//sysnb Getpid() (pid int) ++//getpid() Pid_t ++ ++//sysnb Getppid() (ppid int) ++//getppid() Pid_t ++ ++//sys Getpriority(which int, who int) (prio int, err error) ++//getpriority(which _C_int, who _C_int) _C_int ++ ++//sysnb Getrusage(who int, rusage *Rusage) (err error) ++//getrusage(who _C_int, rusage *Rusage) _C_int ++ ++//sysnb gettimeofday(tv *Timeval, tz *byte) (err error) ++//gettimeofday(tv *Timeval, tz *byte) _C_int ++func Gettimeofday(tv *Timeval) (err error) { ++ return gettimeofday(tv, nil) ++} ++ ++//sysnb Getuid() (uid int) ++//getuid() Uid_t ++ ++//sysnb Kill(pid int, sig Signal) (err error) ++//kill(pid Pid_t, sig _C_int) _C_int ++ ++//sys Lchown(path string, uid int, gid int) (err error) ++//lchown(path *byte, uid Uid_t, gid Gid_t) _C_int ++ ++//sys Link(oldpath string, newpath string) (err error) ++//link(oldpath *byte, newpath *byte) _C_int ++ ++//sys Mkdir(path string, mode uint32) (err error) ++//mkdir(path *byte, mode Mode_t) _C_int ++ ++//sys Mknod(path string, mode uint32, dev int) (err error) ++//mknod(path *byte, mode Mode_t, dev _dev_t) _C_int ++ ++//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) ++//nanosleep(time *Timespec, leftover *Timespec) _C_int ++ ++//sys Pause() (err error) ++//pause() _C_int ++ ++//sys read(fd int, p []byte) (n int, err error) ++//read(fd _C_int, buf *byte, count Size_t) Ssize_t ++ ++//sys readlen(fd int, p *byte, np int) (n int, err error) ++//read(fd _C_int, buf *byte, count Size_t) Ssize_t ++ ++//sys Readlink(path string, buf []byte) (n int, err error) ++//readlink(path *byte, buf *byte, bufsiz Size_t) Ssize_t ++ ++//sys Rename(oldpath string, newpath string) (err error) ++//rename(oldpath *byte, newpath *byte) _C_int ++ ++//sys Rmdir(path string) (err error) ++//rmdir(path *byte) _C_int ++ ++//sys Setdomainname(p []byte) (err error) ++//setdomainname(name *byte, len Size_t) _C_int ++ ++//sys Sethostname(p []byte) (err error) ++//sethostname(name *byte, len Size_t) _C_int ++ ++//sysnb Setgid(gid int) (err error) ++//setgid(gid Gid_t) _C_int ++ ++//sysnb Setregid(rgid int, egid int) (err error) ++//setregid(rgid Gid_t, egid Gid_t) _C_int ++ ++//sysnb Setpgid(pid int, pgid int) (err error) ++//setpgid(pid Pid_t, pgid Pid_t) _C_int ++ ++//sys Setpriority(which int, who int, prio int) (err error) ++//setpriority(which _C_int, who _C_int, prio _C_int) _C_int ++ ++//sysnb Setreuid(ruid int, euid int) (err error) ++//setreuid(ruid Uid_t, euid Uid_t) _C_int ++ ++//sysnb Setsid() (pid int, err error) ++//setsid() Pid_t ++ ++//sysnb settimeofday(tv *Timeval, tz *byte) (err error) ++//settimeofday(tv *Timeval, tz *byte) _C_int ++ ++func Settimeofday(tv *Timeval) (err error) { ++ return settimeofday(tv, nil) ++} ++ ++//sysnb Setuid(uid int) (err error) ++//setuid(uid Uid_t) _C_int ++ ++//sys Symlink(oldpath string, newpath string) (err error) ++//symlink(oldpath *byte, newpath *byte) _C_int ++ ++//sys Sync() ++//sync() ++ ++//sysnb Time(t *Time_t) (tt Time_t, err error) ++//time(t *Time_t) Time_t ++ ++//sysnb Times(tms *Tms) (ticks uintptr, err error) ++//times(tms *Tms) _clock_t ++ ++//sysnb Umask(mask int) (oldmask int) ++//umask(mask Mode_t) Mode_t ++ ++//sys Unlink(path string) (err error) ++//unlink(path *byte) _C_int ++ ++//sys Utime(path string, buf *Utimbuf) (err error) ++//utime(path *byte, buf *Utimbuf) _C_int ++ ++//sys write(fd int, p []byte) (n int, err error) ++//write(fd _C_int, buf *byte, count Size_t) Ssize_t ++ ++//sys writelen(fd int, p *byte, np int) (n int, err error) ++//write(fd _C_int, buf *byte, count Size_t) Ssize_t ++ ++//sys munmap(addr uintptr, length uintptr) (err error) ++//munmap(addr *byte, length Size_t) _C_int ++ ++//sys Mprotect(b []byte, prot int) (err error) ++//mprotect(addr *byte, len Size_t, prot _C_int) _C_int ++ ++//sys Mlock(b []byte) (err error) ++//mlock(addr *byte, len Size_t) _C_int ++ ++//sys Munlock(b []byte) (err error) ++//munlock(addr *byte, len Size_t) _C_int ++ ++//sys Mlockall(flags int) (err error) ++//mlockall(flags _C_int) _C_int ++ ++//sys Munlockall() (err error) ++//munlockall() _C_int ++ ++func setTimespec(sec, nsec int64) Timespec { ++ return Timespec{Sec: Timespec_sec_t(sec), Nsec: Timespec_nsec_t(nsec)} ++} ++ ++func setTimeval(sec, usec int64) Timeval { ++ return Timeval{Sec: Timeval_sec_t(sec), Usec: Timeval_usec_t(usec)} ++} ++ ++//sysnb Tcgetattr(fd int, p *Termios) (err error) ++//tcgetattr(fd _C_int, p *Termios) _C_int ++ ++//sys Tcsetattr(fd int, actions int, p *Termios) (err error) ++//tcsetattr(fd _C_int, actions _C_int, p *Termios) _C_int ++ ++//sys sysconf(name int) (ret int64, err error) ++//sysconf(name _C_int) _C_long ++ ++func Sysconf(name int) (ret int64, err error) { ++ // If an option is not available, sysconf returns -1 without ++ // changing errno. Detect this case and return err == nil. ++ SetErrno(0) ++ ret, err = sysconf(name) ++ if err == Errno(0) { ++ err = nil ++ } ++ return ret, err ++} +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/socket_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/socket_gnu.go +@@ -0,0 +1,90 @@ ++// socket_gnu.go -- Socket handling specific to GNU/Hurd. ++ ++// Copyright 2010 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build gnu ++ ++package syscall ++ ++import "unsafe" ++ ++const SizeofSockaddrInet4 = 16 ++const SizeofSockaddrInet6 = 28 ++const SizeofSockaddrUnix = 110 ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++func (sa *RawSockaddrInet4) setLen() Socklen_t { ++ sa.Len = SizeofSockaddrInet4 ++ return SizeofSockaddrInet4 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++func (sa *RawSockaddrInet6) setLen() Socklen_t { ++ sa.Len = SizeofSockaddrInet6 ++ return SizeofSockaddrInet6 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [108]int8 ++} ++ ++func (sa *RawSockaddrUnix) setLen(n int) { ++ sa.Len = uint8(3 + n) // 2 for Family, Len; 1 for NUL. ++} ++ ++func (sa *RawSockaddrUnix) getLen() (int, error) { ++ if sa.Len < 3 || sa.Len > SizeofSockaddrUnix { ++ return 0, EINVAL ++ } ++ // Assume path ends at NUL. ++ n := 0 ++ for n < len(sa.Path) && sa.Path[n] != 0 { ++ n++ ++ } ++ return n, nil ++} ++ ++func (sa *RawSockaddrUnix) adjustAbstract(sl Socklen_t) Socklen_t { ++ return sl ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++// BindToDevice binds the socket associated with fd to device. ++func BindToDevice(fd int, device string) (err error) { ++ return ENOSYS ++} ++ ++func anyToSockaddrOS(rsa *RawSockaddrAny) (Sockaddr, error) { ++ return nil, EAFNOSUPPORT ++} ++ ++func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { ++ var value IPv6MTUInfo ++ vallen := Socklen_t(SizeofIPv6MTUInfo) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) ++ return &value, err ++} +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/syscall_gnu.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/syscall_gnu.go +@@ -0,0 +1,23 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package syscall ++ ++import "unsafe" ++ ++func direntIno(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) ++} ++ ++func direntReclen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) ++} ++ ++func direntNamlen(buf []byte) (uint64, bool) { ++ reclen, ok := direntReclen(buf) ++ if !ok { ++ return 0, false ++ } ++ return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true ++} +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/wait.c +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/go/syscall/wait.c ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/wait.c +@@ -8,6 +8,9 @@ + OS-independent. */ + + #include ++#ifndef WCONTINUED ++#define WCONTINUED 0 ++#endif + #include + + #include "runtime.h" --- gcc-7-7.5.0.orig/debian/patches/src_libgo_go_syscall_syscall_gnu_test.go.diff +++ gcc-7-7.5.0/debian/patches/src_libgo_go_syscall_syscall_gnu_test.go.diff @@ -0,0 +1,361 @@ +Index: gcc-7-7.2.0-12.1/src/libgo/go/syscall/syscall_gnu_test.go +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/go/syscall/syscall_gnu_test.go +@@ -0,0 +1,356 @@ ++// Copyright 2013 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build gnu ++ ++package syscall_test ++ ++import ( ++ "flag" ++ "fmt" ++ "internal/testenv" ++ "io/ioutil" ++ "net" ++ "os" ++ "os/exec" ++ "path/filepath" ++ "runtime" ++ "syscall" ++ "testing" ++ "time" ++) ++ ++// Tests that below functions, structures and constants are consistent ++// on all Unix-like systems. ++func _() { ++ // program scheduling priority functions and constants ++ var ( ++ _ func(int, int, int) error = syscall.Setpriority ++ _ func(int, int) (int, error) = syscall.Getpriority ++ ) ++ const ( ++ _ int = syscall.PRIO_USER ++ _ int = syscall.PRIO_PROCESS ++ _ int = syscall.PRIO_PGRP ++ ) ++ ++ // termios constants ++ const ( ++ _ int = syscall.TCIFLUSH ++ _ int = syscall.TCIOFLUSH ++ _ int = syscall.TCOFLUSH ++ ) ++ ++ // fcntl file locking structure and constants ++ var ( ++ _ = syscall.Flock_t{ ++ Type: int32(0), ++ Whence: int32(0), ++ Start: int64(0), ++ Len: int64(0), ++ Pid: int32(0), ++ } ++ ) ++ const ( ++ _ = syscall.F_GETLK ++ _ = syscall.F_SETLK ++ _ = syscall.F_SETLKW ++ ) ++} ++ ++// TestFcntlFlock tests whether the file locking structure matches ++// the calling convention of each kernel. ++// On some Linux systems, glibc uses another set of values for the ++// commands and translates them to the correct value that the kernel ++// expects just before the actual fcntl syscall. As Go uses raw ++// syscalls directly, it must use the real value, not the glibc value. ++// Thus this test also verifies that the Flock_t structure can be ++// roundtripped with F_SETLK and F_GETLK. ++func TestFcntlFlock(t *testing.T) { ++ if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") { ++ t.Skip("skipping; no child processes allowed on iOS") ++ } ++ flock := syscall.Flock_t{ ++ Type: syscall.F_WRLCK, ++ Start: 31415, Len: 271828, Whence: 1, ++ } ++ if os.Getenv("GO_WANT_HELPER_PROCESS") == "" { ++ // parent ++ name := filepath.Join(os.TempDir(), "TestFcntlFlock") ++ fd, err := syscall.Open(name, syscall.O_CREAT|syscall.O_RDWR|syscall.O_CLOEXEC, 0) ++ if err != nil { ++ t.Fatalf("Open failed: %v", err) ++ } ++ defer syscall.Unlink(name) ++ defer syscall.Close(fd) ++ if err := syscall.Ftruncate(fd, 1<<20); err != nil { ++ t.Fatalf("Ftruncate(1<<20) failed: %v", err) ++ } ++ if err := syscall.FcntlFlock(uintptr(fd), syscall.F_SETLK, &flock); err != nil { ++ t.Fatalf("FcntlFlock(F_SETLK) failed: %v", err) ++ } ++ cmd := exec.Command(os.Args[0], "-test.run=^TestFcntlFlock$") ++ cmd.Env = append(os.Environ(), "GO_WANT_HELPER_PROCESS=1") ++ cmd.ExtraFiles = []*os.File{os.NewFile(uintptr(fd), name)} ++ out, err := cmd.CombinedOutput() ++ if len(out) > 0 || err != nil { ++ t.Fatalf("child process: %q, %v", out, err) ++ } ++ } else { ++ // child ++ got := flock ++ // make sure the child lock is conflicting with the parent lock ++ got.Start-- ++ got.Len++ ++ if err := syscall.FcntlFlock(3, syscall.F_GETLK, &got); err != nil { ++ t.Fatalf("FcntlFlock(F_GETLK) failed: %v", err) ++ } ++ flock.Pid = int32(syscall.Getppid()) ++ // Linux kernel always set Whence to 0 ++ flock.Whence = 0 ++ if got.Type == flock.Type && got.Start == flock.Start && got.Len == flock.Len && got.Pid == flock.Pid && got.Whence == flock.Whence { ++ os.Exit(0) ++ } ++ t.Fatalf("FcntlFlock got %v, want %v", got, flock) ++ } ++} ++ ++// TestPassFD tests passing a file descriptor over a Unix socket. ++// ++// This test involved both a parent and child process. The parent ++// process is invoked as a normal test, with "go test", which then ++// runs the child process by running the current test binary with args ++// "-test.run=^TestPassFD$" and an environment variable used to signal ++// that the test should become the child process instead. ++func TestPassFD(t *testing.T) { ++ switch runtime.GOOS { ++ case "dragonfly": ++ // TODO(jsing): Figure out why sendmsg is returning EINVAL. ++ t.Skip("skipping test on dragonfly") ++ case "solaris": ++ // TODO(aram): Figure out why ReadMsgUnix is returning empty message. ++ t.Skip("skipping test on solaris, see issue 7402") ++ } ++ ++ testenv.MustHaveExec(t) ++ ++ if os.Getenv("GO_WANT_HELPER_PROCESS") == "1" { ++ passFDChild() ++ return ++ } ++ ++ tempDir, err := ioutil.TempDir("", "TestPassFD") ++ if err != nil { ++ t.Fatal(err) ++ } ++ defer os.RemoveAll(tempDir) ++ ++ fds, err := syscall.Socketpair(syscall.AF_LOCAL, syscall.SOCK_STREAM, 0) ++ if err != nil { ++ t.Fatalf("Socketpair: %v", err) ++ } ++ defer syscall.Close(fds[0]) ++ defer syscall.Close(fds[1]) ++ writeFile := os.NewFile(uintptr(fds[0]), "child-writes") ++ readFile := os.NewFile(uintptr(fds[1]), "parent-reads") ++ defer writeFile.Close() ++ defer readFile.Close() ++ ++ cmd := exec.Command(os.Args[0], "-test.run=^TestPassFD$", "--", tempDir) ++ cmd.Env = append(os.Environ(), "GO_WANT_HELPER_PROCESS=1") ++ cmd.ExtraFiles = []*os.File{writeFile} ++ ++ out, err := cmd.CombinedOutput() ++ if len(out) > 0 || err != nil { ++ t.Fatalf("child process: %q, %v", out, err) ++ } ++ ++ c, err := net.FileConn(readFile) ++ if err != nil { ++ t.Fatalf("FileConn: %v", err) ++ } ++ defer c.Close() ++ ++ uc, ok := c.(*net.UnixConn) ++ if !ok { ++ t.Fatalf("unexpected FileConn type; expected UnixConn, got %T", c) ++ } ++ ++ buf := make([]byte, 32) // expect 1 byte ++ oob := make([]byte, 32) // expect 24 bytes ++ closeUnix := time.AfterFunc(5*time.Second, func() { ++ t.Logf("timeout reading from unix socket") ++ uc.Close() ++ }) ++ _, oobn, _, _, err := uc.ReadMsgUnix(buf, oob) ++ closeUnix.Stop() ++ ++ scms, err := syscall.ParseSocketControlMessage(oob[:oobn]) ++ if err != nil { ++ t.Fatalf("ParseSocketControlMessage: %v", err) ++ } ++ if len(scms) != 1 { ++ t.Fatalf("expected 1 SocketControlMessage; got scms = %#v", scms) ++ } ++ scm := scms[0] ++ gotFds, err := syscall.ParseUnixRights(&scm) ++ if err != nil { ++ t.Fatalf("syscall.ParseUnixRights: %v", err) ++ } ++ if len(gotFds) != 1 { ++ t.Fatalf("wanted 1 fd; got %#v", gotFds) ++ } ++ ++ f := os.NewFile(uintptr(gotFds[0]), "fd-from-child") ++ defer f.Close() ++ ++ got, err := ioutil.ReadAll(f) ++ want := "Hello from child process!\n" ++ if string(got) != want { ++ t.Errorf("child process ReadAll: %q, %v; want %q", got, err, want) ++ } ++} ++ ++// passFDChild is the child process used by TestPassFD. ++func passFDChild() { ++ defer os.Exit(0) ++ ++ // Look for our fd. It should be fd 3, but we work around an fd leak ++ // bug here (https://golang.org/issue/2603) to let it be elsewhere. ++ var uc *net.UnixConn ++ for fd := uintptr(3); fd <= 10; fd++ { ++ f := os.NewFile(fd, "unix-conn") ++ var ok bool ++ netc, _ := net.FileConn(f) ++ uc, ok = netc.(*net.UnixConn) ++ if ok { ++ break ++ } ++ } ++ if uc == nil { ++ fmt.Println("failed to find unix fd") ++ return ++ } ++ ++ // Make a file f to send to our parent process on uc. ++ // We make it in tempDir, which our parent will clean up. ++ flag.Parse() ++ tempDir := flag.Arg(0) ++ f, err := ioutil.TempFile(tempDir, "") ++ if err != nil { ++ fmt.Printf("TempFile: %v", err) ++ return ++ } ++ ++ f.Write([]byte("Hello from child process!\n")) ++ f.Seek(0, 0) ++ ++ rights := syscall.UnixRights(int(f.Fd())) ++ dummyByte := []byte("x") ++ n, oobn, err := uc.WriteMsgUnix(dummyByte, rights, nil) ++ if err != nil { ++ fmt.Printf("WriteMsgUnix: %v", err) ++ return ++ } ++ if n != 1 || oobn != len(rights) { ++ fmt.Printf("WriteMsgUnix = %d, %d; want 1, %d", n, oobn, len(rights)) ++ return ++ } ++} ++ ++// TestUnixRightsRoundtrip tests that UnixRights, ParseSocketControlMessage, ++// and ParseUnixRights are able to successfully round-trip lists of file descriptors. ++func TestUnixRightsRoundtrip(t *testing.T) { ++ testCases := [...][][]int{ ++ {{42}}, ++ {{1, 2}}, ++ {{3, 4, 5}}, ++ {{}}, ++ {{1, 2}, {3, 4, 5}, {}, {7}}, ++ } ++ for _, testCase := range testCases { ++ b := []byte{} ++ var n int ++ for _, fds := range testCase { ++ // Last assignment to n wins ++ n = len(b) + syscall.CmsgLen(4*len(fds)) ++ b = append(b, syscall.UnixRights(fds...)...) ++ } ++ // Truncate b ++ b = b[:n] ++ ++ scms, err := syscall.ParseSocketControlMessage(b) ++ if err != nil { ++ t.Fatalf("ParseSocketControlMessage: %v", err) ++ } ++ if len(scms) != len(testCase) { ++ t.Fatalf("expected %v SocketControlMessage; got scms = %#v", len(testCase), scms) ++ } ++ for i, scm := range scms { ++ gotFds, err := syscall.ParseUnixRights(&scm) ++ if err != nil { ++ t.Fatalf("ParseUnixRights: %v", err) ++ } ++ wantFds := testCase[i] ++ if len(gotFds) != len(wantFds) { ++ t.Fatalf("expected %v fds, got %#v", len(wantFds), gotFds) ++ } ++ for j, fd := range gotFds { ++ if fd != wantFds[j] { ++ t.Fatalf("expected fd %v, got %v", wantFds[j], fd) ++ } ++ } ++ } ++ } ++} ++ ++func TestRlimit(t *testing.T) { ++ var rlimit, zero syscall.Rlimit ++ err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit) ++ if err != nil { ++ t.Fatalf("Getrlimit: save failed: %v", err) ++ } ++ if zero == rlimit { ++ t.Fatalf("Getrlimit: save failed: got zero value %#v", rlimit) ++ } ++ set := rlimit ++ set.Cur = set.Max - 1 ++ err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &set) ++ if err != nil { ++ t.Fatalf("Setrlimit: set failed: %#v %v", set, err) ++ } ++ var get syscall.Rlimit ++ err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &get) ++ if err != nil { ++ t.Fatalf("Getrlimit: get failed: %v", err) ++ } ++ set = rlimit ++ set.Cur = set.Max - 1 ++ if set != get { ++ // Seems like Darwin requires some privilege to ++ // increase the soft limit of rlimit sandbox, though ++ // Setrlimit never reports an error. ++ switch runtime.GOOS { ++ case "darwin": ++ default: ++ t.Fatalf("Rlimit: change failed: wanted %#v got %#v", set, get) ++ } ++ } ++ err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rlimit) ++ if err != nil { ++ t.Fatalf("Setrlimit: restore failed: %#v %v", rlimit, err) ++ } ++} ++ ++func TestSeekFailure(t *testing.T) { ++ _, err := syscall.Seek(-1, 0, 0) ++ if err == nil { ++ t.Fatalf("Seek(-1, 0, 0) did not fail") ++ } ++ str := err.Error() // used to crash on Linux ++ t.Logf("Seek: %v", str) ++ if str == "" { ++ t.Fatalf("Seek(-1, 0, 0) return error with empty message") ++ } ++} --- gcc-7-7.5.0.orig/debian/patches/src_libgo_runtime.diff +++ gcc-7-7.5.0/debian/patches/src_libgo_runtime.diff @@ -0,0 +1,47 @@ +Index: gcc-7-7.2.0-12.1/src/libgo/runtime/getncpu-gnu.c +=================================================================== +--- /dev/null ++++ gcc-7-7.2.0-12.1/src/libgo/runtime/getncpu-gnu.c +@@ -0,0 +1,16 @@ ++// Copyright 2012 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++#include ++ ++#include "runtime.h" ++#include "defs.h" ++ ++int32 ++getproccount(void) ++{ ++ int32 n; ++ n = (int32)sysconf(_SC_NPROCESSORS_ONLN); ++ return n > 1 ? n : 1; ++} +Index: gcc-7-7.2.0-12.1/src/libgo/runtime/go-caller.c +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/runtime/go-caller.c ++++ gcc-7-7.2.0-12.1/src/libgo/runtime/go-caller.c +@@ -108,7 +108,7 @@ __go_get_backtrace_state () + argv[0] (http://gcc.gnu.org/PR61895). It would be nice to + have a better check for whether this file is the real + executable. */ +- if (stat (filename, &s) < 0 || s.st_size < 1024) ++ if (filename != NULL && (stat (filename, &s) < 0 || s.st_size < 1024)) + filename = NULL; + + back_state = backtrace_create_state (filename, 1, error_callback, NULL); +Index: gcc-7-7.2.0-12.1/src/libgo/runtime/runtime_c.c +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/runtime/runtime_c.c ++++ gcc-7-7.2.0-12.1/src/libgo/runtime/runtime_c.c +@@ -75,7 +75,7 @@ runtime_fastrand(void) + int64 + runtime_cputicks(void) + { +-#if defined(__386__) || defined(__x86_64__) ++#if defined(__i386__) || defined(__x86_64__) + uint32 low, high; + asm("rdtsc" : "=a" (low), "=d" (high)); + return (int64)(((uint64)high << 32) | (uint64)low); --- gcc-7-7.5.0.orig/debian/patches/src_libgo_testsuite_gotest.diff +++ gcc-7-7.5.0/debian/patches/src_libgo_testsuite_gotest.diff @@ -0,0 +1,17 @@ +Index: gcc-7-7.2.0-12.1/src/libgo/testsuite/gotest +=================================================================== +--- gcc-7-7.2.0-12.1.orig/src/libgo/testsuite/gotest ++++ gcc-7-7.2.0-12.1/src/libgo/testsuite/gotest +@@ -624,7 +624,11 @@ xno) + wait $pid + status=$? + if ! test -f gotest-timeout; then +- sleeppid=`ps -o pid,ppid,comm | grep " $alarmpid " | grep sleep | sed -e 's/ *\([0-9]*\) .*$/\1/'` ++ if test "$goos" = "gnu"; then ++ sleeppid=`ps -o pid,ppid | grep " $alarmpid " | grep sleep | sed -e 's/ *\([0-9]*\) .*$/\1/'` ++ else ++ sleeppid=`ps -o pid,ppid,comm | grep " $alarmpid " | grep sleep | sed -e 's/ *\([0-9]*\) .*$/\1/'` ++ fi + kill $alarmpid + wait $alarmpid + if test "$sleeppid" != ""; then --- gcc-7-7.5.0.orig/debian/patches/svn-doc-updates.diff +++ gcc-7-7.5.0/debian/patches/svn-doc-updates.diff @@ -0,0 +1,6 @@ +# DP: updates from the 6 branch upto 2018xxyy (documentation). + +LANG=C svn diff svn://gcc.gnu.org/svn/gcc/tags/gcc_7_4_0_release svn://gcc.gnu.org/svn/gcc/branches/gcc-7-branch \ + | sed -r 's,^--- (\S+)\t(\S+)(.*)$,--- a/src/\1\t\2,;s,^\+\+\+ (\S+)\t(\S+)(.*)$,+++ b/src/\1\t\2,' \ + | awk '/^Index:.*\.texi/ {skip=0; print; next} /^Index:/ {skip=1; next} skip==0' + --- gcc-7-7.5.0.orig/debian/patches/svn-updates.diff +++ gcc-7-7.5.0/debian/patches/svn-updates.diff @@ -0,0 +1,14 @@ +# DP: updates from the 7 branch upto 20191105 (r277823). + +last_update() +{ + cat > ${dir}LAST_UPDATED header file. */ ++#ifndef USED_FOR_TARGET ++#undef HAVE_SYS_AUXV_H ++#endif ++ ++ + /* Define to 1 if you have the header file. */ + #ifndef USED_FOR_TARGET + #undef HAVE_SYS_FILE_H +--- a/src/gcc/config/rs6000/driver-rs6000.c ++++ b/src/gcc/config/rs6000/driver-rs6000.c +@@ -33,6 +33,10 @@ along with GCC; see the file COPYING3. + # include + #endif + ++#ifdef HAVE_SYS_AUXV_H ++# include ++#endif ++ + #if defined (__APPLE__) || (__FreeBSD__) + # include + # include --- gcc-7-7.5.0.orig/debian/patches/t-libunwind-elf-Wl-z-defs.diff +++ gcc-7-7.5.0/debian/patches/t-libunwind-elf-Wl-z-defs.diff @@ -0,0 +1,13 @@ +# DP: strip -z,defs from linker options for internal libunwind. + +--- a/src/libgcc/config/t-libunwind-elf ++++ b/src/libgcc/config/t-libunwind-elf +@@ -31,7 +31,7 @@ + + SHLIBUNWIND_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared \ + -nodefaultlibs -Wl,-h,$(SHLIBUNWIND_SONAME) \ +- -Wl,-z,text -Wl,-z,defs -o $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME).tmp \ ++ -Wl,-z,text -o $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME).tmp \ + @multilib_flags@ $(SHLIB_OBJS) -lc && \ + rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \ + if [ -f $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) ]; then \ --- gcc-7-7.5.0.orig/debian/patches/testsuite-glibc-warnings.diff +++ gcc-7-7.5.0/debian/patches/testsuite-glibc-warnings.diff @@ -0,0 +1,29 @@ +# DP: fix testcases that triggered -Wunused-result with glibc +# DP: Author: Steve Beattie +--- + src/gcc/testsuite/c-c++-common/cilk-plus/AN/comma_exp.c | 2 +- + src/gcc/testsuite/c-c++-common/tsan/fd_pipe_race.c | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +Index: b/src/gcc/testsuite/c-c++-common/tsan/fd_pipe_race.c +=================================================================== +--- a/src/gcc/testsuite/c-c++-common/tsan/fd_pipe_race.c ++++ b/src/gcc/testsuite/c-c++-common/tsan/fd_pipe_race.c +@@ -1,5 +1,5 @@ + /* { dg-shouldfail "tsan" } */ +-/* { dg-additional-options "-ldl" } */ ++/* { dg-additional-options "-Wno-unused-result -ldl" } */ + + #include + #include +Index: b/src/gcc/testsuite/c-c++-common/cilk-plus/AN/comma_exp.c +=================================================================== +--- a/src/gcc/testsuite/c-c++-common/cilk-plus/AN/comma_exp.c ++++ b/src/gcc/testsuite/c-c++-common/cilk-plus/AN/comma_exp.c +@@ -1,5 +1,5 @@ + /* { dg-do run } */ +-/* { dg-options "-fcilkplus" } */ ++/* { dg-options "-fcilkplus -Wno-unused-result" } */ + + #include + --- gcc-7-7.5.0.orig/debian/patches/testsuite-hardening-format.diff +++ gcc-7-7.5.0/debian/patches/testsuite-hardening-format.diff @@ -0,0 +1,356 @@ +#! /bin/sh -e + +# All lines beginning with `# DPATCH:' are a description of the patch. +# DP: Description: use -Wno-format on tests that cannot be adjusted other ways. +# DP: Author: Kees Cook +# DP: Ubuntu: https://bugs.launchpad.net/bugs/344502 + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + #cd ${dir}gcc && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + #rm ${dir}gcc/configure + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- + src/gcc/testsuite/c-c++-common/torture/vector-compare-1.c | 1 + + src/gcc/testsuite/g++.dg/abi/pragma-pack1.C | 2 ++ + src/gcc/testsuite/g++.dg/abi/regparm1.C | 1 + + src/gcc/testsuite/g++.dg/cpp0x/constexpr-tuple.C | 1 + + src/gcc/testsuite/g++.dg/torture/pr51436.C | 1 + + src/gcc/testsuite/g++.old-deja/g++.law/weak.C | 2 +- + src/gcc/testsuite/g++.old-deja/g++.other/std1.C | 1 + + src/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.x | 5 +++++ + src/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.x | 5 +++++ + src/gcc/testsuite/gcc.dg/charset/builtin2.c | 2 +- + src/gcc/testsuite/gcc.dg/format/format.exp | 2 +- + src/gcc/testsuite/gcc.dg/ipa/ipa-sra-1.c | 2 +- + src/gcc/testsuite/gcc.dg/lto/20090218-2_0.c | 2 ++ + src/gcc/testsuite/gcc.dg/pr30473.c | 2 +- + src/gcc/testsuite/gcc.dg/pr38902.c | 2 +- + src/gcc/testsuite/gcc.dg/pr59418.c | 2 +- + src/gcc/testsuite/gcc.dg/torture/tls/tls-test.c | 2 +- + src/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c | 2 +- + src/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c | 2 +- + src/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c | 2 +- + src/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c | 2 +- + src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c | 2 +- + src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c | 2 +- + src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c | 2 +- + src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c | 2 +- + src/gcc/testsuite/gcc.dg/tree-ssa/isolate-4.c | 2 +- + src/gcc/testsuite/objc.dg/torture/strings/const-str-3.m | 2 +- + 28 files changed, 40 insertions(+), 18 deletions(-) + +Index: b/src/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.x +=================================================================== +--- /dev/null ++++ b/src/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.x +@@ -0,0 +1,5 @@ ++# Implement "/* { dg-options "-U_FORITFY_SOURCE" } */", due to ++# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20567 ++ ++set additional_flags "-U_FORTIFY_SOURCE" ++return 0 +Index: b/src/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.x +=================================================================== +--- /dev/null ++++ b/src/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.x +@@ -0,0 +1,5 @@ ++# Implement "/* { dg-options "-U_FORITFY_SOURCE" } */", due to ++# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20567 ++ ++set additional_flags "-U_FORTIFY_SOURCE" ++return 0 +Index: b/src/gcc/testsuite/gcc.dg/charset/builtin2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/charset/builtin2.c ++++ b/src/gcc/testsuite/gcc.dg/charset/builtin2.c +@@ -3,7 +3,7 @@ + + /* { dg-do compile } */ + /* { dg-require-iconv "IBM1047" } */ +-/* { dg-options "-O2 -fexec-charset=IBM1047" } */ ++/* { dg-options "-O2 -fexec-charset=IBM1047 -Wno-format" } */ + /* { dg-final { scan-assembler-not "printf" } } */ + /* { dg-final { scan-assembler-not "fprintf" } } */ + /* { dg-final { scan-assembler-not "sprintf" } } */ +Index: b/src/gcc/testsuite/gcc.dg/format/format.exp +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/format/format.exp ++++ b/src/gcc/testsuite/gcc.dg/format/format.exp +@@ -26,7 +26,7 @@ load_lib gcc-dg.exp + load_lib torture-options.exp + + torture-init +-set-torture-options [list { } { -DWIDE } ] ++set-torture-options [list { -Wformat=0 } { -DWIDE -Wformat=0 } ] + + dg-init + gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "" "" +Index: b/src/gcc/testsuite/gcc.dg/pr30473.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/pr30473.c ++++ b/src/gcc/testsuite/gcc.dg/pr30473.c +@@ -1,7 +1,7 @@ + /* PR middle-end/30473 */ + /* Make sure this doesn't ICE. */ + /* { dg-do compile } */ +-/* { dg-options "-O2" } */ ++/* { dg-options "-O2 -Wno-format" } */ + + extern int sprintf (char *, const char *, ...); + +Index: b/src/gcc/testsuite/gcc.dg/pr38902.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/pr38902.c ++++ b/src/gcc/testsuite/gcc.dg/pr38902.c +@@ -1,6 +1,6 @@ + /* PR target/38902 */ + /* { dg-do run } */ +-/* { dg-options "-O2 -fstack-protector" } */ ++/* { dg-options "-O2 -fstack-protector -Wno-format" } */ + /* { dg-require-effective-target fstack_protector } */ + + #ifdef DEBUG +Index: b/src/gcc/testsuite/gcc.dg/pr59418.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/pr59418.c ++++ b/src/gcc/testsuite/gcc.dg/pr59418.c +@@ -2,7 +2,7 @@ + /* Reported by Ryan Mansfield */ + + /* { dg-do compile } */ +-/* { dg-options "-Os -g" } */ ++/* { dg-options "-Os -g -Wno-format-zero-length" } */ + /* { dg-options "-march=armv7-a -mfloat-abi=hard -Os -g" { target { arm*-*-* && { ! arm_thumb1 } } } } */ + + extern int printf (const char *__format, ...); +Index: b/src/gcc/testsuite/gcc.dg/ipa/ipa-sra-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/ipa/ipa-sra-1.c ++++ b/src/gcc/testsuite/gcc.dg/ipa/ipa-sra-1.c +@@ -1,5 +1,5 @@ + /* { dg-do run } */ +-/* { dg-options "-O2 -fipa-sra -fdump-tree-eipa_sra-details" } */ ++/* { dg-options "-O2 -fipa-sra -fdump-tree-eipa_sra-details -Wformat=0" } */ + + struct bovid + { +Index: b/src/gcc/testsuite/gcc.dg/lto/20090218-2_0.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/lto/20090218-2_0.c ++++ b/src/gcc/testsuite/gcc.dg/lto/20090218-2_0.c +@@ -1,3 +1,5 @@ ++/* { dg-lto-options "-Wno-nonnull" } */ ++ + void set_mem_alias_set (); + void emit_push_insn () { + set_mem_alias_set (); +Index: b/src/gcc/testsuite/c-c++-common/torture/vector-compare-1.c +=================================================================== +--- a/src/gcc/testsuite/c-c++-common/torture/vector-compare-1.c ++++ b/src/gcc/testsuite/c-c++-common/torture/vector-compare-1.c +@@ -1,4 +1,5 @@ + /* { dg-do run } */ ++/* { dg-options "-Wformat=0" } */ + #define vector(elcount, type) \ + __attribute__((vector_size((elcount)*sizeof(type)))) type + +Index: b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fdump-tree-fab1" } */ ++/* { dg-options "-O2 -fdump-tree-fab1 -Wno-format-zero-length" } */ + + #include + +Index: b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fdump-tree-fab1" } */ ++/* { dg-options "-O2 -fdump-tree-fab1 -Wno-format-zero-length" } */ + + #include + +Index: b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fdump-tree-fab1" } */ ++/* { dg-options "-O2 -fdump-tree-fab1 -Wno-format-zero-length" } */ + + extern int printf (const char *, ...); + volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via; +Index: b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fdump-tree-fab1" } */ ++/* { dg-options "-O2 -fdump-tree-fab1 -Wno-format-zero-length" } */ + + extern int __printf_chk (int, const char *, ...); + volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via; +Index: b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fdump-tree-fab1" } */ ++/* { dg-options "-O2 -fdump-tree-fab1 -Wno-format-zero-length" } */ + + typedef struct { int i; } FILE; + FILE *fp; +Index: b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fdump-tree-fab1" } */ ++/* { dg-options "-O2 -fdump-tree-fab1 -Wno-format-zero-length" } */ + + typedef struct { int i; } FILE; + FILE *fp; +Index: b/src/gcc/testsuite/gcc.dg/torture/tls/tls-test.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/torture/tls/tls-test.c ++++ b/src/gcc/testsuite/gcc.dg/torture/tls/tls-test.c +@@ -1,7 +1,7 @@ + /* { dg-do run } */ + /* { dg-require-effective-target tls } */ + /* { dg-require-effective-target pthread } */ +-/* { dg-options "-pthread" } */ ++/* { dg-options "-pthread -Wformat=0" } */ + + #include + extern int printf (char *,...); +Index: b/src/gcc/testsuite/objc.dg/torture/strings/const-str-3.m +=================================================================== +--- a/src/gcc/testsuite/objc.dg/torture/strings/const-str-3.m ++++ b/src/gcc/testsuite/objc.dg/torture/strings/const-str-3.m +@@ -2,7 +2,7 @@ + /* Developed by Markus Hitter . */ + /* { dg-do run } */ + /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */ +-/* { dg-options "-fconstant-string-class=Foo" } */ ++/* { dg-options "-fconstant-string-class=Foo -Wno-format-security" } */ + /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */ + + #include "../../../objc-obj-c++-shared/objc-test-suite-types.h" +Index: b/src/gcc/testsuite/g++.dg/abi/pragma-pack1.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/abi/pragma-pack1.C ++++ b/src/gcc/testsuite/g++.dg/abi/pragma-pack1.C +@@ -1,5 +1,7 @@ + // PR c++/7046 + ++// { dg-options "-Wformat=0" } ++ + extern "C" int printf (const char *, ...); + + #pragma pack(4) +Index: b/src/gcc/testsuite/g++.dg/abi/regparm1.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/abi/regparm1.C ++++ b/src/gcc/testsuite/g++.dg/abi/regparm1.C +@@ -1,6 +1,7 @@ + // PR c++/29911 (9381) + // { dg-do run { target i?86-*-* x86_64-*-* } } + // { dg-require-effective-target c++11 } ++// { dg-options "-Wformat=0" } + + extern "C" int printf(const char *, ...); + +Index: b/src/gcc/testsuite/g++.dg/cpp0x/constexpr-tuple.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/cpp0x/constexpr-tuple.C ++++ b/src/gcc/testsuite/g++.dg/cpp0x/constexpr-tuple.C +@@ -1,5 +1,6 @@ + // PR c++/53202 + // { dg-do run { target c++11 } } ++// { dg-options "-Wformat=0" } + + #include + +Index: b/src/gcc/testsuite/g++.dg/torture/pr51436.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/torture/pr51436.C ++++ b/src/gcc/testsuite/g++.dg/torture/pr51436.C +@@ -1,4 +1,5 @@ + /* { dg-do compile } */ ++/* { dg-options "-Wno-nonnull" } */ + + typedef __SIZE_TYPE__ size_t; + extern "C" void *memcpy (void *, __const void *, size_t); +Index: b/src/gcc/testsuite/g++.old-deja/g++.law/weak.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.law/weak.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.law/weak.C +@@ -1,6 +1,6 @@ + // { dg-do link { target i?86-*-linux* i?86-*-gnu* x86_64-*-linux* } } + // { dg-require-effective-target static } +-// { dg-options "-static" } ++// { dg-options "-static -Wno-nonnull" } + // Bug: g++ fails to instantiate operator<<. + + // libc-5.4.xx has __IO_putc in its static C library, which can conflict +Index: b/src/gcc/testsuite/g++.old-deja/g++.other/std1.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.other/std1.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.other/std1.C +@@ -1,4 +1,5 @@ + // { dg-do assemble } ++// { dg-options "-Wno-nonnull" } + // Origin: Mark Mitchell + + extern "C" int memcmp (const void * __s1, +Index: b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fdump-tree-fab1" } */ ++/* { dg-options "-O2 -fdump-tree-fab1 -Wno-format-zero-length" } */ + + #include + +Index: b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fdump-tree-fab1" } */ ++/* { dg-options "-O2 -fdump-tree-fab1 -Wno-format-zero-length" } */ + + #include + --- gcc-7-7.5.0.orig/debian/patches/testsuite-hardening-printf-types.diff +++ gcc-7-7.5.0/debian/patches/testsuite-hardening-printf-types.diff @@ -0,0 +1,667 @@ +# DP: Description: adjust/standardize printf types to avoid -Wformat warnings. +# DP: Author: Kees Cook +# DP: Ubuntu: https://bugs.launchpad.net/bugs/344502 + +Index: b/src/gcc/testsuite/g++.dg/ext/align1.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/ext/align1.C ++++ b/src/gcc/testsuite/g++.dg/ext/align1.C +@@ -16,6 +16,7 @@ float f1 __attribute__ ((aligned)); + int + main (void) + { +- printf ("%d %d\n", __alignof (a1), __alignof (f1)); ++ // "%td" is not allowed by ISO C++, so use %p with a void * cast ++ printf ("%p %p\n", (void*)__alignof (a1), (void*)__alignof (f1)); + return (__alignof (a1) < __alignof (f1)); + } +Index: b/src/gcc/testsuite/g++.old-deja/g++.law/operators28.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.law/operators28.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.law/operators28.C +@@ -14,7 +14,8 @@ void* new_test::operator new(size_t sz, + { + void *p; + +- printf("%d %d %d\n", sz, count, type); ++ // ISO C++ does not support format size modifier "z", so use a cast ++ printf("%u %d %d\n", (unsigned int)sz, count, type); + + p = new char[sz * count]; + ((new_test *)p)->type = type; +Index: b/src/gcc/testsuite/gcc.dg/torture/matrix-2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/torture/matrix-2.c ++++ b/src/gcc/testsuite/gcc.dg/torture/matrix-2.c +@@ -42,7 +42,7 @@ main (int argc, char **argv) + } + for (i = 0; i < ARCHnodes; i++) + for (j = 0; j < 3; j++) +- printf ("%x\n",vel[i][j]); ++ printf ("%p\n",vel[i][j]); + /*if (i!=1 || j!=1)*/ + /*if (i==1 && j==1) + continue; +@@ -82,14 +82,14 @@ mem_init (void) + for (j = 0; j < 3; j++) + { + vel[i][j] = (int *) malloc (ARCHnodes1 * sizeof (int)); +- printf ("%x %d %d\n",vel[i][j], ARCHnodes1, sizeof (int)); ++ printf ("%p %d %d\n",vel[i][j], ARCHnodes1, (int)sizeof (int)); + } + } + for (i = 0; i < ARCHnodes; i++) + { + for (j = 0; j < 3; j++) + { +- printf ("%x\n",vel[i][j]); ++ printf ("%p\n",vel[i][j]); + } + } + +@@ -98,7 +98,7 @@ mem_init (void) + { + for (j = 0; j < 3; j++) + { +- printf ("%x\n",vel[i][j]); ++ printf ("%p\n",vel[i][j]); + /*for (k = 0; k < ARCHnodes1; k++) + { + vel[i][j][k] = d; +Index: b/src/gcc/testsuite/gcc.dg/packed-vla.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/packed-vla.c ++++ b/src/gcc/testsuite/gcc.dg/packed-vla.c +@@ -18,8 +18,8 @@ int func(int levels) + int b[4]; + } __attribute__ ((__packed__)) foo; + +- printf("foo %d\n", sizeof(foo)); +- printf("bar %d\n", sizeof(bar)); ++ printf("foo %d\n", (int)sizeof(foo)); ++ printf("bar %d\n", (int)sizeof(bar)); + + if (sizeof (foo) != sizeof (bar)) + abort (); +Index: b/src/gcc/testsuite/g++.dg/opt/alias2.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/opt/alias2.C ++++ b/src/gcc/testsuite/g++.dg/opt/alias2.C +@@ -30,14 +30,14 @@ public: + + + _Deque_base::~_Deque_base() { +- printf ("bb %x %x\n", this, *_M_start._M_node); ++ printf ("bb %p %x\n", this, *_M_start._M_node); + } + + void + _Deque_base::_M_initialize_map() + { + yy = 0x123; +- printf ("aa %x %x\n", this, yy); ++ printf ("aa %p %x\n", this, yy); + + _M_start._M_node = &yy; + _M_start._M_cur = yy; +Index: b/src/gcc/testsuite/g++.old-deja/g++.abi/vbase1.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.abi/vbase1.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.abi/vbase1.C +@@ -33,7 +33,7 @@ struct VBase + void Offset () const + { + printf ("VBase\n"); +- printf (" VBase::member %d\n", &this->VBase::member - (int *)this); ++ printf (" VBase::member %d\n", (int)(&this->VBase::member - (int *)this)); + } + }; + +@@ -55,8 +55,8 @@ struct VDerived : virtual VBase + void Offset () const + { + printf ("VDerived\n"); +- printf (" VBase::member %d\n", &this->VBase::member - (int *)this); +- printf (" VDerived::member %d\n", &this->VDerived::member - (int *)this); ++ printf (" VBase::member %d\n", (int)(&this->VBase::member - (int *)this)); ++ printf (" VDerived::member %d\n", (int)(&this->VDerived::member - (int *)this)); + } + }; + struct B : virtual VBase +@@ -65,8 +65,8 @@ struct B : virtual VBase + void Offset () const + { + printf ("B\n"); +- printf (" VBase::member %d\n", &this->VBase::member - (int *)this); +- printf (" B::member %d\n", &this->B::member - (int *)this); ++ printf (" VBase::member %d\n", (int)(&this->VBase::member - (int *)this)); ++ printf (" B::member %d\n", (int)(&this->B::member - (int *)this)); + } + }; + struct MostDerived : B, virtual VDerived +@@ -75,10 +75,10 @@ struct MostDerived : B, virtual VDerived + void Offset () const + { + printf ("MostDerived\n"); +- printf (" VBase::member %d\n", &this->VBase::member - (int *)this); +- printf (" B::member %d\n", &this->B::member - (int *)this); +- printf (" VDerived::member %d\n", &this->VDerived::member - (int *)this); +- printf (" MostDerived::member %d\n", &this->MostDerived::member - (int *)this); ++ printf (" VBase::member %d\n", (int)(&this->VBase::member - (int *)this)); ++ printf (" B::member %d\n", (int)(&this->B::member - (int *)this)); ++ printf (" VDerived::member %d\n", (int)(&this->VDerived::member - (int *)this)); ++ printf (" MostDerived::member %d\n", (int)(&this->MostDerived::member - (int *)this)); + } + }; + +@@ -95,10 +95,10 @@ int main () + if (ctorVDerived != &dum.VDerived::member) + return 24; + +- printf (" VBase::member %d\n", &dum.VBase::member - this_); +- printf (" B::member %d\n", &dum.B::member - this_); +- printf (" VDerived::member %d\n", &dum.VDerived::member - this_); +- printf (" MostDerived::member %d\n", &dum.MostDerived::member - this_); ++ printf (" VBase::member %d\n", (int)(&dum.VBase::member - this_)); ++ printf (" B::member %d\n", (int)(&dum.B::member - this_)); ++ printf (" VDerived::member %d\n", (int)(&dum.VDerived::member - this_)); ++ printf (" MostDerived::member %d\n", (int)(&dum.MostDerived::member - this_)); + dum.MostDerived::Offset (); + dum.B::Offset (); + dum.VDerived::Offset (); +Index: b/src/gcc/testsuite/g++.old-deja/g++.brendan/template8.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.brendan/template8.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.brendan/template8.C +@@ -15,6 +15,6 @@ int main(){ + + Double_alignt<20000> heap; + +- printf(" &heap.array[0] = %d, &heap.for_alignt = %d\n", &heap.array[0], &heap.for_alignt); ++ printf(" &heap.array[0] = %p, &heap.for_alignt = %p\n", (void*)&heap.array[0], (void*)&heap.for_alignt); + + } +Index: b/src/gcc/testsuite/g++.old-deja/g++.eh/ptr1.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.eh/ptr1.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.eh/ptr1.C +@@ -16,7 +16,7 @@ int main() + } + + catch (E *&e) { +- printf ("address of e is 0x%lx\n", (__SIZE_TYPE__)e); ++ printf ("address of e is %p\n", (void *)e); + return !((__SIZE_TYPE__)e != 5 && e->x == 5); + } + return 2; +Index: b/src/gcc/testsuite/g++.old-deja/g++.jason/access23.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.jason/access23.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.jason/access23.C +@@ -42,19 +42,19 @@ public: + void DoSomething() { + PUB_A = 0; + Foo::A = 0; +- printf("%x\n",pX); ++ printf("%p\n",pX); + Foo::PUB.A = 0; +- printf("%x\n",PUB.pX); ++ printf("%p\n",PUB.pX); + B = 0; +- printf("%x\n",Foo::pY); ++ printf("%p\n",Foo::pY); + PRT_A = 0; + PRT.B = 0; +- printf("%x\n",Foo::PRT.pY); ++ printf("%p\n",Foo::PRT.pY); + PRV_A = 0; // { dg-error "" } + Foo::C = 0; // { dg-error "" } +- printf("%x\n",pZ); // { dg-error "" } ++ printf("%p\n",pZ); // { dg-error "" } + Foo::PRV.C = 0; // { dg-error "" } +- printf("%x\n",PRV.pZ); // { dg-error "" } ++ printf("%p\n",PRV.pZ); // { dg-error "" } + } + }; + +@@ -64,17 +64,17 @@ int main() + + a.PUB_A = 0; + a.A = 0; +- printf("%x\n",a.pX); ++ printf("%p\n",a.pX); + a.PRT_A = 0; // { dg-error "" } + a.B = 0; // { dg-error "" } +- printf("%x\n",a.pY); // { dg-error "" } ++ printf("%p\n",a.pY); // { dg-error "" } + a.PRV_A = 0; // { dg-error "" } + a.C = 0; // { dg-error "" } +- printf("%x\n",a.pZ); // { dg-error "" } ++ printf("%p\n",a.pZ); // { dg-error "" } + a.PUB.A = 0; +- printf("%x\n",a.PUB.pX); ++ printf("%p\n",a.PUB.pX); + a.PRT.B = 0; // { dg-error "" } +- printf("%x\n",a.PRT.pY); // { dg-error "" } ++ printf("%p\n",a.PRT.pY); // { dg-error "" } + a.PRV.C = 0; // { dg-error "" } +- printf("%x\n",a.PRV.pZ); // { dg-error "" } ++ printf("%p\n",a.PRV.pZ); // { dg-error "" } + } +Index: b/src/gcc/testsuite/g++.old-deja/g++.law/cvt8.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.law/cvt8.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.law/cvt8.C +@@ -20,12 +20,12 @@ struct B { + B::operator const A&() const { + static A a; + a.i = i; +- printf("convert B to A at %x\n", &a); ++ printf("convert B to A at %p\n", (void*)&a); + return a; + } + + void f(A &a) { // { dg-message "" } in passing argument +- printf("A at %x is %d\n", &a, a.i); ++ printf("A at %p is %d\n", (void*)&a, a.i); + } + + int main() { +Index: b/src/gcc/testsuite/g++.old-deja/g++.mike/net35.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.mike/net35.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.mike/net35.C +@@ -17,10 +17,10 @@ public: + + int main() { + C c; +- printf("&c.x = %x\n", &c.x); +- printf("&c.B1::x = %x\n", &c.B1::x); +- printf("&c.B2::x = %x\n", &c.B2::x); +- printf("&c.A::x = %x\n", &c.A::x); ++ printf("&c.x = %p\n", (void*)&c.x); ++ printf("&c.B1::x = %p\n", (void*)&c.B1::x); ++ printf("&c.B2::x = %p\n", (void*)&c.B2::x); ++ printf("&c.A::x = %p\n", (void*)&c.A::x); + if (&c.x != &c.B1::x + || &c.x != &c.B2::x + || &c.x != &c.A::x) +Index: b/src/gcc/testsuite/g++.old-deja/g++.mike/offset1.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.mike/offset1.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.mike/offset1.C +@@ -6,7 +6,7 @@ int fail = 0; + class Foo { + public: + virtual void setName() { +- printf("Foo at %x\n", this); ++ printf("Foo at %p\n", (void*)this); + if (vp != (void*)this) + fail = 1; + } +@@ -15,7 +15,7 @@ public: + class Bar : public Foo { + public: + virtual void init(int argc, char **argv) { +- printf("Bar's Foo at %x\n", (Foo*)this); ++ printf("Bar's Foo at %p\n", (void*)(Foo*)this); + vp = (void*)(Foo*)this; + setName(); + } +Index: b/src/gcc/testsuite/g++.old-deja/g++.mike/p12306.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.mike/p12306.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.mike/p12306.C +@@ -18,7 +18,7 @@ public: + if (ptr2 != &(*this).slist) + fail = 6; + +- if (0) printf("at %x %x\n", (RWSlistIterator*)this, &(*this).slist); ++ if (0) printf("at %p %p\n", (void*)(RWSlistIterator*)this, (void*)&(*this).slist); + } + }; + +@@ -54,14 +54,14 @@ Sim_Event_Manager::Sim_Event_Manager () + void Sim_Event_Manager::post_event () { + ptr1 = (RWSlistIterator*)&last_posted_event_position_; + ptr2 = &((RWSlistIterator*)&last_posted_event_position_)->slist; +- if (0) printf("at %x %x\n", (RWSlistIterator*)&last_posted_event_position_, +- &((RWSlistIterator*)&last_posted_event_position_)->slist); ++ if (0) printf("at %p %p\n", (void*)(RWSlistIterator*)&last_posted_event_position_, ++ (void*)&((RWSlistIterator*)&last_posted_event_position_)->slist); + if (ptr1 != (RWSlistIterator*)&last_posted_event_position_) + fail = 1; + if (ptr2 != &((RWSlistIterator&)last_posted_event_position_).slist) + fail = 2; +- if (0) printf("at %x ?%x\n", (RWSlistIterator*)&last_posted_event_position_, +- &((RWSlistIterator&)last_posted_event_position_).slist); ++ if (0) printf("at %p ?%p\n", (void*)(RWSlistIterator*)&last_posted_event_position_, ++ (void*)&((RWSlistIterator&)last_posted_event_position_).slist); + if (ptr1 != (RWSlistIterator*)&last_posted_event_position_) + fail = 3; + if (ptr2 != &((RWSlistIterator&)last_posted_event_position_).slist) +Index: b/src/gcc/testsuite/g++.old-deja/g++.mike/p3579.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.mike/p3579.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.mike/p3579.C +@@ -7,26 +7,26 @@ int num_x; + + class Y { + public: +- Y () { printf("Y() this: %x\n", this); } +- ~Y () { printf("~Y() this: %x\n", this); } ++ Y () { printf("Y() this: %p\n", (void*)this); } ++ ~Y () { printf("~Y() this: %p\n", (void*)this); } + }; + + class X { + public: + X () { + ++num_x; +- printf("X() this: %x\n", this); ++ printf("X() this: %p\n", (void*)this); + Y y; + *this = (X) y; + } + +- X (const Y & yy) { printf("X(const Y&) this: %x\n", this); ++num_x; } ++ X (const Y & yy) { printf("X(const Y&) this: %p\n", (void*)this); ++num_x; } + X & operator = (const X & xx) { +- printf("X.op=(X&) this: %x\n", this); ++ printf("X.op=(X&) this: %p\n", (void*)this); + return *this; + } + +- ~X () { printf("~X() this: %x\n", this); --num_x; } ++ ~X () { printf("~X() this: %p\n", (void*)this); --num_x; } + }; + + int main (int, char **) { +Index: b/src/gcc/testsuite/g++.old-deja/g++.mike/p3708a.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.mike/p3708a.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.mike/p3708a.C +@@ -38,7 +38,7 @@ public: + virtual void xx(int doit) { + --num; + if (ptr != this) +- printf("FAIL\n%x != %x\n", ptr, this); ++ printf("FAIL\n%p != %p\n", ptr, (void*)this); + printf ("C is destructed.\n"); + B::xx (0); + if (doit) A::xx (1); +Index: b/src/gcc/testsuite/g++.old-deja/g++.mike/p3708b.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.mike/p3708b.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.mike/p3708b.C +@@ -48,7 +48,7 @@ public: + virtual void xx(int doit) { + --num; + if (ptr != this) { +- printf("FAIL\n%x != %x\n", ptr, this); ++ printf("FAIL\n%p != %p\n", ptr, (void*)this); + exit(1); + } + printf ("D is destructed.\n"); +Index: b/src/gcc/testsuite/g++.old-deja/g++.mike/p3708.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.mike/p3708.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.mike/p3708.C +@@ -38,7 +38,7 @@ public: + virtual void xx(int doit) { + --num; + if (ptr != this) +- printf("FAIL\n%x != %x\n", ptr, this); ++ printf("FAIL\n%p != %p\n", ptr, (void*)this); + printf ("C is destructed.\n"); + B::xx (0); + if (doit) A::xx (1); +Index: b/src/gcc/testsuite/g++.old-deja/g++.mike/p646.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.mike/p646.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.mike/p646.C +@@ -35,20 +35,20 @@ int foo::si = 0; + foo::foo () + { + si++; +- printf ("new foo @ 0x%x; now %d foos\n", this, si); ++ printf ("new foo @ %p; now %d foos\n", (void*)this, si); + } + + foo::foo (const foo &other) + { + si++; +- printf ("another foo @ 0x%x; now %d foos\n", this, si); ++ printf ("another foo @ %p; now %d foos\n", (void*)this, si); + *this = other; + } + + foo::~foo () + { + si--; +- printf ("deleted foo @ 0x%x; now %d foos\n", this, si); ++ printf ("deleted foo @ %p; now %d foos\n", (void*)this, si); + } + + int +Index: b/src/gcc/testsuite/g++.old-deja/g++.mike/p710.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.mike/p710.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.mike/p710.C +@@ -30,7 +30,7 @@ class B + virtual ~B() {} + void operator delete(void*,size_t s) + { +- printf("B::delete() %d\n",s); ++ printf("B::delete() %u\n",(unsigned int)s); + } + void operator delete(void*){} + }; +Index: b/src/gcc/testsuite/g++.old-deja/g++.mike/p789a.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.mike/p789a.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.mike/p789a.C +@@ -13,10 +13,10 @@ struct foo + int x; + foo () { + x = count++; +- printf("this %d = %x\n", x, (void *)this); ++ printf("this %d = %p\n", x, (void *)this); + } + virtual ~foo () { +- printf("this %d = %x\n", x, (void *)this); ++ printf("this %d = %p\n", x, (void *)this); + --count; + } + }; +@@ -31,7 +31,7 @@ int main () + { + for (int j = 0; j < 3; j++) + { +- printf("&a[%d][%d] = %x\n", i, j, (void *)&array[i][j]); ++ printf("&a[%d][%d] = %p\n", i, j, (void *)&array[i][j]); + } + } + // The count should be nine, if not, fail the test. +Index: b/src/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C +@@ -42,7 +42,7 @@ B_table b; + bar jar; + + int main() { +- printf("ptr to B_table=%x, ptr to A_table=%x\n",&b,(A_table*)&b); ++ printf("ptr to B_table=%p, ptr to A_table=%p\n",(void*)&b,(void*)(A_table*)&b); + B_table::B_ti_fn z = &B_table::func1; + int j = 1; + jar.call_fn_fn1(j,(void *)&z); +Index: b/src/gcc/testsuite/g++.old-deja/g++.mike/temp.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.mike/temp.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.mike/temp.C +@@ -7,11 +7,11 @@ class T { + public: + T() { + i = 1; +- printf("T() at %x\n", this); ++ printf("T() at %p\n", (void*)this); + } + T(const T& o) { + i = o.i; +- printf("T(const T&) at %x <-- %x\n", this, &o); ++ printf("T(const T&) at %p <-- %p\n", (void*)this, (void*)&o); + } + T operator +(const T& o) { + T r; +@@ -21,7 +21,7 @@ public: + operator int () { + return i; + } +- ~T() { printf("~T() at %x\n", this); } ++ ~T() { printf("~T() at %p\n", (void*)this); } + } s, b; + + int foo() { return getenv("TEST") == 0; } +Index: b/src/gcc/testsuite/g++.old-deja/g++.other/temporary1.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.other/temporary1.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.other/temporary1.C +@@ -5,16 +5,16 @@ int c, d; + class Foo + { + public: +- Foo() { printf("Foo() 0x%08lx\n", (__SIZE_TYPE__)this); ++c; } +- Foo(Foo const &) { printf("Foo(Foo const &) 0x%08lx\n", (__SIZE_TYPE__)this); } +- ~Foo() { printf("~Foo() 0x%08lx\n", (__SIZE_TYPE__)this); ++d; } ++ Foo() { printf("Foo() %p\n", (void*)this); ++c; } ++ Foo(Foo const &) { printf("Foo(Foo const &) %p\n", (void*)this); } ++ ~Foo() { printf("~Foo() %p\n", (void*)this); ++d; } + }; + + // Bar creates constructs a temporary Foo() as a default + class Bar + { + public: +- Bar(Foo const & = Foo()) { printf("Bar(Foo const &) 0x%08lx\n", (__SIZE_TYPE__)this); } ++ Bar(Foo const & = Foo()) { printf("Bar(Foo const &) %p\n", (void*)this); } + }; + + void fakeRef(Bar *) +Index: b/src/gcc/testsuite/g++.old-deja/g++.other/virtual8.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.other/virtual8.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.other/virtual8.C +@@ -4,7 +4,7 @@ extern "C" int printf (const char*, ...) + struct A + { + virtual void f () { +- printf ("%x\n", this); ++ printf ("%p\n", (void*)this); + } + }; + +Index: b/src/gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C +@@ -13,7 +13,7 @@ struct S + + template + void f(U u) +- { printf ("In S::f(U)\nsizeof(U) == %d\n", sizeof(u)); } ++ { printf ("In S::f(U)\nsizeof(U) == %d\n", (int)sizeof(u)); } + + int c[16]; + }; +Index: b/src/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C +@@ -13,7 +13,7 @@ struct S + + template + void f(U u) +- { printf ("In S::f(U)\nsizeof(U) == %d\n", sizeof(u)); } ++ { printf ("In S::f(U)\nsizeof(U) == %d\n", (int)sizeof(u)); } + + int c[16]; + }; +Index: b/src/gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C +@@ -6,7 +6,7 @@ template + struct S + { + template +- void f(U u) { printf ("%d\n", sizeof (U)); } ++ void f(U u) { printf ("%d\n", (int)sizeof (U)); } + + int i[4]; + }; +Index: b/src/gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C +@@ -16,7 +16,7 @@ template + template + void S::f(U u) + { +- printf ("%d\n", sizeof (U)); ++ printf ("%d\n", (int)sizeof (U)); + } + + +Index: b/src/gcc/testsuite/g++.old-deja/g++.pt/t39.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.pt/t39.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.pt/t39.C +@@ -10,9 +10,9 @@ struct frob { + + template + void frob::print () { +- printf ("this = %08x\n", this); +- printf (" ptr = %08x\n", ptr); +- printf (" values = %x %x %x ...\n", ptr[0], ptr[1], ptr[2]); ++ printf ("this = %p\n", (void*)this); ++ printf (" ptr = %p\n", (void*)ptr); ++ printf (" values = %x %x %x ...\n", (int)ptr[0], (int)ptr[1], (int)ptr[2]); + } + + static int x[10]; +Index: b/src/gcc/testsuite/g++.old-deja/g++.robertl/eb17.C +=================================================================== +--- a/src/gcc/testsuite/g++.old-deja/g++.robertl/eb17.C ++++ b/src/gcc/testsuite/g++.old-deja/g++.robertl/eb17.C +@@ -44,15 +44,15 @@ int main() + A * a = new B; + B * b = dynamic_cast(a); + +- printf("%p\n",b); // (*2*) ++ printf("%p\n",(void*)b); // (*2*) + b->print(); + + a = b; +- printf("%p\n",a); ++ printf("%p\n",(void*)a); + a->print(); + + a = a->clone(); +- printf("%p\n",a); ++ printf("%p\n",(void*)a); + a->print(); // (*1*) + + return 0; +Index: b/src/gcc/testsuite/gcc.dg/pch/inline-4.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/pch/inline-4.c ++++ b/src/gcc/testsuite/gcc.dg/pch/inline-4.c +@@ -1,6 +1,6 @@ + #include "inline-4.h" + extern int printf (const char *, ...); + int main(void) { +- printf (getstring()); ++ printf ("%s", getstring()); + return 0; + } --- gcc-7-7.5.0.orig/debian/patches/testsuite-hardening-updates.diff +++ gcc-7-7.5.0/debian/patches/testsuite-hardening-updates.diff @@ -0,0 +1,144 @@ +# DP: Fix some gcc and g++ testcases to pass with hardening defaults + +--- + src/gcc/testsuite/c-c++-common/asan/strncpy-overflow-1.c | 2 +- + src/gcc/testsuite/c-c++-common/cilk-plus/CK/spawnee_inline.c | 2 +- + src/gcc/testsuite/g++.dg/asan/asan_test.C | 2 +- + src/gcc/testsuite/g++.dg/asan/interception-malloc-test-1.C | 2 +- + src/gcc/testsuite/g++.dg/fstack-protector-strong.C | 2 +- + src/gcc/testsuite/gcc.c-torture/execute/memset-1.c | 1 - + src/gcc/testsuite/gcc.c-torture/execute/memset-1.x | 5 +++++ + src/gcc/testsuite/gcc.dg/fstack-protector-strong.c | 2 +- + src/gcc/testsuite/gcc.dg/stack-usage-1.c | 2 +- + src/gcc/testsuite/gcc.dg/superblock.c | 2 +- + src/gcc/testsuite/gcc.target/i386/sw-1.c | 2 +- + 11 files changed, 14 insertions(+), 10 deletions(-) + +Index: b/src/gcc/testsuite/g++.dg/asan/asan_test.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/asan/asan_test.C ++++ b/src/gcc/testsuite/g++.dg/asan/asan_test.C +@@ -2,7 +2,7 @@ + // { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } + // { dg-skip-if "" { *-*-* } { "-flto" } { "" } } + // { dg-additional-sources "asan_globals_test-wrapper.cc" } +-// { dg-options "-std=c++11 -fsanitize=address -fno-builtin -Wall -Werror -g -DASAN_UAR=0 -DASAN_HAS_EXCEPTIONS=1 -DASAN_HAS_BLACKLIST=0 -DSANITIZER_USE_DEJAGNU_GTEST=1 -lasan -lpthread -ldl" } ++// { dg-options "-std=c++11 -fsanitize=address -fno-builtin -Wall -Werror -Wno-unused-result -g -DASAN_UAR=0 -DASAN_HAS_EXCEPTIONS=1 -DASAN_HAS_BLACKLIST=0 -DSANITIZER_USE_DEJAGNU_GTEST=1 -lasan -lpthread -ldl" } + // { dg-additional-options "-DASAN_NEEDS_SEGV=1" { target { ! arm*-*-* } } } + // { dg-additional-options "-DASAN_LOW_MEMORY=1 -DASAN_NEEDS_SEGV=0" { target arm*-*-* } } + // { dg-additional-options "-DASAN_AVOID_EXPENSIVE_TESTS=1" { target { ! run_expensive_tests } } } +Index: b/src/gcc/testsuite/g++.dg/asan/interception-malloc-test-1.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/asan/interception-malloc-test-1.C ++++ b/src/gcc/testsuite/g++.dg/asan/interception-malloc-test-1.C +@@ -1,7 +1,7 @@ + // ASan interceptor can be accessed with __interceptor_ prefix. + + // { dg-do run { target *-*-linux* } } +-// { dg-options "-fno-builtin-free" } ++// { dg-options "-fno-builtin-free -Wno-unused-result" } + // { dg-additional-options "-D__NO_INLINE__" { target { *-*-linux-gnu } } } + // { dg-shouldfail "asan" } + +Index: b/src/gcc/testsuite/gcc.c-torture/execute/memset-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.c-torture/execute/memset-1.c ++++ b/src/gcc/testsuite/gcc.c-torture/execute/memset-1.c +@@ -1,3 +1,5 @@ ++/* { dg-prune-output ".*warning: memset used with constant zero length parameter.*" } */ ++ + /* Copyright (C) 2002 Free Software Foundation. + + Test memset with various combinations of pointer alignments and lengths to +Index: b/src/gcc/testsuite/c-c++-common/asan/strncpy-overflow-1.c +=================================================================== +--- a/src/gcc/testsuite/c-c++-common/asan/strncpy-overflow-1.c ++++ b/src/gcc/testsuite/c-c++-common/asan/strncpy-overflow-1.c +@@ -1,5 +1,5 @@ + /* { dg-do run } */ +-/* { dg-options "-fno-builtin-malloc -fno-builtin-strncpy" } */ ++/* { dg-options "-fno-builtin-malloc -fno-builtin-strncpy -U_FORTIFY_SOURCE" } */ + /* { dg-shouldfail "asan" } */ + + #include +Index: b/src/gcc/testsuite/gcc.dg/superblock.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/superblock.c ++++ b/src/gcc/testsuite/gcc.dg/superblock.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fno-asynchronous-unwind-tables -fsched2-use-superblocks -fdump-rtl-sched2 -fdump-rtl-bbro" } */ ++/* { dg-options "-O2 -fno-asynchronous-unwind-tables -fsched2-use-superblocks -fdump-rtl-sched2 -fdump-rtl-bbro -fno-stack-protector" } */ + /* { dg-require-effective-target scheduling } */ + + typedef int aligned __attribute__ ((aligned (64))); +Index: b/src/gcc/testsuite/gcc.dg/stack-usage-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/stack-usage-1.c ++++ b/src/gcc/testsuite/gcc.dg/stack-usage-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-fstack-usage" } */ ++/* { dg-options "-fstack-usage -fno-stack-protector" } */ + /* nvptx doesn't have a reg allocator, and hence no stack usage data. */ + /* { dg-skip-if "" { nvptx-*-* } { "*" } { "" } } */ + +Index: b/src/gcc/testsuite/gcc.target/i386/sw-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/sw-1.c ++++ b/src/gcc/testsuite/gcc.target/i386/sw-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -mtune=generic -fshrink-wrap -fdump-rtl-pro_and_epilogue" } */ ++/* { dg-options "-O2 -mtune=generic -fshrink-wrap -fdump-rtl-pro_and_epilogue -fno-stack-protector" } */ + /* { dg-skip-if "No shrink-wrapping preformed" { x86_64-*-mingw* } { "*" } { "" } } */ + + #include +Index: b/src/gcc/testsuite/c-c++-common/cilk-plus/CK/spawnee_inline.c +=================================================================== +--- a/src/gcc/testsuite/c-c++-common/cilk-plus/CK/spawnee_inline.c ++++ b/src/gcc/testsuite/c-c++-common/cilk-plus/CK/spawnee_inline.c +@@ -1,6 +1,6 @@ + /* { dg-do run } */ + /* { dg-require-effective-target cilkplus_runtime } */ +-/* { dg-options "-fcilkplus -w" } */ ++/* { dg-options "-fcilkplus -w -U_FORTIFY_SOURCE" } */ + + #include + #include +Index: b/src/gcc/testsuite/gcc.dg/fstack-protector-strong.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/fstack-protector-strong.c ++++ b/src/gcc/testsuite/gcc.dg/fstack-protector-strong.c +@@ -1,7 +1,7 @@ + /* Test that stack protection is done on chosen functions. */ + + /* { dg-do compile { target i?86-*-* x86_64-*-* rs6000-*-* s390x-*-* } } */ +-/* { dg-options "-O2 -fstack-protector-strong" } */ ++/* { dg-options "-O2 -fstack-protector-strong -U_FORTIFY_SOURCE" } */ + + /* This test checks the presence of __stack_chk_fail function in assembler. + * Compiler generates _stack_chk_fail_local (wrapper) calls instead for PIC. +Index: b/src/gcc/testsuite/g++.dg/fstack-protector-strong.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/fstack-protector-strong.C ++++ b/src/gcc/testsuite/g++.dg/fstack-protector-strong.C +@@ -1,7 +1,7 @@ + /* Test that stack protection is done on chosen functions. */ + + /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ +-/* { dg-options "-O2 -fstack-protector-strong" } */ ++/* { dg-options "-O2 -fstack-protector-strong -U_FORTIFY_SOURCE" } */ + + /* This test checks the presence of __stack_chk_fail function in assembler. + * Compiler generates _stack_chk_fail_local (wrapper) calls instead for PIC. +Index: b/src/gcc/testsuite/gcc.c-torture/execute/memset-1.x +=================================================================== +--- /dev/null ++++ b/src/gcc/testsuite/gcc.c-torture/execute/memset-1.x +@@ -0,0 +1,5 @@ ++# Implement "/* { dg-options "-U_FORITFY_SOURCE" } */", due to ++# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20567 ++ ++set additional_flags "-U_FORTIFY_SOURCE" ++return 0 --- gcc-7-7.5.0.orig/debian/patches/thunderx2t99-pipe-sched.diff +++ gcc-7-7.5.0/debian/patches/thunderx2t99-pipe-sched.diff @@ -0,0 +1,55 @@ +# DP: aarch64-thunderx2: Add pipeline/scheduling info for missing insn types. + +diff -urpN a/src/gcc/config/aarch64/thunderx2t99.md b/src/gcc/config/aarch64/thunderx2t99.md +--- a/src/gcc/config/aarch64/thunderx2t99.md 2018-01-08 19:07:26.219493873 -0500 ++++ b/src/gcc/config/aarch64/thunderx2t99.md 2018-01-08 19:24:18.772835187 -0500 +@@ -69,9 +69,30 @@ + + (define_insn_reservation "thunderx2t99_branch" 1 + (and (eq_attr "tune" "thunderx2t99") +- (eq_attr "type" "call,branch")) ++ (eq_attr "type" "call,branch,trap")) + "thunderx2t99_i2") + ++;; Misc instructions. ++ ++(define_insn_reservation "thunderx2t99_nothing" 0 ++ (and (eq_attr "tune" "thunderx2t99") ++ (eq_attr "type" "no_insn,block")) ++ "nothing") ++ ++(define_insn_reservation "thunderx2t99_mrs" 0 ++ (and (eq_attr "tune" "thunderx2t99") ++ (eq_attr "type" "mrs")) ++ "thunderx2t99_i2") ++ ++(define_insn_reservation "thunderx2t99_multiple" 1 ++ (and (eq_attr "tune" "thunderx2t99") ++ (eq_attr "type" "multiple")) ++ "thunderx2t99_i0+thunderx2t99_i1+thunderx2t99_i2+thunderx2t99_ls0+\ ++ thunderx2t99_ls1+thunderx2t99_sd+thunderx2t99_i1m1+thunderx2t99_i1m2+\ ++ thunderx2t99_i1m3+thunderx2t99_ls0d1+thunderx2t99_ls0d2+thunderx2t99_ls0d3+\ ++ thunderx2t99_ls1d1+thunderx2t99_ls1d2+thunderx2t99_ls1d3+thunderx2t99_f0+\ ++ thunderx2t99_f1") ++ + ;; Integer arithmetic/logic instructions. + + ; Plain register moves are handled by renaming, and don't create any uops. +@@ -87,7 +108,7 @@ + adc_reg,adc_imm,adcs_reg,adcs_imm,\ + logic_reg,logic_imm,logics_reg,logics_imm,\ + csel,adr,mov_imm,shift_reg,shift_imm,bfm,\ +- rbit,rev,extend,rotate_imm")) ++ bfx,rbit,rev,extend,rotate_imm")) + "thunderx2t99_i012") + + (define_insn_reservation "thunderx2t99_alu_shift" 2 +@@ -155,7 +176,7 @@ + + (define_insn_reservation "thunderx2t99_fp_cmp" 5 + (and (eq_attr "tune" "thunderx2t99") +- (eq_attr "type" "fcmps,fcmpd")) ++ (eq_attr "type" "fcmps,fcmpd,fccmps,fccmpd")) + "thunderx2t99_f01") + + (define_insn_reservation "thunderx2t99_fp_divsqrt_s" 16 --- gcc-7-7.5.0.orig/debian/porting.html +++ gcc-7-7.5.0/debian/porting.html @@ -0,0 +1,30 @@ + + +Porting libstdc++-v3 + + + + + + + +

Porting libstdc++-v3

+
+


+Node: Top, +Next: , +Up: (dir) +
+
+ +The documentation in this file was removed, because it is licencensed +under a non DFSG conforming licencse. + + --- gcc-7-7.5.0.orig/debian/reduce-test-diff.awk +++ gcc-7-7.5.0/debian/reduce-test-diff.awk @@ -0,0 +1,33 @@ +#! /usr/bin/gawk -f + +BEGIN { + skip=0 + warn=0 +} + +/^-(FAIL|ERROR|UNRESOLVED|WARNING)/ { + next +} + +# only compare gcc, g++, g77 and objc results +/=== treelang tests ===/ { + skip=1 +} + +# omit extra files appended to test-summary +/^\+Compiler version/ { + skip=1 +} + +skip == 0 { + print + next +} + +/^\+(FAIL|ERROR|UNRESOLVED|WARNING)/ { + warn=1 +} + +END { + exit warn +} --- gcc-7-7.5.0.orig/debian/rules +++ gcc-7-7.5.0/debian/rules @@ -0,0 +1,83 @@ +#! /usr/bin/make -f +# -*- makefile -*- +# Build rules for gcc (>= 2.95) and gcc-snapshot +# Targets found in this makefile: +# - unpack tarballs +# - patch sources +# - (re)create the control file +# - create a debian/rules.parameters file, which is included +# by debian/rules2 +# All other targets are passed to the debian/rules2 file + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +unexport LANG LC_ALL LC_CTYPE LC_COLLATE LC_TIME LC_NUMERIC LC_MESSAGES + +default: build + +include debian/rules.defs +include debian/rules.unpack +include debian/rules.patch + +control: $(control_dependencies) + -mkdir -p $(stampdir) + $(MAKE) -f debian/rules.conf $@ + +configure: control $(unpack_stamp) $(patch_stamp) + $(MAKE) -f debian/rules2 $@ + +pre-build: +#ifneq (,$(filter $(distrelease),squeeze sid)) +#ifeq (,$(filter $(DEB_TARGET_ARCH),amd64 i386)) +# @echo explicitely fail the build for $(DEB_TARGET_ARCH) +# @echo no bug report required. please ask the port maintainers if they support gcc-4.5. +# false +#endif +#endif + +build: pre-build control + $(MAKE) $(NJOBS) -f debian/rules2 $@ +build-arch: pre-build control + $(MAKE) $(NJOBS) -f debian/rules2 $@ +build-indep: pre-build control + $(MAKE) $(NJOBS) -f debian/rules2 $@ + +check: $(check_stamp) +$(check_stamp): $(build_stamp) + $(MAKE) -f debian/rules2 $@ + +clean: + rm -rf $(stampdir) +# remove temporary dirs used for unpacking + rm -rf $(gcc_srcdir) $(gdc_srcdir) $(nl_nvptx_srcdir) + -$(MAKE) -f debian/rules2 $@ + rm -rf $(srcdir)* $(builddir)* debian/tmp* html + rm -f bootstrap-* first-move-stamp + rm -f debian/*.tmp + rm -f debian/soname-cache + find debian -name '.#*' | xargs -r rm -f + rm -f $(series_file)* + dh_clean + +install: + $(MAKE) -f debian/rules2 $@ + +html-docs doxygen-docs update-doxygen-docs update-ada-files xxx: + $(MAKE) -f debian/rules2 $@ + +binary-indep binary-arch binary: + $(MAKE) -f debian/rules2 $@ + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +release: + foo=$(shell basename $(CURDIR)); \ + if [ "$$foo" != "gcc-3.4" ]; then \ + find -name CVS -o -name .cvsignore -o -name '.#*' | \ + xargs rm -rf; \ + fi + +.NOTPARALLEL: +.PHONY: build clean binary-indep binary-arch binary release --- gcc-7-7.5.0.orig/debian/rules.conf +++ gcc-7-7.5.0/debian/rules.conf @@ -0,0 +1,1341 @@ +# -*- makefile -*- +# rules.conf +# - used to build debian/control and debian/rules.parameters +# - assumes unpacked sources + +include debian/rules.defs +include debian/rules.sonames + +# manual ... +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),hppa m68k)) + ifeq ($(DEB_TARGET_ARCH),m68k) + GCC_SONAME := 2 + endif + ifeq ($(DEB_TARGET_ARCH),hppa) + GCC_SONAME := 4 + endif +else + GCC_SONAME := 1 +endif +DEB_LIBGCC_SOVERSION := $(DEB_SOEVERSION) +DEB_LIBGCC_VERSION := $(DEB_EVERSION) + +_soname_map = gcc=$(GCC_SONAME) stdc++=$(CXX_SONAME) gomp=$(GOMP_SONAME) \ + ssp=$(SSP_SONAME) gfortran=$(FORTRAN_SONAME) \ + itm=$(ITM_SONAME) objc=$(OBJC_SONAME) quadmath=$(QUADMATH_SONAME) \ + go=$(GO_SONAME) backtrace=$(BTRACE_SONAME) \ + atomic=$(ATOMIC_SONAME) asan=$(ASAN_SONAME) lsan=$(LSAN_SONAME) \ + tsan=$(TSAN_SONAME) ubsan=$(UBSAN_SONAME) \ + vtv=$(VTV_SONAME) cilkrts=$(CILKRTS_SONAME) mpx=$(MPX_SONAME) \ + gphobos=$(GPHOBOS_SONAME) hsail-rt=$(HSAIL_SONAME) +_soname = $(patsubst $(1)=%,%,$(filter $(1)=%,$(_soname_map))) + +rel_on_dev := $(if $(cross_lib_arch),>=,=) +# $(call _lib_name,,,) +_lib_name = $(subst $(SPACE),, \ + lib$(2)$(1) \ + $(if $(filter dev,$(3)),,$(call _soname,$(1))) \ + $(if $(or $(filter $(3),dev),$(and $(filter $(3),dbg),$(filter $(1),stdc++))),-$(BASE_VERSION)) \ + $(if $(3),-$(3))$(LS)$(AQ)) +# $(call _lib_vers,,) +_lib_vers = ($(if $(filter $(1),dev),$(rel_on_dev),>=) $(2)) + +# Helper to generate biarch/triarch dependencies. +# For example, $(eval $(call gen_multilib_deps,gomp)) will create the +# libgompbiarch variable, and make it contains the libgompbiarch{32,64,n32} +# variables if biarch{32,64,n32} is set to yes. + +define gen_multilib_deps + lib$1biarch64$2 := $(call _lib_name,$(1),64,$(2)) $(call _lib_vers,$(2),$(3)) + lib$1biarch32$2 := $(call _lib_name,$(1),32,$(2)) $(call _lib_vers,$(2),$(3)) + lib$1biarchn32$2 := $(call _lib_name,$(1),n32,$(2)) $(call _lib_vers,$(2),$(3)) + lib$1biarchx32$2 := $(call _lib_name,$(1),x32,$(2)) $(call _lib_vers,$(2),$(3)) + lib$1biarchhf$2 := $(call _lib_name,$(1),hf,$(2)) $(call _lib_vers,$(2),$(3)) + lib$1biarchsf$2 := $(call _lib_name,$(1),sf,$(2)) $(call _lib_vers,$(2),$(3)) + ifeq ($$(biarch64),yes) + lib$1biarch$2 := $$(lib$1biarch64$2) + endif + ifeq ($$(biarch32),yes) + ifeq ($$(biarch64),yes) + lib$1biarch$2 := $$(lib$1biarch64$2), $$(lib$1biarch32$2) + else + lib$1biarch$2 := $$(lib$1biarch32$2) + endif + endif + ifeq ($$(biarchx32),yes) + ifeq ($1,mpx) + ifeq ($$(biarch64),yes) + lib$1biarch$2 := $$(lib$1biarch64$2) + else ifeq ($$(biarch32),yes) + lib$1biarch$2 := $$(lib$1biarch32$2) + else + lib$1biarch$2 := + endif + else ifeq ($$(biarch64),yes) + lib$1biarch$2 := $$(lib$1biarch64$2), $$(lib$1biarchx32$2) + else ifeq ($$(biarch32),yes) + lib$1biarch$2 := $$(lib$1biarch32$2), $$(lib$1biarchx32$2) + else + lib$1biarch$2 := $$(lib$1biarchx32$2) + endif + endif + ifeq ($$(biarchn32),yes) + ifeq ($$(biarch64),yes) + lib$1biarch$2 := $$(lib$1biarch64$2), $$(lib$1biarchn32$2) + else ifeq ($$(biarch32),yes) + lib$1biarch$2 := $$(lib$1biarch32$2), $$(lib$1biarchn32$2) + else + lib$1biarch$2 := $$(lib$1biarchn32$2) + endif + endif + ifeq ($$(biarchhf),yes) + lib$1biarch$2 := $$(lib$1biarchhf$2) | $(call _lib_name,$(1),hf,$(2)) + endif + ifeq ($$(biarchsf),yes) + lib$1biarch$2 := $$(lib$1biarchsf$2) | $(call _lib_name,$(1),sf,$(2)) + endif +endef +ifeq ($(with_shared_libgcc),yes) + LIBGCC_DEP := libgcc$(GCC_SONAME)$(LS)$(AQ) (>= $(DEB_LIBGCC_VERSION)) + $(eval $(call gen_multilib_deps,gcc,,$(DEB_LIBGCC_VERSION))) +endif +LIBGCC_DEV_DEP := libgcc-$(BASE_VERSION)-dev$(LS)$(AQ) ($(rel_on_dev) $(DEB_VERSION)) +$(foreach x,stdc++ gomp ssp gfortran itm objc atomic asan lsan mpx ubsan quadmath go vtv cilkrts, \ + $(eval $(call gen_multilib_deps,$(x),,$$$${gcc:Version}))) +$(foreach x,gcc stdc++ gfortran objc go gphobos, \ + $(eval $(call gen_multilib_deps,$(x),dev,$$$${gcc:Version}))) +$(foreach x,gcc stdc++ gfortran objc go gphobos, \ + $(eval $(call gen_multilib_deps,$(x),dbg,$$$${gcc:Version}))) + +# Helper to generate _no_archs variables. +# For example, $(eval $(call gen_no_archs,go)) will create the go_no_archs +# variable, using the go_no_cpu and go_no_systems variables. +define gen_no_archs + $1_no_archs := + ifneq (,$$($1_no_cpus)) + $1_no_archs += $$(foreach cpu,$$(filter-out i386 amd64 alpha arm,$$($1_no_cpus)),!$$(cpu)) + ifneq (,$$(filter i386,$$($1_no_cpus))) + $1_no_archs += !i386 !hurd-i386 !kfreebsd-i386 + endif + ifneq (,$$(filter amd64,$$($1_no_cpus))) + $1_no_archs += !amd64 !kfreebsd-amd64 + endif + ifneq (,$$(filter alpha,$$($1_no_cpus))) + $1_no_archs += !alpha !hurd-alpha + endif + ifneq (,$$(filter arm,$$($1_no_cpus))) + $1_no_archs += !arm !armel !armhf + endif + ifneq (,$$(strip $3)) + $1_no_systems_tmp := $$(subst $$(SPACE)gnu$$(SPACE),$$(SPACE)hurd-gnu$$(SPACE),$$(SPACE)$3$$(SPACE)) + $1_no_archs += $$(foreach cpu,$$($1_no_cpus),$$(foreach system,$$($1_no_systems_tmp),!$$(subst gnu,$$(cpu),$$(system)))) + endif + endif + ifneq (,$$($1_no_systems)) + $1_no_systems_tmp := $$(subst $$(SPACE)gnu$$(SPACE),$$(SPACE)hurd-gnu$$(SPACE),$$(SPACE)$$($1_no_systems)$$(SPACE)) + $1_no_archs += $$(foreach system,$$($1_no_systems_tmp),$$(foreach cpu,$2,!$$(subst gnu,$$(cpu),$$(system)))) + endif + $1_no_archs := $$(strip $$($1_no_archs)) +endef +base_deb_cpus := amd64 i386 alpha +base_deb_systems := +$(foreach x,ada fortran libgphobos libgc check locale,$(eval $(call gen_no_archs,$(x),$(base_deb_cpus),$(base_deb_systems)))) +linux_no_archs := !hurd-any !kfreebsd-any + +GCC_VERSION := $(strip $(shell cat $(firstword $(wildcard $(srcdir)/gcc/FULL-VER $(srcdir)/gcc/BASE-VER)))) +NEXT_GCC_VERSION := $(shell echo $(GCC_VERSION) | \ + awk -F. '{OFS="."; $$2 += 1; $$3=0; print}') +GCC_MAJOR_VERSION := $(shell echo $(GCC_VERSION) | sed -r 's/([0-9])\.[0-9]\.[0-9]/\1/') +GCC_MINOR_VERSION := $(shell echo $(GCC_VERSION) | sed -r 's/[0-9]\.([0-9])\.[0-9]/\1/') +GCC_RELEASE_VERSION := $(shell echo $(GCC_VERSION) | sed -r 's/[0-9]\.[0-9]\.([0-9])/\1/') +NEXT_GCC_MAJOR_VERSION := $(shell expr $(echo $(GCC_MAJOR_VERSION)) + 1) +NEXT_GCC_MINOR_VERSION := $(shell expr $(echo $(GCC_MINOR_VERSION)) + 1) +NEXT_GCC_RELEASE_VERSION := $(shell expr $(echo $(GCC_MAJOR_VERSION)) + 1) + +ifeq ($(single_package),yes) + BASE_VERSION := $(shell echo $(GCC_VERSION) | sed -e 's/\([1-9]*\).*/\1/') +endif + +GCC_SOURCE_VERSION := $(shell echo $(DEB_VERSION) | sed 's/-.*//') +NEXT_GCC_SOURCE_VERSION := $(shell echo $(GCC_SOURCE_VERSION) | \ + awk -F. '{OFS="."; $$2 += 1; $$3=0; print}') + +MAINTAINER = Debian GCC Maintainers +ifeq ($(distribution),Ubuntu) + ifneq (,$(findstring $(PKGSOURCE),gnat gdc)) + MAINTAINER = Ubuntu MOTU Developers + else + MAINTAINER = Ubuntu Core developers + endif +endif + +UPLOADERS = Matthias Klose +ifneq (,$(findstring $(PKGSOURCE),gnat)) + UPLOADERS = Ludovic Brenta +endif +ifneq (,$(findstring $(PKGSOURCE),gdc)) + UPLOADERS = Iain Buclaw , Matthias Klose +endif + +DPKGV = 1.14.15 +ifeq ($(with_multiarch_lib),yes) + DPKGV = 1.16.0~ubuntu4 +endif +ifeq ($(multiarch_stage1),yes) + DPKGV = 1.16.0~ubuntu4 +endif +ifeq (,$(filter $(distrelease),lenny etch squeeze wheezy dapper hardy jaunty karmic lucid maverick natty oneiric precise quantal raring saucy trusty utopic)) + DPKGV = 1.17.14 +endif +DPKG_BUILD_DEP = dpkg-dev (>= $(DPKGV)), + +ifeq ($(DEB_HOST_ARCH),$(DEB_TARGET_ARCH)) + TARGET_QUAL = :$(DEB_TARGET_ARCH) +endif + +# The binutils version needed. +# The oldest suitable versions for the various platforms can be found in +# INSTALL/specific.html ; we take a tighter dependency if possible to be on +# the safe side (something like newest( version in stable, versions for the +# various platforms in INSTALL/specific.html) ). +# We need binutils (>= 2.19.1) for a new dwarf unwind expression opcode. +# See http://gcc.gnu.org/ml/gcc-patches/2008-09/msg01713.html +ifeq ($(trunk_build),yes) + BINUTILSBDV = 2.23 +else + BINUTILSBDV = 2.22 + ifneq (,$(filter $(distrelease),vivid)) + BINUTILSBDV = 2.25-3~ + else ifneq (,$(filter $(distrelease),trusty)) + BINUTILSBDV = 2.24-5~ + else ifneq (,$(filter $(distrelease),jessie)) + BINUTILSBDV = 2.25-7~ + else ifneq (,$(filter $(distrelease),xenial)) + BINUTILSBDV = 2.26.1 + else ifneq (,$(filter $(distrelease),stretch zesty)) + BINUTILSBDV = 2.28 + else ifneq (,$(filter $(distrelease),artful)) + BINUTILSBDV = 2.29.1 + else ifneq (,$(filter $(distrelease),bionic)) + BINUTILSBDV = 2.30 + else + BINUTILSBDV = 2.30 + endif +endif +ifeq ($(DEB_CROSS),yes) + BINUTILS_BUILD_DEP = binutils$(TS)$(NT) (>= $(BINUTILSBDV)), binutils-multiarch$(NT) (>= $(BINUTILSBDV)) + BINUTILSV := $(shell dpkg -l binutils$(TS) \ + | awk '/^ii/{print $$3;exit}' | sed 's/-.*//') +else + BINUTILS_BUILD_DEP = binutils$(NT) (>= $(BINUTILSBDV)) | binutils-multiarch$(NT) (>= $(BINUTILSBDV)) + ifneq (,$(findstring cross-build-,$(build_type))) + BINUTILSV := $(shell dpkg -l binutils$(TS) \ + | awk '/^ii/{print $$3;exit}' | sed 's/-.*//') + else + BINUTILSV := $(shell dpkg -l binutils binutils-multiarch \ + | awk '/^ii/{print $$3;exit}' | sed 's/-.*//') + endif +endif +ifneq (,$(filter $(build_type), build-native cross-build-native)) + ifeq (,$(filter gccgo% gnat%, $(PKGSOURCE))) + BINUTILS_BUILD_DEP += , $(binutils_hppa64)$(NT) (>= $(BINUTILSBDV)) [$(hppa64_archs)] + endif +endif +ifeq (,$(BINUTILSV)) + BINUTILSV := $(BINUTILSBDV) +endif + +# FIXME; stripping doesn't work with gold +#BINUTILS_BUILD_DEP += , binutils-gold (>= $(BINUTILSV)) [$(gold_archs)] + +# libc-dev dependencies +libc_ver := 2.11 +libc_dev_ver := $(libc_ver) +ifeq ($(with_multiarch_lib),yes) + ifeq ($(derivative),Debian) + libc_dev_ver := 2.13-5 + else + libc_dev_ver := 2.13-0ubuntu6 + endif +endif +# first set LIBC_DEP/LIBC_DEV_DEP for native builds only +ifeq ($(DEB_TARGET_ARCH_OS),linux) + ifneq (,$(findstring $(DEB_TARGET_ARCH),alpha ia64)) + LIBC_DEP = libc6.1 + else + LIBC_DEP = libc6 + endif + ifneq (,$(findstring musl-linux-,$(DEB_TARGET_ARCH))) + LIBC_DEP = musl + libc_ver = 0.9 + libc_dev_ver = 0.9 + endif +else + ifeq ($(DEB_TARGET_ARCH_OS),hurd) + LIBC_DEP = libc0.3 + endif + ifeq ($(DEB_TARGET_ARCH_OS),kfreebsd) + LIBC_DEP = libc0.1 + endif + ifeq ($(DEB_TARGET_ARCH),uclibc) + LIBC_DEP = libuclibc + endif +endif +LIBC_DEV_DEP := $(LIBC_DEP)-dev + +# this is about Debian archs name, *NOT* GNU target triplet +biarch_deb_map := \ + i386=amd64 amd64=i386 \ + mips=mips64 mipsel=mips64el \ + mipsn32=mips mipsn32el=mipsel \ + mips64=mips mips64el=mipsel \ + mipsr6=mips64r6 mipsr6el=mips64r6el \ + mipsn32r6=mipsr6 mipsn32r6el=mipsr6el \ + mips64r6=mipsr6 mips64r6el=mipsr6el \ + powerpc=ppc64 ppc64=powerpc \ + sparc=sparc64 sparc64=sparc\ + s390=s390x s390x=s390 \ + kfreebsd-amd64=i386 \ + armel=armhf \ + armhf=armel +biarch_deb_arch := $(patsubst $(DEB_TARGET_ARCH)=%,%, \ + $(filter $(DEB_TARGET_ARCH)=%,$(biarch_deb_map))) + +LIBC_BIARCH_DEP := +LIBC_BIARCH_DEV_DEP := +ifneq (,$(findstring yes,$(biarch64) $(biarch32) $(biarchn32) $(biarchx32)$(biarchhf)$(biarchsf))) + LIBC_BIARCH_DEP := $${shlibs:Depends} + LIBC_BIARCH_DEV_DEP := $(LIBC_DEV_DEP)-$(biarch_deb_arch)$(LS)$(AQ) (>= $(libc_ver)) + # amd64, x32, i386 + ifneq (,$(findstring $(DEB_TARGET_ARCH),amd64 x32 i386)) + ifeq ($(biarch64)$(biarch32),yesyes) + LIBC_BIARCH_DEV_DEP := $(LIBC_DEV_DEP)-amd64$(LS)$(AQ) (>= $(libc_ver)), $(LIBC_DEV_DEP)-i386$(LS)$(AQ) (>= $(libc_ver)) + endif + ifeq ($(biarch64)$(biarchx32),yesyes) + LIBC_BIARCH_DEV_DEP := $(LIBC_DEV_DEP)-amd64$(LS)$(AQ) (>= $(libc_ver)), $(LIBC_DEV_DEP)-x32$(LS)$(AQ) (>= $(libc_ver)) + endif + ifeq ($(biarch32)$(biarchx32),yesyes) + LIBC_BIARCH_DEV_DEP := $(LIBC_DEV_DEP)-i386$(LS)$(AQ) (>= $(libc_ver)), $(LIBC_DEV_DEP)-x32$(LS)$(AQ) (>= $(libc_ver)) + endif + endif + # mips* + ifneq (,$(findstring $(DEB_TARGET_ARCH),mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el)) + ifeq ($(biarchn32)$(biarch32),yesyes) + LIBC_BIARCH_DEV_DEP := libc6-dev-mips32$(LS)$(AQ) (>= $(libc_ver)), libc6-dev-mipsn32$(LS)$(AQ) (>= $(libc_ver)) + endif + ifeq ($(biarch64)$(biarch32),yesyes) + triarch := $(COMMA)$(SPACE) + LIBC_BIARCH_DEV_DEP := libc6-dev-mips32$(LS)$(AQ) (>= $(libc_ver)), libc6-dev-mips64$(LS)$(AQ) (>= $(libc_ver)) + endif + ifeq ($(biarchn32)$(biarch64),yesyes) + triarch := $(COMMA)$(SPACE) + LIBC_BIARCH_DEV_DEP := libc6-dev-mips64$(LS)$(AQ) (>= $(libc_ver)), libc6-dev-mipsn32$(LS)$(AQ) (>= $(libc_ver)) + endif + endif + + ifeq ($(biarchhf),yes) + LIBC_BIARCH_DEP := $(LIBC_DEP)-$(biarch_deb_arch)$(LS)$(AQ) (>= $(libc_ver)) + LIBC_BIARCH_DEP += | $(LIBC_DEP)-$(biarch_deb_arch)$(LS)$(AQ) + LIBC_BIARCH_DEV_DEP += | $(LIBC_DEV_DEP)-$(biarch_deb_arch)$(LS)$(AQ) + endif + ifeq ($(biarchsf),yes) + LIBC_BIARCH_DEP := $(LIBC_DEP)-$(biarch_deb_arch)$(LS)$(AQ) (>= $(libc_ver)) + LIBC_BIARCH_DEP += | $(LIBC_DEP)-$(biarch_deb_arch)$(LS)$(AQ) + LIBC_BIARCH_DEV_DEP += | $(LIBC_DEV_DEP)-$(biarch_deb_arch)$(LS)$(AQ) + endif +endif + +# now add the cross suffix and required version +LIBC_DEP := $(LIBC_DEP)$(LS)$(AQ) +LIBC_DEV_DEP := $(LIBC_DEV_DEP)$(LS)$(AQ) (>= $(libc_dev_ver)) + +ifneq (,$(filter $(build_type), build-native cross-build-native)) + LIBC_DBG_DEP = libc6.1-dbg [alpha ia64] | libc0.3-dbg [hurd-i386] | libc0.1-dbg [kfreebsd-i386 kfreebsd-amd64] | libc6-dbg, +endif + +# TODO: make this automatic, there must be a better way to define LIBC_DEP. +ifneq ($(DEB_CROSS),yes) + LIBC_BUILD_DEP = libc6.1-dev (>= $(libc_dev_ver)) [alpha ia64] | libc0.3-dev (>= $(libc_dev_ver)) [hurd-i386] | libc0.1-dev (>= $(libc_dev_ver)) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= $(libc_dev_ver)) + ifeq (,$(filter $(distrelease),lenny etch squeeze dapper hardy jaunty karmic lucid maverick natty oneiric)) + LIBC_BUILD_DEP += , libc6-dev (>= 2.13-31) [armel armhf] + endif + LIBC_BIARCH_BUILD_DEP = libc6-dev-amd64 [i386 x32], libc6-dev-sparc64 [sparc], libc6-dev-sparc [sparc64], libc6-dev-s390 [s390x], libc6-dev-s390x [s390], libc6-dev-i386 [amd64 x32], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64 mipsn32 mipsn32el mips64 mips64el s390x sparc64 x32], libn32gcc1 [mips mipsel mips64 mips64el], lib64gcc1 [i386 mips mipsel mipsn32 mipsn32el powerpc sparc s390 x32], libc6-dev-mips64 [mips mipsel mipsn32 mipsn32el], libc6-dev-mipsn32 [mips mipsel mips64 mips64el], libc6-dev-mips32 [mipsn32 mipsn32el mips64 mips64el], + ifeq (yes,$(MIPS_R6_ENABLED)) + LIBC_BIARCH_BUILD_DEP = libc6-dev-amd64 [i386 x32], libc6-dev-sparc64 [sparc], libc6-dev-sparc [sparc64], libc6-dev-s390 [s390x], libc6-dev-s390x [s390], libc6-dev-i386 [amd64 x32], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el s390x sparc64 x32], libn32gcc1 [mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el], lib64gcc1 [i386 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el powerpc sparc s390 x32], libc6-dev-mips64 [mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el], libc6-dev-mipsn32 [mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el], libc6-dev-mips32 [mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el], + endif +ifneq (,$(findstring amd64,$(biarchx32archs))) + LIBC_BIARCH_BUILD_DEP += libc6-dev-x32 [amd64 i386], libx32gcc1 [amd64 i386], +endif +ifneq (,$(findstring armel,$(biarchhfarchs))) + LIBC_BIARCH_BUILD_DEP += libc6-dev-armhf [armel], libhfgcc1 [armel], +endif +ifneq (,$(findstring armhf,$(biarchsfarchs))) + LIBC_BIARCH_BUILD_DEP += libc6-dev-armel [armhf], libsfgcc1 [armhf], +endif +else + LIBC_BUILD_DEP = $(LIBC_DEV_DEP), + ifneq ($(LIBC_BIARCH_DEV_DEP),) + LIBC_BIARCH_BUILD_DEP = $(LIBC_BIARCH_DEV_DEP), + else + LIBC_BIARCH_BUILD_DEP = + endif +endif + +# needed for the include/asm symlink to run the testsuite for +# non default multilibs +ifneq (,$(multilib_archs)) + GCC_MULTILIB_BUILD_DEP = g++-multilib [$(multilib_archs)]$(pf_ncross), +endif + +LIBUNWIND_DEV_DEP := libunwind8-dev$(LS)$(AQ) +LIBUNWIND_BUILD_DEP := $(LIBUNWIND_DEV_DEP) [ia64], +LIBATOMIC_OPS_BUILD_DEP := libatomic-ops-dev$(LS) [ia64], +ifneq ($(DEB_TARGET_ARCH),ia64) + LIBUNWIND_DEV_DEP := # nothing +else ifneq (,$(filter $(DEB_STAGE),stage1 stage2)) + LIBUNWIND_DEV_DEP := # nothing +endif + +ifneq (,$(filter $(distrelease),lenny etch squeeze dapper hardy jaunty karmic lucid maverick natty)) + GMP_BUILD_DEP = libgmp3-dev | libgmp-dev (>= 2:5.0.1~), + MPFR_BUILD_DEP = libmpfr-dev, +else + GMP_BUILD_DEP = libgmp-dev (>= 2:5.0.1~), + MPFR_BUILD_DEP = libmpfr-dev (>= 3.0.0-9~), +endif + +ISL_BUILD_DEP = libisl-dev, +ifneq (,$(filter $(distrelease),jessie stretch sid experimental)) + ISL_BUILD_DEP = libisl-dev (>= 0.14), +endif + +ifneq (,$(filter $(distrelease),lenny etch squeeze wheezy dapper hardy jaunty karmic lucid maverick natty oneiric precise quantal raring)) + MPC_BUILD_DEP = libmpc-dev, +else ifneq (,$(filter $(distrelease), stretch jessie trusty xenial artful)) + MPC_BUILD_DEP = libmpc-dev (>= 1.0), +else + MPC_BUILD_DEP = libmpc-dev (>= 1.1), +endif + +SOURCE_BUILD_DEP := +ifeq (,$(findstring gcc,$(PKGSOURCE))) + SOURCE_BUILD_DEP := gcc-$(BASE_VERSION)-source (>= $(GCC_SOURCE_VERSION)), gcc-$(BASE_VERSION)-source (<< $(NEXT_GCC_SOURCE_VERSION)), +endif + +CHECK_BUILD_DEP := dejagnu [$(check_no_archs)], + +AUTO_BUILD_DEP := m4, libtool, +AUTO_BUILD_DEP += autoconf2.64, + +ifeq (,$(filter $(distrelease),lenny etch squeeze wheezy dapper hardy jaunty karmic lucid maverick natty oneiric precise quantal raring saucy trusty)) + SDT_BUILD_DEP = systemtap-sdt-dev [linux-any kfreebsd-any hurd-any], +endif + +# ensure that the common libs, built from the next GCC version are available +ifeq ($(PKGSOURCE),gcc-$(BASE_VERSION)) + ifneq ($(with_common_libs),yes) + BASE_BUILD_DEP = gcc-8-base, + endif +endif + +OFFLOAD_BUILD_DEP += nvptx-tools [$(nvptx_archs)], + +PHOBOS_BUILD_DEP = lib32z1-dev [amd64 kfreebsd-amd64], lib64z1-dev [i386], +ifeq ($(derivative),Ubuntu) + PHOBOS_BUILD_DEP += libx32z1-dev [amd64 kfreebsd-amd64 i386], +endif + +ifneq ($(DEB_CROSS),yes) +# all archs for which to create b-d's +any_archs = alpha amd64 armel armhf arm64 i386 mips mipsel mips64 mips64el mipsn32 powerpc ppc64 ppc64el m68k sh4 sparc64 s390x x32 +ifeq (yes,$(MIPS_R6_ENABLED)) + any_archs += mipsn32el mipsr6 mipsr6el mips64r6 mips64r6el mipsn32r6 mipsn32r6el +endif +ifeq (,$(filter $(DEB_HOST_ARCH),$(any_archs))) +any_archs += $(DEB_HOST_ARCH) +endif + +arch_gnutype_map := $(foreach a,$(any_archs),$(a)=$(shell CC=true dpkg-architecture -f -a$(a) -qDEB_HOST_GNU_TYPE)) +_gnu_type = $(subst $1=,,$(filter $1=%,$(arch_gnutype_map))) +_gnu_suffix = -$(subst _,-,$(call _gnu_type,$1)) + +ifneq (,$(filter $(distrelease),lenny etch squeeze wheezy wheezy dapper hardy jaunty karmic lucid maverick natty oneiric precise quantal raring saucy trusty utopic vivid)) + DEBHELPER_BUILD_DEP = debhelper (>= 9), + TARGET_TOOL_BUILD_DEP = bash, # non-empty line + pf_cross = + pf_ncross = +else + DEBHELPER_BUILD_DEP = debhelper (>= 9.20141010), + TARGET_TOOL_BUILD_DEP = \ + $(foreach a, $(any_archs), \ + g++-$(BASE_VERSION)$(call _gnu_suffix,$(a)) [$(a)] , \ + $(if $(filter $(a), avr),, \ + gobjc-$(BASE_VERSION)$(call _gnu_suffix,$(a)) [$(a)] ,) \ + gfortran-$(BASE_VERSION)$(call _gnu_suffix,$(a)) [$(a)] , \ + $(if $(filter $(a), s390 sh4),, \ + gdc-$(BASE_VERSION)$(call _gnu_suffix,$(a)) [$(a)] ,) \ + $(if $(filter $(a), hppa m68k sh4),, \ + gccgo-$(BASE_VERSION)$(call _gnu_suffix,$(a)) [$(a)] ,) \ + $(if $(filter $(a), m68k),, \ + gnat-$(BASE_VERSION)$(call _gnu_suffix,$(a)) [$(a)] ,) \ + ) + pf_cross = $(SPACE) + pf_ncross = $(SPACE) + NT = :native +endif + +ifeq ($(single_package),yes) + LIBSTDCXX_BUILD_INDEP = doxygen (>= 1.7.2), graphviz (>= 2.2), ghostscript, texlive-latex-base + LIBSTDCXX_BUILD_INDEP +=, xsltproc, libxml2-utils, docbook-xsl-ns +endif + +ifeq ($(PKGSOURCE),gcc-$(BASE_VERSION)) + LIBSTDCXX_BUILD_INDEP = doxygen (>= 1.7.2), graphviz (>= 2.2), ghostscript, texlive-latex-base + ifeq (,$(filter $(distrelease),lenny etch dapper hardy jaunty karmic lucid maverick natty oneiric)) + LIBSTDCXX_BUILD_INDEP +=, xsltproc, libxml2-utils, docbook-xsl-ns + endif +endif + +GO_BUILD_DEP := netbase, + +# try to build with itself, or with the last version +ifneq (,$(filter $(distrelease), squeeze lucid)) + gnat_build_dep := +else ifneq (,$(filter $(distrelease), jessie)) + gnat_build_dep := gnat-4.9$(NT) [$(ada_no_archs)], g++-4.9$(NT) +else ifneq (,$(filter $(distrelease), wheezy precise trusty wily xenial)) + gnat_build_dep := gnat-5$(NT) [$(ada_no_archs)], g++-5$(NT) +else ifneq (,$(filter $(distrelease), stretch yakkety zesty)) + gnat_build_dep := gnat-6$(NT) [$(ada_no_archs)], g++-6$(NT) +else ifneq (,$(filter $(distrelease), buster sid artful bionic cosmic)) + gnat_build_dep := gnat-7$(NT) [$(ada_no_archs)], g++-7$(NT) +else + gnat_build_dep := gnat-7$(NT) [$(ada_no_archs)], g++-7$(NT) +endif +ifneq (,$(filter $(DEB_STAGE),stage1 stage2)) + gnat_build_dep := +endif + +ifeq ($(PKGSOURCE),gcc-$(BASE_VERSION)) + ifneq ($(with_separate_gnat),yes) + # Build gnat as part of the combined gcc-x.y source package. Do not fail + # if gnat is not present on unsupported architectures; the build scripts + # will not use gnat anyway. + GNAT_BUILD_DEP := $(gnat_build_dep), + endif +else ifeq ($(single_package),yes) + # Ditto, as part of the gcc-snapshot package. + GNAT_BUILD_DEP := $(gnat_build_dep), +else ifeq ($(PKGSOURCE),gnat-$(BASE_VERSION)) + # Special source package just for gnat. Fail early if gnat is not present, + # rather than waste CPU cycles and fail later. + # Bootstrap step needs a gnatgcc symbolic link. + GNAT_BUILD_DEP := $(gnat_build_dep), + GNAT_BUILD_DEP += $(SOURCE_BUILD_DEP) + GDC_BUILD_DEP := + GO_BUILD_DEP := +else ifeq ($(PKGSOURCE),gdc-$(BASE_VERSION)) + # Special source package just for gdc. + GNAT_BUILD_DEP := + GDC_BUILD_DEP := $(SOURCE_BUILD_DEP) + GO_BUILD_DEP := +else ifeq ($(PKGSOURCE),gccgo-$(BASE_VERSION)) + # Special source package just for gccgo. + GNAT_BUILD_DEP := + GDC_BUILD_DEP := $(SOURCE_BUILD_DEP) +endif + + +else +# build cross compiler + CROSS_BUILD_DEP := libc6-dev$(cross_lib_arch), +ifneq (,$(findstring cross-build-,$(build_type))) + CROSS_BUILD_DEP += zlib1g-dev$(cross_lib_arch), libmpfr-dev$(cross_lib_arch), +endif + SOURCE_BUILD_DEP := + ifeq (,$(findstring gcc,$(PKGSOURCE))) + SOURCE_BUILD_DEP := gcc-$(BASE_VERSION)-source (>= $(GCC_SOURCE_VERSION)), gcc-$(BASE_VERSION)-source (<< $(NEXT_GCC_SOURCE_VERSION)), + endif + GNAT_BUILD_DEP := + arch_gnutype_map = $(DEB_TARGET_ARCH)=$(TARGET_ALIAS) +endif # cross compiler + +BASE_BREAKS := gcc-4.4-base (<< 4.4.7), gcc-4.7-base (<< 4.7.3), gcj-4.4-base (<< 4.4.6-9~), gnat-4.4-base (<< 4.4.6-3~), gcj-4.6-base (<< 4.6.1-4~), gnat-4.6 (<< 4.6.1-5~), gnat (<< 7) +# these would need proper updates, and are only needed for upgrades +ifneq (,$(filter $(distrelease),squeeze wheezy lucid precise trusty)) + BASE_BREAKS := +endif + + +# The numeric part of the gcc version number (x.yy.zz) +NEXT_GCC_VERSION := $(shell echo $(GCC_VERSION) | \ + awk -F. '{OFS="."; if (NF==2) $$3=1; else $$NF += 1; print}') +# first version with a new path component in gcc_lib_dir (i.e. GCC_VERSION +# or TARGET_ALIAS changes), or last version available for all architectures +DEB_GCC_SOFT_VERSION := 7 +DEB_GNAT_SOFT_VERSION := 7 + +ifeq ($(with_d),yes) + GDC_VERSION := $(BASE_VERSION) + DEB_GDC_VERSION := $(DEB_VERSION) +endif + +# semiautomatic ... +DEB_SOVERSION := $(DEB_VERSION) +DEB_SOVERSION := 5 +DEB_SOEVERSION := $(EPOCH):5 +DEB_STDCXX_SOVERSION := 5 +DEB_GOMP_SOVERSION := $(DEB_SOVERSION) + +DEB_GCC_VERSION := $(DEB_VERSION) + +DEB_GNAT_VERSION := $(DEB_VERSION) +ifeq ($(with_separate_gnat),yes) + ifeq ($(PKGSOURCE),gnat-$(BASE_VERSION)) + DEB_GCC_VERSION := $(DEB_GCC_SOFT_VERSION) + endif +endif + +GNAT_VERSION := $(BASE_VERSION) + +LIBGNAT_DEP := +ifeq ($(with_libgnat),yes) + LIBGNAT_DEP := libgnat-$(GNAT_VERSION)$(LS)$(AQ) (>= $${gcc:Version}) +endif + +pkg_ver := -$(BASE_VERSION) + +ctrl_flags = \ + -DBINUTILSV=$(BINUTILSV) \ + -DBINUTILSBDV=$(BINUTILSBDV) \ + -DSRCNAME=$(PKGSOURCE) \ + -D__$(DEB_TARGET_GNU_CPU)__ \ + -DARCH=$(DEB_TARGET_ARCH) \ + -DDIST=$(distribution) + +ctrl_flags += \ + -DLIBC_DEV_DEP="$(LIBC_DEV_DEP)" \ + -DLIBC_BIARCH_BUILD_DEP="$(LIBC_BIARCH_BUILD_DEP)" \ + -DLIBC_DBG_DEP="$(LIBC_DBG_DEP)" \ + -DBASE_BUILD_DEP="$(BASE_BUILD_DEP)" \ + -DFORTRAN_BUILD_DEP="$(FORTRAN_BUILD_DEP)" \ + -DGNAT_BUILD_DEP="$(GNAT_BUILD_DEP)" \ + -DGO_BUILD_DEP="$(GO_BUILD_DEP)" \ + -DLIBSTDCXX_BUILD_INDEP="$(LIBSTDCXX_BUILD_INDEP)" \ + -DGDC_BUILD_DEP="$(GDC_BUILD_DEP)" \ + -DBINUTILS_BUILD_DEP="$(BINUTILS_BUILD_DEP)" \ + -DLIBC_BUILD_DEP="$(LIBC_BUILD_DEP)" \ + -DCHECK_BUILD_DEP="$(CHECK_BUILD_DEP)" \ + -DAUTO_BUILD_DEP="$(AUTO_BUILD_DEP)" \ + -DSDT_BUILD_DEP="$(SDT_BUILD_DEP)" \ + -DISL_BUILD_DEP="$(ISL_BUILD_DEP)" \ + -DGMP_BUILD_DEP="$(GMP_BUILD_DEP)" \ + -DMPFR_BUILD_DEP="$(MPFR_BUILD_DEP)" \ + -DMPC_BUILD_DEP="$(MPC_BUILD_DEP)" \ + -DDEBHELPER_BUILD_DEP="$(DEBHELPER_BUILD_DEP)" \ + -DDPKG_BUILD_DEP="$(DPKG_BUILD_DEP)" \ + -DSOURCE_BUILD_DEP="$(SOURCE_BUILD_DEP)" \ + -DCROSS_BUILD_DEP="$(CROSS_BUILD_DEP)" \ + -DGCC_MULTILIB_BUILD_DEP='$(GCC_MULTILIB_BUILD_DEP)' \ + -DTARGET_TOOL_BUILD_DEP='$(TARGET_TOOL_BUILD_DEP)' \ + -DPHOBOS_BUILD_DEP="$(PHOBOS_BUILD_DEP)" \ + -DOFFLOAD_BUILD_DEP="$(OFFLOAD_BUILD_DEP)" \ + -DMULTILIB_ARCHS="$(multilib_archs)" \ + -DNEON_ARCHS="$(neon_archs)" \ + -DTP=$(TP) \ + -DTS=$(TS) \ + -DLS=$(LS) \ + -DAQ=$(AQ) \ + -DNT=$(NT) + +ifeq ($(DEB_CROSS),yes) + ctrl_flags += \ + -DTARGET=$(DEB_TARGET_ARCH) \ + -DLIBUNWIND_BUILD_DEP="$(LIBUNWIND_BUILD_DEP)" \ + -DLIBATOMIC_OPS_BUILD_DEP="$(LIBATOMIC_OPS_BUILD_DEP)" + ifeq ($(DEB_STAGE),rtlibs) + ctrl_flags += -DCROSS_ARCH=$(DEB_TARGET_ARCH) + endif +else + # add '-DPRI=optional' to ctrl_flags if this is not the default compiler + # ctrl_flags += \ + # -DPRI=optional +endif + +ifeq ($(with_base_only),yes) + ctrl_flags += \ + -DBASE_ONLY=yes +endif + +ifeq ($(with_multiarch_lib),yes) + ctrl_flags += \ + -DMULTIARCH=yes +endif + +control: control-file readme-bugs-file parameters-file symbols-files copyright-file substvars-file versioned-files check-versions + +# stage1 and stage2 compilers are only C +ifneq (,$(filter $(DEB_STAGE),stage1 stage2)) + languages = c + addons = gccbase cdev plugindev + ifeq ($(with_gcclbase),yes) + addons += gcclbase + endif + ifeq ($(multilib),yes) + addons += multilib + endif + addons += $(if $(findstring armel,$(biarchhfarchs)),armml) + addons += $(if $(findstring armhf,$(biarchsfarchs)),armml) + addons += $(if $(findstring amd64,$(biarchx32archs)),x32dev) + ifeq ($(DEB_STAGE),stage2) + addons += libgcc + ifeq ($(multilib),yes) + addons += lib32gcc lib64gcc libn32gcc + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32gcc) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfgcc) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfgcc) + endif + else + LIBC_BIARCH_DEV_DEP := + endif +else +languages = c c++ fortran objc objpp +ifeq ($(DEB_STAGE),rtlibs) + ifeq (,$(filter libgfortran, $(with_rtlibs))) + languages := $(filter-out fortran, $(languages)) + endif + ifeq (,$(filter libobjc, $(with_rtlibs))) + languages := $(filter-out objc objpp, $(languages)) + endif +endif +ifeq ($(with_gccbase),yes) + addons += gccbase +endif +ifeq ($(with_gcclbase),yes) + addons += gcclbase +endif +ifneq ($(DEB_STAGE),rtlibs) + addons += cdev c++dev source multilib + ifeq ($(build_type),build-native) + addons += testresults + endif + ifneq (,$(filter fortran, $(languages))) + addons += fdev + endif + ifneq (,$(filter objc, $(languages))) + addons += objcdev + endif + ifneq (,$(filter objpp, $(languages))) + addons += objppdev + endif + ifneq (,$(filter brig, $(enabled_languages))) + addons += brigdev + endif + addons += plugindev +endif +addons += $(if $(findstring armel,$(biarchhfarchs)),armml) +addons += $(if $(findstring armhf,$(biarchsfarchs)),armml) +addons += $(if $(findstring amd64,$(biarchx32archs)),x32dev) +ifeq ($(with_libgcc),yes) + addons += libgcc lib4gcc lib32gcc lib64gcc libn32gcc + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32gcc) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfgcc) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfgcc) +endif +ifeq ($(with_libcxx),yes) + addons += libcxx lib32cxx lib64cxx libn32cxx + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32cxx) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfcxx) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfcxx) +endif +addons += $(if $(findstring amd64,$(biarchx32archs)),libx32dbgcxx) +addons += $(if $(findstring armel,$(biarchhfarchs)),libhfdbgcxx) +addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfdbgcxx) +ifeq ($(with_libgfortran),yes) + addons += libgfortran lib32gfortran lib64gfortran libn32gfortran + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32gfortran) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfgfortran) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfgfortran) +endif +ifeq ($(with_libobjc),yes) + addons += libobjc lib32objc lib64objc libn32objc + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32objc) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfobjc) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfobjc) +endif +ifeq ($(with_libgomp),yes) + addons += libgomp lib32gomp lib64gomp libn32gomp + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32gomp) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfgomp) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfgomp) +endif +ifeq ($(with_libitm),yes) + addons += libitm lib32itm lib64itm libn32itm + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32itm) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfitm) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfitm) +endif +ifeq ($(with_libatomic),yes) + addons += libatomic lib32atomic lib64atomic libn32atomic + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32atomic) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfatomic) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfatomic) +endif +ifeq ($(with_libbacktrace),yes) + addons += libbtrace lib32btrace lib64btrace libn32btrace + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32btrace) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfbtrace) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfbtrace) +endif +ifeq ($(with_libasan),yes) + addons += libasan lib32asan lib64asan libn32asan + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32asan) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfasan) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfasan) +endif +ifeq ($(with_liblsan),yes) + addons += liblsan lib32lsan lib64lsan libn32lsan + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32lsan) + #addons += $(if $(findstring armel,$(biarchhfarchs)),libhflsan) + #addons += $(if $(findstring armhf,$(biarchsfarchs)),libsflsan) +endif +ifeq ($(with_libtsan),yes) + addons += libtsan + addons += libtsan #lib32tsan lib64tsan libn32tsan + #addons += $(if $(findstring amd64,$(biarchx32archs)),libx32tsan) + #addons += $(if $(findstring armel,$(biarchhfarchs)),libhftsan) + #addons += $(if $(findstring armhf,$(biarchsfarchs)),libsftsan) +endif +ifeq ($(with_libubsan),yes) + addons += libubsan lib32ubsan lib64ubsan libn32ubsan + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32ubsan) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfubsan) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfubsan) +endif +ifeq ($(with_vtv),yes) + addons += libvtv lib32vtv lib64vtv #libn32vtv + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32vtv) + #addons += $(if $(findstring armel,$(biarchhfarchs)),libhfvtv) + #addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfvtv) +endif +ifeq ($(with_libcilkrts),yes) + addons += libcilkrts + addons += libcilkrts lib32cilkrts lib64cilkrts #libn32cilkrts + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32cilkrts) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfcilkrts) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfcilkrts) +endif +ifeq ($(with_libmpx),yes) + addons += libmpx lib32mpx lib64mpx +endif +ifeq ($(with_libqmath),yes) + addons += libqmath lib32qmath lib64qmath libn32qmath + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32qmath) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfqmath) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfqmath) +endif +ifeq ($(with_jit),yes) + addons += jit +endif +ifeq ($(with_libgccjit),yes) + addons += libjit +endif +ifeq ($(with_offload_nvptx),yes) + addons += olnvptx libgompnvptx +endif +ifeq ($(with_libcc1),yes) + addons += libcc1 +endif +ifeq ($(with_d),yes) + languages += d + ifeq ($(with_libphobos),yes) + addons += libphobos + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32phobos) + endif +endif +ifeq ($(with_go),yes) + addons += ggo godev + ifeq ($(with_libgo),yes) + addons += libggo lib32ggo lib64ggo libn32ggo + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32ggo) + endif +endif +ifeq ($(with_ada),yes) + languages += ada + addons += libgnat libs # libgmath libnof lib64gnat ssp + ifeq ($(with_gnatsjlj),yes) + addons += adasjlj + endif +endif +ifeq ($(with_brig),yes) + addons += brig + ifeq ($(with_libhsailrt),yes) + addons += libhsail # lib32hsail lib64hsail libn32hsail + addons += # $(if $(findstring amd64,$(biarchx32archs)),libx32hsail) + endif +endif + + ifneq ($(DEB_CROSS),yes) + ifneq (,$(neon_archs)) + addons += libneongcc libneongomp libneonitm libneonobjc libneongfortran libneoncxx + endif + ifeq ($(with_fixincl),yes) + addons += $(if $(DEB_STAGE),,fixincl) + endif + endif # DEB_CROSS + ifeq ($(with_separate_libgo),yes) + ifeq ($(PKGSOURCE),gcc-$(BASE_VERSION)) + languages := $(filter-out go,$(languages)) + addons := $(filter-out ggo godev libggo lib64ggo lib32ggo libn32ggo libx32ggo,$(addons)) + endif + ifeq ($(PKGSOURCE),gccgo-$(BASE_VERSION)) + languages = go + addons = ggo godev libggo lib64ggo lib32ggo libn32ggo gccbase multilib + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32ggo) + ifeq ($(with_standalone_go),yes) + addons += libgcc lib4gcc lib32gcc lib64gcc libn32gcc + addons += $(if $(findstring amd64,$(biarchx32archs)),libx32gcc) + addons += $(if $(findstring armel,$(biarchhfarchs)),libhfgcc) + addons += $(if $(findstring armhf,$(biarchsfarchs)),libsfgcc) + ifeq ($(with_libcc1),yes) + addons += libcc1 + endif + endif + endif + endif + ifeq ($(with_standalone_go),yes) + ifeq ($(PKGSOURCE),gccgo-$(BASE_VERSION)) + ctrl_flags += -DSTANDALONEGO + endif + endif + ifeq ($(with_separate_gnat),yes) + ifeq ($(PKGSOURCE),gcc-$(BASE_VERSION)) + languages := $(filter-out ada,$(languages)) + addons := $(filter-out libgnat adasjlj,$(addons)) + endif + ifeq ($(PKGSOURCE),gnat-$(BASE_VERSION)) + languages = ada + addons = gnatbase libgnat + endif + endif + ifeq ($(with_separate_gdc),yes) + ifeq ($(PKGSOURCE),gcc-$(BASE_VERSION)) + languages := $(filter-out d,$(languages)) + endif + ifeq ($(PKGSOURCE),gdc-$(BASE_VERSION)) + languages = d + addons = + ifeq ($(with_libphobos),yes) + addons += libphobos + endif + endif + endif + ifneq ($(DEB_CROSS),yes) # no docs for cross compilers + ifneq ($(GFDL_INVARIANT_FREE),yes) + addons += gfdldoc + endif + endif +endif # not stage + +control-file: + echo "addons: $(addons)"; \ + m4 $(ctrl_flags) \ + -DPV=$(pkg_ver) \ + -DCXX_SO=$(CXX_SONAME) \ + -DGCC_SO=$(GCC_SONAME) \ + -DOBJC_SO=$(OBJC_SONAME) \ + -DFORTRAN_SO=$(FORTRAN_SONAME) \ + -DGNAT_SO=$(GNAT_SONAME) \ + -DGNAT_V=$(GNAT_VERSION) \ + -DPHOBOS_V=$(GPHOBOS_SONAME) \ + -DGDRUNTIME_V=$(GDRUNTIME_SONAME) \ + -DGOMP_SO=$(GOMP_SONAME) \ + -DITM_SO=$(ITM_SONAME) \ + -DATOMIC_SO=$(ATOMIC_SONAME) \ + -DBTRACE_SO=$(BTRACE_SONAME) \ + -DASAN_SO=$(ASAN_SONAME) \ + -DLSAN_SO=$(LSAN_SONAME) \ + -DTSAN_SO=$(TSAN_SONAME) \ + -DUBSAN_SO=$(UBSAN_SONAME) \ + -DVTV_SO=$(VTV_SONAME) \ + -DCILKRTS_SO=$(CILKRTS_SONAME) \ + -DMPX_SO=$(MPX_SONAME) \ + -DQMATH_SO=$(QUADMATH_SONAME) \ + -DSSP_SO=$(SSP_SONAME) \ + -DGO_SO=$(GO_SONAME) \ + -DCC1_SO=$(CC1_SONAME) \ + -DGCCJIT_SO=$(GCCJIT_SONAME) \ + -DHSAIL_SO=$(HSAIL_SONAME) \ + -Denabled_languages="$(languages) $(addons)" \ + -Dada_no_archs="$(ada_no_archs)" \ + -Dfortran_no_archs="$(fortran_no_archs)" \ + -Dlibgc_no_archs="$(libgc_no_archs)" \ + -Dlibphobos_archs="$(libphobos_archs)" \ + -Dlibphobos_no_archs="$(libphobos_no_archs)" \ + -Dcheck_no_archs="$(check_no_archs)" \ + -Dlocale_no_archs="$(locale_no_archs)" \ + -Dlinux_gnu_archs="$(linux_gnu_archs)" \ + -Dbiarch32_archs="$(strip $(subst /, ,$(biarch32archs)))" \ + -Dbiarch64_archs="$(strip $(subst /, ,$(biarch64archs)))" \ + -Dbiarchn32_archs="$(strip $(subst /, ,$(biarchn32archs)))" \ + -Dbiarchx32_archs="$(strip $(subst /, ,$(biarchx32archs)))" \ + -Dbiarchhf_archs="$(strip $(subst /, ,$(biarchhfarchs)))" \ + -Dbiarchsf_archs="$(strip $(subst /, ,$(biarchsfarchs)))" \ + -Dadd_built_using=$(add_built_using) \ + -DGCC_PORTS_BUILD=$(GCC_PORTS_BUILD) \ + -DPR66145BREAKS="$(if $(findstring build-native,$(build_type)),$(if $(filter new,$(libstdcxx_abi)),$$(tr '\n' ' ' < debian/libstdc++-breaks.$(derivative))))" \ + debian/control.m4 > debian/control.tmp2 + uniq debian/control.tmp2 | sed '/^Build/s/ *, */, /g;/^ /s/ *, */, /g' \ + $(if $(filter yes, $(with_base_only)), | awk '/^$$/ {if (p) exit; else p=1; } {print}') \ + > debian/control.tmp + rm -f debian/control.tmp2 + [ -e debian/control ] \ + && cmp -s debian/control debian/control.tmp \ + && rm -f debian/control.tmp && exit 0; \ + mv debian/control.tmp debian/control; touch $(control_stamp) + +readme-bugs-file: + m4 -DDIST=$(distribution) -DSRCNAME=$(PKGSOURCE) \ + debian/README.Bugs.m4 > debian/README.Bugs + +copyright-file: + rm -f debian/copyright + if echo $(SOURCE_VERSION) | grep -E ^'[0-9]\.[0-9]-[0-9]{8}' ; \ + then SVN_BRANCH="trunk" ; \ + else \ + SVN_BRANCH="gcc-$(subst .,_,$(BASE_VERSION))-branch" ; \ + fi ; \ + sed debian/copyright.in \ + -e "s/@BV@/$(BASE_VERSION)/g" \ + -e "s/@SVN_BRANCH@/$$SVN_BRANCH/g" \ + > debian/copyright + +substvars-file: control-file + rm -f debian/substvars.local.tmp + ( \ + echo 'libgcc:Version=$(DEB_LIBGCC_VERSION)'; \ + echo 'gcc:Version=$(DEB_GCC_VERSION)'; \ + echo 'gcc:EpochVersion=$(DEB_EVERSION)'; \ + echo 'gcc:SoftVersion=$(DEB_GCC_SOFT_VERSION)'; \ + echo 'gdc:Version=$(DEB_GDC_VERSION)'; \ + echo 'gnat:Version=$(DEB_GNAT_VERSION)'; \ + echo 'gnat:SoftVersion=$(DEB_GNAT_SOFT_VERSION)'; \ + echo 'binutils:Version=$(BINUTILSV)'; \ + echo 'dep:libgcc=$(LIBGCC_DEP)'; \ + echo 'dep:libgccdev=$(LIBGCC_DEV_DEP)'; \ + echo 'dep:libgccbiarch=$(libgccbiarch)'; \ + echo 'dep:libgccbiarchdev=$(libgccbiarchdev)'; \ + echo 'dep:libc=$(LIBC_DEP) (>= $(libc_ver))'; \ + echo 'dep:libcdev=$(LIBC_DEV_DEP)'; \ + echo 'dep:libcbiarch=$(LIBC_BIARCH_DEP)'; \ + echo 'dep:libcbiarchdev=$(LIBC_BIARCH_DEV_DEP)'; \ + echo 'dep:libunwinddev=$(LIBUNWIND_DEV_DEP)'; \ + echo 'dep:libcxxbiarchdev=$(libstdc++biarchdev)'; \ + echo 'dep:libcxxbiarchdbg=$(libstdc++biarchdbg)'; \ + echo 'dep:libgnat=$(LIBGNAT_DEP)'; \ + echo 'base:Breaks=$(BASE_BREAKS)'; \ + ) > debian/substvars.local.tmp +ifneq (,$(filter $(DEB_TARGET_ARCH), $(multilib_archs))) + ( \ + echo 'gcc:multilib=gcc-$(BASE_VERSION)-multilib$(TS)'; \ + echo 'gxx:multilib=g++-$(BASE_VERSION)-multilib$(TS)'; \ + echo 'gobjc:multilib=gobjc-$(BASE_VERSION)-multilib$(TS)'; \ + echo 'gobjcxx:multilib=gobjc++-$(BASE_VERSION)-multilib$(TS)'; \ + echo 'gfortran:multilib=gfortran-$(BASE_VERSION)-multilib$(TS)'; \ + ) >> debian/substvars.local.tmp +endif +ifeq ($(with_gold),yes) + echo 'dep:gold=binutils-gold (>= $(BINUTILSV))' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_libssp),yes) + echo 'dep:libssp=libssp$(SSP_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_gomp),yes) + echo 'dep:libgomp=libgomp$(GOMP_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_itm),yes) + echo 'dep:libitm=libitm$(ITM_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_atomic),yes) + echo 'dep:libatomic=libatomic$(ATOMIC_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_libbacktrace),yes) + echo 'dep:libbacktrace=libbtrace$(BTRACE_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_asan),yes) + echo 'dep:libasan=libasan$(ASAN_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_lsan),yes) + echo 'dep:liblsan=liblsan$(LSAN_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_tsan),yes) + echo 'dep:libtsan=libtsan$(TSAN_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_ubsan),yes) + echo 'dep:libubsan=libubsan$(UBSAN_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_vtv),yes) + echo 'dep:libvtv=libvtv$(VTV_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_cilkrts),yes) + echo 'dep:libcilkrts=libcilkrts$(CILKRTS_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_mpx),yes) + echo 'dep:libmpx=libmpx$(MPX_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_qmath),yes) + echo 'dep:libqmath=libquadmath$(QUADMATH_SONAME)$(LS)$(AQ) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp +endif +ifeq ($(distribution),Debian) + echo 'dep:libx32z=$(if $(filter $(distribution), Debian),,libx32z1-dev)' \ + >> debian/substvars.local.tmp +endif +ifeq ($(multilib),yes) + echo 'dep:libgfortranbiarchdev=$(libgfortranbiarchdev)' \ + >> debian/substvars.local.tmp + echo 'dep:libobjcbiarchdev=$(libobjcbiarchdev)' \ + >> debian/substvars.local.tmp + ifeq ($(with_libphobos),yes) + echo 'dep:libphobosbiarchdev=$(libgphobosbiarchdev)' \ + >> debian/substvars.local.tmp + endif + ifeq ($(with_libssp),yes) + echo 'dep:libsspbiarch=$(libsspbiarch)' \ + >> debian/substvars.local.tmp + endif + ifeq ($(with_gomp),yes) + echo 'dep:libgompbiarch=$(libgompbiarch)' \ + >> debian/substvars.local.tmp + endif + ifeq ($(with_itm),yes) + echo 'dep:libitmbiarch=$(libitmbiarch)' \ + >> debian/substvars.local.tmp + endif + ifeq ($(with_atomic),yes) + echo 'dep:libatomicbiarch=$(libatomicbiarch)' \ + >> debian/substvars.local.tmp + endif + ifeq ($(with_libbacktrace),yes) + echo 'dep:libbtracebiarch=$(libbtracebiarch)' \ + >> debian/substvars.local.tmp + endif + ifeq ($(with_asan),yes) + echo 'dep:libasanbiarch=$(libasanbiarch)' \ + >> debian/substvars.local.tmp + endif + ifeq ($(with_lsan),yes) + #echo 'dep:liblsanbiarch=$(liblsanbiarch)' \ + # >> debian/substvars.local.tmp + endif + ifeq ($(with_tsan),yes) + #echo 'dep:libtsanbiarch=$(libtsanbiarch)' \ + # >> debian/substvars.local.tmp + endif + ifeq ($(with_ubsan),yes) + echo 'dep:libubsanbiarch=$(libubsanbiarch)' \ + >> debian/substvars.local.tmp + endif + ifeq ($(with_vtv),yes) + echo 'dep:libvtvbiarch=$(libvtvbiarch)' \ + >> debian/substvars.local.tmp + endif + ifeq ($(with_cilkrts),yes) + echo 'dep:libcilkrtsbiarch=$(libcilkrtsbiarch)' \ + >> debian/substvars.local.tmp + endif + ifeq ($(with_mpx),yes) + echo 'dep:libmpxbiarch=$(libmpxbiarch)' \ + >> debian/substvars.local.tmp + endif + ifeq ($(with_qmath),yes) + echo 'dep:libqmathbiarch=$(libquadmathbiarch)' \ + >> debian/substvars.local.tmp + endif + ifeq ($(with_go),yes) + echo 'dep:libgobiarchdev=$(libgobiarchdev)' \ + >> debian/substvars.local.tmp + echo 'dep:libgobiarch=$(libgobiarch)' \ + >> debian/substvars.local.tmp + endif +endif +ifeq ($(DEB_CROSS),yes) + echo 'dep:gdccross=gdc$(pkg_ver) (>= $(DEB_GCC_SOFT_VERSION))' \ + >> debian/substvars.local.tmp +endif +ifeq ($(with_libphobos),yes) + echo 'dep:phobosdev=libgphobos$(pkg_ver)-dev$(LS)$(AQ) (>= $(DEB_GCC_SOFT_VERSION))' \ + >> debian/substvars.local.tmp + ifeq ($(DEB_CROSS),yes) + : # FIXME: make the cross gdc aware of both include paths + echo 'dep:gdccross=gdc$(pkg_ver) (>= $(DEB_GCC_SOFT_VERSION))' \ + >> debian/substvars.local.tmp + endif +endif +ifeq ($(with_cc1),yes) + ifneq (,$(findstring build-cross, $(build_type))) + echo 'dep:libcc1=libcc1-$(CC1_SONAME) (>= $${gcc:SoftVersion})' \ + >> debian/substvars.local.tmp + else + echo 'dep:libcc1=libcc1-$(CC1_SONAME) (>= $${gcc:Version})' \ + >> debian/substvars.local.tmp + endif +endif +ifeq ($(DEB_HOST_ARCH),hppa) + echo 'dep:prctl=prctl' >> debian/substvars.local.tmp +endif +ifeq ($(derivative)-$(DEB_HOST_ARCH),Debian-amd64) + echo 'confl:lib32=libc6-i386 (<< 2.9-22)' >> debian/substvars.local.tmp +endif +ifeq ($(with_multiarch_lib),yes) + echo 'multiarch:breaks=gcc-4.3 (<< 4.3.6-1), gcc-4.4 (<< 4.4.6-4), gcc-4.5 (<< 4.5.3-2)' >> debian/substvars.local.tmp +endif + echo 'golang:Conflicts=golang-go (<< 2:1.3.3-1ubuntu2)' >> debian/substvars.local.tmp +ifeq ($(add_built_using),yes) + echo "Built-Using=$(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W gcc$(pkg_ver)-source)" \ + >> debian/substvars.local.tmp +endif + v=`sed -n '/^#define MOD_VERSION/s/.* "\([0-9]*\)"/\1/p' \ + $(srcdir)/gcc/fortran/module.c`; \ + echo "fortran:mod-version=gfortran-mod-$$v" >> debian/substvars.local.tmp + + [ -e debian/substvars.local ] \ + && cmp -s debian/substvars.local debian/substvars.local.tmp \ + && rm -f debian/substvars.local.tmp && exit 0; \ + mv debian/substvars.local.tmp debian/substvars.local; \ + touch $(control_stamp) + +parameters-file: + rm -f debian/rules.parameters.tmp + ( \ + echo '# configuration parameters taken from upstream source files'; \ + echo 'GCC_VERSION := $(GCC_VERSION)'; \ + echo 'NEXT_GCC_VERSION := $(NEXT_GCC_VERSION)'; \ + echo 'BASE_VERSION := $(BASE_VERSION)'; \ + echo 'SOURCE_VERSION := $(SOURCE_VERSION)'; \ + echo 'DEB_VERSION := $(DEB_VERSION)'; \ + echo 'DEB_EVERSION := $(DEB_EVERSION)'; \ + echo 'DEB_GDC_VERSION := $(DEB_GDC_VERSION)'; \ + echo 'DEB_SOVERSION := $(DEB_SOVERSION)'; \ + echo 'DEB_SOEVERSION := $(DEB_SOEVERSION)'; \ + echo 'DEB_LIBGCC_SOVERSION := $(DEB_LIBGCC_SOVERSION)'; \ + echo 'DEB_LIBGCC_VERSION := $(DEB_LIBGCC_VERSION)'; \ + echo 'DEB_STDCXX_SOVERSION := $(DEB_STDCXX_SOVERSION)'; \ + echo 'DEB_GOMP_SOVERSION := $(DEB_GOMP_SOVERSION)'; \ + echo 'GCC_SONAME := $(GCC_SONAME)'; \ + echo 'CXX_SONAME := $(CXX_SONAME)'; \ + echo 'FORTRAN_SONAME := $(FORTRAN_SONAME)'; \ + echo 'OBJC_SONAME := $(OBJC_SONAME)'; \ + echo 'GDC_VERSION := $(GDC_VERSION)'; \ + echo 'GNAT_VERSION := $(GNAT_VERSION)'; \ + echo 'GNAT_SONAME := $(GNAT_SONAME)'; \ + echo 'FFI_SONAME := $(FFI_SONAME)'; \ + echo 'SSP_SONAME := $(SSP_SONAME)'; \ + echo 'GOMP_SONAME := $(GOMP_SONAME)'; \ + echo 'ITM_SONAME := $(ITM_SONAME)'; \ + echo 'ATOMIC_SONAME := $(ATOMIC_SONAME)'; \ + echo 'BTRACE_SONAME := $(BTRACE_SONAME)'; \ + echo 'ASAN_SONAME := $(ASAN_SONAME)'; \ + echo 'LSAN_SONAME := $(LSAN_SONAME)'; \ + echo 'TSAN_SONAME := $(TSAN_SONAME)'; \ + echo 'UBSAN_SONAME := $(UBSAN_SONAME)'; \ + echo 'VTV_SONAME := $(VTV_SONAME)'; \ + echo 'CILKRTS_SONAME := $(CILKRTS_SONAME)'; \ + echo 'MPX_SONAME := $(MPX_SONAME)'; \ + echo 'QUADMATH_SONAME := $(QUADMATH_SONAME)'; \ + echo 'GO_SONAME := $(GO_SONAME)'; \ + echo 'CC1_SONAME := $(CC1_SONAME)'; \ + echo 'GCCJIT_SONAME := $(GCCJIT_SONAME)'; \ + echo 'GPHOBOS_SONAME := $(GPHOBOS_SONAME)'; \ + echo 'GDRUNTIME_SONAME := $(GDRUNTIME_SONAME)'; \ + echo 'HSAIL_SONAME := $(HSAIL_SONAME)'; \ + echo 'LIBC_DEP := $(LIBC_DEP)'; \ + ) > debian/rules.parameters.tmp + [ -e debian/rules.parameters ] \ + && cmp -s debian/rules.parameters debian/rules.parameters.tmp \ + && rm -f debian/rules.parameters.tmp && exit 0; \ + mv debian/rules.parameters.tmp debian/rules.parameters; \ + touch $(control_stamp) + +symbols-files: control-file +ifeq ($(DEB_CROSS),yes) + ifneq ($(DEB_STAGE),rtlibs) + test -n "$(LS)" + set -e; \ + for p in $$(dh_listpackages -i | grep '^lib'); do \ + p=$${p%$(LS)}; \ + if [ -f debian/$$p.symbols.$(DEB_TARGET_ARCH) ]; then \ + f=debian/$$p.symbols.$(DEB_TARGET_ARCH); \ + elif [ -f debian/$$p.symbols ]; then \ + f=debian/$$p.symbols; \ + else \ + continue; \ + fi; \ + link=debian/$$p$(LS).symbols; \ + if [ -L $$link ]; then \ + echo >&2 "removing left over symbols file link: $$link"; \ + rm -f $$link; \ + fi; \ + ln -s $$f $$link; \ + done + endif + ifeq ($(with_libphobosdev),yes) + echo 'dep:libphobosbiarchdev=$(libgphobosbiarchdev)' \ + >> debian/substvars.local.tmp + echo 'dep:libphobosbiarch=$(libgphobosbiarch)' \ + >> debian/substvars.local.tmp + endif +endif + +versioned-files: + fs=`echo debian/*BV* debian/*CXX* debian/*LC* | sort -u`; \ + for f in $$fs; do \ + [ -f $$f ] || echo "CANNOT FIND $$f"; \ + [ -f $$f ] || continue; \ + if [ -z "$(DEB_CROSS)" ]; then case "$$f" in *-CR*) continue; esac; fi; \ + f2=$$(echo $$f \ + | sed 's/BV/$(BASE_VERSION)/;s/CXX/$(CXX_SONAME)/;s/LC/$(GCC_SONAME)/;s/-CRB/$(cross_bin_arch)/;s/\.in$$//'); \ + sed -e 's/@BV@/$(BASE_VERSION)/g' \ + -e 's/@CXX@/$(CXX_SONAME)/g' \ + -e 's/@LC@/$(GCC_SONAME)/g' \ + -e 's/@SRC@/$(PKGSOURCE)/g' \ + -e 's/@GFDL@/$(if $(filter yes,$(GFDL_INVARIANT_FREE)),#)/g' \ + -e 's/@gcc_priority@/$(subst .,,$(BASE_VERSION))/g' \ + -e 's/@TARGET@/$(DEB_TARGET_GNU_TYPE)/g' \ + -e 's/@TARGET_QUAL@/$(TARGET_QUAL)/g' \ + $$f > $$f2; \ + touch -r $$f $$f2; \ + done + for t in ar nm ranlib; do \ + sed "s/@BV@/$(BASE_VERSION)/g;s/@TOOL@/$$t/g" \ + debian/gcc-XX-BV.1 > debian/gcc-$$t-$(BASE_VERSION).1; \ + done + +# don't encode versioned build dependencies in the control file, but check +# these here instead. +check-versions: + v=$$(dpkg-query -l dpkg-dev | awk '/^.i/ {print $$3}'); \ + if dpkg --compare-versions "$$v" lt "$(DPKGV)"; then \ + echo "dpkg-dev (>= $(DPKGV)) required, found $$v"; \ + exit 1; \ + fi + v=$$(dpkg-query -l binutils binutils-multiarch 2>/dev/null | awk '/^.i/ {print $$3;exit}'); \ + if dpkg --compare-versions "$$v" lt "$(BINUTILSBDV)"; then \ + echo "binutils (>= $(BINUTILSBDV)) required, found $$v"; \ + exit 1; \ + fi + +.PRECIOUS: $(stampdir)/%-stamp --- gcc-7-7.5.0.orig/debian/rules.d/binary-ada.mk +++ gcc-7-7.5.0/debian/rules.d/binary-ada.mk @@ -0,0 +1,348 @@ +ifeq ($(with_separate_gnat),yes) + $(lib_binaries) += gnatbase +endif + +ifeq ($(with_libgnat),yes) + # During native builds, gnat-BV Depends: + # * libgnat, libgnatvsn because gnat1 is linked dynamically + # * libgnat because of the development symlink. + # During cross builds, gnat1 is linked statically. Only the latter remains. + $(lib_binaries) += libgnat + ifneq ($(DEB_CROSS),yes) + $(lib_binaries) += libgnatvsn + endif +endif + +arch_binaries := $(arch_binaries) ada +ifneq ($(DEB_CROSS),yes) + ifneq ($(GFDL_INVARIANT_FREE),yes) + indep_binaries := $(indep_binaries) ada-doc + endif +endif + +p_gbase = $(p_xbase) +p_glbase = $(p_lbase) +ifeq ($(with_separate_gnat),yes) + p_gbase = gnat$(pkg_ver)$(cross_bin_arch)-base + p_glbase = gnat$(pkg_ver)$(cross_bin_arch)-base +endif + +p_gnat = gnat-$(GNAT_VERSION)$(cross_bin_arch) +p_gnatsjlj= gnat-$(GNAT_VERSION)-sjlj$(cross_bin_arch) +p_lgnat = libgnat-$(GNAT_VERSION)$(cross_lib_arch) +p_lgnat_dbg = libgnat-$(GNAT_VERSION)-dbg$(cross_lib_arch) +p_lgnatvsn = libgnatvsn$(GNAT_VERSION)$(cross_lib_arch) +p_lgnatvsn_dev = libgnatvsn$(GNAT_VERSION)-dev$(cross_lib_arch) +p_lgnatvsn_dbg = libgnatvsn$(GNAT_VERSION)-dbg$(cross_lib_arch) +p_gnatd = $(p_gnat)-doc + +d_gbase = debian/$(p_gbase) +d_gnat = debian/$(p_gnat) +d_gnatsjlj = debian/$(p_gnatsjlj) +d_lgnat = debian/$(p_lgnat) +d_lgnatvsn = debian/$(p_lgnatvsn) +d_lgnatvsn_dev = debian/$(p_lgnatvsn_dev) +d_gnatd = debian/$(p_gnatd) + +GNAT_TOOLS = gnat gnatbind gnatchop gnatclean gnatfind gnatkr gnatlink \ + gnatls gnatmake gnatname gnatprep gnatxref gnathtml + +ifeq ($(with_gnatsjlj),yes) + rts_subdir = +endif + +dirs_gnat = \ + $(docdir)/$(p_gbase) \ + $(PF)/bin \ + $(PF)/share/man/man1 \ + $(gcc_lib_dir)/{adalib,adainclude} \ + $(gcc_lexec_dir) + +files_gnat = \ + $(gcc_lexec_dir)/gnat1 \ + $(gcc_lib_dir)/adainclude/*.ad[bs] \ + $(gcc_lib_dir)/adalib/*.ali \ + $(gcc_lib_dir)/adalib/lib*.a \ + $(foreach i,$(GNAT_TOOLS),$(PF)/bin/$(cmd_prefix)$(i)$(pkg_ver)) + +dirs_lgnat = \ + $(docdir) \ + $(PF)/lib +files_lgnat = \ + $(usr_lib)/lib{gnat,gnarl}-$(GNAT_SONAME).so.1 + +$(binary_stamp)-gnatbase: $(install_stamp) + dh_testdir + dh_testroot + dh_installdocs -p$(p_gbase) debian/README.gnat debian/README.maintainers + : # $(p_gbase) +ifeq ($(PKGSOURCE),gnat-$(BASE_VERSION)) + mkdir -p $(d_gbase)/$(docdir)/$(p_xbase) + ln -sf ../$(p_gbase) $(d_gbase)/$(docdir)/$(p_xbase)/Ada +endif + dh_installchangelogs -p$(p_gbase) src/gcc/ada/ChangeLog + dh_compress -p$(p_gbase) + dh_fixperms -p$(p_gbase) + dh_gencontrol -p$(p_gbase) -- -v$(DEB_VERSION) $(common_substvars) + dh_installdeb -p$(p_gbase) + dh_md5sums -p$(p_gbase) + dh_builddeb -p$(p_gbase) + touch $@ + + +$(binary_stamp)-libgnat: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + : # libgnat + rm -rf $(d_lgnat) + dh_installdirs -p$(p_lgnat) $(dirs_lgnat) + + for lib in lib{gnat,gnarl}; do \ + vlib=$$lib-$(GNAT_SONAME); \ + mv $(d)/$(gcc_lib_dir)/$(rts_subdir)/adalib/$$vlib.so.1 $(d)/$(usr_lib)/. ; \ + rm -f $(d)/$(gcc_lib_dir)/adalib/$$lib.so.1; \ + done + $(dh_compat2) dh_movefiles -p$(p_lgnat) $(files_lgnat) + + debian/dh_doclink -p$(p_lgnat) $(p_glbase) + + debian/dh_rmemptydirs -p$(p_lgnat) + + b=libgnat; \ + v=$(GNAT_VERSION); \ + for ext in preinst postinst prerm postrm; do \ + for t in '' -dev -dbg; do \ + if [ -f debian/$$b$$t.$$ext ]; then \ + cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \ + fi; \ + done; \ + done + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_lgnat) -V '$(p_lgnat) (>= $(DEB_VERSION))' + $(call cross_mangle_shlibs,$(p_lgnat)) + +ifneq (,$(filter $(build_type), build-native cross-build-native)) + mkdir -p $(d_lgnat)/usr/share/lintian/overrides + echo package-name-doesnt-match-sonames > \ + $(d_lgnat)/usr/share/lintian/overrides/$(p_lgnat) +endif + + dh_strip -p$(p_lgnat) --dbg-package=$(p_lgnat_dbg) + $(cross_shlibdeps) dh_shlibdeps -p$(p_lgnat) \ + $(call shlibdirs_to_search, \ + $(subst gnat-$(GNAT_SONAME),gcc$(GCC_SONAME),$(p_lgnat)) \ + $(subst gnat-$(GNAT_SONAME),atomic$(ATOMIC_SONAME),$(p_lgnat)) \ + ,) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common) + $(call cross_mangle_substvars,$(p_lgnat)) + + : # $(p_lgnat_dbg) + debian/dh_doclink -p$(p_lgnat_dbg) $(p_glbase) + + echo $(p_lgnat) $(p_lgnat_dbg) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +$(binary_stamp)-libgnatvsn: $(install_stamp) + : # $(p_lgnatvsn_dev) + dh_install -p$(p_lgnatvsn_dev) $(usr_lib)/ada/adalib/gnatvsn + $(dh_compat2) dh_movefiles -p$(p_lgnatvsn_dev) usr/share/ada/adainclude/gnatvsn + dh_install -p$(p_lgnatvsn_dev) usr/share/gpr/gnatvsn.gpr + $(dh_compat2) dh_movefiles -p$(p_lgnatvsn_dev) $(usr_lib)/libgnatvsn.a + dh_link -p$(p_lgnatvsn_dev) \ + $(usr_lib)/libgnatvsn.so.$(GNAT_VERSION) \ + $(usr_lib)/libgnatvsn.so + debian/dh_doclink -p$(p_lgnatvsn_dev) $(p_glbase) + dh_strip -p$(p_lgnatvsn_dev) -X.a --keep-debug + + : # $(p_lgnatvsn) + mkdir -p $(d_lgnatvsn)/usr/share/lintian/overrides + echo missing-dependency-on-libc \ + > $(d_lgnatvsn)/usr/share/lintian/overrides/$(p_lgnatvsn) + $(dh_compat2) dh_movefiles -p$(p_lgnatvsn) $(usr_lib)/libgnatvsn.so.$(GNAT_VERSION) + debian/dh_doclink -p$(p_lgnatvsn) $(p_glbase) + dh_strip -p$(p_lgnatvsn) --dbg-package=$(p_lgnatvsn_dbg) + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_lgnatvsn) \ + -V '$(p_lgnatvsn) (>= $(DEB_VERSION))' + $(call cross_mangle_shlibs,$(p_lgnatvsn)) + cat debian/$(p_lgnatvsn)/DEBIAN/shlibs >> debian/shlibs.local + $(cross_shlibdeps) dh_shlibdeps -p$(p_lgnatvsn) \ + $(call shlibdirs_to_search, \ + $(subst gnatvsn$(GNAT_SONAME),gcc$(GCC_SONAME),$(p_lgnatvsn)) \ + $(subst gnatvsn$(GNAT_SONAME),atomic$(ATOMIC_SONAME),$(p_lgnatvsn)) \ + $(subst gnatvsn$(GNAT_SONAME),gnat-$(GNAT_SONAME),$(p_lgnatvsn)) \ + ,) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common) + $(call cross_mangle_substvars,$(p_lgnatvsn)) + + : # $(p_lgnatvsn_dbg) + debian/dh_doclink -p$(p_lgnatvsn_dbg) $(p_glbase) + + echo $(p_lgnatvsn) $(p_lgnatvsn_dev) $(p_lgnatvsn_dbg) >> debian/$(lib_binaries) + + touch $@ + +$(binary_stamp)-ada: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + : # $(p_gnat) + rm -rf $(d_gnat) + dh_installdirs -p$(p_gnat) $(dirs_gnat) + : # Upstream does not install gnathtml. + cp src/gcc/ada/gnathtml.pl debian/tmp/$(PF)/bin/$(cmd_prefix)gnathtml$(pkg_ver) + chmod 755 debian/tmp/$(PF)/bin/$(cmd_prefix)gnathtml$(pkg_ver) + $(dh_compat2) dh_movefiles -p$(p_gnat) $(files_gnat) + +ifeq ($(with_gnatsjlj),yes) + dh_installdirs -p$(p_gnatsjlj) $(gcc_lib_dir) + $(dh_compat2) dh_movefiles -p$(p_gnatsjlj) $(gcc_lib_dir)/rts-sjlj/adalib $(gcc_lib_dir)/rts-sjlj/adainclude +endif + +ifeq ($(with_libgnat),yes) + for lib in lib{gnat,gnarl}; do \ + vlib=$$lib-$(GNAT_SONAME); \ + dh_link -p$(p_gnat) \ + /$(usr_lib)/$$vlib.so.1 /$(usr_lib)/$$vlib.so \ + /$(usr_lib)/$$vlib.so.1 /$(usr_lib)/$$lib.so; \ + done + for lib in lib{gnat,gnarl}; do \ + vlib=$$lib-$(GNAT_SONAME); \ + dh_link -p$(p_gnat) \ + /$(usr_lib)/$$vlib.so.1 $(gcc_lib_dir)/$(rts_subdir)adalib/$$lib.so; \ + done +endif + debian/dh_doclink -p$(p_gnat) $(p_gbase) +ifeq ($(with_gnatsjlj),yes) + debian/dh_doclink -p$(p_gnatsjlj) $(p_gbase) +endif +ifeq ($(PKGSOURCE),gnat-$(BASE_VERSION)) + ifeq ($(with_check),yes) + cp -p test-summary $(d_gnat)/$(docdir)/$(p_gbase)/. + endif +else + mkdir -p $(d_gnat)/$(docdir)/$(p_gbase)/ada + cp -p src/gcc/ada/ChangeLog $(d_gnat)/$(docdir)/$(p_gbase)/ada/. +endif + + for i in $(GNAT_TOOLS); do \ + case "$$i" in \ + gnat) cp -p debian/gnat.1 $(d_gnat)/$(PF)/share/man/man1/$(cmd_prefix)gnat$(pkg_ver).1 ;; \ + *) ln -sf $(cmd_prefix)gnat$(pkg_ver).1 $(d_gnat)/$(PF)/share/man/man1/$(cmd_prefix)$$i$(pkg_ver).1; \ + esac; \ + done + +ifneq (,$(filter $(build_type), build-native cross-build-native)) + : # still ship the unversioned prefixed names in the gnat package. + for i in $(GNAT_TOOLS); do \ + ln -sf $(cmd_prefix)$$i$(pkg_ver) \ + $(d_gnat)/$(PF)/bin/$(cmd_prefix)$$i; \ + ln -sf $(cmd_prefix)gnat$(pkg_ver).1.gz \ + $(d_gnat)/$(PF)/share/man/man1/$(cmd_prefix)$$i.1.gz; \ + done + ifeq ($(unprefixed_names),yes) + : # ship the versioned prefixed names in the gnat package. + for i in $(GNAT_TOOLS); do \ + ln -sf $(cmd_prefix)$$i$(pkg_ver) \ + $(d_gnat)/$(PF)/bin/$$i$(pkg_ver); \ + ln -sf $(cmd_prefix)gnat$(pkg_ver).1.gz \ + $(d_gnat)/$(PF)/share/man/man1/$$i$(pkg_ver).1.gz; \ + done + + : # still ship the unversioned names in the gnat package. + for i in $(GNAT_TOOLS); do \ + ln -sf $$i$(pkg_ver) \ + $(d_gnat)/$(PF)/bin/$$i; \ + ln -sf gnat$(pkg_ver).1.gz \ + $(d_gnat)/$(PF)/share/man/man1/$$i.1.gz; \ + done + + endif +else + : # still ship the unversioned prefixed names in the gnat package. + for i in $(GNAT_TOOLS); do \ + ln -sf $(cmd_prefix)$$i$(pkg_ver) \ + $(d_gnat)/$(PF)/bin/$(cmd_prefix)$$i; \ + ln -sf $(cmd_prefix)gnat$(pkg_ver).1.gz \ + $(d_gnat)/$(PF)/share/man/man1/$(cmd_prefix)$$i.1.gz; \ + done +endif + +ifneq (,$(filter $(build_type), build-native cross-build-native)) + dh_install -p$(p_gnat) debian/ada/debian_packaging.mk usr/share/ada + mv $(d_gnat)/usr/share/ada/debian_packaging.mk \ + $(d_gnat)/usr/share/ada/debian_packaging-$(GNAT_VERSION).mk +endif + : # keep this one unversioned, see Debian #802838. + dh_link -p$(p_gnat) \ + usr/bin/$(cmd_prefix)gcc$(pkg_ver) usr/bin/$(cmd_prefix)gnatgcc +ifneq ($(GFDL_INVARIANT_FREE),yes) + dh_link -p$(p_gnat) \ + usr/share/man/man1/$(cmd_prefix)gcc$(pkg_ver).1.gz \ + usr/share/man/man1/$(cmd_prefix)gnatgcc.1.gz +endif +ifeq ($(unprefixed_names),yes) + dh_link -p$(p_gnat) \ + usr/bin/$(cmd_prefix)gcc$(pkg_ver) usr/bin/gnatgcc + ifneq ($(GFDL_INVARIANT_FREE),yes) + dh_link -p$(p_gnat) \ + usr/share/man/man1/$(cmd_prefix)gcc$(pkg_ver).1.gz \ + usr/share/man/man1/gnatgcc.1.gz + endif +endif + debian/dh_rmemptydirs -p$(p_gnat) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_gnat)/$(gcc_lexec_dir)/gnat1 +endif + dh_strip -p$(p_gnat) + find $(d_gnat) -name '*.ali' | xargs chmod 444 + dh_shlibdeps -p$(p_gnat) + mkdir -p $(d_gnat)/usr/share/lintian/overrides + echo '$(p_gnat) binary: hardening-no-pie' \ + > $(d_gnat)/usr/share/lintian/overrides/$(p_gnat) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_gnat) binary: binary-without-manpage' \ + >> $(d_gnat)/usr/share/lintian/overrides/$(p_gnat) +endif + + echo $(p_gnat) >> debian/arch_binaries + +ifeq ($(with_gnatsjlj),yes) + dh_strip -p$(p_gnatsjlj) + find $(d_gnatsjlj) -name '*.ali' | xargs chmod 444 + dh_shlibdeps -p$(p_gnatsjlj) + echo $(p_gnatsjlj) >> debian/arch_binaries +endif + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + + +$(build_gnatdoc_stamp): $(build_stamp) + mkdir -p html + rm -f html/*.info + echo -n gnat_ugn gnat_rm gnat-style | xargs -d ' ' -L 1 -P $(USE_CPUS) -I{} \ + sh -c 'cd html && \ + echo "generating {}-$(GNAT_VERSION).info"; \ + makeinfo -I $(srcdir)/gcc/doc/include -I $(srcdir)/gcc/ada \ + -I $(builddir)/gcc \ + -o {}-$(GNAT_VERSION).info \ + $(srcdir)/gcc/ada/{}.texi' + touch $@ + +$(binary_stamp)-ada-doc: $(build_html_stamp) $(build_gnatdoc_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gnatd) + dh_installdirs -p$(p_gnatd) \ + $(PF)/share/info + cp -p html/gnat*info* $(d_gnatd)/$(PF)/share/info/. + dh_installdocs -p$(p_gnatd) \ + html/gnat_ugn.html html/gnat_rm.html html/gnat-style.html + echo $(p_gnatd) >> debian/indep_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-base.mk +++ gcc-7-7.5.0/debian/rules.d/binary-base.mk @@ -0,0 +1,75 @@ +arch_binaries += base +ifeq ($(with_gcclbase),yes) + ifneq ($(with_base_only),yes) + indep_binaries += lbase + endif +endif + +# --------------------------------------------------------------------------- +# gcc-base + +ifneq (,$(filter $(distrelease),oneiric precise wheezy sid)) + additional_links = +else ifneq (,$(filter $(distrelease),)) + additional_links = +else + additional_links = +endif + +$(binary_stamp)-base: $(install_dependencies) + dh_testdir + dh_testroot + rm -rf $(d_base) + dh_installdirs -p$(p_base) \ + $(gcc_lexec_dir) + +ifneq ($(DEB_STAGE),rtlibs) + ln -sf $(BASE_VERSION) \ + $(d_base)/$(subst /$(BASE_VERSION),/$(GCC_VERSION),$(gcc_lib_dir)) + for link in $(additional_links); do \ + ln -sf $(BASE_VERSION) \ + $(d_base)/$$(dirname $(gcc_lib_dir))/$$link; \ + done + ifneq ($(gcc_lib_dir),$(gcc_lexec_dir)) + ln -sf $(BASE_VERSION) \ + $(d_base)/$(subst /$(BASE_VERSION),/$(GCC_VERSION),$(gcc_lexec_dir)) + for link in $(additional_links); do \ + ln -sf $(BASE_VERSION) \ + $(d_base)/$$(dirname $(gcc_lexec_dir))/$$link; \ + done + endif +endif + +ifeq ($(with_base_only),yes) + dh_installdocs -p$(p_base) debian/README.Debian +else + dh_installdocs -p$(p_base) debian/README.Debian.$(DEB_TARGET_ARCH) +endif + rm -f $(d_base)/usr/share/doc/$(p_base)/README.Debian + dh_installchangelogs -p$(p_base) + dh_compress -p$(p_base) + dh_fixperms -p$(p_base) +ifeq ($(DEB_STAGE)-$(DEB_CROSS),rtlibs-yes) + $(cross_gencontrol) dh_gencontrol -p$(p_base) -- -v$(DEB_VERSION) $(common_substvars) +else + dh_gencontrol -p$(p_base) -- -v$(DEB_VERSION) $(common_substvars) +endif + dh_installdeb -p$(p_base) + dh_md5sums -p$(p_base) + dh_builddeb -p$(p_base) + touch $@ + +$(binary_stamp)-lbase: $(install_dependencies) + dh_testdir + dh_testroot + rm -rf $(d_lbase) + dh_installdocs -p$(p_lbase) debian/README.Debian + rm -f debian/$(p_lbase)/usr/share/doc/$(p_lbase)/README.Debian + dh_installchangelogs -p$(p_lbase) + dh_compress -p$(p_lbase) + dh_fixperms -p$(p_lbase) + dh_gencontrol -p$(p_lbase) -- -v$(DEB_VERSION) $(common_substvars) + dh_installdeb -p$(p_lbase) + dh_md5sums -p$(p_lbase) + dh_builddeb -p$(p_lbase) + touch $@ --- gcc-7-7.5.0.orig/debian/rules.d/binary-brig.mk +++ gcc-7-7.5.0/debian/rules.d/binary-brig.mk @@ -0,0 +1,79 @@ +ifneq ($(DEB_STAGE),rtlibs) +# ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32) $(biarchhf) $(biarchsf))) +# arch_binaries := $(arch_binaries) brig-multi +# endif + arch_binaries := $(arch_binaries) brig +endif + +p_brig = gccbrig$(pkg_ver)$(cross_bin_arch) +d_brig = debian/$(p_brig) + +p_brig_m= gccbrig$(pkg_ver)-multilib$(cross_bin_arch) +d_brig_m= debian/$(p_brig_m) + +dirs_brig = \ + $(docdir)/$(p_xbase)/BRIG \ + $(gcc_lexec_dir) + +files_brig = \ + $(PF)/bin/$(cmd_prefix)gccbrig$(pkg_ver) \ + $(gcc_lexec_dir)/brig1 + +$(binary_stamp)-brig: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_brig) + dh_installdirs -p$(p_brig) $(dirs_brig) + $(dh_compat2) dh_movefiles -p$(p_brig) $(files_brig) + +ifeq ($(unprefixed_names),yes) + ln -sf $(cmd_prefix)gccbrig$(pkg_ver) \ + $(d_brig)/$(PF)/bin/gccbrig$(pkg_ver) +# ifneq ($(GFDL_INVARIANT_FREE),yes-now-pure-gfdl) +# ln -sf $(cmd_prefix)gccbrig$(pkg_ver).1 \ +# $(d_brig)/$(PF)/share/man/man1/gccbrig$(pkg_ver).1 +# endif +endif + cp -p $(srcdir)/gcc/brig/ChangeLog \ + $(d_brig)/$(docdir)/$(p_xbase)/BRIG/changelog.BRIG + + mkdir -p $(d_brig)/usr/share/lintian/overrides + echo '$(p_brig) binary: hardening-no-pie' \ + > $(d_brig)/usr/share/lintian/overrides/$(p_brig) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_brig) binary: binary-without-manpage' \ + >> $(d_brig)/usr/share/lintian/overrides/$(p_brig) +endif + + debian/dh_doclink -p$(p_brig) $(p_xbase) + + debian/dh_rmemptydirs -p$(p_brig) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_brig)/$(gcc_lexec_dir)/brig1 +endif + dh_strip -p$(p_brig) \ + $(if $(unstripped_exe),-X/brig1) + dh_shlibdeps -p$(p_brig) + echo $(p_brig) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +$(binary_stamp)-brig-multi: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_brig_m) + dh_installdirs -p$(p_brig_m) $(docdir) + + debian/dh_doclink -p$(p_brig_m) $(p_xbase) + + dh_strip -p$(p_brig_m) + dh_shlibdeps -p$(p_brig_m) + echo $(p_brig_m) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-cpp.mk +++ gcc-7-7.5.0/debian/rules.d/binary-cpp.mk @@ -0,0 +1,85 @@ +ifneq ($(DEB_STAGE),rtlibs) + arch_binaries := $(arch_binaries) cpp + ifneq ($(DEB_CROSS),yes) + ifneq ($(GFDL_INVARIANT_FREE),yes) + indep_binaries := $(indep_binaries) cpp-doc + endif + endif +endif + +dirs_cpp = \ + $(docdir) \ + $(PF)/share/man/man1 \ + $(PF)/bin \ + $(gcc_lexec_dir) + +files_cpp = \ + $(PF)/bin/$(cmd_prefix)cpp$(pkg_ver) \ + $(gcc_lexec_dir)/cc1 + +ifneq ($(GFDL_INVARIANT_FREE),yes) + files_cpp += \ + $(PF)/share/man/man1/$(cmd_prefix)cpp$(pkg_ver).1 +endif + +# ---------------------------------------------------------------------- +$(binary_stamp)-cpp: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_cpp) + dh_installdirs -p$(p_cpp) $(dirs_cpp) + $(dh_compat2) dh_movefiles -p$(p_cpp) $(files_cpp) + +ifeq ($(unprefixed_names),yes) + ln -sf $(cmd_prefix)cpp$(pkg_ver) \ + $(d_cpp)/$(PF)/bin/cpp$(pkg_ver) + ifneq ($(GFDL_INVARIANT_FREE),yes) + ln -sf $(cmd_prefix)cpp$(pkg_ver).1 \ + $(d_cpp)/$(PF)/share/man/man1/cpp$(pkg_ver).1 + endif +endif + + mkdir -p $(d_cpp)/usr/share/lintian/overrides + echo '$(p_cpp) binary: hardening-no-pie' \ + > $(d_cpp)/usr/share/lintian/overrides/$(p_cpp) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_cpp) binary: binary-without-manpage' \ + >> $(d_cpp)/usr/share/lintian/overrides/$(p_cpp) +endif + + debian/dh_doclink -p$(p_cpp) $(p_xbase) + debian/dh_rmemptydirs -p$(p_cpp) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) $(d_cpp)/$(gcc_lexec_dir)/cc1 +endif + dh_strip -p$(p_cpp) \ + $(if $(unstripped_exe),-X/cc1) + dh_shlibdeps -p$(p_cpp) + + echo $(p_cpp) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-cpp-doc: $(build_html_stamp) $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_cppd) + dh_installdirs -p$(p_cppd) \ + $(docdir)/$(p_xbase) \ + $(PF)/share/info + $(dh_compat2) dh_movefiles -p$(p_cppd) \ + $(PF)/share/info/cpp* + + debian/dh_doclink -p$(p_cppd) $(p_xbase) + dh_installdocs -p$(p_cppd) html/cpp.html html/cppinternals.html + rm -f $(d_cppd)/$(docdir)/$(p_xbase)/copyright + debian/dh_rmemptydirs -p$(p_cppd) + echo $(p_cppd) >> debian/indep_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-cxx.mk +++ gcc-7-7.5.0/debian/rules.d/binary-cxx.mk @@ -0,0 +1,85 @@ +ifneq ($(DEB_STAGE),rtlibs) + ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32) $(biarchhf) $(biarchsf))) + arch_binaries := $(arch_binaries) cxx-multi + endif + arch_binaries := $(arch_binaries) cxx +endif + +dirs_cxx = \ + $(docdir)/$(p_xbase)/C++ \ + $(PF)/bin \ + $(PF)/share/info \ + $(gcc_lexec_dir) \ + $(PF)/share/man/man1 +files_cxx = \ + $(PF)/bin/$(cmd_prefix)g++$(pkg_ver) \ + $(gcc_lexec_dir)/cc1plus + +ifneq ($(GFDL_INVARIANT_FREE),yes) + files_cxx += \ + $(PF)/share/man/man1/$(cmd_prefix)g++$(pkg_ver).1 +endif + +p_cxx_m = g++$(pkg_ver)-multilib$(cross_bin_arch) +d_cxx_m = debian/$(p_cxx_m) + +# ---------------------------------------------------------------------- +$(binary_stamp)-cxx: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_cxx) + dh_installdirs -p$(p_cxx) $(dirs_cxx) + $(dh_compat2) dh_movefiles -p$(p_cxx) $(files_cxx) + +ifeq ($(unprefixed_names),yes) + ln -sf $(cmd_prefix)g++$(pkg_ver) \ + $(d_cxx)/$(PF)/bin/g++$(pkg_ver) + ifneq ($(GFDL_INVARIANT_FREE),yes) + ln -sf $(cmd_prefix)g++$(pkg_ver).1.gz \ + $(d_cxx)/$(PF)/share/man/man1/g++$(pkg_ver).1.gz + endif +endif + + mkdir -p $(d_cxx)/usr/share/lintian/overrides + echo '$(p_cxx) binary: hardening-no-pie' \ + > $(d_cxx)/usr/share/lintian/overrides/$(p_cxx) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_cxx) binary: binary-without-manpage' \ + >> $(d_cxx)/usr/share/lintian/overrides/$(p_cxx) +endif + + debian/dh_doclink -p$(p_cxx) $(p_xbase) + cp -p debian/README.C++ $(d_cxx)/$(docdir)/$(p_xbase)/C++/ + cp -p $(srcdir)/gcc/cp/ChangeLog \ + $(d_cxx)/$(docdir)/$(p_xbase)/C++/changelog + debian/dh_rmemptydirs -p$(p_cxx) + + dh_shlibdeps -p$(p_cxx) +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_cxx)/$(gcc_lexec_dir)/cc1plus +endif + dh_strip -p$(p_cxx) $(if $(unstripped_exe),-X/cc1plus) + echo $(p_cxx) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +$(binary_stamp)-cxx-multi: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_cxx_m) + dh_installdirs -p$(p_cxx_m) \ + $(docdir) + + debian/dh_doclink -p$(p_cxx_m) $(p_xbase) + debian/dh_rmemptydirs -p$(p_cxx_m) + + dh_strip -p$(p_cxx_m) + dh_shlibdeps -p$(p_cxx_m) + echo $(p_cxx_m) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-d.mk +++ gcc-7-7.5.0/debian/rules.d/binary-d.mk @@ -0,0 +1,273 @@ +ifneq ($(DEB_STAGE),rtlibs) + ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32) $(biarchsf))) + arch_binaries := $(arch_binaries) gdc-multi + endif + arch_binaries := $(arch_binaries) gdc + + ifeq ($(with_libphobos),yes) + $(lib_binaries) += libphobos-dev + $(lib_binaries) += libphobos + endif + + ifeq ($(with_lib64phobosdev),yes) + $(lib_binaries) += lib64phobos-dev + endif + ifeq ($(with_lib32phobosdev),yes) + $(lib_binaries) += lib32phobos-dev + endif + ifeq ($(with_libn32phobosdev),yes) + $(lib_binaries) += libn32phobos-dev + endif + ifeq ($(with_libx32phobosdev),yes) + $(lib_binaries) += libx32phobos-dev + endif + ifeq ($(with_libhfphobosdev),yes) + $(lib_binaries) += libhfphobos-dev + endif + ifeq ($(with_libsfphobosdev),yes) + $(lib_binaries) += libsfphobos-dev + endif + + ifeq ($(with_lib64phobos),yes) + $(lib_binaries) += lib64phobos + endif + ifeq ($(with_lib32phobos),yes) + $(lib_binaries) += lib32phobos + endif + ifeq ($(with_libn32phobos),yes) + $(lib_binaries) += libn32phobos + endif + ifeq ($(with_libx32phobos),yes) + $(lib_binaries) += libx32phobos + endif + ifeq ($(with_libhfphobos),yes) + $(lib_binaries) += libhfphobos + endif + ifeq ($(with_libsfphobos),yes) + $(lib_binaries) += libsfphobos + endif +endif + +p_gdc = gdc$(pkg_ver)$(cross_bin_arch) +p_gdc_m = gdc$(pkg_ver)-multilib$(cross_bin_arch) +p_libphobos = libgphobos$(GPHOBOS_SONAME) +p_libphobosdev = libgphobos$(pkg_ver)-dev + +d_gdc = debian/$(p_gdc) +d_gdc_m = debian/$(p_gdc_m) +d_libphobos = debian/$(p_libphobos) +d_libphobosdev = debian/$(p_libphobosdev) + +ifeq ($(DEB_CROSS),yes) + gdc_include_dir := $(gcc_lib_dir)/include/d +else + gdc_include_dir := $(PF)/include/d/$(BASE_VERSION) +endif +# FIXME: always here? +gdc_include_dir := $(gcc_lib_dir)/include/d + +dirs_gdc = \ + $(PF)/bin \ + $(PF)/share/man/man1 \ + $(gcc_lexec_dir) +ifneq ($(DEB_CROSS),yes) + dirs_gdc += \ + $(gdc_include_dir) +endif + +files_gdc = \ + $(PF)/bin/$(cmd_prefix)gdc$(pkg_ver) \ + $(gcc_lexec_dir)/cc1d +ifneq ($(GFDL_INVARIANT_FREE),yes-now-pure-gfdl) + files_gdc += \ + $(PF)/share/man/man1/$(cmd_prefix)gdc$(pkg_ver).1 +endif + +dirs_libphobos = \ + $(PF)/lib \ + $(gdc_include_dir) \ + $(gcc_lib_dir) + +$(binary_stamp)-gdc: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gdc) + dh_installdirs -p$(p_gdc) $(dirs_gdc) + + dh_installdocs -p$(p_gdc) src/gcc/d/README + dh_installchangelogs -p$(p_gdc) src/gcc/d/ChangeLog + + $(dh_compat2) dh_movefiles -p$(p_gdc) -X/zlib/ $(files_gdc) + +ifeq ($(with_libphobos),yes) + mv $(d)/$(usr_lib)/libgphobos.spec $(d_gdc)/$(gcc_lib_dir)/ +endif + +ifeq ($(unprefixed_names),yes) + ln -sf $(cmd_prefix)gdc$(pkg_ver) \ + $(d_gdc)/$(PF)/bin/gdc$(pkg_ver) + ifneq ($(GFDL_INVARIANT_FREE),yes-now-pure-gfdl) + ln -sf $(cmd_prefix)gdc$(pkg_ver).1 \ + $(d_gdc)/$(PF)/share/man/man1/gdc$(pkg_ver).1 + endif +endif + +# FIXME: __entrypoint.di needs to go into a libgdc-dev Multi-Arch: same package + # Always needed by gdc. + mkdir -p $(d_gdc)/$(gdc_include_dir) + cp $(srcdir)/libphobos/libdruntime/__entrypoint.di \ + $(d_gdc)/$(gdc_include_dir)/. +#ifneq ($(DEB_CROSS),yes) +# dh_link -p$(p_gdc) \ +# /$(gdc_include_dir) \ +# /$(dir $(gdc_include_dir))/$(GCC_VERSION) +#endif + + dh_link -p$(p_gdc) \ + /$(docdir)/$(p_gcc)/README.Bugs \ + /$(docdir)/$(p_gdc)/README.Bugs + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_gdc)/$(gcc_lexec_dir)/cc1d +endif + dh_strip -p$(p_gdc) \ + $(if $(unstripped_exe),-X/cc1d) + dh_shlibdeps -p$(p_gdc) + + mkdir -p $(d_gdc)/usr/share/lintian/overrides + echo '$(p_gdc) binary: hardening-no-pie' \ + > $(d_gdc)/usr/share/lintian/overrides/$(p_gdc) + + echo $(p_gdc) >> debian/arch_binaries + + find $(d_gdc) -type d -empty -delete + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +$(binary_stamp)-gdc-multi: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gdc_m) + dh_installdirs -p$(p_gdc_m) $(docdir) + + debian/dh_doclink -p$(p_gdc_m) $(p_xbase) + + dh_strip -p$(p_gdc_m) + dh_shlibdeps -p$(p_gdc_m) + echo $(p_gdc_m) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +define __do_libphobos + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) \ + $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) \ + $(usr_lib$(2))/libgphobos.so.* \ + $(usr_lib$(2))/libgdruntime.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + dh_strip -p$(p_l) --dbg-package=$(p_d) + ln -sf libgphobos.symbols debian/$(p_l).symbols + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) \ + -- -a$(call mlib_to_arch,$(2)) || echo XXXXXXXXXXX ERROR $(p_l) + rm -f debian/$(p_l).symbols + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search, \ + $(subst gphobos$(GPHOBOS_SONAME),gcc$(GCC_SONAME),$(p_l)) \ + ,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_l)) + dh_lintian -p$(p_l) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +define __do_libphobos_dev + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) + dh_installdirs -p$(p_l) \ + $(gcc_lib_dir$(2)) + + $(call install_gcc_lib,libgdruntime,$(GDRUNTIME_SONAME),$(2),$(p_l)) + $(call install_gcc_lib,libgphobos,$(GPHOBOS_SONAME),$(2),$(p_l)) + + $(if $(2),, + $(dh_compat2) dh_movefiles -p$(p_l) \ + $(gdc_include_dir) + ) + + : # included in gdc package + rm -f $(d_l)/$(gdc_include_dir)/__entrypoint.di + + debian/dh_doclink -p$(p_l) \ + $(if $(filter yes,$(with_separate_gdc)),$(p_gdc),$(p_lbase)) + echo $(p_l) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# don't put this as a comment within define/endef +# $(call install_gcc_lib,libphobos,$(PHOBOS_SONAME),$(2),$(p_l)) + +do_libphobos = $(call __do_libphobos,lib$(1)gphobos$(GPHOBOS_SONAME),$(1)) +do_libphobos_dev = $(call __do_libphobos_dev,lib$(1)gphobos-$(BASE_VERSION)-dev,$(1)) + +$(binary_stamp)-libphobos: $(install_stamp) + $(call do_libphobos,) + +$(binary_stamp)-lib64phobos: $(install_stamp) + $(call do_libphobos,64) + +$(binary_stamp)-lib32phobos: $(install_stamp) + $(call do_libphobos,32) + +$(binary_stamp)-libn32phobos: $(install_stamp) + $(call do_libphobos,n32) + +$(binary_stamp)-libx32phobos: $(install_stamp) + $(call do_libphobos,x32) + +$(binary_stamp)-libhfphobos: $(install_stamp) + $(call do_libphobos,hf) + +$(binary_stamp)-libsfphobos: $(install_stamp) + $(call do_libphobos,sf) + + +$(binary_stamp)-libphobos-dev: $(install_stamp) + $(call do_libphobos_dev,) + +$(binary_stamp)-lib64phobos-dev: $(install_stamp) + $(call do_libphobos_dev,64) + +$(binary_stamp)-lib32phobos-dev: $(install_stamp) + $(call do_libphobos_dev,32) + +$(binary_stamp)-libx32phobos-dev: $(install_stamp) + $(call do_libphobos_dev,x32) + +$(binary_stamp)-libn32phobos-dev: $(install_stamp) + $(call do_libphobos_dev,n32) + +$(binary_stamp)-libhfphobos-dev: $(install_stamp) + $(call do_libphobos_dev,hf) + +$(binary_stamp)-libsfphobos-dev: $(install_stamp) + $(call do_libphobos_dev,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-fixincl.mk +++ gcc-7-7.5.0/debian/rules.d/binary-fixincl.mk @@ -0,0 +1,42 @@ +arch_binaries := $(arch_binaries) fixincl + +p_fix = fixincludes +d_fix = debian/$(p_fix) + +dirs_fix = \ + $(docdir)/$(p_xbase)/fixincludes \ + $(PF)/share/man/man1 \ + $(PF)/bin \ + $(gcc_lexec_dir) \ + $(gcc_lib_dir) +files_fix = \ + $(gcc_lexec_dir)/install-tools \ + $(gcc_lib_dir)/install-tools + +# ---------------------------------------------------------------------- +$(binary_stamp)-fixincl: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_fix) + dh_installdirs -p$(p_fix) $(dirs_fix) + $(dh_compat2) dh_movefiles -p$(p_fix) $(files_fix) + +# $(IP) $(builddir)/gcc/fixinc/fixincl $(d_fix)/$(PF)/lib/fixincludes/ +# sed -e "s,^FIXINCL=\(.*\),FIXINCL=/$(PF)/lib/fixincludes/fixincl," \ +# $(builddir)/gcc/fixinc.sh \ +# > $(d_fix)/$(PF)/lib/fixincludes/fixinc.sh +# chmod 755 $(d_fix)/$(PF)/lib/fixincludes/fixinc.sh + $(IR) $(srcdir)/fixincludes/README \ + $(d_fix)/$(docdir)/$(p_xbase)/fixincludes + sed -e 's,@LIBEXECDIR@,$(gcc_lexec_dir),g' debian/fixincludes.in \ + > $(d_fix)/$(PF)/bin/fixincludes + chmod 755 $(d_fix)/$(PF)/bin/fixincludes + + debian/dh_doclink -p$(p_fix) $(p_xbase) + dh_strip -p$(p_fix) + dh_shlibdeps -p$(p_fix) + echo $(p_fix) >> debian/arch_binaries.epoch + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-fortran.mk +++ gcc-7-7.5.0/debian/rules.d/binary-fortran.mk @@ -0,0 +1,273 @@ +ifeq ($(with_libgfortran),yes) + $(lib_binaries) += libgfortran +endif +ifeq ($(with_fdev),yes) + $(lib_binaries) += libgfortran-dev +endif +ifeq ($(with_lib64gfortran),yes) + $(lib_binaries) += lib64fortran +endif +ifeq ($(with_lib64gfortrandev),yes) + $(lib_binaries) += lib64gfortran-dev +endif +ifeq ($(with_lib32gfortran),yes) + $(lib_binaries) += lib32fortran +endif +ifeq ($(with_lib32gfortrandev),yes) + $(lib_binaries) += lib32gfortran-dev +endif +ifeq ($(with_libn32gfortran),yes) + $(lib_binaries) += libn32fortran +endif +ifeq ($(with_libn32gfortrandev),yes) + $(lib_binaries) += libn32gfortran-dev +endif +ifeq ($(with_libx32gfortran),yes) + $(lib_binaries) += libx32fortran +endif +ifeq ($(with_libx32gfortrandev),yes) + $(lib_binaries) += libx32gfortran-dev +endif +ifeq ($(with_libhfgfortran),yes) + $(lib_binaries) += libhffortran +endif +ifeq ($(with_libhfgfortrandev),yes) + $(lib_binaries) += libhfgfortran-dev +endif +ifeq ($(with_libsfgfortran),yes) + $(lib_binaries) += libsffortran +endif +ifeq ($(with_libsfgfortrandev),yes) + $(lib_binaries) += libsfgfortran-dev +endif + +ifeq ($(with_fdev),yes) + ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32) $(biarchhf) $(biarchsf))) + arch_binaries := $(arch_binaries) fdev-multi + endif + arch_binaries := $(arch_binaries) fdev + ifneq ($(DEB_CROSS),yes) + ifneq ($(GFDL_INVARIANT_FREE),yes) + indep_binaries := $(indep_binaries) fortran-doc + endif + endif +endif + +p_g95 = gfortran$(pkg_ver)$(cross_bin_arch) +p_g95_m = gfortran$(pkg_ver)-multilib$(cross_bin_arch) +p_g95d = gfortran$(pkg_ver)-doc +p_flib = libgfortran$(FORTRAN_SONAME)$(cross_lib_arch) + +d_g95 = debian/$(p_g95) +d_g95_m = debian/$(p_g95_m) +d_g95d = debian/$(p_g95d) + +dirs_g95 = \ + $(docdir)/$(p_xbase)/fortran \ + $(PF)/bin \ + $(gcc_lexec_dir) \ + $(gcc_lib_dir) \ + $(PF)/include \ + $(PF)/share/man/man1 +files_g95 = \ + $(PF)/bin/$(cmd_prefix)gfortran$(pkg_ver) \ + $(gcc_lib_dir)/finclude \ + $(gcc_lexec_dir)/f951 + +ifneq ($(GFDL_INVARIANT_FREE),yes) + files_g95 += \ + $(PF)/share/man/man1/$(cmd_prefix)gfortran$(pkg_ver).1 +endif + +# ---------------------------------------------------------------------- +define __do_fortran + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) $(usr_lib$(2))/libgfortran.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + if [ -f debian/$(p_l).overrides ]; then \ + mkdir -p debian/$(p_l)/usr/share/lintian/overrides; \ + cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \ + fi + + dh_strip -p$(p_l) --dbg-package=$(p_d) + ln -sf libgfortran.symbols debian/$(p_l).symbols + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search, \ + $(subst gfortran$(FORTRAN_SONAME),gcc$(GCC_SONAME),$(p_l)) \ + $(subst gfortran$(FORTRAN_SONAME),gcc$(QUADMATH_SONAME),$(p_l)) \ + ,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +do_fortran = $(call __do_fortran,lib$(1)gfortran$(FORTRAN_SONAME),$(1)) + + +define __do_libgfortran_dev + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) + dh_installdirs -p$(p_l) $(gcc_lib_dir$(2)) + + $(dh_compat2) dh_movefiles -p$(p_l) \ + $(gcc_lib_dir$(2))/libcaf_single.a + $(call install_gcc_lib,libgfortran,$(FORTRAN_SONAME),$(2),$(p_l)) + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_rmemptydirs -p$(p_l) + + dh_strip -p$(p_l) + $(cross_shlibdeps) dh_shlibdeps -p$(p_l) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef +# ---------------------------------------------------------------------- + +do_libgfortran_dev = $(call __do_libgfortran_dev,lib$(1)gfortran-$(BASE_VERSION)-dev,$(1)) + +$(binary_stamp)-libgfortran: $(install_stamp) + $(call do_fortran,) + +$(binary_stamp)-lib64fortran: $(install_stamp) + $(call do_fortran,64) + +$(binary_stamp)-lib32fortran: $(install_stamp) + $(call do_fortran,32) + +$(binary_stamp)-libn32fortran: $(install_stamp) + $(call do_fortran,n32) + +$(binary_stamp)-libx32fortran: $(install_stamp) + $(call do_fortran,x32) + +$(binary_stamp)-libhffortran: $(install_stamp) + $(call do_fortran,hf) + +$(binary_stamp)-libsffortran: $(install_stamp) + $(call do_fortran,sf) + +# ---------------------------------------------------------------------- +$(binary_stamp)-fdev: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_g95) + dh_installdirs -p$(p_g95) $(dirs_g95) + + $(dh_compat2) dh_movefiles -p$(p_g95) $(files_g95) + + mv $(d)/$(usr_lib)/libgfortran.spec $(d_g95)/$(gcc_lib_dir)/ + +ifeq ($(unprefixed_names),yes) + ln -sf $(cmd_prefix)gfortran$(pkg_ver) \ + $(d_g95)/$(PF)/bin/gfortran$(pkg_ver) + ifneq ($(GFDL_INVARIANT_FREE),yes) + ln -sf $(cmd_prefix)gfortran$(pkg_ver).1 \ + $(d_g95)/$(PF)/share/man/man1/gfortran$(pkg_ver).1 + endif +endif + + mkdir -p $(d_g95)/usr/share/lintian/overrides + echo '$(p_g95) binary: hardening-no-pie' \ + > $(d_g95)/usr/share/lintian/overrides/$(p_g95) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_g95) binary: binary-without-manpage' \ + >> $(d_g95)/usr/share/lintian/overrides/$(p_g95) +endif + + debian/dh_doclink -p$(p_g95) $(p_xbase) + + cp -p $(srcdir)/gcc/fortran/ChangeLog \ + $(d_g95)/$(docdir)/$(p_xbase)/fortran/changelog + debian/dh_rmemptydirs -p$(p_g95) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_g95)/$(gcc_lexec_dir)/f951 +endif + dh_strip -p$(p_g95) \ + $(if $(unstripped_exe),-X/f951) + dh_shlibdeps -p$(p_g95) + echo $(p_g95) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-fdev-multi: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_g95_m) + dh_installdirs -p$(p_g95_m) $(docdir) + + debian/dh_doclink -p$(p_g95_m) $(p_xbase) + debian/dh_rmemptydirs -p$(p_g95_m) + dh_strip -p$(p_g95_m) + dh_shlibdeps -p$(p_g95_m) + echo $(p_g95_m) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-fortran-doc: $(build_html_stamp) $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_g95d) + dh_installdirs -p$(p_g95d) \ + $(docdir)/$(p_xbase)/fortran \ + $(PF)/share/info + $(dh_compat2) dh_movefiles -p$(p_g95d) \ + $(PF)/share/info/gfortran* + + debian/dh_doclink -p$(p_g95d) $(p_xbase) +ifneq ($(GFDL_INVARIANT_FREE),yes) + dh_installdocs -p$(p_g95d) + rm -f $(d_g95d)/$(docdir)/$(p_xbase)/copyright + cp -p html/gfortran.html $(d_g95d)/$(docdir)/$(p_xbase)/fortran/ +endif + echo $(p_g95d) >> debian/indep_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +$(binary_stamp)-libgfortran-dev: $(install_stamp) + $(call do_libgfortran_dev,) + +$(binary_stamp)-lib64gfortran-dev: $(install_stamp) + $(call do_libgfortran_dev,64) + +$(binary_stamp)-lib32gfortran-dev: $(install_stamp) + $(call do_libgfortran_dev,32) + +$(binary_stamp)-libn32gfortran-dev: $(install_stamp) + $(call do_libgfortran_dev,n32) + +$(binary_stamp)-libx32gfortran-dev: $(install_stamp) + $(call do_libgfortran_dev,x32) + +$(binary_stamp)-libhfgfortran-dev: $(install_stamp) + $(call do_libgfortran_dev,hf) + +$(binary_stamp)-libsfgfortran-dev: $(install_stamp) + $(call do_libgfortran_dev,sf) + --- gcc-7-7.5.0.orig/debian/rules.d/binary-gcc.mk +++ gcc-7-7.5.0/debian/rules.d/binary-gcc.mk @@ -0,0 +1,375 @@ +ifneq ($(DEB_STAGE),rtlibs) + ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32) $(biarchhf) $(biarchsf))) + arch_binaries := $(arch_binaries) gcc-multi + endif + ifeq ($(with_plugins),yes) + arch_binaries := $(arch_binaries) gcc-plugindev + endif + + arch_binaries := $(arch_binaries) gcc + + ifneq ($(DEB_CROSS),yes) + ifneq ($(GFDL_INVARIANT_FREE),yes) + indep_binaries := $(indep_binaries) gcc-doc + endif + ifeq ($(with_nls),yes) + indep_binaries := $(indep_binaries) gcc-locales + endif + endif + + ifeq ($(build_type),build-native) + arch_binaries := $(arch_binaries) testresults + endif +endif + +# gcc must be moved after g77 and g++ +# not all files $(PF)/include/*.h are part of gcc, +# but it becomes difficult to name all these files ... + +dirs_gcc = \ + $(docdir)/$(p_xbase)/{gcc,libssp,gomp,itm,quadmath,sanitizer,cilkrts,mpx} \ + $(PF)/bin \ + $(gcc_lexec_dir) \ + $(gcc_lib_dir)/{include,include-fixed} \ + $(PF)/share/man/man1 $(libgcc_dir) + +# XXX: what about triarch mapping? +files_gcc = \ + $(PF)/bin/$(cmd_prefix){gcc,gcov,gcov-tool,gcov-dump}$(pkg_ver) \ + $(PF)/bin/$(cmd_prefix)gcc-{ar,ranlib,nm}$(pkg_ver) \ + $(PF)/share/man/man1/$(cmd_prefix)gcc-{ar,nm,ranlib}$(pkg_ver).1 \ + $(gcc_lexec_dir)/{collect2,lto1,lto-wrapper} \ + $(shell test -e $(d)/$(gcc_lib_dir)/SYSCALLS.c.X \ + && echo $(gcc_lib_dir)/SYSCALLS.c.X) + +ifeq ($(with_libcc1_plugin),yes) + files_gcc += \ + $(gcc_lib_dir)/plugin/libc[cp]1plugin.so{,.0,.0.0.0} +endif + +files_gcc += \ + $(gcc_lexec_dir)/liblto_plugin.so{,.0,.0.0.0} + +ifeq ($(DEB_STAGE),stage1) + files_gcc += \ + $(gcc_lib_dir)/include \ + $(shell for h in \ + README limits.h syslimits.h; \ + do \ + test -e $(d)/$(gcc_lib_dir)/include-fixed/$$h \ + && echo $(gcc_lib_dir)/include-fixed/$$h; \ + done) +endif + +ifneq ($(GFDL_INVARIANT_FREE),yes) + files_gcc += \ + $(PF)/share/man/man1/$(cmd_prefix){gcc,gcov}$(pkg_ver).1 \ + $(PF)/share/man/man1/$(cmd_prefix)gcov-{dump,tool}$(pkg_ver).1 +endif + +usr_doc_files = debian/README.Bugs \ + $(shell test -f $(srcdir)/FAQ && echo $(srcdir)/FAQ) + +p_loc = gcc$(pkg_ver)-locales +d_loc = debian/$(p_loc) + +p_gcc_m = gcc$(pkg_ver)-multilib$(cross_bin_arch) +d_gcc_m = debian/$(p_gcc_m) + +p_pld = gcc$(pkg_ver)-plugin-dev$(cross_bin_arch) +d_pld = debian/$(p_pld) + +p_tst = gcc$(pkg_ver)-test-results +d_tst = debian/$(p_tst) + +# ---------------------------------------------------------------------- +$(binary_stamp)-gcc: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gcc) + dh_installdirs -p$(p_gcc) $(dirs_gcc) + +ifeq ($(with_linaro_branch),yes) + if [ -f $(srcdir)/gcc/ChangeLog.linaro ]; then \ + cp -p $(srcdir)/gcc/ChangeLog.linaro \ + $(d_gcc)/$(docdir)/$(p_xbase)/changelog.linaro; \ + fi +endif +ifeq ($(with_libssp),yes) + cp -p $(srcdir)/libssp/ChangeLog \ + $(d_gcc)/$(docdir)/$(p_xbase)/libssp/changelog +endif +ifeq ($(with_gomp),yes) + mv $(d)/$(usr_lib)/libgomp*.spec $(d_gcc)/$(gcc_lib_dir)/ + cp -p $(srcdir)/libgomp/ChangeLog \ + $(d_gcc)/$(docdir)/$(p_xbase)/gomp/changelog +endif +ifeq ($(with_itm),yes) + mv $(d)/$(usr_lib)/libitm*.spec $(d_gcc)/$(gcc_lib_dir)/ + cp -p $(srcdir)/libitm/ChangeLog \ + $(d_gcc)/$(docdir)/$(p_xbase)/itm/changelog +endif +ifeq ($(with_qmath),yes) + cp -p $(srcdir)/libquadmath/ChangeLog \ + $(d_gcc)/$(docdir)/$(p_xbase)/quadmath/changelog +endif +ifeq ($(with_asan),yes) + mv $(d)/$(usr_lib)/libsanitizer*.spec $(d_gcc)/$(gcc_lib_dir)/ + cp -p $(srcdir)/libsanitizer/ChangeLog \ + $(d_gcc)/$(docdir)/$(p_xbase)/sanitizer/changelog +endif +ifeq ($(with_cilkrts),yes) + mv $(d)/$(usr_lib)/libcilkrts.spec $(d_gcc)/$(gcc_lib_dir)/ + cp -p $(srcdir)/libcilkrts/ChangeLog \ + $(d_gcc)/$(docdir)/$(p_xbase)/cilkrts/changelog +endif +ifeq ($(with_mpx),yes) + mv $(d)/$(usr_lib)/libmpx.spec $(d_gcc)/$(gcc_lib_dir)/ + cp -p $(srcdir)/libmpx/ChangeLog \ + $(d_gcc)/$(docdir)/$(p_xbase)/mpx/changelog +endif +ifeq ($(with_cc1),yes) + rm -f $(d)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libcc1.so + dh_link -p$(p_gcc) \ + /$(PF)/lib/$(DEB_HOST_MULTIARCH)/libcc1.so.$(CC1_SONAME) \ + /$(gcc_lib_dir)/libcc1.so +endif + + $(dh_compat2) dh_movefiles -p$(p_gcc) $(files_gcc) + +ifeq ($(unprefixed_names),yes) + for i in gcc gcov gcov-dump gcov-tool gcc-ar gcc-nm gcc-ranlib; do \ + ln -sf $(cmd_prefix)$$i$(pkg_ver) \ + $(d_gcc)/$(PF)/bin/$$i$(pkg_ver); \ + done + ifneq ($(GFDL_INVARIANT_FREE),yes) + for i in gcc gcov gcov-dump gcov-tool; do \ + ln -sf $(cmd_prefix)$$i$(pkg_ver).1.gz \ + $(d_gcc)/$(PF)/share/man/man1/$$i$(pkg_ver).1.gz; \ + done + endif + for i in gcc-ar gcc-nm gcc-ranlib; do \ + ln -sf $(cmd_prefix)$$i$(pkg_ver).1.gz \ + $(d_gcc)/$(PF)/share/man/man1/$$i$(pkg_ver).1.gz; \ + done +endif + +# dh_installdebconf + debian/dh_doclink -p$(p_gcc) $(p_xbase) + cp -p $(usr_doc_files) $(d_gcc)/$(docdir)/$(p_xbase)/. + cp -p debian/README.ssp $(d_gcc)/$(docdir)/$(p_xbase)/ + cp -p debian/NEWS.gcc $(d_gcc)/$(docdir)/$(p_xbase)/NEWS + cp -p debian/NEWS.html $(d_gcc)/$(docdir)/$(p_xbase)/NEWS.html + cp -p debian/gcc.css $(d_gcc)/$(docdir)/$(p_xbase)/gcc.css + cp -p $(srcdir)/ChangeLog $(d_gcc)/$(docdir)/$(p_xbase)/changelog + cp -p $(srcdir)/gcc/ChangeLog \ + $(d_gcc)/$(docdir)/$(p_xbase)/gcc/changelog + if [ -f $(builddir)/gcc/.bad_compare ]; then \ + ( \ + echo "The comparision of the stage2 and stage3 object files shows differences."; \ + echo "The Debian package was modified to ignore these differences."; \ + echo ""; \ + echo "The following files differ:"; \ + echo ""; \ + cat $(builddir)/gcc/.bad_compare; \ + ) > $(d_gcc)/$(docdir)/$(p_xbase)/BOOTSTRAP_COMPARISION_FAILURE; \ + else \ + true; \ + fi + + mkdir -p $(d_gcc)/usr/share/lintian/overrides + echo '$(p_gcc) binary: hardening-no-pie' \ + > $(d_gcc)/usr/share/lintian/overrides/$(p_gcc) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_gcc) binary: binary-without-manpage' \ + >> $(d_gcc)/usr/share/lintian/overrides/$(p_gcc) +endif + + debian/dh_rmemptydirs -p$(p_gcc) +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_gcc)/$(gcc_lexec_dir)/lto1 \ + $(d_gcc)/$(gcc_lexec_dir)/lto-wrapper \ + $(d_gcc)/$(gcc_lexec_dir)/collect2 +endif + dh_strip -p$(p_gcc) \ + $(if $(unstripped_exe),-X/lto1) + dh_shlibdeps -p$(p_gcc) + echo $(p_gcc) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- + +$(binary_stamp)-gcc-multi: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_gcc_m) + dh_installdirs -p$(p_gcc_m) $(docdir) + + debian/dh_doclink -p$(p_gcc_m) $(p_xbase) + debian/dh_rmemptydirs -p$(p_gcc_m) + + dh_strip -p$(p_gcc_m) + dh_shlibdeps -p$(p_gcc_m) + echo $(p_gcc_m) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-gcc-plugindev: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_pld) + dh_installdirs -p$(p_pld) \ + $(docdir) \ + $(gcc_lib_dir)/plugin + $(dh_compat2) dh_movefiles -p$(p_pld) \ + $(gcc_lib_dir)/plugin/include \ + $(gcc_lib_dir)/plugin/gtype.state \ + $(gcc_lexec_dir)/plugin/gengtype + + debian/dh_doclink -p$(p_pld) $(p_xbase) + debian/dh_rmemptydirs -p$(p_pld) + dh_strip -p$(p_pld) + dh_shlibdeps -p$(p_pld) + mkdir -p $(d_pld)/usr/share/lintian/overrides + echo '$(p_pld) binary: hardening-no-pie' \ + > $(d_pld)/usr/share/lintian/overrides/$(p_pld) + echo $(p_pld) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-gcc-locales: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_loc) + dh_installdirs -p$(p_loc) \ + $(docdir) + $(dh_compat2) dh_movefiles -p$(p_loc) \ + $(PF)/share/locale/*/*/cpplib*.* \ + $(PF)/share/locale/*/*/gcc*.* + + debian/dh_doclink -p$(p_loc) $(p_xbase) + debian/dh_rmemptydirs -p$(p_loc) + echo $(p_loc) >> debian/indep_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + + +# ---------------------------------------------------------------------- + +$(binary_stamp)-testresults: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_tst) + dh_installdirs -p$(p_tst) $(docdir) + + debian/dh_doclink -p$(p_tst) $(p_xbase) + + mkdir -p $(d_tst)/$(docdir)/$(p_xbase)/test + echo "TEST COMPARE BEGIN" +ifeq ($(with_check),yes) + for i in test-summary testsuite-comparision; do \ + [ -f $$i ] || continue; \ + cp -p $$i $(d_tst)/$(docdir)/$(p_xbase)/$$i; \ + done +# more than one libgo.sum, avoid it + cp -p $$(find $(builddir)/gcc/testsuite -maxdepth 2 \( -name '*.sum' -o -name '*.log' \)) \ + $$(find $(buildlibdir)/*/testsuite -maxdepth 1 \( -name '*.sum' -o -name '*.log' \) ! -name 'libgo.*') \ + $(d_tst)/$(docdir)/$(p_xbase)/test/ + ifeq ($(with_go),yes) + cp -p $(buildlibdir)/libgo/libgo.sum \ + $(d_tst)/$(docdir)/$(p_xbase)/test/ + endif + ifeq (0,1) + cd $(builddir); \ + for i in $(CURDIR)/$(d_tst)/$(docdir)/$(p_xbase)/test/*.sum; do \ + b=$$(basename $$i); \ + if [ -f /usr/share/doc/$(p_xbase)/test/$$b.gz ]; then \ + zcat /usr/share/doc/$(p_xbase)/test/$$b.gz > /tmp/$$b; \ + if sh $(srcdir)/contrib/test_summary /tmp/$$b $$i; then \ + echo "$$b: OK"; \ + else \ + echo "$$b: FAILURES"; \ + fi; \ + rm -f /tmp/$$b; \ + else \ + echo "Test summary for $$b is not available"; \ + fi; \ + done + endif + if which xz 2>&1 >/dev/null; then \ + echo -n $(d_tst)/$(docdir)/$(p_xbase)/test/* \ + | xargs -d ' ' -L 1 -P $(USE_CPUS) xz -7v; \ + fi +else + echo "Nothing to compare (testsuite not run)" + echo 'Test run disabled, reason: $(with_check)' \ + > $(d_tst)/$(docdir)/$(p_xbase)/test-run-disabled +endif + echo "TEST COMPARE END" + + debian/dh_rmemptydirs -p$(p_tst) + + echo $(p_tst) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-gcc-doc: $(build_html_stamp) $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_doc) + dh_installdirs -p$(p_doc) \ + $(docdir)/$(p_xbase) \ + $(PF)/share/info + $(dh_compat2) dh_movefiles -p$(p_doc) \ + $(PF)/share/info/cpp{,internals}-* \ + $(PF)/share/info/gcc{,int}-* \ + $(PF)/share/info/lib{gomp,itm}-* \ + $(if $(with_qmath),$(PF)/share/info/libquadmath-*) + rm -f $(d_doc)/$(PF)/share/info/gccinst* + +ifeq ($(with_gomp),yes) + $(MAKE) -C $(buildlibdir)/libgomp stamp-build-info + cp -p $(buildlibdir)/libgomp/$(cmd_prefix)libgomp$(pkg_ver).info \ + $(d_doc)/$(PF)/share/info/libgomp$(pkg_ver).info +endif +ifeq ($(with_itm),yes) + -$(MAKE) -C $(buildlibdir)/libitm stamp-build-info + if [ -f $(buildlibdir)/libitm/libitm$(pkg_ver).info ]; then \ + cp -p $(buildlibdir)/libitm/$(cmd_prefix)libitm$(pkg_ver).info \ + $(d_doc)/$(PF)/share/info/; \ + fi +endif + + debian/dh_doclink -p$(p_doc) $(p_xbase) + dh_installdocs -p$(p_doc) html/gcc.html html/gccint.html +ifeq ($(with_gomp),yes) + cp -p html/libgomp.html $(d_doc)/usr/share/doc/$(p_doc)/ +endif +ifeq ($(with_itm),yes) + cp -p html/libitm.html $(d_doc)/usr/share/doc/$(p_doc)/ +endif +ifeq ($(with_qmath),yes) + cp -p html/libquadmath.html $(d_doc)/usr/share/doc/$(p_doc)/ +endif + rm -f $(d_doc)/$(docdir)/$(p_xbase)/copyright + debian/dh_rmemptydirs -p$(p_doc) + echo $(p_doc) >> debian/indep_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-go.mk +++ gcc-7-7.5.0/debian/rules.d/binary-go.mk @@ -0,0 +1,338 @@ +ifeq ($(with_libgo),yes) + $(lib_binaries) += libgo +endif +ifeq ($(with_lib64go),yes) + $(lib_binaries) += lib64go +endif +ifeq ($(with_lib32go),yes) + $(lib_binaries) += lib32go +endif +ifeq ($(with_libn32go),yes) + $(lib_binaries) += libn32go +endif +ifeq ($(with_libx32go),yes) + $(lib_binaries) += libx32go +endif + +ifneq ($(DEB_STAGE),rtlibs) + arch_binaries := $(arch_binaries) gccgo + ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32))) + arch_binaries := $(arch_binaries) gccgo-multi + endif + ifneq ($(DEB_CROSS),yes) + ifneq ($(GFDL_INVARIANT_FREE),yes) + indep_binaries := $(indep_binaries) go-doc + endif + endif +endif + +p_go = gccgo$(pkg_ver)$(cross_bin_arch) +p_go_m = gccgo$(pkg_ver)-multilib$(cross_bin_arch) +p_god = gccgo$(pkg_ver)-doc +p_golib = libgo$(GO_SONAME)$(cross_lib_arch) + +d_go = debian/$(p_go) +d_go_m = debian/$(p_go_m) +d_god = debian/$(p_god) +d_golib = debian/$(p_golib) + +dirs_go = \ + $(docdir)/$(p_xbase)/go \ + $(PF)/bin \ + $(gcc_lexec_dir) \ + $(gcc_lib_dir) \ + $(PF)/include \ + $(PF)/share/man/man1 +files_go = \ + $(PF)/bin/$(cmd_prefix)gccgo$(pkg_ver) \ + $(gcc_lexec_dir)/go1 + +ifneq (,$(filter $(build_type), build-native cross-build-native)) + files_go += \ + $(PF)/bin/$(cmd_prefix){go,gofmt}$(pkg_ver) \ + $(gcc_lexec_dir)/cgo \ + $(PF)/share/man/man1/$(cmd_prefix){go,gofmt}$(pkg_ver).1 +endif + +ifneq ($(GFDL_INVARIANT_FREE),yes) + files_go += \ + $(PF)/share/man/man1/$(cmd_prefix)gccgo$(pkg_ver).1 +endif + +ifeq ($(with_standalone_go),yes) + + dirs_go += \ + $(gcc_lib_dir)/include \ + $(PF)/share/man/man1 + +# XXX: what about triarch mapping? + files_go += \ + $(PF)/bin/$(cmd_prefix){cpp,gcc,gcov,gcov-tool}$(pkg_ver) \ + $(PF)/bin/$(cmd_prefix)gcc-{ar,ranlib,nm}$(pkg_ver) \ + $(PF)/share/man/man1/$(cmd_prefix)gcc-{ar,nm,ranlib}$(pkg_ver).1 \ + $(gcc_lexec_dir)/{cc1,collect2,lto1,lto-wrapper} \ + $(gcc_lexec_dir)/liblto_plugin.so{,.0,.0.0.0} \ + $(gcc_lib_dir)/{libgcc*,libgcov.a,*.o} \ + $(header_files) \ + $(shell test -e $(d)/$(gcc_lib_dir)/SYSCALLS.c.X \ + && echo $(gcc_lib_dir)/SYSCALLS.c.X) + + ifeq ($(with_cc1),yes) + files_go += \ + $(gcc_lib_dir)/plugin/libcc1plugin.so{,.0,.0.0.0} + endif + + ifneq ($(GFDL_INVARIANT_FREE),yes) + files_go += \ + $(PF)/share/man/man1/$(cmd_prefix){cpp,gcc,gcov,gcov-tool}$(pkg_ver).1 + endif + + ifeq ($(biarch64),yes) + files_go += $(gcc_lib_dir)/$(biarch64subdir)/{libgcc*,libgcov.a,*.o} + endif + ifeq ($(biarch32),yes) + files_go += $(gcc_lib_dir)/$(biarch32subdir)/{libgcc*,*.o} + endif + ifeq ($(biarchn32),yes) + files_go += $(gcc_lib_dir)/$(biarchn32subdir)/{libgcc*,libgcov.a,*.o} + endif + ifeq ($(biarchx32),yes) + files_go += $(gcc_lib_dir)/$(biarchx32subdir)/{libgcc*,libgcov.a,*.o} + endif +endif + +# ---------------------------------------------------------------------- +define __do_gccgo + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) \ + $(usr_lib$(2))/libgo.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + mkdir -p debian/$(p_l)/usr/share/lintian/overrides + echo '$(p_l) binary: unstripped-binary-or-object' \ + >> debian/$(p_l)/usr/share/lintian/overrides/$(p_l) + + : # don't strip: https://gcc.gnu.org/ml/gcc-patches/2015-02/msg01722.html + : # dh_strip -p$(p_l) --dbg-package=$(p_d) + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search, \ + $(subst go$(GO_SONAME),gcc$(GCC_SONAME),$(p_l)) \ + $(subst go$(GO_SONAME),atomic$(ATOMIC_SONAME),$(p_l)) \ + ,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +do_gccgo = $(call __do_gccgo,lib$(1)go$(GO_SONAME),$(1)) + +define install_gccgo_lib + mv $(d)/$(usr_lib$(3))/$(1).a debian/$(4)/$(gcc_lib_dir$(3))/ + if [ -f $(d)/$(usr_lib$(3))/$(1)libbegin.a ]; then \ + mv $(d)/$(usr_lib$(3))/$(1)libbegin.a debian/$(4)/$(gcc_lib_dir$(3))/; \ + fi + rm -f $(d)/$(usr_lib$(3))/$(1)*.{la,so} + dh_link -p$(4) \ + /$(usr_lib$(3))/$(1).so.$(2) /$(gcc_lib_dir$(3))/$(1).so +endef + +# __do_gccgo_libgcc(flavour,package,todir,fromdir) +define __do_gccgo_libgcc + $(if $(findstring gccgo,$(PKGSOURCE)), + : # libgcc_s.so may be a linker script on some architectures + set -e; \ + if [ -h $(4)/libgcc_s.so ]; then \ + rm -f $(4)/libgcc_s.so; \ + dh_link -p$(2) /$(libgcc_dir$(1))/libgcc_s.so.$(GCC_SONAME) \ + $(3)/libgcc_s.so; \ + else \ + mv $(4)/libgcc_s.so $(d)/$(3)/libgcc_s.so; \ + dh_link -p$(2) /$(libgcc_dir$(1))/libgcc_s.so.$(GCC_SONAME) \ + $(3)/libgcc_s.so.$(GCC_SONAME); \ + fi; \ + $(if $(1), dh_link -p$(2) /$(3)/libgcc_s.so \ + $(gcc_lib_dir)/libgcc_s_$(1).so;) + ) +endef + +define do_go_dev + dh_installdirs -p$(2) $(gcc_lib_dir$(1)) $(usr_lib$(1)) + $(dh_compat2) dh_movefiles -p$(2) \ + $(gcc_lib_dir$(1))/{libgobegin,libgolibbegin}.a \ + $(usr_lib$(1))/go + $(if $(filter yes, $(with_standalone_go)), \ + $(call install_gccgo_lib,libgomp,$(GOMP_SONAME),$(1),$(2))) + $(call install_gccgo_lib,libgo,$(GO_SONAME),$(1),$(2)) + $(call __do_gccgo_libgcc,$(1),$(2),$(gcc_lib_dir$(1)),$(d)/$(usr_lib$(1))) +endef +# ---------------------------------------------------------------------- +$(binary_stamp)-libgo: $(install_stamp) + $(call do_gccgo,) + +$(binary_stamp)-lib64go: $(install_stamp) + $(call do_gccgo,64) + +$(binary_stamp)-lib32go: $(install_stamp) + $(call do_gccgo,32) + +$(binary_stamp)-libn32go: $(install_stamp) + $(call do_gccgo,n32) + +$(binary_stamp)-libx32go: $(install_stamp) + $(call do_gccgo,x32) + +# ---------------------------------------------------------------------- +$(binary_stamp)-gccgo: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_go) + dh_installdirs -p$(p_go) $(dirs_go) + + mv $(d)/$(usr_lib)/{libgobegin,libgolibbegin}.a \ + $(d)/$(gcc_lib_dir)/ + if [ -f $(d)/$(usr_lib64)/libgobegin.a ]; then \ + mv $(d)/$(usr_lib64)/{libgobegin,libgolibbegin}.a \ + $(d)/$(gcc_lib_dir)/64/; \ + fi + if [ -f $(d)/$(usr_lib32)/libgobegin.a ]; then \ + mv $(d)/$(usr_lib32)/{libgobegin,libgolibbegin}.a \ + $(d)/$(gcc_lib_dir)/32/; \ + fi + if [ -f $(d)/$(usr_libn32)/libgobegin.a ]; then \ + mv $(d)/$(usr_libn32)/{libgobegin,libgolibbegin}.a \ + $(d)/$(gcc_lib_dir)/n32/; \ + fi + if [ -f $(d)/$(usr_libx32)/libgobegin.a ]; then \ + mv $(d)/$(usr_libx32)/{libgobegin,libgolibbegin}.a \ + $(d)/$(gcc_lib_dir)/x32/; \ + fi + + $(call do_go_dev,,$(p_go)) + + $(dh_compat2) dh_movefiles -p$(p_go) $(files_go) + +ifneq (,$(findstring gccgo,$(PKGSOURCE))) + rm -rf $(d_go)/$(gcc_lib_dir)/include/cilk + rm -rf $(d_go)/$(gcc_lib_dir)/include/openacc.h +endif + +ifeq ($(unprefixed_names),yes) + ln -sf $(cmd_prefix)gccgo$(pkg_ver) \ + $(d_go)/$(PF)/bin/gccgo$(pkg_ver) + ln -sf $(cmd_prefix)go$(pkg_ver) \ + $(d_go)/$(PF)/bin/go$(pkg_ver) + ln -sf $(cmd_prefix)gofmt$(pkg_ver) \ + $(d_go)/$(PF)/bin/gofmt$(pkg_ver) + ifneq ($(GFDL_INVARIANT_FREE),yes) + ln -sf $(cmd_prefix)gccgo$(pkg_ver).1 \ + $(d_go)/$(PF)/share/man/man1/gccgo$(pkg_ver).1 + endif + ln -sf $(cmd_prefix)go$(pkg_ver).1 \ + $(d_go)/$(PF)/share/man/man1/go$(pkg_ver).1 + ln -sf $(cmd_prefix)gofmt$(pkg_ver).1 \ + $(d_go)/$(PF)/share/man/man1/gofmt$(pkg_ver).1 +endif + +ifeq ($(with_standalone_go),yes) + ifeq ($(unprefixed_names),yes) + for i in gcc gcov gcov-tool gcc-ar gcc-nm gcc-ranlib; do \ + ln -sf $(cmd_prefix)$$i$(pkg_ver) \ + $(d_go)/$(PF)/bin/$$i$(pkg_ver); \ + done + ifneq ($(GFDL_INVARIANT_FREE),yes) + for i in gcc gcov gcov-tool gcc-ar gcc-nm gcc-ranlib; do \ + ln -sf $(cmd_prefix)gcc$(pkg_ver).1 \ + $(d_go)/$(PF)/share/man/man1/$$i$(pkg_ver).1; \ + done + endif + endif + ifeq ($(with_gomp),yes) + mv $(d)/$(usr_lib)/libgomp*.spec $(d_go)/$(gcc_lib_dir)/ + endif + ifeq ($(with_cc1),yes) + rm -f $(d)/$(usr_lib)/libcc1.so + dh_link -p$(p_go) \ + /$(usr_lib)/libcc1.so.$(CC1_SONAME) /$(gcc_lib_dir)/libcc1.so + endif +endif + + mkdir -p $(d_go)/usr/share/lintian/overrides + echo '$(p_go) binary: unstripped-binary-or-object' \ + > $(d_go)/usr/share/lintian/overrides/$(p_go) + echo '$(p_go) binary: hardening-no-pie' \ + > $(d_go)/usr/share/lintian/overrides/$(p_go) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_go) binary: binary-without-manpage' \ + >> $(d_go)/usr/share/lintian/overrides/$(p_go) +endif + + debian/dh_doclink -p$(p_go) $(p_xbase) + +# cp -p $(srcdir)/gcc/go/ChangeLog \ +# $(d_go)/$(docdir)/$(p_base)/go/changelog + debian/dh_rmemptydirs -p$(p_go) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_go)/$(gcc_lexec_dir)/go1 +endif + dh_strip -v -p$(p_go) -X/cgo -X/go$(pkg_ver) -X/gofmt$(pkg_ver) \ + $(if $(unstripped_exe),-X/go1) + dh_shlibdeps -p$(p_go) + echo $(p_go) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-gccgo-multi: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_go_m) + dh_installdirs -p$(p_go_m) $(docdir) + + $(foreach flavour,$(flavours), \ + $(call do_go_dev,$(flavour),$(p_go_m))) + + debian/dh_doclink -p$(p_go_m) $(p_xbase) + debian/dh_rmemptydirs -p$(p_go_m) + dh_strip -p$(p_go_m) + dh_shlibdeps -p$(p_go_m) + echo $(p_go_m) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-go-doc: $(build_html_stamp) $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_god) + dh_installdirs -p$(p_god) \ + $(docdir)/$(p_xbase)/go \ + $(PF)/share/info + $(dh_compat2) dh_movefiles -p$(p_god) \ + $(PF)/share/info/gccgo* + + debian/dh_doclink -p$(p_god) $(p_xbase) + dh_installdocs -p$(p_god) + rm -f $(d_god)/$(docdir)/$(p_xbase)/copyright + cp -p html/gccgo.html $(d_god)/$(docdir)/$(p_xbase)/go/ + echo $(p_god) >> debian/indep_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-hppa64.mk +++ gcc-7-7.5.0/debian/rules.d/binary-hppa64.mk @@ -0,0 +1,39 @@ +arch_binaries := $(arch_binaries) hppa64 + +# ---------------------------------------------------------------------- +$(binary_stamp)-hppa64: $(install_hppa64_stamp) + dh_testdir + dh_testroot + +# dh_installdirs -p$(p_hppa64) + + rm -f $(d_hppa64)/usr/lib/libiberty.a + -find $(d_hppa64) ! -type d + + : # provide as and ld links + dh_link -p $(p_hppa64) \ + /usr/bin/hppa64-linux-gnu-as \ + /$(hppa64libexecdir)/gcc/hppa64-linux-gnu/$(versiondir)/as \ + /usr/bin/hppa64-linux-gnu-ld \ + /$(hppa64libexecdir)/gcc/hppa64-linux-gnu/$(versiondir)/ld + + debian/dh_doclink -p$(p_hppa64) $(p_xbase) + debian/dh_rmemptydirs -p$(p_hppa64) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_hppa64)/$(hppa64libexecdir)/gcc/hppa64-linux-gnu/$(versiondir)/cc1 \ + $(d_hppa64)/$(hppa64libexecdir)/gcc/hppa64-linux-gnu/$(versiondir)/collect2 \ + $(d_hppa64)/$(hppa64libexecdir)/gcc/hppa64-linux-gnu/$(versiondir)/lto-wrapper \ + $(d_hppa64)/$(hppa64libexecdir)/gcc/hppa64-linux-gnu/$(versiondir)/lto1 +endif + dh_strip -p$(p_hppa64) -X.o -Xlibgcc.a -Xlibgcov.a + dh_shlibdeps -p$(p_hppa64) + + mkdir -p $(d_hppa64)/usr/share/lintian/overrides + cp -p debian/$(p_hppa64).overrides \ + $(d_hppa64)/usr/share/lintian/overrides/$(p_hppa64) + + echo $(p_hppa64) >> debian/arch_binaries + + touch $@ --- gcc-7-7.5.0.orig/debian/rules.d/binary-libasan.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libasan.mk @@ -0,0 +1,76 @@ +$(lib_binaries) += libasan +ifeq ($(with_lib64asan),yes) + $(lib_binaries) += lib64asan +endif +ifeq ($(with_lib32asan),yes) + $(lib_binaries) += lib32asan +endif +ifeq ($(with_libn32asan),yes) + $(lib_binaries) += libn32asan +endif +ifeq ($(with_libx32asan),yes) + $(lib_binaries) += libx32asan +endif +ifeq ($(with_libhfasan),yes) + $(lib_binaries) += libhfasan +endif +ifeq ($(with_libsfasan),yes) + $(lib_binaries) += libsfasan +endif + +define __do_asan + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) $(usr_lib$(2))/libasan.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + if [ -f debian/$(p_l).overrides ]; then \ + mkdir -p debian/$(p_l)/usr/share/lintian/overrides; \ + cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \ + fi + + dh_strip -p$(p_l) --dbg-package=$(p_d) + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(if $(ignshld),$(ignshld),-)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search, \ + $(subst asan$(ASAN_SONAME),gcc$(GCC_SONAME),$(p_l)) \ + $(subst asan$(ASAN_SONAME),stdc++$(CXX_SONAME),$(p_l)) \ + ,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# ---------------------------------------------------------------------- + +do_asan = $(call __do_asan,lib$(1)asan$(ASAN_SONAME),$(1)) + +$(binary_stamp)-libasan: $(install_stamp) + $(call do_asan,) + +$(binary_stamp)-lib64asan: $(install_stamp) + $(call do_asan,64) + +$(binary_stamp)-lib32asan: $(install_stamp) + $(call do_asan,32) + +$(binary_stamp)-libn32asan: $(install_stamp) + $(call do_asan,n32) + +$(binary_stamp)-libx32asan: $(install_stamp) + $(call do_asan,x32) + +$(binary_stamp)-libhfasan: $(install_dependencies) + $(call do_asan,hf) + +$(binary_stamp)-libsfasan: $(install_dependencies) + $(call do_asan,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libatomic.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libatomic.mk @@ -0,0 +1,68 @@ +$(lib_binaries) += libatomic +ifeq ($(with_lib64atomic),yes) + $(lib_binaries) += lib64atomic +endif +ifeq ($(with_lib32atomic),yes) + $(lib_binaries) += lib32atomic +endif +ifeq ($(with_libn32atomic),yes) + $(lib_binaries) += libn32atomic +endif +ifeq ($(with_libx32atomic),yes) + $(lib_binaries) += libx32atomic +endif +ifeq ($(with_libhfatomic),yes) + $(lib_binaries) += libhfatomic +endif +ifeq ($(with_libsfatomic),yes) + $(lib_binaries) += libsfatomic +endif + +define __do_atomic + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) $(usr_lib$(2))/libatomic.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + dh_strip -p$(p_l) --dbg-package=$(p_d) + ln -sf libatomic.symbols debian/$(p_l).symbols + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search,,$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# ---------------------------------------------------------------------- + +do_atomic = $(call __do_atomic,lib$(1)atomic$(ATOMIC_SONAME),$(1)) + +$(binary_stamp)-libatomic: $(install_stamp) + $(call do_atomic,) + +$(binary_stamp)-lib64atomic: $(install_stamp) + $(call do_atomic,64) + +$(binary_stamp)-lib32atomic: $(install_stamp) + $(call do_atomic,32) + +$(binary_stamp)-libn32atomic: $(install_stamp) + $(call do_atomic,n32) + +$(binary_stamp)-libx32atomic: $(install_stamp) + $(call do_atomic,x32) + +$(binary_stamp)-libhfatomic: $(install_dependencies) + $(call do_atomic,hf) + +$(binary_stamp)-libsfatomic: $(install_dependencies) + $(call do_atomic,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libcc1.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libcc1.mk @@ -0,0 +1,31 @@ +ifeq ($(with_libcc1),yes) + ifneq ($(DEB_CROSS),yes) + arch_binaries := $(arch_binaries) libcc1 + endif +endif + +p_cc1 = libcc1-$(CC1_SONAME) +d_cc1 = debian/$(p_cc1) + +# ---------------------------------------------------------------------- +$(binary_stamp)-libcc1: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_cc1) + dh_installdirs -p$(p_cc1) \ + $(docdir) \ + $(usr_lib) + $(dh_compat2) dh_movefiles -p$(p_cc1) \ + $(usr_lib)/libcc1.so.* + + debian/dh_doclink -p$(p_cc1) $(p_xbase) + debian/dh_rmemptydirs -p$(p_cc1) + + dh_strip -p$(p_cc1) + dh_makeshlibs -p$(p_cc1) + dh_shlibdeps -p$(p_cc1) + echo $(p_cc1) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libcilkrts.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libcilkrts.mk @@ -0,0 +1,77 @@ +$(lib_binaries) += libcilkrts +ifeq ($(with_lib64cilkrts),yes) + $(lib_binaries) += lib64cilkrts +endif +ifeq ($(with_lib32cilkrts),yes) + $(lib_binaries) += lib32cilkrts +endif +ifeq ($(with_libn32cilkrts),yes) + $(lib_binaries) += libn32cilkrts +endif +ifeq ($(with_libx32cilkrts),yes) + $(lib_binaries) += libx32cilkrts +endif +ifeq ($(with_libhfcilkrts),yes) + $(lib_binaries) += libhfcilkrts +endif +ifeq ($(with_libsfcilkrts),yes) + $(lib_binaries) += libsfcilkrts +endif + +define __do_cilkrts + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) $(usr_lib$(2))/libcilkrts.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + if [ -f debian/$(p_l).overrides ]; then \ + mkdir -p debian/$(p_l)/usr/share/lintian/overrides; \ + cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \ + fi + + dh_strip -p$(p_l) --dbg-package=$(p_d) + ln -sf libcilkrts.symbols debian/$(p_l).symbols + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search, \ + $(subst cilkrts$(CILKRTS_SONAME),gcc$(GCC_SONAME),$(p_l)) \ + $(subst cilkrts$(CILKRTS_SONAME),stdc++$(CXX_SONAME),$(p_l)) \ + ,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# ---------------------------------------------------------------------- + +do_cilkrts = $(call __do_cilkrts,lib$(1)cilkrts$(CILKRTS_SONAME),$(1)) + +$(binary_stamp)-libcilkrts: $(install_stamp) + $(call do_cilkrts,) + +$(binary_stamp)-lib64cilkrts: $(install_stamp) + $(call do_cilkrts,64) + +$(binary_stamp)-lib32cilkrts: $(install_stamp) + $(call do_cilkrts,32) + +$(binary_stamp)-libn32cilkrts: $(install_stamp) + $(call do_cilkrts,n32) + +$(binary_stamp)-libx32cilkrts: $(install_stamp) + $(call do_cilkrts,x32) + +$(binary_stamp)-libhfcilkrts: $(install_dependencies) + $(call do_cilkrts,hf) + +$(binary_stamp)-libsfcilkrts: $(install_dependencies) + $(call do_cilkrts,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libgcc.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libgcc.mk @@ -0,0 +1,385 @@ +ifeq ($(with_libgcc),yes) + $(lib_binaries) += libgcc +endif +ifeq ($(with_lib64gcc),yes) + $(lib_binaries) += lib64gcc +endif +ifeq ($(with_lib32gcc),yes) + $(lib_binaries) += lib32gcc +endif +ifeq ($(with_libn32gcc),yes) + $(lib_binaries) += libn32gcc +endif +ifeq ($(with_libx32gcc),yes) + $(lib_binaries) += libx32gcc +endif +ifeq ($(with_libhfgcc),yes) + $(lib_binaries) += libhfgcc +endif +ifeq ($(with_libsfgcc),yes) + $(lib_binaries) += libsfgcc +endif + +ifneq ($(DEB_STAGE),rtlibs) + ifeq ($(with_cdev),yes) + $(lib_binaries) += libgcc-dev + endif + ifeq ($(with_lib64gccdev),yes) + $(lib_binaries) += lib64gcc-dev + endif + ifeq ($(with_lib32gccdev),yes) + $(lib_binaries) += lib32gcc-dev + endif + ifeq ($(with_libn32gccdev),yes) + $(lib_binaries) += libn32gcc-dev + endif + ifeq ($(with_libx32gccdev),yes) + $(lib_binaries) += libx32gcc-dev + endif + ifeq ($(with_libhfgccdev),yes) + $(lib_binaries) += libhfgcc-dev + endif + ifeq ($(with_libsfgccdev),yes) + $(lib_binaries) += libsfgcc-dev + endif +endif + +header_files = \ + $(gcc_lib_dir)/include/std*.h \ + $(shell for h in \ + README features.h arm_fp16.h arm_neon.h arm_cmse.h loongson.h \ + {cpuid,decfloat,float,gcov,iso646,limits,mm3dnow,mm_malloc}.h \ + {ppu_intrinsics,paired,spu2vmx,vec_types,si2vmx}.h \ + {,a,b,e,i,n,p,s,t,w,x}mmintrin.h mmintrin-common.h \ + {abm,adx,avx,avx2,bmi,bmi2,f16c,fma,fma4,fxsr,ia32,}intrin.h \ + {lwp,lzcnt,popcnt,prfchw,rdseed,rtm,tbm,x86,xop,xsave{,opt},xtest,}intrin.h \ + {htm,htmxl,mwaitx,pku,sha,vec,sgx}intrin.h \ + avx512{bw,er,cd,dq,f,ifma,ifmavl,pf,vlbw,vbmi,vldq,vbmivl,vl}intrin.h \ + avx512{4fmaps,4vnniw,vpopcntdq}intrin.h \ + {clflushopt,clwb,clzero,pcommit,xsavec,xsaves}intrin.h \ + {arm_acle,unwind-arm-common,s390intrin}.h \ + msa.h \ + {cross-stdarg,syslimits,unwind,varargs}.h; \ + do \ + test -e $(d)/$(gcc_lib_dir)/include/$$h \ + && echo $(gcc_lib_dir)/include/$$h; \ + test -e $(d)/$(gcc_lib_dir)/include-fixed/$$h \ + && echo $(gcc_lib_dir)/include-fixed/$$h; \ + done) \ + $(shell for d in \ + asm bits cilk gnu linux sanitizer $(TARGET_ALIAS) \ + $(subst $(DEB_TARGET_GNU_CPU),$(biarch_cpu),$(TARGET_ALIAS)); \ + do \ + test -e $(d)/$(gcc_lib_dir)/include/$$d \ + && echo $(gcc_lib_dir)/include/$$d; \ + test -e $(d)/$(gcc_lib_dir)/include-fixed/$$d \ + && echo $(gcc_lib_dir)/include-fixed/$$d; \ + done) + +ifeq ($(with_libssp),yes) + header_files += $(gcc_lib_dir)/include/ssp +endif +ifeq ($(with_gomp),yes) + header_files += $(gcc_lib_dir)/include/{omp,openacc}.h +endif +ifeq ($(with_qmath),yes) + header_files += $(gcc_lib_dir)/include/quadmath{,_weak}.h +endif + +ifeq ($(DEB_TARGET_ARCH),ia64) + header_files += $(gcc_lib_dir)/include/ia64intrin.h +endif + +ifeq ($(DEB_TARGET_ARCH),m68k) + header_files += $(gcc_lib_dir)/include/math-68881.h +endif + +ifeq ($(DEB_TARGET_ARCH),$(findstring $(DEB_TARGET_ARCH),powerpc ppc64 ppc64el powerpcspe)) + header_files += $(gcc_lib_dir)/include/{altivec.h,ppc-asm.h,spe.h} +endif + +ifeq ($(DEB_TARGET_ARCH),tilegx) + header_files += $(gcc_lib_dir)/include/feedback.h +endif + +p_lgcc = libgcc$(GCC_SONAME)$(cross_lib_arch) +p_lgccdbg = libgcc$(GCC_SONAME)-dbg$(cross_lib_arch) +p_lgccdev = libgcc-$(BASE_VERSION)-dev$(cross_lib_arch) +d_lgcc = debian/$(p_lgcc) +d_lgccdbg = debian/$(p_lgccdbg) +d_lgccdev = debian/$(p_lgccdev) + +p_l32gcc = lib32gcc$(GCC_SONAME)$(cross_lib_arch) +p_l32gccdbg = lib32gcc$(GCC_SONAME)-dbg$(cross_lib_arch) +p_l32gccdev = lib32gcc-$(BASE_VERSION)-dev$(cross_lib_arch) +d_l32gcc = debian/$(p_l32gcc) +d_l32gccdbg = debian/$(p_l32gccdbg) +d_l32gccdev = debian/$(p_l32gccdev) + +p_l64gcc = lib64gcc$(GCC_SONAME)$(cross_lib_arch) +p_l64gccdbg = lib64gcc$(GCC_SONAME)-dbg$(cross_lib_arch) +p_l64gccdev = lib64gcc-$(BASE_VERSION)-dev$(cross_lib_arch) +d_l64gcc = debian/$(p_l64gcc) +d_l64gccdbg = debian/$(p_l64gccdbg) +d_l64gccdev = debian/$(p_l64gccdev) + +p_ln32gcc = libn32gcc$(GCC_SONAME)$(cross_lib_arch) +p_ln32gccdbg = libn32gcc$(GCC_SONAME)-dbg$(cross_lib_arch) +p_ln32gccdev = libn32gcc-$(BASE_VERSION)-dev$(cross_lib_arch) +d_ln32gcc = debian/$(p_ln32gcc) +d_ln32gccdbg = debian/$(p_ln32gccdbg) +d_ln32gccdev = debian/$(p_ln32gccdev) + +p_lx32gcc = libx32gcc$(GCC_SONAME)$(cross_lib_arch) +p_lx32gccdbg = libx32gcc$(GCC_SONAME)-dbg$(cross_lib_arch) +p_lx32gccdev = libx32gcc-$(BASE_VERSION)-dev$(cross_lib_arch) +d_lx32gcc = debian/$(p_lx32gcc) +d_lx32gccdbg = debian/$(p_lx32gccdbg) +d_lx32gccdev = debian/$(p_lx32gccdev) + +p_lhfgcc = libhfgcc$(GCC_SONAME)$(cross_lib_arch) +p_lhfgccdbg = libhfgcc$(GCC_SONAME)-dbg$(cross_lib_arch) +p_lhfgccdev = libhfgcc-$(BASE_VERSION)-dev$(cross_lib_arch) +d_lhfgcc = debian/$(p_lhfgcc) +d_lhfgccdbg = debian/$(p_lhfgccdbg) +d_lhfgccdev = debian/$(p_lhfgccdev) + +p_lsfgcc = libsfgcc$(GCC_SONAME)$(cross_lib_arch) +p_lsfgccdbg = libsfgcc$(GCC_SONAME)-dbg$(cross_lib_arch) +p_lsfgccdev = libsfgcc-$(BASE_VERSION)-dev$(cross_lib_arch) +d_lsfgcc = debian/$(p_lsfgcc) +d_lsfgccdbg = debian/$(p_lsfgccdbg) +d_lsfgccdev = debian/$(p_lsfgccdev) + +# __do_gcc_devels(flavour,package,todir,fromdir) +define __do_gcc_devels + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + test -n "$(2)" + rm -rf debian/$(2) + dh_installdirs -p$(2) $(docdir) #TODO + dh_installdirs -p$(2) $(3) + + $(call __do_gcc_devels2,$(1),$(2),$(3),$(4)) + + debian/dh_doclink -p$(2) $(p_lbase) + debian/dh_rmemptydirs -p$(2) + + dh_strip -p$(2) + $(cross_shlibdeps) dh_shlibdeps -p$(2) + $(call cross_mangle_substvars,$(2)) + echo $(2) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# __do_gcc_devels2(flavour,package,todir,fromdir) +define __do_gcc_devels2 +# stage1 builds static libgcc only + $(if $(filter $(DEB_STAGE),stage1),, + : # libgcc_s.so may be a linker script on some architectures + set -e; \ + if [ -h $(4)/libgcc_s.so ]; then \ + rm -f $(4)/libgcc_s.so; \ + dh_link -p$(2) /$(libgcc_dir$(1))/libgcc_s.so.$(GCC_SONAME) \ + /$(3)/libgcc_s.so; \ + else \ + mv $(4)/libgcc_s.so $(d)/$(3)/libgcc_s.so; \ + dh_link -p$(2) /$(libgcc_dir$(1))/libgcc_s.so.$(GCC_SONAME) \ + /$(3)/libgcc_s.so.$(GCC_SONAME); \ + fi; \ + $(if $(1), dh_link -p$(2) /$(3)/libgcc_s.so \ + /$(gcc_lib_dir)/libgcc_s_$(1).so;) + ) + $(dh_compat2) dh_movefiles -p$(2) \ + $(3)/{libgcc*,libgcov.a,*.o} \ + $(if $(1),,$(header_files)) # Only move headers for the "main" package + + : # libbacktrace not installed by default + $(if $(filter yes, $(with_backtrace)), + if [ -f $(buildlibdir)/$(1)/libbacktrace/.libs/libbacktrace.a ]; then \ + install -m644 $(buildlibdir)/$(1)/libbacktrace/.libs/libbacktrace.a \ + debian/$(2)/$(gcc_lib_dir)/$(1); \ + fi; \ + $(if $(1),, + if [ -f $(buildlibdir)/libbacktrace/backtrace-supported.h ]; then \ + install -m644 $(buildlibdir)/libbacktrace/backtrace-supported.h \ + debian/$(2)/$(gcc_lib_dir)/include/; \ + install -m644 $(srcdir)/libbacktrace/backtrace.h \ + debian/$(2)/$(gcc_lib_dir)/include/; \ + fi + )) + + : # If building a flavour, add a lintian override + $(if $(1), + #TODO: use a file instead of a hacky echo + # bu do we want to use one override file (in the source package) per + # flavour or not since they are essentially the same? + mkdir -p debian/$(2)/usr/share/lintian/overrides + echo "$(2) binary: binary-from-other-architecture" \ + >> debian/$(2)/usr/share/lintian/overrides/$(2) + ) + $(if $(filter yes, $(with_lib$(1)gmath)), + $(call install_gcc_lib,libgcc-math,$(GCC_SONAME),$(1),$(2)) + ) + $(if $(filter yes, $(with_libssp)), + $(call install_gcc_lib,libssp,$(SSP_SONAME),$(1),$(2)) + ) + $(if $(filter yes, $(with_ssp)), + mv $(4)/libssp_nonshared.a debian/$(2)/$(3)/; + ) + $(if $(filter yes, $(with_gomp)), + $(call install_gcc_lib,libgomp,$(GOMP_SONAME),$(1),$(2)) + ) + $(if $(filter yes, $(with_itm)), + $(call install_gcc_lib,libitm,$(ITM_SONAME),$(1),$(2)) + ) + $(if $(filter yes, $(with_atomic)), + $(call install_gcc_lib,libatomic,$(ATOMIC_SONAME),$(1),$(2)) + ) + $(if $(filter yes, $(with_asan)), + $(call install_gcc_lib,libasan,$(ASAN_SONAME),$(1),$(2)) + mv $(4)/libasan_preinit.o debian/$(2)/$(3)/; + ) + $(if $(1),,$(if $(filter yes, $(with_lsan)), + $(call install_gcc_lib,liblsan,$(LSAN_SONAME),$(1),$(2)) + )) + $(if $(1),,$(if $(filter yes, $(with_tsan)), + $(call install_gcc_lib,libtsan,$(TSAN_SONAME),$(1),$(2)) + )) + $(if $(filter yes, $(with_ubsan)), + $(call install_gcc_lib,libubsan,$(UBSAN_SONAME),$(1),$(2)) + ) + $(if $(filter yes, $(with_vtv)), + $(call install_gcc_lib,libvtv,$(VTV_SONAME),$(1),$(2)) + ) + $(if $(filter yes, $(with_cilkrts)), + $(call install_gcc_lib,libcilkrts,$(CILKRTS_SONAME),$(1),$(2)) + ) + $(if $(filter yes, $(with_mpx)), + $(if $(filter x32, $(1)),, + $(call install_gcc_lib,libmpxwrappers,$(MPX_SONAME),$(1),$(2)) + $(call install_gcc_lib,libmpx,$(MPX_SONAME),$(1),$(2)) + ) + ) + $(if $(filter yes, $(with_qmath)), + $(call install_gcc_lib,libquadmath,$(QUADMATH_SONAME),$(1),$(2)) + ) +endef + +# do_gcc_devels(flavour) +define do_gcc_devels + $(call __do_gcc_devels,$(1),$(p_l$(1)gccdev),$(gcc_lib_dir$(1)),$(d)/$(usr_lib$(1))) +endef + + +define __do_libgcc + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + + dh_installdirs -p$(p_l) \ + $(docdir)/$(p_l) \ + $(libgcc_dir$(2)) + + $(if $(filter yes,$(with_shared_libgcc)), + mv $(d)/$(usr_lib$(2))/libgcc_s.so.$(GCC_SONAME) \ + $(d_l)/$(libgcc_dir$(2))/. + ) + + $(if $(filter yes, $(with_internal_libunwind)), + mv $(d)/$(usr_lib$(2))/libunwind.* \ + $(d_l)/$(libgcc_dir$(2))/. + ) + + debian/dh_doclink -p$(p_l) $(if $(3),$(3),$(p_lbase)) + debian/dh_doclink -p$(p_d) $(if $(3),$(3),$(p_lbase)) + debian/dh_rmemptydirs -p$(p_l) + debian/dh_rmemptydirs -p$(p_d) + dh_strip -p$(p_l) --dbg-package=$(p_d) + + # see Debian #533843 for the __aeabi symbol handling; this construct is + # just to include the symbols for dpkg versions older than 1.15.3 which + # didn't allow bypassing the symbol blacklist + $(if $(filter yes,$(with_shared_libgcc)), + $(if $(findstring gcc1,$(p_l)), \ + ln -sf libgcc.symbols debian/$(p_l).symbols \ + ) + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) -p$(p_d) \ + -- -v$(DEB_LIBGCC_VERSION) -a$(call mlib_to_arch,$(2)) || echo XXXXXXXXXXXXXX ERROR $(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(if $(filter arm-linux-gnueabi%,$(DEB_TARGET_GNU_TYPE)), + if head -1 $(d_l)/DEBIAN/symbols 2>/dev/null | grep -q '^lib'; then \ + grep -q '^ __aeabi' $(d_l)/DEBIAN/symbols \ + || cat debian/libgcc.symbols.aeabi \ + >> $(d_l)/DEBIAN/symbols; \ + fi + ) + ) + + $(if $(DEB_STAGE),, + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search,,$(2)) + ) + $(call cross_mangle_substvars,$(p_l)) + + $(if $(2),, # only for native + mkdir -p $(d_l)/usr/share/lintian/overrides + echo '$(p_l): package-name-doesnt-match-sonames' \ + > $(d_l)/usr/share/lintian/overrides/$(p_l) + ) + + echo $(p_l) $(p_d) >> debian/$(lib_binaries).epoch + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +do_libgcc = $(call __do_libgcc,lib$(1)gcc$(GCC_SONAME),$(1),$(2)) +# ---------------------------------------------------------------------- + +$(binary_stamp)-libgcc: $(install_dependencies) + $(call do_libgcc,,) + +$(binary_stamp)-lib64gcc: $(install_dependencies) + $(call do_libgcc,64,) + +$(binary_stamp)-lib32gcc: $(install_dependencies) + $(call do_libgcc,32,) + +$(binary_stamp)-libn32gcc: $(install_dependencies) + $(call do_libgcc,n32,) + +$(binary_stamp)-libx32gcc: $(install_dependencies) + $(call do_libgcc,x32,) + +$(binary_stamp)-libhfgcc: $(install_dependencies) + $(call do_libgcc,hf) + +$(binary_stamp)-libsfgcc: $(install_dependencies) + $(call do_libgcc,sf) + +$(binary_stamp)-libgcc-dev: $(install_dependencies) + $(call do_gcc_devels,) + +$(binary_stamp)-lib64gcc-dev: $(install_dependencies) + $(call do_gcc_devels,64) + +$(binary_stamp)-lib32gcc-dev: $(install_dependencies) + $(call do_gcc_devels,32) + +$(binary_stamp)-libn32gcc-dev: $(install_dependencies) + $(call do_gcc_devels,n32) + +$(binary_stamp)-libx32gcc-dev: $(install_dependencies) + $(call do_gcc_devels,x32) + +$(binary_stamp)-libhfgcc-dev: $(install_dependencies) + $(call do_gcc_devels,hf) + +$(binary_stamp)-libsfgcc-dev: $(install_dependencies) + $(call do_gcc_devels,sf) + --- gcc-7-7.5.0.orig/debian/rules.d/binary-libgccjit.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libgccjit.mk @@ -0,0 +1,89 @@ +ifeq ($(with_libgccjit),yes) + $(lib_binaries) += libgccjit +endif + +$(lib_binaries) += libgccjitdev + +ifneq ($(DEB_CROSS),yes) + indep_binaries := $(indep_binaries) libgccjitdoc +endif + +p_jitlib = libgccjit$(GCCJIT_SONAME) +p_jitdbg = libgccjit$(GCCJIT_SONAME)-dbg +p_jitdev = libgccjit$(pkg_ver)-dev +p_jitdoc = libgccjit$(pkg_ver)-doc + +d_jitlib = debian/$(p_jitlib) +d_jitdev = debian/$(p_jitdev) +d_jitdbg = debian/$(p_jitdbg) +d_jitdoc = debian/$(p_jitdoc) + +$(binary_stamp)-libgccjit: $(install_jit_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_jitlib) $(d_jitdbg) + dh_installdirs -p$(p_jitlib) \ + $(usr_lib) + dh_installdirs -p$(p_jitdbg) + + $(dh_compat2) dh_movefiles -p$(p_jitlib) \ + $(usr_lib)/libgccjit.so.* + rm -f $(d)/$(usr_lib)/libgccjit.so + + debian/dh_doclink -p$(p_jitlib) $(p_base) + debian/dh_doclink -p$(p_jitdbg) $(p_base) + + dh_strip -p$(p_jitlib) --dbg-package=$(p_jitdbg) + $(cross_makeshlibs) dh_makeshlibs -p$(p_jitlib) + $(call cross_mangle_shlibs,$(p_jitlib)) + $(ignshld)$(cross_shlibdeps) dh_shlibdeps -p$(p_jitlib) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_jitlib)) + echo $(p_jitlib) $(p_jitdbg) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + touch $@ + +$(binary_stamp)-libgccjitdev: $(install_jit_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_jitdev) + dh_installdirs -p$(p_jitdev) \ + $(usr_lib) \ + $(gcc_lib_dir)/include + + rm -f $(d)/$(usr_lib)/libgccjit.so + + $(dh_compat2) dh_movefiles -p$(p_jitdev) \ + $(gcc_lib_dir)/include/libgccjit*.h + dh_link -p$(p_jitdev) \ + $(usr_lib)/libgccjit.so.$(GCCJIT_SONAME) $(gcc_lib_dir)/libgccjit.so + + debian/dh_doclink -p$(p_jitdev) $(p_base) + + echo $(p_jitdev) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + touch $@ + +$(binary_stamp)-libgccjitdoc: $(install_jit_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_jitdoc) + dh_installdirs -p$(p_jitdoc) \ + $(PF)/share/info + + $(dh_compat2) dh_movefiles -p$(p_jitdoc) \ + $(PF)/share/info/libgccjit* + + debian/dh_doclink -p$(p_jitdoc) $(p_base) + echo $(p_jitdoc) >> debian/indep_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + touch $@ --- gcc-7-7.5.0.orig/debian/rules.d/binary-libgomp.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libgomp.mk @@ -0,0 +1,68 @@ +$(lib_binaries) += libgomp +ifeq ($(with_lib64gomp),yes) + $(lib_binaries) += lib64gomp +endif +ifeq ($(with_lib32gomp),yes) + $(lib_binaries) += lib32gomp +endif +ifeq ($(with_libn32gomp),yes) + $(lib_binaries) += libn32gomp +endif +ifeq ($(with_libx32gomp),yes) + $(lib_binaries) += libx32gomp +endif +ifeq ($(with_libhfgomp),yes) + $(lib_binaries) += libhfgomp +endif +ifeq ($(with_libsfgomp),yes) + $(lib_binaries) += libsfgomp +endif + +define __do_gomp + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) $(usr_lib$(2))/libgomp.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + dh_strip -p$(p_l) --dbg-package=$(p_d) + ln -sf libgomp.symbols debian/$(p_l).symbols + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search,$(subst gomp$(GOMP_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# ---------------------------------------------------------------------- + +do_gomp = $(call __do_gomp,lib$(1)gomp$(GOMP_SONAME),$(1)) + +$(binary_stamp)-libgomp: $(install_stamp) + $(call do_gomp,) + +$(binary_stamp)-lib64gomp: $(install_stamp) + $(call do_gomp,64) + +$(binary_stamp)-lib32gomp: $(install_stamp) + $(call do_gomp,32) + +$(binary_stamp)-libn32gomp: $(install_stamp) + $(call do_gomp,n32) + +$(binary_stamp)-libx32gomp: $(install_stamp) + $(call do_gomp,x32) + +$(binary_stamp)-libhfgomp: $(install_dependencies) + $(call do_gomp,hf) + +$(binary_stamp)-libsfgomp: $(install_dependencies) + $(call do_gomp,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libhsail.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libhsail.mk @@ -0,0 +1,133 @@ +ifeq ($(with_libhsailrt),yes) + $(lib_binaries) += libhsail +endif +ifeq ($(with_brigdev),yes) + $(lib_binaries) += libhsail-dev +endif +#ifeq ($(with_lib64hsailrt),yes) +# $(lib_binaries) += lib64hsail +#endif +#ifeq ($(with_lib64hsailrtdev),yes) +# $(lib_binaries) += lib64hsail-dev +#endif +#ifeq ($(with_lib32hsailrt),yes) +# $(lib_binaries) += lib32hsail +#endif +#ifeq ($(with_lib32hsailrtdev),yes) +# $(lib_binaries) += lib32hsail-dev +#endif +#ifeq ($(with_libn32hsailrt),yes) +# $(lib_binaries) += libn32hsail +#endif +#ifeq ($(with_libn32hsailrtdev),yes) +# $(lib_binaries) += libn32hsail-dev +#endif +#ifeq ($(with_libx32hsailrt),yes) +# $(lib_binaries) += libx32hsail +#endif +#ifeq ($(with_libx32hsailrtdev),yes) +# $(lib_binaries) += libx32hsail-dev +#endif +#ifeq ($(with_libhfhsailrt),yes) +# $(lib_binaries) += libhfhsail +#endif +#ifeq ($(with_libhfhsailrtdev),yes) +# $(lib_binaries) += libhfhsail-dev +#endif +#ifeq ($(with_libsfhsailrt),yes) +# $(lib_binaries) += libsfhsail +#endif +#ifeq ($(with_libsfhsailrt-dev),yes) +# $(lib_binaries) += libsfhsail-dev +#endif + +define __do_hsail + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) $(usr_lib$(2))/libhsail-rt.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + dh_strip -p$(p_l) --dbg-package=$(p_d) + ln -sf libhsail-rt.symbols debian/$(p_l).symbols + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search,$(subst hsail-rt$(HSAIL_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +define __do_hsail_dev + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) + dh_installdirs -p$(p_l) \ + $(gcc_lib_dir$(2)) +# $(dh_compat2) dh_movefiles -p$(p_l) + + $(call install_gcc_lib,libhsail-rt,$(HSAIL_SONAME),$(2),$(p_l)) + + debian/dh_doclink -p$(p_l) $(p_lbase) + echo $(p_l) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# ---------------------------------------------------------------------- + +do_hsail = $(call __do_hsail,lib$(1)hsail-rt$(HSAIL_SONAME),$(1)) +do_hsail_dev = $(call __do_hsail_dev,lib$(1)hsail-rt-$(BASE_VERSION)-dev,$(1)) + +$(binary_stamp)-libhsail: $(install_stamp) + @echo XXXXXXXXXXXX XX $(HSAIL_SONAME) + $(call do_hsail,) + +$(binary_stamp)-lib64hsail: $(install_stamp) + $(call do_hsail,64) + +$(binary_stamp)-lib32hsail: $(install_stamp) + $(call do_hsail,32) + +$(binary_stamp)-libn32hsail: $(install_stamp) + $(call do_hsail,n32) + +$(binary_stamp)-libx32hsail: $(install_stamp) + $(call do_hsail,x32) + +$(binary_stamp)-libhfhsail: $(install_dependencies) + $(call do_hsail,hf) + +$(binary_stamp)-libsfhsail: $(install_dependencies) + $(call do_hsail,sf) + + +$(binary_stamp)-libhsail-dev: $(install_stamp) + $(call do_hsail_dev,) + +$(binary_stamp)-lib64hsail-dev: $(install_stamp) + $(call do_hsail_dev,64) + +$(binary_stamp)-lib32hsail-dev: $(install_stamp) + $(call do_hsail_dev,32) + +$(binary_stamp)-libx32hsail-dev: $(install_stamp) + $(call do_hsail_dev,x32) + +$(binary_stamp)-libn32hsail-dev: $(install_stamp) + $(call do_hsail_dev,n32) + +$(binary_stamp)-libhfhsail-dev: $(install_stamp) + $(call do_hsail_dev,hf) + +$(binary_stamp)-libsfhsail-dev: $(install_stamp) + $(call do_hsail_dev,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libitm.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libitm.mk @@ -0,0 +1,68 @@ +$(lib_binaries) += libitm +ifeq ($(with_lib64itm),yes) + $(lib_binaries) += lib64itm +endif +ifeq ($(with_lib32itm),yes) + $(lib_binaries) += lib32itm +endif +ifeq ($(with_libn32itm),yes) + $(lib_binaries) += libn32itm +endif +ifeq ($(with_libx32itm),yes) + $(lib_binaries) += libx32itm +endif +ifeq ($(with_libhfitm),yes) + $(lib_binaries) += libhfitm +endif +ifeq ($(with_libsfitm),yes) + $(lib_binaries) += libsfitm +endif + +define __do_itm + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) $(usr_lib$(2))/libitm.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + dh_strip -p$(p_l) --dbg-package=$(p_d) + ln -sf libitm.symbols debian/$(p_l).symbols + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search,,$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# ---------------------------------------------------------------------- + +do_itm = $(call __do_itm,lib$(1)itm$(ITM_SONAME),$(1)) + +$(binary_stamp)-libitm: $(install_stamp) + $(call do_itm,) + +$(binary_stamp)-lib64itm: $(install_stamp) + $(call do_itm,64) + +$(binary_stamp)-lib32itm: $(install_stamp) + $(call do_itm,32) + +$(binary_stamp)-libn32itm: $(install_stamp) + $(call do_itm,n32) + +$(binary_stamp)-libx32itm: $(install_stamp) + $(call do_itm,x32) + +$(binary_stamp)-libhfitm: $(install_dependencies) + $(call do_itm,hf) + +$(binary_stamp)-libsfitm: $(install_dependencies) + $(call do_itm,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-liblsan.mk +++ gcc-7-7.5.0/debian/rules.d/binary-liblsan.mk @@ -0,0 +1,76 @@ +$(lib_binaries) += liblsan +ifeq ($(with_lib64lsan),yes) + $(lib_binaries) += lib64lsan +endif +ifeq ($(with_lib32lsan),yes) + $(lib_binaries) += lib32lsan +endif +ifeq ($(with_libn32lsan),yes) + $(lib_binaries) += libn32lsan +endif +ifeq ($(with_libx32lsan),yes) + $(lib_binaries) += libx32lsan +endif +ifeq ($(with_libhflsan),yes) + $(lib_binaries) += libhflsan +endif +ifeq ($(with_libsflsan),yes) + $(lib_binaries) += libsflsan +endif + +define __do_lsan + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) $(usr_lib$(2))/liblsan.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + if [ -f debian/$(p_l).overrides ]; then \ + mkdir -p debian/$(p_l)/usr/share/lintian/overrides; \ + cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \ + fi + + dh_strip -p$(p_l) --dbg-package=$(p_d) + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search, \ + $(subst lsan$(LSAN_SONAME),gcc$(GCC_SONAME),$(p_l)) \ + $(subst lsan$(LSAN_SONAME),stdc++$(CXX_SONAME),$(p_l)) \ + ,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# ---------------------------------------------------------------------- + +do_lsan = $(call __do_lsan,lib$(1)lsan$(LSAN_SONAME),$(1)) + +$(binary_stamp)-liblsan: $(install_stamp) + $(call do_lsan,) + +$(binary_stamp)-lib64lsan: $(install_stamp) + $(call do_lsan,64) + +$(binary_stamp)-lib32lsan: $(install_stamp) + $(call do_lsan,32) + +$(binary_stamp)-libn32lsan: $(install_stamp) + $(call do_lsan,n32) + +$(binary_stamp)-libx32lsan: $(install_stamp) + $(call do_lsan,x32) + +$(binary_stamp)-libhflsan: $(install_dependencies) + $(call do_lsan,hf) + +$(binary_stamp)-libsflsan: $(install_dependencies) + $(call do_lsan,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libmpx.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libmpx.mk @@ -0,0 +1,78 @@ +$(lib_binaries) += libmpx +ifeq ($(with_lib64mpx),yes) + $(lib_binaries) += lib64mpx +endif +ifeq ($(with_lib32mpx),yes) + $(lib_binaries) += lib32mpx +endif +ifeq ($(with_libn32mpx),yes) + $(lib_binaries) += libn32mpx +endif +ifeq ($(with_libx32mpx),yes) + $(lib_binaries) += libx32mpx +endif +ifeq ($(with_libhfmpx),yes) + $(lib_binaries) += libhfmpx +endif +ifeq ($(with_libsfmpx),yes) + $(lib_binaries) += libsfmpx +endif + +define __do_mpx + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) \ + $(usr_lib$(2))/libmpx.so.* \ + $(usr_lib$(2))/libmpxwrappers.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + if [ -f debian/$(p_l).overrides ]; then \ + mkdir -p debian/$(p_l)/usr/share/lintian/overrides; \ + cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \ + fi + + dh_strip -p$(p_l) --dbg-package=$(p_d) + ln -sf libmpx.symbols debian/$(p_l).symbols + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search, \ + $(subst mpx$(MPX_SONAME),gcc$(GCC_SONAME),$(p_l)) \ + ,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# ---------------------------------------------------------------------- + +do_mpx = $(call __do_mpx,lib$(1)mpx$(MPX_SONAME),$(1)) + +$(binary_stamp)-libmpx: $(install_stamp) + $(call do_mpx,) + +$(binary_stamp)-lib64mpx: $(install_stamp) + $(call do_mpx,64) + +$(binary_stamp)-lib32mpx: $(install_stamp) + $(call do_mpx,32) + +$(binary_stamp)-libn32mpx: $(install_stamp) + $(call do_mpx,n32) + +$(binary_stamp)-libx32mpx: $(install_stamp) + $(call do_mpx,x32) + +$(binary_stamp)-libhfmpx: $(install_dependencies) + $(call do_mpx,hf) + +$(binary_stamp)-libsfmpx: $(install_dependencies) + $(call do_mpx,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libobjc.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libobjc.mk @@ -0,0 +1,161 @@ +ifeq ($(with_libobjc),yes) + $(lib_binaries) += libobjc +endif +ifeq ($(with_objcdev),yes) + $(lib_binaries) += libobjc-dev +endif +ifeq ($(with_lib64objc),yes) + $(lib_binaries) += lib64objc +endif +ifeq ($(with_lib64objcdev),yes) + $(lib_binaries) += lib64objc-dev +endif +ifeq ($(with_lib32objc),yes) + $(lib_binaries) += lib32objc +endif +ifeq ($(with_lib32objcdev),yes) + $(lib_binaries) += lib32objc-dev +endif +ifeq ($(with_libn32objc),yes) + $(lib_binaries) += libn32objc +endif +ifeq ($(with_libn32objcdev),yes) + $(lib_binaries) += libn32objc-dev +endif +ifeq ($(with_libx32objc),yes) + $(lib_binaries) += libx32objc +endif +ifeq ($(with_libx32objcdev),yes) + $(lib_binaries) += libx32objc-dev +endif +ifeq ($(with_libhfobjc),yes) + $(lib_binaries) += libhfobjc +endif +ifeq ($(with_libhfobjcdev),yes) + $(lib_binaries) += libhfobjc-dev +endif +ifeq ($(with_libsfobjc),yes) + $(lib_binaries) += libsfobjc +endif +ifeq ($(with_libsfobjcdev),yes) + $(lib_binaries) += libsfobjc-dev +endif + +files_lobjcdev= \ + $(gcc_lib_dir)/include/objc + +files_lobjc = \ + $(usr_lib$(2))/libobjc.so.* +ifeq ($(with_objc_gc),yes) + files_lobjc += \ + $(usr_lib$(2))/libobjc_gc.so.* +endif + +define __do_libobjc + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) \ + $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) \ + $(files_lobjc) + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + dh_strip -p$(p_l) --dbg-package=$(p_d) + rm -f debian/$(p_l).symbols + $(if $(2), + ln -sf libobjc.symbols debian/$(p_l).symbols , + fgrep -v libobjc.symbols.gc debian/libobjc.symbols > debian/$(p_l).symbols + ) + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) \ + -- -a$(call mlib_to_arch,$(2)) || echo XXXXXXXXXXXXXX ERROR $(p_l) + rm -f debian/$(p_l).symbols + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search,$(subst objc$(OBJC_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + + +define __do_libobjc_dev + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) + dh_installdirs -p$(p_l) \ + $(gcc_lib_dir$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) \ + $(files_lobjcdev) + + $(call install_gcc_lib,libobjc,$(OBJC_SONAME),$(2),$(p_l)) + $(if $(filter yes,$(with_objc_gc)), + $(if $(2),, + dh_link -p$(p_l) \ + /$(usr_lib$(2))/libobjc_gc.so.$(OBJC_SONAME) \ + /$(gcc_lib_dir$(2))/libobjc_gc.so + )) + + debian/dh_doclink -p$(p_l) $(p_lbase) + echo $(p_l) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + + + +# ---------------------------------------------------------------------- + +do_libobjc = $(call __do_libobjc,lib$(1)objc$(OBJC_SONAME),$(1)) +do_libobjc_dev = $(call __do_libobjc_dev,lib$(1)objc-$(BASE_VERSION)-dev,$(1)) + +$(binary_stamp)-libobjc: $(install_stamp) + $(call do_libobjc,) + +$(binary_stamp)-lib64objc: $(install_stamp) + $(call do_libobjc,64) + +$(binary_stamp)-lib32objc: $(install_stamp) + $(call do_libobjc,32) + +$(binary_stamp)-libn32objc: $(install_stamp) + $(call do_libobjc,n32) + +$(binary_stamp)-libx32objc: $(install_stamp) + $(call do_libobjc,x32) + +$(binary_stamp)-libhfobjc: $(install_stamp) + $(call do_libobjc,hf) + +$(binary_stamp)-libsfobjc: $(install_stamp) + $(call do_libobjc,sf) + + +$(binary_stamp)-libobjc-dev: $(install_stamp) + $(call do_libobjc_dev,) + +$(binary_stamp)-lib64objc-dev: $(install_stamp) + $(call do_libobjc_dev,64) + +$(binary_stamp)-lib32objc-dev: $(install_stamp) + $(call do_libobjc_dev,32) + +$(binary_stamp)-libx32objc-dev: $(install_stamp) + $(call do_libobjc_dev,x32) + +$(binary_stamp)-libn32objc-dev: $(install_stamp) + $(call do_libobjc_dev,n32) + +$(binary_stamp)-libhfobjc-dev: $(install_stamp) + $(call do_libobjc_dev,hf) + +$(binary_stamp)-libsfobjc-dev: $(install_stamp) + $(call do_libobjc_dev,sf) + --- gcc-7-7.5.0.orig/debian/rules.d/binary-libquadmath.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libquadmath.mk @@ -0,0 +1,69 @@ +$(lib_binaries) += libqmath +ifeq ($(with_lib64qmath),yes) + $(lib_binaries) += lib64qmath +endif +ifeq ($(with_lib32qmath),yes) + $(lib_binaries) += lib32qmath +endif +ifeq ($(with_libn32qmath),yes) + $(lib_binaries) += libn32qmath +endif +ifeq ($(with_libx32qmath),yes) + $(lib_binaries) += libx32qmath +endif +ifeq ($(with_libhfqmath),yes) + $(lib_binaries) += libhfqmath +endif +ifeq ($(with_libsfqmath),yes) + $(lib_binaries) += libsfqmath +endif + +define __do_qmath + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) $(usr_lib$(2))/libquadmath.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + dh_strip -p$(p_l) --dbg-package=$(p_d) + ln -sf libquadmath.symbols debian/$(p_l).symbols + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search,,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# ---------------------------------------------------------------------- + +do_qmath = $(call __do_qmath,lib$(1)quadmath$(QUADMATH_SONAME),$(1)) + +$(binary_stamp)-libqmath: $(install_stamp) + $(call do_qmath,) + +$(binary_stamp)-lib64qmath: $(install_stamp) + $(call do_qmath,64) + +$(binary_stamp)-lib32qmath: $(install_stamp) + $(call do_qmath,32) + +$(binary_stamp)-libn32qmath: $(install_stamp) + $(call do_qmath,n32) + +$(binary_stamp)-libx32qmath: $(install_stamp) + $(call do_qmath,x32) + +$(binary_stamp)-libhfqmath: $(install_stamp) + $(call do_qmath,hf) + +$(binary_stamp)-libsfqmath: $(install_stamp) + $(call do_qmath,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libssp.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libssp.mk @@ -0,0 +1,155 @@ +arch_binaries := $(arch_binaries) libssp +ifeq ($(with_lib64ssp),yes) + arch_binaries := $(arch_binaries) lib64ssp +endif +ifeq ($(with_lib32ssp),yes) + arch_binaries := $(arch_binaries) lib32ssp +endif +ifeq ($(with_libn32ssp),yes) + arch_binaries := $(arch_binaries) libn32ssp +endif +ifeq ($(with_libx32ssp),yes) + arch_binaries := $(arch_binaries) libx32ssp +endif + +p_ssp = libssp$(SSP_SONAME) +p_ssp32 = lib32ssp$(SSP_SONAME) +p_ssp64 = lib64ssp$(SSP_SONAME) +p_sspx32 = libx32ssp$(SSP_SONAME) +p_sspd = libssp$(SSP_SONAME)-dev + +d_ssp = debian/$(p_ssp) +d_ssp32 = debian/$(p_ssp32) +d_ssp64 = debian/$(p_ssp64) +d_sspx32 = debian/$(p_sspx32) +d_sspd = debian/$(p_sspd) + +dirs_ssp = \ + $(docdir)/$(p_base) \ + $(PF)/$(libdir) +files_ssp = \ + $(PF)/$(libdir)/libssp.so.* + +dirs_sspd = \ + $(docdir) \ + $(PF)/include \ + $(PF)/$(libdir) +files_sspd = \ + $(gcc_lib_dir)/include/ssp \ + $(PF)/$(libdir)/libssp.{a,so} \ + $(PF)/$(libdir)/libssp_nonshared.a + +ifeq ($(with_lib32ssp),yes) + dirs_sspd += $(lib32) + files_sspd += $(lib32)/libssp.{a,so} + files_sspd += $(lib32)/libssp_nonshared.a +endif +ifeq ($(with_lib64ssp),yes) + dirs_sspd += $(PF)/lib64 + files_sspd += $(PF)/lib64/libssp.{a,so} + files_sspd += $(PF)/lib64/libssp_nonshared.a +endif + +$(binary_stamp)-libssp: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_ssp) + dh_installdirs -p$(p_ssp) + + $(dh_compat2) dh_movefiles -p$(p_ssp) $(files_ssp) + debian/dh_doclink -p$(p_ssp) $(p_lbase) + + debian/dh_rmemptydirs -p$(p_ssp) + + dh_strip -p$(p_ssp) + dh_makeshlibs $(ldconfig_arg) -p$(p_ssp) -V '$(p_ssp) (>= $(DEB_SOVERSION))' + dh_shlibdeps -p$(p_ssp) + echo $(p_ssp) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-lib64ssp: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_ssp64) + dh_installdirs -p$(p_ssp64) \ + $(PF)/lib64 + $(dh_compat2) dh_movefiles -p$(p_ssp64) \ + $(PF)/lib64/libssp.so.* + + debian/dh_doclink -p$(p_ssp64) $(p_lbase) + + dh_strip -p$(p_ssp64) + dh_makeshlibs $(ldconfig_arg) -p$(p_ssp64) -V '$(p_ssp64) (>= $(DEB_SOVERSION))' +# dh_shlibdeps -p$(p_ssp64) + echo $(p_ssp64) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-lib32ssp: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_ssp32) + dh_installdirs -p$(p_ssp32) \ + $(lib32) + $(dh_compat2) dh_movefiles -p$(p_ssp32) \ + $(lib32)/libssp.so.* + + debian/dh_doclink -p$(p_ssp32) $(p_lbase) + + dh_strip -p$(p_ssp32) + dh_makeshlibs $(ldconfig_arg) -p$(p_ssp32) -V '$(p_ssp32) (>= $(DEB_SOVERSION))' +# dh_shlibdeps -p$(p_ssp32) + echo $(p_ssp32) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-libn32ssp: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_sspn32) + dh_installdirs -p$(p_sspn32) \ + $(PF)/$(libn32) + $(dh_compat2) dh_movefiles -p$(p_sspn32) \ + $(PF)/$(libn32)/libssp.so.* + + debian/dh_doclink -p$(p_sspn32) $(p_lbase) + + dh_strip -p$(p_sspn32) + dh_makeshlibs $(ldconfig_arg) -p$(p_sspn32) -V '$(p_sspn32) (>= $(DEB_SOVERSION))' +# dh_shlibdeps -p$(p_sspn32) + echo $(p_sspn32) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-libx32ssp: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_sspx32) + dh_installdirs -p$(p_sspx32) \ + $(PF)/$(libx32) + $(dh_compat2) dh_movefiles -p$(p_sspx32) \ + $(PF)/$(libx32)/libssp.so.* + + debian/dh_doclink -p$(p_sspx32) $(p_lbase) + + dh_strip -p$(p_sspx32) + dh_makeshlibs $(ldconfig_arg) -p$(p_sspx32) -V '$(p_sspx32) (>= $(DEB_SOVERSION))' +# dh_shlibdeps -p$(p_sspx32) + echo $(p_sspx32) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libstdcxx.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libstdcxx.mk @@ -0,0 +1,527 @@ +ifeq ($(with_libcxx),yes) + $(lib_binaries) += libstdcxx +endif +ifeq ($(with_lib64cxx),yes) + $(lib_binaries) += lib64stdcxx +endif +ifeq ($(with_lib32cxx),yes) + $(lib_binaries) += lib32stdcxx +endif +ifeq ($(with_libn32cxx),yes) + $(lib_binaries) += libn32stdcxx +endif +ifeq ($(with_libx32cxx),yes) + $(lib_binaries) += libx32stdcxx +endif +ifeq ($(with_libhfcxx),yes) + $(lib_binaries) += libhfstdcxx +endif +ifeq ($(with_libsfcxx),yes) + $(lib_binaries) += libsfstdcxx +endif + +ifneq ($(DEB_STAGE),rtlibs) + ifeq ($(with_lib64cxxdev),yes) + $(lib_binaries) += lib64stdcxx-dev + endif + ifeq ($(with_lib64cxxdbg),yes) + $(lib_binaries) += lib64stdcxxdbg + endif + ifeq ($(with_lib32cxxdev),yes) + $(lib_binaries) += lib32stdcxx-dev + endif + ifeq ($(with_lib32cxxdbg),yes) + $(lib_binaries) += lib32stdcxxdbg + endif + ifeq ($(with_libn32cxxdev),yes) + $(lib_binaries) += libn32stdcxx-dev + endif + ifeq ($(with_libn32cxxdbg),yes) + $(lib_binaries) += libn32stdcxxdbg + endif + ifeq ($(with_libx32cxxdev),yes) + $(lib_binaries) += libx32stdcxx-dev + endif + ifeq ($(with_libx32cxxdbg),yes) + $(lib_binaries) += libx32stdcxxdbg + endif + ifeq ($(with_libhfcxxdev),yes) + $(lib_binaries) += libhfstdcxx-dev + endif + ifeq ($(with_libhfcxxdbg),yes) + $(lib_binaries) += libhfstdcxxdbg + endif + ifeq ($(with_libsfcxxdev),yes) + $(lib_binaries) += libsfstdcxx-dev + endif + ifeq ($(with_libsfcxxdbg),yes) + $(lib_binaries) += libsfstdcxxdbg + endif + + ifeq ($(with_cxxdev),yes) + $(lib_binaries) += libstdcxx-dev + ifneq ($(DEB_CROSS),yes) + indep_binaries := $(indep_binaries) libstdcxx-doc + endif + endif +endif + +libstdc_ext = -$(BASE_VERSION) + +p_lib = libstdc++$(CXX_SONAME)$(cross_lib_arch) +p_lib64 = lib64stdc++$(CXX_SONAME)$(cross_lib_arch) +p_lib32 = lib32stdc++$(CXX_SONAME)$(cross_lib_arch) +p_libn32= libn32stdc++$(CXX_SONAME)$(cross_lib_arch) +p_libx32= libx32stdc++$(CXX_SONAME)$(cross_lib_arch) +p_libhf = libhfstdc++$(CXX_SONAME)$(cross_lib_arch) +p_libsf = libsfstdc++$(CXX_SONAME)$(cross_lib_arch) +p_dev = libstdc++$(libstdc_ext)-dev$(cross_lib_arch) +p_pic = libstdc++$(libstdc_ext)-pic$(cross_lib_arch) +p_dbg = libstdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch) +p_dbg64 = lib64stdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch) +p_dbg32 = lib32stdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch) +p_dbgn32= libn32stdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch) +p_dbgx32= libx32stdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch) +p_dbghf = libhfstdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch) +p_dbgsf = libsfstdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch) +p_libd = libstdc++$(libstdc_ext)-doc + +d_lib = debian/$(p_lib) +d_lib64 = debian/$(p_lib64) +d_lib32 = debian/$(p_lib32) +d_libn32= debian/$(p_libn32) +d_libx32= debian/$(p_libx32) +d_libhf = debian/$(p_libhf) +d_libsf = debian/$(p_libsf) +d_dev = debian/$(p_dev) +d_pic = debian/$(p_pic) +d_dbg = debian/$(p_dbg) +d_dbg64 = debian/$(p_dbg64) +d_dbg32 = debian/$(p_dbg32) +d_dbghf = debian/$(p_dbghf) +d_dbgsf = debian/$(p_dbgsf) +d_libd = debian/$(p_libd) + +dirs_dev = \ + $(docdir)/$(p_base)/C++ \ + $(usr_lib) \ + $(gcc_lib_dir)/include \ + $(PFL)/include/c++ + +files_dev = \ + $(PFL)/include/c++/$(BASE_VERSION) \ + $(gcc_lib_dir)/libstdc++.{a,so} \ + $(gcc_lib_dir)/libsupc++.a \ + $(gcc_lib_dir)/libstdc++fs.a + +ifeq ($(with_multiarch_cxxheaders),yes) + dirs_dev += \ + $(PF)/include/$(DEB_TARGET_MULTIARCH)/c++/$(BASE_VERSION) + files_dev += \ + $(PF)/include/$(DEB_TARGET_MULTIARCH)/c++/$(BASE_VERSION)/{bits,ext} +endif + +dirs_dbg = \ + $(docdir) \ + $(PF)/lib/debug/$(usr_lib) \ + $(usr_lib)/debug \ + $(PF)/share/gdb/auto-load/$(usr_lib)/debug \ + $(gcc_lib_dir) +files_dbg = \ + $(usr_lib)/debug/libstdc++.{a,so*} \ + $(usr_lib)/debug/libstdc++fs.a + +dirs_pic = \ + $(docdir) \ + $(gcc_lib_dir) +files_pic = \ + $(gcc_lib_dir)/libstdc++_pic.a + +# ---------------------------------------------------------------------- + +gxx_baseline_dir = $(shell \ + sed -n '/^baseline_dir *=/s,.*= *\(.*\)$$,\1,p' \ + $(buildlibdir)/libstdc++-v3/testsuite/Makefile) +gxx_baseline_file = $(gxx_baseline_dir)/baseline_symbols.txt + +debian/README.libstdc++-baseline: + cat debian/README.libstdc++-baseline.in \ + > debian/README.libstdc++-baseline + + baseline_name=`basename $(gxx_baseline_dir)`; \ + baseline_parentdir=`dirname $(gxx_baseline_dir)`; \ + compat_baseline_name=""; \ + if [ -f "$(gxx_baseline_file)" ]; then \ + ( \ + echo "A baseline file for $$baseline_name was found."; \ + echo "Running the check-abi script ..."; \ + echo ""; \ + $(MAKE) -C $(buildlibdir)/libstdc++-v3/testsuite \ + check-abi; \ + ) >> debian/README.libstdc++-baseline; \ + else \ + ( \ + echo "No baseline file found for $$baseline_name."; \ + echo "Generating a new baseline file ..."; \ + echo ""; \ + ) >> debian/README.libstdc++-baseline; \ + mkdir -p $(gxx_baseline_dir); \ + $(MAKE) -C $(buildlibdir)/libstdc++-v3/testsuite new-abi-baseline; \ + if [ -f $(gxx_baseline_file) ]; then \ + cat $(gxx_baseline_file); \ + else \ + cat $$(find $(buildlibdir)/libstdc++-v3 $(srcdir)/libstdc++-v3 -name '.new') || true; \ + fi >> debian/README.libstdc++-baseline; \ + fi + +# ---------------------------------------------------------------------- +# FIXME: see #792204, libstdc++ symbols on sparc64, for now ignore errors +# for the 32bit multilib build + +define __do_libstdcxx + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) + + dh_installdirs -p$(p_l) \ + $(docdir) \ + $(usr_lib$(2)) \ + $(PF)/share/gdb/auto-load/$(usr_lib$(2)) + + $(if $(DEB_CROSS),,$(if $(2),, + dh_installdirs -p$(p_l) \ + $(PF)/share/gcc-$(BASE_VERSION)/python + $(dh_compat2) dh_movefiles -p$(p_l) \ + $(PF)/share/gcc-$(BASE_VERSION)/python/libstdcxx + )) + cp -p $(d)/$(usr_lib$(2))/libstdc++.so.*.py \ + $(d_l)/$(PF)/share/gdb/auto-load/$(usr_lib$(2))/. + sed -i -e "/^libdir *=/s,=.*,= '/$(usr_lib$(2))'," \ + $(d_l)/$(PF)/share/gdb/auto-load/$(usr_lib$(2))/libstdc++.so.*.py + + cp -a $(d)/$(usr_lib$(2))/libstdc++.so.*[0-9] \ + $(d_l)/$(usr_lib$(2))/. + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_rmemptydirs -p$(p_l) + + dh_strip -p$(p_l) $(if $(filter rtlibs,$(DEB_STAGE)),,--dbg-package=$(1)-$(BASE_VERSION)-dbg$(cross_lib_arch)) + + $(if $(filter $(DEB_TARGET_ARCH), armel hppa sparc64), \ + -$(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) \ + @echo "FIXME: libstdc++ not feature complete (https://gcc.gnu.org/ml/gcc/2014-07/msg00000.html)", \ + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) \ + ) + + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search,$(subst stdc++$(CXX_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +define __do_libstdcxx_dbg + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_d) + dh_installdirs -p$(p_d) \ + $(PF)/lib/debug/$(usr_lib$(2)) \ + $(usr_lib$(2)) + + $(if $(filter yes,$(with_lib$(2)cxx)), + cp -a $(d)/$(usr_lib$(2))/libstdc++.so.*[0-9] \ + $(d_d)/$(usr_lib$(2))/.; + dh_strip -p$(p_d) --keep-debug; + $(if $(filter yes,$(with_common_libs)),, # if !with_common_libs + # remove the debug symbols for libstdc++ + # built by a newer version of GCC + rm -rf $(d_d)/usr/lib/debug/$(PF); + ) + rm -f $(d_d)/$(usr_lib$(2))/libstdc++.so.*[0-9] + ) + + $(if $(filter yes,$(with_cxx_debug)), + mkdir -p $(d_d)/$(usr_lib$(2))/debug; + mv $(d)/$(usr_lib$(2))/debug/libstdc++* $(d_d)/$(usr_lib$(2))/debug; + rm -f $(d_d)/$(usr_lib$(2))/debug/libstdc++_pic.a + ) + + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_d) \ + $(call shlibdirs_to_search,$(subst $(pkg_ver),,$(subst stdc++$(CXX_SONAME),gcc$(GCC_SONAME),$(p_l))),$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_d)) + + debian/dh_doclink -p$(p_d) $(p_lbase) + debian/dh_rmemptydirs -p$(p_d) + echo $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +define __do_libstdcxx_dev + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + mv $(d)/$(usr_lib$(2))/libstdc++.a $(d)/$(usr_lib$(2))/libstdc++fs.a $(d)/$(usr_lib$(2))/libsupc++.a \ + $(d)/$(gcc_lib_dir$(2))/ + + rm -rf $(d_l) + dh_installdirs -p$(p_l) $(gcc_lib_dir$(2)) + + $(dh_compat2) dh_movefiles -p$(p_l) \ + $(gcc_lib_dir$(2))/libstdc++.a \ + $(gcc_lib_dir$(2))/libstdc++fs.a \ + $(gcc_lib_dir$(2))/libsupc++.a \ + $(if $(with_multiarch_cxxheaders),$(PF)/include/$(DEB_TARGET_MULTIARCH)/c++/$(BASE_VERSION)/$(2)) + $(call install_gcc_lib,libstdc++,$(CXX_SONAME),$(2),$(p_l)) + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_rmemptydirs -p$(p_l) + dh_strip -p$(p_l) + dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search,$(subst stdc++$(CXX_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2)) + echo $(p_l) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +do_libstdcxx = $(call __do_libstdcxx,lib$(1)stdc++$(CXX_SONAME),$(1)) +do_libstdcxx_dbg = $(call __do_libstdcxx_dbg,lib$(1)stdc++$(CXX_SONAME)$(libstdc_ext),$(1)) +do_libstdcxx_dev = $(call __do_libstdcxx_dev,lib$(1)stdc++-$(BASE_VERSION)-dev,$(1)) + +# ---------------------------------------------------------------------- +$(binary_stamp)-libstdcxx: $(install_stamp) + $(call do_libstdcxx,) + +$(binary_stamp)-lib64stdcxx: $(install_stamp) + $(call do_libstdcxx,64) + +$(binary_stamp)-lib32stdcxx: $(install_stamp) + $(call do_libstdcxx,32) + +$(binary_stamp)-libn32stdcxx: $(install_stamp) + $(call do_libstdcxx,n32) + +$(binary_stamp)-libx32stdcxx: $(install_stamp) + $(call do_libstdcxx,x32) + +$(binary_stamp)-libhfstdcxx: $(install_stamp) + $(call do_libstdcxx,hf) + +$(binary_stamp)-libsfstdcxx: $(install_stamp) + $(call do_libstdcxx,sf) + +$(binary_stamp)-lib64stdcxxdbg: $(install_stamp) + $(call do_libstdcxx_dbg,64) + +$(binary_stamp)-lib32stdcxxdbg: $(install_stamp) + $(call do_libstdcxx_dbg,32) + +$(binary_stamp)-libn32stdcxxdbg: $(install_stamp) + $(call do_libstdcxx_dbg,n32) + +$(binary_stamp)-libx32stdcxxdbg: $(install_stamp) + $(call do_libstdcxx_dbg,x32) + +$(binary_stamp)-libhfstdcxxdbg: $(install_stamp) + $(call do_libstdcxx_dbg,hf) + +$(binary_stamp)-libsfstdcxxdbg: $(install_stamp) + $(call do_libstdcxx_dbg,sf) + +$(binary_stamp)-lib64stdcxx-dev: $(install_stamp) + $(call do_libstdcxx_dev,64) + +$(binary_stamp)-lib32stdcxx-dev: $(install_stamp) + $(call do_libstdcxx_dev,32) + +$(binary_stamp)-libn32stdcxx-dev: $(install_stamp) + $(call do_libstdcxx_dev,n32) + +$(binary_stamp)-libx32stdcxx-dev: $(install_stamp) + $(call do_libstdcxx_dev,x32) + +$(binary_stamp)-libhfstdcxx-dev: $(install_stamp) + $(call do_libstdcxx_dev,hf) + +$(binary_stamp)-libsfstdcxx-dev: $(install_stamp) + $(call do_libstdcxx_dev,sf) + +# ---------------------------------------------------------------------- +libcxxdev_deps = $(install_stamp) +ifeq ($(with_libcxx),yes) + libcxxdev_deps += $(binary_stamp)-libstdcxx +endif +ifeq ($(with_check),yes) + libcxxdev_deps += debian/README.libstdc++-baseline +endif +$(binary_stamp)-libstdcxx-dev: $(libcxxdev_deps) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_dev) $(d_pic) + dh_installdirs -p$(p_dev) $(dirs_dev) + dh_installdirs -p$(p_pic) $(dirs_pic) + dh_installdirs -p$(p_dbg) $(dirs_dbg) + + : # - correct libstdc++-v3 file locations + mv $(d)/$(usr_lib)/libsupc++.a $(d)/$(gcc_lib_dir)/ + mv $(d)/$(usr_lib)/libstdc++fs.a $(d)/$(gcc_lib_dir)/ + mv $(d)/$(usr_lib)/libstdc++.{a,so} $(d)/$(gcc_lib_dir)/ + ln -sf ../../../$(DEB_TARGET_GNU_TYPE)/libstdc++.so.$(CXX_SONAME) \ + $(d)/$(gcc_lib_dir)/libstdc++.so + mv $(d)/$(usr_lib)/libstdc++_pic.a $(d)/$(gcc_lib_dir)/ + + rm -f $(d)/$(usr_lib)/debug/libstdc++_pic.a + rm -f $(d)/$(usr_lib64)/debug/libstdc++_pic.a + + : # remove precompiled headers + -find $(d) -type d -name '*.gch' | xargs rm -rf + + for i in $(d)/$(PF)/include/c++/$(GCC_VERSION)/*-linux; do \ + if [ -d $$i ]; then mv $$i $$i-gnu; fi; \ + done + + $(dh_compat2) dh_movefiles -p$(p_dev) $(files_dev) + $(dh_compat2) dh_movefiles -p$(p_pic) $(files_pic) +ifeq ($(with_cxx_debug),yes) + $(dh_compat2) dh_movefiles -p$(p_dbg) $(files_dbg) +endif + + dh_link -p$(p_dev) \ + /$(usr_lib)/libstdc++.so.$(CXX_SONAME) \ + /$(gcc_lib_dir)/libstdc++.so \ + /$(PFL)/include/c++/$(BASE_VERSION) /$(PFL)/include/c++/$(GCC_VERSION) +ifeq ($(with_multiarch_cxxheaders),yes) + dh_link -p$(p_dev) \ + /$(PFL)/include/$(DEB_TARGET_MULTIARCH)/c++/$(BASE_VERSION) \ + /$(PFL)/include/$(DEB_TARGET_MULTIARCH)/c++/$(GCC_VERSION) +endif + + debian/dh_doclink -p$(p_dev) $(p_lbase) + debian/dh_doclink -p$(p_pic) $(p_lbase) + debian/dh_doclink -p$(p_dbg) $(p_lbase) + cp -p $(srcdir)/libstdc++-v3/ChangeLog \ + $(d_dev)/$(docdir)/$(p_base)/C++/changelog.libstdc++ +ifeq ($(with_check),yes) + cp -p debian/README.libstdc++-baseline \ + $(d_dev)/$(docdir)/$(p_base)/C++/README.libstdc++-baseline.$(DEB_TARGET_ARCH) + if [ -f $(buildlibdir)/libstdc++-v3/testsuite/current_symbols.txt ]; \ + then \ + cp -p $(buildlibdir)/libstdc++-v3/testsuite/current_symbols.txt \ + $(d_dev)/$(docdir)/$(p_base)/C++/libstdc++_symbols.txt.$(DEB_TARGET_ARCH); \ + fi +endif + cp -p $(buildlibdir)/libstdc++-v3/src/libstdc++-symbols.ver \ + $(d_pic)/$(gcc_lib_dir)/libstdc++_pic.map + + cp -p $(d)/$(usr_lib)/libstdc++.so.*.py \ + $(d_dbg)/$(PF)/share/gdb/auto-load/$(usr_lib)/debug/. + sed -i -e "/^libdir *=/s,=.*,= '/$(usr_lib)'," \ + $(d_dbg)/$(PF)/share/gdb/auto-load/$(usr_lib)/debug/libstdc++.so.*.py + +ifeq ($(with_libcxx),yes) + cp -a $(d)/$(usr_lib)/libstdc++.so.*[0-9] \ + $(d_dbg)/$(usr_lib)/ + dh_strip -p$(p_dbg) --keep-debug + rm -f $(d_dbg)/$(usr_lib)/libstdc++.so.*[0-9] +endif + + dh_strip -p$(p_dev) --dbg-package=$(p_dbg) +ifneq ($(with_common_libs),yes) + : # remove the debug symbols for libstdc++ built by a newer version of GCC + rm -rf $(d_dbg)/usr/lib/debug/$(PF) +endif + dh_strip -p$(p_pic) + +ifeq ($(with_cxxdev),yes) + debian/dh_rmemptydirs -p$(p_dev) + debian/dh_rmemptydirs -p$(p_pic) + debian/dh_rmemptydirs -p$(p_dbg) +endif + + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_dev) -p$(p_pic) -p$(p_dbg) \ + $(call shlibdirs_to_search,,) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_dbg)) + echo $(p_dev) $(p_pic) $(p_dbg) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- + +doxygen_doc_dir = $(buildlibdir)/libstdc++-v3/doc + +doxygen-docs: $(build_doxygen_stamp) +$(build_doxygen_stamp): $(build_stamp) + $(MAKE) -C $(buildlibdir)/libstdc++-v3/doc SHELL=/bin/bash doc-html-doxygen + $(MAKE) -C $(buildlibdir)/libstdc++-v3/doc SHELL=/bin/bash doc-man-doxygen + -find $(doxygen_doc_dir)/doxygen/html -name 'struct*' -empty | xargs rm -f + + touch $@ + +$(binary_stamp)-libstdcxx-doc: $(install_stamp) doxygen-docs + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_libd) + dh_installdirs -p$(p_libd) \ + $(docdir)/$(p_base)/libstdc++ \ + $(PF)/share/man + +# debian/dh_doclink -p$(p_libd) $(p_base) + dh_link -p$(p_libd) /usr/share/doc/$(p_base) /usr/share/doc/$(p_libd) + dh_installdocs -p$(p_libd) + rm -f $(d_libd)/$(docdir)/$(p_base)/copyright + + cp -a $(srcdir)/libstdc++-v3/doc/html/* \ + $(d_libd)/$(docdir)/$(p_base)/libstdc++/. + cp -a $(doxygen_doc_dir)/doxygen/html \ + $(d_libd)/$(docdir)/$(p_base)/libstdc++/user + find $(d_libd)/$(docdir)/$(p_base)/libstdc++ -name '*.md5' \ + | xargs -r rm -f + +# Broken docs ... see #766499 +# rm -f $(d_libd)/$(docdir)/$(p_base)/libstdc++/*/jquery.js +# dh_link -p$(p_libd) \ +# /usr/share/javascript/jquery/jquery.js \ +# /$(docdir)/$(p_base)/libstdc++/html/jquery.js \ +# /usr/share/javascript/jquery/jquery.js \ +# /$(docdir)/$(p_base)/libstdc++/user/jquery.js + + : FIXME: depending on the doxygen version + if [ -d $(doxygen_doc_dir)/doxygen/man/man3cxx ]; then \ + cp -a $(doxygen_doc_dir)/doxygen/man/man3cxx \ + $(d_libd)/$(PF)/share/man/man3; \ + if [ -d $(doxygen_doc_dir)/doxygen/man/man3 ]; then \ + cp -a $(doxygen_doc_dir)/doxygen/man/man3/* \ + $(d_libd)/$(PF)/share/man/man3/; \ + fi; \ + elif [ -d $(doxygen_doc_dir)/doxygen/man/man3 ]; then \ + cp -a $(doxygen_doc_dir)/doxygen/man/man3 \ + $(d_libd)/$(PF)/share/man/man3; \ + fi + + for i in $(d_libd)/$(PF)/share/man/man3/*.3; do \ + [ -f $${i} ] || continue; \ + mv $${i} $${i}cxx; \ + done + rm -f $(d_libd)/$(PF)/share/man/man3/todo.3* + + mkdir -p $(d_libd)/usr/share/lintian/overrides + cp -p debian/$(p_libd).overrides \ + $(d_libd)/usr/share/lintian/overrides/$(p_libd) + + echo $(p_libd) >> debian/indep_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libtsan.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libtsan.mk @@ -0,0 +1,80 @@ +$(lib_binaries) += libtsan +ifeq (0,1) +ifeq ($(with_lib64tsan),yes) + $(lib_binaries) += lib64tsan +endif +ifeq ($(with_lib32tsan),yes) + $(lib_binaries) += lib32tsan +endif +ifeq ($(with_libn32tsan),yes) + $(lib_binaries) += libn32tsan +endif +ifeq ($(with_libx32tsan),yes) + $(lib_binaries) += libx32tsan +endif +ifeq ($(with_libhftsan),yes) + $(lib_binaries) += libhftsan +endif +ifeq ($(with_libsftsan),yes) + $(lib_binaries) += libsftsan +endif +endif + +define __do_tsan + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) \ + $(usr_lib$(2))/libtsan.so.* \ + $(usr_lib$(2))/libtsan_preinit.o + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + if [ -f debian/$(p_l).overrides ]; then \ + mkdir -p debian/$(p_l)/usr/share/lintian/overrides; \ + cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \ + fi + + dh_strip -p$(p_l) --dbg-package=$(p_d) + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search, \ + $(subst tsan$(TSAN_SONAME),gcc$(GCC_SONAME),$(p_l)) \ + $(subst tsan$(TSAN_SONAME),stdc++$(CXX_SONAME),$(p_l)) \ + ,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# ---------------------------------------------------------------------- + +do_tsan = $(call __do_tsan,lib$(1)tsan$(TSAN_SONAME),$(1)) + +$(binary_stamp)-libtsan: $(install_stamp) + $(call do_tsan,) + +$(binary_stamp)-lib64tsan: $(install_stamp) + $(call do_tsan,64) + +$(binary_stamp)-lib32tsan: $(install_stamp) + $(call do_tsan,32) + +$(binary_stamp)-libn32tsan: $(install_stamp) + $(call do_tsan,n32) + +$(binary_stamp)-libx32tsan: $(install_stamp) + $(call do_tsan,x32) + +$(binary_stamp)-libhftsan: $(install_dependencies) + $(call do_tsan,hf) + +$(binary_stamp)-libsftsan: $(install_dependencies) + $(call do_tsan,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libubsan.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libubsan.mk @@ -0,0 +1,76 @@ +$(lib_binaries) += libubsan +ifeq ($(with_lib64ubsan),yes) + $(lib_binaries) += lib64ubsan +endif +ifeq ($(with_lib32ubsan),yes) + $(lib_binaries) += lib32ubsan +endif +ifeq ($(with_libn32ubsan),yes) + $(lib_binaries) += libn32ubsan +endif +ifeq ($(with_libx32ubsan),yes) + $(lib_binaries) += libx32ubsan +endif +ifeq ($(with_libhfubsan),yes) + $(lib_binaries) += libhfubsan +endif +ifeq ($(with_libsfubsan),yes) + $(lib_binaries) += libsfubsan +endif + +define __do_ubsan + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) $(usr_lib$(2))/libubsan.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + if [ -f debian/$(p_l).overrides ]; then \ + mkdir -p debian/$(p_l)/usr/share/lintian/overrides; \ + cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \ + fi + + dh_strip -p$(p_l) --dbg-package=$(p_d) + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search, \ + $(subst ubsan$(UBSAN_SONAME),gcc$(GCC_SONAME),$(p_l)) \ + $(subst ubsan$(UBSAN_SONAME),stdc++$(CXX_SONAME),$(p_l)) \ + ,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# ---------------------------------------------------------------------- + +do_ubsan = $(call __do_ubsan,lib$(1)ubsan$(UBSAN_SONAME),$(1)) + +$(binary_stamp)-libubsan: $(install_stamp) + $(call do_ubsan,) + +$(binary_stamp)-lib64ubsan: $(install_stamp) + $(call do_ubsan,64) + +$(binary_stamp)-lib32ubsan: $(install_stamp) + $(call do_ubsan,32) + +$(binary_stamp)-libn32ubsan: $(install_stamp) + $(call do_ubsan,n32) + +$(binary_stamp)-libx32ubsan: $(install_stamp) + $(call do_ubsan,x32) + +$(binary_stamp)-libhfubsan: $(install_dependencies) + $(call do_ubsan,hf) + +$(binary_stamp)-libsfubsan: $(install_dependencies) + $(call do_ubsan,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-libvtv.mk +++ gcc-7-7.5.0/debian/rules.d/binary-libvtv.mk @@ -0,0 +1,76 @@ +$(lib_binaries) += libvtv +ifeq ($(with_lib64vtv),yes) + $(lib_binaries) += lib64vtv +endif +ifeq ($(with_lib32vtv),yes) + $(lib_binaries) += lib32vtv +endif +ifeq ($(with_libn32vtv),yes) + $(lib_binaries) += libn32vtv +endif +ifeq ($(with_libx32vtv),yes) + $(lib_binaries) += libx32vtv +endif +ifeq ($(with_libhfvtv),yes) + $(lib_binaries) += libhfvtv +endif +ifeq ($(with_libsfvtv),yes) + $(lib_binaries) += libsfvtv +endif + +define __do_vtv + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_l) $(d_d) + dh_installdirs -p$(p_l) $(usr_lib$(2)) + $(dh_compat2) dh_movefiles -p$(p_l) $(usr_lib$(2))/libvtv.so.* + + debian/dh_doclink -p$(p_l) $(p_lbase) + debian/dh_doclink -p$(p_d) $(p_lbase) + + if [ -f debian/$(p_l).overrides ]; then \ + mkdir -p debian/$(p_l)/usr/share/lintian/overrides; \ + cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \ + fi + + dh_strip -p$(p_l) --dbg-package=$(p_d) + $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) + $(call cross_mangle_shlibs,$(p_l)) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search, \ + $(subst vtv$(VTV_SONAME),gcc$(GCC_SONAME),$(p_l)) \ + $(subst vtv$(VTV_SONAME),stdc++$(CXX_SONAME),$(p_l)) \ + ,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) + $(call cross_mangle_substvars,$(p_l)) + echo $(p_l) $(p_d) >> debian/$(lib_binaries) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +endef + +# ---------------------------------------------------------------------- + +do_vtv = $(call __do_vtv,lib$(1)vtv$(VTV_SONAME),$(1)) + +$(binary_stamp)-libvtv: $(install_stamp) + $(call do_vtv,) + +$(binary_stamp)-lib64vtv: $(install_stamp) + $(call do_vtv,64) + +$(binary_stamp)-lib32vtv: $(install_stamp) + $(call do_vtv,32) + +$(binary_stamp)-libn32vtv: $(install_stamp) + $(call do_vtv,n32) + +$(binary_stamp)-libx32vtv: $(install_stamp) + $(call do_vtv,x32) + +$(binary_stamp)-libhfvtv: $(install_dependencies) + $(call do_vtv,hf) + +$(binary_stamp)-libsfvtv: $(install_dependencies) + $(call do_vtv,sf) --- gcc-7-7.5.0.orig/debian/rules.d/binary-neon.mk +++ gcc-7-7.5.0/debian/rules.d/binary-neon.mk @@ -0,0 +1,47 @@ +arch_binaries := $(arch_binaries) neon + +p_nlgcc = libgcc$(GCC_SONAME)-neon +p_ngomp = libgomp$(GOMP_SONAME)-neon +p_nlobjc = libobjc$(OBJC_SONAME)-neon +p_nflib = libgfortran$(FORTRAN_SONAME)-neon +p_nlcxx = libstdc++$(CXX_SONAME)-neon + +d_nlgcc = debian/$(p_nlgcc) +d_ngomp = debian/$(p_ngomp) +d_nlobjc = debian/$(p_nlobjc) +d_nflib = debian/$(p_nflib) +d_nlcxx = debian/$(p_nlcxx) + +neon_pkgs = -p$(p_nlgcc) -p$(p_ngomp) -p$(p_nlobjc) -p$(p_nflib) -p$(p_nlcxx) + +# ---------------------------------------------------------------------- +$(binary_stamp)-neon: $(install_neon_stamp) + dh_testdir + dh_testroot + + dh_installdirs -p$(p_nlgcc) \ + $(PF)/share/doc \ + lib/neon + dh_installdirs -A -p$(p_ngomp) -p$(p_nlobjc) -p$(p_nflib) -p$(p_nlcxx) \ + $(PF)/share/doc \ + $(PF)/lib/neon + + cp -a $(d_neon)/$(PF)/lib/libgcc*.so.* \ + $(d_nlgcc)/lib/neon/ + cp -a $(d_neon)/$(PF)/lib/libgomp*.so.* \ + $(d_ngomp)/$(PF)/lib/neon/ + cp -a $(d_neon)/$(PF)/lib/libobjc*.so.* \ + $(d_nlobjc)/$(PF)/lib/neon/ + cp -a $(d_neon)/$(PF)/lib/libgfortran*.so.* \ + $(d_nflib)/$(PF)/lib/neon/ + cp -a $(d_neon)/$(PF)/lib/libstdc++*.so.* \ + $(d_nlcxx)/$(PF)/lib/neon/ + + for p in $(p_nlgcc) $(p_ngomp) $(p_nlobjc) $(p_nflib) $(p_nlcxx); do \ + ln -s ../$(p_base) debian/$$p/usr/share/doc/$$p; \ + done + dh_strip $(neon_pkgs) + dh_shlibdeps $(neon_pkgs) + echo $(p_nlgcc) $(p_ngomp) $(p_nlobjc) $(p_nflib) $(p_nlcxx) >> debian/arch_binaries + + touch $@ --- gcc-7-7.5.0.orig/debian/rules.d/binary-nof.mk +++ gcc-7-7.5.0/debian/rules.d/binary-nof.mk @@ -0,0 +1,51 @@ +arch_binaries := $(arch_binaries) nof + +p_nof = gcc$(pkg_ver)-nof +d_nof = debian/$(p_nof) + +dirs_nof = \ + $(docdir) \ + $(usr_lib)/nof +ifeq ($(with_cdev),yes) + dirs_nof += \ + $(gcc_lib_dir)/nof +endif + +ifeq ($(with_cdev),yes) + files_nof = \ + $(libgcc_dir)/libgcc_s_nof.so.$(GCC_SONAME) \ + $(gcc_lib_dir)/libgcc_s_nof.so \ + $(usr_lib)/nof \ + $(gcc_lib_dir)/nof +else + files_nof = \ + $(usr_lib)/libgcc_s_nof.so.$(GCC_SONAME) +endif + +# ---------------------------------------------------------------------- +$(binary_stamp)-nof: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + mv $(d)/$(usr_lib)/libgcc_s_nof.so.$(GCC_SONAME) $(d)/$(libgcc_dir)/. + rm -f $(d)/$(usr_lib)/libgcc_s_nof.so + ln -sf $(libgcc_dir)/libgcc_s_nof.so.$(GCC_SONAME) \ + $(d)/$(gcc_lib_dir)/libgcc_s_nof.so + + rm -rf $(d_nof) + dh_installdirs -p$(p_nof) $(dirs_nof) + $(dh_compat2) dh_movefiles -p$(p_nof) $(files_nof) + debian/dh_doclink -p$(p_nof) $(p_xbase) + dh_strip -p$(p_nof) + dh_shlibdeps -p$(p_nof) + + dh_makeshlibs $(ldconfig_arg) -p$(p_nof) + : # Only keep the shlibs file for the libgcc_s_nof library + fgrep libgcc_s_nof debian/$(p_nof)/DEBIAN/shlibs \ + > debian/$(p_nof)/DEBIAN/shlibs.tmp + mv -f debian/$(p_nof)/DEBIAN/shlibs.tmp debian/$(p_nof)/DEBIAN/shlibs + + echo $(p_nof) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-nvptx.mk +++ gcc-7-7.5.0/debian/rules.d/binary-nvptx.mk @@ -0,0 +1,88 @@ +ifeq ($(with_offload_nvptx),yes) + arch_binaries := $(arch_binaries) nvptx + ifeq ($(with_common_libs),yes) + arch_binaries := $(arch_binaries) nvptx-plugin + endif +endif + +p_nvptx = gcc$(pkg_ver)-offload-nvptx +d_nvptx = debian/$(p_nvptx) + +p_pl_nvptx = libgomp-plugin-nvptx1 +d_pl_nvptx = debian/$(p_pl_nvptx) + +dirs_nvptx = \ + $(docdir)/$(p_xbase)/ \ + $(PF)/bin \ + $(gcc_lexec_dir)/accel + +files_nvptx = \ + $(PF)/bin/$(DEB_TARGET_GNU_TYPE)-accel-nvptx-none-gcc$(pkg_ver) \ + $(gcc_lexec_dir)/accel/nvptx-none + +# not needed: libs moved, headers not needed for lto1 +# $(PF)/nvptx-none + +# are these needed? +# $(PF)/lib/gcc/nvptx-none/$(versiondir)/{include,finclude,mgomp} + +ifneq ($(GFDL_INVARIANT_FREE),yes) + files_nvptx += \ + $(PF)/share/man/man1/$(DEB_HOST_GNU_TYPE)-accel-nvptx-none-gcc$(pkg_ver).1 +endif + +$(binary_stamp)-nvptx: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_nvptx) + dh_installdirs -p$(p_nvptx) $(dirs_nvptx) + $(dh_compat2) dh_movefiles --sourcedir=$(d)-nvptx -p$(p_nvptx) \ + $(files_nvptx) + + mkdir -p $(d_nvptx)/usr/share/lintian/overrides + echo '$(p_nvptx) binary: hardening-no-pie' \ + > $(d_nvptx)/usr/share/lintian/overrides/$(p_nvptx) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_nvptx) binary: binary-without-manpage' \ + >> $(d_nvptx)/usr/share/lintian/overrides/$(p_nvptx) +endif + + debian/dh_doclink -p$(p_nvptx) $(p_xbase) + + debian/dh_rmemptydirs -p$(p_nvptx) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_nvptx)/$(gcc_lexec_dir)/accel/nvptx-none/{collect2,lto1,lto-wrapper,mkoffload} +endif + dh_strip -p$(p_nvptx) \ + $(if $(unstripped_exe),-X/lto1) + dh_shlibdeps -p$(p_nvptx) + echo $(p_nvptx) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +# ---------------------------------------------------------------------- +$(binary_stamp)-nvptx-plugin: $(install_dependencies) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_pl_nvptx) + dh_installdirs -p$(p_pl_nvptx) \ + $(docdir) \ + $(usr_lib) + $(dh_compat2) dh_movefiles -p$(p_pl_nvptx) \ + $(usr_lib)/libgomp-plugin-nvptx.so.* + + debian/dh_doclink -p$(p_pl_nvptx) $(p_xbase) + debian/dh_rmemptydirs -p$(p_pl_nvptx) + + dh_strip -p$(p_pl_nvptx) + dh_makeshlibs -p$(p_pl_nvptx) + dh_shlibdeps -p$(p_pl_nvptx) + echo $(p_pl_nvptx) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-objc.mk +++ gcc-7-7.5.0/debian/rules.d/binary-objc.mk @@ -0,0 +1,73 @@ +ifneq ($(DEB_STAGE),rtlibs) + ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32) $(biarchhf) $(biarchsf))) + arch_binaries := $(arch_binaries) objc-multi + endif + arch_binaries := $(arch_binaries) objc +endif + +p_objc = gobjc$(pkg_ver)$(cross_bin_arch) +d_objc = debian/$(p_objc) + +p_objc_m= gobjc$(pkg_ver)-multilib$(cross_bin_arch) +d_objc_m= debian/$(p_objc_m) + +dirs_objc = \ + $(docdir)/$(p_xbase)/ObjC \ + $(gcc_lexec_dir) + +files_objc = \ + $(gcc_lexec_dir)/cc1obj + +$(binary_stamp)-objc: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_objc) + dh_installdirs -p$(p_objc) $(dirs_objc) + $(dh_compat2) dh_movefiles -p$(p_objc) $(files_objc) + + cp -p $(srcdir)/libobjc/{README*,THREADS*} \ + $(d_objc)/$(docdir)/$(p_xbase)/ObjC/. + + cp -p $(srcdir)/libobjc/ChangeLog \ + $(d_objc)/$(docdir)/$(p_xbase)/ObjC/changelog.libobjc + + mkdir -p $(d_objc)/usr/share/lintian/overrides + echo '$(p_objc) binary: hardening-no-pie' \ + > $(d_objc)/usr/share/lintian/overrides/$(p_objc) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_objc) binary: binary-without-manpage' \ + >> $(d_objc)/usr/share/lintian/overrides/$(p_objc) +endif + + debian/dh_doclink -p$(p_objc) $(p_xbase) + + debian/dh_rmemptydirs -p$(p_objc) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_objc)/$(gcc_lexec_dir)/cc1obj +endif + dh_strip -p$(p_objc) \ + $(if $(unstripped_exe),-X/cc1obj) + dh_shlibdeps -p$(p_objc) + echo $(p_objc) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +$(binary_stamp)-objc-multi: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_objc_m) + dh_installdirs -p$(p_objc_m) $(docdir) + + debian/dh_doclink -p$(p_objc_m) $(p_xbase) + + dh_strip -p$(p_objc_m) + dh_shlibdeps -p$(p_objc_m) + echo $(p_objc_m) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-objcxx.mk +++ gcc-7-7.5.0/debian/rules.d/binary-objcxx.mk @@ -0,0 +1,66 @@ +ifneq ($(DEB_STAGE),rtlibs) + ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32) $(biarchx32) $(biarchhf) $(biarchsf))) + arch_binaries := $(arch_binaries) objcxx-multi + endif + arch_binaries := $(arch_binaries) objcxx +endif + +p_objcx = gobjc++$(pkg_ver)$(cross_bin_arch) +d_objcx = debian/$(p_objcx) + +p_objcx_m = gobjc++$(pkg_ver)-multilib$(cross_bin_arch) +d_objcx_m = debian/$(p_objcx_m) + +dirs_objcx = \ + $(docdir)/$(p_xbase)/Obj-C++ \ + $(gcc_lexec_dir) + +files_objcx = \ + $(gcc_lexec_dir)/cc1objplus + +$(binary_stamp)-objcxx: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_objcx) + dh_installdirs -p$(p_objcx) $(dirs_objcx) + $(dh_compat2) dh_movefiles -p$(p_objcx) $(files_objcx) + + debian/dh_doclink -p$(p_objcx) $(p_xbase) + cp -p $(srcdir)/gcc/objcp/ChangeLog \ + $(d_objcx)/$(docdir)/$(p_xbase)/Obj-C++/changelog + + mkdir -p $(d_objcx)/usr/share/lintian/overrides + echo '$(p_objcx) binary: hardening-no-pie' \ + > $(d_objcx)/usr/share/lintian/overrides/$(p_objcx) +ifeq ($(GFDL_INVARIANT_FREE),yes) + echo '$(p_objcx) binary: binary-without-manpage' \ + >> $(d_objcx)/usr/share/lintian/overrides/$(p_objcx) +endif + + debian/dh_rmemptydirs -p$(p_objcx) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS))) + $(DWZ) \ + $(d_objcx)/$(gcc_lexec_dir)/cc1objplus +endif + dh_strip -p$(p_objcx) \ + $(if $(unstripped_exe),-X/cc1objplus) + dh_shlibdeps -p$(p_objcx) + echo $(p_objcx) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + +$(binary_stamp)-objcxx-multi: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + rm -rf $(d_objcx_m) + debian/dh_doclink -p$(p_objcx_m) $(p_xbase) + debian/dh_rmemptydirs -p$(p_objcx_m) + dh_strip -p$(p_objcx_m) + dh_shlibdeps -p$(p_objcx_m) + echo $(p_objcx_m) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-snapshot.mk +++ gcc-7-7.5.0/debian/rules.d/binary-snapshot.mk @@ -0,0 +1,161 @@ +arch_binaries := $(arch_binaries) snapshot + +ifneq (,$(findstring gcc-snapshot, $(PKGSOURCE))) + p_snap = gcc-snapshot +else ifneq (,$(findstring gcc-linaro, $(PKGSOURCE))) + p_snap = gcc-linaro +else + $(error unknown build for single gcc package) +endif + +ifeq ($(DEB_CROSS),yes) + p_snap := $(p_snap)$(cross_bin_arch) +endif +d_snap = debian/$(p_snap) + +dirs_snap = \ + $(docdir)/$(p_snap) \ + usr/lib + +ifeq ($(with_hppa64),yes) + snapshot_depends = binutils-hppa64 +endif + +# ---------------------------------------------------------------------- +$(binary_stamp)-snapshot: $(install_snap_stamp) + dh_testdir + dh_testroot + mv $(install_snap_stamp) $(install_snap_stamp)-tmp + + rm -rf $(d_snap) + dh_installdirs -p$(p_snap) $(dirs_snap) + + mv $(d)/$(PF) $(d_snap)/usr/lib/ + + find $(d_snap) -name '*.gch' -type d | xargs -r rm -rf + find $(d_snap) -name '*.la' -o -name '*.lai' | xargs -r rm -f + + : # FIXME: libbacktrace is not installed by default + for d in . 32 n32 64 sf hf; do \ + if [ -f $(buildlibdir)/$$d/libbacktrace/.libs/libbacktrace.a ]; then \ + install -m644 $(buildlibdir)/$$d/libbacktrace/.libs/libbacktrace.a \ + $(d_snap)/$(gcc_lib_dir)/$$d; \ + fi; \ + done + if [ -f $(buildlibdir)/libbacktrace/backtrace-supported.h ]; then \ + install -m644 $(buildlibdir)/libbacktrace/backtrace-supported.h \ + $(d_snap)/$(gcc_lib_dir)/include/; \ + install -m644 $(srcdir)/libbacktrace/backtrace.h \ + $(d_snap)/$(gcc_lib_dir)/include/; \ + fi + + rm -rf $(d_snap)/$(PF)/lib/nof + +ifeq ($(with_ada),yes FIXME: apply our ada patches) + dh_link -p$(p_snap) \ + $(gcc_lib_dir)/rts-sjlj/adalib/libgnat.a \ + $(gcc_lib_dir)/rts-sjlj/adalib/libgnat-$(GNAT_VERSION).a + dh_link -p$(p_snap) \ + $(gcc_lib_dir)/rts-sjlj/adalib/libgnarl.a \ + $(gcc_lib_dir)/rts-sjlj/adalib/libgnarl-$(GNAT_VERSION).a + + set -e; \ + for lib in lib{gnat,gnarl}; do \ + vlib=$$lib-$(GNAT_SONAME); \ + mv $(d_snap)/$(gcc_lib_dir)/adalib/$$vlib.so.1 $(d_snap)/$(PF)/$(libdir)/. ; \ + rm -f $(d_snap)/$(gcc_lib_dir)/adalib/$$lib.so.1; \ + dh_link -p$(p_snap) \ + /$(PF)/$(libdir)/$$vlib.so.1 /$(PF)/$(libdir)/$$vlib.so \ + /$(PF)/$(libdir)/$$vlib.so.1 /$(PF)/$(libdir)/$$lib.so \ + /$(PF)/$(libdir)/$$vlib.so.1 /$(gcc_lib_dir)/rts-native/adalib/$$lib.so; \ + done +endif +ifeq ($(with_ada),yes) + ln -sf gcc $(d_snap)/$(PF)/bin/gnatgcc +endif + +ifeq ($(with_hppa64),yes) + : # provide as and ld links + dh_link -p $(p_snap) \ + /usr/bin/hppa64-linux-gnu-as \ + /$(PF)/libexec/gcc/hppa64-linux-gnu/$(GCC_VERSION)/as \ + /usr/bin/hppa64-linux-gnu-ld \ + /$(PF)/libexec/gcc/hppa64-linux-gnu/$(GCC_VERSION)/ld +endif + +ifeq ($(with_check),yes) + dh_installdocs -p$(p_snap) test-summary +# more than one libgo.sum, avoid it + mkdir -p $(d_snap)/$(docdir)/$(p_snap)/test-summaries + cp -p $$(find $(builddir)/gcc/testsuite -maxdepth 2 \( -name '*.sum' -o -name '*.log' \)) \ + $$(find $(buildlibdir)/*/testsuite -maxdepth 1 \( -name '*.sum' -o -name '*.log' \) ! -name 'libgo.*') \ + $(d_snap)/$(docdir)/$(p_snap)/test-summaries/ + ifeq ($(with_go),yes) + cp -p $(buildlibdir)/libgo/libgo.sum \ + $(d_snap)/$(docdir)/$(p_snap)/test-summaries/ + endif + if which xz 2>&1 >/dev/null; then \ + echo -n $(d_snap)/$(docdir)/$(p_snap)/test-summaries/* \ + | xargs -d ' ' -L 1 -P $(USE_CPUS) xz -7v; \ + fi +else + dh_installdocs -p$(p_snap) +endif + if [ -f $(buildlibdir)/libstdc++-v3/testsuite/current_symbols.txt ]; \ + then \ + cp -p $(buildlibdir)/libstdc++-v3/testsuite/current_symbols.txt \ + $(d_snap)/$(docdir)/$(p_snap)/libstdc++6_symbols.txt; \ + fi + cp -p debian/README.snapshot \ + $(d_snap)/$(docdir)/$(p_snap)/README.Debian + cp -p debian/README.Bugs \ + $(d_snap)/$(docdir)/$(p_snap)/ + dh_installchangelogs -p$(p_snap) +ifeq ($(DEB_TARGET_ARCH),hppa) + dh_strip -p$(p_snap) -Xdebug -X.o -X.a -X/cgo -Xbin/go -Xbin/gofmt \ + $(if $(unstripped_exe),$(foreach i,cc1 cc1obj cc1objplus cc1plus cc1d f951 go1 jc1 lto1, -X/$(i))) +else + dh_dwz -p$(p_snap) -Xdebug -X/cgo -Xbin/go -Xbin/gofmt + dh_strip -p$(p_snap) -Xdebug -X/cgo -Xbin/go -Xbin/gofmt \ + $(if $(unstripped_exe),$(foreach i,cc1 cc1obj cc1objplus cc1plus cc1d f951 go1 jc1 lto1, -X/$(i))) +endif + dh_compress -p$(p_snap) -X README.Bugs -X.log.xz -X.sum.xz + -find $(d_snap) -type d ! -perm 755 -exec chmod 755 {} \; + dh_fixperms -p$(p_snap) +ifeq ($(with_ada),yes) + find $(d_snap)/$(gcc_lib_dir) -name '*.ali' | xargs -r chmod 444 +endif + + mkdir -p $(d_snap)/usr/share/lintian/overrides + cp -p debian/gcc-snapshot.overrides \ + $(d_snap)/usr/share/lintian/overrides/$(p_snap) + + ( \ + echo 'libgcc_s $(GCC_SONAME) ${p_snap} (>= $(DEB_VERSION))'; \ + echo 'libobjc $(OBJC_SONAME) ${p_snap} (>= $(DEB_VERSION))'; \ + echo 'libgfortran $(FORTRAN_SONAME) ${p_snap} (>= $(DEB_VERSION))'; \ + echo 'libffi $(FFI_SONAME) ${p_snap} (>= $(DEB_VERSION))'; \ + echo 'libgomp $(GOMP_SONAME) ${p_snap} (>= $(DEB_VERSION))'; \ + echo 'libgnat-$(GNAT_SONAME) 1 ${p_snap} (>= $(DEB_VERSION))'; \ + echo 'libgnarl-$(GNAT_SONAME) 1 ${p_snap} (>= $(DEB_VERSION))'; \ + ) > debian/shlibs.local + + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) \ + dh_shlibdeps -p$(p_snap) -l$(CURDIR)/$(d_snap)/$(PF)/lib:$(CURDIR)/$(d_snap)/$(PF)/$(if $(filter $(DEB_TARGET_ARCH),amd64 ppc64),lib32,lib64):/usr/$(DEB_TARGET_GNU_TYPE)/lib + -sed -i -e 's/$(p_snap)[^,]*, //g' debian/$(p_snap).substvars + +ifeq ($(with_multiarch_lib),yes) + : # paths needed for relative lookups from startfile_prefixes + for ma in $(xarch_multiarch_names); do \ + mkdir -p $(d_snap)/lib/$$ma; \ + mkdir -p $(d_snap)/usr/lib/$$ma; \ + done +endif + + dh_gencontrol -p$(p_snap) -- $(common_substvars) \ + '-Vsnap:depends=$(snapshot_depends)' '-Vsnap:recommends=$(snapshot_recommends)' + dh_installdeb -p$(p_snap) + dh_md5sums -p$(p_snap) + dh_builddeb -p$(p_snap) + + trap '' 1 2 3 15; touch $@; mv $(install_snap_stamp)-tmp $(install_snap_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-softfloat.mk +++ gcc-7-7.5.0/debian/rules.d/binary-softfloat.mk @@ -0,0 +1,31 @@ +arch_binaries := $(arch_binaries) softfloat + +p_softfloat = gcc$(pkg_ver)-soft-float +d_softfloat = debian/$(p_softfloat) + +dirs_softfloat = \ + $(PFL)/$(libdir) \ + $(gcc_lib_dir) + +files_softfloat = \ + $(PFL)/$(libdir)/soft-float \ + $(gcc_lib_dir)/soft-float + +# ---------------------------------------------------------------------- +$(binary_stamp)-softfloat: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_softfloat) + dh_installdirs -p$(p_softfloat) $(dirs_softfloat) + $(dh_compat2) dh_movefiles -p$(p_softfloat) $(files_softfloat) + rm -rf $(d_softfloat)/$(PFL)/$(libdir)/soft-float/libssp.so* + mv $(d_softfloat)/$(PFL)/$(libdir)/soft-float/libssp.a \ + $(d_softfloat)/$(PFL)/$(libdir)/soft-float/libssp_nonshared.a + debian/dh_doclink -p$(p_softfloat) $(p_xbase) + dh_strip -p$(p_softfloat) + dh_shlibdeps -p$(p_softfloat) + echo $(p_softfloat) >> debian/arch_binaries + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) --- gcc-7-7.5.0.orig/debian/rules.d/binary-source.mk +++ gcc-7-7.5.0/debian/rules.d/binary-source.mk @@ -0,0 +1,53 @@ +indep_binaries := $(indep_binaries) gcc-source + +ifeq ($(BACKPORT),true) + p_source = gcc$(pkg_ver)-$(GCC_VERSION)-source +else + p_source = gcc$(pkg_ver)-source +endif +d_source= debian/$(p_source) + +$(binary_stamp)-gcc-source: $(install_stamp) + dh_testdir + dh_testroot + + dh_installdocs -p$(p_source) + dh_installchangelogs -p$(p_source) + + dh_install -p$(p_source) $(gcc_tarball) usr/src/gcc$(pkg_ver) +ifneq (,$(gdc_tarball)) + dh_install -p$(p_source) $(gdc_tarball) usr/src/gcc$(pkg_ver) +endif + tar cf - $$(find './debian' -mindepth 1 \( \ + -name .svn -prune -o \ + -path './debian/.debhelper' -prune -o \ + -path './debian/gcc-*' -type d -prune -o \ + -path './debian/cpp-*' -type d -prune -o \ + -path './debian/*fortran*' -type d -prune -o \ + -path './debian/lib*' -type d -prune -o \ + -path './debian/patches/*' -prune -o \ + -path './debian/tmp*' -prune -o \ + -path './debian/files' -prune -o \ + -path './debian/rules.d/*' -prune -o \ + -path './debian/rules.parameters' -prune -o \ + -path './debian/soname-cache' -prune -o \ + -path './debian/*substvars*' -prune -o \ + -path './debian/gcc-snapshot*' -prune -o \ + -path './debian/*[0-9]*.p*' -prune -o \ + -path './debian/*$(pkg_ver)[.-]*' -prune -o \ + -print \) ) \ + | tar -x -C $(d_source)/usr/src/gcc$(pkg_ver) -f - + # FIXME: Remove generated files + find $(d_source)/usr/src/gcc$(pkg_ver) -name '*.debhelper.log' -o -name .svn | xargs rm -rf + + touch $(d_source)/usr/src/gcc$(pkg_ver)/debian/rules.parameters + + dh_link -p$(p_source) \ + /usr/src/gcc$(pkg_ver)/debian/patches /usr/src/gcc$(pkg_ver)/patches + + mkdir -p $(d_source)/usr/share/lintian/overrides + cp -p debian/$(p_source).overrides \ + $(d_source)/usr/share/lintian/overrides/$(p_source) + echo $(p_source) >> debian/indep_binaries + + touch $@ --- gcc-7-7.5.0.orig/debian/rules.defs +++ gcc-7-7.5.0/debian/rules.defs @@ -0,0 +1,2085 @@ +# -*- makefile -*- +# definitions used in more than one Makefile / rules file + +NJOBS := +USE_CPUS := 1 +ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) + USE_CPUS := $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) + NJOBS := -j $(USE_CPUS) +endif + +# common vars +SHELL = /bin/bash -e # brace expansion used in rules file +srcdir = $(CURDIR)/src +builddir = $(CURDIR)/build +builddir_jit = $(CURDIR)/build-jit +builddir_nvptx = $(CURDIR)/build-nvptx +builddir_hppa64 = $(CURDIR)/build-hppa64 +stampdir = stamps + +distribution := $(shell lsb_release -is) +distrelease := $(shell lsb_release -cs) +derivative := $(shell if dpkg-vendor --derives-from Ubuntu; then echo Ubuntu; \ + elif dpkg-vendor --derives-from Debian; then echo Debian; \ + else echo Unknown; fi) + +# On non official archives, "lsb_release -cs" default to "n/a". Assume +# sid in that case +ifeq ($(distrelease),n/a) +distrelease := sid +endif + +on_buildd := $(shell [ -f /CurrentlyBuilding -o "$$LOGNAME" = buildd ] && echo yes) + +# creates {srcdir,builddir}_{hppa64,neon} +$(foreach x,srcdir builddir,$(foreach target,hppa64 neon,$(eval \ + $(x)_$(target) := $($(x))-$(target)))) + +# for architecture dependent variables and changelog vars +vafilt = $(subst $(2)=,,$(filter $(2)=%,$(1))) +# for rules.sonames +vafilt_defined = 1 + +dpkg_target_vars := $(shell (dpkg-architecture | grep -q DEB_TARGET) && echo yes) +ifeq ($(dpkg_target_vars),yes) + DEB_TARGET_ARCH= + DEB_TARGET_ARCH_BITS= + DEB_TARGET_ARCH_CPU= + DEB_TARGET_ARCH_ENDIAN= + DEB_TARGET_ARCH_OS= + DEB_TARGET_GNU_CPU= + DEB_TARGET_GNU_SYSTEM= + DEB_TARGET_GNU_TYPE= + DEB_TARGET_MULTIARCH= +endif + +DPKG_VARS := $(shell dpkg-architecture) +ifeq ($(dpkg_target_vars),yes) + DPKG_VARS := $(filter-out DEB_TARGET_%, $(DPKG_VARS)) +endif +DEB_BUILD_ARCH ?= $(call vafilt,$(DPKG_VARS),DEB_BUILD_ARCH) +DEB_BUILD_GNU_TYPE ?= $(call vafilt,$(DPKG_VARS),DEB_BUILD_GNU_TYPE) +DEB_BUILD_MULTIARCH ?= $(call vafilt,$(DPKG_VARS),DEB_BUILD_MULTIARCH) +DEB_HOST_ARCH ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH) +DEB_HOST_GNU_CPU ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_CPU) +DEB_HOST_GNU_SYSTEM ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_SYSTEM) +DEB_HOST_GNU_TYPE ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_TYPE) +DEB_HOST_MULTIARCH ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_MULTIARCH) + +ifeq ($(derivative),Ubuntu) + ifeq (,$(filter $(distrelease),dapper hardy lucid precise quantal raring saucy trusty)) + ifeq ($(DEB_BUILD_GNU_TYPE),i486-linux-gnu) + DEB_BUILD_GNU_TYPE = i686-linux-gnu + endif + ifeq ($(DEB_HOST_GNU_TYPE),i486-linux-gnu) + DEB_HOST_GNU_TYPE = i686-linux-gnu + endif + endif +else + ifneq (,$(filter $(distrelease),lenny etch squeeze wheezy)) + # keep dpkg defaults + else ifneq (,$(filter $(distrelease),jessie)) + ifeq ($(DEB_BUILD_GNU_TYPE),i486-linux-gnu) + DEB_BUILD_GNU_TYPE = i586-linux-gnu + endif + ifeq ($(DEB_HOST_GNU_TYPE),i486-linux-gnu) + DEB_HOST_GNU_TYPE = i586-linux-gnu + endif + else + # stretch and newer ... + DEB_BUILD_GNU_TYPE := $(subst i586,i686,$(DEB_BUILD_GNU_TYPE)) + DEB_HOST_GNU_TYPE := $(subst i586,i686,$(DEB_HOST_GNU_TYPE)) + endif +endif + +CHANGELOG_VARS := $(shell dpkg-parsechangelog | \ + sed -n 's/ /_/g;/^[^_]/s/^\([^:]*\):_\(.*\)/\1=\2/p') + +# the name of the source package +PKGSOURCE := $(call vafilt,$(CHANGELOG_VARS),Source) +# those are required here too +SOURCE_VERSION := $(call vafilt,$(CHANGELOG_VARS),Version) +DEB_VERSION := $(strip $(shell echo $(SOURCE_VERSION) | \ + sed -e 's/.*://' -e 's/ds[0-9]*//')) +# epoch used for gcc versions up to 3.3.x, now used for some remaining +# libraries: libgcc1, libobjc1 +EPOCH := 1 +DEB_EVERSION := $(EPOCH):$(DEB_VERSION) +BASE_VERSION := $(shell echo $(DEB_VERSION) | sed -e 's/\([1-9]\).*-.*/\1/') + +ifneq (,$(findstring gcc-snapshot, $(PKGSOURCE))) + single_package = yes + trunk_build = yes +else ifneq (,$(findstring gcc-linaro, $(PKGSOURCE))) + single_package = yes + trunk_build = no +else + # --program-suffix=-$(BASE_VERSION) + versioned_packages := yes +endif + +# push glibc stack traces into stderr +export LIBC_FATAL_STDERR_=1 + +# --------------------------------------------------------------------------- +# set target +# - GNU triplet via DEB_TARGET_GNU_TYPE +# - Debian arch in debian/target +# - Debian arch via DEB_GCC_TARGET or GCC_TARGET +# +# alias +ifdef GCC_TARGET + DEB_GCC_TARGET := $(GCC_TARGET) +endif +ifdef DEB_TARGET_GNU_TYPE + TARGET_VARS := $(shell dpkg-architecture -f -t$(DEB_TARGET_GNU_TYPE) 2>/dev/null) +else + # allow debian/target to be used instead of DEB_GCC_TARGET - this was requested + # by toolchain-source maintainer + DEBIAN_TARGET_FILE := $(strip $(if $(wildcard debian/target),$(shell cat debian/target 2>/dev/null))) + ifndef DEB_TARGET_ARCH + ifneq (,$(DEBIAN_TARGET_FILE)) + DEB_TARGET_ARCH := $(DEBIAN_TARGET_FILE) + else + ifdef DEB_GCC_TARGET + DEB_TARGET_ARCH := $(DEB_GCC_TARGET) + else + DEB_TARGET_ARCH := $(DEB_HOST_ARCH) + endif + endif + endif + TARGET_VARS := $(shell dpkg-architecture -f -a$(DEB_TARGET_ARCH) 2>/dev/null) +endif +ifeq ($(dpkg_target_vars),yes) + TARGET_VARS := $(filter-out DEB_TARGET_%, $(TARGET_VARS)) +endif + +DEB_TARGET_ARCH := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH) +DEB_TARGET_ARCH_OS := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_OS) +DEB_TARGET_ARCH_CPU := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_CPU) +DEB_TARGET_GNU_CPU := $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_CPU) +DEB_TARGET_GNU_TYPE := $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_TYPE) +DEB_TARGET_GNU_SYSTEM := $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_SYSTEM) +DEB_TARGET_MULTIARCH := $(call vafilt,$(TARGET_VARS),DEB_HOST_MULTIARCH) +DEB_TARGET_ARCH_ABI := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_ABI) +DEB_TARGET_ARCH_BITS := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_BITS) +DEB_TARGET_ARCH_ENDIAN := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_ENDIAN) +DEB_TARGET_ARCH_LIBC := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_LIBC) +export DEB_TARGET_ARCH DEB_TARGET_ARCH_ABI DEB_TARGET_ARCH_BITS \ + DEB_TARGET_ARCH_CPU DEB_TARGET_ARCH_OS DEB_TARGET_ARCH_ENDIAN \ + DEB_TARGET_ARCH_LIBC DEB_TARGET_GNU_CPU DEB_TARGET_GNU_TYPE \ + DEB_TARGET_GNU_SYSTEM DEB_TARGET_MULTIARCH + +ifeq ($(derivative),Ubuntu) + ifeq (,$(filter $(distrelease),dapper lucid)) + ifeq ($(DEB_TARGET_GNU_TYPE),i486-linux-gnu) + DEB_TARGET_GNU_TYPE = i586-linux-gnu + endif + endif +else + ifneq (,$(filter $(distrelease),stretch)) + DEB_TARGET_GNU_TYPE := $(subst i586,i686,$(DEB_TARGET_GNU_TYPE)) + i586_symlinks = $(if $(findstring i686,$(DEB_TARGET_GNU_TYPE)),yes) + endif +endif + +ifeq ($(DEB_TARGET_ARCH),) + $(error Invalid architecure.) +endif + +# Force this, people get confused about the default. See #760770. +override with_deps_on_target_arch_pkgs := + +# including unversiond symlinks for binaries +#with_unversioned = yes + +# --------------------------------------------------------------------------- +# cross-compiler config +ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) + ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_TARGET_GNU_TYPE)) + # cross building a cross compiler, untested. + DEB_CROSS = yes + build_type = cross-build-cross + else + # cross building the native compiler + build_type = cross-build-native + endif +else + ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_TARGET_GNU_TYPE)) + # cross compiler, sets WITH_SYSROOT on it's own + DEB_CROSS = yes + build_type = build-cross + else ifeq ($(FORCE_CROSS_LAYOUT),yes) + # a native build with a cross layout + DEB_CROSS = yes + build_type = build-cross + else + # native build + build_type = build-native + endif +endif + +# --------------------------------------------------------------------------- +# cross compiler support +ifeq ($(DEB_CROSS),yes) + # TARGET: Alias to DEB_TARGET_ARCH (Debian arch name) + # TP: Target Prefix. Used primarily as a prefix for cross tool + # names (e.g. powerpc-linux-gcc). + # TS: Target Suffix. Used primarily at the end of cross compiler + # package names (e.g. gcc-powerpc). + # LS: Library Suffix. Used primarily at the end of cross compiler + # library package names (e.g. libgcc-powerpc-cross). + # AQ: Arch Qualifier. Used for cross-arch dependencies + DEB_TARGET_ALIAS ?= $(DEB_TARGET_GNU_TYPE) + TARGET := $(DEB_TARGET_ARCH) + TP := $(subst _,-,$(DEB_TARGET_GNU_TYPE))- + TS := -$(subst _,-,$(DEB_TARGET_ALIAS)) + LS := -$(subst _,-,$(DEB_TARGET_ARCH))-cross + AQ := + + cross_bin_arch := -$(subst _,-,$(DEB_TARGET_ALIAS)) + cross_lib_arch := -$(subst _,-,$(DEB_TARGET_ARCH))-cross + cmd_prefix := $(DEB_TARGET_GNU_TYPE)- + + TARGET_ALIAS := $(DEB_TARGET_ALIAS) + + lib_binaries := indep_binaries + cross_shlibdeps = DEB_HOST_ARCH=$(TARGET) ARCH=$(DEB_TARGET_ARCH) MAKEFLAGS="CC=something" + cross_gencontrol = DEB_HOST_ARCH=$(TARGET) + cross_makeshlibs = DEB_HOST_ARCH=$(TARGET) + cross_clean = DEB_HOST_ARCH=$(TARGET) +else + TARGET_ALIAS := $(DEB_TARGET_GNU_TYPE) + + ifeq ($(TARGET_ALIAS),i386-gnu) + TARGET_ALIAS := i586-gnu + endif + + ifeq ($(single_package),yes) + cmd_prefix := + unprefixed_names := + else + cmd_prefix := $(DEB_TARGET_GNU_TYPE)- + unprefixed_names := yes + endif + + #ifeq ($(TARGET_ALIAS),i486-linux-gnu) + # TARGET_ALIAS := i686-linux-gnu + #endif + + TARGET_ALIAS := $(subst i386,i486,$(TARGET_ALIAS)) + + # configure as linux-gnu, not linux + #ifeq ($(findstring linux,$(TARGET_ALIAS))/$(findstring linux-gnu,$(TARGET_ALIAS)),linux/) + # TARGET_ALIAS := $(TARGET_ALIAS)-gnu + #endif + + # configure as linux, not linux-gnu + #TARGET_ALIAS := $(subst linux-gnu,linux,$(TARGET_ALIAS)) + + lib_binaries := arch_binaries + cross_shlibdeps := + cross_gencontrol := + cross_makeshlibs := + # FIXME: Ignore missing symbols for a first build ... + #cross_makeshlibs := - + cross_clean := +endif + +printarch: + @echo DEB_TARGET_ARCH: $(DEB_TARGET_ARCH) + @echo DEB_TARGET_ARCH_OS: $(DEB_TARGET_ARCH_OS) + @echo DEB_TARGET_ARCH_CPU: $(DEB_TARGET_ARCH_CPU) + @echo DEB_TARGET_GNU_SYSTEM: $(DEB_TARGET_GNU_SYSTEM) + @echo DEB_TARGET_MULTIARCH: $(DEB_TARGET_MULTIARCH) + @echo MULTIARCH_CONFARG: $(MULTIARCH_CONFARG) + @echo TARGET_ALIAS: $(TARGET_ALIAS) + @echo TP: $(TP) + @echo TS: $(TS) + +# ------------------------------------------------------------------- +# bootstrap options +ifdef WITH_BOOTSTRAP + # "yes" is the default and causes a 3-stage bootstrap. + # "off" runs a complete build with --disable-bootstrap + # "no" means to just build the first stage, and not create the stage1 + # directory. + # "lean" means a lean 3-stage bootstrap, i.e. delete each stage when no + # longer needed. + with_bootstrap = $(WITH_BOOTSTRAP) +endif +ifneq ($(findstring nostrap, $(DEB_BUILD_OPTIONS)),) + with_bootstrap := off +endif + +ifneq ($(findstring gccdebug, $(DEB_BUILD_OPTIONS)),) + with_bootstrap := off + DEB_BUILD_OPTIONS := $(DEB_BUILD_OPTIONS) nostrip + export DEB_BUILD_OPTIONS +endif + +ifneq ($(trunk_build),yes) + ifeq ($(build_type),build-native) + ifeq (,$(DEB_STAGE)) + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 armhf arm64 ppc64el s390x)) + with_bootstrap := profiled + endif + endif + endif +endif + +# ------------------------------------------------------------------- +# stage options +ifdef DEB_STAGE + with_cdev := yes + separate_lang := yes + # "stage1" is minimal compiler with static libgcc + # "stage2" is minimal compiler with shared libgcc + # "rtlibs" is a subset of target libraries, without compilers + ifeq ($(DEB_STAGE),stage1) + with_shared_libgcc := no + endif + ifeq ($(DEB_STAGE),stage2) + with_libgcc := yes + with_shared_libgcc := yes + endif + ifeq ($(DEB_STAGE),rtlibs) + with_rtlibs := libgcc libgomp libstdc++ libgfortran libquadmath + ifeq ($(DEB_CROSS),yes) + LS := + TS := + cross_lib_arch := + endif + endif +endif + +ifeq ($(BACKPORT),true) + with_dev := no + with_source := yes + with_base_only := yes +endif + +# ------------------------------------------------------------------- +# sysroot options +ifdef WITH_SYSROOT + with_sysroot = $(WITH_SYSROOT) +endif +ifdef WITH_BUILD_SYSROOT + with_build_sysroot = $(WITH_BUILD_SYSROOT) +endif + +# ------------------------------------------------------------------- +# for components configuration + +COMMA = , +SPACE = $(EMPTY) $(EMPTY) + +# lang= overwrites all of nolang=, overwrites all of WITHOUT_LANG + +DEB_LANG_OPT := $(filter lang=%,$(DEB_BUILD_OPTIONS)) +DEB_LANG := $(strip $(subst $(COMMA), ,$(patsubst lang=%,%,$(DEB_LANG_OPT)))) +DEB_NOLANG_OPT := $(filter nolang=%,$(DEB_BUILD_OPTIONS)) +DEB_NOLANG := $(strip $(subst $(COMMA), ,$(patsubst nolang=%,%,$(DEB_NOLANG_OPT)))) +lfilt = $(strip $(if $(DEB_LANG), \ + $(if $(filter $(1) $(2),$(DEB_LANG)),yes),$(3))) +nlfilt = $(strip $(if $(DEB_NOLANG), \ + $(if $(filter $(1) $(2),$(DEB_NOLANG)),disabled by $(DEB_NOLANG_OPT),$(3)))) +wlfilt = $(strip $(if $(filter $(1) $(2), $(subst $(COMMA), ,$(WITHOUT_LANG))), \ + disabled by WITHOUT_LANG=$(WITHOUT_LANG),$(3))) +envfilt = $(strip $(or $(call lfilt,$(1),$(2)),$(call nlfilt,$(1),$(3)),$(call wlfilt,$(1),$(3)),$(4))) + +# ------------------------------------------------------------------- +# architecture specific config + +ifeq ($(DEB_TARGET_ARCH),armhf) + ifeq ($(distribution),Raspbian) + with_arm_thumb := no + else + with_arm_thumb := yes + endif +else + ifeq ($(derivative)-$(DEB_TARGET_ARCH),Ubuntu-armel) + ifneq (,$(filter $(distrelease),lucid maverick natty oneiric precise)) + with_arm_thumb := yes + endif + endif +endif + +# build using fsf or linaro +ifeq ($(distribution),Ubuntu) + ifneq (,$(findstring $(DEB_TARGET_ARCH),arm64 armel armhf)) + with_linaro_branch = yes + endif +endif + +# build using fsf or the ibm branch +ifeq ($(distribution),Ubuntu) + ifneq (,$(findstring $(DEB_TARGET_ARCH),ppc64el)) + #with_ibm_branch = yes + endif +endif + +ifneq (,$(findstring gcc-snapshot, $(PKGSOURCE))) + with_linaro_branch = + with_ibm_branch = +else ifneq (,$(findstring gcc-linaro, $(PKGSOURCE))) + with_ibm_branch = +endif + +# check if we're building for armel or armhf +ifneq (,$(filter %eabihf,$(DEB_TARGET_GNU_SYSTEM))) + float_abi := hard +else ifneq (,$(filter $(distribution)-$(DEB_TARGET_ARCH), Ubuntu-armel)) + ifneq (,$(filter $(distrelease),lucid maverick natty oneiric precise)) + float_abi := softfp + else + float_abi := soft + endif +else ifneq (,$(filter $(DEB_TARGET_ARCH), arm armel)) + float_abi := soft +endif + +# ------------------------------------------------------------------- +# basic config + +# allows to wrote backtraces for ICEs +#unstripped_exe = yes + +# common things --------------- +# build common packages, where package names don't differ in different +# gcc versions (fixincludes, ...) +#with_common_pkgs := yes +# ... and some libraries, which do not change (libgcc1, libssp0). +#with_common_libs := yes +# XXX: should with_common_libs be "yes" only if this is the default compiler +# version on the targeted arch? + +# is this a multiarch-enabled build? +ifeq (,$(filter $(distrelease),lenny etch squeeze dapper hardy jaunty karmic lucid maverick)) + with_multiarch_lib := yes +endif + +ifeq ($(with_multiarch_lib),yes) + ifneq ($(single_package),yes) + ifneq ($(DEB_CROSS),yes) + with_multiarch_cxxheaders := yes + endif + endif +endif + +ifeq (,$(filter $(distrelease),lenny etch squeeze dapper hardy jaunty karmic lucid maverick)) + multiarch_stage1 := yes +endif + +MIPS_R6_ENABLED = no +ifeq (,$(filter $(distrelease),lenny etch squeeze wheezy jessie dapper hardy jaunty karmic lucid maverick natty oneiric precise quantal raring saucy trusty utopic vivid wily xenial yakkety zesty artful)) + MIPS_R6_ENABLED = yes +endif + +# mapping for the non-default biarch multilib / multiarch names +multiarch_xarch_map = \ + amd64=i386-linux-gnu,x86_64-linux-gnux32 \ + armel=arm-linux-gnueabi \ + armhf=arm-linux-gnueabihf \ + i386=x86_64-linux-gnu,x86_64-linux-gnux32 \ + powerpc=powerpc64-linux-gnu \ + ppc64=powerpc-linux-gnu \ + sparc=sparc64-linux-gnu \ + sparc64=sparc-linux-gnu \ + s390=s390x-linux-gnu \ + s390x=s390-linux-gnu \ + mips=mips64-linux-gnuabin32,mips64-linux-gnuabi64 \ + mipsel=mips64el-linux-gnuabin32,mips64el-linux-gnuabi64 \ + mipsn32=mips-linux-gnu,mips64-linux-gnuabi64 \ + mipsn32el=mipsel-linux-gnu,mips64el-linux-gnuabi64 \ + mips64=mips-linux-gnu,mips64-linux-gnuabin32 \ + mips64el=mipsel-linux-gnu,mips64el-linux-gnuabin32 \ + mipsr6=mipsisa64r6-linux-gnuabin32,mipsisa64r6-linux-gnuabi64 \ + mipsr6el=mipsisa64r6el-linux-gnuabin32,mipsisa64r6el-linux-gnuabi64 \ + mipsn32r6=mipsisa32r6-linux-gnu,mipsisa64r6-linux-gnuabi64 \ + mipsn32r6el=mipsisa32r6el-linux-gnu,mipsisa64r6el-linux-gnuabi64 \ + mips64r6=mipsisa32r6-linux-gnu,mipsisa64r6-linux-gnuabin32 \ + mips64r6el=mipsisa32r6el-linux-gnu,mipsisa64r6el-linux-gnuabin32 \ + x32=x86_64-linux-gnu,i386-linux-gnu \ + kfreebsd-amd64=i386-kfreebsd-gnu +xarch_multiarch_names = $(subst $(COMMA),$(SPACE),$(patsubst $(DEB_TARGET_ARCH)=%,%, \ + $(filter $(DEB_TARGET_ARCH)=%,$(multiarch_xarch_map)))) + +multilib_multiarch_map = \ + $(DEB_TARGET_ARCH)/=$(DEB_TARGET_MULTIARCH) \ + amd64/32=i386-linux-gnu \ + amd64/x32=x86_64-linux-gnux32 \ + armel/hf=arm-linux-gnueabihf \ + armhf/sf=arm-linux-gnueabi \ + i386/64=x86_64-linux-gnu \ + i386/x32=x86_64-linux-gnux32 \ + powerpc/64=powerpc64-linux-gnu \ + ppc64/32=powerpc-linux-gnu \ + sparc/64=sparc64-linux-gnu \ + sparc64/32=sparc-linux-gnu \ + s390/64=s390x-linux-gnu \ + s390x/32=s390-linux-gnu \ + mips/n32=mips64-linux-gnuabin32 \ + mips/64=mips64-linux-gnuabi64 \ + mipsel/n32=mips64el-linux-gnuabin32 \ + mipsel/64=mips64el-linux-gnuabi64 \ + mipsn32/32=mips-linux-gnu \ + mipsn32/64=mips64-linux-gnuabi64 \ + mipsn32el/32=mipsel-linux-gnu \ + mipsn32el/64=mips64el-linux-gnuabi64 \ + mips64/32=mips-linux-gnu \ + mips64/n32=mips64-linux-gnuabin32 \ + mips64el/32=mipsel-linux-gnu \ + mips64el/n32=mips64el-linux-gnuabin32 \ + mipsr6/n32=mipsisa64r6-linux-gnuabin32 \ + mipsr6/64=mipsisa64r6-linux-gnuabi64 \ + mipsr6el/n32=mipsisa64r6el-linux-gnuabin32 \ + mipsr6el/64=mipsisa64r6el-linux-gnuabi64 \ + mipsn32r6/32=mipsisa32r6-linux-gnu \ + mipsn32r6/64=mipsisa64r6-linux-gnuabi64 \ + mipsn32r6el/32=mipsisa32r6el-linux-gnu \ + mipsn32r6el/64=mipsisa64r6el-linux-gnuabi64 \ + mips64r6/32=mipsisa32r6-linux-gnu \ + mips64r6/n32=mipsisa64r6-linux-gnuabin32 \ + mips64r6el/32=mipsisa32r6el-linux-gnu \ + mips64r6el/n32=mipsisa64r6el-linux-gnuabin32 \ + x32/32=i386-linux-gnu \ + x32/64=x86_64-linux-gnu \ + kfreebsd-amd64/32=i386-kfreebsd-gnu +# $(call mlib_to_march,|32|64|n32|x32|hf|sf) +mlib_to_march = $(patsubst $(DEB_TARGET_ARCH)/$(1)=%,%, \ + $(filter $(DEB_TARGET_ARCH)/$(1)=%,$(multilib_multiarch_map))) + +multilib_arch_map = \ + $(DEB_TARGET_ARCH)/=$(DEB_TARGET_ARCH) \ + amd64/32=i386 \ + amd64/x32=x32 \ + armel/hf=armhf \ + armhf/sf=armel \ + i386/64=amd64 \ + i386/x32=x32 \ + powerpc/64=ppc64 \ + ppc64/32=powerpc \ + sparc/64=sparc64 \ + sparc64/32=sparc \ + s390/64=s390x \ + s390x/32=s390 \ + mips/n32=mipsn32 \ + mips/64=mips64 \ + mipsel/n32=mipsn32el \ + mipsel/64=mips64el \ + mipsn32/32=mips \ + mipsn32/64=mips64 \ + mipsn32el/32=mipsel \ + mipsn32el/64=mips64el \ + mips64/32=mips \ + mips64/n32=mipsn32 \ + mips64el/32=mipsel \ + mips64el/n32=mipsn32el \ + mipsr6/n32=mipsn32r6 \ + mipsr6/64=mips64r6 \ + mipsr6el/n32=mipsn32r6el \ + mipsr6el/64=mips64r6el \ + mipsn32r6/32=mipsr6 \ + mipsn32r6/64=mips64r6 \ + mipsn32r6el/32=mipsr6el \ + mipsn32r6el/64=mips64r6el \ + mips64r6/32=mipsr6 \ + mips64r6/n32=mipsn32r6 \ + mips64r6el/32=mipsr6el \ + mips64r6el/n32=mipsn32r6el \ + x32/32=i386 \ + x32/64=amd64 \ + kfreebsd-amd64/32=kfreebsd-i386 +# $(call mlib_to_arch,|32|64|n32|x32|hf|sf) +mlib_to_arch = $(patsubst $(DEB_TARGET_ARCH)/$(1)=%,%, \ + $(filter $(DEB_TARGET_ARCH)/$(1)=%,$(multilib_arch_map))) + +# build -base packages +with_gccbase := yes +ifeq ($(build_type),build-cross) + ifneq ($(DEB_STAGE),rtlibs) + with_gcclbase := yes + endif +endif + +# build dev packages. +ifneq ($(DEB_STAGE),rtlibs) + with_dev := yes +endif + +with_cpp := yes + +# set lang when built from a different source package. +separate_lang := no + +#no_dummy_cpus := ia64 i386 hppa s390 sparc +#ifneq (,$(filter $(DEB_TARGET_ARCH_CPU),$(no_dummy_cpus))) +# with_base_only := no +# with_common_libs := yes +# with_common_pkgs := yes +#else +# with_base_only := yes +# with_common_libs := no +# with_common_pkgs := no +# with_dev := no +#endif + +ifeq ($(versioned_packages),yes) + pkg_ver := -$(BASE_VERSION) + PV := $(pkg_ver) +endif + +# ------------------------------------------------------------------- +# configure languages + +# C --------------------------- +enabled_languages := c + +with_jit = yes + +# FIXME: compiler bug +jit_no_cpus := ia64 + +ifneq (,$(filter $(DEB_TARGET_ARCH_CPU),$(jit_no_cpus))) + with_jit := disabled for cpu $(DEB_TARGET_ARCH_CPU) +endif +ifneq (,$(with_rtlibs)) + with_jit := disabled for rtlibs stage +endif +with_jit := $(call envfilt, jit, , , $(with_jit)) + +ifeq (,$(findstring gcc-,$(PKGSOURCE))) + with_jit := +endif + +ifneq (,$(findstring build-cross, $(build_type))) + with_jit := disabled for cross builds +endif + +ifeq ($(with_jit),yes) + ifeq ($(with_common_libs),yes) + with_libgccjit := yes + endif +endif + +nvptx_archs := amd64 +ifneq (,$(filter $(DEB_TARGET_ARCH),$(nvptx_archs))) + offload_targets += nvptx-none + with_offload_nvptx := yes +endif +ifneq (,$(findstring build-cross, $(build_type))) + with_offload_nvptx := disabled for cross builds +endif + +ifeq ($(single_package),yes) + with_offload_nvptx := disabled for snapshot builds +endif +with_offload_nvptx := $(call envfilt, nvptx, , , $(with_offload_nvptx)) + +with_cc1 := yes +with_cc1 := $(call envfilt, cc1, , , $(with_cc1)) + +ifeq ($(with_cc1),yes) + ifeq ($(with_common_libs),yes) + with_libcc1 := yes + endif + with_libcc1_plugin := yes +endif + +ifneq (,$(with_rtlibs)) + with_libcc1 := disabled for rtlibs stage + with_libcc1_plugin := disabled for rtlibs stage +endif +ifneq (,$(findstring build-cross, $(build_type))) + with_libcc1 := disabled for cross builds +endif + +# Build all packages needed for C development +ifneq ($(with_base_only),yes) + ifeq ($(with_dev),yes) + with_cdev := yes + endif +endif + +ifeq (,$(filter $(DEB_STAGE),stage1 stage2)) +# Ada -------------------- +ada_no_cpus := m32r riscv64 sh3 sh3eb sh4eb +# no Debian builds ... some of these should exist +# ... cross-build-native cross-builds a non-working compiler ... +ifneq (,$(filter $(build_type), build-native)) + ada_no_cpus += m68k # see https://bugs.debian.org/868365 +endif +ada_no_systems := +ada_no_cross := no +ada_no_snap := no +ifeq ($(single_package),yes) + ifneq (,$(filter $(DEB_TARGET_ARCH),powerpcspe)) + ada_no_snap := yes + endif +endif + +ifeq ($(with_dev),yes) + ifneq ($(separate_lang),yes) + with_ada := yes + endif +endif +ifneq (,$(filter $(DEB_TARGET_ARCH_CPU),$(ada_no_cpus))) + with_ada := disabled for cpu $(DEB_TARGET_ARCH_CPU) +endif +ifneq (,$(findstring $(DEB_TARGET_GNU_SYSTEM),$(ada_no_systems))) + with_ada := disabled for system $(DEB_TARGET_GNU_SYSTEM) +endif +ifeq ($(ada_no_cross)-$(DEB_CROSS),yes-yes) + with_ada := disabled for cross compiler package +endif +ifeq ($(ada_no_snap)-$(single_package),yes-yes) + with_ada := disabled for snapshot build +endif +ifneq (,$(findstring gccgo,$(PKGSOURCE))) + with_ada := +endif +ifneq (,$(filter $(distrelease),lucid)) + with_ada := +endif +with_ada := $(call envfilt, ada, , , $(with_ada)) + +ifeq ($(DEB_STAGE)-$(filter libgnat, $(with_rtlibs)),rtlibs-) + with_ada := disabled for rtlibs stage +endif + +#ifneq ($(single_package),yes) +# with_separate_gnat := yes +#endif + +ifneq ($(with_separate_gnat),yes) + ifeq ($(with_ada),yes) + ifneq (,$(filter $(distrelease),squeeze lucid)) + with_ada := + endif + endif +endif + +ifeq ($(with_ada)-$(with_separate_gnat),yes-yes) + ifneq (,$(findstring gnat,$(PKGSOURCE))) + languages := c + separate_lang := yes + with_mudflap := no + with_gccbase := no + with_cdev := no + with_cc1 := no + with_libcc1 := no + else + debian_extra_langs += ada + with_ada := built from separate source + with_libgnat := built from separate source + endif +endif + +ifeq ($(with_ada),yes) + enabled_languages += ada + with_libgnat := yes + with_gnatsjlj := yes +endif + +# C++ ------------------------- +cxx_no_cpus := avr +ifneq ($(with_base_only),yes) + ifneq ($(separate_lang),yes) + with_cxx := yes + endif +endif +ifneq (,$(findstring $(DEB_TARGET_ARCH_CPU),$(cxx_no_cpus))) + with_cxx := disabled for cpu $(DEB_TARGET_ARCH_CPU) +endif +with_cxx := $(call envfilt, c++, obj-c++, , $(with_cxx)) + +# Set the default libstdc++ ABI. libstdc++ provides both ABI's. +# Existing code still runs with the new c++11 ABI, however link +# errors are seen when one object is compiled with the new std::string in scope, +# another object is compiled with the old std::string in scope. both can link +# to libstdc++.so but not to each other. +# two objects (which might be some system library and a user's program) need to +# agree on the version of std::string they're using + +libstdcxx_abi = new +# backports default to the old ABI +ifneq (,$(filter $(distrelease),squeeze wheezy jessie lucid precise trusty utopic vivid)) + libstdcxx_abi = gcc4-compatible +endif + +# Build all packages needed for C++ development +ifeq ($(with_cxx),yes) + ifeq ($(with_dev),yes) + with_cxxdev := yes + with_libcxxdbg := yes + endif + ifeq ($(with_common_libs),yes) + with_libcxx := yes + endif + + # debugging versions of libstdc++ + ifneq (,$(findstring gcc-, $(PKGSOURCE))) + ifeq ($(with_cxxdev),yes) + with_cxx_debug := yes + debug_no_cpus := + ifneq (,$(findstring $(DEB_TARGET_ARCH_CPU),$(debug_no_cpus))) + with_cxx_debug := disabled for cpu $(DEB_TARGET_GNU_CPU) + endif + endif + endif + with_cxx_debug := $(call envfilt, debug, , , $(with_cxx_debug)) + + enabled_languages += c++ +endif + +# Go ------------------- +# - To build a standalone gccgo package (with no corresponding gcc +# package): with_separate_libgo=yes, with_standalone_go=yes +# - To build the go packages from the gcc source package: +# with_separate_libgo=no, with_standalone_go=no +# - To build gcc and go from separate sources: +# with_separate_libgo=yes, with_standalone_go=no + +go_no_cross := yes +go_no_cross := no + +ifneq (,$(findstring gccgo, $(PKGSOURCE))) + with_separate_libgo := yes + with_standalone_go := yes + with_cc1 := + with_libcc1 := +endif + +go_no_cpus := avr arm hppa riscv64 sh4 +ifeq (,$(filter $(distrelease),lenny etch squeeze dapper hardy jaunty karmic lucid maverick natty oneiric)) + go_no_cpus := $(filter-out arm, $(go_no_cpus)) +endif +go_no_systems := kfreebsd + +ifneq ($(with_base_only),yes) + ifneq ($(separate_lang),yes) + with_go := yes + endif +endif +ifneq (,$(filter $(DEB_TARGET_ARCH_CPU),$(go_no_cpus))) + with_go := disabled for cpu $(DEB_TARGET_ARCH_CPU) +endif +ifneq (,$(findstring $(DEB_TARGET_ARCH_OS),$(go_no_systems))) + with_go := disabled for system $(DEB_TARGET_GNU_SYSTEM) +endif +ifeq ($(go_no_cross)-$(DEB_CROSS),yes-yes) + with_go := disabled for cross compiler package +endif +ifeq ($(DEB_STAGE)-$(filter libgo, $(with_rtlibs)),rtlibs-) + with_go := disabled for rtlibs stage +endif +with_go := $(call envfilt, go, , , $(with_go)) + +# Build all packages needed for Go development +ifneq (,$(findstring gcc, $(PKGSOURCE))) + ifeq ($(with_go),yes) + with_libgo := yes + enabled_languages += go + endif +endif + +ifeq ($(with_go)-$(with_separate_libgo),yes-yes) + ifneq (,$(findstring gccgo, $(PKGSOURCE))) + languages := c c++ go + separate_lang := yes + with_libgcc := yes + with_shared_libgcc := yes + else + debian_extra_langs += go + with_go := built from separate source + with_libgo := buit from separate source + endif +endif + +# BRIG --------------------------- + +with_brig := no +ifneq (,$(filter $(DEB_TARGET_ARCH),amd64 i386 x32)) + with_brig := yes +endif +with_brig := $(call envfilt, brig, , , $(with_brig)) + +ifeq ($(with_brig),yes) + with_brigdev := yes + ifeq ($(with_common_libs),yes) + with_libhsailrt := yes + endif + enabled_languages += brig +endif + +# D --------------------------- +d_no_cross := yes +d_no_snap := yes +d_no_cpus := s390 + +ifneq ($(single_package),yes) + with_separate_gdc := yes +endif +with_separate_gdc := no + +ifneq ($(separate_lang),yes) + with_d := yes +endif + +ifneq (,$(filter $(DEB_TARGET_ARCH_CPU),$(d_no_cpus))) + with_d := disabled for cpu $(DEB_TARGET_ARCH_CPU) +endif +ifeq ($(d_no_snap)-$(single_package),yes-yes) + with_d := disabled for snapshot build +endif +ifeq ($(DEB_STAGE)-$(filter libphobos, $(with_rtlibs)),rtlibs-) + with_d := disabled for rtlibs stage +endif +ifeq ($(GENERATE_DFSG_TARBALL),yes) + with_d := disabled while generating the dfsg tarball +endif +with_d := $(call envfilt, d, , , $(with_d)) +#with_d := not yet built for GCC 7 + +ifeq ($(with_base_only),yes) + with_d := no +endif + +ifeq ($(with_d)-$(with_separate_gdc),yes-yes) + ifneq (,$(findstring gdc,$(PKGSOURCE))) + languages := c c++ + separate_lang := yes + + # FIXME: language selection needs improvement. + with_go := disabled for d + else + debian_extra_langs += d + with_d := built from separate source + endif +endif + +ifeq ($(with_d),yes) + libphobos_archs = amd64 armel armhf i386 x32 kfreebsd-amd64 kfreebsd-i386 + ifneq (,$(filter $(DEB_TARGET_ARCH), $(libphobos_archs))) + with_libphobos := yes + endif + + libphobos_no_cpus := alpha avr arm64 hppa ia64 m68k \ + mips mipsel mips64 mips64el mipsn32 mipsn32el \ + mipsr6 mipsr6el mips64r6 mips64r6el mipsn32r6 mipsn32r6el \ + powerpc powerpcspe ppc64 s390 s390x sh4 sparc sparc64 + libphobos_no_systems := gnu kfreebsd-gnu + ifneq (,$(filter $(DEB_TARGET_ARCH_CPU),$(libphobos_no_cpus))) + with_libphobos := disabled for cpu $(DEB_TARGET_ARCH_CPU) + endif + ifneq (,$(filter $(DEB_TARGET_GNU_SYSTEM),$(libphobos_no_systems))) + with_libphobos := disabled for system $(DEB_TARGET_GNU_SYSTEM) + endif + with_libphobosdev := $(with_libphobos) + + enabled_languages += d +endif + +# Fortran 95 ------------------- +fortran_no_cross := yes +fortran_no_cross := no + +ifneq ($(with_base_only),yes) + ifneq ($(separate_lang),yes) + with_fortran := yes + endif +endif +ifeq ($(fortran_no_cross)-$(DEB_CROSS),yes-yes) + with_fortran := disabled for cross compiler package +endif +ifeq ($(DEB_STAGE)-$(filter libgfortran libquadmath, $(with_rtlibs)),rtlibs-) + with_fortran := disabled for rtlibs stage +endif + +with_fortran := $(call envfilt, fortran, , , $(with_fortran)) + +# Build all packages needed for Fortran development +ifeq ($(with_fortran),yes) + ifeq ($(with_dev),yes) + ifneq ($(DEB_STAGE)-$(filter libgfortran libquadmath, $(with_rtlibs)),rtlibs-) + with_fdev := yes + endif + endif + #ifeq ($(with_common_libs),yes) + with_libgfortran := yes + #endif + enabled_languages += fortran +endif + +# libquadmath ------------------- + +ifneq (,$(findstring $(DEB_TARGET_ARCH_CPU), ia64 i386 i486 i586 i686 amd64)) + # FIXME: upstream build tied to gfortran build + ifeq ($(with_fortran),yes) + with_qmath := yes + ifneq (,$(findstring gcc-7,$(PKGSOURCE))) + ifeq ($(with_common_libs),yes) + with_libqmath := yes + endif + endif + endif +endif + +# ObjC ------------------------ +objc_no_cross := no + +ifneq ($(with_base_only),yes) + ifneq ($(separate_lang),yes) + with_objc := yes + objc_no_archs = + ifneq (,$(filter $(DEB_TARGET_ARCH),$(objc_no_archs))) + with_objc := + endif + endif +endif +ifeq ($(objc_no_cross)-$(DEB_CROSS),yes-yes) + with_objc := disabled for cross compiler package +endif +ifeq ($(DEB_STAGE)-$(filter libobjc, $(with_rtlibs)),rtlibs-) + with_objc := disabled for rtlibs stage +endif +with_objc := $(call envfilt, objc, obj-c++, , $(with_objc)) + +ifeq ($(with_objc),yes) + # the ObjC runtime with garbage collection enabled needs the Boehm GC + with_objc_gc := yes + + # disable ObjC garbage collection library (needs libgc) + libgc_no_cpus := arm64 avr mips mipsel # alpha amd64 arm armel armhf hppa i386 ia64 m68k mips mipsel powerpc ppc64 s390 s390x sparc + libgc_no_systems := knetbsd-gnu + ifneq (,$(filter $(DEB_TARGET_ARCH_CPU),$(libgc_no_cpus))) + with_objc_gc := disabled for cpu $(DEB_TARGET_ARCH_CPU) + endif + ifneq (,$(findstring $(DEB_TARGET_GNU_SYSTEM),$(libgc_no_systems))) + with_objc_gc := disabled for system $(DEB_TARGET_GNU_SYSTEM) + endif + ifneq (,$(findstring build-cross, $(build_type))) + with_objc_gc := disabled for cross builds + endif + # Build all packages needed for Objective-C development + ifeq ($(with_dev),yes) + with_objcdev := yes + endif + ifeq ($(with_common_libs),yes) + with_libobjc := yes + endif + + enabled_languages += objc +endif + +# ObjC++ ---------------------- +objcxx_no_cross := no + +ifeq ($(with_objc),yes) + ifneq ($(with_base_only),yes) + ifneq ($(separate_lang),yes) + with_objcxx := yes + endif + endif +endif +ifeq ($(objcxx_no_cross)-$(DEB_CROSS),yes-yes) + with_objcxx := disabled for cross compiler package +endif +with_objcxx := $(call envfilt, obj-c++, , c++ objc, $(with_objcxx)) + +ifeq ($(with_objcxx),yes) + enabled_languages += obj-c++ +endif + +# ------------------------------------------------------------------- +# other config + +# not built from the main source package +ifeq (,$(findstring gcc-,$(PKGSOURCE))) + extra_package := yes +endif + +with_nls := yes +ifeq ($(trunk_build),yes) + with_nls := no +endif +with_nls := $(call envfilt, nls, , , $(with_nls)) + +# powerpc nof libraries ----- +with_libnof := no + +ifneq (,$(findstring gcc-7,$(PKGSOURCE))) + ifeq (,$(with_rtlibs)) + with_source := yes + endif +endif +with_source := $(call envfilt, source, , , $(with_source)) + +ifeq ($(with_cdev),yes) + +# ssp & libssp ------------------------- +with_ssp := yes +ssp_no_archs = alpha hppa ia64 m68k +ifneq (, $(filter $(DEB_TARGET_ARCH),$(ssp_no_archs) $(ssp_no_archs:%=uclibc-%))) + with_ssp := not available on $(DEB_TARGET_ARCH) +endif +with_ssp := $(call envfilt, ssp, , , $(with_ssp)) + +ifeq ($(with_ssp),yes) + ifneq ($(derivative),Debian) + ifneq (,$(findstring gcc-7, $(PKGSOURCE))) + with_ssp_default := yes + endif + endif +endif + +# gomp -------------------- +with_gomp := yes +with_gomp := $(call envfilt, gomp, , , $(with_gomp)) +gomp_no_archs = +ifneq (,$(filter $(DEB_TARGET_ARCH),$(gomp_no_archs))) + with_gomp := +endif + +# itm -------------------- +itm_archs = alpha amd64 arm64 i386 x32 ppc64 ppc64el s390x sh4 sparc64 +ifneq (,$(filter $(DEB_TARGET_ARCH),$(itm_archs))) + with_itm := yes +endif +with_itm := $(call envfilt, itm, , , $(with_itm)) + +# atomic -------------------- +with_atomic := yes +atomic_no_archs = +ifneq (,$(filter $(DEB_TARGET_ARCH),$(atomic_no_archs))) + with_atomic := +endif + +# backtrace -------------------- +with_backtrace := yes +backtrace_no_archs = m68k +ifneq (,$(filter $(DEB_TARGET_ARCH),$(backtrace_no_archs))) + with_backtrace := +endif + +# asan / sanitizer -------------------- +with_asan := +with_asan := $(call envfilt, asan, , , $(with_asan)) +asan_archs = amd64 armel armhf arm64 i386 powerpc ppc64 ppc64el x32 \ + s390x sparc sparc64 +ifneq (,$(filter $(DEB_TARGET_ARCH),$(asan_archs))) + with_asan := yes +endif + +# lsan / sanitizer -------------------- +with_lsan := +with_lsan := $(call envfilt, lsan, , , $(with_lsan)) +lsan_archs = arm64 amd64 ppc64 ppc64el +ifneq (,$(filter $(DEB_TARGET_ARCH),$(lsan_archs))) + with_lsan := yes +endif + +# tsan / sanitizer -------------------- +with_tsan := +with_tsan := $(call envfilt, tsan, , , $(with_tsan)) +tsan_archs = arm64 amd64 ppc64 ppc64el +ifneq (,$(filter $(DEB_TARGET_ARCH),$(tsan_archs))) + with_tsan := yes +endif + +endif # with_cdev + +# ubsan / sanitizer -------------------- +with_ubsan := +with_ubsan := $(call envfilt, ubsan, , , $(with_ubsan)) +ubsan_archs = amd64 armel armhf arm64 i386 powerpc ppc64 ppc64el x32 \ + s390x sparc sparc64 +ifneq (,$(filter $(DEB_TARGET_ARCH),$(ubsan_archs))) + with_ubsan := yes +endif + +# libvtv -------------------- +with_vtv := +with_vtv := $(call envfilt, vtv, , , $(with_vtv)) +vtv_archs = amd64 i386 x32 +ifneq (,$(filter $(DEB_TARGET_ARCH),$(vtv_archs))) + with_vtv := yes + with_libvtv := yes +endif +# libvtv builds a modified libstdc++, don't enable it by default +with_vtv := +with_libvtv := + +# libcilkrts -------------------- +with_cilkrts := +with_cilkrts := $(call envfilt, cilkrts, , , $(with_cilkrts)) +cilkrts_archs = amd64 i386 x32 armel armhf sparc sparc64 +ifneq (,$(filter $(DEB_TARGET_ARCH),$(cilkrts_archs))) + with_cilkrts := yes +endif + +# libmpx -------------------- +with_mpx := +with_mpx := $(call envfilt, mpx, , , $(with_mpx)) +mpx_archs = amd64 i386 +ifneq (,$(filter $(DEB_TARGET_ARCH),$(mpx_archs))) + # requires newer binutils, or else libmpxwrappers isn't built + ifeq (,$(filter $(distrelease),squeeze lucid precise)) + with_mpx := yes + ifeq ($(with_common_libs),yes) + ifneq (,$(findstring gcc-, $(PKGSOURCE))) + with_libmpx := yes + endif + endif + endif +endif + +# pie by default -------------------- +with_pie := +ifeq ($(distribution),Debian) + ifeq (,$(filter $(distrelease),wheezy squeeze jessie)) + pie_archs = amd64 arm64 armel armhf i386 \ + mips mipsel mips64 mips64el mipsn32 mipsn32el \ + mipsr6 mipsr6el mips64r6 mips64r6el mipsn32r6 mipsn32r6el \ + ppc64el s390x sparc sparc64 kfreebsd-amd64 kfreebsd-i386 \ + hurd-i386 riscv64 + endif + ifeq (,$(filter $(distrelease),wheezy squeeze jessie stretch)) + pie_archs += powerpc ppc64 + endif +else ifeq ($(distribution),Ubuntu) + ifeq (,$(filter $(distrelease),lucid precise trusty utopic vivid wily)) + pie_archs = s390x + endif + ifeq (,$(filter $(distrelease),lucid precise trusty utopic vivid wily xenial)) + pie_archs += amd64 ppc64el + endif + ifeq (,$(filter $(distrelease),lucid precise trusty utopic vivid wily xenial yakkety zesty)) + pie_archs += armhf arm64 i386 + endif +endif +ifneq (,$(filter $(DEB_TARGET_ARCH),$(pie_archs))) + with_pie := yes +endif +ifeq ($(trunk_build),yes) + with_pie := disabled for trunk builds +endif + +# gold -------------------- +# armel with binutils 2.20.51 only +gold_archs = amd64 armel armhf i386 powerpc powerpcspe ppc64 ppc64el s390x sparc sparc64 x32 hurd-i386 +ifneq (,$(filter $(DEB_TARGET_ARCH),$(gold_archs))) + with_gold := yes +endif + +# plugins -------------------- +with_plugins := yes +ifneq (,$(with_rtlibs)) + with_plugins := disabled for rtlibs stage +endif + +endif # ifeq (,$(filter $(DEB_STAGE),stage1 stage2)) + +# Don't include docs with GFDL invariant sections +GFDL_INVARIANT_FREE := yes +ifeq ($(derivative),Ubuntu) + GFDL_INVARIANT_FREE := no +endif + +# ------------------------------------------------------------------- +# non-extra config +ifeq ($(extra_package),yes) + ifeq ($(with_separate_libgo),yes) + # package stuff + with_gccbase := yes + with_cdev := no + with_cxx := no + with_cxxdev := no + endif +else + # libssp ------------------ + ifeq ($(with_ssp)-$(with_common_libs),yes-yes) + #ifneq ($(DEB_CROSS),yes) + with_libssp := $(if $(wildcard $(builddir)/gcc/auto-host.h),$(shell if grep -qs '^\#define TARGET_LIBC_PROVIDES_SSP 1' $(builddir)/gcc/auto-host.h; then echo 'libc provides ssp'; else echo 'yes'; fi)) + #endif + with_libssp := libc provides ssp + endif + + # libgomp ----------------- + ifeq ($(with_gomp)-$(with_common_libs),yes-yes) + with_libgomp := yes + endif + + # libitm ----------------- + ifeq ($(with_itm)-$(with_common_libs),yes-yes) + with_libitm := yes + endif + + # libatomic ----------------- + ifeq ($(with_atomic)-$(with_common_libs),yes-yes) + with_libatomic := yes + endif + + # libbacktrace ----------------- + ifeq ($(with_backtrace)-$(with_common_libs),yes-yes) + # currently not a shared library + #with_libbacktrace := yes + endif + + # libasan ----------------- + # asan changes soname in GCC 8 + #ifeq ($(with_asan)-$(with_common_libs),yes-yes) + ifeq ($(with_asan),yes) + with_libasan := yes + endif + #endif + + # liblsan ----------------- + ifeq ($(with_lsan)-$(with_common_libs),yes-yes) + #ifneq ($(DEB_CROSS),yes) + with_liblsan := yes + #endif + endif + + # libtsan ----------------- + ifeq ($(with_tsan)-$(with_common_libs),yes-yes) + with_libtsan := yes + endif + + # libubsan ----------------- + # ubsan changes soname in GCC 8 + #ifeq ($(with_ubsan)-$(with_common_libs),yes-yes) + ifeq ($(with_ubsan),yes) + with_libubsan := yes + endif + #endif + + # libvtv ----------------- + ifeq ($(with_vtv)-$(with_common_libs),yes-yes) + with_libvtv := yes + endif + + # libcilkrts ----------------- + #ifeq ($(with_cilkrts)-$(with_common_libs),yes-yes) + ifeq ($(with_cilkrts),yes) + with_libcilkrts := yes + endif + #endif + + # libquadmath ----------------- + ifeq ($(with_qmath)-$(with_common_libs),yes-yes) + with_libqmath := yes + endif + + # fixincludes ------- + ifneq ($(DEB_CROSS),yes) + ifeq ($(with_common_pkgs),yes) + with_fixincl := yes + endif + endif + + # libunwind ----------------- + with_internal_libunwind = + ifeq ($(DEB_HOST_ARCH),ia64) + ifeq ($(DEB_STAGE),stage1) + ifeq ($(DEB_CROSS),yes) + with_internal_libunwind = yes + endif + endif + endif + + # Shared libgcc -------------------- + ifneq ($(DEB_STAGE),stage1) + with_shared_libgcc := yes + ifeq ($(with_common_libs),yes) + with_libgcc := yes + endif + endif + + # libgcc-math -------------------- + with_libgmath := no + ifneq (,$(findstring i486,$(DEB_TARGET_ARCH))) + #with_libgccmath := yes + #with_lib64gmath := yes + #with_libgmathdev := yes + endif + ifeq ($(DEB_TARGET_ARCH),amd64) + #with_libgccmath := yes + #with_lib32gmath := yes + #with_libgmathdev := yes + endif + + # hppa64 build ---------------- + hppa64_no_snap := no + hppa64_archs := hppa + ifneq (,$(filter $(build_type), build-native cross-build-native)) + ifneq (,$(filter $(distrelease),wheezy squeeze jessie lucid precise trusty utopic vivid wily)) + binutils_hppa64 := binutils-hppa64 + else + ifneq ($(single_package),yes) + hppa64_archs += amd64 i386 x32 + endif + binutils_hppa64 := binutils-hppa64-linux-gnu + endif + ifneq (,$(filter $(DEB_TARGET_ARCH),$(hppa64_archs))) + with_hppa64 := yes + endif + endif + ifeq ($(hppa64_no_snap)-$(trunk_build),yes-yes) + with_hppa64 := disabled for snapshot build + endif + with_hppa64 := $(call envfilt, hppa64, , , $(with_hppa64)) + + ifeq ($(DEB_STAGE),rtlibs) + with_libatomic := disabled for rtlibs stage + with_libasan := disabled for rtlibs stage + with_liblsan := disabled for rtlibs stage + with_libtsan := disabled for rtlibs stage + with_libubsan := disabled for rtlibs stage + with_libcilkrts := disabled for rtlibs stage + with_fixincl := disabled for rtlibs stage + with_hppa64 := disabled for rtlibs stage + endif + + # neon build ------------------- + # FIXME: build as a cross compiler to build on armv4 as well + ifneq (,$(findstring gcc-7, $(PKGSOURCE))) + ifeq ($(derivative),Ubuntu) +# neon_archs = armel armhf +# ifneq (, $(filter $(DEB_TARGET_ARCH),$(neon_archs))) +# with_neon = yes +# endif + endif + endif +endif + +# run testsuite --------------- +with_check := yes +# if you don't want to run the gcc testsuite, uncomment the next line +#with_check := disabled by hand +ifeq ($(with_base_only),yes) + with_check := no +endif +ifeq ($(DEB_CROSS),yes) + with_check := disabled for cross compiler package +endif +ifneq (,$(findstring cross-build-,$(build_type))) + with_check := disabled for cross building the compiler +endif +ifneq (,$(with_rtlibs)) + with_check := disabled for rtlibs stage +endif +check_no_cpus := m68k +check_no_systems := gnu kfreebsd-gnu +ifneq (,$(filter $(DEB_TARGET_ARCH_CPU),$(check_no_cpus))) + with_check := disabled for cpu $(DEB_TARGET_ARCH_CPU) +endif +ifneq (,$(findstring $(DEB_TARGET_GNU_SYSTEM),$(check_no_systems))) + with_check := disabled for system $(DEB_TARGET_GNU_SYSTEM) +endif +ifeq ($(derivative)-$(DEB_HOST_ARCH),Ubuntu-hppa) + ifneq ($(single_package),yes) + with_check := disabled, testsuite timeouts with expect + endif +endif +ifneq (,$(findstring gdc,$(PKGSOURCE))) + with_check := disabled for D +endif +with_check := $(call envfilt, check, , , $(with_check)) +ifdef WITHOUT_CHECK + with_check := disabled by environment +endif +ifneq ($(findstring nocheck, $(DEB_BUILD_OPTIONS)),) + with_check := disabled by DEB_BUILD_OPTIONS +endif +ifneq (,$(filter $(DEB_HOST_ARCH), hppa mips)) + ifneq ($(single_package),yes) + with_check := disabled for $(DEB_HOST_ARCH), testsuite timeouts with expect + endif +endif +#with_check := disabled for this upload + +# not a dependency on all archs, but if available, use it for the testsuite +ifneq (,$(wildcard /usr/bin/localedef)) + locale_data = generate +endif + +ifneq (,$(filter $(build_type), build-cross cross-build-cross)) + ldconfig_arg = --noscripts +endif + +all_enabled_languages := $(enabled_languages) +languages_without_lang_opt := c++ objc obj-c++ + +debian_extra_langs := $(subst obj-c++,objcp,$(debian_extra_langs)) +export debian_extra_langs + +# multilib +biarch_map := i686=x86_64 powerpc=powerpc64 sparc=sparc64 sparc64=sparc s390=s390x s390x=s390 \ + x86_64=i686 powerpc64=powerpc mips=mips64 mipsel=mips64el \ + mips64=mips mips64el=mipsel mipsn32=mips mipsn32el=mipsel \ + mipsr6=mips64r6 mipsr6el=mips64r6el mips64r6=mipsr6 mips64r6el=mipsr6el \ + mipsn32r6=mipsr6 mipsn32r6el=mipsr6el +ifneq (,$(filter $(derivative),Ubuntu)) + ifeq (,$(filter $(distrelease),dapper hardy jaunty karmic lucid)) + biarch_map := $(subst i686=,i486=,$(biarch_map)) + endif +else # Debian + biarch_map := $(subst i686=,i486=,$(biarch_map)) +endif + +ifeq ($(derivative),Ubuntu) + ifeq (,$(filter $(distrelease),dapper hardy jaunty karmic lucid maverick natty)) + biarch_map += arm=arm + endif +endif +biarch_cpu := $(strip $(patsubst $(DEB_TARGET_GNU_CPU)=%,%, \ + $(filter $(DEB_TARGET_GNU_CPU)=%,$(biarch_map)))) + +biarch64 := no +biarch32 := no +biarchn32 := no +biarchx32 := no +biarchhf := no +biarchsf := no +flavours := +define gen_biarch + ifneq (yes,$$(call envfilt, biarch, , ,yes)) + biarch$1archs := + endif + ifneq (,$$(findstring /$$(DEB_TARGET_ARCH)/,$$(biarch$1archs))) + biarch$1 := yes + flavours += $1 + #biarch$1subdir = $$(biarch_cpu)-$$(DEB_TARGET_GNU_SYSTEM) + biarch$1subdir = $1 + ifeq ($$(with_libgcc),yes) + with_lib$1gcc := yes + endif + ifeq ($$(with_cdev),yes) + with_lib$1gccdev := yes + endif + ifeq ($$(with_libcxx),yes) + with_lib$1cxx := yes + endif + ifeq ($$(with_libcxxdbg),yes) + with_lib$1cxxdbg := yes + endif + ifeq ($$(with_cxxdev),yes) + with_lib$1cxxdev := yes + endif + ifeq ($$(with_libobjc),yes) + with_lib$1objc := yes + endif + ifeq ($$(with_objcdev),yes) + with_lib$1objcdev := yes + endif + ifeq ($$(with_libgfortran),yes) + with_lib$1gfortran := yes + endif + ifeq ($$(with_fdev),yes) + with_lib$1gfortrandev := yes + endif + ifeq (,$(filter $1, hf)) + ifeq ($$(with_libphobos),yes) + with_lib$1phobos := yes + endif + ifeq ($$(with_libphobosdev),yes) + with_lib$1phobosdev := yes + endif + endif + ifeq ($$(with_libssp),yes) + with_lib$1ssp := yes + endif + ifeq ($$(with_libgomp),yes) + with_lib$1gomp:= yes + endif + ifeq ($$(with_libitm),yes) + with_lib$1itm:= yes + endif + ifeq ($$(with_libatomic),yes) + with_lib$1atomic:= yes + endif + ifeq ($$(with_libbacktrace),yes) + with_lib$1backtrace:= yes + endif + ifeq ($$(with_libasan),yes) + with_lib$1asan:= yes + endif + ifeq ($$(with_liblsan),yes) + with_lib$1lsan := yes + endif + ifeq ($$(with_libtsan),yes) + with_lib$1tsan:= yes + endif + ifeq ($$(with_libubsan),yes) + with_lib$1ubsan := yes + endif + ifeq ($$(with_libvtv),yes) + with_lib$1vtv := yes + endif + ifeq ($$(with_libcilkrts),yes) + with_lib$1cilkrts := yes + endif + ifeq ($$(with_libmpx),yes) + ifneq (,$(filter $1, 32 64)) + with_lib$1mpx := yes + endif + endif + ifeq ($$(with_libqmath),yes) + with_lib$1qmath := yes + endif + ifeq ($$(with_libgo),yes) + with_lib$1go := yes + endif + ifeq ($$(with_libhsailrt),yes) + with_lib$1hsailrt := yes + endif + + biarch_multidir_names = libiberty libgcc libbacktrace libatomic libgomp + ifneq (,$$(findstring gcc-, $$(PKGSOURCE))) + biarch_multidir_names += libstdc++-v3 libobjc libgfortran libssp \ + zlib libitm libmpx \ + libsanitizer \ + libcilkrts libvtv + ifeq ($$(with_objc_gc),yes) + biarch_multidir_names += boehm-gc + endif + endif + ifneq (,$(findstring yes, $(with_go))) + biarch_multidir_names += libffi + endif + ifeq ($(with_fortran),yes) + biarch_multidir_names += libquadmath + endif + ifeq ($(with_go),yes) + biarch_multidir_names += libgo + endif + ifeq ($(with_brig),yes) + biarch_multidir_names += libhsail-rt + endif + ifeq ($(with_libphobos),yes) + ifeq (,$(filter $1, hf)) + biarch_multidir_names += libphobos + endif + endif + ifneq (,$$(findstring 32,$1)) + TARGET64_MACHINE := $$(strip $$(subst $$(DEB_TARGET_GNU_CPU),$$(biarch_cpu), \ + $$(TARGET_ALIAS))) + TARGET32_MACHINE := $$(TARGET_ALIAS) + else + TARGET64_MACHINE := $$(TARGET_ALIAS) + TARGET64_MACHINE := $$(strip $$(subst $$(DEB_TARGET_GNU_CPU),$$(biarch_cpu), \ + $$(TARGET_ALIAS))) + endif + export TARGET32_MACHINE + export TARGET64_MACHINE + endif +endef +biarch32archs := /amd64/ppc64/kfreebsd-amd64/s390x/sparc64/x32/mipsn32/mipsn32el/mips64/mips64el/ +biarch64archs := /i386/powerpc/sparc/s390/mips/mipsel/mipsn32/mipsn32el/ +biarchn32archs := /mips/mipsel/mips64/mips64el/ +ifeq (yes,$(MIPS_R6_ENABLED)) + biarch32archs += /mipsn32r6/mipsn32r6el/mips64r6/mips64r6el/ + biarch64archs += /mipsr6/mipsr6el/mipsn32r6/mipsn32r6el/x32/ + biarchn32archs += /mipsr6/mipsr6el/mips64r6/mips64r6el/ +endif + +ifeq ($(derivative),Ubuntu) + ifeq (,$(filter $(distrelease),dapper hardy jaunty karmic lucid maverick natty)) + biarchhfarchs := /armel/ + biarchsfarchs := /armhf/ + endif + ifeq (,$(filter $(distrelease),dapper hardy jaunty karmic lucid maverick natty oneiric precise quantal)) + biarchx32archs := /amd64/i386/ + endif +endif +ifeq ($(derivative),Debian) + ifeq (,$(filter $(distrelease),etch squeeze wheezy)) + biarchx32archs := /amd64/i386/ + endif +endif +$(foreach x,32 64 n32 x32 hf sf,$(eval $(call gen_biarch,$(x)))) + +ifeq ($(DEB_TARGET_ARCH),sh4) + biarch_multidir_names=none +endif +export biarch_multidir_names + +#ifeq ($(trunk_build),yes) +# no_biarch_libs := yes +#endif +no_biarch_libs := + +ifeq ($(no_biarch_libs),yes) + with_lib64gcc := no + with_lib64cxx := no + with_lib64cxxdbg := no + with_lib64objc := no + with_lib64ffi := no + with_lib64gfortran := no + with_lib64ssp := no + with_lib64go := no + with_lib64gomp := no + with_lib64itm := no + with_lib64qmath := no + with_lib64atomic := no + with_lib64backtrace := no + with_lib64asan := no + with_lib64lsan := no + with_lib64tsan := no + with_lib64ubsan := no + with_lib64vtv := no + with_lib64cilkrts := no + with_lib64mpx := no + with_lib64gccdev := no + with_lib64cxxdev := no + with_lib64objcdev := no + with_lib64gfortrandev := no + with_lib64phobosdev := no + with_lib64hsailrtdev := no + + with_lib32gcc := no + with_lib32cxx := no + with_lib32cxxdbg := no + with_lib32objc := no + with_lib32ffi := no + with_lib32gfortran := no + with_lib32ssp := no + with_lib32go := no + with_lib32gomp := no + with_lib32itm := no + with_lib32qmath := no + with_lib32atomic := no + with_lib32backtrace := no + with_lib32asan := no + with_lib32lsan := no + with_lib32tsan := no + with_lib32ubsan := no + with_lib32vtv := no + with_lib32cilkrts := no + with_lib32mpx := no + with_lib32gccdev := no + with_lib32cxxdev := no + with_lib32objcdev := no + with_lib32gfortrandev := no + with_lib32phobosdev := no + with_lib32hsailrtdev := no + + with_libn32gcc := no + with_libn32cxx := no + with_libn32cxxdbg := no + with_libn32objc := no + with_libn32ffi := no + with_libn32gfortran := no + with_libn32ssp := no + with_libn32go := no + with_libn32gomp := no + with_libn32itm := no + with_libn32qmath := no + with_libn32atomic := no + with_libn32backtrace := no + with_libn32asan := no + with_libn32lsan := no + with_libn32tsan := no + with_libn32ubsan := no + with_libn32gccdev := no + with_libn32cxxdev := no + with_libn32objcdev := no + with_libn32gfortrandev:= no + with_libn32phobosdev := no + with_libn32hsailrtdev := no + + with_libx32gcc := no + with_libx32cxx := no + with_libx32cxxdbg := no + with_libx32objc := no + with_libx32ffi := no + with_libx32gfortran := no + with_libx32ssp := no + with_libx32go := no + with_libx32gomp := no + with_libx32itm := no + with_libx32qmath := no + with_libx32atomic := no + with_libx32backtrace := no + with_libx32asan := no + with_libx32lsan := no + with_libx32tsan := no + with_libx32ubsan := no + with_libx32vtv := no + with_libx32cilkrts := no + with_libx32gccdev := no + with_libx32cxxdev := no + with_libx32objcdev := no + with_libx32gfortrandev:= no + with_libx32phobosdev := no + with_libx32hsailrtdev := no + + with_libhfgcc := no + with_libhfcxx := no + with_libhfcxxdbg := no + with_libhfobjc := no + with_libhfffi := no + with_libhfgfortran := no + with_libhfssp := no + with_libhfgo := no + with_libhfgomp := no + with_libhfitm := no + with_libhfqmath := no + with_libhfatomic := no + with_libhfbacktrace := no + with_libhfasan := no + with_libhflsan := no + with_libhftsan := no + with_libhfubsan := no + with_libhfgccdev := no + with_libhfcxxdev := no + with_libhfobjcdev := no + with_libhfgfortrandev := no + with_libhfphobosdev := no + with_libhfhsailrtdev := no + + with_libsfgcc := no + with_libsfcxx := no + with_libsfcxxdbg := no + with_libsfobjc := no + with_libsfffi := no + with_libsfgfortran := no + with_libsfssp := no + with_libsfgo := no + with_libsfgomp := no + with_libsfitm := no + with_libsfqmath := no + with_libsfatomic := no + with_libsfbacktrace := no + with_libsfasan := no + with_libsflsan := no + with_libsftsan := no + with_libsfubsan := no + with_libsfgccdev := no + with_libsfcxxdev := no + with_libsfobjcdev := no + with_libsfgfortrandev := no + with_libsfphobosdev := no + with_libsfhsailrtdev := no + + ifeq ($(with_ada)-$(with_separate_gnat),yes-yes) + biarchhf := disabled for Ada + biarchsf := disabled for Ada + endif + +endif + +ifneq (,$(filter yes,$(biarch32) $(biarch64) $(biarchn32) $(biarchx32) $(biarchhf) $(biarchsf))) + multilib := yes +endif + +multilib_archs = $(sort $(subst /, , $(biarch64archs) $(biarch32archs) $(biarchn32archs) $(biarchx32archs) $(biarchhfarchs) $(biarchsfarchs))) + +biarchsubdirs := \ + $(if $(filter yes,$(biarch64)),$(biarch64subdir),) \ + $(if $(filter yes,$(biarch32)),$(biarch32subdir),) \ + $(if $(filter yes,$(biarchn32)),$(biarchn32subdir),) \ + $(if $(filter yes,$(biarchx32)),$(biarchx32subdir),) \ + $(if $(filter yes,$(biarchhf)),$(biarchhfsubdir),) \ + $(if $(filter yes,$(biarchsf)),$(biarchsfsubdir),) +biarchsubdirs := {$(strip $(shell echo $(biarchsubdirs) | tr " " ","))} + +# GNU locales +force_gnu_locales := yes +locale_no_cpus := +locale_no_systems := +ifneq (,$(findstring $(DEB_TARGET_GNU_SYSTEM),$(locale_no_systems))) + force_gnu_locales := disabled for system $(DEB_TARGET_GNU_SYSTEM) +endif + +gcc_tarpath := $(firstword $(wildcard gcc-*.tar.* /usr/src/gcc-7/gcc-*.tar.*)) +gcc_tarball := $(notdir $(gcc_tarpath)) +gcc_srcdir := $(subst -dfsg,,$(patsubst %.tar.xz,%,$(patsubst %.tar.lzma,%,$(patsubst %.tar.gz,%,$(gcc_tarball:.tar.bz2=))))) + +ifeq ($(with_d),yes) + gdc_tarpath := $(firstword $(wildcard gdc-*.tar.* /usr/src/gcc-$(BASE_VERSION)/gdc-*.tar.*)) + gdc_tarball := $(notdir $(gdc_tarpath)) + gdc_srcdir := $(patsubst %.tar.xz,%,$(patsubst %.tar.lzma,%,$(patsubst %.tar.gz,%,$(gdc_tarball:.tar.bz2=)))) +endif + +ifeq ($(with_offload_nvptx),yes) + nl_nvptx_tarpath := $(firstword $(wildcard nvptx-newlib-*.tar.* /usr/src/gcc-$(BASE_VERSION)/nvptx-newlib-*.tar.*)) + nl_nvptx_tarball := $(notdir $(nl_nvptx_tarpath)) + nl_nvptx_srcdir := $(patsubst %.tar.xz,%,$(patsubst %.tar.lzma,%,$(patsubst %.tar.gz,%,$(nl_nvptx_tarball:.tar.bz2=)))) +endif + +# NOTE: This is not yet used. when building gdc or gnat using the +# gcc-source package, we don't require an exact binary dependency. +ifneq ($(dir $(gcc_tarpath)),./) + built_using_external_source := yes +else + built_using_external_source := +endif +ifeq ($(DEB_CROSS),yes) + add_built_using = yes +endif +ifeq ($(with_ada)-$(with_separate_gnat),yes-yes) + add_built_using = yes +endif + +unpack_stamp := $(stampdir)/01-unpack-stamp +pre_patch_stamp := $(stampdir)/02-pre-patch-stamp +patch_stamp := $(stampdir)/02-patch-stamp +control_stamp := $(stampdir)/03-control-stamp +configure_stamp := $(stampdir)/04-configure-stamp +build_stamp := $(stampdir)/05-build-stamp +build_arch_stamp := $(stampdir)/05-build-arch-stamp +build_indep_stamp := $(stampdir)/05-build-indep-stamp +build_html_stamp := $(stampdir)/05-build-html-stamp +build_locale_stamp := $(stampdir)/05-build-locale-stamp +build_doxygen_stamp := $(stampdir)/05-build-doxygen-stamp +build_gnatdoc_stamp := $(stampdir)/05-build-gnatdoc-stamp +check_stamp := $(stampdir)/06-check-stamp +check_inst_stamp := $(stampdir)/06-check-inst-stamp +install_stamp := $(stampdir)/07-install-stamp +install_snap_stamp := $(stampdir)/07-install-snap-stamp +binary_stamp := $(stampdir)/08-binary-stamp + +configure_dummy_stamp := $(stampdir)/04-configure-dummy-stamp +build_dummy_stamp := $(stampdir)/05-build-dummy-stamp +install_dummy_stamp := $(stampdir)/07-install-dummy-stamp + +configure_jit_stamp := $(stampdir)/04-configure-jit-stamp +build_jit_stamp := $(stampdir)/05-build-jit-stamp +install_jit_stamp := $(stampdir)/07-install-jit-stamp + +configure_nvptx_stamp := $(stampdir)/04-configure-nvptx-stamp +build_nvptx_stamp := $(stampdir)/05-build-nvptx-stamp +install_nvptx_stamp := $(stampdir)/07-install-nvptx-stamp + +configure_hppa64_stamp := $(stampdir)/04-configure-hppa64-stamp +build_hppa64_stamp := $(stampdir)/05-build-hppa64-stamp +install_hppa64_stamp := $(stampdir)/07-install-hppa64-stamp + +configure_neon_stamp := $(stampdir)/04-configure-neon-stamp +build_neon_stamp := $(stampdir)/05-build-neon-stamp +install_neon_stamp := $(stampdir)/07-install-neon-stamp + +control_dependencies := $(patch_stamp) + +ifeq ($(single_package),yes) + configure_dependencies = $(configure_stamp) + build_dependencies = $(build_stamp) + install_dependencies = $(install_snap_stamp) + ifeq ($(with_check),yes) + check_dependencies += $(check_stamp) + endif +else + ifeq ($(with_base_only),yes) + configure_dependencies = $(configure_dummy_stamp) + build_dependencies = $(build_dummy_stamp) + install_dependencies = $(install_dummy_stamp) + else + configure_dependencies = $(configure_stamp) + build_dependencies = $(build_stamp) + install_dependencies = $(install_stamp) + ifeq ($(with_check),yes) + check_dependencies += $(check_stamp) + endif + endif +endif + +ifeq ($(with_jit),yes) + build_dependencies += $(build_jit_stamp) + install_dependencies += $(install_jit_stamp) +endif + +ifeq ($(with_offload_nvptx),yes) + build_dependencies += $(build_nvptx_stamp) + install_dependencies += $(install_nvptx_stamp) +endif + +ifeq ($(with_neon),yes) + build_dependencies += $(build_neon_stamp) + install_dependencies += $(install_neon_stamp) +endif + +ifeq ($(with_hppa64),yes) + build_dependencies += $(build_hppa64_stamp) + ifneq ($(trunk_build),yes) + install_dependencies += $(install_hppa64_stamp) + endif +endif + +build_dependencies += $(check_dependencies) + +build_arch_dependencies = $(build_dependencies) +build_indep_dependencies = $(build_dependencies) + +ifneq (,$(findstring build-native, $(build_type))) + ifneq ($(single_package),yes) + build_indep_dependencies += $(build_html_stamp) + ifeq ($(with_cxx),yes) + build_indep_dependencies += $(build_doxygen_stamp) + endif + ifeq ($(with_ada),yes) + build_indep_dependencies += $(build_gnatdoc_stamp) + endif + endif +endif + +stamp-dir: + mkdir -p $(stampdir) + +ifeq ($(DEB_CROSS),yes) + define cross_mangle_shlibs + if [ -f debian/$(1)/DEBIAN/shlibs ]; then \ + sed -i s/$(cross_lib_arch)/:$(DEB_TARGET_ARCH)/g debian/$(1)/DEBIAN/shlibs; \ + fi + endef + define cross_mangle_substvars + if [ -f debian/$(1).substvars ]; then \ + sed -i \ + -e 's/:$(DEB_TARGET_ARCH)/$(cross_lib_arch)/g' \ + -e 's/\(libc[.0-9]*-[^:]*\):\([a-z0-9-]*\)/\1-\2-cross/g' \ + $(if $(filter armel,$(DEB_TARGET_ARCH)),-e 's/:armhf/-armhf-cross/g') \ + $(if $(filter armhf,$(DEB_TARGET_ARCH)),-e 's/:armel/-armel-cross/g') \ + debian/$(1).substvars; \ + fi + endef +else + define cross_mangle_shlibs + endef + define cross_mangle_substvars + endef + # precise's dh_shlibdeps doesn't work well for ARM multilibs + # and dh_shlibdeps doesn't work well for cross builds, see #698881. + ifneq (,$(filter $(distrelease),precise quantal raring)) + ifneq (,$(filter $(DEB_TARGET_ARCH), armel armhf arm64)) + ignshld = - + endif + endif +endif +ifeq ($(DEB_STAGE),rtlibs) + define cross_mangle_shlibs + endef + define cross_mangle_substvars + endef +endif + +# takes a *list* of package names as $1, the multilib dirname as $2 +_shlibdirs = \ + $(if $(strip $(1)), \ + $(shell find $(foreach p,$(1),$(CURDIR)/debian/$(p)) \ + -name '*.so.*' -printf '%h ' | uniq)) \ + $(with_build_sysroot)/lib/$(call mlib_to_march,$(2)) \ + $(with_build_sysroot)/usr/lib/$(call mlib_to_march,$(2)) \ + $(with_build_sysroot)$(subst /usr,,/$(usr_lib$(2))) \ + $(with_build_sysroot)/$(usr_lib$(2)) \ + $(if $(findstring mips64,$(DEB_TARGET_ARCH)), \ + $(with_build_sysroot)/$(usr_lib64)) \ + $(if $(findstring mipsn32,$(DEB_TARGET_ARCH)), \ + $(with_build_sysroot)/$(usr_libn32)) \ + $(if $(filter yes,$(biarchsf) $(biarchhf)), \ + $(with_build_sysroot)/usr/$(call mlib_to_march,$(2))/lib) \ + $(if $(filter yes, $(with_common_libs)),, \ + $(CURDIR)/$(d)/$(usr_lib$(2)) \ + $(CURDIR)/$(d)/usr/$(call mlib_to_march,$(2))/lib) +shlibdirs_to_search = -l$(subst $(SPACE),:,$(foreach d,$(_shlibdirs),$(d))) --- gcc-7-7.5.0.orig/debian/rules.parameters +++ gcc-7-7.5.0/debian/rules.parameters @@ -0,0 +1,42 @@ +# configuration parameters taken from upstream source files +GCC_VERSION := 7.5.0 +NEXT_GCC_VERSION := 7.5.1 +BASE_VERSION := 7 +SOURCE_VERSION := 7.5.0-1ubuntu1 +DEB_VERSION := 7.5.0-1ubuntu1 +DEB_EVERSION := 1:7.5.0-1ubuntu1 +DEB_GDC_VERSION := 7.5.0-1ubuntu1 +DEB_SOVERSION := 5 +DEB_SOEVERSION := 1:5 +DEB_LIBGCC_SOVERSION := +DEB_LIBGCC_VERSION := 1:7.5.0-1ubuntu1 +DEB_STDCXX_SOVERSION := 5 +DEB_GOMP_SOVERSION := 5 +GCC_SONAME := 1 +CXX_SONAME := 6 +FORTRAN_SONAME := 4 +OBJC_SONAME := 4 +GDC_VERSION := 7 +GNAT_VERSION := 7 +GNAT_SONAME := 7 +FFI_SONAME := 7 +SSP_SONAME := 0 +GOMP_SONAME := 1 +ITM_SONAME := 1 +ATOMIC_SONAME := 1 +BTRACE_SONAME := 1 +ASAN_SONAME := 4 +LSAN_SONAME := 0 +TSAN_SONAME := 0 +UBSAN_SONAME := 0 +VTV_SONAME := 0 +CILKRTS_SONAME := 5 +MPX_SONAME := 2 +QUADMATH_SONAME := 0 +GO_SONAME := 11 +CC1_SONAME := 0 +GCCJIT_SONAME := 0 +GPHOBOS_SONAME := 71 +GDRUNTIME_SONAME := 71 +HSAIL_SONAME := 0 +LIBC_DEP := libc6 --- gcc-7-7.5.0.orig/debian/rules.patch +++ gcc-7-7.5.0/debian/rules.patch @@ -0,0 +1,415 @@ +# -*- makefile -*- +# rules to patch the unpacked files in the source directory +# --------------------------------------------------------------------------- +# various rules to unpack addons and (un)apply patches. +# - patch / apply-patches +# - unpatch / reverse-patches + +.NOTPARALLEL: + +patchdir ?= debian/patches +series_file ?= $(patchdir)/series + +# which patches should be applied? + +debian_patches = \ + $(if $(with_linaro_branch),gcc-linaro-revert-r270684) \ + $(if $(with_linaro_branch),gcc-linaro) \ + $(if $(with_linaro_branch),gcc-linaro-no-macros) \ + +ifneq (,$(filter $(derivative),Ubuntu)) + # LP: #1799955, the random header needs to be the same for M-A: same + debian_patches += \ + $(if $(with_linaro_branch),,libstdc++-r250464) +endif + +# svn-updates \ + +ifneq ($(GFDL_INVARIANT_FREE),yes) + debian_patches += \ + $(if $(with_linaro_branch),gcc-linaro-doc) \ + rename-info-files \ + gcc-fuse-ld-lld-doc \ + +# svn-doc-updates \ +# $(if $(with_linaro_branch),,svn-doc-updates) \ + +else +endif +debian_patches += \ + gcc-gfdl-build + +debian_patches += \ + gcc-textdomain \ + gcc-driver-extra-langs$(if $(with_linaro_branch),-linaro) + +ifneq (,$(filter $(distrelease),etch lenny squeeze wheezy dapper hardy intrepid jaunty karmic lucid)) + debian_patches += gcc-hash-style-both +else + debian_patches += gcc-hash-style-gnu +endif + +debian_patches += \ + libstdc++-pic \ + libstdc++-doclink \ + libstdc++-man-3cxx \ + libstdc++-test-installed \ + alpha-no-ev4-directive \ + note-gnu-stack \ + libgomp-omp_h-multilib \ + pr47818 \ + libgo-testsuite \ + libgo-cleanfiles \ + gcc-target-include-asm \ + libgo-revert-timeout-exp \ + libgo-setcontext-config \ + gcc-auto-build \ + kfreebsd-unwind \ + libitm-no-fortify-source \ + sparc64-biarch-long-double-128 \ + gotools-configury \ + pr66368 \ + pr67590 \ + libjit-ldflags \ + libffi-pax \ + libffi-race-condition \ + gcc-foffload-default \ + gcc-fuse-ld-lld \ + pr77631 \ + cuda-float128 \ + libgo-sparc64 \ + libgo-ia64 \ + libcc1-compiler-name \ + sh-builtin-trap \ + libffi-mipsen-r6 \ + gcc-alpha-bs-ignore \ + pr83204 \ + pr81356 \ + aarch64-simd-fnma-fix \ + thunderx2t99-pipe-sched \ + pr84475 \ + libffi-riscv \ + gcc-force-cross-layout \ + kfreebsd-decimal-float \ + pr87808 \ + gnathtml-shebang \ + libstdc++-futex \ + +# FIXME: see #915194 +# gcc-search-prefixed-as-ld \ + +ifeq (,$(filter $(DEB_TARGET_ARCH),armhf armel)) + debian_patches += pr67165 +endif + +# $(if $(filter yes, $(DEB_CROSS)),,gcc-print-file-name) \ +# libstdc++-nothumb-check \ + +ifeq (,$(filter $(distrelease),trusty stretch jessie wheezy)) + debian_patches += gcc-as-needed-push-pop +endif + +ifeq (,$(filter $(distrelease),lenny squeeze wheezy dapper trusty xenial artful)) + debian_patches += gcc-hppa-caller-copies-ABI +endif + +hardening_patches = +ifeq ($(with_ssp)-$(with_ssp_default),yes-yes) + hardening_patches += gcc-default-ssp + hardening_patches += gcc-default-format-security + ifeq (,$(filter $(distrelease),dapper hardy lucid maverick natty oneiric precise quantal raring saucy trusty)) + hardening_patches += gcc-default-ssp-strong + endif +endif +ifneq (,$(filter $(derivative),Ubuntu)) + ifneq (,$(findstring gcc-7, $(PKGSOURCE))) + hardening_patches += \ + gcc-default-fortify-source \ + gcc-default-relro \ + testsuite-hardening-format \ + testsuite-hardening-printf-types \ + testsuite-hardening-updates \ + testsuite-glibc-warnings + ifeq ($(with_pie),yes) + hardening_patches += \ + bind_now_when_pie +# else +# hardening_patches += \ +# ignore-pie-specs-when-not-enabled + endif + endif +else ifneq (,$(filter $(derivative),Debian)) + ifneq (,$(findstring gcc-7, $(PKGSOURCE))) +# ifneq ($(with_pie),yes) +# hardening_patches += \ +# ignore-pie-specs-when-not-enabled +# endif + endif +endif + +# FIXME 4.5: Drop and adjust symbols files +ifneq (,$(findstring 4.4, $(PKGSOURCE))) + debian_patches += pr39491 +endif + +debian_patches += ada-arm + +# there should be no harm to always apply these, except for new GCC versions +#ifeq ($(with_ada),yes) + + debian_patches += \ + ada-gcc-name \ + ada-verbose \ + ada-library-project-files-soname + + # FIXME: needs update + #ada-symbolic-tracebacks \ + + ifeq ($(biarch64),yes) + debian_patches += \ + ada-nobiarch-check + endif + + #ifeq ($(with_libgnat),yes) + debian_patches += \ + ada-link-lib \ + ada-libgnatvsn \ + ada-gnattools-cross \ + ada-tools-move-ldflags \ + ada-acats + #endif + #ifeq ($(with_gnatsjlj),yes) + debian_patches += \ + ada-sjlj + #endif + + debian_patches += ada-link-shlib + debian_patches += ada-lib-info-source-date-epoch + debian_patches += ada-armel-libatomic +#endif + + +ifeq ($(with_d),yes) + debian_patches += \ + gdc-7 \ + gdc-updates \ + libphobos-zlib \ + gdc-versym-cpu \ + gdc-versym-os \ + gdc-frontend-posix \ + gdc-profiledbuild \ + gdc-sparc-fix \ + gdc-cross-build \ + +# gdc-multiarch + ifneq ($(GFDL_INVARIANT_FREE),yes) + debian_patches += gdc-7-doc + else + debian_patches += gdc-texinfo + endif + ifeq ($(with_libphobos),yes) + debian_patches += gdc-libphobos-build + else + debian_patches += gdc-driver-nophobos + endif + ifeq (,$(filter $(DEB_TARGET_ARCH),amd64 i386)) + debian_patches += disable-gdc-tests + endif +else + debian_patches += gcc-d-lang +endif + +ifeq ($(DEB_TARGET_ARCH),alpha) + debian_patches += alpha-ieee + ifneq ($(GFDL_INVARIANT_FREE),yes) + debian_patches += alpha-ieee-doc + endif +endif + +ifeq ($(DEB_TARGET_ARCH),powerpcspe) + debian_patches += powerpc_remove_many + debian_patches += powerpc_nofprs +endif + +# all patches below this line are applied for gcc-snapshot builds as well + +ifeq ($(single_package),yes) + debian_patches = +endif + +debian_patches += \ + sys-auxv-header \ + libcilkrts-targets \ + t-libunwind-elf-Wl-z-defs \ + +ifeq ($(with_ibm_branch),yes) + debian_patches += ibm-branch +endif + +ifeq ($(with_softfloat),yes) + debian_patches += arm-multilib-soft-float +else ifeq ($(multilib),yes) + ifneq (,$(filter $(distrelease),lucid maverick natty oneiric precise)) + debian_patches += arm-multilib-softfp$(if $(filter yes,$(DEB_CROSS)),-cross) + else + debian_patches += arm-multilib-soft$(if $(filter yes,$(DEB_CROSS)),-cross) + endif +endif +debian_patches += arm-multilib-defaults + +ifeq ($(DEB_CROSS),yes) + debian_patches += cross-fixes + debian_patches += cross-install-location + ifeq ($(with_d),yes) + debian_patches += gdc-cross-install-location + endif +endif + +ifeq ($(DEB_TARGET_ARCH_OS),hurd) + debian_patches += hurd-changes +endif + +ifeq ($(DEB_TARGET_ARCH_OS),hurd) +debian_patches += \ + src_gcc_config_i386_gnu.h \ + src_libgo_build \ + src_libgo_runtime \ + src_libgo_go_crypto \ + src_libgo_go_net \ + src_libgo_go_os \ + src_libgo_go_runtime \ + src_libgo_go_syscall \ + src_libgo_go_go_build_syslist.go \ + add-gnu-to-libgo-headers \ + add-gnu-to-libgo-test-headers \ + src_libgo_go_syscall_syscall_gnu_test.go \ + src_libgo_testsuite_gotest +endif + +debian_patches += gcc-ice-dump +debian_patches += gcc-ice-apport +debian_patches += skip-bootstrap-multilib +debian_patches += libffi-ro-eh_frame_sect +debian_patches += libffi-mips +debian_patches += ada-kfreebsd +debian_patches += ada-drop-termio-h + +# sigaction on sparc changed between glibc 2.19 and 2.21 +ifeq (,$(filter 2.1%, $(shell dpkg-query -l libc-bin | awk '/^.i/ {print $$3}'))) + # keep it, gets remove in GCC from time to time + #debian_patches += pr67899 +endif + +debian_patches += gcc-multiarch +debian_patches += config-ml +ifneq ($(single_package),yes) + ifeq ($(with_multiarch_cxxheaders),yes) + debian_patches += g++-multiarch-incdir + debian_patches += canonical-cpppath + endif +endif +ifneq (,$(filter $(build_type), build-cross cross-build-cross)) + debian_patches += cross-no-locale-include + debian_patches += cross-biarch + ifeq ($(with_libphobos),yes) + debian_patches += gdc-cross-biarch + endif +endif +debian_patches += gcc-multilib-multiarch + +ifneq (,$(filter $(derivative),Ubuntu)) + ifeq (,$(filter $(distrelease),dapper hardy intrepid jaunty karmic lucid maverick)) + debian_patches += gcc-as-needed + ifeq (,$(filter $(distrelease),dapper hardy intrepid jaunty karmic lucid maverick precise trusty utopic vivid wily xenial yakkety)) + debian_patches += gcc-as-needed-gold + endif + endif +else # Debian + #debian_patches += gcc-as-needed +endif + +debian_patches += libgomp-kfreebsd-testsuite +debian_patches += go-testsuite + +# Ada patches needed for both the stable package and snapshot builds +debian_patches += ada-749574 + +# don't remove, this is regularly overwritten, see PR sanitizer/63958. +#debian_patches += libasan-sparc + +# Has to be refreshed manually as described in the header. +debian_patches += ada-changes-in-autogen-output + +series_stamp = $(stampdir)/02-series-stamp +series: $(series_stamp) +$(series_stamp): + echo $(strip $(addsuffix .diff,$(debian_patches))) \ + | sed -r 's/ +/ /g' | tr " " "\n" > $(series_file) +ifneq (,$(strip $(hardening_patches))) + ifneq ($(trunk_build),yes) + echo $(strip $(addsuffix .diff,$(hardening_patches))) \ + | sed -r 's/ +/ /g' | tr " " "\n" >> $(series_file) + endif +endif + sed -r 's/(.)$$/\1 -p1/' -i $(series_file) + touch $@ + +autoconf_files = $(shell lsdiff --no-filename $(foreach patch,$(debian_patches),$(patchdir)/$(patch).diff) \ + | sed -rn '/(configure\.ac|acinclude.m4)$$/s:[^/]+/src/:src/:p' | sort -u) +autoconf_dirs = $(sort $(dir $(autoconf_files))) + +automake_files = $(addprefix ./, $(filter-out none, \ + $(shell lsdiff --no-filename $(foreach patch,$(debian_patches),$(patchdir)/$(patch).diff) \ + | sed -rn '/Makefile\.(am|in)$$/s:[^/]+/src/:src/:p' | sort -u))) + +autoconf_version = 2.64 +ifeq ($(trunk_build),yes) + # The actual version depends on the build-dependencies set by + # variable AUTO_BUILD_DEP in rules.conf. Here, we assume the + # correct version is installed. + #autoconf_version = +endif + +# FIXME: the auto* stuff is done every time for every subdir, which +# leads to build errors. Idea: record the auto* calls in the patch +# files (AUTO ) and run them separately, +# maybe only once per directory). +$(patch_stamp): $(unpack_stamp) $(series_stamp) + sync + QUILT_PATCHES=$(patchdir) QUILT_PATCH_OPTS='-E' \ + quilt --quiltrc /dev/null push -a || test $$? = 2 + +ifneq (,$(filter svn-updates, $(debian_patches))) + awk '/^EOF/ {exit} p==1 {print} /EOF$$/ {p=1}' \ + $(patchdir)/svn-updates.diff > src/LAST_UPDATED +endif + + : # only needed when we have changes, and currently fails with autogen 5.18 + : #cd $(srcdir)/fixincludes && ./genfixes + + sync + echo -n $(autoconf_dirs) | xargs -d ' ' -L 1 -P $(USE_CPUS) -I{} \ + sh -c 'echo "Running autoconf$(autoconf_version) in {}..." ; \ + cd $(CURDIR)/{} && rm -f configure && \ + AUTOM4TE=/usr/bin/autom4te$(autoconf_version) autoconf$(autoconf_version)' + + for i in $(debian_patches) $(hardening_patches); do \ + echo -e "\n$$i:" >> pxxx; \ + sed -n 's/^# *DP: */ /p' $(patchdir)/$$i.diff >> pxxx; \ + done +# -$(srcdir)/move-if-change pxxx $@ + mv pxxx $@ + +unpatch: + QUILT_PATCHES=$(patchdir) \ + quilt --quiltrc /dev/null pop -a -R || test $$? = 2 + rm -rf .pc + +update-patches: $(series_stamp) + export QUILT_PATCHES=$(patchdir); \ + export QUILT_REFRESH_ARGS="--no-timestamps --no-index -pab"; \ + export QUILT_DIFF_ARGS="--no-timestamps --no-index -pab"; \ + while quilt push; do quilt refresh; done + +patch: $(patch_stamp) +.PHONY: patch series quilt autotools --- gcc-7-7.5.0.orig/debian/rules.sonames +++ gcc-7-7.5.0/debian/rules.sonames @@ -0,0 +1,91 @@ +ifneq ($(vafilt_defined),1) + $(error rules.defs must be included before rules.sonames) +endif + +ifeq (,$(wildcard debian/soname-cache)) + SONAME_VARS := $(shell \ + cache=debian/soname-cache; \ + rm -f $$cache; \ + v=`awk -F= '/^libtool_VERSION/ {split($$2,v,":"); print v[1]}' \ + $(srcdir)/libstdc++-v3/acinclude.m4`; \ + echo CXX_SONAME=$$v >> $$cache; \ + v=`awk -F= '/^VERSION/ {split($$2,v,":"); print v[1]}' \ + $(srcdir)/libobjc/configure.ac`; \ + echo OBJC_SONAME=$$v >> $$cache; \ + v=`tail -1 $(srcdir)/libgfortran/libtool-version | cut -d: -f1`; \ + echo FORTRAN_SONAME=$$v >> $$cache; \ + v=`tail -1 $(srcdir)/libssp/libtool-version | cut -d: -f1`; \ + echo SSP_SONAME=$$v >> $$cache; \ + v=`tail -1 $(srcdir)/libffi/libtool-version | cut -d: -f1`; \ + echo FFI_SONAME=$$v >> $$cache; \ + v=`awk -F= '/^libtool_VERSION/ {split($$2,v,":"); print v[1]}' \ + $(srcdir)/libgomp/configure.ac`; \ + echo GOMP_SONAME=$$v >> $$cache; \ + v=`tail -1 $(srcdir)/libsanitizer/asan/libtool-version | cut -d: -f1`; \ + echo ASAN_SONAME=$$v >> $$cache; \ + v=`tail -1 $(srcdir)/libsanitizer/lsan/libtool-version | cut -d: -f1`; \ + echo LSAN_SONAME=$$v >> $$cache; \ + v=`tail -1 $(srcdir)/libsanitizer/tsan/libtool-version | cut -d: -f1`; \ + echo TSAN_SONAME=$$v >> $$cache; \ + v=`tail -1 $(srcdir)/libsanitizer/ubsan/libtool-version | cut -d: -f1`; \ + echo UBSAN_SONAME=$$v >> $$cache; \ + v=`awk -F= '/^libtool_VERSION/ {split($$2,v,":"); print v[1]}' \ + $(srcdir)/libatomic/configure.ac`; \ + v=1; \ + echo ATOMIC_SONAME=$$v >> $$cache; \ + v=`awk -F= '/^libtool_VERSION/ {split($$2,v,":"); print v[1]}' \ + $(srcdir)/libbacktrace/configure.ac`; \ + echo BTRACE_SONAME=$$v >> $$cache; \ + v=`tail -1 $(srcdir)/libquadmath/libtool-version | cut -d: -f1`; \ + echo QUADMATH_SONAME=$$v >> $$cache; \ + v=`grep '[^_]Library_Version.*:' $(srcdir)/gcc/ada/gnatvsn.ads \ + | sed -e 's/.*"\([^"]*\)".*/\1/'`; \ + echo GNAT_SONAME=$$v >> $$cache; \ + v=`awk -F= '/^libtool_VERSION/ {split($$2,v,":"); print v[1]}' \ + $(srcdir)/libgo/configure.ac`; \ + echo GO_SONAME=$$v >> $$cache; \ + echo ITM_SONAME=1 >> $$cache; \ + v=`awk -F= '/^libtool_VERSION/ {split($$2,v,":"); print v[1]}' \ + $(srcdir)/libvtv/configure.ac`; \ + v=0; \ + echo VTV_SONAME=$$v >> $$cache; \ + echo CILKRTS_SONAME=5 >> $$cache; \ + echo CC1_SONAME=0 >> $$cache; \ + echo GCCJIT_SONAME=0 >> $$cache; \ + v=`tail -1 $(srcdir)/libmpx/mpxrt/libtool-version | cut -d: -f1`; \ + echo MPX_SONAME=$$v >> $$cache; \ + echo GPHOBOS_SONAME=71 >> $$cache; \ + echo GDRUNTIME_SONAME=71 >> $$cache; \ + echo HSAIL_SONAME=0 >> $$cache; \ + cat $$cache) +else + SONAME_VARS := $(shell cat debian/soname-cache) +endif +CXX_SONAME = $(call vafilt,$(SONAME_VARS),CXX_SONAME) +OBJC_SONAME = $(call vafilt,$(SONAME_VARS),OBJC_SONAME) +FORTRAN_SONAME = $(call vafilt,$(SONAME_VARS),FORTRAN_SONAME) +SSP_SONAME = $(call vafilt,$(SONAME_VARS),SSP_SONAME) +FFI_SONAME = $(call vafilt,$(SONAME_VARS),FFI_SONAME) +GOMP_SONAME = $(call vafilt,$(SONAME_VARS),GOMP_SONAME) +ATOMIC_SONAME = $(call vafilt,$(SONAME_VARS),ATOMIC_SONAME) +BTRACE_SONAME = $(call vafilt,$(SONAME_VARS),BTRACE_SONAME) +ASAN_SONAME = $(call vafilt,$(SONAME_VARS),ASAN_SONAME) +LSAN_SONAME = $(call vafilt,$(SONAME_VARS),LSAN_SONAME) +TSAN_SONAME = $(call vafilt,$(SONAME_VARS),TSAN_SONAME) +UBSAN_SONAME = $(call vafilt,$(SONAME_VARS),UBSAN_SONAME) +VTV_SONAME = $(call vafilt,$(SONAME_VARS),VTV_SONAME) +CILKRTS_SONAME = $(call vafilt,$(SONAME_VARS),CILKRTS_SONAME) +QUADMATH_SONAME = $(call vafilt,$(SONAME_VARS),QUADMATH_SONAME) +GNAT_SONAME = $(call vafilt,$(SONAME_VARS),GNAT_SONAME) +GO_SONAME = $(call vafilt,$(SONAME_VARS),GO_SONAME) +ITM_SONAME = $(call vafilt,$(SONAME_VARS),ITM_SONAME) +CC1_SONAME = $(call vafilt,$(SONAME_VARS),CC1_SONAME) +GCCJIT_SONAME = $(call vafilt,$(SONAME_VARS),GCCJIT_SONAME) +MPX_SONAME = $(call vafilt,$(SONAME_VARS),MPX_SONAME) +GPHOBOS_SONAME = $(call vafilt,$(SONAME_VARS),GPHOBOS_SONAME) +GDRUNTIME_SONAME= $(call vafilt,$(SONAME_VARS),GDRUNTIME_SONAME) +HSAIL_SONAME = $(call vafilt,$(SONAME_VARS),HSAIL_SONAME) + +# alias +GFORTRAN_SONAME = $(FORTRAN_SONAME) +STDC++_SONAME = $(CXX_SONAME) --- gcc-7-7.5.0.orig/debian/rules.source +++ gcc-7-7.5.0/debian/rules.source @@ -0,0 +1,15 @@ +SOURCE_DIR := $(dir $(lastword $(MAKEFILE_LIST))) +patchdir = $(SOURCE_DIR)/patches + +include $(SOURCE_DIR)/debian/rules.defs +include $(SOURCE_DIR)/debian/rules.patch +include $(SOURCE_DIR)/debian/rules.unpack + +patch-source: $(patch_stamp) + +clean-source: + rm -rf $(stampdir) + rm -rf $(gcc_srcdir) $(gdc_srcdir) + rm -rf bin + rm -rf $(srcdir) + --- gcc-7-7.5.0.orig/debian/rules.unpack +++ gcc-7-7.5.0/debian/rules.unpack @@ -0,0 +1,208 @@ +# -*- makefile -*- +# rules to unpack the source tarballs in $(srcdir); if the source dir already +# exists, the rule exits with an error to prevent deletion of modified +# source files. It has to be deleted manually. + +tarballs = $(gcc_tarball) +ifeq ($(with_d),yes) + tarballs += $(gdc_tarball) +endif +ifeq ($(with_offload_nvptx),yes) + tarballs += $(nl_nvptx_tarball) +endif + +unpack_stamps = $(foreach i,$(tarballs),$(unpack_stamp)-$(i)) + +unpack: stamp-dir $(unpack_stamp) debian-chmod +$(unpack_stamp): $(unpack_stamps) +$(unpack_stamp): $(foreach p,$(debian_tarballs),unpacked-$(p)) + echo -e "\nBuilt from Debian source package $(PKGSOURCE)-$(SOURCE_VERSION)" \ + > pxxx + echo -e "Integrated upstream packages in this version:\n" >> pxxx + for i in $(tarballs); do echo " $$i" >> pxxx; done + mv -f pxxx $@ + +debian-chmod: + @chmod 755 debian/dh_* + +# --------------------------------------------------------------------------- + +gfdl_texinfo_files = \ + gcc/doc/avr-mmcu.texi \ + gcc/doc/bugreport.texi \ + gcc/doc/cfg.texi \ + gcc/doc/collect2.texi \ + gcc/doc/compat.texi \ + gcc/doc/configfiles.texi \ + gcc/doc/configterms.texi \ + gcc/doc/contrib.texi \ + gcc/doc/contribute.texi \ + gcc/doc/cpp.texi \ + gcc/doc/cppenv.texi \ + gcc/doc/cppinternals.texi \ + gcc/doc/cppopts.texi \ + gcc/doc/extend.texi \ + gcc/doc/fragments.texi \ + gcc/doc/frontends.texi \ + gcc/doc/gccint.texi \ + gcc/doc/gcov.texi \ + gcc/doc/gcov-dump.texi \ + gcc/doc/gcov-tool.texi \ + gcc/doc/generic.texi \ + gcc/doc/gimple.texi \ + gcc/doc/gnu.texi \ + gcc/doc/gty.texi \ + gcc/doc/headerdirs.texi \ + gcc/doc/hostconfig.texi \ + gcc/doc/implement-c.texi \ + gcc/doc/implement-cxx.texi \ + gcc/doc/install-old.texi \ + gcc/doc/install.texi \ + gcc/doc/interface.texi \ + gcc/doc/invoke.texi \ + gcc/doc/languages.texi \ + gcc/doc/libgcc.texi \ + gcc/doc/loop.texi \ + gcc/doc/lto.texi \ + gcc/doc/makefile.texi \ + gcc/doc/match-and-simplify.texi \ + gcc/doc/md.texi \ + gcc/doc/objc.texi \ + gcc/doc/optinfo.texi \ + gcc/doc/options.texi \ + gcc/doc/passes.texi \ + gcc/doc/plugins.texi \ + gcc/doc/portability.texi \ + gcc/doc/rtl.texi \ + gcc/doc/service.texi \ + gcc/doc/sourcebuild.texi \ + gcc/doc/standards.texi \ + gcc/doc/tm.texi.in \ + gcc/doc/tm.texi \ + gcc/doc/tree-ssa.texi \ + gcc/doc/trouble.texi \ + gcc/doc/include/gcc-common.texi \ + gcc/doc/include/funding.texi \ + gcc/fortran/gfc-internals.texi \ + gcc/fortran/invoke.texi \ + gcc/fortran/intrinsic.texi \ + + +gfdl_toplevel_texinfo_files = \ + gcc/doc/gcc.texi \ + gcc/ada/gnat-style.texi \ + gcc/ada/gnat_rm.texi \ + gcc/ada/gnat_ugn.texi \ + gcc/fortran/gfortran.texi \ + gcc/go/gccgo.texi \ + libgomp/libgomp.texi \ + libquadmath/libquadmath.texi \ + +gfdl_manpages = \ + gcc/doc/cpp.1 \ + gcc/doc/g++.1 \ + gcc/doc/gc-analyze.1 \ + gcc/doc/gcc.1 \ + gcc/doc/gccgo.1 \ + gcc/doc/gcov.1 \ + gcc/doc/gcov-dump.1 \ + gcc/doc/gcov-tool.1 \ + gcc/doc/gfortran.1 \ + gcc/doc/fsf-funding.7 \ + +# --------------------------------------------------------------------------- +$(unpack_stamp)-$(gcc_tarball): $(gcc_tarpath) + : # unpack gcc tarball + mkdir -p $(stampdir) + if [ -d $(srcdir) ]; then \ + echo >&2 "Source directory $(srcdir) exists. Delete by hand"; \ + false; \ + fi + rm -rf $(gcc_srcdir) + tar -x -f $(gcc_tarpath) + mv $(gcc_srcdir) $(srcdir) + ln -sf libsanitizer $(srcdir)/libasan +ifeq (0,1) + cd $(srcdir) && tar cfj ../gcc-4.1.1-doc.tar.bz2 \ + $(gfdl_texinfo_files) \ + $(gfdl_toplevel_texinfo_files) \ + $(gfdl_manpages) +endif +ifeq ($(GFDL_INVARIANT_FREE),yes) + ifneq ($(single_package),yes) + rm -f $(srcdir)/gcc/doc/*.1 + rm -f $(srcdir)/gcc/doc/fsf-funding.7 + rm -f $(srcdir)/gcc/doc/*.info + rm -f $(srcdir)/gcc/fortran/*.info + rm -f $(srcdir)/libgomp/*.info + for i in $(gfdl_texinfo_files); do \ + if [ -f $(srcdir)/$$i ]; then \ + cp $(SOURCE_DIR)debian/dummy.texi $(srcdir)/$$i; \ + else \ + cp $(SOURCE_DIR)debian/dummy.texi $(srcdir)/$$i; \ + echo >&2 "$$i does not exist, fix debian/rules.unpack"; \ + fi; \ + done + for i in $(gfdl_toplevel_texinfo_files); do \ + n=$$(basename $$i .texi); \ + if [ -f $(srcdir)/$$i ]; then \ + sed "s/@name@/$$n/g" $(SOURCE_DIR)debian/gcc-dummy.texi \ + > $(srcdir)/$$i; \ + else \ + sed "s/@name@/$$n/g" $(SOURCE_DIR)debian/gcc-dummy.texi \ + > $(srcdir)/$$i; \ + echo >&2 "$$i does not exist, fix debian/rules.unpack"; \ + fi; \ + done + for i in $(gfdl_manpages); do \ + touch $(srcdir)/$$i; \ + done + rm -f $(srcdir)/INSTALL/*.html + rm -f $(srcdir)/zlib/contrib/dotzlib/DotZLib.chm + endif +endif + echo "$(gcc_tarball) unpacked." > $@ + +# --------------------------------------------------------------------------- +ifneq (,$(gdc_tarball)) +$(unpack_stamp)-$(gdc_tarball): $(gdc_tarpath) $(unpack_stamp)-$(gcc_tarball) + : # unpack gdc tarball + mkdir -p $(stampdir) + if [ -d $(srcdir)/gcc/d ]; then \ + echo >&2 "Source directory $(srcdir)/gcc/d exists. Delete by hand";\ + false; \ + fi + #rm -rf $(gdc_srcdir) + rm -rf $(srcdir)/gcc/d + rm -rf $(srcdir)/gcc/testsuite/gdc.test + rm -f $(srcdir)/gcc/testsuite/lib/gdc*.exp + rm -rf $(srcdir)/libphobos + tar -x -C $(srcdir) --strip-components=1 -f $(gdc_tarpath) +ifeq ($(GFDL_INVARIANT_FREE),yes-now-purge-gfdl) + ifneq ($(single_package),yes) + for i in gcc/d/gdc.texi; do \ + n=$$(basename $$i .texi); \ + if [ -f $(srcdir)/$$i ]; then \ + sed "s/@name@/$$n/g" $(SOURCE_DIR)debian/gcc-dummy.texi \ + > $(srcdir)/$$i; \ + else \ + echo >&2 "$$i does not exist, fix debian/rules.unpack"; \ + fi; \ + done + for i in gcc/d/gdc.1; do \ + touch $(srcdir)/$$i; \ + done + endif +endif + echo "$(gdc_tarball) unpacked." > $@ +endif + +# --------------------------------------------------------------------------- +ifneq (,$(nl_nvptx_tarball)) +$(unpack_stamp)-$(nl_nvptx_tarball): $(nl_nvptx_tarpath) $(unpack_stamp)-$(gcc_tarball) + : # unpack newlib-nvptx tarball + mkdir -p $(stampdir) + : # rm -rf $(nl_nvptx_srcdir) + tar -x -f $(nl_nvptx_tarpath) + echo "$(nl_nvptx_tarball) unpacked." > $@ +endif --- gcc-7-7.5.0.orig/debian/rules2 +++ gcc-7-7.5.0/debian/rules2 @@ -0,0 +1,2557 @@ +#! /usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +.SUFFIXES: + +include debian/rules.defs +include debian/rules.parameters + +dh_compat2 := $(shell dpkg --compare-versions "$$(dpkg-query -f '$${Version}' -W debhelper)" lt 9.20150811ubuntu2 \ + && echo DH_COMPAT=2) + +# some tools +SHELL = /bin/bash -e # brace expansion in rules file +IR = install -m 644 # Install regular file +IP = install -m 755 # Install program +IS = install -m 755 # Install script + +DWZ = dwz +ifneq (,$(filter $(distrelease),jessie stretch trusty xenial)) + DWZ = : dwz +endif + +# kernel-specific ulimit hack +ifeq ($(findstring linux,$(DEB_HOST_GNU_SYSTEM)),linux) + ULIMIT_M = if [ -e /proc/meminfo ]; then \ + m=`awk '/^((Mem|Swap)Free|Cached)/{m+=$$2}END{print int(m*.9)}' \ + /proc/meminfo`; \ + else \ + m=`vmstat --free --swap-free --kilobytes|awk '{m+=$$2}END{print int(m*.9)}'`; \ + fi; \ + echo "Limiting memory for test runs to $${m}kB"; \ + if ulimit -m $$m; then \ + echo " limited to `ulimit -m`kB"; \ + else \ + echo " failed"; \ + fi +else + ULIMIT_M = true +endif + +ifeq ($(locale_data),generate) + SET_LOCPATH = LOCPATH=$(CURDIR)/locales +endif + +SET_PATH = PATH=$(CURDIR)/bin:/usr/$(libdir)/gcc/bin:$$PATH +ifeq ($(trunk_build),yes) + ifneq (,$(findstring sparc64-linux,$(DEB_TARGET_GNU_TYPE))) + SET_PATH = PATH=/usr/lib/gcc-snapshot/bin:$(CURDIR)/bin:/usr/$(libdir)/gcc/bin:$$PATH + endif + ifneq (,$(findstring ppc64-linux,$(DEB_TARGET_GNU_TYPE))) + SET_PATH = PATH=/usr/lib/gcc-snapshot/bin:$(CURDIR)/bin:/usr/$(libdir)/gcc/bin:$$PATH + endif +endif + +# the recipient for the test summaries. Send with: debian/rules mail-summary +S_EMAIL = gcc@packages.debian.org gcc-testresults@gcc.gnu.org + +# build not yet prepared to take variables from the environment +define unsetenv + unexport $(1) + $(1) = +endef +$(foreach v, CPPFLAGS CFLAGS CXXFLAGS DFLAGS FFLAGS FCFLAGS LDFLAGS OBJCFLAGS OBJCXXFLAGS, $(if $(filter environment,$(origin $(v))),$(eval $(call unsetenv, $(v))))) + +CC = $(notdir $(firstword $(wildcard \ + /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc-7 \ + /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc-6 \ + /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc-5 \ + /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc))) +CXX = $(notdir $(firstword $(wildcard \ + /usr/bin/$(DEB_HOST_GNU_TYPE)-g++-7 \ + /usr/bin/$(DEB_HOST_GNU_TYPE)-g++-6 \ + /usr/bin/$(DEB_HOST_GNU_TYPE)-g++-5 \ + /usr/bin/$(DEB_HOST_GNU_TYPE)-g++))) +ifeq ($(with_ada),yes) + GNAT = $(notdir $(firstword $(wildcard \ + /usr/bin/$(DEB_HOST_GNU_TYPE)-gnat-7 \ + /usr/bin/$(DEB_HOST_GNU_TYPE)-gnat-6 \ + /usr/bin/$(DEB_HOST_GNU_TYPE)-gnat-5 \ + /usr/bin/$(DEB_HOST_GNU_TYPE)-gnat /usr/bin/gnatgcc))) + ifeq ($(GNAT),gnatgcc) + CC := $(shell readlink /usr/bin/gnatgcc) + else ifneq (,$(GNAT)) + CC = $(subst gnat,gcc,$(GNAT)) + else ifneq (,$(filter $(distrelease), trusty)) + CC = gcc-4.8 + else ifneq (,$(wildcard /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc)) + CC = $(DEB_HOST_GNU_TYPE)-gcc + else + CC = gcc + endif + CXX = $(subst gcc,g++,$(CC)) +endif + +ifneq (,$(filter $(build_type),cross-build-native cross-build-cross)) + SET_TARGET_TOOLS = \ + CC_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-gcc-$(BASE_VERSION) \ + CXX_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-g++-$(BASE_VERSION) \ + GFORTRAN_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-gfortran-$(BASE_VERSION) \ + GOC_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-gccgo-$(BASE_VERSION) \ + GNAT_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-gnat-$(BASE_VERSION) \ + GDC_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-gdc-$(BASE_VERSION) +endif + +ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_TARGET_GNU_TYPE)) + CC_FOR_TARGET = $(builddir)/gcc/xgcc -B$(builddir)/gcc/ +else + CC_FOR_TARGET = $(DEB_TARGET_GNU_TYPE)-gcc +endif + +ifneq ($(derivative),Ubuntu) + ifneq (,$(filter $(DEB_TARGET_ARCH), arm armel mips mipsel)) + STAGE1_CFLAGS = -g -O2 + endif +endif + +# work around PR 57689 +ifeq ($(DEB_TARGET_ARCH),ia64) + BOOT_CFLAGS = -g -O1 +endif + +ifeq ($(with_ssp_default),yes) + STAGE1_CFLAGS = -g + ifeq (,$(BOOT_CFLAGS)) + BOOT_CFLAGS = -g -O2 + endif + LIBCFLAGS = -g -O2 + LIBCXXFLAGS = -g -O2 -fno-implicit-templates + # Only use -fno-stack-protector when known to the stage1 compiler. + cc-fno-stack-protector := $(shell if $(CC) $(CFLAGS) -fno-stack-protector \ + -S -o /dev/null -xc /dev/null > /dev/null 2>&1; \ + then echo "-fno-stack-protector"; fi;) + $(foreach var,STAGE1_CFLAGS BOOT_CFLAGS LIBCFLAGS LIBCXXFLAGS,$(eval \ + $(var) += $(cc-fno-stack-protector))) +endif + +# FIXME: passing LDFLAGS for native doesn't do anything +ifneq (,$(filter $(build_type), build-cross cross-build-cross)) + CFLAGS = -g -O2 + LDFLAGS = -Wl,-z,relro + ifeq ($(DEB_TARGET_ARCH),alpha) + LDFLAGS += -Wl,--no-relax + endif +else + BOOT_LDFLAGS = -Wl,-z,relro + ifeq ($(DEB_TARGET_ARCH),alpha) + BOOT_LDFLAGS += -Wl,--no-relax + endif +endif +LDFLAGS_FOR_TARGET = -Wl,-z,relro +ifeq ($(DEB_TARGET_ARCH),alpha) + LDFLAGS := $(filter-out -Wl$(COMMA)--no-relax, $(LDFLAGS)) -Wl,--no-relax +endif + +ifneq (,$(findstring static,$(DEB_BUILD_OPTIONS))) + LDFLAGS += -static +endif + +ifneq ($(findstring gccdebug, $(DEB_BUILD_OPTIONS)),) + CFLAGS = -O0 -g3 -fno-inline + CXXFLAGS = -O0 -g3 -fno-inline + CFLAGS_FOR_BUILD = -O0 -g3 -fno-inline + CXXFLAGS_FOR_BUILD = -O0 -g3 -fno-inline + CFLAGS_FOR_TARGET = -O0 -g3 -fno-inline + CXXFLAGS_FOR_TARGET = -O0 -g3 -fno-inline + BOOT_CFLAGS = + BOOT_LDFLAGS = + STAGE1_CFLAGS = + STAGE1_LDFLAGS = +endif + +# set CFLAGS/LDFLAGS for the configure step only, maybe be modifed for some target +# all other flags are passed to the make step. +pass_vars = $(foreach v,$(1),$(if $($(v)),$(v)="$($(v))")) +flags_to_pass := CFLAGS CXXFLAGS LIBCFLAGS LIBCXXFLAGS LDFLAGS + +docdir = usr/share/doc + +# no prefix for regular builds, would disable searching for as / ld +binutils_prefix = +ifneq (,$(with_build_sysroot)) + binutils_prefix = $(with_build_sysroot)/usr/bin +endif + +CONFARGS = -v \ + --with-pkgversion='$(distribution)$(if $(with_linaro_branch),/Linaro)$(if $(with_ibm_branch),/IBM)___$(DEB_VERSION)' \ + --with-bugurl='file:///usr/share/doc/$(PKGSOURCE)/README.Bugs' + +CONFARGS += \ + --enable-languages=$(subst $(SPACE),$(COMMA),$(enabled_languages)) \ + --prefix=/$(PF) \ + --with-gcc-major-version-only \ + +ifneq (,$(with_build_sysroot)) + CONFARGS += \ + --with-as=$(binutils_prefix)/$(DEB_TARGET_GNU_TYPE)-as \ + --with-ld=$(binutils_prefix)/$(DEB_TARGET_GNU_TYPE)-ld +endif + +ifeq ($(versioned_packages),yes) + CONFARGS += --program-suffix=-$(BASE_VERSION) +endif +ifneq (,$(filter $(build_type),build-native cross-build-native)) + CONFARGS += --program-prefix=$(cmd_prefix) +endif + +ifneq (,$(filter $(DEB_STAGE),stage1 stage2)) + CONFARGS += \ + --disable-decimal-float \ + --disable-libatomic \ + --disable-libgomp \ + --disable-libmpx \ + --disable-libhsail-rt \ + --disable-libssp \ + --disable-libquadmath \ + --disable-libsanitizer \ + --disable-threads \ + --disable-bootstrap \ + --libexecdir=/$(libexecdir) \ + --libdir=/$(PF)/$(configured_libdir) \ + $(if $(with_build_sysroot),--with-build-sysroot=$(with_build_sysroot)) \ + $(if $(findstring build-cross, $(build_type)), \ + $(if $(with_sysroot),--with-sysroot=$(with_sysroot))) \ + --enable-linker-build-id + + ifeq ($(with_multiarch_lib),yes) + CONFARGS += \ + --enable-multiarch + endif + + ifeq ($(DEB_STAGE),stage1) + CONFARGS += \ + --disable-shared \ + --with-newlib \ + --without-headers + else + # stage2 + CONFARGS += \ + --enable-shared + endif +else + CONFARGS += \ + --enable-shared \ + --enable-linker-build-id \ + +ifneq ($(single_package),yes) + CONFARGS += \ + --libexecdir=/$(libexecdir) \ + --without-included-gettext \ + --enable-threads=posix \ + --libdir=/$(PF)/$(configured_libdir) +endif + +ifneq ($(with_cpp),yes) + CONFARGS += --disable-cpp +endif + +ifeq ($(with_nls),yes) + CONFARGS += --enable-nls +else + CONFARGS += --disable-nls +endif + +ifeq ($(with_bootstrap),off) + CONFARGS += --disable-bootstrap +else ifneq ($(with_bootstrap),) + CONFARGS += --enable-bootstrap +endif + +ifneq ($(with_sysroot),) + CONFARGS += --with-sysroot=$(with_sysroot) +endif +ifneq ($(with_build_sysroot),) + CONFARGS += --with-build-sysroot=$(with_build_sysroot) +endif + +ifeq ($(force_gnu_locales),yes) + CONFARGS += --enable-clocale=gnu +endif + +ifeq ($(with_cxx)-$(with_cxx_debug),yes-yes) + CONFARGS += --enable-libstdcxx-debug +endif +CONFARGS += --enable-libstdcxx-time=yes +CONFARGS += --with-default-libstdcxx-abi=$(libstdcxx_abi) +ifeq ($(libstdcxx_abi),gcc4-compatible) + CONFARGS += --disable-libstdcxx-dual-abi +endif + +ifeq (,$(filter $(DEB_TARGET_ARCH), hurd-i386 kfreebsd-i386 kfreebsd-amd64)) + CONFARGS += --enable-gnu-unique-object +endif + +ifneq ($(with_ssp),yes) + CONFARGS += --disable-libssp +endif + +ifneq ($(with_gomp),yes) + CONFARGS += --disable-libgomp +endif + +ifneq ($(with_itm),yes) + CONFARGS += --disable-libitm +endif + +ifneq ($(with_atomic),yes) + CONFARGS += --disable-libatomic +endif + +ifneq (,$(filter $(DEB_TARGET_ARCH),$(vtv_archs))) + ifeq ($(with_vtv),yes) + CONFARGS += --enable-vtable-verify + else + CONFARGS += --disable-vtable-verify + endif +endif + +ifneq ($(with_asan),yes) + CONFARGS += --disable-libsanitizer +endif + +ifneq ($(with_qmath),yes) + CONFARGS += --disable-libquadmath --disable-libquadmath-support +endif + +ifeq ($(with_mpx),yes) + CONFARGS += --enable-libmpx +endif + +ifeq ($(with_plugins),yes) + CONFARGS += --enable-plugin +endif + +#ifeq ($(with_gold),yes) +# CONFARGS += --enable-gold --enable-ld=default +#endif + +#CONFARGS += --with-plugin-ld=ld.gold +#CONFARGS += --with-plugin-ld + +# enable pie-by-default on pie_archs +ifeq ($(with_pie),yes) + CONFARGS += --enable-default-pie +endif + +endif # !DEB_STAGE + +CONFARGS += --with-system-zlib + +ifeq ($(with_libphobos),yes) + CONFARGS += --with-target-system-zlib +endif + +ifeq ($(with_objc)-$(with_objc_gc),yes-yes) + CONFARGS += --enable-objc-gc=auto +endif + +ifneq (,$(filter $(DEB_TARGET_GNU_TYPE), i486-linux-gnu i586-linux-gnu i686-linux-gnu)) + ifeq ($(multilib),yes) + ifeq ($(biarch64),yes) + CONFARGS += --enable-targets=all + endif + endif +endif + +ifneq (,$(filter $(DEB_TARGET_GNU_TYPE), x86_64-linux-gnu x86_64-linux-gnux32 x86_64-kfreebsd-gnu s390x-linux-gnu sparc64-linux-gnu)) + ifneq ($(biarch32),yes) + CONFARGS += --disable-multilib + endif +endif + +ifneq (,$(filter $(DEB_TARGET_GNU_TYPE), powerpc-linux-gnu powerpc-linux-gnuspe)) + CONFARGS += --enable-secureplt + ifeq ($(biarch64),yes) + CONFARGS += --disable-softfloat --with-cpu=default32 + ifeq ($(multilib),yes) + CONFARGS += --disable-softfloat \ + --enable-targets=powerpc-linux,powerpc64-linux + endif + else + CONFARGS += --disable-multilib + endif +endif + +ifneq (,$(findstring powerpc64le-linux,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --enable-secureplt + ifneq (,$(filter $(distrelease),jessie trusty utopic vivid wily)) + CONFARGS += --with-cpu=power7 --with-tune=power8 + else + CONFARGS += --with-cpu=power8 + endif + CONFARGS += --enable-targets=powerpcle-linux + CONFARGS += --disable-multilib +endif + +ifneq (,$(findstring powerpc64-linux,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --enable-secureplt + ifeq ($(biarch32),yes) + ifeq ($(multilib),yes) + CONFARGS += --disable-softfloat --enable-targets=powerpc64-linux,powerpc-linux + endif + else + CONFARGS += --disable-multilib + endif + ifeq ($(derivative),Ubuntu) + CONFARGS += --with-cpu-32=power7 --with-cpu-64=power7 + endif +endif + +# FIXME: only needed for isl-0.13 for now +#CONFARGS += --disable-isl-version-check + +ifneq (,$(findstring cross-build-,$(build_type))) + # FIXME: requires isl headers for the target + #CONFARGS += --without-isl + # FIXME: build currently fails build the precompiled headers + CONFARGS += --disable-libstdcxx-pch +endif + +ifeq ($(with_multiarch_lib),yes) + CONFARGS += --enable-multiarch +endif + +ifneq (,$(findstring aarch64,$(DEB_TARGET_GNU_CPU))) + # requires binutils 2.25.90 or newer + ifeq (,$(filter $(distrelease),squeeze precise trusty utopic vivid wily)) + CONFARGS += --enable-fix-cortex-a53-843419 + endif +endif + +ifeq ($(findstring powerpcspe,$(DEB_TARGET_ARCH)),powerpcspe) + CONFARGS += --with-cpu=8548 --enable-e500_double +endif + +ifneq (,$(findstring softfloat,$(DEB_TARGET_GNU_CPU))) + CONFARGS += --with-float=soft +endif + +ifneq (,$(findstring arm-vfp,$(DEB_TARGET_GNU_CPU))) + CONFARGS += --with-fpu=vfp +endif + +ifneq (,$(findstring arm, $(DEB_TARGET_GNU_CPU))) + ifeq ($(multilib),yes) + CONFARGS += --enable-multilib + endif + CONFARGS += --disable-sjlj-exceptions + ifneq (,$(filter %armhf,$(DEB_TARGET_ARCH))) + ifeq ($(distribution),Raspbian) + with_arm_arch = armv6 + with_arm_fpu = vfp + else + with_arm_arch = armv7-a + with_arm_fpu = vfpv3-d16 + endif + else + # armel + ifeq ($(derivative),Debian) + ifneq (,$(filter $(distrelease),etch lenny squeeze wheezy jessie stretch)) + with_arm_arch = armv4t + else + with_arm_arch = armv5te + endif + else ifneq (,$(filter $(distrelease),karmic)) + with_arm_arch = armv6 + with_arm_fpu = vfpv3-d16 + else ifneq (,$(filter $(distrelease),lucid maverick natty oneiric precise)) + with_arm_arch = armv7-a + with_arm_fpu = vfpv3-d16 + else + with_arm_arch = armv5t # starting with quantal + endif + endif + CONFARGS += --with-arch=$(with_arm_arch) + ifneq (,$(with_arm_fpu)) + CONFARGS += --with-fpu=$(with_arm_fpu) + endif + CONFARGS += --with-float=$(float_abi) + ifeq ($(with_arm_thumb),yes) + CONFARGS += --with-mode=thumb + endif +endif + +ifeq ($(DEB_TARGET_GNU_CPU),$(findstring $(DEB_TARGET_GNU_CPU),m68k)) + CONFARGS += --disable-werror +endif +# FIXME: correct fix-warnings.dpatch +ifeq ($(derivative),Ubuntu) + CONFARGS += --disable-werror +else ifeq ($(derivative),Debian) + CONFARGS += --disable-werror +endif + +ifneq (,$(findstring sparc-linux,$(DEB_TARGET_GNU_TYPE))) + ifeq ($(biarch64),yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-cpu-32=ultrasparc + else + CONFARGS += --with-cpu=ultrasparc + endif +endif + +ifneq (,$(findstring sparc64-linux,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-cpu-32=ultrasparc + ifeq ($(biarch32),yes) + CONFARGS += --enable-targets=all + endif +endif + +ifneq (,$(findstring ia64-linux,$(DEB_TARGET_GNU_TYPE))) + ifneq ($(with_internal_libunwind),yes) + CONFARGS += --with-system-libunwind + endif +endif + +ifneq (,$(findstring sh4-linux,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-cpu=sh4 --with-multilib-list=m4,m4-nofpu +endif + +ifneq (,$(findstring m68k-linux,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --disable-multilib +endif + +ifneq (,$(filter tilegx,$(DEB_TARGET_GNU_CPU))) + CONFARGS += --disable-multilib +endif + +ifneq (,$(findstring riscv64-linux,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --disable-multilib + CONFARGS += --with-arch=rv64imafdc --with-abi=lp64d +endif + +ifneq (,$(findstring s390x-linux,$(DEB_TARGET_GNU_TYPE))) + ifeq ($(derivative),Ubuntu) + CONFARGS += --with-arch=zEC12 + else # Debian + CONFARGS += --with-arch=z196 + endif +endif + +ifeq ($(DEB_TARGET_ARCH_OS),linux) + ifneq (,$(findstring $(DEB_TARGET_ARCH), alpha powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64)) + CONFARGS += --with-long-double-128 + endif +endif + +ifneq (,$(filter $(DEB_TARGET_ARCH), amd64 i386 kfreebsd-i386 kfreebsd-amd64)) + ifneq (,$(filter $(derivative),Ubuntu)) + ifneq (,$(filter $(distrelease),dapper hardy)) + CONFARGS += --with-arch-32=i486 + else ifneq (,$(filter $(distrelease),jaunty karmic lucid)) + CONFARGS += --with-arch-32=i586 + else + CONFARGS += --with-arch-32=i686 + endif + else # Debian + ifneq (,$(filter $(distrelease),etch lenny)) + CONFARGS += --with-arch-32=i486 + else ifneq (,$(filter $(distrelease),squeeze wheezy jessie)) + CONFARGS += --with-arch-32=i586 + else + CONFARGS += --with-arch-32=i686 + endif + endif +endif + +ifeq ($(DEB_TARGET_ARCH),amd64) + CONFARGS += --with-abi=m64 +endif +ifeq ($(DEB_TARGET_ARCH),x32) + CONFARGS += --with-abi=mx32 +endif +ifeq ($(multilib),yes) + ifneq (,$(filter $(DEB_TARGET_ARCH), amd64 i386)) + CONFARGS += --with-multilib-list=m32,m64$(if $(filter yes,$(biarchx32)),$(COMMA)mx32) + else ifeq ($(DEB_TARGET_ARCH),x32) + CONFARGS += --with-multilib-list=mx32,m64,m32 + endif + CONFARGS += --enable-multilib +endif + +ifneq (,$(filter $(DEB_TARGET_ARCH), hurd-i386)) + CONFARGS += --with-arch=i586 +endif + +ifeq ($(DEB_TARGET_ARCH),lpia) + CONFARGS += --with-arch=pentium-m --with-tune=i586 +endif + +ifneq (,$(filter $(DEB_TARGET_ARCH), amd64 i386 hurd-i386 kfreebsd-i386 kfreebsd-amd64)) + CONFARGS += --with-tune=generic +endif + +ifneq (,$(findstring mips-linux,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx + CONFARGS += --with-lxc1-sxc1=no + ifeq ($(multilib),yes) + ifeq ($(biarchn32)-$(biarch64),yes-yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-arch-64=mips64r2 + endif + endif +endif + +ifneq (,$(findstring mipsel-linux,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx + CONFARGS += --with-madd4=no + CONFARGS += --with-lxc1-sxc1=no + ifeq ($(multilib),yes) + ifeq ($(biarchn32)-$(biarch64),yes-yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-arch-64=mips64r2 + endif + endif +endif + +#FIXME: howto for mipsn32? +ifneq (,$(findstring mips64el-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-madd4=no + ifeq ($(multilib),yes) + ifeq ($(biarch64)-$(biarch32),yes-yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-arch-64=mips64r2 + CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx + endif + endif +endif + +ifneq (,$(findstring mips64-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE))) + ifeq ($(multilib),yes) + ifeq ($(biarch64)-$(biarch32),yes-yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-arch-64=mips64r2 + CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx + endif + endif +endif + +ifneq (,$(findstring mips64el-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-mips-plt + CONFARGS += --with-arch-64=mips64r2 + CONFARGS += --with-madd4=no + ifeq ($(multilib),yes) + ifeq ($(biarchn32)-$(biarch32),yes-yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx + endif + endif +endif + +ifneq (,$(findstring mips64-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-mips-plt + CONFARGS += --with-arch-64=mips64r2 + ifeq ($(multilib),yes) + ifeq ($(biarchn32)-$(biarch32),yes-yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx + endif + endif +endif + +ifneq (,$(findstring mipsisa32r6-linux,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6 + ifeq ($(multilib),yes) + ifeq ($(biarchn32)-$(biarch64),yes-yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6 + endif + endif +endif + +ifneq (,$(findstring mipsisa32r6el-linux,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6 + ifeq ($(multilib),yes) + ifeq ($(biarchn32)-$(biarch64),yes-yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6 + endif + endif +endif + +#FIXME: howto for mipsn32? +ifneq (,$(findstring mipsisa64r6el-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-mips-plt + ifeq ($(multilib),yes) + ifeq ($(biarch64)-$(biarch32),yes-yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6 + CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6 + endif + endif +endif + +ifneq (,$(findstring mipsisa64r6-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-mips-plt + ifeq ($(multilib),yes) + ifeq ($(biarch64)-$(biarch32),yes-yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6 + CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6 + endif + endif +endif + +ifneq (,$(findstring mipsisa64r6el-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-mips-plt + CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6 + ifeq ($(multilib),yes) + ifeq ($(biarchn32)-$(biarch32),yes-yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6 + endif + endif +endif + +ifneq (,$(findstring mipsisa64r6-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --with-mips-plt + CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6 + ifeq ($(multilib),yes) + ifeq ($(biarchn32)-$(biarch32),yes-yes) + CONFARGS += --enable-targets=all + CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6 + endif + endif +endif + +ifneq (,$(findstring mips,$(DEB_TARGET_GNU_TYPE))) + ifeq (,$(filter yes,$(biarch32) $(biarchn32) $(biarch64))) + CONFARGS += --disable-multilib + endif +endif + +ifneq (,$(findstring s390-linux,$(DEB_TARGET_GNU_TYPE))) + ifeq ($(multilib),yes) + ifeq ($(biarch64),yes) + CONFARGS += --enable-targets=all + endif + endif +endif + +ifneq (,$(findstring hppa-linux,$(DEB_TARGET_GNU_TYPE))) + CONFARGS += --disable-libstdcxx-pch +endif + +ifneq (,$(offload_targets)) + CONFARGS += \ + --enable-offload-targets=$(subst $(SPACE),$(COMMA),$(offload_targets)) + ifeq ($(with_offload_nvptx),yes) + CONFARGS += --without-cuda-driver + endif +endif + +ifneq (,$(findstring gdc, $(PKGSOURCE))) + CONFARGS += --disable-libquadmath +endif + +ifeq ($(trunk_build),yes) + ifeq ($(findstring --disable-werror, $(CONFARGS)),) + CONFARGS += --disable-werror + endif + CONFARGS += --enable-checking=yes +else + CONFARGS += --enable-checking=release +endif + +CONFARGS += \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --host=$(DEB_HOST_GNU_TYPE) \ + --target=$(TARGET_ALIAS) + +ifeq ($(DEB_CROSS),yes) + CONFARGS += \ + --program-prefix=$(TARGET_ALIAS)- \ + --includedir=/$(PFL)/include +endif + +ifeq ($(with_bootstrap),off) + bootstrap_target = +else ifeq ($(with_bootstrap),profiled) + bootstrap_target = profiledbootstrap + bootstrap_target = profiledbootstrap-lean +else ifeq ($(with_bootstrap),) + bootstrap_target = bootstrap + ifneq (, $(filter $(PKGSOURCE),gcc-$(BASE_VERSION) gnat-$(BASE_VERSION) gcc-snapshot)) + bootstrap_target = bootstrap + endif + ifneq (,$(DEB_STAGE)) + bootstrap_target = bootstrap + endif +endif + +DEJAGNU_TIMEOUT=300 +# Increase the timeout for one testrun on slow architectures +ifeq ($(derivative),Debian) + ifneq (,$(findstring $(DEB_TARGET_ARCH),arm64)) + DEJAGNU_TIMEOUT=240 + else ifneq (,$(findstring $(DEB_TARGET_ARCH),arm armel armhf hppa m68k sparc)) + DEJAGNU_TIMEOUT=600 + else ifneq (,$(findstring $(DEB_TARGET_GNU_CPU),amd64 i386 i486 i686 lpia)) + DEJAGNU_TIMEOUT=180 + endif + ifeq ($(DEB_TARGET_GNU_SYSTEM),gnu) + DEJAGNU_TIMEOUT=900 + endif +else ifeq ($(derivative),Ubuntu) + ifneq (,$(findstring $(DEB_TARGET_ARCH),arm64)) + DEJAGNU_TIMEOUT=240 + else ifneq (,$(findstring $(DEB_TARGET_ARCH),armel armhf hppa ia64 sparc)) + DEJAGNU_TIMEOUT=600 + else ifneq (,$(findstring $(DEB_TARGET_GNU_CPU),amd64 i386 i486 i686 lpia)) + DEJAGNU_TIMEOUT=180 + endif +endif + +DEJAGNU_RUNS = +ifneq ($(trunk_build),yes) +ifeq ($(with_ssp),yes) + # the buildds are just slow ... don't check the non-default + ifneq (,$(findstring $(DEB_TARGET_GNU_CPU),sh4 mips)) + DEJAGNU_RUNS = + else ifneq (,$(filter $(DEB_TARGET_ARCH),armel)) + DEJAGNU_RUNS = + else + ifneq ($(single_package),yes) + DEJAGNU_RUNS += $(if $(filter yes,$(with_ssp_default)),-fno-stack-protector,-fstack-protector) + endif + endif + ifeq ($(derivative),Ubuntu) + # the buildds are just slow ... don't check the non-default + ifneq (,$(findstring $(DEB_TARGET_GNU_CPU),ia64 sparc)) + DEJAGNU_RUNS = + endif + # FIXME Ubuntu armel buildd hangs + ifneq (,$(findstring arm, $(DEB_TARGET_GNU_CPU))) + DEJAGNU_RUNS = + endif + endif +endif +endif + +ifeq ($(derivative),Ubuntu) + ifneq (,$(findstring arm, $(DEB_TARGET_GNU_CPU))) + ifeq ($(with_arm_thumb),yes) + #DEJAGNU_RUNS += -marm + else + DEJAGNU_RUNS += -mthumb + endif + endif +endif + +# no b-d on g++-multilib, this is run by the built compiler +abi_run_check = $(strip $(if $(wildcard build/runcheck$(1).out), \ + $(shell cat build/runcheck$(1).out), \ + $(shell CC="$(builddir)/gcc/xg++ -B$(builddir)/gcc/ -static-libgcc $(1)" bash debian/runcheck.sh))) +ifeq ($(biarch32),yes) + DEJAGNU_RUNS += $(call abi_run_check,$(if $(filter $(DEB_TARGET_ARCH_CPU),mips64 mips64el mipsn32 mipsn32el),-mabi=32,-m32)) +endif +ifeq ($(biarch64),yes) + DEJAGNU_RUNS += $(call abi_run_check,$(if $(filter $(DEB_TARGET_ARCH_CPU),mips mipsel),-mabi=64,-m64)) +endif +ifeq ($(biarchn32),yes) + DEJAGNU_RUNS += $(call abi_run_check,-mabi=n32) +endif +ifeq ($(biarchx32),yes) + DEJAGNU_RUNS += $(call abi_run_check,-mx32) +endif + +# gdc is not multilib'd +ifneq (,$(findstring gdc, $(PKGSOURCE))) + DEJAGNU_RUNS = +endif + +# neither is gnat +ifneq (,$(findstring gnat, $(PKGSOURCE))) + DEJAGNU_RUNS = +endif + +ifneq (,$(strip $(value DEJAGNU_RUNS))) + RUNTESTFLAGS = RUNTESTFLAGS="--target_board=unix\{,$(subst $(SPACE),$(COMMA),$(strip $(DEJAGNU_RUNS)))\}" +endif + +# PF is the installation prefix for the package without the leading slash. +# It's "usr" for gcc releases. +ifneq (,$(PF)) + # use value set in the environment +else ifeq ($(trunk_build),yes) + PF = usr/lib/gcc-snapshot +else ifeq ($(PKGSOURCE),gcc-linaro) + PF = usr/lib/gcc-linaro +else + PF = usr +endif + +# PFL is the installation prefix with DEB_TARGET_GNU_TYPE attached for cross builds +ifeq ($(DEB_CROSS),yes) + PFL = $(PF)/$(DEB_TARGET_GNU_TYPE) +else + PFL = $(PF) +endif + +# RPF is the base prefix or installation prefix with DEB_TARGET_GNU_TYPE attached for cross builds +ifeq ($(DEB_CROSS),yes) + RPF = $(PF)/$(DEB_TARGET_GNU_TYPE) +else + RPF = +endif + +ifeq ($(with_multiarch_lib),yes) + ifeq ($(DEB_CROSS),yes) + libdir = lib + else + libdir = lib/$(DEB_TARGET_MULTIARCH) + endif +else + libdir = lib +endif +configured_libdir = lib + +hppa64libexecdir= $(PF)/lib + +# /usr/libexec doesn't follow the FHS +ifeq ($(single_package),yes) + libdir = lib + libexecdir = $(PF)/libexec + versiondir = $(BASE_VERSION) +else + libexecdir = $(PF)/$(configured_libdir) + versiondir = $(BASE_VERSION) +endif +buildlibdir = $(builddir)/$(TARGET_ALIAS) + +# install cross compilers in /usr/lib/gcc-cross, native ones in /usr/lib/gcc +gcc_subdir_name = gcc +ifneq ($(single_package),yes) + ifeq ($(DEB_CROSS),yes) + gcc_subdir_name = gcc-cross + endif +endif + +gcc_lib_dir = $(PF)/$(configured_libdir)/$(gcc_subdir_name)/$(TARGET_ALIAS)/$(versiondir) +gcc_lexec_dir = $(libexecdir)/$(gcc_subdir_name)/$(TARGET_ALIAS)/$(versiondir) + +lib32loc = lib32 +ifneq (,$(findstring mips,$(DEB_TARGET_GNU_TYPE))) +lib32loc = libo32 +endif +lib32 = $(PF)/$(lib32loc) +lib64 = lib64 +libn32 = lib32 +libx32 = libx32 + +p_l= $(1)$(cross_lib_arch) +p_d= $(1)-dbg$(cross_lib_arch) +d_l= debian/$(p_l) +d_d= debian/$(p_d) + +ifeq ($(DEB_CROSS),yes) + usr_lib = $(PFL)/lib +else + usr_lib = $(PFL)/$(libdir) +endif +usr_lib32 = $(PFL)/$(lib32loc) +usr_libn32 = $(PFL)/lib32 +usr_libx32 = $(PFL)/libx32 +usr_lib64 = $(PFL)/lib64 +# FIXME: Move to the new location for native builds too +ifeq ($(DEB_CROSS),yes) + usr_libhf = $(PFL)/libhf + usr_libsf = $(PFL)/libsf +else + usr_libhf = $(PFL)/lib/arm-linux-gnueabihf + usr_libsf = $(PFL)/lib/arm-linux-gnueabi +endif + +ifeq ($(DEB_STAGE)-$(DEB_CROSS),rtlibs-yes) + PFL = $(PF) + RPF = + libdir = lib/$(DEB_TARGET_MULTIARCH) + usr_lib = $(PF)/lib/$(DEB_TARGET_MULTIARCH) +endif + +gcc_lib_dir32 = $(gcc_lib_dir)/$(biarch32subdir) +gcc_lib_dirn32 = $(gcc_lib_dir)/$(biarchn32subdir) +gcc_lib_dirx32 = $(gcc_lib_dir)/$(biarchx32subdir) +gcc_lib_dir64 = $(gcc_lib_dir)/$(biarch64subdir) +gcc_lib_dirhf = $(gcc_lib_dir)/$(biarchhfsubdir) +gcc_lib_dirsf = $(gcc_lib_dir)/$(biarchsfsubdir) + +libgcc_dir = $(RPF)/$(libdir) +# yes, really; lib32gcc_s ends up in usr +libgcc_dir32 = $(PFL)/$(lib32loc) +libgcc_dirn32 = $(RPF)/lib32 +# libx32gcc_s also ends up in usr +libgcc_dirx32 = $(PFL)/libx32 +libgcc_dir64 = $(RPF)/lib64 +# FIXME: Move to the new location for native builds too +ifeq ($(DEB_CROSS),yes) + libgcc_dirhf = $(RPF)/libhf + libgcc_dirsf = $(RPF)/libsf +else + libgcc_dirhf = $(RPF)/lib/arm-linux-gnueabihf + libgcc_dirsf = $(RPF)/lib/arm-linux-gnueabi +endif + +# install_gcc_lib(lib,soname,flavour,package) +define install_gcc_lib + mv $(d)/$(usr_lib$(3))/$(1)*.a debian/$(4)/$(gcc_lib_dir$(3))/ + rm -f $(d)/$(usr_lib$(3))/$(1)*.{la,so} + dh_link -p$(4) \ + /$(usr_lib$(3))/$(1).so.$(2) /$(gcc_lib_dir$(3))/$(1).so + +endef + +checkdirs = $(builddir) +ifeq ($(with_separate_go),yes) + ifeq ($(PKGSOURCE),gccgo-$(BASE_VERSION)) + checkdirs = $(buildlibdir)/libgo + endif +endif +ifeq ($(with_separate_gnat),yes) + ifeq ($(PKGSOURCE),gnat-$(BASE_VERSION)) + checkdirs = $(builddir)/gcc + endif +endif + +# FIXME: MULTIARCH_DIRNAME needed for g++-multiarch-incdir.diff +MULTIARCH_DIRNAME := $(DEB_TARGET_MULTIARCH) +export MULTIARCH_DIRNAME + +default: build + +configure: $(configure_dependencies) + +$(configure_dummy_stamp): + touch $(configure_dummy_stamp) + +$(configure_stamp): + dh_testdir + : # give information about the build process + @echo "------------------------ Build process variables ------------------------" + @echo "Memory on this machine:" + @egrep '^(Mem|Swap)' /proc/meminfo || true + @echo "Number of parallel processes used for the build: $(USE_CPUS)" + @echo "DEB_BUILD_OPTIONS: $$DEB_BUILD_OPTIONS" + @echo "Package source: $(PKGSOURCE)" + @echo "GCC version: $(GCC_VERSION)" + @echo "Base Debian version: $(BASE_VERSION)" + @echo -e "Configured with: $(subst ___, ,$(foreach i,$(CONFARGS),$(i)\n\t))" +ifeq ($(DEB_CROSS),yes) + @echo "Building cross compiler for $(DEB_TARGET_ARCH)" +endif + @echo "Using shell $(SHELL)" + @echo "Architecture: $(DEB_TARGET_ARCH) (GNU: $(TARGET_ALIAS))" + @echo "CPPFLAGS: $(CPPFLAGS)" + @echo "CFLAGS: $(CFLAGS)" + @echo "LDFLAGS: $(LDFLAGS)" + @echo "BOOT_CFLAGS: $(BOOT_CFLAGS)" + @echo "DEBIAN_BUILDARCH: $(DEBIAN_BUILDARCH)" + @echo "Install prefix: /$(PF)" +ifeq ($(biarchn32)-$(biarch64),yes-yes) + @echo "Will build the triarch compilers (o32/n32/64, defaulting to o32)" +else ifeq ($(biarchn32)-$(biarch32),yes-yes) + @echo "Will build the triarch compilers (o32/n32/64, defaulting to 64)" +else ifeq ($(biarch64)-$(biarch32),yes-yes) + @echo "Will build the triarch compilers (x32/64/32, defaulting to x32)" +else ifeq ($(biarch64)-$(biarchx32),yes-yes) + @echo "Will build the triarch compilers (32/64/x32, defaulting to 32bit)" +else ifeq ($(biarch32)-$(biarchx32),yes-yes) + @echo "Will build the triarch compilers (64/32/x32, defaulting to 64bit)" +else + ifeq ($(biarch64),yes) + @echo "Will build the biarch compilers (32/64, defaulting to 32bit)" + else + ifeq ($(biarch32),yes) + @echo "Will build the biarch compilers (64/32, defaulting to 64bit)" + else + @echo "Will not build the biarch compilers" + endif + endif +endif + +ifeq ($(with_cxx),yes) + @echo "Will build the C++ compiler" +else + @echo "Will not build the C++ compiler: $(with_cxx)" +endif +ifeq ($(with_objc),yes) + @echo "Will build the ObjC compiler." + ifeq ($(with_objc_gc),yes) + @echo "Will build the extra ObjC runtime for garbage collection." + else + @echo "Will not build the extra ObjC runtime for garbage collection." + endif +else + @echo "Will not build the ObjC compiler: $(with_objc)" +endif +ifeq ($(with_objcxx),yes) + @echo "Will build the Obj-C++ compiler" +else + @echo "Will not build the Obj-C++ compiler: $(with_objcxx)" +endif +ifeq ($(with_fortran),yes) + @echo "Will build the Fortran 95 compiler." +else + @echo "Will not build the Fortran 95 compiler: $(with_fortran)" +endif +ifeq ($(with_ada),yes) + @echo "Will build the Ada compiler." + ifeq ($(with_libgnat),yes) + @echo "Will build the shared Ada libraries." + else + @echo "Will not build the shared Ada libraries." + endif +else + @echo "Will not build the Ada compiler: $(with_ada)" +endif +ifeq ($(with_go),yes) + @echo "Will build the Go compiler." +else + @echo "Will not build the Go compiler: $(with_go)" +endif +ifeq ($(with_d),yes) + @echo "Will build the D compiler" + ifeq ($(with_libphobos),yes) + @echo "Will build the phobos D runtime library." + else + @echo "Will not build the phobos D runtime library: $(with_libphobos)" + endif +else + @echo "Will not build the D compiler: $(with_d)" +endif +ifeq ($(with_ssp),yes) + @echo "Will build with SSP support." +else + @echo "Will build without SSP support: $(with_ssp)" +endif +ifeq ($(with_check),yes) + @echo "Will run the testsuite." +else + @echo "Will not run the testsuite: $(with_check)" +endif +ifeq ($(with_nls),yes) + @echo "Will enable national language support." +else + @echo "Will disable national language support: $(with_nls)" +endif + @echo "-----------------------------------------------------------------------------" + @echo "" +ifeq ($(with_check),yes) + @if echo "spawn true" | /usr/bin/expect -f - >/dev/null; then \ + : ; \ + else \ + echo "expect is failing on your system with the above error, which means the GCC"; \ + echo "testsuite will fail. Please resolve the above issues and retry the build."; \ + echo "-----------------------------------------------------------------------------"; \ + exit 1; \ + fi +endif + rm -f $(configure_stamp) $(build_stamp) + cat debian/README.Debian $(patch_stamp) > debian/README.Debian.$(DEB_TARGET_ARCH) + + rm -rf $(builddir) + mkdir $(builddir) + + : # some tools like gettext are built with a newer libstdc++ + mkdir -p bin + for i in msgfmt; do \ + install -m755 debian/bin-wrapper.in bin/$$i; \ + done + + : # configure + cd $(builddir) \ + && $(SET_PATH) \ + $(call pass_vars, CC CXX $(flags_to_pass) \ + CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD \ + CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET) \ + $(SET_SHELL) $(SET_TARGET_TOOLS) \ + ../src/configure $(subst ___, ,$(CONFARGS)) + + : # multilib builds without b-d on gcc-multilib (used in FLAGS_FOR_TARGET) + if [ -d /usr/include/$(DEB_TARGET_MULTIARCH)/asm ]; then \ + mkdir -p $(builddir)/sys-include; \ + ln -sf /usr/include/$(DEB_TARGET_MULTIARCH)/asm $(builddir)/sys-include/asm; \ + fi + + touch $(configure_stamp) + +build: $(sort $(build_arch_dependencies) $(build_indep_dependencies)) +build-arch: $(build_arch_dependencies) +build-indep: $(build_indep_dependencies) + +$(build_dummy_stamp): + touch $(build_dummy_stamp) + +$(build_locale_stamp): +ifeq ($(locale_data)-$(with_cxx),generate-yes) + : # build locales needed by libstdc++ testsuite + rm -rf locales + mkdir locales + -USE_CPUS=$(USE_CPUS) sh debian/locale-gen +endif + touch $(build_locale_stamp) + + +$(build_stamp): $(configure_stamp) $(build_locale_stamp) + dh_testdir + rm -f bootstrap-protocol + @echo TTTTT $$(date -R) +ifeq ($(build_type),build-native) + : # build native compiler + ( \ + set +e; \ + $(SET_PATH) \ + $(SET_SHELL) \ + $(SET_LOCPATH) \ + $(MAKE) -C $(builddir) $(bootstrap_target) \ + $(call pass_vars, CC $(flags_to_pass) \ + STAGE1_CFLAGS STAGE1_LDFLAGS \ + BOOT_CFLAGS BOOT_LDFLAGS \ + CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD \ + CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET) \ + ; \ + echo $$? > status; \ + ) 2>&1 | tee bootstrap-protocol +else ifneq (,$(filter $(build_type),build-cross cross-build-native cross-build-cross)) + : # build cross compiler for $(TARGET_ALIAS) + ( \ + set +e; \ + $(SET_PATH) \ + $(SET_LOCPATH) \ + $(MAKE) -C $(builddir) \ + $(call pass_vars, BOOT_CFLAGS BOOT_LDFLAGS \ + CFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET) \ + ; \ + echo $$? > status; \ + ) 2>&1 | tee bootstrap-protocol +endif + @echo TTTTT $$(date -R) + s=`cat status`; rm -f status; \ + if [ $$s -ne 0 ] && [ -z "$$NO_CONFIG_LOG_DUMP$$NO_CONFIG_LOG_DUMPS" ]; then \ + for log in $$(find $(builddir) -name config.log); do \ + case "$$log" in */build/build-*|*/stage1-*|*/prev-*) continue; esac; \ + echo LOGFILE START $$log; \ + cat $$log; \ + echo LOGFILE END $$log; \ + done; \ + fi; \ + test $$s -eq 0 + + if [ -f $(srcdir)/contrib/warn_summary ]; then \ + rm -f bootstrap-summary; \ + /bin/sh $(srcdir)/contrib/warn_summary bootstrap-protocol \ + > bootstrap-summary; \ + fi + + touch $(build_stamp) + +ifneq ($(build_type),build-native) + BUILT_CC = $(CC) + BUILT_CXX = $(CXX) +else + BUILT_CC = $(builddir)/gcc/xgcc -B$(builddir)/gcc/ + BUILT_CXX = $(builddir)/gcc/xg++ -B$(builddir)/gcc/ \ + -B$(builddir)/$(TARGET_ALIAS)/libatomic/.libs \ + -B$(builddir)/$(TARGET_ALIAS)/libstdc++-v3/src/.libs \ + -B$(builddir)/$(TARGET_ALIAS)/libstdc++-v3/libsupc++/.libs \ + -I$(builddir)/$(TARGET_ALIAS)/libstdc++-v3/include \ + -I$(builddir)/$(TARGET_ALIAS)/libstdc++-v3/include/$(TARGET_ALIAS) \ + -I$(srcdir)/libstdc++-v3/libsupc++ \ + -L$(builddir)/$(TARGET_ALIAS)/libatomic/.libs \ + -L$(builddir)/$(TARGET_ALIAS)/libstdc++-v3/src/.libs \ + -L$(builddir)/$(TARGET_ALIAS)/libstdc++-v3/libsupc++/.libs +endif + +CONFARGS_JIT := \ + $(filter-out --enable-languages=% \ + --enable-libstdcxx-debug %bootstrap,\ + $(CONFARGS)) \ + --enable-languages=c++,jit \ + --enable-host-shared \ + --disable-bootstrap + +$(configure_jit_stamp): $(build_stamp) + dh_testdir + rm -f $(configure_jit_stamp) $(build_jit_stamp) + rm -rf $(builddir_jit) + mkdir $(builddir_jit) + + : # configure jit + cd $(builddir_jit) && \ + $(SET_PATH) \ + $(SET_SHELL) \ + CC="$(BUILT_CC)" \ + CXX="$(BUILT_CXX)" \ + ../src/configure $(subst ___, ,$(CONFARGS_JIT)) + touch $(configure_jit_stamp) + +$(build_jit_stamp): $(configure_jit_stamp) + $(SET_PATH) \ + $(SET_SHELL) \ + $(SET_LOCPATH) \ + LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}$(builddir)/gcc \ + biarch_multidir_names=none \ + $(MAKE) -C $(builddir_jit) \ + $(call pass_vars, BOOT_CFLAGS BOOT_LDFLAGS \ + CFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET) + +ifeq ($(with_check),yes) + # FIXME: #782444 + ifeq (,$(filter $(DEB_TARGET_ARCH), kfreebsd-i386 kfreebsd-amd64)) + -$(MAKE) -C $(builddir_jit)/gcc check-jit \ + RUNTESTFLAGS="-v -v" + endif +endif + + touch $(build_jit_stamp) + +CONFARGS_NVPTX := \ + --prefix=/$(PF) \ + --libexecdir=/$(libexecdir) \ + --with-gcc-major-version-only \ + --disable-bootstrap \ + --disable-sjlj-exceptions \ + --enable-newlib-io-long-long \ + --target nvptx-none \ + --enable-as-accelerator-for=$(DEB_TARGET_GNU_TYPE) \ + --enable-languages=c,c++,fortran,lto \ + --enable-checking=release \ + --with-system-zlib \ + --without-isl + +# --with-build-time-tools=/$(PF)/nvptx-none/bin + +CONFARGS_NVPTX += --program-prefix=nvptx-none- +ifeq ($(versioned_packages),yes) + CONFARGS_NVPTX += --program-suffix=-$(BASE_VERSION) +endif + +# FIXME: must not be run in parrallel with jit and hppa64 builds ... +$(configure_nvptx_stamp): $(build_stamp) + dh_testdir + rm -f $(configure_nvptx_stamp) $(build_nvptx_stamp) + rm -rf $(builddir_nvptx) + mkdir $(builddir_nvptx) + ln -sf ../$(nl_nvptx_srcdir)/newlib $(srcdir)/newlib + + : # configure nvptx offload + cd $(builddir_nvptx) && \ + $(SET_PATH) \ + $(SET_SHELL) \ + CC="$(BUILT_CC)" \ + CXX="$(BUILT_CXX)" \ + ../src/configure $(subst ___, ,$(CONFARGS_NVPTX)) + rm -f $(srcdir)/newlib + touch $(configure_nvptx_stamp) + +$(build_nvptx_stamp): $(configure_nvptx_stamp) \ + $(if $(filter yes, $(with_jit)), $(build_jit_stamp)) \ + $(if $(filter yes, $(with_hppa64)), $(build_hppa64_stamp)) + ln -sf ../$(nl_nvptx_srcdir)/newlib $(srcdir)/newlib + + $(SET_PATH) \ + $(SET_SHELL) \ + $(SET_LOCPATH) \ + LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}$(builddir)/gcc \ + biarch_multidir_names=none \ + $(MAKE) -C $(builddir_nvptx) \ + $(call pass_vars, BOOT_CFLAGS BOOT_LDFLAGS \ + CFLAGS_FOR_TARGET) + +ifeq ($(with_check),yes) +# -$(MAKE) -C $(builddir_nvptx)/gcc check-jit \ +# RUNTESTFLAGS="-v -v" +endif + rm -f $(srcdir)/newlib + touch $(build_nvptx_stamp) + +ifeq ($(versioned_packages),yes) + hppa64_configure_flags += --program-suffix=-$(BASE_VERSION) +endif + +$(configure_hppa64_stamp): $(build_stamp) + dh_testdir + rm -f $(configure_hppa64_stamp) $(build_hppa64_stamp) + rm -rf $(builddir_hppa64) + mkdir $(builddir_hppa64) + : # configure hppa64 + cd $(builddir_hppa64) && \ + $(SET_PATH) \ + $(SET_SHELL) \ + CC="$(BUILT_CC)" \ + CXX="$(BUILT_CXX)" \ + $(call pass_vars, $(flags_to_pass)) \ + ../src/configure \ + --enable-languages=c \ + --prefix=/$(PF) \ + --libexecdir=/$(hppa64libexecdir) \ + --with-gcc-major-version-only \ + --disable-shared \ + --disable-nls \ + --disable-threads \ + --disable-libatomic \ + --disable-libgomp \ + --disable-libitm \ + --disable-libssp \ + --disable-libquadmath \ + --enable-plugin \ + --with-system-zlib \ + --with-as=/usr/bin/hppa64-linux-gnu-as \ + --with-ld=/usr/bin/hppa64-linux-gnu-ld \ + --includedir=/usr/hppa64-linux-gnu/include \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --host=$(DEB_HOST_GNU_TYPE) \ + --target=hppa64-linux-gnu + touch $(configure_hppa64_stamp) + +$(build_hppa64_stamp): $(configure_hppa64_stamp) + $(SET_PATH) \ + $(SET_SHELL) \ + $(SET_LOCPATH) \ + LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}$(builddir)/gcc \ + $(MAKE) -C $(builddir_hppa64) \ + $(call pass_vars, \ + CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET) + touch $(build_hppa64_stamp) + +$(configure_neon_stamp): $(build_stamp) + dh_testdir + rm -f $(configure_neon_stamp) $(build_neon_stamp) + rm -rf $(builddir_neon) + mkdir $(builddir_neon) + : # configure neon + cd $(builddir_neon) && \ + $(SET_PATH) \ + $(SET_SHELL) \ + $(call pass_vars, $(flags_to_pass)) \ + CC="$(builddir)/gcc/xg++ -B$(builddir)/gcc/" \ + ../src/configure \ + --disable-bootstrap \ + --enable-languages=c,c++,objc,fortran \ + --prefix=/$(PF) \ + --libexecdir=/$(libexecdir) \ + --program-suffix=-$(BASE_VERSION) \ + --disable-nls \ + --enable-plugin \ + --with-arch=armv7-a --with-tune=cortex-a8 \ + --with-float=$(float_abi) --with-fpu=neon \ + --host=arm-linux-gnueabi \ + --build=arm-linux-gnueabi \ + --target=arm-linux-gnueabi + touch $(configure_neon_stamp) + +$(build_neon_stamp): $(configure_neon_stamp) + $(SET_PATH) \ + $(SET_SHELL) \ + $(SET_LOCPATH) \ + $(MAKE) -C $(builddir_neon) \ + $(call pass_vars, BOOT_CFLAGS BOOT_LDFLAGS \ + CFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET) + touch $(build_neon_stamp) + + +ifeq ($(with_ada),yes) + MANUALS = \ + $(srcdir)/gcc/ada/gnat_ugn.texi \ + $(srcdir)/gcc/ada/gnat_rm.texi +endif +MANUALS += \ + $(srcdir)/gcc/doc/gccint.texi \ + $(srcdir)/gcc/doc/gcc.texi \ + $(srcdir)/gcc/doc/cpp.texi \ + $(srcdir)/gcc/doc/cppinternals.texi +ifeq ($(with_fortran),yes) + MANUALS += $(srcdir)/gcc/fortran/gfortran.texi +endif +ifeq ($(with_ada),yes) + MANUALS += $(srcdir)/gcc/ada/gnat-style.texi +endif +ifeq ($(with_gomp),yes) + MANUALS += $(srcdir)/libgomp/libgomp.texi +endif +ifeq ($(with_itm),yes) + MANUALS += $(srcdir)/libitm/libitm.texi +endif +ifeq ($(with_qmath),yes) + MANUALS += $(srcdir)/libquadmath/libquadmath.texi +endif +ifeq ($(with_go),yes) + MANUALS += $(srcdir)/gcc/go/gccgo.texi +endif + +html-docs: $(build_html_stamp) +#$(build_html_stamp): $(stampdir)/05-build-html-split +$(build_html_stamp): $(stampdir)/05-build-html-nosplit + +html-makeinfo-split: $(stampdir)/05-build-html-split +$(stampdir)/05-build-html-split: $(build_stamp) + mkdir -p html + rm -f html/*.html + cd $(builddir)/gcc; \ + echo -n $(MANUALS) | xargs -d ' ' -L 1 -P $(USE_CPUS) -I{} \ + sh -c 'outname=`basename {} .texi`.html; \ + outname=`basename {} .texi`; \ + echo "generating $$outname ..."; \ + makeinfo --html --number-sections \ + -I $(srcdir)/gcc/doc/include -I `dirname {}` \ + -I $(srcdir)/gcc/p/doc \ + -I $(srcdir)/gcc/p/doc/generated \ + -I $(builddir)/gcc \ + -I $(buildlibdir)/libquadmath \ + -o $${outname} \ + {}' + touch $@ + +html-makeinfo-nosplit: $(stampdir)/05-build-html-nosplit +$(stampdir)/05-build-html-nosplit: $(build_stamp) + mkdir -p html + rm -f html/*.html + cd $(builddir)/gcc; \ + echo -n $(MANUALS) | xargs -d ' ' -L 1 -P $(USE_CPUS) -I{} \ + sh -c 'outname=`basename {} .texi`.html; \ + echo "generating $$outname ..."; \ + makeinfo --html --number-sections --no-split \ + -I $(srcdir)/gcc/doc/include -I `dirname {}` \ + -I $(srcdir)/gcc/p/doc \ + -I $(srcdir)/gcc/p/doc/generated \ + -I $(builddir)/gcc \ + -I $(buildlibdir)/libquadmath \ + -o $(CURDIR)/html/$${outname} \ + {}' + touch $@ + +# start the script only on architectures known to have slow autobuilders ... +logwatch_archs := alpha arm m68k mips mipsel mips64el sparc riscv64 +ifeq ($(DEB_HOST_GNU_CPU), $(findstring $(DEB_HOST_GNU_CPU),$(logwatch_archs))) + start_logwatch = yes +endif +ifeq ($(DEB_HOST_GNU_SYSTEM),gnu) + start_logwatch = yes +endif + +check: $(check_stamp) +$(check_stamp): $(filter $(build_stamp) $(build_jit_stamp) $(build_hppa64_stamp), $(build_dependencies)) + rm -f test-protocol + rm -f $(builddir)/runcheck* + + -chmod 755 $(srcdir)/contrib/test_summary + + : # needed for the plugin tests to succeed + ln -sf gcc $(builddir)/prev-gcc + ln -sf $(DEB_TARGET_GNU_TYPE) $(builddir)/prev-$(DEB_TARGET_GNU_TYPE) + +ifneq ($(with_common_libs),yes) + ifeq ($(with_cxx),yes) + : # libstdc++6 built from newer gcc-X source, run testsuite against the installed lib + + sed 's/-L[^ ]*//g' $(buildlibdir)/libstdc++-v3/scripts/testsuite_flags \ + > $(buildlibdir)/libstdc++-v3/scripts/testsuite_flags.installed + -$(ULIMIT_M); \ + set +e; \ + for d in $(buildlibdir)/libstdc++-v3/testsuite; do \ + echo "Running testsuite in $$d ..."; \ + TEST_INSTALLED=1 \ + $(SET_SHELL) \ + $(SET_LOCPATH) \ + $(SET_PATH) \ + DEJAGNU_TIMEOUT=$(DEJAGNU_TIMEOUT) \ + DEB_GCC_NO_O3=1 \ + $(MAKE) -k -C $$d $(NJOBS) check $(RUNTESTFLAGS); \ + done 2>&1 | tee test-protocol2 + + BOOT_CFLAGS="$(BOOT_CFLAGS)" \ + $(srcdir)/contrib/test_summary -m "$(S_EMAIL)" > raw-test-summary + -( \ + sed -n '/^Mail/s/.*"\([^"][^"]*\)".*/\1/p' raw-test-summary; \ + awk '/^cat/, /^EOF/' raw-test-summary | grep -v EOF; \ + ) > libstdc++-test-summary + echo 'BEGIN installed libstdc++-v3 test-summary' + cat libstdc++-test-summary + echo 'END installed libstdc++-v3 test-summary' + find $(buildlibdir)/libstdc++-v3/testsuite -name '*.log' -o -name '*.sum' \ + | xargs -r rm -f + endif +endif + +ifeq ($(start_logwatch),yes) + : # start logwatch script for regular output during test runs + chmod +x debian/logwatch.sh + -debian/logwatch.sh -t 900 -p $(builddir)/logwatch.pid \ + -m '\ntestsuite still running ...\n' \ + test-protocol \ + $(builddir)/gcc/testsuite/gcc/gcc.log \ + $(builddir)/gcc/testsuite/g++/g++.log \ + $(builddir)/gcc/testsuite/gfortran/gfortran.log \ + $(builddir)/gcc/testsuite/objc/objc.log \ + $(builddir)/gcc/testsuite/obj-c++/obj-c++.log \ + $(builddir)/gcc/testsuite/gnat/gnat.log \ + $(builddir)/gcc/testsuite/ada/acats/acats.log \ + $(builddir)/gcc/testsuite/gfortran/gfortran.log \ + $(builddir)/gcc/p/test/test_log \ + $(buildlibdir)/libstdc++-v3/testsuite/libstdc++.log \ + $(buildlibdir)/libgomp/testsuite/libgomp.log \ + $(buildlibdir)/libffi/testsuite/libffi.log \ + & +endif + +ifeq ($(with_ada),yes) + chmod +x debian/acats-killer.sh + -debian/acats-killer.sh -p $(builddir)/acats-killer.pid \ + $(builddir)/gcc/testsuite/ada/acats/acats.log \ + $(builddir)/gcc/testsuite/g++.log \ + & +endif + + -$(ULIMIT_M); \ + set +e; \ + for d in $(checkdirs); do \ + echo "Running testsuite in $$d ..."; \ + $(SET_SHELL) \ + $(SET_LOCPATH) \ + $(SET_PATH) \ + EXTRA_TEST_PFLAGS=-g0 \ + DEJAGNU_TIMEOUT=$(DEJAGNU_TIMEOUT) \ + DEB_GCC_NO_O3=1 \ + $(MAKE) -k -C $$d $(NJOBS) check $(RUNTESTFLAGS); \ + done 2>&1 | tee test-protocol + + -ps aux | fgrep logwatch | fgrep -v fgrep + -if [ -f $(builddir)/logwatch.pid ]; then \ + kill -1 `cat $(builddir)/logwatch.pid`; \ + sleep 1; \ + kill -9 `cat $(builddir)/logwatch.pid`; \ + rm -f $(builddir)/logwatch.pid; \ + fi + -ps aux | fgrep logwatch | fgrep -v fgrep + +ifeq ($(with_ada),yes) + -if [ -f $(builddir)/acats-killer.pid ]; then \ + kill -1 `cat $(builddir)/acats-killer.pid`; \ + sleep 1; \ + kill -9 `cat $(builddir)/acats-killer.pid`; \ + rm -f $(builddir)/acats-killer.pid; \ + fi +endif + + if [ -x $(srcdir)/contrib/test_summary ]; then \ + rm -f test-summary; \ + ( \ + cd $(builddir); \ + echo '' > ts-include; \ + echo '' >> ts-include; \ + if [ -f $(builddir)/gcc/.bad_compare ]; then \ + echo 'Bootstrap comparison failure:' >> ts-include; \ + cat $(builddir)/gcc/.bad_compare >> ts-include; \ + echo '' >> ts-include; \ + echo '' >> ts-include; \ + fi; \ + echo "Build Dependencies:" >> ts-include; \ + dpkg -l g++-* binutils* `echo '$(LIBC_DEP)' | awk '{print $$1}'` \ + libgmp*-dev libmpfr-dev libmpc-dev libisl-dev \ + | fgrep -v '' >> ts-include; \ + echo '' >> ts-include; \ + cat ../$(patch_stamp) >> ts-include; \ + BOOT_CFLAGS="$(BOOT_CFLAGS)" \ + $(srcdir)/contrib/test_summary \ + -i ts-include -m "$(S_EMAIL)" \ + ) > raw-test-summary; \ + if [ -n "$(testsuite_tarball)" ]; then \ + echo "Test suite used: $(testsuite_srcdir)" > test-summary; \ + echo " Do not interpret the results on its own" >> test-summary; \ + echo " but compare them with the results from" >> test-summary; \ + echo " the gcc-snapshot package." >> test-summary; \ + fi; \ + sed -n '/^Mail/s/.*"\([^"][^"]*\)".*/\1/p' raw-test-summary \ + >> test-summary; \ + awk '/^cat/, /^EOF/' raw-test-summary | grep -v EOF >> test-summary; \ + if [ -f bootstrap-summary -a "$(bootstrap_target)" != profiledbootstrap ]; then \ + echo '' >> test-summary; \ + cat bootstrap-summary >> test-summary; \ + fi; \ + echo 'BEGIN test-summary'; \ + cat test-summary; \ + echo 'END test-summary'; \ + fi +ifeq ($(with_d),yes) + : # the D test failures for the non-default multilibs are known, ignore them + egrep -v '^(FAIL|UNRESOLVED): (runnable|fail_c|comp)' test-summary > test-summary.tmp + mv -f test-summary.tmp test-summary +endif + + touch $(check_stamp) + +$(check_inst_stamp): $(check_stamp) + rm -f test-inst-protocol + +ifeq ($(start_logwatch),yes) + : # start logwatch script for regular output during test runs + chmod +x debian/logwatch.sh + -debian/logwatch.sh -t 900 -p $(builddir)/logwatch-inst.pid \ + -m '\ntestsuite (3.3) still running ...\n' \ + test-inst-protocol \ + check-inst/{gcc,g++,g77,objc}.log \ + & +endif + + rm -rf check-inst + mkdir check-inst + + echo "Running testsuite ..." + -$(ULIMIT_M) ; \ + $(SET_SHELL) \ + $(SET_LOCPATH) \ + EXTRA_TEST_PFLAGS=-g0 \ + DEJAGNU_TIMEOUT=$(DEJAGNU_TIMEOUT) \ + cd check-inst && $(srcdir)/contrib/test_installed \ + --with-gcc=gcc-3.3 --with-g++=g++-3.3 --with-g77=g77-3.3 \ + 2>&1 | tee test-inst-protocol + + -ps aux | fgrep logwatch | fgrep -v fgrep + if [ -f $(builddir)/logwatch-inst.pid ]; then \ + kill -1 `cat $(builddir)/logwatch-inst.pid`; \ + else \ + true; \ + fi + -ps aux | fgrep logwatch | fgrep -v fgrep + + -chmod 755 $(srcdir)/contrib/test_summary + if [ -x $(srcdir)/contrib/test_summary ]; then \ + rm -f test-inst-summary; \ + ( \ + cd check-inst; \ + echo '' > ts-include; \ + echo '' >> ts-include; \ + echo "Build Dependencies:" >> ts-include; \ + dpkg -l g++-* binutils* `echo '$(LIBC_DEP)' | awk '{print $$1}'` \ + libgmp*-dev libmpfr-dev libmpc-dev libisl*-dev \ + | fgrep -v '' >> ts-include; \ + echo '' >> ts-include; \ + echo 'Results for the installed GCC-3.3 compilers' >> ts-include; \ + $(srcdir)/contrib/test_summary \ + -i ts-include -m "$(S_EMAIL)" \ + ) > raw-test-inst-summary; \ + sed -n '/^Mail/s/.*"\([^"][^"]*\)".*/\1/p' raw-test-inst-summary \ + >> test-inst-summary; \ + awk '/^cat/, /^EOF/' raw-test-inst-summary \ + | grep -v EOF >> test-inst-summary; \ + echo 'BEGIN test-installed-summary'; \ + cat test-inst-summary; \ + echo 'END test-installed-summary'; \ + fi + + chmod 755 debian/reduce-test-diff.awk + if diff -u test-inst-summary test-summary \ + | debian/reduce-test-diff.awk > diff-summary; \ + then \ + mv -f diff-summary testsuite-comparision; \ + else \ + ( \ + echo "WARNING: New failures in gcc-3.4 compared to gcc-3.3"; \ + echo ''; \ + cat diff-summary; \ + ) > testsuite-comparision; \ + rm -f diff-summary; \ + fi + touch $(check_inst_stamp) + +clean: debian/control + dh_testdir + rm -f pxxx status + rm -f *-summary *-protocol testsuite-comparision summary-diff + rm -f $(srcdir)/gcc/po/*.gmo + rm -f debian/lib{gcc,objc,stdc++}{-v3,[0-9]}*.{{pre,post}{inst,rm},shlibs} + fs=`echo debian/*BV* debian/*CXX* debian/*LC* debian/*MF* | sort -u`; \ + for f in $$fs; do \ + [ -f $$f ] || continue; \ + f2=$$(echo $$f \ + | sed 's/BV/$(BASE_VERSION)/;s/CXX/$(CXX_SONAME)/;s/LC/$(GCC_SONAME)/;s/-CRB/$(cross_bin_arch)/;s/\.in$$//'); \ + rm -f $$f2; \ + done + rm -f debian/lib*gcc1.symbols + rm -f debian/lib*{atomic$(ATOMIC_SONAME),cilkrts$(CILKRTS_SONAME),gfortran$(FORTRAN_SONAME),gomp$(GOMP_SONAME),itm$(ITM_SONAME),mpx$(MPX_SONAME),quadmath$(QUADMATH_SONAME),hsail-rt$(HSAIL_SONAME)}.symbols + find debian -maxdepth 1 -name '*-cross.symbols' -type l | xargs -r rm -f + rm -f debian/gcc-{XX,ar,nm,ranlib}-$(BASE_VERSION).1 + rm -f debian/shlibs.local debian/shlibs.common* debian/substvars.local + rm -f debian/*.debhelper + -[ -d debian/bugs ] && $(MAKE) -C debian/bugs clean + rm -f debian/README.libstdc++-baseline debian/README.Bugs debian/README.Debian.$(DEB_TARGET_ARCH) + rm -f debian/arch_binaries* debian/indep_binaries* + rm -rf bin locales share + rm -rf check-inst + rm -rf .pc + dh_clean +ifneq (,$(filter $(build_type), build-cross cross-build-cross)) + $(cross_clean) dh_clean +endif + +# ----------------------------------------------------------------------------- +# some abbrevations for the package names and directories; +# p_XXX is the package name, d_XXX is the package directory +# these macros are only used in the binary-* targets. + +ifeq ($(versioned_packages),yes) + pkg_ver := -$(BASE_VERSION) +endif + +# if native or rtlibs build +ifeq ($(if $(filter yes,$(DEB_CROSS)),$(if $(filter rtlibs,$(DEB_STAGE)),native,cross),native),native) + p_base = gcc$(pkg_ver)-base + p_lbase = $(p_base) + p_xbase = gcc$(pkg_ver)-base + p_gcc = gcc$(pkg_ver) + p_cpp = cpp$(pkg_ver) + p_cppd = cpp$(pkg_ver)-doc + p_cxx = g++$(pkg_ver) + p_doc = gcc$(pkg_ver)-doc +else + # only triggered if DEB_CROSS set + p_base = gcc$(pkg_ver)$(cross_bin_arch)-base + p_lbase = gcc$(pkg_ver)-cross-base$(GCC_PORTS_BUILD) + p_xbase = gcc$(pkg_ver)$(cross_bin_arch)-base + p_cpp = cpp$(pkg_ver)$(cross_bin_arch) + p_gcc = gcc$(pkg_ver)$(cross_bin_arch) + p_cxx = g++$(pkg_ver)$(cross_bin_arch) +endif +p_hppa64 = gcc$(pkg_ver)-hppa64-linux-gnu + +# needed for shlibs.common* generation +ifeq (,$(p_lgcc)) + p_lgcc = libgcc$(GCC_SONAME)$(cross_lib_arch) +endif +ifeq (,$(p_lib)) + p_lib = libstdc++$(CXX_SONAME)$(cross_lib_arch) +endif + +d = debian/tmp +d_base = debian/$(p_base) +d_xbase = debian/$(p_xbase) +d_gcc = debian/$(p_gcc) +d_cpp = debian/$(p_cpp) +d_cppd = debian/$(p_cppd) +d_cxx = debian/$(p_cxx) +d_doc = debian/$(p_doc) +d_lgcc = debian/$(p_lgcc) +d_hppa64= debian/$(p_hppa64) + +d_neon = debian/tmp-neon + +common_substvars = \ + $(shell awk "{printf \"'-V%s' \", \$$0}" debian/substvars.local) + +ifeq ($(DEB_CROSS),yes) + lib_binaries := indep_binaries +else + lib_binaries := arch_binaries +endif + +# --------------------------------------------------------------------------- + +ifeq ($(single_package),yes) + include debian/rules.d/binary-snapshot.mk +else + +ifneq ($(with_base_only),yes) +ifneq ($(DEB_CROSS),yes) +ifeq ($(with_source),yes) + include debian/rules.d/binary-source.mk +endif +endif +endif + +ifneq ($(BACKPORT),true) + +ifeq ($(with_gccbase),yes) + include debian/rules.d/binary-base.mk +endif + +ifneq ($(with_base_only),yes) + +# always include to get some definitions +include debian/rules.d/binary-libgcc.mk + +ifeq ($(with_libqmath),yes) + include debian/rules.d/binary-libquadmath.mk +endif + +ifeq ($(with_libgmath),yes) + include debian/rules.d/binary-libgccmath.mk +endif + +ifeq ($(with_libgomp),yes) + include debian/rules.d/binary-libgomp.mk +endif + +ifeq ($(with_libitm),yes) + include debian/rules.d/binary-libitm.mk +endif + +ifeq ($(with_libatomic),yes) + include debian/rules.d/binary-libatomic.mk +endif + +ifeq ($(with_libbacktrace),yes) + include debian/rules.d/binary-libbacktrace.mk +endif + +ifeq ($(with_cdev),yes) + include debian/rules.d/binary-cpp.mk +endif + +ifeq ($(with_fixincl),yes) + include debian/rules.d/binary-fixincl.mk +endif + +ifeq ($(with_libssp),yes) + include debian/rules.d/binary-libssp.mk +endif + +ifeq ($(with_objcxx),yes) + include debian/rules.d/binary-objcxx.mk +endif + +ifeq ($(with_objc),yes) + include debian/rules.d/binary-objc.mk + include debian/rules.d/binary-libobjc.mk +endif + +ifeq ($(with_go),yes) + include debian/rules.d/binary-go.mk +endif + +ifeq ($(with_brig),yes) + include debian/rules.d/binary-brig.mk + include debian/rules.d/binary-libhsail.mk +endif + +ifeq ($(with_cxxdev),yes) + include debian/rules.d/binary-cxx.mk +endif +ifeq ($(with_cxx),yes) + include debian/rules.d/binary-libstdcxx.mk +endif + +ifeq ($(with_libasan),yes) + include debian/rules.d/binary-libasan.mk +endif + +ifeq ($(with_liblsan),yes) + include debian/rules.d/binary-liblsan.mk +endif + +ifeq ($(with_libtsan),yes) + include debian/rules.d/binary-libtsan.mk +endif + +ifeq ($(with_libubsan),yes) + include debian/rules.d/binary-libubsan.mk +endif + +ifeq ($(with_libvtv),yes) + include debian/rules.d/binary-libvtv.mk +endif + +ifeq ($(with_libcilkrts),yes) + include debian/rules.d/binary-libcilkrts.mk +endif + +ifeq ($(with_libmpx),yes) + include debian/rules.d/binary-libmpx.mk +endif + +ifeq ($(with_f77),yes) + include debian/rules.d/binary-f77.mk +endif + +ifeq ($(with_fortran),yes) + include debian/rules.d/binary-fortran.mk +endif + +ifeq ($(with_ada),yes) + include debian/rules.d/binary-ada.mk +endif + +ifeq ($(with_d),yes) + include debian/rules.d/binary-d.mk +endif + +ifeq ($(with_libcc1),yes) + include debian/rules.d/binary-libcc1.mk +endif + +ifeq ($(with_jit),yes) + include debian/rules.d/binary-libgccjit.mk +endif + +ifeq ($(with_offload_nvptx),yes) + include debian/rules.d/binary-nvptx.mk +endif + +ifeq ($(with_libnof),yes) + ifeq ($(DEB_TARGET_GNU_CPU),powerpc) + include debian/rules.d/binary-nof.mk + endif +endif + +ifeq ($(with_softfloat),yes) + include debian/rules.d/binary-softfloat.mk +endif + +# gcc must be moved/built after g77 and g++ +ifeq ($(with_cdev),yes) + include debian/rules.d/binary-gcc.mk +endif + +ifeq ($(with_hppa64),yes) + include debian/rules.d/binary-hppa64.mk +endif + +ifeq ($(with_neon),yes) + include debian/rules.d/binary-neon.mk +endif + +endif # with_base_only +endif # BACKPORT +endif # ($(single_package),yes) + +# ---------------------------------------------------------------------- +install: $(install_dependencies) + +$(install_dummy_stamp): $(build_dummy_stamp) + touch $(install_dummy_stamp) + +$(install_snap_stamp): $(build_dependencies) + dh_testdir + dh_testroot + dh_prep + + : # Install directories + rm -rf $(d) + mkdir -p $(d)/$(PF) + +ifeq ($(with_hppa64),yes) + : # Install hppa64 + $(SET_PATH) \ + $(MAKE) -C $(builddir_hppa64) \ + $(call pass_vars, CC $(flags_to_pass)) \ + DESTDIR=$(CURDIR)/$(d) \ + install + + ls -l $(d)/$(PF)/bin + if [ ! -x $(d)/$(PF)/bin/hppa64-linux-gnu-gcc ]; then \ + mv $(d)/$(PF)/bin/hppa64-linux-gnu-gcc-7* $(d)/$(PF)/bin/hppa64-linux-gnu-gcc; \ + else \ + rm -f $(d)/$(PF)/bin/hppa64-linux-gnu-gcc-7*; \ + fi + + for i in ar nm ranlib; do \ + cp debian/gcc-$$i-$(BASE_VERSION).1 \ + $(d)/$(PF)/share/man/man1/hppa64-linux-gnu-gcc-$$i.1; \ + done + + : # remove files not needed from the hppa64 build + rm -rf $(d)/$(PF)/share/info + rm -rf $(d)/$(PF)/share/man + rm -f $(d)/$(PF)/$(libdir)/libiberty.a + rm -f $(d)/$(PF)/bin/*{gcov,gcov-dump,gcov-tool,gccbug,gcc} + + rm -rf $(d)/$(PF)/hppa64-linux-gnu/include + rm -rf $(d)/$(PF)/hppa64-linux-gnu/lib + set -e; \ + cd $(d)/$(PF)/$(libdir)/gcc/hppa64-linux-gnu/$(versiondir)/include-fixed; \ + for i in *; do \ + case "$$i" in \ + README|features.h|syslimits.h|limits.h) ;; \ + linux|$(TARGET_ALIAS)) ;; \ + $(subst $(DEB_TARGET_GNU_CPU),$(biarch_cpu),$(TARGET_ALIAS))) ;; \ + *) echo "remove include-fixed/$$i"; rm -rf $$i; \ + esac; \ + done +endif + + : # Work around PR lto/41569 + ln -sf gcc $(builddir)/prev-gcc + ln -sf $(DEB_TARGET_GNU_TYPE) $(builddir)/prev-$(DEB_TARGET_GNU_TYPE) + + : # Install everything + $(SET_PATH) \ + $(SET_SHELL) \ + $(MAKE) -C $(builddir) \ + $(call pass_vars, $(flags_to_pass)) \ + DESTDIR=$(CURDIR)/$(d) \ + infodir=/$(PF)/share/info \ + mandir=/$(PF)/share/man \ + install + + ls -l $(d)/$(PF)/bin + + for i in ar nm ranlib; do \ + cp debian/gcc-$$i-$(BASE_VERSION).1 \ + $(d)/$(PF)/share/man/man1/$(cmd_prefix)gcc-$$i.1; \ + done + + if [ ! -x $(d)/$(PF)/bin/$(TARGET_ALIAS)-gcc ]; then \ + mv $(d)/$(PF)/bin/$(TARGET_ALIAS)-gcc-7* $(d)/$(PF)/bin/$(TARGET_ALIAS)-gcc; \ + else \ + rm -f $(d)/$(PF)/bin/$(TARGET_ALIAS)-gcc-7*; \ + fi + set -e; \ + cd $(d)/$(gcc_lib_dir)/include-fixed; \ + for i in *; do \ + case "$$i" in \ + README|features.h|syslimits.h|limits.h) ;; \ + linux|$(TARGET_ALIAS)) ;; \ + $(subst $(DEB_TARGET_GNU_CPU),$(biarch_cpu),$(TARGET_ALIAS))) ;; \ + *) echo "remove include-fixed/$$i"; rm -rf $$i; \ + esac; \ + done + +ifneq ($(configured_libdir),$(libdir)) + for i in ada debug go pkgconfig '*.so' '*.so.*' '*.a' '*.la' '*.py' '*.spec'; do \ + mv $(d)/$(PF)/$(configured_libdir)/$$i \ + $(d)/$(PF)/$(libdir)/. || true; \ + done + ifeq ($(with_ada),yes) + sed -i s~$(PF)/$(configured_libdir)~$(PF)/$(libdir)~ $(d)/$(PF)/share/gpr/gnatvsn.gpr + endif +endif + + -ls -l $(d)/usr + if [ -d $(d)/usr/man/man1 ]; then \ + mv $(d)/usr/man/man1/* $(d)/usr/share/man/man1/; \ + fi + + chmod 755 debian/dh_* + touch $(install_snap_stamp) + +$(install_stamp): $(build_stamp) + dh_testdir + dh_testroot + dh_prep $(if $(filter yes,$(with_hppa64)),-N$(p_hppa64)) + + if [ -f $(binary_stamp)-hppa64 ]; then \ + mv $(binary_stamp)-hppa64 saved-stamp-hppa64; \ + fi + rm -f $(binary_stamp)* + if [ -f saved-stamp-hppa64 ]; then \ + mv saved-stamp-hppa64 $(binary_stamp)-hppa64; \ + fi + + : # Install directories + rm -rf $(d) + mkdir -p $(d)/$(libdir) $(d)/$(PF) $(d)/$(PF)/$(libdir)/debug +ifeq ($(biarch32),yes) + mkdir -p $(d)/$(PF)/$(lib32loc)/debug +endif +ifeq ($(biarch64),yes) + mkdir -p $(d)/$(PF)/lib64/debug +endif +ifeq ($(biarchn32),yes) + mkdir -p $(d)/$(PF)/$(libn32)/debug +endif +ifeq ($(biarchx32),yes) + mkdir -p $(d)/$(PF)/libx32/debug +endif + +ifneq (,$(filter $(DEB_TARGET_GNU_CPU),x86_64 sparc64 s390x powerpc64)) +ifneq ($(DEB_TARGET_ARCH),x32) + : # link lib to lib64 and $(PF)/lib to $(PF)/lib64 + : # (this works when CONFARGS contains '--disable-multilib') + ln -s $(configured_libdir) $(d)/lib64 + mkdir -p $(d)/$(PF)/$(configured_libdir) + ln -s $(configured_libdir) $(d)/$(PF)/lib64 +endif +endif +ifeq ($(DEB_TARGET_ARCH),x32) + : # link lib to libx32 and $(PF)/lib to $(PF)/libx32 + ln -s $(configured_libdir) $(d)/libx32 + mkdir -p $(d)/$(PF)/$(configured_libdir) + ln -s $(configured_libdir) $(d)/$(PF)/libx32 +endif + + : # Install everything + $(SET_PATH) \ + $(SET_SHELL) \ + $(MAKE) -C $(builddir) \ + $(call pass_vars, $(flags_to_pass)) \ + DESTDIR=$(CURDIR)/$(d) \ + infodir=/$(PF)/share/info \ + mandir=/$(PF)/share/man \ + install + +ifeq ($(DEB_STAGE)-$(DEB_CROSS),rtlibs-yes) + @echo configured_libdir=$(configured_libdir) / libdir=$(libdir) / usr_lib=$(usr_lib) + ls $(d)/$(PF)/$(TARGET_ALIAS)/lib + set -x; \ + if [ -d $(d)/$(PF)/$(TARGET_ALIAS)/lib ]; then \ + cp -a $(d)/$(PF)/$(TARGET_ALIAS)/lib/* $(d)/$(PF)/lib/$(DEB_TARGET_MULTIARCH)/.; \ + fi + for d in $$(cd $(d)/$(PF)/$(TARGET_ALIAS); echo lib?*); do \ + [ -d $(d)/$(PF)/$(TARGET_ALIAS)/$$d ] || continue; \ + cp -a $(d)/$(PF)/$(TARGET_ALIAS)/$$d/* $(d)/$(PF)/$$d/.; \ + done +else + ifneq ($(configured_libdir),$(libdir)) + for i in ada debug go pkgconfig '*.so' '*.so.*' '*.a' '*.la' '*.o' '*.py' '*.spec'; do \ + mv $(d)/$(PF)/$(configured_libdir)/$$i \ + $(d)/$(PF)/$(libdir)/. || true; \ + done + ifeq ($(with_ada),yes) + sed -i s~$(PF)/$(configured_libdir)~$(PF)/$(libdir)~ $(d)/$(PF)/share/gpr/gnatvsn.gpr + endif + endif +endif + +ifneq (,$(cmd_prefix)) + for i in $(d)/$(PF)/share/info/$(cmd_prefix)*; do \ + [ -f "$$i" ] || continue; \ + mv $$i $$(echo $$i | sed 's/$(cmd_prefix)//'); \ + done +endif + +ifeq ($(with_libcxxdbg),yes) + : # FIXME: the libstdc++ gdb.py file is installed with a wrong name + for i in $$(find $(d)/$(PF) -name libstdc++_pic.a-gdb.py); do \ + [ -f $$i ] || continue; \ + d=$$(dirname $$i); \ + b=$$(basename $$i); \ + t=$$(cd $$d; echo libstdc++.so.*.*.*)-gdb.py; \ + mv $$i $$d/$$t; \ + done +endif + + if [ -d $(d)/$(PF)/include/cilk ]; then \ + mv $(d)/$(PF)/include/cilk $(d)/$(gcc_lib_dir)/include/. ;\ + fi + + : # remove rpath settings from binaries and shared libs + for i in $$(chrpath -k $(d)/$(PF)/bin/* $(d)/$(PFL)/lib*/lib*.so.* \ + $(d)/$(gcc_lib_dir)/plugin/* \ + $(if $(filter $(with_multiarch_lib),yes), \ + $(d)/$(PF)/lib/$(DEB_TARGET_MULTIARCH)/lib*.so.*) \ + 2>/dev/null | awk -F: '/R(UN)?PATH=/ {print $$1}'); \ + do \ + case "$$i" in ecj1|*gij-*|*libjawt*|*libjvm*) continue; esac; \ + [ -h $$i ] && continue; \ + chrpath --delete $$i; \ + echo "removed RPATH/RUNPATH: $$i"; \ + done + + : # remove '*.la' and '*.lai' files, not shipped in any package. + find $(d) -name '*.la' -o -name '*.lai' | xargs -r rm -f + +ifeq ($(GFDL_INVARIANT_FREE),yes) + for i in gcc gcov; do \ + I=`echo $$i | tr a-z A-Z`; \ + sed -e "s/@NAME@/$$I$(pkg_ver)/g" -e "s/@name@/$$i$(pkg_ver)/g" \ + debian/dummy-man.1 > $(d)/$(PF)/share/man/man1/$$i.1; \ + done + + ifeq ($(with_fortran),yes) + for i in g77; do \ + I=`echo $$i | tr a-z A-Z`; \ + sed -e "s/@NAME@/$$I$(pkg_ver)/g" -e "s/@name@/$$i$(pkg_ver)/g" \ + debian/dummy-man.1 > $(d)/$(PF)/share/man/man1/$$i.1; \ + done + endif +endif + +ifneq ($(with_libgnat),yes) + rm -f $(d)/$(gcc_lib_dir)/adalib/lib*.so* +endif + +# ifeq ($(with_ada),yes) +# : # rename files (versioned ada binaries) +# for i in ; do \ +# mv $(d)/$(PF)/bin/$$i $(d)/$(PF)/bin/$$i-$(GNAT_VERSION); \ +# mv $(d)/$(PF)/share/man/man1/$$i.1 \ +# $(d)/$(PF)/share/man/man1/$$i-$(GNAT_VERSION).1; \ +# done +# for i in $(GNAT_TOOLS); do \ +# mv $(d)/$(PF)/bin/$$i $(d)/$(PF)/bin/$$i-$(GNAT_VERSION); \ +# done +# endif + + for i in ar nm ranlib; do \ + cp debian/gcc-$$i-$(BASE_VERSION).1 \ + $(d)/$(PF)/share/man/man1/$(cmd_prefix)gcc-$$i$(pkg_ver).1; \ + done + + chmod 755 debian/dh_* + +ifneq ($(with_common_libs),yes) +# for native builds, the default ml libs are always available; no need for a placeholder +# apparently this changed with newer dpkg versions (1.18.7?) ... + echo 'libgcc_s $(GCC_SONAME) $(p_lgcc)' > debian/shlibs.common + echo 'libstdc++ $(CXX_SONAME) $(p_lib)' >> debian/shlibs.common + echo 'libquadmath $(QUADMATH_SONAME) libquadmath$(QUADMATH_SONAME)$(cross_lib_arch)' >> debian/shlibs.common + echo 'libatomic $(ATOMIC_SONAME) libatomic$(ATOMIC_SONAME)$(cross_lib_arch)' >> debian/shlibs.common + $(foreach ml,32 64 n32 x32 hf sf, \ + echo 'libgcc_s $(GCC_SONAME) $(subst lib,lib$(ml),$(p_lgcc))' > debian/shlibs.common$(ml); \ + echo 'libstdc++ $(CXX_SONAME) $(subst lib,lib$(ml),$(p_lib))' >> debian/shlibs.common$(ml); \ + echo 'libquadmath $(QUADMATH_SONAME) lib$(ml)quadmath$(QUADMATH_SONAME)$(cross_lib_arch)' >> debian/shlibs.common$(ml); \ + echo 'libatomic $(ATOMIC_SONAME) lib$(ml)atomic$(ATOMIC_SONAME)$(cross_lib_arch)' >> debian/shlibs.common$(ml); \ + ) +endif + + @echo XXXXX `date -R` + find $(d) ! -type d -print + @echo XXXXX + touch $(install_stamp) + +$(install_jit_stamp): $(build_jit_stamp) $(install_stamp) + dh_testdir + dh_testroot + rm -rf $(d)-jit + mkdir -p $(d)-jit/$(PF) + + $(SET_PATH) \ + biarch_multidir_names=none \ + $(MAKE) -C $(builddir_jit) \ + CC="$(CC_FOR_TARGET)" \ + $(call pass_vars, $(flags_to_pass)) \ + DESTDIR=$(CURDIR)/$(d)-jit \ + install + + : # copy files to the standard build + cp -a $(d)-jit/$(PF)/include/libgccjit*.h \ + $(d)/$(gcc_lib_dir)/include/. + cp -a $(d)-jit/$(PF)/lib/libgccjit.so* \ + $(d)/$(usr_lib)/. + cp -a $(d)-jit/$(PF)/share/info/libgccjit* \ + $(d)/$(PF)/share/info/. + + @echo XXXXX `date -R` + touch $(install_jit_stamp) + +$(install_nvptx_stamp): $(build_nvptx_stamp) $(install_stamp) \ + $(if $(filter yes, $(with_jit)), $(install_jit_stamp)) \ + $(if $(filter yes, $(with_hppa64)), $(install_hppa64_stamp)) + dh_testdir + dh_testroot + ln -sf ../$(nl_nvptx_srcdir)/newlib $(srcdir)/newlib + rm -rf $(d)-nvptx + mkdir -p $(d)-nvptx/$(PF) + + $(SET_PATH) \ + biarch_multidir_names=none \ + $(MAKE) -C $(builddir_nvptx) \ + CC="$(CC_FOR_TARGET)" \ + $(call pass_vars, $(flags_to_pass)) \ + DESTDIR=$(CURDIR)/$(d)-nvptx \ + install + + find $(d)-nvptx + @echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + rm -rf $(d)-nvptx/$(libexecdir)/$(gcc_subdir_name)/nvptx-none/$(versiondir)/install-tools + rm -rf $(d)-nvptx/$(libexecdir)/$(gcc_subdir_name)/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/nvptx-none/{install-tools,plugin,cc1,cc1plus,f951} + rm -rf $(d)-nvptx/$(PF)/share/{info,man/man7,locale} + rm -rf $(d)-nvptx/$(PF)/share/man/man1/*-{gcov,gfortran,g++,cpp}.1 + rm -rf $(d)-nvptx/$(PF)/lib/gcc/nvptx-none/$(versiondir)/{install-tools,plugin} + rm -rf $(d)-nvptx/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/nvptx-none/{install-tools,plugin,include-fixed} + rm -rf $(d)-nvptx/$(PF)/lib/libc[cp]1* + + mv -f $(d)-nvptx/$(PF)/nvptx-none/lib/*.{a,spec} \ + $(d)-nvptx/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/nvptx-none/ + mv -f $(d)-nvptx/$(PF)/nvptx-none/lib/mgomp/*.{a,spec} \ + $(d)-nvptx/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/nvptx-none/mgomp/ + mv -f $(d)-nvptx/$(PF)/lib/gcc/nvptx-none/$(versiondir)/*.a \ + $(d)-nvptx/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/nvptx-none/ + mv -f $(d)-nvptx/$(PF)/lib/gcc/nvptx-none/$(versiondir)/mgomp/*.a \ + $(d)-nvptx/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/nvptx-none/mgomp/ + find $(d)-nvptx -name \*.la | xargs rm -f + rm -rf $(d)-nvptx/$(PF)/nvptx-none/include + -find $(d)-nvptx -type d -empty -delete + @echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + find $(d)-nvptx + @echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + rm -f $(srcdir)/newlib + @echo XXXXX `date -R` + touch $(install_nvptx_stamp) + +$(install_hppa64_stamp): $(build_hppa64_stamp) + dh_testdir + dh_testroot + rm -rf $(d_hppa64) + mkdir -p $(d_hppa64)/$(PF) + + $(SET_PATH) \ + $(MAKE) -C $(builddir_hppa64) \ + $(call pass_vars, CC $(flags_to_pass)) \ + DESTDIR=$(CURDIR)/$(d_hppa64) \ + install + + : # remove files not needed + rm -rf $(d_hppa64)/$(PF)/info $(d_hppa64)/$(PF)/share/info + rm -rf $(d_hppa64)/$(PF)/man $(d_hppa64)/$(PF)/share/man + rm -rf $(d_hppa64)/$(PF)/lib/gcc/hppa64-linux-gnu/$(BASE_VERSION)/plugin + rm -f $(d_hppa64)/$(PF)/lib/libiberty.a + rm -f $(d_hppa64)/$(PF)/lib/libcc1.* + rm -f $(d_hppa64)/$(PF)/bin/*{gcov,gcov-dump,gcov-tool,gccbug,gcc} + + rm -rf $(d_hppa64)/$(PF)/hppa64-linux-gnu + rm -rf $(d_hppa64)/$(PF)/lib/gcc/hppa64-linux-gnu/$(BASE_VERSION)/install-tools + +ifeq ($(versioned_packages),yes) + for i in cpp gcc-ar gcc-nm gcc-ranlib; do \ + mv -f $(d_hppa64)/$(PF)/bin/hppa64-linux-gnu-$$i \ + $(d_hppa64)/$(PF)/bin/hppa64-linux-gnu-$$i$(pkg_ver); \ + done +endif + mkdir -p $(d_hppa64)/$(PF)/share/man/man1 + for i in gcc-ar gcc-nm gcc-ranlib; do \ + ln -sf $$i$(pkg_ver).1.gz \ + $(d_hppa64)/$(PF)/share/man/man1/hppa64-linux-gnu-$$i$(pkg_ver).1.gz; \ + done +ifneq ($(GFDL_INVARIANT_FREE),yes) + for i in cpp gcc; do \ + ln -sf $$i$(pkg_ver).1.gz \ + $(d_hppa64)/$(PF)/share/man/man1/hppa64-linux-gnu-$$i$(pkg_ver).1.gz; \ + done +endif + + : # remove '*.la' and '*.lai' files, not shipped in any package. + find $(d_hppa64) -name '*.la' -o -name '*.lai' | xargs -r rm -f + + : # remove rpath settings from binaries and shared libs + for i in $$(chrpath -k $(d_hppa64)/$(PF)/bin/* $(d_hppa64)/$(PFL)/lib*/lib*.so.* \ + $(d_hppa64)/$(gcc_lib_dir)/plugin/* \ + $(if $(filter $(with_multiarch_lib),yes), \ + $(d_hppa64)/$(PF)/lib/$(DEB_TARGET_MULTIARCH)/lib*.so.*) \ + 2>/dev/null | awk -F: '/R(UN)?PATH=/ {print $$1}'); \ + do \ + [ -h $$i ] && continue; \ + chrpath --delete $$i; \ + echo "removed RPATH/RUNPATH: $$i"; \ + done + + touch $(install_hppa64_stamp) + +$(install_neon_stamp): $(build_neon_stamp) + dh_testdir + dh_testroot + rm -rf $(d_neon) + mkdir -p $(d_neon)/$(PF) + + $(SET_PATH) \ + $(MAKE) -C $(builddir_neon) \ + $(call pass_vars, CC $(flags_to_pass)) \ + DESTDIR=$(CURDIR)/$(d_neon) \ + install + touch $(install_neon_stamp) + +# ---------------------------------------------------------------------- +# Build architecture-dependent files here. +debian/arch_binaries.all: $(foreach i,$(arch_binaries),$(binary_stamp)-$(i)) + cd debian; xargs -r du -s < arch_binaries | sort -nr | awk '{print $$2}' \ + > arch_binaries.tmp + mv debian/arch_binaries.tmp debian/arch_binaries + sed -i 's/ /\n/g' debian/arch_binaries.epoch || touch debian/arch_binaries.epoch + cat debian/arch_binaries debian/arch_binaries.epoch > debian/arch_binaries.all + +# see #879054 for the "test ! -s" tests, needed for the rtlibs stage +binary-arch: debian/arch_binaries.all + test ! -s debian/arch_binaries.all || \ + dh_compress $(foreach p,$(shell echo `cat debian/arch_binaries.all`),-p$(p)) \ + -X.log.xz -X.sum.xz -X.c -X.txt -X.tag -X.map -XREADME.Bugs +ifeq ($(i586_symlinks),yes) + cd debian; \ + test ! -s arch_binaries || \ + for x in $$(find `cat arch_binaries` -type l -name 'i686-*'); do \ + link=$$(echo $$x | sed 's/i686-/i586-/'); \ + tgt=$$(basename $$x); \ + echo "Adding symlink: $$link -> $$tgt"; \ + rm -f $$link; cp -a $$x $$link; \ + done +endif + test ! -s debian/arch_binaries.all || \ + dh_fixperms $(foreach p,$(shell echo `cat debian/arch_binaries.all`),-p$(p)) + test ! -s debian/arch_binaries || \ + dh_gencontrol $(foreach p,$(shell echo `cat debian/arch_binaries`),-p$(p)) \ + -- -v$(DEB_VERSION) $(common_substvars) + @set -e; \ + pkgs='$(strip $(foreach p,$(shell echo `cat debian/arch_binaries.epoch`),-p$(p)))'; \ + if [ -n "$$pkgs" ]; then \ + echo dh_gencontrol $$pkgs -- -v$(DEB_EVERSION) $(common_substvars); \ + dh_gencontrol $$pkgs -- -v$(DEB_EVERSION) $(common_substvars); \ + fi + test ! -s debian/arch_binaries.all || \ + dh_installdeb $(foreach p,$(shell echo `cat debian/arch_binaries.all`),-p$(p)) + test ! -s debian/arch_binaries.all || \ + dh_md5sums $(foreach p,$(shell echo `cat debian/arch_binaries.all`),-p$(p)) + test ! -s debian/arch_binaries.all || \ + dh_builddeb $(foreach p,$(shell echo `cat debian/arch_binaries.all`),-p$(p)) +ifeq ($(with_check),yes) + @echo Done +# : # Send Email about sucessfull build. +# # cat raw-test-summary | sh; echo "Sent mail to $(S_EMAIL)" +endif + + : # remove empty directories, when all components are in place + -find $(d) -type d -empty -delete + + @echo "Listing installed files not included in any package:" + -find $(d) ! -type d + + @echo XXXXX `date -R` + +# ---------------------------------------------------------------------- +# Build architecture-independent files here. +debian/indep_binaries.all: $(foreach i,$(indep_binaries),$(binary_stamp)-$(i)) + cd debian; xargs -r du -s < indep_binaries | sort -nr | awk '{print $$2}' \ + > indep_binaries.tmp + mv debian/indep_binaries.tmp debian/indep_binaries + sed -i 's/ /\n/g' debian/indep_binaries.epoch || touch debian/indep_binaries.epoch + cat debian/indep_binaries debian/indep_binaries.epoch > debian/indep_binaries.all + +binary-indep: debian/indep_binaries.all + dh_compress $(foreach p,$(shell echo `cat debian/indep_binaries.all`),-p$(p)) \ + -X.log.xz -X.sum.xz -X.c -X.txt -X.tag -X.map -XREADME.Bugs + dh_fixperms $(foreach p,$(shell echo `cat debian/indep_binaries.all`),-p$(p)) + : # the export should be harmless for the binary indep packages of a native build + export DEB_HOST_ARCH=$(TARGET); \ + dh_gencontrol $(foreach p,$(shell echo `cat debian/indep_binaries`),-p$(p)) \ + -- -v$(DEB_VERSION) $(common_substvars) + @set -e; \ + export DEB_HOST_ARCH=$(TARGET); \ + pkgs='$(strip $(foreach p,$(shell echo `cat debian/indep_binaries.epoch`),-p$(p)))'; \ + if [ -n "$$pkgs" ]; then \ + echo dh_gencontrol $$pkgs -- -v$(DEB_EVERSION) $(common_substvars); \ + dh_gencontrol $$pkgs -- -v$(DEB_EVERSION) $(common_substvars); \ + fi + +ifneq (,$(filter $(DEB_TARGET_ARCH), mips mipsel mips64 mips64el mipsn32 mipsn32el)) + for p in `cat debian/indep_binaries debian/indep_binaries.epoch`; do \ + p=$${p#-p*}; \ + case "$$p" in \ + lib64*) echo mangle $$p; sed -i -r '/^(Dep|Rec|Sug)/s/libn?32[^,]+(, *|$$)//g;/^(Dep|Rec|Sug)/s/$(p_lgcc)/$(p_l64gcc)/;/^(Dep|Rec|Sug)/s/ *, *$$//' debian/$$p/DEBIAN/control;; \ + libn32*) echo mangle $$p; sed -i -r '/^(Dep|Rec|Sug)/s/lib64[^,]+(, *|$$)//g;/^(Dep|Rec|Sug)/s/$(p_lgcc)/$(p_ln32gcc)/;/^(Dep|Rec|Sug)/s/ *, *$$//' debian/$$p/DEBIAN/control;; \ + esac; \ + done +endif + + dh_installdeb $(foreach p,$(shell echo `cat debian/indep_binaries.all`),-p$(p)) + dh_md5sums $(foreach p,$(shell echo `cat debian/indep_binaries.all`),-p$(p)) + dh_builddeb $(foreach p,$(shell echo `cat debian/indep_binaries.all`),-p$(p)) + + @echo XXXXX `date -R` + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary +.PRECIOUS: $(stampdir)/%-stamp debian/indep_binaries.all debian/arch_binaries.all --- gcc-7-7.5.0.orig/debian/runcheck.sh +++ gcc-7-7.5.0/debian/runcheck.sh @@ -0,0 +1,23 @@ +#! /bin/sh + +mkdir -p build + +abi=${CC##* } +base=build/runcheck$abi + +cat >$base.c < +int main() +{ + printf("$abi"); + return 0; +} +EOF + + +if ${CC:-gcc} -o $base $base.c 2>/dev/null; then + if [ "$($base 2>&1)" = "$abi" ]; then + printf "%s" $abi > $base.out + printf "%s" $abi + fi +fi --- gcc-7-7.5.0.orig/debian/source/format +++ gcc-7-7.5.0/debian/source/format @@ -0,0 +1 @@ +1.0 --- gcc-7-7.5.0.orig/debian/source/lintian-overrides +++ gcc-7-7.5.0/debian/source/lintian-overrides @@ -0,0 +1,9 @@ +invalid-arch-string-in-source-relation + +quilt-build-dep-but-no-series-file + +# lintian can't handle (>= ${gcc:Version}) +weak-library-dev-dependency + +# yes, still generating the series file for the build +patch-file-present-but-not-mentioned-in-series --- gcc-7-7.5.0.orig/debian/tests/control +++ gcc-7-7.5.0/debian/tests/control @@ -0,0 +1,24 @@ +Tests: runtime-libs +Depends: apt, python3-minimal +Restrictions: allow-stderr + +Tests: libc-link +Depends: gcc-7, libc6-dev | libc-dev + +Tests: libstdcxx-link +Depends: g++-7 + +Tests: libgfortran-link +Depends: gfortran-7 + +Tests: libgo-link +Depends: gccgo-7 + +Tests: libgomp-link +Depends: gfortran-7, gcc-7 + +Tests: libgnat-link +Depends: gnat-7 + +Tests: shlib-build +Depends: gcc-7, libc6-dev | libc-dev --- gcc-7-7.5.0.orig/debian/tests/libc-link +++ gcc-7-7.5.0/debian/tests/libc-link @@ -0,0 +1,31 @@ +#!/bin/sh +# autopkgtest check: Build and run a simple program against libc, to verify +# basic compile-time and run-time linking functionality. +# +# (C) 2012 Canonical Ltd. +# Author: Martin Pitt + +set -e + +CC=gcc-7 + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR +cat < libctest.c +#include +#include + +int main() +{ + assert (1 > 0); + assert (strcmp ("hello", "hello") == 0); + return 0; +} +EOF + +$CC -o libctest libctest.c +echo "build: OK" +[ -x libctest ] +./libctest +echo "run: OK" --- gcc-7-7.5.0.orig/debian/tests/libgfortran-link +++ gcc-7-7.5.0/debian/tests/libgfortran-link @@ -0,0 +1,23 @@ +#!/bin/sh +# autopkgtest check: Build and run a simple program against libgfortran, +# to verify basic compile-time and run-time linking functionality. + +set -e + +F95=gfortran-7 + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR +cat < libgfortran.f + program hello + print *, "Hello World!" + end program hello +EOF + +$F95 -o ftest libgfortran.f +echo "build: OK" +ldd ftest +[ -x ftest ] +./ftest +echo "run: OK" --- gcc-7-7.5.0.orig/debian/tests/libgnat-link +++ gcc-7-7.5.0/debian/tests/libgnat-link @@ -0,0 +1,25 @@ +#!/bin/sh +# autopkgtest check: Build and run a simple program against libgnat, +# to verify basic compile-time and run-time linking functionality. + +set -e + +GNATMAKE=gnatmake-7 + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR +cat < hello.adb +with Ada.Text_IO; use Ada.Text_IO; +procedure Hello is +begin + Put_Line("Hello gnatmake."); +end Hello; +EOF + +$GNATMAKE -eS -vm -o adatest hello.adb +echo "build: OK" +ldd adatest +[ -x adatest ] +./adatest +echo "run: OK" --- gcc-7-7.5.0.orig/debian/tests/libgo-link +++ gcc-7-7.5.0/debian/tests/libgo-link @@ -0,0 +1,26 @@ +#!/bin/sh +# autopkgtest check: Build and run a simple program against libgo, +# to verify basic compile-time and run-time linking functionality. + +set -e + +GO=go-7 + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR +cat < hello.go +package main +import "fmt" +func main() { + fmt.Println("hello world") +} +EOF + +$GO run hello.go +$GO build hello.go +echo "build: OK" +ldd hello +[ -x hello ] +./hello +echo "run: OK" --- gcc-7-7.5.0.orig/debian/tests/libgomp-link +++ gcc-7-7.5.0/debian/tests/libgomp-link @@ -0,0 +1,77 @@ +#!/bin/sh +# autopkgtest check: Build and run a simple program against libgfortran, +# to verify basic compile-time and run-time linking functionality. + +set -e + +CC=gcc-7 +F95=gfortran-7 + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR +cat < hello-gomp.c +#include +#include +#include +int main (int argc, char *argv[]) { + +int nthreads, tid; + +/* Fork a team of threads giving them their own copies of variables */ +#pragma omp parallel private(nthreads, tid) + { + + /* Obtain thread number */ + tid = omp_get_thread_num(); + printf("Hello World from thread = %d\n", tid); + + /* Only master thread does this */ + if (tid == 0) + { + nthreads = omp_get_num_threads(); + printf("Number of threads = %d\n", nthreads); + } + + } /* All threads join master thread and disband */ +} +EOF + +$CC -fopenmp -o gctest hello-gomp.c +echo "build: OK" +ldd gctest +[ -x gctest ] +./gctest +echo "run: OK" + +cat < hello-gomp.f + program omp_par_do + implicit none + + integer, parameter :: n = 100 + real, dimension(n) :: dat, result + integer :: i + + !$OMP PARALLEL DO + do i = 1, n + result(i) = my_function(dat(i)) + end do + !$OMP END PARALLEL DO + + contains + + function my_function(d) result(y) + real, intent(in) :: d + real :: y + + ! do something complex with data to calculate y + end function my_function + end program omp_par_do +EOF + +$F95 -fopenmp -o gftest hello-gomp.f +echo "build: OK" +ldd gftest +[ -x gftest ] +./gftest +echo "run: OK" --- gcc-7-7.5.0.orig/debian/tests/libstdcxx-link +++ gcc-7-7.5.0/debian/tests/libstdcxx-link @@ -0,0 +1,27 @@ +#!/bin/sh +# autopkgtest check: Build and run a simple program against libstdc++, +# to verify basic compile-time and run-time linking functionality. + +set -e + +CXX=g++-7 + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR +cat < libstdcxx.cc +#include +using namespace std; + +int main() { + cout << "Hello! World!\n"; + return 0; +} +EOF + +$CXX -o cxxtest libstdcxx.cc +echo "build: OK" +ldd cxxtest +[ -x cxxtest ] +./cxxtest +echo "run: OK" --- gcc-7-7.5.0.orig/debian/tests/runtime-libs +++ gcc-7-7.5.0/debian/tests/runtime-libs @@ -0,0 +1,31 @@ +#!/bin/sh +# autopkgtest check: start a "simple" program and check that +# dynamic loading of modules works + +set -e + + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR + +echo "Running exexutable linked with libgcc and libstdc++ (apt)..." +if [ -x /usr/bin/apt ]; then + apt=/usr/bin/apt +elif [ -x /bin/apt ]; then + apt=/bin/apt +else + echo "apt not found" + exit 1 +fi + +ldd $apt +apt show libgcc1 libstdc++6 + +echo "Running dynamically linked executable (python3)..." +python3 -c 'print("Hello World!")' +echo "OK" + +echo "Loading extension module..." +python3 -c 'import _hashlib; print(_hashlib.__dict__)' +echo "OK" --- gcc-7-7.5.0.orig/debian/tests/shlib-build +++ gcc-7-7.5.0/debian/tests/shlib-build @@ -0,0 +1,46 @@ +#!/bin/sh +# autopkgtest check: Build and link against a simple shared library, to test +# basic binutils compile-time and run-time linking functionality. +# +# (C) 2012 Canonical Ltd. +# Author: Martin Pitt + +set -e + +CC=gcc-7 + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR +cat < testlib.c + +int ultimate_answer() +{ + return 42; +} +EOF + +$CC -Wall -Werror -shared -o libultimate.so testlib.c +echo "library build: OK" + +# should export the symbol +nm -D libultimate.so | grep -q 'T ultimate_answer' + +# link it against a program +cat < testprog.c +#include + +int ultimate_answer(); + +int main() +{ + assert (ultimate_answer() == 42); + return 0; +} +EOF + +$CC -Wall -Werror -L . -o testprog testprog.c -lultimate +echo "program build: OK" +[ -x testprog ] +LD_LIBRARY_PATH=. ./testprog +echo "run: OK" --- gcc-7-7.5.0.orig/debian/watch +++ gcc-7-7.5.0/debian/watch @@ -0,0 +1,3 @@ +version=2 +ftp://gcc.gnu.org/pub/gcc/releases/gcc-(7\.[\d\.]*)/ \ + gcc-([\d\.]+)\.tar\.xz debian uupdate