[PATCH] RTEMS: Use TLS for Ada run-time

2017-06-02 Thread Sebastian Huber
Do not use the RTEMS-specific task variables for the Ada run-time since
they are not available in SMP configurations.  Use thread-local storage
instead.

gcc/ada
2017-06-01  Sebastian Huber  

* Makefile.in (rtems): Use TLS implementation.
---
 gcc/ada/gcc-interface/Makefile.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/ada/gcc-interface/Makefile.in 
b/gcc/ada/gcc-interface/Makefile.in
index 5f570cf34c5..6acff9899eb 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -1734,7 +1734,7 @@ ifeq ($(strip $(filter-out rtems%,$(target_os))),)
   s-parame.adbhttp://lists.rtems.org/mailman/listinfo/devel


[PATCH 4/6] Use default prerequisites for GCC 7.1

2017-06-02 Thread Sebastian Huber
Use prerequisites as defined by the contrib/download_prerequisites
script of GCC 7.1.
---
 rtems/config/tools/rtems-gcc-7.1.0-newlib-2.5.0.20170323-1.cfg | 9 -
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/rtems/config/tools/rtems-gcc-7.1.0-newlib-2.5.0.20170323-1.cfg 
b/rtems/config/tools/rtems-gcc-7.1.0-newlib-2.5.0.20170323-1.cfg
index ffadf0b..a9a600d 100644
--- a/rtems/config/tools/rtems-gcc-7.1.0-newlib-2.5.0.20170323-1.cfg
+++ b/rtems/config/tools/rtems-gcc-7.1.0-newlib-2.5.0.20170323-1.cfg
@@ -7,9 +7,9 @@
 
 %define gcc_version7.1.0
 %define newlib_version 2.5.0.20170323
-%define mpfr_version   3.1.5
+%define mpfr_version   3.1.4
 %define mpc_version1.0.3
-%define gmp_version4.3.2
+%define gmp_version6.1.0
 
 #
 # FreeBSD specific fix for MIPS
@@ -21,10 +21,9 @@
 
 %hash sha512 gcc-7.1.0.tar.bz2 
b5d952be9a10f0e0926bb2868877d10544039d6d2f35ba0a08f51231dd622a007650764a03e173194701467547789ad7d2d9cbc10adcdf118d619cdedbd14aec
 %hash sha512 newlib-2.5.0.20170323.tar.gz 
323992603f994e82d1b8117da39ce08f8a6584330606e2d053ccefc62fce5682ac47f983aa3bc526c85bcabbcfce85cf607b08f87c5435d00cec6727c006f6b7
-%hash sha512 mpfr-3.1.5.tar.bz2 
ebf94f49e1f850db6304eec8bf3cbf592b9fb06b743e0a99a660edae3c086aa47cdd089ea958fd4631ff02a444ec034b5e45d7e9701704d74c2e2d49021e49a7
+%hash sha512 mpfr-3.1.4.tar.bz2 
51066066ff2c12ed2198605ecf68846b0c96b548adafa5b80e0c786d0df488411a5e8973358fce7192dc977ad4e68414cf14500e3c39746de62465eb145bb819
 %hash sha512 mpc-1.0.3.tar.gz 
0028b76df130720c1fad7de937a0d041224806ce5ef76589f19c7b49d956071a683e2f20d154c192a231e69756b19e48208f2889b0c13950ceb7b3cfaf059a43
-%hash sha512 mpc-0.8.1.tar.gz 
14cb9ae3d33caed24d5ae648eed28b2e00ad047a8baeff25981129af88245b4def2948573d7a00d65c5bd34e53524aa6a7351b76703c9f888b41830c1a1daae2
-%hash sha512 gmp-4.3.2.tar.bz2 
2e0b0fd23e6f10742a5517981e5171c6e88b0a93c83da701b296f5c0861d72c19782daab589a7eac3f9032152a0fc7eff7f5362db8fccc4859564a9aa82329cf
+%hash sha512 gmp-6.1.0.tar.bz2 
3c82aeab9c1596d4da8afac2eec38e429e84f3211e1a572cf8fd2b546493c44c039b922a1133eaaa48bd7f3e11dbe795a384e21ed95cbe3ecc58d7ac02246117
 
 
 %patch add newlib -p1 
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=patch;h=f70d9ae6adc6ed7952806056349ba9f8ba3c65c8
-- 
2.12.0

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 3/6] Fix for GCC 4.9 while building with GCC 6+

