head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.76 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.74 pkgsrc-2025Q4-base:1.1 pkgsrc-2025Q3:1.1.0.72 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.70 pkgsrc-2025Q2-base:1.1 pkgsrc-2025Q1:1.1.0.68 pkgsrc-2025Q1-base:1.1 pkgsrc-2024Q4:1.1.0.66 pkgsrc-2024Q4-base:1.1 pkgsrc-2024Q3:1.1.0.64 pkgsrc-2024Q3-base:1.1 pkgsrc-2024Q2:1.1.0.62 pkgsrc-2024Q2-base:1.1 pkgsrc-2024Q1:1.1.0.60 pkgsrc-2024Q1-base:1.1 pkgsrc-2023Q4:1.1.0.58 pkgsrc-2023Q4-base:1.1 pkgsrc-2023Q3:1.1.0.56 pkgsrc-2023Q3-base:1.1 pkgsrc-2023Q2:1.1.0.54 pkgsrc-2023Q2-base:1.1 pkgsrc-2023Q1:1.1.0.52 pkgsrc-2023Q1-base:1.1 pkgsrc-2022Q4:1.1.0.50 pkgsrc-2022Q4-base:1.1 pkgsrc-2022Q3:1.1.0.48 pkgsrc-2022Q3-base:1.1 pkgsrc-2022Q2:1.1.0.46 pkgsrc-2022Q2-base:1.1 pkgsrc-2022Q1:1.1.0.44 pkgsrc-2022Q1-base:1.1 pkgsrc-2021Q4:1.1.0.42 pkgsrc-2021Q4-base:1.1 pkgsrc-2021Q3:1.1.0.40 pkgsrc-2021Q3-base:1.1 pkgsrc-2021Q2:1.1.0.38 pkgsrc-2021Q2-base:1.1 pkgsrc-2021Q1:1.1.0.36 pkgsrc-2021Q1-base:1.1 pkgsrc-2020Q4:1.1.0.34 pkgsrc-2020Q4-base:1.1 pkgsrc-2020Q3:1.1.0.32 pkgsrc-2020Q3-base:1.1 pkgsrc-2020Q2:1.1.0.28 pkgsrc-2020Q2-base:1.1 pkgsrc-2020Q1:1.1.0.8 pkgsrc-2020Q1-base:1.1 pkgsrc-2019Q4:1.1.0.30 pkgsrc-2019Q4-base:1.1 pkgsrc-2019Q3:1.1.0.26 pkgsrc-2019Q3-base:1.1 pkgsrc-2019Q2:1.1.0.24 pkgsrc-2019Q2-base:1.1 pkgsrc-2019Q1:1.1.0.22 pkgsrc-2019Q1-base:1.1 pkgsrc-2018Q4:1.1.0.20 pkgsrc-2018Q4-base:1.1 pkgsrc-2018Q3:1.1.0.18 pkgsrc-2018Q3-base:1.1 pkgsrc-2018Q2:1.1.0.16 pkgsrc-2018Q2-base:1.1 pkgsrc-2018Q1:1.1.0.14 pkgsrc-2018Q1-base:1.1 pkgsrc-2017Q4:1.1.0.12 pkgsrc-2017Q4-base:1.1 pkgsrc-2017Q3:1.1.0.10 pkgsrc-2017Q3-base:1.1 pkgsrc-2017Q2:1.1.0.6 pkgsrc-2017Q2-base:1.1 pkgsrc-2017Q1:1.1.0.4 pkgsrc-2017Q1-base:1.1 pkgsrc-2016Q4:1.1.0.2 pkgsrc-2016Q4-base:1.1; locks; strict; comment @# @; 1.1 date 2016.12.13.01.19.20; author marino; state Exp; branches; next ; commitid 7fxwqLh0iwjXeLxz; desc @@ 1.1 log @Add lang/gcc6-aux to pkgsrc I had intended to migrate the ada framework to use gcc6-aux instead of lang/gcc5-aux, but unfortunately there's been a regression on NetBSD. It builds and tests perfectly on DragonFly and FreeBSD, but it only builds on NetBSD. All the ACAT tests that involve tasking fail, but the cause is unclear. All the modifications used on gcc5-aux for NetBSD are present in gcc6-aux but pthread destruction results in a segfault. Since then gcc5-aux support has been improved, so I'm putting this away for a while. NetBSD has been removed from the platform support list for now, but I'll review any patches I get to fix NetBSD tasking. This compiler is based on gcc 6.2 and is primarily used for the Ada frontend. @ text @--- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig +++ libstdc++-v3/config/os/bsd/netbsd/ctype_base.h @@@@ -43,9 +43,22 @@@@ // NB: Offsets into ctype::_M_table force a particular size // on the mask type. Because of this, we don't use an enum. - typedef unsigned char mask; -#ifndef _CTYPE_U +#if defined(_CTYPE_BL) + typedef unsigned short mask; + static const mask upper = _CTYPE_U; + static const mask lower = _CTYPE_L; + static const mask alpha = _CTYPE_A; + static const mask digit = _CTYPE_D; + static const mask xdigit = _CTYPE_X; + static const mask space = _CTYPE_S; + static const mask print = _CTYPE_R; + static const mask graph = _CTYPE_G; + static const mask cntrl = _CTYPE_C; + static const mask punct = _CTYPE_P; + static const mask alnum = _CTYPE_A | _CTYPE_D; +#elif !defined(_CTYPE_U) + typedef unsigned char mask; static const mask upper = _U; static const mask lower = _L; static const mask alpha = _U | _L; @@@@ -58,6 +71,7 @@@@ static const mask punct = _P; static const mask alnum = _U | _L | _N; #else + typedef unsigned char mask; static const mask upper = _CTYPE_U; static const mask lower = _CTYPE_L; static const mask alpha = _CTYPE_U | _CTYPE_L; --- libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc.orig +++ libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc @@@@ -38,11 +38,17 @@@@ // Information as gleaned from /usr/include/ctype.h +#ifndef _CTYPE_BL extern "C" const u_int8_t _C_ctype_[]; +#endif const ctype_base::mask* ctype::classic_table() throw() +#ifdef _CTYPE_BL + { return _C_ctype_tab_ + 1; } +#else { return _C_ctype_ + 1; } +#endif ctype::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) @@@@ -69,14 +75,14 @@@@ char ctype::do_toupper(char __c) const - { return ::toupper((int) __c); } + { return ::toupper((int)(unsigned char) __c); } const char* ctype::do_toupper(char* __low, const char* __high) const { while (__low < __high) { - *__low = ::toupper((int) *__low); + *__low = ::toupper((int)(unsigned char) *__low); ++__low; } return __high; @@@@ -84,14 +90,14 @@@@ char ctype::do_tolower(char __c) const - { return ::tolower((int) __c); } + { return ::tolower((int)(unsigned char) __c); } const char* ctype::do_tolower(char* __low, const char* __high) const { while (__low < __high) { - *__low = ::tolower((int) *__low); + *__low = ::tolower((int)(unsigned char) *__low); ++__low; } return __high; --- libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h.orig +++ libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h @@@@ -48,7 +48,7 @@@@ is(const char* __low, const char* __high, mask* __vec) const { while (__low < __high) - *__vec++ = _M_table[*__low++]; + *__vec++ = _M_table[(unsigned char)*__low++]; return __high; } --- libstdc++-v3/libsupc++/unwind-cxx.h.orig +++ libstdc++-v3/libsupc++/unwind-cxx.h @@@@ -38,6 +38,7 @@@@ #include #ifdef _GLIBCXX_HAVE_SYS_SDT_H +#include #include /* We only want to use stap probes starting with v3. Earlier versions added too much startup cost. */ --- libstdc++-v3/configure.host.orig +++ libstdc++-v3/configure.host @@@@ -262,6 +262,9 @@@@ freebsd*) os_include_dir="os/bsd/freebsd" ;; + linux-android*) + os_include_dir="os/bionic" + ;; linux-musl*) os_include_dir="os/generic" ;; --- libstdc++-v3/config/os/bionic/ctype_base.h.orig +++ libstdc++-v3/config/os/bionic/ctype_base.h @@@@ -38,6 +38,18 @@@@ // Non-standard typedefs. typedef const int* __to_type; +#ifdef _CTYPE_U +#define _U _CTYPE_U +#define _L _CTYPE_L +#define _D _CTYPE_D +#define _S _CTYPE_S +#define _P _CTYPE_P +#define _C _CTYPE_C +#define _X _CTYPE_X +#define _B _CTYPE_B +#define _N _CTYPE_D +#endif + // NB: Offsets into ctype::_M_table force a particular size // on the mask type. Because of this, we don't use an enum. typedef char mask; --- libstdc++-v3/src/c++11/futex.cc.orig +++ libstdc++-v3/src/c++11/futex.cc @@@@ -27,7 +27,11 @@@@ #if defined(_GLIBCXX_HAVE_LINUX_FUTEX) && ATOMIC_INT_LOCK_FREE > 1 #include #include +#ifdef __ANDROID__ +#include +#else #include +#endif #include #include #include --- libstdc++-v3/src/filesystem/dir.cc.orig +++ libstdc++-v3/src/filesystem/dir.cc @@@@ -147,7 +147,13 @@@@ int err = std::exchange(errno, 0); const auto entp = readdir(dirp); +#ifdef __ANDROID__ + int tmperr = errno; + errno = err; + err = tmperr; +#else std::swap(errno, err); +#endif if (entp) { @