Google modifications to this package

Replace mistakenly licensed file

  • Rebased newlib/libc/include/sys/select.h to the latest from newlib, as it corrects mistaken licensing.

Run autoreconf to be buildable from GIT

  • Git does not preserve timestamps on checked-in files, causing the configure script to think that it is out-of-date, and then complaining about missing autoconf files on your workstation.

    Running autoreconf before running configure resolves this problem, so that was added to the build-prerequisites.sh script.

Add list of newlib files, and NOTICES

  • Add newlib-arm-none-eabi-files.txt to list the files possibly redistributed with binaries built with newlib.
  • Add a collect-license.py script to extract licenses into a file.
  • Add a collection of notices in NOTICES.arm-none-eabi for notices that must be provided when distributing binaries built with the arm-none-eabi target (and newlib).

Add a pushbutton wrapper build-gcc.sh script

  • Add build-gcc.sh to stage, clone, build, and install (into ~/.cache/toolchains) this GCC version.

Add posix thread support

  • Change the configuration scripts to include posix threading.

  • Modify newlib/newlib/libc/include/sys/features.h to include pthreads definitions if no other system was detected.

  • Modify newlib/newlib/libc/stdio/local.h to wrap calls to pthread_setcancelstate with a weak reference only realized if pthread_cancel is linked into the binary. This prevents unresolved symbols for programs that don't use pthreads.

  • Modify some implementations to call the new __nthread calls.

    • newlib/newlib/libc/stdio/fclose.c
    • newlib/newlib/libc/stdio/freopen.c
    • newlib/newlib/libc/stdio/freopen64.c

Make std::mutex destroy auto-initialized mutexes

  • Modify src/gcc/libstdc++-v3/include/bits/std_mutex.h so that the __base_mutex destructor is implemented whether __GTHREAD_MUTEX_INIT is defined or not.