2017-06-02 Thread Sebastian Huber
See also:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69959
---
 source-builder/config/gcc-4.9-1.cfg | 9 +
 1 file changed, 9 insertions(+)

diff --git a/source-builder/config/gcc-4.9-1.cfg 
b/source-builder/config/gcc-4.9-1.cfg
index 7d6a440..bef0c93 100644
--- a/source-builder/config/gcc-4.9-1.cfg
+++ b/source-builder/config/gcc-4.9-1.cfg
@@ -25,6 +25,15 @@
 %source set mpc 
http://www.multiprecision.org/mpc/download/mpc-%{mpc_version}.tar.gz
 %source set gmp ftp://ftp.gnu.org/gnu/gmp/gmp-%{gmp_version}.tar.bz2
 
+%patch add gcc -p1 
https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff_plain;f=gcc/cp/Make-lang.in;h=b09fb02bb4c0d16fc2c842bec4069c033897b5f2;hp=e98beb1e33e4bcc4943361c559ae71b7eb345346;hb=1e5f1089dec3af328fd03125d6778f666d0bd4e4;hpb=88375bb2ba8b9004a9924cdae894d7ff32972652
+%hash sha512 
Make-lang.in-h-b09fb02bb4c0d16fc2c842bec4069c033897b5f2-hp-e98beb1e33e4bcc4943361c559ae71b7eb345346-hb-1e5f1089dec3af328fd03125d6778f666d0bd4e4-hpb-88375bb2ba8b9004a9924cdae894d7ff32972652
 
a47511de21fda0c0c314577ee295b8f2bc9f555084ceca88de12c931ebfe47e5fec349682085a7a1e8637e8e159b8f79188a56d42e54fda2ba5161d5bd3f56ac
+%patch add gcc -p1 
https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff_plain;f=gcc/cp/cfns.gperf;h=b09fb02bb4c0d16fc2c842bec4069c033897b5f2;hp=e98beb1e33e4bcc4943361c559ae71b7eb345346;hb=1e5f1089dec3af328fd03125d6778f666d0bd4e4;hpb=88375bb2ba8b9004a9924cdae894d7ff32972652
+%hash sha512 
cfns.gperf-h-b09fb02bb4c0d16fc2c842bec4069c033897b5f2-hp-e98beb1e33e4bcc4943361c559ae71b7eb345346-hb-1e5f1089dec3af328fd03125d6778f666d0bd4e4-hpb-88375bb2ba8b9004a9924cdae894d7ff32972652
 
fdb49abb4f04ba627d6be7b0e0dd9bfdf3eb4b28c045627048bf1c56cabdf2c618cf084991bb847ac60c1eabf582a30ca1e0f4bfd943b9f34efd7e96879d251b
+%patch add gcc -p1 
https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff_plain;f=gcc/cp/cfns.h;h=b09fb02bb4c0d16fc2c842bec4069c033897b5f2;hp=e98beb1e33e4bcc4943361c559ae71b7eb345346;hb=1e5f1089dec3af328fd03125d6778f666d0bd4e4;hpb=88375bb2ba8b9004a9924cdae894d7ff32972652
+%hash sha512 
cfns.h-h-b09fb02bb4c0d16fc2c842bec4069c033897b5f2-hp-e98beb1e33e4bcc4943361c559ae71b7eb345346-hb-1e5f1089dec3af328fd03125d6778f666d0bd4e4-hpb-88375bb2ba8b9004a9924cdae894d7ff32972652
 
ec0bd28a8266b136b99db4285c9a088c11fd7ba647dade5fb161308c00cb4189fa665e25ce6b139a7aa9740e97e617fd4e15ca506416dd9316e9fb7202f5c520
+%patch add gcc -p1 
https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff_plain;f=gcc/cp/except.c;h=b09fb02bb4c0d16fc2c842bec4069c033897b5f2;hp=e98beb1e33e4bcc4943361c559ae71b7eb345346;hb=1e5f1089dec3af328fd03125d6778f666d0bd4e4;hpb=88375bb2ba8b9004a9924cdae894d7ff32972652
+%hash sha512 
except.c-h-b09fb02bb4c0d16fc2c842bec4069c033897b5f2-hp-e98beb1e33e4bcc4943361c559ae71b7eb345346-hb-1e5f1089dec3af328fd03125d6778f666d0bd4e4-hpb-88375bb2ba8b9004a9924cdae894d7ff32972652
 
ad05ceea98d7ec95fb2312b0f31aa6260f67119d7c796a1b8c1816fbcd2738edb626705594699bec22a2f770892589f6fc296e184d329bcb967ee2587fbfc5ba
+
 #
 # GCC Common build script.
 #
-- 
2.12.0

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 1/6] doc: Mention Ada language option

2017-06-02 Thread Sebastian Huber
---
 doc/source-builder.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/doc/source-builder.txt b/doc/source-builder.txt
index 2b9a17d..e996954 100644
--- a/doc/source-builder.txt
+++ b/doc/source-builder.txt
@@ -571,12 +571,14 @@ because they are implemented with the configuration 
scripts. The best way to
 find what is available is to grep the configuration files. for +with+ and
 +without+.
 
-Following are currentlt available:
+Following are currently available:
 
 '--without-rtems':: Do not build RTEMS when building an RTEMS build set.
 '--without-cxx':: Do not build a C++ compiler.
 '--with-objc':: Attempt to build a C++ compiler.
 '--with-fortran':: Attempt to build a Fortran compiler.
+'--with-ada':: Attempt to build an Ada compiler.  You need a native GNAT
+installed.
 
 Why Build from Source ?
 ---
-- 
2.12.0

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 5/6] Download GCC prerequisites from GNU server

2017-06-02 Thread Sebastian Huber
Use HTTPS instead of FTP.
---
 source-builder/config/gcc-6-1.cfg | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/source-builder/config/gcc-6-1.cfg 
b/source-builder/config/gcc-6-1.cfg
index 9f75d6e..c17abc3 100644
--- a/source-builder/config/gcc-6-1.cfg
+++ b/source-builder/config/gcc-6-1.cfg
@@ -11,7 +11,7 @@
 #
 # GCC core and G++
 #
-%source set gcc 
ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_version}/gcc-%{gcc_version}.tar.bz2
+%source set gcc 
https://ftp.gnu.org/gnu/gcc/gcc-%{gcc_version}/gcc-%{gcc_version}.tar.bz2
 
 #
 # Newlib
@@ -21,9 +21,9 @@
 #
 # Packages GCC requires
 #
-%source set mpfr 
http://www.mpfr.org/mpfr-%{mpfr_version}/mpfr-%{mpfr_version}.tar.bz2
-%source set mpc 
http://www.multiprecision.org/mpc/download/mpc-%{mpc_version}.tar.gz
-%source set gmp ftp://ftp.gnu.org/gnu/gmp/gmp-%{gmp_version}.tar.bz2
+%source set mpfr https://ftp.gnu.org/gnu/mpfr/mpfr-%{mpfr_version}.tar.bz2
+%source set mpc https://ftp.gnu.org/gnu/mpc/mpc-%{mpc_version}.tar.gz
+%source set gmp https://ftp.gnu.org/gnu/gmp/gmp-%{gmp_version}.tar.bz2
 
 #
 # GCC Common build script.
-- 
2.12.0

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 2/6] sb: Create hopefully more valid file names

2017-06-02 Thread Sebastian Huber
---
 source-builder/sb/download.py | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/source-builder/sb/download.py b/source-builder/sb/download.py
index 4bba7de..dd7880d 100644
--- a/source-builder/sb/download.py
+++ b/source-builder/sb/download.py
@@ -26,6 +26,7 @@ from __future__ import print_function
 
 import hashlib
 import os
+import re
 import stat
 import sys
 try:
@@ -180,12 +181,9 @@ def _http_parser(source, pathkey, config, opts):
 raise error.general('gitweb.cgi path missing p or h: %s' % 
(url))
 source['file'] = '%s-%s.patch' % (p, h)
 #
-# Check the source file name for any extra request query data and 
remove if
-# found. Some hosts do not like file names containing them.
+# Wipe out everything special in the file name.
 #
-if '?' in source['file']:
-qmark = source['file'].find('?')
-source['file'] = source['file'][:qmark]
+source['file'] = re.sub(r'[^a-zA-Z0-9.\-]+', '-', source['file'])
 #
 # Check local path
 #
-- 
2.12.0

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 6/6] 4.12: Update to use Newlib 2.5.0.20170519

2017-06-02 Thread Sebastian Huber
Add POSIX header file patches for Newlib.
---
 rtems/config/4.12/rtems-default.bset   |  2 +-
 rtems/config/4.12/rtems-epiphany.bset  |  2 +-
 rtems/config/4.12/rtems-m32c.bset  |  2 +-
 rtems/config/4.12/rtems-or1k.bset  |  2 +-
 rtems/config/4.12/rtems-sh.bset|  2 +-
 .../rtems-gcc-4.8.3-newlib-2.5.0.20170519-1.cfg| 26 
 .../rtems-gcc-4.9.2-newlib-2.5.0.20170519-1.cfg| 26 
 .../rtems-gcc-4.9.3-newlib-2.5.0.20170519-1.cfg| 26 
 .../rtems-gcc-6.3.0-newlib-2.5.0.20170519-1.cfg| 47 ++
 .../rtems-gcc-7.1.0-newlib-2.5.0.20170519-1.cfg| 47 ++
 10 files changed, 177 insertions(+), 5 deletions(-)
 create mode 100644 
rtems/config/tools/rtems-gcc-4.8.3-newlib-2.5.0.20170519-1.cfg
 create mode 100644 
rtems/config/tools/rtems-gcc-4.9.2-newlib-2.5.0.20170519-1.cfg
 create mode 100644 
rtems/config/tools/rtems-gcc-4.9.3-newlib-2.5.0.20170519-1.cfg
 create mode 100644 
rtems/config/tools/rtems-gcc-6.3.0-newlib-2.5.0.20170519-1.cfg
 create mode 100644 
rtems/config/tools/rtems-gcc-7.1.0-newlib-2.5.0.20170519-1.cfg

diff --git a/rtems/config/4.12/rtems-default.bset 
b/rtems/config/4.12/rtems-default.bset
index 1c54de7..21fa2ca 100644
--- a/rtems/config/4.12/rtems-default.bset
+++ b/rtems/config/4.12/rtems-default.bset
@@ -11,7 +11,7 @@
 
 devel/expat-2.1.0-1
 tools/rtems-binutils-2.28-1
-tools/rtems-gcc-7.1.0-newlib-2.5.0.20170323-1
+tools/rtems-gcc-7.1.0-newlib-2.5.0.20170519-1
 tools/rtems-gdb-7.12-1
 tools/rtems-tools-4.12-1
 tools/rtems-kernel-4.12
diff --git a/rtems/config/4.12/rtems-epiphany.bset 
b/rtems/config/4.12/rtems-epiphany.bset
index 0c58fec..ea6cdf8 100644
--- a/rtems/config/4.12/rtems-epiphany.bset
+++ b/rtems/config/4.12/rtems-epiphany.bset
@@ -38,6 +38,6 @@
 4.12/rtems-autotools
 devel/expat-2.1.0-1
 tools/rtems-binutils-2.23.1-1
-tools/rtems-gcc-4.9.2-newlib-2.5.0.20170323-1.cfg
+tools/rtems-gcc-4.9.2-newlib-2.5.0.20170519-1.cfg
 tools/rtems-gdb-7.8.1-1
 tools/rtems-tools-4.12-1
diff --git a/rtems/config/4.12/rtems-m32c.bset 
b/rtems/config/4.12/rtems-m32c.bset
index ec0d0c5..f8488b7 100644
--- a/rtems/config/4.12/rtems-m32c.bset
+++ b/rtems/config/4.12/rtems-m32c.bset
@@ -41,6 +41,6 @@
 4.12/rtems-autotools
 devel/expat-2.1.0-1
 tools/rtems-binutils-2.24-1
-tools/rtems-gcc-4.8.3-newlib-2.5.0.20170323-1
+tools/rtems-gcc-4.8.3-newlib-2.5.0.20170519-1
 tools/rtems-gdb-7.9-1
 tools/rtems-tools-4.12-1
diff --git a/rtems/config/4.12/rtems-or1k.bset 
b/rtems/config/4.12/rtems-or1k.bset
index 1ce8cf8..1d2a608 100644
--- a/rtems/config/4.12/rtems-or1k.bset
+++ b/rtems/config/4.12/rtems-or1k.bset
@@ -33,6 +33,6 @@
 4.12/rtems-autotools
 devel/expat-2.1.0-1
 tools/rtems-binutils-2.26-1
-tools/rtems-gcc-4.9.3-newlib-2.5.0.20170323-1.cfg
+tools/rtems-gcc-4.9.3-newlib-2.5.0.20170519-1
 tools/rtems-tools-4.12-1
 tools/rtems-gdb-7.11-1
diff --git a/rtems/config/4.12/rtems-sh.bset b/rtems/config/4.12/rtems-sh.bset
index 29597a8..6d3ba54 100644
--- a/rtems/config/4.12/rtems-sh.bset
+++ b/rtems/config/4.12/rtems-sh.bset
@@ -13,7 +13,7 @@
 
 devel/expat-2.1.0-1
 tools/rtems-binutils-2.28-1
-tools/rtems-gcc-6.3.0-newlib-2.5.0.20170323-1
+tools/rtems-gcc-6.3.0-newlib-2.5.0.20170519-1
 tools/rtems-gdb-7.12-1
 tools/rtems-tools-4.12-1
 tools/rtems-kernel-4.12
diff --git a/rtems/config/tools/rtems-gcc-4.8.3-newlib-2.5.0.20170519-1.cfg 
b/rtems/config/tools/rtems-gcc-4.8.3-newlib-2.5.0.20170519-1.cfg
new file mode 100644
index 000..cfc862d
--- /dev/null
+++ b/rtems/config/tools/rtems-gcc-4.8.3-newlib-2.5.0.20170519-1.cfg
@@ -0,0 +1,26 @@
+%define gcc_version4.8.3
+%define newlib_version 2.5.0.20170519
+
+%hash sha512 gcc-4.8.3.tar.bz2 
2b40d231e8445f9c1654137df509f09ce1187b475138ca7f648f710d922a1718f740b2d8a37c26e16b5e27900c60358be98229ae884a6f1f70e9df44ad24d02b
+%hash sha512 newlib-2.5.0.20170519.tar.gz 
3196acc2749d89f510054163ec8dab529f1b05863831ddce7ba57f027aa346133226706a0e0f52c1e67118be0b16e41dac2eb0783cd52bcd03f33f876778c9a0
+
+%patch add newlib -p1 
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=patch;h=15b59a15b42c4918c9e0b7bb4a3cbfd46d9b539e
+%hash sha512 newlib-cygwin-git-15b59a15b42c4918c9e0b7bb4a3cbfd46d9b539e.patch 
fd8c019b94d33c2fcbcd0c9d5fb5c3fe5488dde5ebc229f492d7b222e962c405ee7ed981f75b1489c409f51cec892d3e59eb82763b94fac6d364a35bb6cec3d5
+%patch add newlib -p1 
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=patch;h=2efb1170473ac0c560978567f39a0d69883a2f8b
+%hash sha512 newlib-cygwin-git-2efb1170473ac0c560978567f39a0d69883a2f8b.patch 
4e7da66589b275f49a10ab48c3b7df87f77669227b678dd63ca3088a8153a5f20b48ac6fc00ad2b54b783639b21b0089ebfee7c0ce3809f91647173e69d57629
+%patch add newlib -p1 
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=patch;h=0008601042291502e479fd0d2738855b40f9b2b2
+%hash sha512 newlib-cygwin-git-0008601042291502e479fd0d2738855b40f9b2b2.patch 
69a5193a3c91eac9caed40b88708b33445a