This list is closed, nobody may subscribe to it.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(12) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(13) |
Feb
(2) |
Mar
(1) |
Apr
(1) |
May
|
Jun
(38) |
Jul
(10) |
Aug
(70) |
Sep
(63) |
Oct
(61) |
Nov
(41) |
Dec
(28) |
| 2002 |
Jan
(43) |
Feb
(11) |
Mar
(9) |
Apr
(2) |
May
(97) |
Jun
(94) |
Jul
(13) |
Aug
(49) |
Sep
(41) |
Oct
(24) |
Nov
(55) |
Dec
(126) |
| 2003 |
Jan
(90) |
Feb
(75) |
Mar
(32) |
Apr
(24) |
May
(54) |
Jun
(54) |
Jul
(22) |
Aug
(4) |
Sep
(16) |
Oct
(8) |
Nov
(6) |
Dec
(13) |
| 2004 |
Jan
|
Feb
(17) |
Mar
(60) |
Apr
(21) |
May
(12) |
Jun
|
Jul
(13) |
Aug
|
Sep
(29) |
Oct
|
Nov
|
Dec
(2) |
| 2005 |
Jan
(22) |
Feb
(3) |
Mar
(2) |
Apr
(13) |
May
(82) |
Jun
(18) |
Jul
(30) |
Aug
(17) |
Sep
(3) |
Oct
(19) |
Nov
(4) |
Dec
(8) |
| 2006 |
Jan
(1) |
Feb
(6) |
Mar
(2) |
Apr
(40) |
May
|
Jun
(21) |
Jul
(1) |
Aug
(410) |
Sep
(3) |
Oct
|
Nov
(56) |
Dec
(7) |
| 2007 |
Jan
(19) |
Feb
|
Mar
(4) |
Apr
(8) |
May
(19) |
Jun
(6) |
Jul
(4) |
Aug
(6) |
Sep
|
Oct
(4) |
Nov
(3) |
Dec
(2) |
| 2008 |
Jan
(13) |
Feb
(18) |
Mar
(12) |
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
(6) |
Mar
(8) |
Apr
(2) |
May
(2) |
Jun
|
Jul
|
Aug
(2) |
Sep
(11) |
Oct
(13) |
Nov
(17) |
Dec
(6) |
| 2010 |
Jan
(24) |
Feb
(10) |
Mar
(27) |
Apr
(20) |
May
(108) |
Jun
(8) |
Jul
(23) |
Aug
(38) |
Sep
(49) |
Oct
(17) |
Nov
(12) |
Dec
(14) |
| 2011 |
Jan
(17) |
Feb
(7) |
Mar
(28) |
Apr
(8) |
May
(20) |
Jun
(11) |
Jul
(7) |
Aug
(12) |
Sep
(4) |
Oct
(20) |
Nov
(19) |
Dec
(2) |
| 2012 |
Jan
(2) |
Feb
(6) |
Mar
(5) |
Apr
(24) |
May
(5) |
Jun
(4) |
Jul
(6) |
Aug
(18) |
Sep
(38) |
Oct
(26) |
Nov
(12) |
Dec
(6) |
| 2013 |
Jan
(19) |
Feb
(18) |
Mar
(44) |
Apr
(35) |
May
(18) |
Jun
(21) |
Jul
(10) |
Aug
(19) |
Sep
(44) |
Oct
(25) |
Nov
(1) |
Dec
(2) |
| 2014 |
Jan
(8) |
Feb
|
Mar
|
Apr
(5) |
May
(1) |
Jun
(3) |
Jul
|
Aug
(3) |
Sep
|
Oct
(4) |
Nov
(4) |
Dec
(7) |
| 2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(2) |
Jun
(4) |
Jul
(6) |
Aug
(2) |
Sep
(8) |
Oct
(2) |
Nov
(1) |
Dec
(3) |
| 2016 |
Jan
(7) |
Feb
(9) |
Mar
(5) |
Apr
(5) |
May
(9) |
Jun
(4) |
Jul
(20) |
Aug
(4) |
Sep
(7) |
Oct
(6) |
Nov
(9) |
Dec
(2) |
| 2017 |
Jan
(7) |
Feb
(7) |
Mar
(5) |
Apr
|
May
(1) |
Jun
(4) |
Jul
(12) |
Aug
(4) |
Sep
(1) |
Oct
(4) |
Nov
(11) |
Dec
(14) |
| 2018 |
Jan
(3) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
1
|
2
|
|
3
(1) |
4
|
5
|
6
|
7
|
8
|
9
|
|
10
|
11
|
12
|
13
|
14
(4) |
15
(3) |
16
(1) |
|
17
|
18
(3) |
19
|
20
|
21
|
22
|
23
|
|
24
(5) |
25
|
26
|
27
|
28
|
29
|
30
|
|
31
(3) |
|
|
|
|
|
|
|
From: Keith M. <no...@so...> - 2016-07-31 19:07:57
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The tag, mingwrt-3.22.1-release has been created
at 2bbfdee6ae9611a573a7e6e30f636e32b170c4c2 (commit)
- Log -----------------------------------------------------------------
commit 2bbfdee6ae9611a573a7e6e30f636e32b170c4c2
Author: Keith Marshall <kei...@us...>
Date: Sun Jul 31 18:13:53 2016 +0100
Prepare and tag all files for release of mingwrt-3.22.1.
-----------------------------------------------------------------------
hooks/post-receive
--
Repository: mingw-org-wsl
|
|
From: Keith M. <no...@so...> - 2016-07-31 19:07:55
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The branch, legacy has been updated
via 192ced79957109f4c49d72a8b846470d0e1270d2 (commit)
via 2bbfdee6ae9611a573a7e6e30f636e32b170c4c2 (commit)
via 9dfbd74133cf492252223f82f9887a7bd2b6eba6 (commit)
from 76be37ae450b3e24c2deda9348954b79c2291b03 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/mingw-org-wsl/ci/192ced79957109f4c49d72a8b846470d0e1270d2/
commit 192ced79957109f4c49d72a8b846470d0e1270d2
Author: Keith Marshall <kei...@us...>
Date: Sun Jul 31 18:14:24 2016 +0100
Added tag mingwrt-3.22.1-release for changeset c42986e81e9c
diff --git a/.hgtags b/.hgtags
index dbe562a..66dcc91 100644
--- a/.hgtags
+++ b/.hgtags
@@ -5,3 +5,4 @@ ef4db1b16b1422d4eb06cbe47f0f3c08e11d2f8d w32api-3.18-release
ef4db1b16b1422d4eb06cbe47f0f3c08e11d2f8d mingwrt-3.22-release
b1ff7f59f95a8334245c7e7c07795514e55b6921 mingwrt-3.22-release
cd1bc4d018548b498e0e74e52bea935b0904d1f2 w32api-3.18.1-release
+c42986e81e9ce0a5fcf8f09012f9d0f038032bac mingwrt-3.22.1-release
https://sf.net/p/mingw/mingw-org-wsl/ci/2bbfdee6ae9611a573a7e6e30f636e32b170c4c2/
commit 2bbfdee6ae9611a573a7e6e30f636e32b170c4c2
Author: Keith Marshall <kei...@us...>
Date: Sun Jul 31 18:13:53 2016 +0100
Prepare and tag all files for release of mingwrt-3.22.1.
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index 88e1dd1..a5caa09 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,5 +1,12 @@
2016-07-31 Keith Marshall <kei...@us...>
+ Prepare and tag all files for release of mingwrt-3.22.1.
+
+ * configure.ac (AC_INIT): Adjust package version number; append
+ patch level identification.
+
+2016-07-31 Keith Marshall <kei...@us...>
+
Interim workaround for issue [#2306].
* mingwex/math/powl.c: Tidy layout; correct indentation.
diff --git a/mingwrt/configure.ac b/mingwrt/configure.ac
index 598f2b2..d33b540 100644
--- a/mingwrt/configure.ac
+++ b/mingwrt/configure.ac
@@ -29,7 +29,7 @@
# DEALINGS IN THE SOFTWARE.
#
AC_PREREQ([2.64])
- AC_INIT([MinGW C Runtime],[3.22],[http://mingw.org/Reporting_Bugs],[mingwrt])
+ AC_INIT([MinGW C Runtime],[3.22.1],[http://mingw.org/Reporting_Bugs],[mingwrt])
AC_PREFIX_DEFAULT([/mingw])
AC_CONFIG_SRCDIR([include/_mingw.h.in])
https://sf.net/p/mingw/mingw-org-wsl/ci/9dfbd74133cf492252223f82f9887a7bd2b6eba6/
commit 9dfbd74133cf492252223f82f9887a7bd2b6eba6
Author: Keith Marshall <kei...@us...>
Date: Sun Jul 31 16:44:59 2016 +0100
Interim workaround for issue [#2306].
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index 6378264..88e1dd1 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,3 +1,13 @@
+2016-07-31 Keith Marshall <kei...@us...>
+
+ Interim workaround for issue [#2306].
+
+ * mingwex/math/powl.c: Tidy layout; correct indentation.
+ (powl, reducl): Use ISO-C declaration syntax; K&R is obsolescent.
+ (powl) [OVERFLOW]: Correct representation of return value, using...
+ (INFINITYL): ...this manifest constant value, instead of...
+ (MAXNUML): ...this.
+
2016-07-24 Keith Marshall <kei...@us...>
Optimize printf() field width accumulation function.
diff --git a/mingwrt/mingwex/math/powl.c b/mingwrt/mingwex/math/powl.c
index b425d9e..03d7122 100644
--- a/mingwrt/mingwex/math/powl.c
+++ b/mingwrt/mingwex/math/powl.c
@@ -1,6 +1,7 @@
-/* powl.c
+/*
+ * powl.c
*
- * Power function, long double precision
+ * Power function, long double precision
*
*
*
@@ -445,334 +446,333 @@ __fast_ldexpl (long double x, int expn)
#endif
-long double powl( x, y )
-long double x, y;
+long double powl( long double x, long double y )
{
-/* double F, Fa, Fb, G, Ga, Gb, H, Ha, Hb */
-int i, nflg, iyflg, yoddint;
-long e;
+ /* double F, Fa, Fb, G, Ga, Gb, H, Ha, Hb */
+ int i, nflg, iyflg, yoddint;
+ long e;
-if( y == 0.0L )
- return( 1.0L );
+ if( y == 0.0L )
+ return( 1.0L );
#ifdef NANS
-if( isnanl(x) )
- {
- _SET_ERRNO (EDOM);
- return( x );
- }
-if( isnanl(y) )
- {
- _SET_ERRNO (EDOM);
- return( y );
- }
+ if( isnanl(x) )
+ {
+ _SET_ERRNO (EDOM);
+ return( x );
+ }
+ if( isnanl(y) )
+ {
+ _SET_ERRNO (EDOM);
+ return( y );
+ }
#endif
-if( y == 1.0L )
- return( x );
+ if( y == 1.0L )
+ return( x );
-if( isinfl(y) && (x == -1.0L || x == 1.0L) )
- return( y );
+ if( isinfl(y) && (x == -1.0L || x == 1.0L) )
+ return( y );
-if( x == 1.0L )
- return( 1.0L );
+ if( x == 1.0L )
+ return( 1.0L );
-if( y >= MAXNUML )
- {
- _SET_ERRNO (ERANGE);
+ if( y >= MAXNUML )
+ {
+ _SET_ERRNO (ERANGE);
#ifdef INFINITIES
- if( x > 1.0L )
- return( INFINITYL );
+ if( x > 1.0L )
+ return( INFINITYL );
#else
- if( x > 1.0L )
- return( MAXNUML );
+ if( x > 1.0L )
+ return( MAXNUML );
#endif
- if( x > 0.0L && x < 1.0L )
- return( 0.0L );
+ if( x > 0.0L && x < 1.0L )
+ return( 0.0L );
#ifdef INFINITIES
- if( x < -1.0L )
- return( INFINITYL );
+ if( x < -1.0L )
+ return( INFINITYL );
#else
- if( x < -1.0L )
- return( MAXNUML );
+ if( x < -1.0L )
+ return( MAXNUML );
#endif
- if( x > -1.0L && x < 0.0L )
- return( 0.0L );
- }
-if( y <= -MAXNUML )
- {
- _SET_ERRNO (ERANGE);
- if( x > 1.0L )
- return( 0.0L );
+ if( x > -1.0L && x < 0.0L )
+ return( 0.0L );
+ }
+ if( y <= -MAXNUML )
+ {
+ _SET_ERRNO (ERANGE);
+ if( x > 1.0L )
+ return( 0.0L );
#ifdef INFINITIES
- if( x > 0.0L && x < 1.0L )
- return( INFINITYL );
+ if( x > 0.0L && x < 1.0L )
+ return( INFINITYL );
#else
- if( x > 0.0L && x < 1.0L )
- return( MAXNUML );
+ if( x > 0.0L && x < 1.0L )
+ return( MAXNUML );
#endif
- if( x < -1.0L )
- return( 0.0L );
+ if( x < -1.0L )
+ return( 0.0L );
#ifdef INFINITIES
- if( x > -1.0L && x < 0.0L )
- return( INFINITYL );
+ if( x > -1.0L && x < 0.0L )
+ return( INFINITYL );
#else
- if( x > -1.0L && x < 0.0L )
- return( MAXNUML );
+ if( x > -1.0L && x < 0.0L )
+ return( MAXNUML );
#endif
- }
-if( x >= MAXNUML )
- {
+ }
+ if( x >= MAXNUML )
+ {
#if INFINITIES
- if( y > 0.0L )
- return( INFINITYL );
+ if( y > 0.0L )
+ return( INFINITYL );
#else
- if( y > 0.0L )
- return( MAXNUML );
+ if( y > 0.0L )
+ return( MAXNUML );
#endif
- return( 0.0L );
- }
-
-w = floorl(y);
-/* Set iyflg to 1 if y is an integer. */
-iyflg = 0;
-if( w == y )
- iyflg = 1;
-
-/* Test for odd integer y. */
-yoddint = 0;
-if( iyflg )
- {
- ya = fabsl(y);
- ya = floorl(0.5L * ya);
- yb = 0.5L * fabsl(w);
- if( ya != yb )
- yoddint = 1;
- }
-
-if( x <= -MAXNUML )
- {
- if( y > 0.0L )
- {
+ return( 0.0L );
+ }
+
+ w = floorl(y);
+ /* Set iyflg to 1 if y is an integer. */
+ iyflg = 0;
+ if( w == y )
+ iyflg = 1;
+
+ /* Test for odd integer y. */
+ yoddint = 0;
+ if( iyflg )
+ {
+ ya = fabsl(y);
+ ya = floorl(0.5L * ya);
+ yb = 0.5L * fabsl(w);
+ if( ya != yb )
+ yoddint = 1;
+ }
+
+ if( x <= -MAXNUML )
+ {
+ if( y > 0.0L )
+ {
#ifdef INFINITIES
- if( yoddint )
- return( -INFINITYL );
- return( INFINITYL );
+ if( yoddint )
+ return( -INFINITYL );
+ return( INFINITYL );
#else
- if( yoddint )
- return( -MAXNUML );
- return( MAXNUML );
+ if( yoddint )
+ return( -MAXNUML );
+ return( MAXNUML );
#endif
- }
- if( y < 0.0L )
- {
+ }
+ if( y < 0.0L )
+ {
#ifdef MINUSZERO
- if( yoddint )
- return( NEGZEROL );
+ if( yoddint )
+ return( NEGZEROL );
#endif
- return( 0.0 );
- }
- }
-
-
-nflg = 0; /* flag = 1 if x<0 raised to integer power */
-if( x <= 0.0L )
- {
- if( x == 0.0L )
- {
- if( y < 0.0 )
- {
+ return( 0.0 );
+ }
+ }
+
+
+ nflg = 0; /* flag = 1 if x<0 raised to integer power */
+ if( x <= 0.0L )
+ {
+ if( x == 0.0L )
+ {
+ if( y < 0.0 )
+ {
#ifdef MINUSZERO
- if( signbitl(x) && yoddint )
- return( -INFINITYL );
+ if( signbitl(x) && yoddint )
+ return( -INFINITYL );
#endif
#ifdef INFINITIES
- return( INFINITYL );
+ return( INFINITYL );
#else
- return( MAXNUML );
+ return( MAXNUML );
#endif
- }
- if( y > 0.0 )
- {
+ }
+ if( y > 0.0 )
+ {
#ifdef MINUSZERO
- if( signbitl(x) && yoddint )
- return( NEGZEROL );
+ if( signbitl(x) && yoddint )
+ return( NEGZEROL );
#endif
- return( 0.0 );
- }
- if( y == 0.0L )
- return( 1.0L ); /* 0**0 */
- else
- return( 0.0L ); /* 0**y */
- }
- else
- {
- if( iyflg == 0 )
- { /* noninteger power of negative number */
- mtherr( fname, DOMAIN );
- _SET_ERRNO (EDOM);
+ return( 0.0 );
+ }
+ if( y == 0.0L )
+ return( 1.0L ); /* 0**0 */
+ else
+ return( 0.0L ); /* 0**y */
+ }
+ else
+ {
+ if( iyflg == 0 )
+ { /* noninteger power of negative number */
+ mtherr( fname, DOMAIN );
+ _SET_ERRNO (EDOM);
#ifdef NANS
- return(NANL);
+ return(NANL);
#else
- return(0.0L);
+ return(0.0L);
#endif
- }
- nflg = 1;
- }
- }
-
-/* Integer power of an integer. */
-
-if( iyflg )
- {
- i = w;
- w = floorl(x);
- if( (w == x) && (fabsl(y) < 32768.0) )
- {
- w = __powil( x, (int) y );
- return( w );
- }
- }
-
-
-if( nflg )
- x = fabsl(x);
-
-/* separate significand from exponent */
-x = frexpl( x, &i );
-e = i;
-
-/* find significand in antilog table A[] */
-i = 1;
-if( x <= douba(17) )
- i = 17;
-if( x <= douba(i+8) )
- i += 8;
-if( x <= douba(i+4) )
- i += 4;
-if( x <= douba(i+2) )
- i += 2;
-if( x >= douba(1) )
- i = -1;
-i += 1;
-
-
-/* Find (x - A[i])/A[i]
- * in order to compute log(x/A[i]):
- *
- * log(x) = log( a x/a ) = log(a) + log(x/a)
- *
- * log(x/a) = log(1+v), v = x/a - 1 = (x-a)/a
- */
-x -= douba(i);
-x -= doubb(i/2);
-x /= douba(i);
-
-
-/* rational approximation for log(1+v):
- *
- * log(1+v) = v - v**2/2 + v**3 P(v) / Q(v)
- */
-z = x*x;
-w = x * ( z * polevll( x, P, 3 ) / p1evll( x, Q, 3 ) );
-w = w - ldexpl( z, -1 ); /* w - 0.5 * z */
-
-/* Convert to base 2 logarithm:
- * multiply by log2(e) = 1 + LOG2EA
- */
-z = LOG2EA * w;
-z += w;
-z += LOG2EA * x;
-z += x;
-
-/* Compute exponent term of the base 2 logarithm. */
-w = -i;
-w = ldexpl( w, -LNXT ); /* divide by NXT */
-w += e;
-/* Now base 2 log of x is w + z. */
-
-/* Multiply base 2 log by y, in extended precision. */
-
-/* separate y into large part ya
- * and small part yb less than 1/NXT
- */
-ya = reducl(y);
-yb = y - ya;
-
-/* (w+z)(ya+yb)
- * = w*ya + w*yb + z*y
- */
-F = z * y + w * yb;
-Fa = reducl(F);
-Fb = F - Fa;
-
-G = Fa + w * ya;
-Ga = reducl(G);
-Gb = G - Ga;
-
-H = Fb + Gb;
-Ha = reducl(H);
-w = ldexpl( Ga + Ha, LNXT );
-
-/* Test the power of 2 for overflow */
-if( w > MEXP )
- {
- _SET_ERRNO (ERANGE);
- mtherr( fname, OVERFLOW );
- return( MAXNUML );
- }
-
-if( w < MNEXP )
- {
- _SET_ERRNO (ERANGE);
- mtherr( fname, UNDERFLOW );
- return( 0.0L );
- }
-
-e = w;
-Hb = H - Ha;
-
-if( Hb > 0.0L )
- {
- e += 1;
- Hb -= (1.0L/NXT); /*0.0625L;*/
- }
-
-/* Now the product y * log2(x) = Hb + e/NXT.
- *
- * Compute base 2 exponential of Hb,
- * where -0.0625 <= Hb <= 0.
- */
-z = Hb * polevll( Hb, R, 6 ); /* z = 2**Hb - 1 */
-
-/* Express e/NXT as an integer plus a negative number of (1/NXT)ths.
- * Find lookup table entry for the fractional power of 2.
- */
-if( e < 0 )
- i = 0;
-else
- i = 1;
-i = e/NXT + i;
-e = NXT*i - e;
-w = douba( e );
-z = w * z; /* 2**-e * ( 1 + (2**Hb-1) ) */
-z = z + w;
-z = ldexpl( z, i ); /* multiply by integer power of 2 */
-
-if( nflg )
- {
-/* For negative x,
- * find out if the integer exponent
- * is odd or even.
- */
- w = ldexpl( y, -1 );
- w = floorl(w);
- w = ldexpl( w, 1 );
- if( w != y )
- z = -z; /* odd exponent */
- }
-
-return( z );
+ }
+ nflg = 1;
+ }
+ }
+
+ /* Integer power of an integer. */
+
+ if( iyflg )
+ {
+ i = w;
+ w = floorl(x);
+ if( (w == x) && (fabsl(y) < 32768.0) )
+ {
+ w = __powil( x, (int) y );
+ return( w );
+ }
+ }
+
+
+ if( nflg )
+ x = fabsl(x);
+
+ /* separate significand from exponent */
+ x = frexpl( x, &i );
+ e = i;
+
+ /* find significand in antilog table A[] */
+ i = 1;
+ if( x <= douba(17) )
+ i = 17;
+ if( x <= douba(i+8) )
+ i += 8;
+ if( x <= douba(i+4) )
+ i += 4;
+ if( x <= douba(i+2) )
+ i += 2;
+ if( x >= douba(1) )
+ i = -1;
+ i += 1;
+
+
+ /* Find (x - A[i])/A[i]
+ * in order to compute log(x/A[i]):
+ *
+ * log(x) = log( a x/a ) = log(a) + log(x/a)
+ *
+ * log(x/a) = log(1+v), v = x/a - 1 = (x-a)/a
+ */
+ x -= douba(i);
+ x -= doubb(i/2);
+ x /= douba(i);
+
+
+ /* rational approximation for log(1+v):
+ *
+ * log(1+v) = v - v**2/2 + v**3 P(v) / Q(v)
+ */
+ z = x*x;
+ w = x * ( z * polevll( x, P, 3 ) / p1evll( x, Q, 3 ) );
+ w = w - ldexpl( z, -1 ); /* w - 0.5 * z */
+
+ /* Convert to base 2 logarithm:
+ * multiply by log2(e) = 1 + LOG2EA
+ */
+ z = LOG2EA * w;
+ z += w;
+ z += LOG2EA * x;
+ z += x;
+
+ /* Compute exponent term of the base 2 logarithm. */
+ w = -i;
+ w = ldexpl( w, -LNXT ); /* divide by NXT */
+ w += e;
+ /* Now base 2 log of x is w + z. */
+
+ /* Multiply base 2 log by y, in extended precision. */
+
+ /* separate y into large part ya
+ * and small part yb less than 1/NXT
+ */
+ ya = reducl(y);
+ yb = y - ya;
+
+ /* (w+z)(ya+yb)
+ * = w*ya + w*yb + z*y
+ */
+ F = z * y + w * yb;
+ Fa = reducl(F);
+ Fb = F - Fa;
+
+ G = Fa + w * ya;
+ Ga = reducl(G);
+ Gb = G - Ga;
+
+ H = Fb + Gb;
+ Ha = reducl(H);
+ w = ldexpl( Ga + Ha, LNXT );
+
+ /* Test the power of 2 for overflow */
+ if( w > MEXP )
+ {
+ _SET_ERRNO (ERANGE);
+ mtherr( fname, OVERFLOW );
+ return( INFINITYL );
+ }
+
+ if( w < MNEXP )
+ {
+ _SET_ERRNO (ERANGE);
+ mtherr( fname, UNDERFLOW );
+ return( 0.0L );
+ }
+
+ e = w;
+ Hb = H - Ha;
+
+ if( Hb > 0.0L )
+ {
+ e += 1;
+ Hb -= (1.0L/NXT); /*0.0625L;*/
+ }
+
+ /* Now the product y * log2(x) = Hb + e/NXT.
+ *
+ * Compute base 2 exponential of Hb,
+ * where -0.0625 <= Hb <= 0.
+ */
+ z = Hb * polevll( Hb, R, 6 ); /* z = 2**Hb - 1 */
+
+ /* Express e/NXT as an integer plus a negative number of (1/NXT)ths.
+ * Find lookup table entry for the fractional power of 2.
+ */
+ if( e < 0 )
+ i = 0;
+ else
+ i = 1;
+ i = e/NXT + i;
+ e = NXT*i - e;
+ w = douba( e );
+ z = w * z; /* 2**-e * ( 1 + (2**Hb-1) ) */
+ z = z + w;
+ z = ldexpl( z, i ); /* multiply by integer power of 2 */
+
+ if( nflg )
+ {
+ /* For negative x,
+ * find out if the integer exponent
+ * is odd or even.
+ */
+ w = ldexpl( y, -1 );
+ w = floorl(w);
+ w = ldexpl( w, 1 );
+ if( w != y )
+ z = -z; /* odd exponent */
+ }
+
+ return( z );
}
static __inline__ long double
@@ -786,18 +786,18 @@ __convert_inf_to_maxnum(long double x)
/* Find a multiple of 1/NXT that is within 1/NXT of x. */
-static __inline__ long double reducl(x)
-long double x;
+static __inline__ long double reducl( long double x )
{
-long double t;
-
-/* If the call to ldexpl overflows, set it to MAXNUML.
- This avoids Inf - Inf = Nan result when calculating the 'small'
- part of a reduction. Instead, the small part becomes Inf,
- causing under/overflow when adding it to the 'large' part.
- There must be a cleaner way of doing this. */
-t = __convert_inf_to_maxnum (ldexpl( x, LNXT ));
-t = floorl( t );
-t = ldexpl( t, -LNXT );
-return(t);
+ long double t;
+
+ /* If the call to ldexpl overflows, set it to MAXNUML.
+ * This avoids Inf - Inf = Nan result when calculating the 'small'
+ * part of a reduction. Instead, the small part becomes Inf,
+ * causing under/overflow when adding it to the 'large' part.
+ * There must be a cleaner way of doing this.
+ */
+ t = __convert_inf_to_maxnum (ldexpl( x, LNXT ));
+ t = floorl( t );
+ t = ldexpl( t, -LNXT );
+ return(t);
}
-----------------------------------------------------------------------
Summary of changes:
.hgtags | 1 +
mingwrt/ChangeLog | 17 ++
mingwrt/configure.ac | 2 +-
mingwrt/mingwex/math/powl.c | 608 +++++++++++++++++++++---------------------
4 files changed, 323 insertions(+), 305 deletions(-)
hooks/post-receive
--
Repository: mingw-org-wsl
|
|
From: Keith M. <no...@so...> - 2016-07-31 18:48:49
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-dist".
The branch, master has been updated
via 489c8bcc0e856dda2c767d0b3aed32d617e6774b (commit)
from 5f44598116a4c643ec72907631d4df92fa2bf070 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/mingw-dist/ci/489c8bcc0e856dda2c767d0b3aed32d617e6774b/
commit 489c8bcc0e856dda2c767d0b3aed32d617e6774b
Author: Keith Marshall <kei...@us...>
Date: Sun Jul 31 19:45:25 2016 +0100
Publish mingwrt-3.22.1.
diff --git a/ChangeLog b/ChangeLog
index 4d5406c..73fac1d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,17 @@
+2016-07-31 Keith Marshall <kei...@us...>
+
+ Publish mingwrt-3.22.1.
+
+ * mingw32/mingw32-runtime.xml (mingwrt-3.22.1-dev)
+ (mingwrt-3.22.1-dll mingwrt-3.22.1-lic mingwrt-3.22.1-man): Add
+ component package release records.
+ * common/issue.log mingw32/issue.log: Update accordingly.
+
2016-07-24 Keith Marshall <kei...@us...>
Publish w32api-3.18.1.
* mingw32/mingw32-runtime.xml (w32api-3.18.1-dev): Add release record.
-
* common/issue.log mingw32/issue.log: Update accordingly.
2016-07-15 Cesar Strauss <ces...@gm...>
diff --git a/common/issue.log b/common/issue.log
index 5f678cf..9c223ab 100644
--- a/common/issue.log
+++ b/common/issue.log
@@ -23,6 +23,6 @@
# MinGW Project, accept liability for any damages, however caused,
# arising from the use of this software.
#
- c6a9068e183254c0b930ac6e1a70fd81743dc212 2016072401 package-list.xml
+ c6a9068e183254c0b930ac6e1a70fd81743dc212 2016073100 package-list.xml
#
# $RCSfile$: end of file
diff --git a/mingw32/issue.log b/mingw32/issue.log
index 72efdf4..b8d38e1 100644
--- a/mingw32/issue.log
+++ b/mingw32/issue.log
@@ -50,11 +50,11 @@
cd33ad74b608bce33ea297801253e6efbafce27c 2012073100 mingw32-mingw-utils.xml
8d3a7125499a85916b53efb4c897ac907e2490ab 2015082000 mingw32-mpc.xml
8a11de23e7a89fd11436bdf162ef90712f30101b 2013102300 mingw32-mpfr.xml
- 56f4032058328cacfabe64fa46706d72c2fa931e 2016072400 mingw32-package-list.xml
+ 56f4032058328cacfabe64fa46706d72c2fa931e 2016073100 mingw32-package-list.xml
1f15439ee5f66ec22321c7aa853559b6f8f7172f 2015090800 mingw32-pexports.xml
cdb2a4dbedfc9f2cdfc92340f6f9b12da061c0d9 2012073100 mingw32-popt.xml
0a5d210a13d073104fb74b4f9c081674c9745cd1 2013090900 mingw32-pthreads-w32.xml
- c14679e51cb0d73f85ff23739085e5db44e1f328 2016072400 mingw32-runtime.xml
+ 61adccdf6a1167fd46f6c066e776c661410d5eb2 2016073100 mingw32-runtime.xml
12acb32f80e49c893167cfae82e448dd766d49bb 2013070100 mingw32-wsl-candidate.xml
247a02890f109a5fe4996fde4af9d576dca3cd1e 2012073100 mingw32-xz.xml
c223ecd7389eb02948b54f8959d595cf608306a7 2013101200 mingw32-zlib.xml
diff --git a/mingw32/mingw32-runtime.xml b/mingw32/mingw32-runtime.xml
index 19a75b3..da4e41e 100644
--- a/mingw32/mingw32-runtime.xml
+++ b/mingw32/mingw32-runtime.xml
@@ -30,6 +30,7 @@
<component class="dev">
<requires eq="mingwrt-%-mingw32-dll.tar" />
<release tarname="mingwrt-3.22-mingw32-dev.tar.xz" />
+ <release tarname="mingwrt-3.22.1-mingw32-dev.tar.xz" />
<release tarname="mingwrt-3.21-mingw32-dev.tar.xz" />
<release tarname="mingwrt-3.21.1-mingw32-dev.tar.xz" />
<release tarname="mingwrt-3.20-2-mingw32-dev.tar.lzma">
@@ -52,6 +53,7 @@
<component class="dll">
<release tarname="mingwrt-3.22-mingw32-dll.tar.xz" />
+ <release tarname="mingwrt-3.22.1-mingw32-dll.tar.xz" />
<release tarname="mingwrt-3.21-mingw32-dll.tar.xz" />
<release tarname="mingwrt-3.21.1-mingw32-dll.tar.xz" />
<release tarname="mingwrt-3.20-2-mingw32-dll.tar.lzma" />
@@ -62,6 +64,7 @@
<component class="lic">
<release tarname="mingwrt-3.22-mingw32-lic.tar.xz" />
+ <release tarname="mingwrt-3.22.1-mingw32-lic.tar.xz" />
<release tarname="mingwrt-3.21-mingw32-lic.tar.xz" />
<release tarname="mingwrt-3.21.1-mingw32-lic.tar.xz" />
<release tarname="mingwrt-3.20-2-mingw32-lic.tar.lzma">
@@ -84,6 +87,7 @@
<component class="man">
<release tarname="mingwrt-3.22-mingw32-man.tar.xz" />
+ <release tarname="mingwrt-3.22.1-mingw32-man.tar.xz" />
<release tarname="mingwrt-3.21-mingw32-man.tar.xz" />
<release tarname="mingwrt-3.21.1-mingw32-man.tar.xz" />
<release tarname="mingwrt-3.20-2-mingw32-man.tar.lzma">
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 10 +++++++++-
common/issue.log | 2 +-
mingw32/issue.log | 4 ++--
mingw32/mingw32-runtime.xml | 4 ++++
4 files changed, 16 insertions(+), 4 deletions(-)
hooks/post-receive
--
Repository: mingw-dist
|
|
From: Keith M. <no...@so...> - 2016-07-24 21:09:11
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-dist".
The branch, master has been updated
via 5f44598116a4c643ec72907631d4df92fa2bf070 (commit)
from dd97453226061478342381dab317d6aac4b824b9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/mingw-dist/ci/5f44598116a4c643ec72907631d4df92fa2bf070/
commit 5f44598116a4c643ec72907631d4df92fa2bf070
Author: Keith Marshall <kei...@us...>
Date: Sun Jul 24 22:08:55 2016 +0100
Publish w32api-3.18.1.
diff --git a/ChangeLog b/ChangeLog
index a25e267..4d5406c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2016-07-24 Keith Marshall <kei...@us...>
+
+ Publish w32api-3.18.1.
+
+ * mingw32/mingw32-runtime.xml (w32api-3.18.1-dev): Add release record.
+
+ * common/issue.log mingw32/issue.log: Update accordingly.
+
2016-07-15 Cesar Strauss <ces...@gm...>
Upgrade msys-core to version 1.0.19.
diff --git a/common/issue.log b/common/issue.log
index 7d38e6e..5f678cf 100644
--- a/common/issue.log
+++ b/common/issue.log
@@ -23,6 +23,6 @@
# MinGW Project, accept liability for any damages, however caused,
# arising from the use of this software.
#
- c6a9068e183254c0b930ac6e1a70fd81743dc212 2016071502 package-list.xml
+ c6a9068e183254c0b930ac6e1a70fd81743dc212 2016072401 package-list.xml
#
# $RCSfile$: end of file
diff --git a/mingw32/issue.log b/mingw32/issue.log
index 679d2cd..72efdf4 100644
--- a/mingw32/issue.log
+++ b/mingw32/issue.log
@@ -50,11 +50,11 @@
cd33ad74b608bce33ea297801253e6efbafce27c 2012073100 mingw32-mingw-utils.xml
8d3a7125499a85916b53efb4c897ac907e2490ab 2015082000 mingw32-mpc.xml
8a11de23e7a89fd11436bdf162ef90712f30101b 2013102300 mingw32-mpfr.xml
- 56f4032058328cacfabe64fa46706d72c2fa931e 2016071500 mingw32-package-list.xml
+ 56f4032058328cacfabe64fa46706d72c2fa931e 2016072400 mingw32-package-list.xml
1f15439ee5f66ec22321c7aa853559b6f8f7172f 2015090800 mingw32-pexports.xml
cdb2a4dbedfc9f2cdfc92340f6f9b12da061c0d9 2012073100 mingw32-popt.xml
0a5d210a13d073104fb74b4f9c081674c9745cd1 2013090900 mingw32-pthreads-w32.xml
- 73cfdf0a26055e9333b48f71c39567d678fa48cc 2016071500 mingw32-runtime.xml
+ c14679e51cb0d73f85ff23739085e5db44e1f328 2016072400 mingw32-runtime.xml
12acb32f80e49c893167cfae82e448dd766d49bb 2013070100 mingw32-wsl-candidate.xml
247a02890f109a5fe4996fde4af9d576dca3cd1e 2012073100 mingw32-xz.xml
c223ecd7389eb02948b54f8959d595cf608306a7 2013101200 mingw32-zlib.xml
diff --git a/mingw32/mingw32-runtime.xml b/mingw32/mingw32-runtime.xml
index 1a88484..19a75b3 100644
--- a/mingw32/mingw32-runtime.xml
+++ b/mingw32/mingw32-runtime.xml
@@ -124,6 +124,7 @@
<licence tarname="w32api-%-mingw32-dev.tar.%" />
<component class="dev">
+ <release tarname="w32api-3.18.1-mingw32-dev.tar.xz" />
<release tarname="w32api-3.18-mingw32-dev.tar.xz" />
<release tarname="w32api-3.17-2-mingw32-dev.tar.lzma" />
<release tarname="w32api-3.17-1-mingw32-dev.tar.lzma" />
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 8 ++++++++
common/issue.log | 2 +-
mingw32/issue.log | 4 ++--
mingw32/mingw32-runtime.xml | 1 +
4 files changed, 12 insertions(+), 3 deletions(-)
hooks/post-receive
--
Repository: mingw-dist
|
|
From: Keith M. <no...@so...> - 2016-07-24 15:42:59
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The branch, legacy has been updated
via 76be37ae450b3e24c2deda9348954b79c2291b03 (commit)
from 7a511c73f74aae29157a66c02304be61844606d4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/mingw-org-wsl/ci/76be37ae450b3e24c2deda9348954b79c2291b03/
commit 76be37ae450b3e24c2deda9348954b79c2291b03
Author: Keith Marshall <kei...@us...>
Date: Sun Jul 24 16:35:49 2016 +0100
Optimize printf() field width accumulation function.
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index 7347834..6378264 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,3 +1,11 @@
+2016-07-24 Keith Marshall <kei...@us...>
+
+ Optimize printf() field width accumulation function.
+
+ * mingwex/stdio/pformat.c (__imul10plus): Omit multiply by ten on
+ already accumulated zero total; it is unnecessary, since ten times
+ zero is still zero.
+
2016-07-22 Keith Marshall <kei...@us...>
Fix printf() field width parsing regression issue [#2309].
diff --git a/mingwrt/mingwex/stdio/pformat.c b/mingwrt/mingwex/stdio/pformat.c
index a40ef02..593e712 100644
--- a/mingwrt/mingwex/stdio/pformat.c
+++ b/mingwrt/mingwex/stdio/pformat.c
@@ -1758,7 +1758,7 @@ static __pformat_inline__
* able to override an initial PFORMAT_IGNORE (-1) setting).
*/
int __pformat_imul10plus( int total, int units )
-{ return units + ((total >= 0) ? ((total + (total << 2)) << 1) : 0); }
+{ return units + ((total > 0) ? ((total + (total << 2)) << 1) : 0); }
static
int __pformat_read_arg_index( const char **fmt )
-----------------------------------------------------------------------
Summary of changes:
mingwrt/ChangeLog | 8 ++++++++
mingwrt/mingwex/stdio/pformat.c | 2 +-
2 files changed, 9 insertions(+), 1 deletions(-)
hooks/post-receive
--
Repository: mingw-org-wsl
|
|
From: Keith M. <no...@so...> - 2016-07-24 14:55:59
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The branch, 5.0-active has been updated
via 72b00095f9eb8196e3136a9bb1214e0052e05af8 (commit)
from 7113e04924002634443c4a300ecb13ab14abaf1e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/mingw-org-wsl/ci/72b00095f9eb8196e3136a9bb1214e0052e05af8/
commit 72b00095f9eb8196e3136a9bb1214e0052e05af8
Author: Keith Marshall <kei...@us...>
Date: Tue Jul 19 11:02:00 2016 +0100
Update install-sh to match mingw.org/build-aux package.
diff --git a/.gitignore b/.gitignore
index 6c29be6..f611c50 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,8 +4,10 @@ configure
autom4te.cache
mingwrt/aclocal.m4
mingwrt/VERSION.m4
+mingwrt/install-sh
w32api/aclocal.m4
w32api/VERSION.m4
+w32api/install-sh
config.status
missing
depcomp
diff --git a/.hgignore b/.hgignore
index de18271..6789495 100644
--- a/.hgignore
+++ b/.hgignore
@@ -3,7 +3,7 @@ build/
Makefile
configure
autom4te.cache/
-{mingwrt,w32api}/{aclocal,VERSION}.m4
+{mingwrt,w32api}/{{aclocal,VERSION}.m4,install-sh}
config.status
**.swp
**.log
diff --git a/ChangeLog b/ChangeLog
index c420f58..ee3de1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-07-19 Keith Marshall <kei...@us...>
+
+ Update install-sh to match mingw.org/build-aux package.
+
+ * install-sh: New file; copied from build-aux package, it replaces...
+ * mingwrt/install-sh w32api/install-sh: ...both of these.
+
2016-07-17 Keith Marshall <kei...@us...>
Eliminate redundant configuration files.
diff --git a/configure.ac b/configure.ac
index 193b7c9..bdf0a4a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -30,7 +30,6 @@
#
AC_PREREQ([2.64])
AC_INIT([MinGW System Libraries],[__VERSION__],[__BUG_REPORT_URL__],[wsl])
- AC_CONFIG_AUX_DIR([mingwrt])
AC_PROG_MKDIR_P
AC_PATH_PROG([LN],[ln],[ln])
diff --git a/install-sh b/install-sh
new file mode 100755
index 0000000..a5897de
--- /dev/null
+++ b/install-sh
@@ -0,0 +1,519 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2006-12-25.00
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# 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
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" "" $nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+ doit_exec=exec
+else
+ doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+ test "$posix_glob" != "?" || {
+ if (set -f) 2>/dev/null; then
+ posix_glob=
+ else
+ posix_glob=:
+ fi
+ }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+ --help display this help and exit.
+ --version display version info and exit.
+
+ -c (ignored)
+ -C install only if different (preserve the last data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -s $stripprog installed files.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+ case $1 in
+ -c) ;;
+
+ -C) copy_on_change=true;;
+
+ -d) dir_arg=true;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) mode=$2
+ case $mode in
+ *' '* | *' '* | *'
+'* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
+
+ -o) chowncmd="$chownprog $2"
+ shift;;
+
+ -s) stripcmd=$stripprog;;
+
+ -t) dst_arg=$2
+ shift;;
+
+ -T) no_target_directory=true;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ --) shift
+ break;;
+
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
+
+ *) break;;
+ esac
+ shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ done
+fi
+
+if test $# -eq 0; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call `install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+if test -z "$dir_arg"; then
+ trap '(exit $?); exit' 1 2 13 15
+
+ # Set umask so as not to create temps with too-generous modes.
+ # However, 'strip' requires both read and write access to temps.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
+
+for src
+do
+ # Protect names starting with `-'.
+ case $src in
+ -*) src=./$src;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
+ else
+
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dst_arg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+
+ dst=$dst_arg
+ # Protect names starting with `-'.
+ case $dst in
+ -*) dst=./$dst;;
+ esac
+
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
+ fi
+ dstdir=$dst
+ dst=$dstdir/`basename "$src"`
+ dstdir_status=0
+ else
+ # Prefer dirname, but fall back on a substitute if dirname fails.
+ dstdir=`
+ (dirname "$dst") 2>/dev/null ||
+ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$dst" : 'X\(//\)[^/]' \| \
+ X"$dst" : 'X\(//\)$' \| \
+ X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+ echo X"$dst" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'
+ `
+
+ test -d "$dstdir"
+ dstdir_status=$?
+ fi
+ fi
+
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writeable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
+ esac
+
+ if
+ $posix_mkdir && (
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else
+
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.
+
+ case $dstdir in
+ /*) prefix='/';;
+ -*) prefix='./';;
+ *) prefix='';;
+ esac
+
+ eval "$initialize_posix_glob"
+
+ oIFS=$IFS
+ IFS=/
+ $posix_glob set -f
+ set fnord $dstdir
+ shift
+ $posix_glob set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+ test -z "$d" && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
+ fi
+ fi
+ fi
+
+ if test -n "$dir_arg"; then
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+ else
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+ # Copy the file name to the temp name.
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+ eval "$initialize_posix_glob" &&
+ $posix_glob set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ $posix_glob set +f &&
+
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index ed41e0f..4b712b4 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,3 +1,10 @@
+2016-07-19 Keith Marshall <kei...@us...>
+
+ Update install-sh to match mingw.org/build-aux package.
+
+ * install-sh: Delete it; use version in parent directory instead,
+ recreating local copy, (as symlink, if supported), on demand.
+
2016-07-17 Keith Marshall <kei...@us...>
Eliminate redundant configuration files.
diff --git a/mingwrt/install-sh b/mingwrt/install-sh
deleted file mode 100755
index ab370a2..0000000
--- a/mingwrt/install-sh
+++ /dev/null
@@ -1,253 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile
- ([ -f $dstdir/$dstfile ] &&
- $doit $mvcmd $dstdir/$dstfile $dstdir/$dstfile.$$ );
- exec $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/w32api/ChangeLog b/w32api/ChangeLog
index 91707ab..2566dd7 100644
--- a/w32api/ChangeLog
+++ b/w32api/ChangeLog
@@ -1,3 +1,10 @@
+2016-07-19 Keith Marshall <kei...@us...>
+
+ Update install-sh to match mingw.org/build-aux package.
+
+ * install-sh: Delete it; use version in parent directory instead,
+ recreating local copy, (as symlink, if supported), on demand.
+
2016-07-17 Keith Marshall <kei...@us...>
Eliminate redundant configuration files.
diff --git a/w32api/install-sh b/w32api/install-sh
deleted file mode 100755
index 594a4ed..0000000
--- a/w32api/install-sh
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
-----------------------------------------------------------------------
Summary of changes:
.gitignore | 2 +
.hgignore | 2 +-
ChangeLog | 7 +
configure.ac | 1 -
install-sh | 519 ++++++++++++++++++++++++++++++++++++++++++++++++++++
mingwrt/ChangeLog | 7 +
mingwrt/install-sh | 253 -------------------------
w32api/ChangeLog | 7 +
w32api/install-sh | 251 -------------------------
9 files changed, 543 insertions(+), 506 deletions(-)
create mode 100755 install-sh
delete mode 100755 mingwrt/install-sh
delete mode 100755 w32api/install-sh
hooks/post-receive
--
Repository: mingw-org-wsl
|
|
From: Keith M. <no...@so...> - 2016-07-24 14:55:56
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The tag, w32api-3.18.1-release has been created
at 68c86dc87382d22d14eea408830e062a78d432ef (commit)
- Log -----------------------------------------------------------------
commit 68c86dc87382d22d14eea408830e062a78d432ef
Author: Keith Marshall <kei...@us...>
Date: Thu Jul 21 22:46:35 2016 +0100
Prepare and tag all files for release of w32api-3.18.1
-----------------------------------------------------------------------
hooks/post-receive
--
Repository: mingw-org-wsl
|
|
From: Keith M. <no...@so...> - 2016-07-24 14:55:53
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The branch, legacy has been updated
via 7a511c73f74aae29157a66c02304be61844606d4 (commit)
via 30a7c2e28639a2c18a02f11b5d333e7b9d77125a (commit)
via 68c86dc87382d22d14eea408830e062a78d432ef (commit)
via 6313c67b9e29285e06cf02b4fee8b29fd81f6df6 (commit)
from 5da8a5e0f73083024b3dfb3de79966ea55ef553a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/mingw-org-wsl/ci/7a511c73f74aae29157a66c02304be61844606d4/
commit 7a511c73f74aae29157a66c02304be61844606d4
Author: Keith Marshall <kei...@us...>
Date: Fri Jul 22 18:33:42 2016 +0100
Fix printf() field width parsing regression issue [#2309].
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index 033c55d..7347834 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,3 +1,12 @@
+2016-07-22 Keith Marshall <kei...@us...>
+
+ Fix printf() field width parsing regression issue [#2309].
+
+ * mingwex/stdio/pformat.c (__imul10plus): Coerce any accumulated
+ negative total to zero; the only negative value to be handled is...
+ (PFORMAT_IGNORE): ...this; it ceases to be applicable, on first call
+ to __imul10plus(), to accumulate field width or precision.
+
2016-07-17 Keith Marshall <kei...@us...>
Correct source package omission of msvcrt-xref subdirectory.
diff --git a/mingwrt/mingwex/stdio/pformat.c b/mingwrt/mingwex/stdio/pformat.c
index 9354e30..a40ef02 100644
--- a/mingwrt/mingwex/stdio/pformat.c
+++ b/mingwrt/mingwex/stdio/pformat.c
@@ -1752,10 +1752,13 @@ void __pformat_xldouble( long double x, __pformat_t *stream )
static __pformat_inline__
/* Inline helper to accumulate a running total of successive
* decimal digits, optimized to use bitwise shifts to multiply
- * the total of more significant digits by ten.
+ * the total of more significant digits by ten; (note that we
+ * coerce negative totals to zero, since this implementation
+ * never needs to accumulate negative values, but it must be
+ * able to override an initial PFORMAT_IGNORE (-1) setting).
*/
int __pformat_imul10plus( int total, int units )
-{ return units + ((total == 0) ? 0 : ((total + (total << 2)) << 1)); }
+{ return units + ((total >= 0) ? ((total + (total << 2)) << 1) : 0); }
static
int __pformat_read_arg_index( const char **fmt )
@@ -3110,21 +3113,18 @@ int __pformat( int flags, void *dest, int max, const char *fmt, va_list args )
if( (state < PFORMAT_END) && isdigit( c ) )
{
if( state == PFORMAT_INIT )
- /*
- * Initial digits explicitly relate to field width...
+ /* Initial digits explicitly relate to field width...
*/
state = PFORMAT_SET_WIDTH;
else if( state == PFORMAT_GET_PRECISION )
- /*
- * while those following a precision indicator
+ /* while those following a precision indicator
* explicitly relate to precision.
*/
state = PFORMAT_SET_PRECISION;
if( width_spec )
- {
- /* We are accepting a width or precision specification;
+ { /* We are accepting a width or precision specification;
* add the units value represented by the current digit,
* to ten times the value accumulated so far.
*/
@@ -3149,7 +3149,6 @@ int __pformat( int flags, void *dest, int max, const char *fmt, va_list args )
*/
__pformat_putc( c, &stream );
}
-
/* Clean up the resource pool, which was allocated for local processing of
* the passed-in argument vector in either sequential or random order.
*/
https://sf.net/p/mingw/mingw-org-wsl/ci/30a7c2e28639a2c18a02f11b5d333e7b9d77125a/
commit 30a7c2e28639a2c18a02f11b5d333e7b9d77125a
Author: Keith Marshall <kei...@us...>
Date: Thu Jul 21 22:50:10 2016 +0100
Added tag w32api-3.18.1-release for changeset cd1bc4d01854
diff --git a/.hgtags b/.hgtags
index 8c1a1ba..dbe562a 100644
--- a/.hgtags
+++ b/.hgtags
@@ -4,3 +4,4 @@ ef4db1b16b1422d4eb06cbe47f0f3c08e11d2f8d mingwrt-3.22-release
ef4db1b16b1422d4eb06cbe47f0f3c08e11d2f8d w32api-3.18-release
ef4db1b16b1422d4eb06cbe47f0f3c08e11d2f8d mingwrt-3.22-release
b1ff7f59f95a8334245c7e7c07795514e55b6921 mingwrt-3.22-release
+cd1bc4d018548b498e0e74e52bea935b0904d1f2 w32api-3.18.1-release
https://sf.net/p/mingw/mingw-org-wsl/ci/68c86dc87382d22d14eea408830e062a78d432ef/
commit 68c86dc87382d22d14eea408830e062a78d432ef
Author: Keith Marshall <kei...@us...>
Date: Thu Jul 21 22:46:35 2016 +0100
Prepare and tag all files for release of w32api-3.18.1
diff --git a/w32api/ChangeLog b/w32api/ChangeLog
index ae30f46..684c4a2 100644
--- a/w32api/ChangeLog
+++ b/w32api/ChangeLog
@@ -1,5 +1,11 @@
2016-07-21 Keith Marshall <kei...@us...>
+ Prepare and tag all files for release of w32api-3.18.1
+
+ * configure.ac (AC_INIT): Increment patch level to 3.18.1
+
+2016-07-21 Keith Marshall <kei...@us...>
+
Resolve improper macro expansion issue [#2307].
* include/ddk/winddk.h (__FILE_AM_BUFFERED, __FILE_RD_BUFFERED)
diff --git a/w32api/configure.ac b/w32api/configure.ac
index c3cc008..00c159c 100644
--- a/w32api/configure.ac
+++ b/w32api/configure.ac
@@ -29,7 +29,7 @@
# DEALINGS IN THE SOFTWARE.
#
AC_PREREQ([2.64])
- AC_INIT([MinGW Win32 API],[3.18],[http://mingw.org/Reporting_Bugs],[w32api])
+ AC_INIT([MinGW Win32 API],[3.18.1],[http://mingw.org/Reporting_Bugs],[w32api])
AC_PREFIX_DEFAULT([/mingw])
AC_CONFIG_SRCDIR([include/w32api.h.in])
https://sf.net/p/mingw/mingw-org-wsl/ci/6313c67b9e29285e06cf02b4fee8b29fd81f6df6/
commit 6313c67b9e29285e06cf02b4fee8b29fd81f6df6
Author: Keith Marshall <kei...@us...>
Date: Thu Jul 21 22:20:34 2016 +0100
Resolve improper macro expansion issue [#2307].
diff --git a/w32api/ChangeLog b/w32api/ChangeLog
index 076f248..ae30f46 100644
--- a/w32api/ChangeLog
+++ b/w32api/ChangeLog
@@ -1,3 +1,40 @@
+2016-07-21 Keith Marshall <kei...@us...>
+
+ Resolve improper macro expansion issue [#2307].
+
+ * include/ddk/winddk.h (__FILE_AM_BUFFERED, __FILE_RD_BUFFERED)
+ (__FILE_RW_BUFFERED): Redefine, encapsulating the expansion of each
+ dependent macro WITHIN the expansion of each of these; hence...
+
+ * include/ddk/ntdddisk.h (IOCTL_DISK_GET_DRIVE_GEOMETRY)
+ (IOCTL_DISK_FORMAT_TRACKS_EX, IOCTL_DISK_REASSIGN_BLOCKS)
+ (IOCTL_DISK_GET_MEDIA_TYPES, IOCTL_DISK_CONTROLLER_NUMBER)
+ (IOCTL_DISK_GET_DRIVE_LAYOUT, IOCTL_DISK_SET_DRIVE_LAYOUT)
+ (IOCTL_DISK_GET_PARTITION_INFO, IOCTL_DISK_SET_PARTITION_INFO)
+ (IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, IOCTL_DISK_UPDATE_DRIVE_SIZE)
+ (IOCTL_DISK_VERIFY, IOCTL_DISK_FORMAT_TRACKS, IOCTL_DISK_PERFORMANCE)
+ (IOCTL_DISK_CREATE_DISK, IOCTL_DISK_RESERVE, IOCTL_DISK_IS_WRITABLE)
+ (IOCTL_DISK_GET_PARTITION_INFO_EX, IOCTL_DISK_SET_PARTITION_INFO_EX)
+ (IOCTL_DISK_GET_CACHE_INFORMATION, IOCTL_DISK_SET_CACHE_INFORMATION)
+ (IOCTL_DISK_INTERNAL_SET_VERIFY, IOCTL_DISK_INTERNAL_CLEAR_VERIFY)
+ (IOCTL_DISK_GET_DRIVE_LAYOUT_EX, IOCTL_DISK_SET_DRIVE_LAYOUT_EX)
+ (IOCTL_DISK_GROW_PARTITION, IOCTL_DISK_DELETE_DRIVE_LAYOUT)
+ (IOCTL_DISK_GET_LENGTH_INFO, IOCTL_DISK_PERFORMANCE_OFF)
+ (IOCTL_DISK_CHECK_VERIFY, IOCTL_DISK_FIND_NEW_DEVICES)
+ (SMART_GET_VERSION, SMART_RCV_DRIVE_DATA, SMART_SEND_DRIVE_COMMAND):
+ ...adjust these dependent macro definitions accordingly.
+
+ * include/ddk/ntddstor.h (IOCTL_STORAGE_CHECK_VERIFY)
+ (IOCTL_STORAGE_CHECK_VERIFY2, IOCTL_STORAGE_MEDIA_REMOVAL)
+ (IOCTL_STORAGE_EJECTION_CONTROL, IOCTL_STORAGE_MCN_CONTROL)
+ (IOCTL_STORAGE_GET_DEVICE_NUMBER, IOCTL_STORAGE_PREDICT_FAILURE)
+ (IOCTL_STORAGE_GET_MEDIA_TYPES, IOCTL_STORAGE_GET_MEDIA_TYPES_EX)
+ (IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER, IOCTL_STORAGE_QUERY_PROPERTY)
+ (IOCTL_STORAGE_RELEASE, IOCTL_STORAGE_FIND_NEW_DEVICES)
+ (IOCTL_STORAGE_RESET_BUS, IOCTL_STORAGE_RESET_DEVICE)
+ (IOCTL_STORAGE_EJECT_MEDIA, IOCTL_STORAGE_LOAD_MEDIA)
+ (IOCTL_STORAGE_LOAD_MEDIA2, IOCTL_STORAGE_RESERVE): Likewise.
+
2016-07-14 Keith Marshall <kei...@us...>
Prepare and tag all files for release of w32api-3.18.
diff --git a/w32api/include/ddk/ntdddisk.h b/w32api/include/ddk/ntdddisk.h
index 76314f4..e82bea3 100644
--- a/w32api/include/ddk/ntdddisk.h
+++ b/w32api/include/ddk/ntdddisk.h
@@ -56,34 +56,34 @@
#define __IOCTL_DISK_(FN,M,A) CTL_CODE(IOCTL_DISK_BASE,(FN),(M),(A))
#define IOCTL_DISK_BASE FILE_TYPE_DISK
-#define IOCTL_DISK_GET_DRIVE_GEOMETRY __IOCTL_DISK_(0x0000,__FILE_AM_BUFFERED)
-#define IOCTL_DISK_GET_PARTITION_INFO __IOCTL_DISK_(0x0001,__FILE_RD_BUFFERED)
-#define IOCTL_DISK_SET_PARTITION_INFO __IOCTL_DISK_(0x0002,__FILE_RW_BUFFERED)
-#define IOCTL_DISK_GET_DRIVE_LAYOUT __IOCTL_DISK_(0x0003,__FILE_RD_BUFFERED)
-#define IOCTL_DISK_SET_DRIVE_LAYOUT __IOCTL_DISK_(0x0004,__FILE_RW_BUFFERED)
-#define IOCTL_DISK_VERIFY __IOCTL_DISK_(0x0005,__FILE_AM_BUFFERED)
-#define IOCTL_DISK_FORMAT_TRACKS __IOCTL_DISK_(0x0006,__FILE_RW_BUFFERED)
-#define IOCTL_DISK_REASSIGN_BLOCKS __IOCTL_DISK_(0x0007,__FILE_RW_BUFFERED)
-#define IOCTL_DISK_PERFORMANCE __IOCTL_DISK_(0x0008,__FILE_AM_BUFFERED)
-#define IOCTL_DISK_IS_WRITABLE __IOCTL_DISK_(0x0009,__FILE_AM_BUFFERED)
-#define IOCTL_DISK_FORMAT_TRACKS_EX __IOCTL_DISK_(0x000B,__FILE_RW_BUFFERED)
-#define IOCTL_DISK_GET_PARTITION_INFO_EX __IOCTL_DISK_(0x0012,__FILE_AM_BUFFERED)
-#define IOCTL_DISK_SET_PARTITION_INFO_EX __IOCTL_DISK_(0x0013,__FILE_RW_BUFFERED)
-#define IOCTL_DISK_GET_DRIVE_LAYOUT_EX __IOCTL_DISK_(0x0014,__FILE_AM_BUFFERED)
-#define IOCTL_DISK_SET_DRIVE_LAYOUT_EX __IOCTL_DISK_(0x0015,__FILE_RW_BUFFERED)
-#define IOCTL_DISK_CREATE_DISK __IOCTL_DISK_(0x0016,__FILE_RW_BUFFERED)
-#define IOCTL_DISK_GET_LENGTH_INFO __IOCTL_DISK_(0x0017,__FILE_RD_BUFFERED)
-#define IOCTL_DISK_PERFORMANCE_OFF __IOCTL_DISK_(0x0018,__FILE_AM_BUFFERED)
-#define IOCTL_DISK_GET_DRIVE_GEOMETRY_EX __IOCTL_DISK_(0x0028,__FILE_AM_BUFFERED)
-#define IOCTL_DISK_UPDATE_DRIVE_SIZE __IOCTL_DISK_(0x0032,__FILE_RW_BUFFERED)
-#define IOCTL_DISK_GROW_PARTITION __IOCTL_DISK_(0x0034,__FILE_RW_BUFFERED)
-#define IOCTL_DISK_GET_CACHE_INFORMATION __IOCTL_DISK_(0x0035,__FILE_RD_BUFFERED)
-#define IOCTL_DISK_SET_CACHE_INFORMATION __IOCTL_DISK_(0x0036,__FILE_RW_BUFFERED)
-#define IOCTL_DISK_DELETE_DRIVE_LAYOUT __IOCTL_DISK_(0x0040,__FILE_RW_BUFFERED)
-#define IOCTL_DISK_CHECK_VERIFY __IOCTL_DISK_(0x0200,__FILE_RD_BUFFERED)
-#define IOCTL_DISK_RESERVE __IOCTL_DISK_(0x0204,__FILE_RD_BUFFERED)
-#define IOCTL_DISK_FIND_NEW_DEVICES __IOCTL_DISK_(0x0206,__FILE_RD_BUFFERED)
-#define IOCTL_DISK_GET_MEDIA_TYPES __IOCTL_DISK_(0x0300,__FILE_AM_BUFFERED)
+#define IOCTL_DISK_GET_DRIVE_GEOMETRY __FILE_AM_BUFFERED(__IOCTL_DISK_,0x0000)
+#define IOCTL_DISK_GET_PARTITION_INFO __FILE_RD_BUFFERED(__IOCTL_DISK_,0x0001)
+#define IOCTL_DISK_SET_PARTITION_INFO __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0002)
+#define IOCTL_DISK_GET_DRIVE_LAYOUT __FILE_RD_BUFFERED(__IOCTL_DISK_,0x0003)
+#define IOCTL_DISK_SET_DRIVE_LAYOUT __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0004)
+#define IOCTL_DISK_VERIFY __FILE_AM_BUFFERED(__IOCTL_DISK_,0x0005)
+#define IOCTL_DISK_FORMAT_TRACKS __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0006)
+#define IOCTL_DISK_REASSIGN_BLOCKS __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0007)
+#define IOCTL_DISK_PERFORMANCE __FILE_AM_BUFFERED(__IOCTL_DISK_,0x0008)
+#define IOCTL_DISK_IS_WRITABLE __FILE_AM_BUFFERED(__IOCTL_DISK_,0x0009)
+#define IOCTL_DISK_FORMAT_TRACKS_EX __FILE_RW_BUFFERED(__IOCTL_DISK_,0x000B)
+#define IOCTL_DISK_GET_PARTITION_INFO_EX __FILE_AM_BUFFERED(__IOCTL_DISK_,0x0012)
+#define IOCTL_DISK_SET_PARTITION_INFO_EX __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0013)
+#define IOCTL_DISK_GET_DRIVE_LAYOUT_EX __FILE_AM_BUFFERED(__IOCTL_DISK_,0x0014)
+#define IOCTL_DISK_SET_DRIVE_LAYOUT_EX __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0015)
+#define IOCTL_DISK_CREATE_DISK __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0016)
+#define IOCTL_DISK_GET_LENGTH_INFO __FILE_RD_BUFFERED(__IOCTL_DISK_,0x0017)
+#define IOCTL_DISK_PERFORMANCE_OFF __FILE_AM_BUFFERED(__IOCTL_DISK_,0x0018)
+#define IOCTL_DISK_GET_DRIVE_GEOMETRY_EX __FILE_AM_BUFFERED(__IOCTL_DISK_,0x0028)
+#define IOCTL_DISK_UPDATE_DRIVE_SIZE __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0032)
+#define IOCTL_DISK_GROW_PARTITION __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0034)
+#define IOCTL_DISK_GET_CACHE_INFORMATION __FILE_RD_BUFFERED(__IOCTL_DISK_,0x0035)
+#define IOCTL_DISK_SET_CACHE_INFORMATION __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0036)
+#define IOCTL_DISK_DELETE_DRIVE_LAYOUT __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0040)
+#define IOCTL_DISK_CHECK_VERIFY __FILE_RD_BUFFERED(__IOCTL_DISK_,0x0200)
+#define IOCTL_DISK_RESERVE __FILE_RD_BUFFERED(__IOCTL_DISK_,0x0204)
+#define IOCTL_DISK_FIND_NEW_DEVICES __FILE_RD_BUFFERED(__IOCTL_DISK_,0x0206)
+#define IOCTL_DISK_GET_MEDIA_TYPES __FILE_AM_BUFFERED(__IOCTL_DISK_,0x0300)
enum
{ PARTITION_ENTRY_UNUSED = 0x00,
@@ -408,16 +408,16 @@ struct _DISK_GROW_PARTITION
*/
_BEGIN_C_DECLS
-#define DD_DISK_DEVICE_NAME "\\Device\\UNKNOWN"
-#define DD_DISK_DEVICE_NAME_U L"\\Device\\UNKNOWN"
+#define DD_DISK_DEVICE_NAME "\\Device\\UNKNOWN"
+#define DD_DISK_DEVICE_NAME_U L"\\Device\\UNKNOWN"
-#define IOCTL_DISK_CONTROLLER_NUMBER __IOCTL_DISK_(0x0011,__FILE_AM_BUFFERED)
-#define IOCTL_DISK_INTERNAL_SET_VERIFY __IOCTL_DISK_(0x0100,__FILE_AM_BUFFERED)
-#define IOCTL_DISK_INTERNAL_CLEAR_VERIFY __IOCTL_DISK_(0x0101,__FILE_AM_BUFFERED)
+#define IOCTL_DISK_CONTROLLER_NUMBER __FILE_AM_BUFFERED(__IOCTL_DISK_,0x0011)
+#define IOCTL_DISK_INTERNAL_SET_VERIFY __FILE_AM_BUFFERED(__IOCTL_DISK_,0x0100)
+#define IOCTL_DISK_INTERNAL_CLEAR_VERIFY __FILE_AM_BUFFERED(__IOCTL_DISK_,0x0101)
-#define SMART_GET_VERSION __IOCTL_DISK_(0x0020,__FILE_RD_BUFFERED)
-#define SMART_RCV_DRIVE_DATA __IOCTL_DISK_(0x0022,__FILE_RW_BUFFERED)
-#define SMART_SEND_DRIVE_COMMAND __IOCTL_DISK_(0x0021,__FILE_RW_BUFFERED)
+#define SMART_GET_VERSION __FILE_RD_BUFFERED(__IOCTL_DISK_,0x0020)
+#define SMART_RCV_DRIVE_DATA __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0022)
+#define SMART_SEND_DRIVE_COMMAND __FILE_RW_BUFFERED(__IOCTL_DISK_,0x0021)
#define IsFTPartition( PartitionType ) \
(((PartitionType) & PARTITION_NTFT) && IsRecognizedPartition(PartitionType))
diff --git a/w32api/include/ddk/ntddstor.h b/w32api/include/ddk/ntddstor.h
index 59fdb86..724ad4f 100644
--- a/w32api/include/ddk/ntddstor.h
+++ b/w32api/include/ddk/ntddstor.h
@@ -50,28 +50,28 @@
* structural type STORAGE_BUS_TYPE, and its associated pointer type,
* are required to be defined by both <ddk/ntddstor.h> and <winioctl.h>,
* but if both repeat inclusion guards are already defined, then we've
- * already seen this; ther is no need to process it again.
+ * already seen this; there is no need to process it again.
*/
#define __IOCTL_STORAGE_(FN,M,A) CTL_CODE(IOCTL_STORAGE_BASE,(FN),(M),(A))
#define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE
-#define IOCTL_STORAGE_CHECK_VERIFY __IOCTL_STORAGE_(0x0200,__FILE_RD_BUFFERED)
-#define IOCTL_STORAGE_CHECK_VERIFY2 __IOCTL_STORAGE_(0x0200,__FILE_AM_BUFFERED)
-#define IOCTL_STORAGE_MEDIA_REMOVAL __IOCTL_STORAGE_(0x0201,__FILE_RD_BUFFERED)
-#define IOCTL_STORAGE_EJECT_MEDIA __IOCTL_STORAGE_(0x0202,__FILE_RD_BUFFERED)
-#define IOCTL_STORAGE_LOAD_MEDIA __IOCTL_STORAGE_(0x0203,__FILE_RD_BUFFERED)
-#define IOCTL_STORAGE_LOAD_MEDIA2 __IOCTL_STORAGE_(0x0203,__FILE_AM_BUFFERED)
-#define IOCTL_STORAGE_RESERVE __IOCTL_STORAGE_(0x0204,__FILE_RD_BUFFERED)
-#define IOCTL_STORAGE_RELEASE __IOCTL_STORAGE_(0x0205,__FILE_RD_BUFFERED)
-#define IOCTL_STORAGE_FIND_NEW_DEVICES __IOCTL_STORAGE_(0x0206,__FILE_RD_BUFFERED)
-#define IOCTL_STORAGE_EJECTION_CONTROL __IOCTL_STORAGE_(0x0250,__FILE_AM_BUFFERED)
-#define IOCTL_STORAGE_MCN_CONTROL __IOCTL_STORAGE_(0x0251,__FILE_AM_BUFFERED)
-#define IOCTL_STORAGE_GET_MEDIA_TYPES __IOCTL_STORAGE_(0x0300,__FILE_AM_BUFFERED)
-#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX __IOCTL_STORAGE_(0x0301,__FILE_AM_BUFFERED)
-#define IOCTL_STORAGE_RESET_BUS __IOCTL_STORAGE_(0x0400,__FILE_RW_BUFFERED)
-#define IOCTL_STORAGE_RESET_DEVICE __IOCTL_STORAGE_(0x0401,__FILE_RW_BUFFERED)
-#define IOCTL_STORAGE_GET_DEVICE_NUMBER __IOCTL_STORAGE_(0x0420,__FILE_AM_BUFFERED)
-#define IOCTL_STORAGE_PREDICT_FAILURE __IOCTL_STORAGE_(0x0440,__FILE_AM_BUFFERED)
+#define IOCTL_STORAGE_CHECK_VERIFY __FILE_RD_BUFFERED(__IOCTL_STORAGE_,0x0200)
+#define IOCTL_STORAGE_CHECK_VERIFY2 __FILE_AM_BUFFERED(__IOCTL_STORAGE_,0x0200)
+#define IOCTL_STORAGE_MEDIA_REMOVAL __FILE_RD_BUFFERED(__IOCTL_STORAGE_,0x0201)
+#define IOCTL_STORAGE_EJECT_MEDIA __FILE_RD_BUFFERED(__IOCTL_STORAGE_,0x0202)
+#define IOCTL_STORAGE_LOAD_MEDIA __FILE_RD_BUFFERED(__IOCTL_STORAGE_,0x0203)
+#define IOCTL_STORAGE_LOAD_MEDIA2 __FILE_AM_BUFFERED(__IOCTL_STORAGE_,0x0203)
+#define IOCTL_STORAGE_RESERVE __FILE_RD_BUFFERED(__IOCTL_STORAGE_,0x0204)
+#define IOCTL_STORAGE_RELEASE __FILE_RD_BUFFERED(__IOCTL_STORAGE_,0x0205)
+#define IOCTL_STORAGE_FIND_NEW_DEVICES __FILE_RD_BUFFERED(__IOCTL_STORAGE_,0x0206)
+#define IOCTL_STORAGE_EJECTION_CONTROL __FILE_AM_BUFFERED(__IOCTL_STORAGE_,0x0250)
+#define IOCTL_STORAGE_MCN_CONTROL __FILE_AM_BUFFERED(__IOCTL_STORAGE_,0x0251)
+#define IOCTL_STORAGE_GET_MEDIA_TYPES __FILE_AM_BUFFERED(__IOCTL_STORAGE_,0x0300)
+#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX __FILE_AM_BUFFERED(__IOCTL_STORAGE_,0x0301)
+#define IOCTL_STORAGE_RESET_BUS __FILE_RW_BUFFERED(__IOCTL_STORAGE_,0x0400)
+#define IOCTL_STORAGE_RESET_DEVICE __FILE_RW_BUFFERED(__IOCTL_STORAGE_,0x0401)
+#define IOCTL_STORAGE_GET_DEVICE_NUMBER __FILE_AM_BUFFERED(__IOCTL_STORAGE_,0x0420)
+#define IOCTL_STORAGE_PREDICT_FAILURE __FILE_AM_BUFFERED(__IOCTL_STORAGE_,0x0440)
typedef
enum _STORAGE_BUS_TYPE
@@ -105,8 +105,8 @@ enum _STORAGE_BUS_TYPE
*/
_BEGIN_C_DECLS
-#define IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER __IOCTL_STORAGE_(0x0304,__FILE_AM_BUFFERED)
-#define IOCTL_STORAGE_QUERY_PROPERTY __IOCTL_STORAGE_(0x0500,__FILE_AM_BUFFERED)
+#define IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER __FILE_AM_BUFFERED(__IOCTL_STORAGE_,0x0304)
+#define IOCTL_STORAGE_QUERY_PROPERTY __FILE_AM_BUFFERED(__IOCTL_STORAGE_,0x0500)
DEFINE_GUID( GUID_DEVINTERFACE_DISK,
0x53f56307L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b
diff --git a/w32api/include/ddk/winddk.h b/w32api/include/ddk/winddk.h
index 07bbafc..5858a4b 100644
--- a/w32api/include/ddk/winddk.h
+++ b/w32api/include/ddk/winddk.h
@@ -134,10 +134,10 @@ enum
/* Some derived convenience macros; Microsoft do not specify these,
* but they help to keep the CTL_CODE specifications tidy.
*/
-#define __FILE_RW_ACCESS (FILE_READ_ACCESS | FILE_WRITE_ACCESS)
-#define __FILE_AM_BUFFERED METHOD_BUFFERED, FILE_ANY_ACCESS
-#define __FILE_RD_BUFFERED METHOD_BUFFERED, FILE_READ_ACCESS
-#define __FILE_RW_BUFFERED METHOD_BUFFERED, __FILE_RW_ACCESS
+#define __FILE_RW_ACCESS (FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define __FILE_AM_BUFFERED(F,OP) F(OP, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define __FILE_RD_BUFFERED(F,OP) F(OP, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define __FILE_RW_BUFFERED(F,OP) F(OP, METHOD_BUFFERED, __FILE_RW_ACCESS)
typedef
struct _DRIVE_LAYOUT_INFORMATION_MBR
-----------------------------------------------------------------------
Summary of changes:
.hgtags | 1 +
mingwrt/ChangeLog | 9 +++++
mingwrt/mingwex/stdio/pformat.c | 17 ++++-----
w32api/ChangeLog | 43 +++++++++++++++++++++++
w32api/configure.ac | 2 +-
w32api/include/ddk/ntdddisk.h | 72 +++++++++++++++++++-------------------
w32api/include/ddk/ntddstor.h | 40 +++++++++++-----------
w32api/include/ddk/winddk.h | 8 ++--
8 files changed, 122 insertions(+), 70 deletions(-)
hooks/post-receive
--
Repository: mingw-org-wsl
|
|
From: Keith M. <no...@so...> - 2016-07-18 13:23:13
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The branch, 5.0-active has been updated
via 7113e04924002634443c4a300ecb13ab14abaf1e (commit)
via 6b76992bb8114f56302bd6e58db0b8eec71722d6 (commit)
via 5da8a5e0f73083024b3dfb3de79966ea55ef553a (commit)
via 4f06e0a14e0eef9dd42e30a493d40cb4be82ced2 (commit)
via a945c8e2e50ab942642737915f058edd9e0c2fff (commit)
via aefa8ea7a036c6a527e8666f7bdc3da14bcfc927 (commit)
from c4e55653606e6ea8c1cdebe69c0035380b5fe67c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/mingw-org-wsl/ci/7113e04924002634443c4a300ecb13ab14abaf1e/
commit 7113e04924002634443c4a300ecb13ab14abaf1e
Author: Keith Marshall <kei...@us...>
Date: Sun Jul 17 20:35:18 2016 +0100
Eliminate redundant configuration files.
diff --git a/.gitignore b/.gitignore
index 17420de..6c29be6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,16 @@
+build
Makefile
configure
-.*.swp
-*~
autom4te.cache
+mingwrt/aclocal.m4
+mingwrt/VERSION.m4
+w32api/aclocal.m4
+w32api/VERSION.m4
+config.status
missing
depcomp
+.*.swp
+*.log
+*.bak
+*.o
+*~
diff --git a/.hgignore b/.hgignore
index 6f8aa33..de18271 100644
--- a/.hgignore
+++ b/.hgignore
@@ -3,6 +3,7 @@ build/
Makefile
configure
autom4te.cache/
+{mingwrt,w32api}/{aclocal,VERSION}.m4
config.status
**.swp
**.log
diff --git a/ChangeLog b/ChangeLog
index 5c25fe0..c420f58 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-07-17 Keith Marshall <kei...@us...>
+
+ Eliminate redundant configuration files.
+
+ * .gitignore .hgignore (mingwrt/aclocal.m4, mingwrt/VERSION.m4)
+ (w32api/aclocal.m4, w32api/VERSION.m4): Remove from SCM control.
+
2016-07-16 Keith Marshall <kei...@us...>
Support 'install-strip' as a universal make goal.
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index 84428c1..ed41e0f 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,5 +1,14 @@
2016-07-17 Keith Marshall <kei...@us...>
+ Eliminate redundant configuration files.
+
+ * aclocal.m4 VERSION.m4: Delete them; restore them on demand, via...
+ * Makefile.in ($top_srcdir/../%): ...this symlink dependency rule.
+
+ * configure.ac (AC_PROG_LN_S): Add configuration check.
+
+2016-07-17 Keith Marshall <kei...@us...>
+
Merge mingwrt-3.22 packaging correction to 5.0-active branch.
2016-07-17 Keith Marshall <kei...@us...>
diff --git a/mingwrt/Makefile.in b/mingwrt/Makefile.in
index 2edb45c..561afdb 100644
--- a/mingwrt/Makefile.in
+++ b/mingwrt/Makefile.in
@@ -105,6 +105,7 @@ INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@ $1 $2
mkinstalldirs = @MKDIR_P@ $(addprefix $1,$2)
+LN_S = @LN_S@
# Keep the configuration in a consistent state. Note that we assume
# that configure has been run initially, (otherwise we wouldn't have
@@ -141,6 +142,9 @@ vpath configure.ac ${top_srcdir}
configure: configure.ac aclocal.m4 VERSION.m4
cd ${top_srcdir}; autoconf
+${top_srcdir}/%: ${top_srcdir}/../%
+ cd $(dir $@) && $(LN_S) -f ../$* .
+
# Propagate package version, as configured, consistently throughout
# the package build.
#
@@ -871,8 +875,8 @@ mingwrt-srcdist-files:
mingwrt-srcdist-files: $(wildcard ${mingwrt_srcdir}/*.[chs]) \
$(addprefix ${mingwrt_srcdir}/,ChangeLog CONTRIBUTORS DISCLAIMER README) \
$(wildcard ${mingwrt_srcdir}/*.def.in) $(wildcard ${mingwrt_srcdir}/config*) \
- $(addprefix ${mingwrt_srcdir}/,aclocal.m4 install-sh Makefile.in TODO) \
- $(addprefix ${mingwrt_srcdir}/,include man mingwex profile) \
+ $(addprefix ${mingwrt_srcdir}/,aclocal.m4 VERSION.m4 install-sh Makefile.in) \
+ $(addprefix ${mingwrt_srcdir}/,TODO include man mingwex profile) \
$(addprefix ${mingwrt_srcdir}/,msvcrt-xref crtdll.def) \
$(wildcard ${mingwrt_srcdir}/*.txt)
diff --git a/mingwrt/VERSION.m4 b/mingwrt/VERSION.m4
deleted file mode 100644
index 872bc33..0000000
--- a/mingwrt/VERSION.m4
+++ /dev/null
@@ -1,11 +0,0 @@
-# VERSION.m4 -- vim: filetype=config
-#
-# $Id$
-#
-# Non-copyrightable material; adjust the following definition, to
-# assign a common version number to each of the mingwrt and w32api
-# MinGW System Library sub-packages.
-
-m4_define([__VERSION__],[5.0])
-
-# $RCSfile$: end of file
diff --git a/mingwrt/aclocal.m4 b/mingwrt/aclocal.m4
deleted file mode 100644
index acdf9fa..0000000
--- a/mingwrt/aclocal.m4
+++ /dev/null
@@ -1,169 +0,0 @@
-## aclocal.m4 -*- Autoconf -*- vim: filetype=config
-##
-## Autoconf macros for MinGW.org Runtime Library Package
-##
-## $Id$
-##
-## Written by Keith Marshall <kei...@us...>
-## Copyright (C) 2014, 2016, MinGW.org Project
-##
-##
-m4_include([VERSION.m4])
-m4_define([__BUG_REPORT_URL__],[http://mingw.org/Reporting_Bugs])
-##
-##
-## 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 (including the next
-## paragraph) 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 THE 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.
-##
-
-# MINGW_AC_CONFIG_EXTRA_SRCDIR( PACKAGE, WITNESS_FILE )
-# -----------------------------------------------------
-# Identify the top source directory for a sibling PACKAGE, which
-# provides WITNESS_FILE, and set AC_SUBST variable PACKAGE_srcdir
-# to its path relative to the build directory. Prefers a sibling
-# directory of ${srcdir} named exactly PACKAGE, but falls back to
-# PACKAGE*, and then to *PACKAGE*, if necessary.
-#
-AC_DEFUN_ONCE([MINGW_AC_CONFIG_EXTRA_SRCDIR],
-[AC_MSG_CHECKING([location of $1 source files])
- for ac_dir in ${srcdir}/../$1 ${srcdir}/../$1* ${srcdir}/../*$1*
- do test -f $ac_dir/$2 && { $1_srcdir=$ac_dir; break; }; done
- AC_MSG_RESULT([$$1_srcdir])
- AC_SUBST([$1_srcdir])dnl
-])
-
-# MINGW_AC_NO_EXECUTABLES
-# -----------------------
-# When building the runtime and W32 API libraries with only
-# a partially installed compiler, as we will be required to do
-# between the stage-1 and stage-2 phases of building GCC itself,
-# autoconf's _AC_COMPILER_EXEEXT may choke because the runtime
-# library itself is not yet available; here, we have provided
-# a redefined "do-nothing" version, which will avoid this mode
-# of failure, while retaining the original test for subsequent
-# use, after verifying that it should not fail.
-#
-AC_DEFUN_ONCE([MINGW_AC_NO_EXECUTABLES],
-[AC_BEFORE([$0],[AC_PROG_CC])dnl cannot let this use...
- m4_rename([_AC_COMPILER_EXEEXT],[_MINGW_AC_COMPILER_EXEEXT])dnl so...
- m4_define([_AC_COMPILER_EXEEXT])dnl move it away quickly!
-])
-
-# MINGW_AC_PROG_CC_COMPILE_ONLY
-# -----------------------------
-# A wrapper for AC_PROG_CC, ensuring that it will not succumb to
-# the failure mode described above, while still running the checks
-# provided by the original _AC_COMPILER_EXEEXT macro, when the
-# circumstances of failure do not prevail.
-#
-AC_DEFUN_ONCE([MINGW_AC_PROG_CC_COMPILE_ONLY],
-[AC_REQUIRE([MINGW_AC_NO_EXECUTABLES])dnl no need for linking
- AC_LINK_IFELSE([AC_LANG_PROGRAM],dnl minimal 'int main(){return 0;}'
- [_MINGW_AC_COMPILER_EXEEXT],dnl can create executables anyway!
- [_MINGW_AC_COMPILER_NO_EXECUTABLES])dnl
-])
-
-# _MINGW_AC_COMPILER_NO_EXECUTABLES
-# ---------------------------------
-# Package specific diagnostics for the case where the compiler
-# really does succumb to the _AC_COMPILER_EXEEXT failure mode; in
-# this case, we allow the build to proceed, but we disallow the
-# building of executables and shared libraries by default.
-#
-AC_DEFUN([_MINGW_AC_COMPILER_NO_EXECUTABLES],
-[AC_MSG_CHECKING([whether the C compiler can create executables])
- AC_MSG_RESULT([${may_enable_stage_2=no}])
- AC_MSG_WARN([$CC compiler cannot create executables!])
- AC_MSG_WARN([build will proceed to completion of stage-1 only;])
- AC_MSG_WARN([no executables or shared libraries will be built.])
-])
-
-# MINGW_AC_DISABLE_STAGE_2
-# ------------------------
-# Implement the '--disable-stage-2' configure option, such that
-# it activates the non-failing _AC_COMPILER_EXEEXT behaviour, as
-# described above; default is to proceed with the stage-2 build,
-# provided the compiler is determined to be able to support it.
-#
-AC_DEFUN_ONCE([MINGW_AC_DISABLE_STAGE_2],
-[AC_ARG_ENABLE([stage-2],
- [AS_HELP_STRING([--disable-stage-2],
- [disable building of DLL components which require a fully installed compiler;
- this option may be used during the compiler build process, to permit building
- of the libraries required before commencing stage-2 of the compiler build.
- ])dnl
- ],[],dnl
- [enable_stage_2=auto])dnl let compiler capability govern
-])
-
-# MINGW_AC_MAKE_COMMAND_GOALS
-# ---------------------------
-# Resolve choice of whether stage-2 should be built or not, in
-# favour of user's preference, if supported by the compiler; by
-# default prefer to build, if possible. Propagate the resolved
-# choice as a default make command goal, by assignment to the
-# AC_SUBST variable, DEFAULT_MAKECMDGOALS.
-#
-AC_DEFUN_ONCE([MINGW_AC_MAKE_COMMAND_GOALS],
-[AC_REQUIRE([MINGW_AC_DISABLE_STAGE_2])dnl
- AC_REQUIRE([MINGW_AC_PROG_CC_COMPILE_ONLY])dnl
- AC_MSG_CHECKING([whether to complete stage-2 build])
- ac_val="user's choice"
- AS_CASE([$enable_stage_2],dnl
- [auto],[enable_stage_2=${may_enable_stage_2-yes};dnl
- test x$enable_stage_2 = xyes && ac_val="default choice" dnl
- || ac_val="compiler override"],dnl
- [yes],[enable_stage_2=${may_enable_stage_2-yes};dnl
- test x$enable_stage_2 = xyes || ac_val="compiler override"dnl
- ])
- AC_MSG_RESULT([$enable_stage_2 ($ac_val)])
- test "x$enable_stage_2" = xno dnl
- && DEFAULT_MAKECMDGOALS=all-stage-1-only dnl
- || DEFAULT_MAKECMDGOALS=all-stage-1-and-2
- AC_SUBST([DEFAULT_MAKECMDGOALS])
-])
-
-# MINGW_AC_PROG_COMPILE_SX
-# ------------------------
-# Determine how to invoke GCC to compile *.sx asssembly language
-# files, and provide a suitable derivative of GNU make's COMPILE.S
-# rule in AC_SUBST variable 'COMPILE_SX'. Note that GCC itself has
-# supported direct compilation of such files from version 4.3 onward,
-# (earlier versions require the '-x assembler-with-cpp' hint), but
-# GNU make does not provide a complementary built-in rule.
-#
-AC_DEFUN([MINGW_AC_PROG_COMPILE_SX],
-[AC_REQUIRE([AC_PROG_CC])dnl
- AC_MSG_CHECKING([for $CC option to compile .sx files])
- rm -f conftest.sx conftest.$OBJEXT; : > conftest.sx
- ac_compile_sx='$CC -c $ASFLAGS $CPPFLAGS $ac_val conftest.sx >&5'
- for ac_val in "" "-x assembler-with-cpp"; do
- (eval $ac_compile_sx) 2>&5 && test -f conftest.$OBJEXT && break
- done
- AC_SUBST([COMPILE_SX],[`echo '$(COMPILE.S)' $ac_val`])
- test "x$ac_val" = x && ac_val="none needed"
- test -f conftest.$OBJEXT || ac_val="not supported"
- AC_MSG_RESULT([$ac_val])
- rm -f conftest.sx conftest.$OBJEXT
- test "x$ac_val" = "xnot supported" && {
- AC_MSG_FAILURE([$CC cannot compile .sx files])
- }dnl
-])
-
-# $RCSfile$: end of file
diff --git a/mingwrt/configure.ac b/mingwrt/configure.ac
index e9454dc..2f51250 100644
--- a/mingwrt/configure.ac
+++ b/mingwrt/configure.ac
@@ -50,6 +50,7 @@
AC_PROG_INSTALL
AC_PROG_MKDIR_P
+ AC_PROG_LN_S
MINGW_AC_MAKE_COMMAND_GOALS
AC_CONFIG_FILES([Makefile])
diff --git a/w32api/ChangeLog b/w32api/ChangeLog
index 539a56a..91707ab 100644
--- a/w32api/ChangeLog
+++ b/w32api/ChangeLog
@@ -1,3 +1,12 @@
+2016-07-17 Keith Marshall <kei...@us...>
+
+ Eliminate redundant configuration files.
+
+ * aclocal.m4 VERSION.m4: Delete them; restore them on demand, via...
+ * Makefile.in ($top_srcdir/../%): ...this symlink dependency rule.
+
+ * configure.ac (AC_PROG_LN_S): Add configuration check.
+
2016-07-16 Keith Marshall <kei...@us...>
Discard redundant config.guess and config.sub files.
diff --git a/w32api/Makefile.in b/w32api/Makefile.in
index d534c97..97d28b1 100644
--- a/w32api/Makefile.in
+++ b/w32api/Makefile.in
@@ -78,6 +78,7 @@ mkinstalldirs = @MKDIR_P@ $(addprefix $1,$2)
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@ $1 $2
+LN_S = @LN_S@
# Keep the configuration in a consistent state. Note that we assume
# that configure has been run initially, (otherwise we wouldn't have
@@ -113,6 +114,9 @@ vpath configure.ac ${top_srcdir}
configure: configure.ac aclocal.m4 VERSION.m4
cd ${top_srcdir}; autoconf
+${top_srcdir}/%: ${top_srcdir}/../%
+ cd $(dir $@) && $(LN_S) -f ../$* .
+
# Propagate package version, as configured, consistently throughout
# the package build.
#
@@ -340,9 +344,8 @@ mingwrt-devdist w32api-devdist: %-devdist: %-dist-staged
SRCDIST_ADD = $1-srcdist-files: $(addprefix ${$1_srcdir}/,$2)
$(call SRCDIST_ADD,w32api,ChangeLog CONTRIBUTIONS README.w32api TODO)
-$(call SRCDIST_ADD,w32api,configure configure.ac aclocal.m4 Makefile.in)
-$(call SRCDIST_ADD,w32api,install-sh include lib)
-
+$(call SRCDIST_ADD,w32api,configure configure.ac aclocal.m4 VERSION.m4)
+$(call SRCDIST_ADD,w32api,Makefile.in install-sh include lib)
# Clean-up Rules
# --------------
diff --git a/w32api/VERSION.m4 b/w32api/VERSION.m4
deleted file mode 100644
index 872bc33..0000000
--- a/w32api/VERSION.m4
+++ /dev/null
@@ -1,11 +0,0 @@
-# VERSION.m4 -- vim: filetype=config
-#
-# $Id$
-#
-# Non-copyrightable material; adjust the following definition, to
-# assign a common version number to each of the mingwrt and w32api
-# MinGW System Library sub-packages.
-
-m4_define([__VERSION__],[5.0])
-
-# $RCSfile$: end of file
diff --git a/w32api/aclocal.m4 b/w32api/aclocal.m4
deleted file mode 100644
index acdf9fa..0000000
--- a/w32api/aclocal.m4
+++ /dev/null
@@ -1,169 +0,0 @@
-## aclocal.m4 -*- Autoconf -*- vim: filetype=config
-##
-## Autoconf macros for MinGW.org Runtime Library Package
-##
-## $Id$
-##
-## Written by Keith Marshall <kei...@us...>
-## Copyright (C) 2014, 2016, MinGW.org Project
-##
-##
-m4_include([VERSION.m4])
-m4_define([__BUG_REPORT_URL__],[http://mingw.org/Reporting_Bugs])
-##
-##
-## 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 (including the next
-## paragraph) 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 THE 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.
-##
-
-# MINGW_AC_CONFIG_EXTRA_SRCDIR( PACKAGE, WITNESS_FILE )
-# -----------------------------------------------------
-# Identify the top source directory for a sibling PACKAGE, which
-# provides WITNESS_FILE, and set AC_SUBST variable PACKAGE_srcdir
-# to its path relative to the build directory. Prefers a sibling
-# directory of ${srcdir} named exactly PACKAGE, but falls back to
-# PACKAGE*, and then to *PACKAGE*, if necessary.
-#
-AC_DEFUN_ONCE([MINGW_AC_CONFIG_EXTRA_SRCDIR],
-[AC_MSG_CHECKING([location of $1 source files])
- for ac_dir in ${srcdir}/../$1 ${srcdir}/../$1* ${srcdir}/../*$1*
- do test -f $ac_dir/$2 && { $1_srcdir=$ac_dir; break; }; done
- AC_MSG_RESULT([$$1_srcdir])
- AC_SUBST([$1_srcdir])dnl
-])
-
-# MINGW_AC_NO_EXECUTABLES
-# -----------------------
-# When building the runtime and W32 API libraries with only
-# a partially installed compiler, as we will be required to do
-# between the stage-1 and stage-2 phases of building GCC itself,
-# autoconf's _AC_COMPILER_EXEEXT may choke because the runtime
-# library itself is not yet available; here, we have provided
-# a redefined "do-nothing" version, which will avoid this mode
-# of failure, while retaining the original test for subsequent
-# use, after verifying that it should not fail.
-#
-AC_DEFUN_ONCE([MINGW_AC_NO_EXECUTABLES],
-[AC_BEFORE([$0],[AC_PROG_CC])dnl cannot let this use...
- m4_rename([_AC_COMPILER_EXEEXT],[_MINGW_AC_COMPILER_EXEEXT])dnl so...
- m4_define([_AC_COMPILER_EXEEXT])dnl move it away quickly!
-])
-
-# MINGW_AC_PROG_CC_COMPILE_ONLY
-# -----------------------------
-# A wrapper for AC_PROG_CC, ensuring that it will not succumb to
-# the failure mode described above, while still running the checks
-# provided by the original _AC_COMPILER_EXEEXT macro, when the
-# circumstances of failure do not prevail.
-#
-AC_DEFUN_ONCE([MINGW_AC_PROG_CC_COMPILE_ONLY],
-[AC_REQUIRE([MINGW_AC_NO_EXECUTABLES])dnl no need for linking
- AC_LINK_IFELSE([AC_LANG_PROGRAM],dnl minimal 'int main(){return 0;}'
- [_MINGW_AC_COMPILER_EXEEXT],dnl can create executables anyway!
- [_MINGW_AC_COMPILER_NO_EXECUTABLES])dnl
-])
-
-# _MINGW_AC_COMPILER_NO_EXECUTABLES
-# ---------------------------------
-# Package specific diagnostics for the case where the compiler
-# really does succumb to the _AC_COMPILER_EXEEXT failure mode; in
-# this case, we allow the build to proceed, but we disallow the
-# building of executables and shared libraries by default.
-#
-AC_DEFUN([_MINGW_AC_COMPILER_NO_EXECUTABLES],
-[AC_MSG_CHECKING([whether the C compiler can create executables])
- AC_MSG_RESULT([${may_enable_stage_2=no}])
- AC_MSG_WARN([$CC compiler cannot create executables!])
- AC_MSG_WARN([build will proceed to completion of stage-1 only;])
- AC_MSG_WARN([no executables or shared libraries will be built.])
-])
-
-# MINGW_AC_DISABLE_STAGE_2
-# ------------------------
-# Implement the '--disable-stage-2' configure option, such that
-# it activates the non-failing _AC_COMPILER_EXEEXT behaviour, as
-# described above; default is to proceed with the stage-2 build,
-# provided the compiler is determined to be able to support it.
-#
-AC_DEFUN_ONCE([MINGW_AC_DISABLE_STAGE_2],
-[AC_ARG_ENABLE([stage-2],
- [AS_HELP_STRING([--disable-stage-2],
- [disable building of DLL components which require a fully installed compiler;
- this option may be used during the compiler build process, to permit building
- of the libraries required before commencing stage-2 of the compiler build.
- ])dnl
- ],[],dnl
- [enable_stage_2=auto])dnl let compiler capability govern
-])
-
-# MINGW_AC_MAKE_COMMAND_GOALS
-# ---------------------------
-# Resolve choice of whether stage-2 should be built or not, in
-# favour of user's preference, if supported by the compiler; by
-# default prefer to build, if possible. Propagate the resolved
-# choice as a default make command goal, by assignment to the
-# AC_SUBST variable, DEFAULT_MAKECMDGOALS.
-#
-AC_DEFUN_ONCE([MINGW_AC_MAKE_COMMAND_GOALS],
-[AC_REQUIRE([MINGW_AC_DISABLE_STAGE_2])dnl
- AC_REQUIRE([MINGW_AC_PROG_CC_COMPILE_ONLY])dnl
- AC_MSG_CHECKING([whether to complete stage-2 build])
- ac_val="user's choice"
- AS_CASE([$enable_stage_2],dnl
- [auto],[enable_stage_2=${may_enable_stage_2-yes};dnl
- test x$enable_stage_2 = xyes && ac_val="default choice" dnl
- || ac_val="compiler override"],dnl
- [yes],[enable_stage_2=${may_enable_stage_2-yes};dnl
- test x$enable_stage_2 = xyes || ac_val="compiler override"dnl
- ])
- AC_MSG_RESULT([$enable_stage_2 ($ac_val)])
- test "x$enable_stage_2" = xno dnl
- && DEFAULT_MAKECMDGOALS=all-stage-1-only dnl
- || DEFAULT_MAKECMDGOALS=all-stage-1-and-2
- AC_SUBST([DEFAULT_MAKECMDGOALS])
-])
-
-# MINGW_AC_PROG_COMPILE_SX
-# ------------------------
-# Determine how to invoke GCC to compile *.sx asssembly language
-# files, and provide a suitable derivative of GNU make's COMPILE.S
-# rule in AC_SUBST variable 'COMPILE_SX'. Note that GCC itself has
-# supported direct compilation of such files from version 4.3 onward,
-# (earlier versions require the '-x assembler-with-cpp' hint), but
-# GNU make does not provide a complementary built-in rule.
-#
-AC_DEFUN([MINGW_AC_PROG_COMPILE_SX],
-[AC_REQUIRE([AC_PROG_CC])dnl
- AC_MSG_CHECKING([for $CC option to compile .sx files])
- rm -f conftest.sx conftest.$OBJEXT; : > conftest.sx
- ac_compile_sx='$CC -c $ASFLAGS $CPPFLAGS $ac_val conftest.sx >&5'
- for ac_val in "" "-x assembler-with-cpp"; do
- (eval $ac_compile_sx) 2>&5 && test -f conftest.$OBJEXT && break
- done
- AC_SUBST([COMPILE_SX],[`echo '$(COMPILE.S)' $ac_val`])
- test "x$ac_val" = x && ac_val="none needed"
- test -f conftest.$OBJEXT || ac_val="not supported"
- AC_MSG_RESULT([$ac_val])
- rm -f conftest.sx conftest.$OBJEXT
- test "x$ac_val" = "xnot supported" && {
- AC_MSG_FAILURE([$CC cannot compile .sx files])
- }dnl
-])
-
-# $RCSfile$: end of file
diff --git a/w32api/configure.ac b/w32api/configure.ac
index a40b1db..6dc4a17 100644
--- a/w32api/configure.ac
+++ b/w32api/configure.ac
@@ -48,6 +48,7 @@
AC_PROG_INSTALL
AC_PROG_MKDIR_P
+ AC_PROG_LN_S
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
https://sf.net/p/mingw/mingw-org-wsl/ci/6b76992bb8114f56302bd6e58db0b8eec71722d6/
commit 6b76992bb8114f56302bd6e58db0b8eec71722d6
Merge: a945c8e 5da8a5e
Author: Keith Marshall <kei...@us...>
Date: Sun Jul 17 13:05:20 2016 +0100
Merge mingwrt-3.22 packaging correction to 5.0-active branch.
diff --cc mingwrt/ChangeLog
index a7f116d,033c55d..84428c1
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@@ -1,19 -1,9 +1,29 @@@
+ 2016-07-17 Keith Marshall <kei...@us...>
+
- Correct source package omission of msvcrt-xref subdirectory.
++ Merge mingwrt-3.22 packaging correction to 5.0-active branch.
++
++2016-07-17 Keith Marshall <kei...@us...>
++
++ Correct mingwrt-3.22 source package subdirectory omission.
+
+ * Makefile.in (mingwrt-srcdist-files): Add msvcrt-xref.
+
+2016-07-16 Keith Marshall <kei...@us...>
+
+ Discard redundant config.guess and config.sub files.
+
+ * config.guess config.sub: Delete them; they are no longer required.
+
+2016-07-16 Keith Marshall <kei...@us...>
+
+ Merge recent legacy branch updates to 5.0-active branch.
+
+ * Makefile.in include/ctype.h include/excpt.h include/stdint.h
+ * include/glob.h include/limits.h include/locale.h include/search.h
+ * include/stdio.h include/stdlib.h include/wchar.h include/wctype.h
+ * include/sys/param.h include/sys/stat.h mingwex/tdelete.c
+ * mingwex/tfind.c mingwex/tsearch.c mingwex/twalk.c: Updated.
+
2016-07-14 Keith Marshall <kei...@us...>
Prepare and tag all files for release of mingwrt-3.22.
https://sf.net/p/mingw/mingw-org-wsl/ci/a945c8e2e50ab942642737915f058edd9e0c2fff/
commit a945c8e2e50ab942642737915f058edd9e0c2fff
Author: Keith Marshall <kei...@us...>
Date: Sat Jul 16 19:07:04 2016 +0100
Discard redundant config.guess and config.sub files.
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index 3ae49b4..a7f116d 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,5 +1,11 @@
2016-07-16 Keith Marshall <kei...@us...>
+ Discard redundant config.guess and config.sub files.
+
+ * config.guess config.sub: Delete them; they are no longer required.
+
+2016-07-16 Keith Marshall <kei...@us...>
+
Merge recent legacy branch updates to 5.0-active branch.
* Makefile.in include/ctype.h include/excpt.h include/stdint.h
@@ -358,7 +364,7 @@
[__need_ssize_t, __need_time_t]: Move corresponding #undef out of, and
after the respective conditional blocks, which provide each associated
typedef, so ensuring that any repeat request is properly reset.
-
+
* include/time.h [__need_time_t]: Always delegate to <sys/types.h> for
typedef, and reset of request, even in cases where...
[_TIME_H]: ...this is already defined.
diff --git a/mingwrt/config.guess b/mingwrt/config.guess
deleted file mode 100755
index a461730..0000000
--- a/mingwrt/config.guess
+++ /dev/null
@@ -1,1407 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-timestamp='2003-07-02'
-
-# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Per Bothner <pe...@bo...>.
-# Please send patches to <con...@gn...>. Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <con...@gn...>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
- --version | -v )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (gh...@no... 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
- # compatibility and a consistent mechanism for selecting the
- # object file format.
- #
- # Note: NetBSD doesn't particularly care about the vendor
- # portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
- armeb) machine=armeb-unknown ;;
- arm*) machine=arm-unknown ;;
- sh3el) machine=shl-unknown ;;
- sh3eb) machine=sh-unknown ;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
- esac
- # The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
- case "${UNAME_MACHINE_ARCH}" in
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
- ;;
- *)
- os=netbsd
- ;;
- esac
- # The OS release
- # Debian GNU/NetBSD machines have a different userland, and
- # thus, need a distinct triplet. However, they do not need
- # kernel version information, so it can be replaced with a
- # suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
- Debian*)
- release='-gnu'
- ;;
- *)
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- ;;
- esac
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit 0 ;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- arc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- hp300:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- macppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvmeppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- pmax:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sgi:OpenBSD:*:*)
- echo mipseb-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sun3:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- wgrisc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- *:OpenBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- alpha:OSF1:*:*)
- if test $UNAME_RELEASE = "V4.0"; then
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- fi
- # According to Compaq, /usr/sbin/psrinfo has been available on
- # OSF/1 and Tru64 systems produced since 1995. I hope that
- # covers most systems running today. This code pipes the CPU
- # types through head -n 1, so we only detect the type of CPU 0.
- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
- "EV4 (21064)")
- UNAME_MACHINE="alpha" ;;
- "EV4.5 (21064)")
- UNAME_MACHINE="alpha" ;;
- "LCA4 (21066/21068)")
- UNAME_MACHINE="alpha" ;;
- "EV5 (21164)")
- UNAME_MACHINE="alphaev5" ;;
- "EV5.6 (21164A)")
- UNAME_MACHINE="alphaev56" ;;
- "EV5.6 (21164PC)")
- UNAME_MACHINE="alphapca56" ;;
- "EV5.7 (21164PC)")
- UNAME_MACHINE="alphapca57" ;;
- "EV6 (21264)")
- UNAME_MACHINE="alphaev6" ;;
- "EV6.7 (21264A)")
- UNAME_MACHINE="alphaev67" ;;
- "EV6.8CB (21264C)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8AL (21264B)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8CX (21264D)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.9A (21264/EV69A)")
- UNAME_MACHINE="alphaev69" ;;
- "EV7 (21364)")
- UNAME_MACHINE="alphaev7" ;;
- "EV7.9 (21364A)")
- UNAME_MACHINE="alphaev79" ;;
- esac
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
- Alpha*:OpenVMS:*:*)
- echo alpha-hp-vms
- exit 0 ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit 0;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit 0 ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit 0 ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # ak...@wp... (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit 0 ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit 0 ;;
- DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit 0 ;;
- DRS?6000:UNIX_SV:4.2*:7*)
- case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7 && exit 0 ;;
- esac ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit 0 ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit 0 ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit 0 ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c \
- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && exit 0
- echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit 0 ;;
- Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit 0 ;;
- Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit 0 ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit 0 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit 0 ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i*86:AIX:*:*)
- echo i386-ibm-aix
- exit 0 ;;
- ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 0 ;;
- *:AIX:*:[45])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit 0 ;;
- 9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
- fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
- test -z "$HP_ARCH" && HP_ARCH=hppa
- fi ;;
- esac
- if [ ${HP_ARCH} = "hppa2.0w" ]
- then
- # avoid double evaluation of $set_cc_for_build
- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
- then
- HP_ARCH="hppa2.0w"
- else
- HP_ARCH="hppa64"
- fi
- fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
- ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit 0 ;;
- 3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit 0 ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit 0 ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit 0 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit 0 ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit 0 ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- *:UNICOS/mp:*:*)
- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
- # Determine whether the default compiler uses glibc.
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #if __GLIBC__ >= 2
- LIBC=gnu
- #else
- LIBC=
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- # GNU/FreeBSD systems have a "k" prefix to indicate we are using
- # FreeBSD's kernel, but not the complete OS.
- case ${LIBC} in gnu) kernel_only='k' ;; esac
- echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
- exit 0 ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit 0 ;;
- i*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit 0 ;;
- i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit 0 ;;
- x86:Interix*:[34]*)
- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
- exit 0 ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit 0 ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit 0 ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit 0 ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit 0 ;;
- arm*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
- cris:Linux:*:*)
- echo cris-axis-linux-gnu
- exit 0 ;;
- ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
- m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
- mips:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips
- #undef mipsel
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mipsel
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips
- #else
- CPU=
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
- ;;
- mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips64
- #undef mips64el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mips64el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips64
- #else
- CPU=
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
- ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
- exit 0 ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
- exit 0 ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
- exit 0 ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
- esac
- exit 0 ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
- exit 0 ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
- exit 0 ;;
- sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
- sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
- x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
- exit 0 ;;
- i*86:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us. cd to the root directory to prevent
- # problems with other programs or directories called `ld' in the path.
- # Set LC_ALL=C to ensure ld outputs messages in English.
- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
- | sed -ne '/supported targets:/!d
- s/[ ][ ]*/ /g
- s/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0 ;;
- coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit 0 ;;
- "")
- # Either a pre-BFD a.out linker (linux-gnuoldld) or
- # one that does not give us useful --help.
- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit 0 ;;
- esac
- # Determine whether the default compiler is a.out or elf
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #ifdef __ELF__
- # ifdef __GLIBC__
- # if __GLIBC__ >= 2
- LIBC=gnu
- # else
- LIBC=gnulibc1
- # endif
- # else
- LIBC=gnulibc1
- # endif
- #else
- #ifdef __INTEL_COMPILER
- LIBC=gnu
- #else
- LIBC=gnuaout
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
- ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
- # sysname and nodename.
- echo i386-sequent-sysv4
- exit 0 ;;
- i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit 0 ;;
- i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
- # is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit 0 ;;
- i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit 0 ;;
- i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit 0 ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit 0 ;;
- i*86:*:5:[78]*)
- case `/bin/uname -X | grep "^Machine"` in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
- *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit 0 ;;
- i*86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
- (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit 0 ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit 0 ;;
- mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit 0 ;;
- M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit 0 ;;
- M68*:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit 0 ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit 0 ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-s...
[truncated message content] |
|
From: Keith M. <no...@so...> - 2016-07-18 13:23:07
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The tag, mingwrt-3.22-release has been updated
to 4f06e0a14e0eef9dd42e30a493d40cb4be82ced2 (commit)
from 1fa7d08b511c446767370ae57bc1da6b1cb1f2b2
- Log -----------------------------------------------------------------
commit 4f06e0a14e0eef9dd42e30a493d40cb4be82ced2
Author: Keith Marshall <kei...@us...>
Date: Sun Jul 17 11:11:20 2016 +0100
Correct source package omission of msvcrt-xref subdirectory.
-----------------------------------------------------------------------
hooks/post-receive
--
Repository: mingw-org-wsl
|
|
From: Keith M. <no...@so...> - 2016-07-18 13:23:04
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The branch, legacy has been updated
via 5da8a5e0f73083024b3dfb3de79966ea55ef553a (commit)
via 4f06e0a14e0eef9dd42e30a493d40cb4be82ced2 (commit)
from df3545be36f18656d5d232c555ad7c3a2866390f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
.hgtags | 2 ++
mingwrt/ChangeLog | 6 ++++++
mingwrt/Makefile.in | 2 +-
3 files changed, 9 insertions(+), 1 deletions(-)
hooks/post-receive
--
Repository: mingw-org-wsl
|
|
From: Keith M. <no...@so...> - 2016-07-16 16:29:31
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The branch, 5.0-active has been updated
via c4e55653606e6ea8c1cdebe69c0035380b5fe67c (commit)
via df3545be36f18656d5d232c555ad7c3a2866390f (commit)
via 1fa7d08b511c446767370ae57bc1da6b1cb1f2b2 (commit)
via af2dfd04b9d875a7bace110ba987ce072758bada (commit)
via 591dff56c6c73eec2236af4c980e2e57e3b1c6d0 (commit)
via dae98a836e072bfc1aacd34da8b63fa138e7c2d1 (commit)
via b4fe285fd979fae8364d3c70056584aaacd95e8b (commit)
via cc84f5a03d271ea8a3d14f20aa0f26cfedce6929 (commit)
via 8b688df2fd6c40d8287e8f84024546f8fff9f64a (commit)
via fc36f6df4ede289014df0c328a28a2621fea3457 (commit)
via 47d501fda777efe7fa8520aeac0e0da347ae20b0 (commit)
via 64d998b13ef807e943fae48f8a2b06168e9c95fc (commit)
via d57bcb63bf479f693b69ad4aa4a6b61f99d85263 (commit)
via f8a8324deb5fb459c79afc10f3d2f4b3707e09bf (commit)
via 39e2fc7fccb558df06e4051d147a582b115d92d3 (commit)
via ca86cd03418d519b1bdc11c034d44f64ed6fa1d2 (commit)
via 42c2c9ff1f46aff26193b6e5c24ae1e5705a3c02 (commit)
via fbb8abff03832badefffe114774a00cb5674d6e5 (commit)
via 8678ba90607738f8c6fced3abd9388632c50a84a (commit)
via e9ed0d723b52050ba8ed0fed0642f6d77fdcf2e1 (commit)
via d6dde8b0ea290f42799ea8512faffb94066a6563 (commit)
via 67762b44ceb8a8811c69eec12456df9aa87d10f1 (commit)
via 71d711e8ebf46f56553689f0d4371385bd0daebd (commit)
via 9b6b49f790d6ccb86b656b178a5483f73524fc66 (commit)
via 762582763056792d03872e8dad9b987a0b1e96ff (commit)
via b0dee9302554e05db1f546bab0ecfba11c5fa13e (commit)
via 33b631c9a788ebb65a6ac7f10010e0ff3ab94579 (commit)
via 52bb06001ad85b456e91bf9a1a43da32de336243 (commit)
from c9fb9cb929b74c25ea239d4c35591b774f63ec99 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/mingw-org-wsl/ci/c4e55653606e6ea8c1cdebe69c0035380b5fe67c/
commit c4e55653606e6ea8c1cdebe69c0035380b5fe67c
Merge: c9fb9cb df3545b
Author: Keith Marshall <kei...@us...>
Date: Sat Jul 16 14:47:57 2016 +0100
Merge recent legacy branch updates to 5.0-active branch.
diff --cc mingwrt/ChangeLog
index 471a017,3f7bb7c..3ae49b4
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@@ -1,3 -1,188 +1,198 @@@
++2016-07-16 Keith Marshall <kei...@us...>
++
++ Merge recent legacy branch updates to 5.0-active branch.
++
++ * Makefile.in include/ctype.h include/excpt.h include/stdint.h
++ * include/glob.h include/limits.h include/locale.h include/search.h
++ * include/stdio.h include/stdlib.h include/wchar.h include/wctype.h
++ * include/sys/param.h include/sys/stat.h mingwex/tdelete.c
++ * mingwex/tfind.c mingwex/tsearch.c mingwex/twalk.c: Updated.
++
+ 2016-07-14 Keith Marshall <kei...@us...>
+
+ Prepare and tag all files for release of mingwrt-3.22.
+
+ * configure.ac (AC_INIT): Adjust package version number.
+
+ 2016-07-14 Keith Marshall <kei...@us...>
+
+ Preserve kludge to evade GCC build failure on S_ISBLK misuse.
+
+ * include/sys/stat.h (_NO_UNSUPPORTED): New feature test macro; it
+ should be user defined, if desired, before inclusion; leave undefined.
+ [!_S_IFBLK && !_NO_UNSUPPORTED && !_NO_OLDNAMES] (S_ISBLK): Define it,
+ as appropriate for POSIX conforming usage; do not poison it.
+
+ 2016-07-10 Keith Marshall <kei...@us...>
+
+ Fix C++ strict type checking inconsistency in <glob.h>
+
+ * include/glob.h (__ERRFUNC_P): New private macro; define it to match
+ the type signature of the error function pointer, to be passed to...
+ (glob): ...this function; use it to correctly represent error function
+ pointer argument in inline implementation.
+
+ 2016-07-09 Keith Marshall <kei...@us...>
+
+ Factor out <ctype.h> vs. <wctype.h> duplicate elements.
+
+ * include/ctype.h: Assert copyright; tidy layout.
+ [!_CTYPE_H_]: Do not evaluate; rename macro to be tested, as...
+ [!_CTYPE_H]: ...this preferred multiple inclusion guard macro name.
+ (__CTYPE_H_SOURCED__): New macro; define it, and include <wctype.h>,
+ so requesting partial inclusion, to retrieve definitions for...
+ (_ALPHA, _BLANK, _CONTROL, _DIGIT, _HEX, _LOWER, _PUNCT, _SPACE)
+ (_UPPER, WEOF): ...these macros; hence, do not define them locally.
+ (wint_t, wchar_t, wctype_t): Likewise these type definitions...
+ (iswalnum, iswalpha, iswascii, iswblank, iswcntrl, iswctype)
+ (iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace)
+ (iswupper, iswxdigit, towlower, towupper, is_wctype): ...these function
+ prototypes, and corresponding inline alternative implementations.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use these as appropriate.
+ [__MSVCRT_VERSION__<=__MSVCR70_DLL]: Likewise.
+
+ * include/wctype.h: Assert copyright; tidy layout.
+ [!_WCTYPE_H_]: Do not evaluate; rename macro to be tested, as...
+ [!_WCTYPE_H]: ...this preferred multiple inclusion guard macro name;
+ do not define it when partial inclusion only is selected, by...
+ [__CTYPE_H_SOURCED__]: ...this; thence define only...
+ (_ALPHA, _BLANK, _CONTROL, _DIGIT, _HEX, _LOWER, _PUNCT, _SPACE)
+ (_UPPER): ...these character characterisation macros...
+ (wint_t, wchar_t, wctype_t): ...these type definitions...
+ (iswalnum, iswalpha, iswascii, iswblank, iswcntrl, iswctype)
+ (iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace)
+ (iswupper, iswxdigit, towlower, towupper): ...these function
+ prototypes, with corresponding inline alternative implementations...
+ (is_wctype): ...this further prototype, qualified as deprecated...
+ (WEOF): ...and this status reporting macro.
+ (_ctype, _pctype, _pctype_dll, _imp___ctype, _imp___pctype): Delete
+ declarations, and associated definitions; they do not belong here.
+ (isleadbyte): Likewise, this Microsoft specific function prototype...
+ (_LEADBYTE): ...and this associated character classification macro.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use these as appropriate.
+
+ 2016-07-04 Keith Marshall <kei...@us...>
+
+ Do not pass MAKEFLAGS explicitly, when invoking recursive make.
+
+ * Makefile.in (install-strip, uninstall): Delete explicit $(MAKEFLAGS)
+ references from $(MAKE) command lines; make passes them implicitly.
+
+ 2016-07-03 Keith Marshall <kei...@us...>
+
+ Rework tsearch and friends; resolve issues [#1512] and [#1576].
+
+ * include/search.h: Assert copyright; tidy layout.
+ (_SEARCH_H_): Rename this multiple inclusion guard macro...
+ (_SEARCH_H): ...to conform to this preferred standard convention.
+ (__search_comparator): New function prototype typedef; it provides a
+ convenient shorthand notation for argument declarations in functions
+ which require a comparator function pointer; use it where appropriate.
+ (tsearch, tfind, tdelete) [__MINGW_ATTRIB_NONNULL]: Apply to arguments
+ #2 and #3; was previously incorrectly applied to arguments #1 and #3.
+ (twalk) [__MINGW_ATTRIB_NONNULL]: Apply to both arguments #1 and #2.
+ [_SEARCH_PRIVATE] (__MINGW_ATTRIB_NONNULL): Suppress its effect, to
+ ensure that GCC does not optimize away checks within implementation.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use these.
+
+ * mingwex/tdelete.c: Tidy layout.
+ (tdelete): Reimplement it as a thin wrapper around...
+ (__tdelete): ...this; it encapsulates the original implementation as a
+ __CRT_ALIAS (inline) function, to simplify void ** --> node_t ** casts.
+ Remove unnecessary non-null assertions for arguments #1 and #3; prefer
+ to validate arguments #2 and #3 internally, and simply return NULL if
+ necessary; hence, do not include <assert.h>
+
+ * mingwex/tfind.c: Tidy layout.
+ (tfind): Similarly reimplement it as a thin wrapper around...
+ (__tfind): ...this __CRT_ALIAS (inline) encapsulation of the original.
+ Add non-null validation for argument #3; do not include <assert.h>
+
+ * mingwex/tsearch.c: Tidy layout.
+ (tsearch): Once again, reimplement it as a thin wrapper around...
+ (__tsearch): ...this __CRT_ALIAS variant. Add non-null validation for
+ argument #3; do not include <assert.h>
+
+ * mingwex/twalk.c: Tidy layout; do not include <assert.h>
+
+ 2016-06-28 Keith Marshall <kei...@us...>
+
+ Rework __try1/__except1 to resolve issue [#1328].
+
+ * include/excpt.h: Assert copyright; tidy layout.
+ (_EXCPT_H_): Multiple inclusion guard macro renamed to...
+ (_EXCPT_H): ...this; update all references as appropriate.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use these.
+ (__typecast_alloca): New macro; define it, casting return type of...
+ (__builtin_alloca): ...this to a specified data type; use it in...
+ (__try1_setup, __except1_teardown): ...these new macros; define them
+ as parameterized templates, providing both -masm-att and -masm-intel
+ syntax implementations, with host specific word size and register
+ assignment parameter substitutions; use them to redefine...
+ (__try1, __except1): ...each of these, using __builtin_alloca to avoid
+ direct stack pushes when registering exception handlers; assign the
+ template parameters as appropriate to support implementation for...
+ [_WIN64, _WIN32]: ...either of these, as the host requires.
+
+ 2016-06-17 Keith Marshall <kei...@us...>
+
+ Merge Cygwin CVS updates to legacy branch.
+
+ * include/stdio.h: Merge 2011-11-30 and 2012-08-02 commits.
+ (getc, getchar, putc, putchar): Declare function prototypes.
+ (fopen64, ftello64): Likewise; change implementation classification
+ from __CRT_INLINE to __CRT_ALIAS, to avoid C++ emitted code bloat.
+ (_lock_file, _unlock_file): Add prototypes; modify merge to...
+ [__MSVCRT_VERSION__>=__MSVCR80_DLL]: ...require this.
+
+ * include/stdint.h: Merge 2012-07-30 commit; include <_mingw.h>
+
+ * include/excpt.h: Merge 2012-08-01 commit.
+ (__try1, __except1) [_WIN64]: Add alternative implementations.
+
+ * include/stdlib.h: Merge 2012-08-02 commit.
+ [__MSVCRT__VERSION__>=__MSVCR70_DLL || _WIN32_WINNT >= _WINXP]
+ (_strtoi64, _strtoui64, _wcstoi64, _wcstoui64): Declare prototypes.
+ [__MSVCRT__VERSION__>=__MSVCR80_DLL || _WIN32_WINNT >= _VISTA]
+ (_strtoi64_l, _strtoui64_l, _wcstoi64_l, _wcstoui64_l): Likewise...
+ [!__have_typedef_locale_t] (__need_locale_t): ...and define to get...
+ (locale_t): ...this, by selective inclusion of <locale.h>
+ [__WCHAR_H_SOURCED] (_wcstoi64, _wcstoui64, _wcstoi64_l)
+ (_wcstoui64_l): Make these function prototypes available for selective
+ inclusion by...
+ * include/wchar.h: ...this; merge 2012-08-02 commit.
+ [__MSVCRT__VERSION__>=__MSVCR70_DLL || _WIN32_WINNT >= _WINXP]
+ (_wcstoi64, _wcstoui64): Note availability of function prototypes via
+ selective inclusion of their actual declarations from <stdlib.h>
+ [__MSVCRT__VERSION__>=__MSVCR80_DLL || _WIN32_WINNT >= _VISTA]
+ (_wcstoi64_l, _wcstoui64_l): Likewise.
+
+ * include/limits.h: Merge 2012-08-02 commit.
+ [__STRICT_ANSI__] (PATH_MAX): Suppress definition.
+
+ * include/sys/param.h: Merge 2012-08-02 commit.
+ [PATH_MAX not defined] (MAXPATHLEN): Define it explicitly.
+ [PATH_MAX defined] (MAXPATHLEN): Define it as an alias.
+
+ 2016-06-12 Keith Marshall <kei...@us...>
+
+ Add typedef and access support for opaque locale_t objects.
+
+ * include/locale.h (locale_t, _locale_t): Define opaque types.
+ [__need_locale_t]: Make them selectively accessible; define...
+ (__have_typedef_locale_t): ...this, when they are available.
+ [_LOCALE_H] (_create_locale, _get_current_locale, _free_locale):
+ Declare function prototypes, on direct <locale.h> inclusion only.
+ [_LOCALE_H || _WCHAR_H] (_wcreate_locale): Likewise; this is to be
+ visible on direct inclusion, or when including <wchar.h>
+
+ * include/stdio.h [!(_STDIO_H && _WCHAR_T)]: Correct expression of...
+ [__MSVCR80_DLL || _WIN32_WINNT_VISTA]: ...this subsidiary condition;
+ for all cases when this is true, (including when [_STDIO_H] alone)...
+ [!__have_typedef_locale_t] (__need_locale_t): ...define this, and
+ include <locale.h>, for selective definition of...
+ (locale_t): ...this.
+
2016-05-19 Keith Marshall <kei...@us...>
Occlude unsupported _S_IFBLK feature; resolve issue [#1146].
diff --cc w32api/ChangeLog
index 1023660,076f248..d1459eb
--- a/w32api/ChangeLog
+++ b/w32api/ChangeLog
@@@ -1,3 -1,67 +1,76 @@@
++2016-07-16 Keith Marshall <kei...@us...>
++
++ Merge recent legacy branch updates to 5.0-active branch.
++
++ * Makefile.in include/ddk/ntifs.h include/ddk/winddk.h
++ * include/sdkddkver.h include/setupapi.h include/windows.h
++ * include/winnt.h include/winuser.h include/winver.h
++ * include/wtsapi32.h lib/wtsapi32.def: Updated.
++
+ 2016-07-14 Keith Marshall <kei...@us...>
+
+ Prepare and tag all files for release of w32api-3.18.
+
+ 2016-07-04 Keith Marshall <kei...@us...>
+
+ Do not pass MAKEFLAGS explicitly, when invoking recursive make.
+
+ * Makefile.in (install-strip, uninstall): Delete explicit $(MAKEFLAGS)
+ references from $(MAKE) command lines; make passes them implicitly.
+
+ 2016-06-04 Keith Marshall <kei...@us...>
+
+ Backport MemoryBarrier() implementation from 4.0-dev branch.
+
+ * include/winnt.h (MemoryBarrier): Implement it; this is a rework of
+ Earnie's original inline implementation, but declared 'static' to fix
+ issue [#1661]; it is further modified, to avoid the broken pre-Vista
+ fallback identified by issue [#2131], and to remove references to...
+ (__faststorefence, __mf): ...these MSVC intrinsics, replaced by...
+ [defined __ATOMIC_SEQ_CST] (__atomic_thread_fence): ...this, or...
+ [GCC >= 4.4] (__sync_synchronize): ...this, as appropriate, falling
+ back to inline assembly code when necessary.
+
+ * include/ddk/winddk.h (KeMemoryBarrier): Delegate it to...
+ (MemoryBarrier): ...this, so avoiding the potential to emit invalid
+ code, for hosts which do not support the SSE2 'mfence' instruction.
+
+ 2016-06-03 Keith Marshall <kei...@us...>
+
+ Merge further W32API updates from Cygwin CVS.
+ Incorporated selected changes from 2012-08-01 to 2012-08-04.
+
+ * include/setupapi.h include/winuser.h include/winver.h
+ * include/wtsapi32.h lib/wtsapi32.def: Merged and updated.
+
+ 2016-06-02 Keith Marshall <kei...@us...>
+
+ Update mapping of GCC to MSVC host identification macros.
+
+ * include/windows.h: Assert copyright; tidy layout.
+ (_M_IX86, _ALPHA_, _PPC_, _MIPS_, _68K_): Delete duplicate defines.
+ [!_WINUSER_H, !_WINNLS_H, !_WINVER_H, !_WINNETWK_H, !_WINREG_H]
+ [!_WINSVC_H]: Do not explicitly test these here; they are properly
+ managed implicitly, by GCC, when including the associated headers.
+
+ * include/winnt.h: Assert copyright; tidy layout.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use these, as appropriate.
+ (__aligned__, __always_inline__, __selectany__): Prefer these...
+ (aligned, always_inline, selectany): ...to these attribute forms.
+ (CONTEXT) [_ALPHA_, _PPC_, MIPS, ARM]: Change selector macros to...
+ [_M_ALPHA, _M_PPC, _M_MRX000, _M_ARM]: ...these, respectively.
+ (GetCurrentFiber, GetFiberData, NtCurrentTeb): Redefine in terms of...
+ (__tib_fiber_data__, __tib_self_refptr__): ...these adaptive macros...
+ [!_WIN64]: ...to accommodate 32-bit, or otherwise 64-bit Windows.
+ (_ALPHA_, _PPC_, _MIPS_, _68K_): Delete these redundant macros...
+ (_M_IX86): ...also removing this, but relocate it to...
+ * include/sdkddkver.h (_M_IX86): ...here; augment it with...
+ (_M_IX86_FP, _M_X64, _M_AMD64, _M_IA64): ...these; define them as
+ appropriate.
+
+ * include/ddk/ntifs.h [!_ALPHA_]: Augment test; rather consider...
+ [!_ALPHA_ && !_M_ALPHA]: ...this, for structure alignment control.
+
2016-05-23 Keith Marshall <kei...@us...>
Merge W32API updates, from Cygwin CVS, into legacy branch.
-----------------------------------------------------------------------
Summary of changes:
.hgtags | 2 +
mingwrt/ChangeLog | 267 ++
mingwrt/Makefile.in | 4 +-
mingwrt/include/ctype.h | 409 ++--
mingwrt/include/excpt.h | 222 +-
mingwrt/include/glob.h | 8 +-
mingwrt/include/limits.h | 4 +-
mingwrt/include/locale.h | 67 +-
mingwrt/include/search.h | 187 +-
mingwrt/include/stdint.h | 5 +
mingwrt/include/stdio.h | 53 +-
mingwrt/include/stdlib.h | 62 +
mingwrt/include/sys/param.h | 4 +
mingwrt/include/sys/stat.h | 16 +-
mingwrt/include/wchar.h | 14 +
mingwrt/include/wctype.h | 314 ++-
mingwrt/mingwex/tdelete.c | 99 +-
mingwrt/mingwex/tfind.c | 56 +-
mingwrt/mingwex/tsearch.c | 82 +-
mingwrt/mingwex/twalk.c | 64 +-
w32api/ChangeLog | 113 +
w32api/Makefile.in | 4 +-
w32api/include/ddk/ntifs.h | 4 +-
w32api/include/ddk/winddk.h | 3 +-
w32api/include/sdkddkver.h | 89 +
w32api/include/setupapi.h | 12 +-
w32api/include/windows.h | 82 +-
w32api/include/winnt.h | 7419 ++++++++++++++++++++++---------------------
w32api/include/winuser.h | 4 +-
w32api/include/winver.h | 4 +-
w32api/include/wtsapi32.h | 50 +
w32api/lib/wtsapi32.def | 1 +
32 files changed, 5443 insertions(+), 4281 deletions(-)
hooks/post-receive
--
Repository: mingw-org-wsl
|
|
From: Cesar S. <no...@so...> - 2016-07-15 21:16:55
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "UNNAMED PROJECT".
The tag, MSYS-1_0_19 has been created
at a6b29e7d72ba72a18b278640bfbc4a9ea4bdef79 (commit)
- Log -----------------------------------------------------------------
commit a6b29e7d72ba72a18b278640bfbc4a9ea4bdef79
Author: Cesar Strauss <ces...@gm...>
Date: Tue Feb 9 16:04:24 2016 +0000
Optimize execvp, considering we already know the lengths of the strings we want to concatenate.
-----------------------------------------------------------------------
hooks/post-receive
--
UNNAMED PROJECT
|
|
From: Cesar S. <no...@so...> - 2016-07-15 18:12:52
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-dist".
The branch, master has been updated
via dd97453226061478342381dab317d6aac4b824b9 (commit)
from fc5e9e664519f96f6099c20dbbd0bc0eed39493c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/mingw-dist/ci/dd97453226061478342381dab317d6aac4b824b9/
commit dd97453226061478342381dab317d6aac4b824b9
Author: Cesar Strauss <ces...@gm...>
Date: Fri Jul 15 18:10:37 2016 +0000
Upgrade msys-core to version 1.0.19.
diff --git a/ChangeLog b/ChangeLog
index 016ddad..a25e267 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2016-07-15 Cesar Strauss <ces...@gm...>
+
+ Upgrade msys-core to version 1.0.19.
+
+ * msys/msys-core.xml: Add new release specifications.
+ (msys-core) <bin>: Generate /etc/fstab automatically in postinstall.
+
+ * common/issue.log msys/issue.log: Updated accordingly.
+
2016-07-15 Keith Marshall <kei...@us...>
Publish mingwrt-3.22 and w32api-3.18.
diff --git a/common/issue.log b/common/issue.log
index ba53119..7d38e6e 100644
--- a/common/issue.log
+++ b/common/issue.log
@@ -23,6 +23,6 @@
# MinGW Project, accept liability for any damages, however caused,
# arising from the use of this software.
#
- c6a9068e183254c0b930ac6e1a70fd81743dc212 2016071501 package-list.xml
+ c6a9068e183254c0b930ac6e1a70fd81743dc212 2016071502 package-list.xml
#
# $RCSfile$: end of file
diff --git a/msys/issue.log b/msys/issue.log
index b81b7ef..4bacee2 100644
--- a/msys/issue.log
+++ b/msys/issue.log
@@ -33,7 +33,7 @@
098df570908eec421a271133cd0556f5894cce65 2012073100 msys-bison.xml
a339eb6a797f2365119e4d2fd12c97ef50615dfc 2013020400 msys-bzip2.xml
9fa0f6bc936b8fae418f79e38ecf31abb35ade20 2012073100 msys-console.xml
- ddfeed199d4857e2d14d9ee73a96786f14a37d7d 2012112200 msys-core.xml
+ 5777ed1232aea4cdf348d18b4d301d7e09c00609 2016071500 msys-core.xml
82080d78dce4eca134aa22803a3364ff04d3607c 2012073100 msys-coreutils.xml
0cae2a34f3da7edea476ecab29807727f033f4fa 2012073100 msys-crypt.xml
b0972dbaf1906fa98f7f3502a0c4417a5edb4853 2012073100 msys-cvs.xml
@@ -74,7 +74,7 @@
b99a540c08e3321515ed2485c1771d22c0c9ef08 2016031600 msys-ncurses.xml
243df0057053eebc442d922dff075e09fb579805 2012073100 msys-openssh.xml
0103c79956ba9fa128755cd93374f0fc334c7cf6 2012073100 msys-openssl.xml
- 5c9e6921f171ce31b016037f5b7c836ed1a4960f 2016031601 msys-package-list.xml
+ 5c9e6921f171ce31b016037f5b7c836ed1a4960f 2016071500 msys-package-list.xml
d19e1e39e5fab25a3d40acb92b98b40a60b0da90 2012073100 msys-patch.xml
d4f194d2e95035da2b712c54053fb6ad5d45e1d9 2013101200 msys-perl.xml
19ddf46e23e23010a440af1b423d986712c3bda7 2012073100 msys-popt.xml
diff --git a/msys/msys-core.xml b/msys/msys-core.xml
index aedcb32..e6da95f 100644
--- a/msys/msys-core.xml
+++ b/msys/msys-core.xml
@@ -45,6 +45,31 @@
<requires eq="msys-core-%-msys-%-lic.tar" />
<release tarname="msysCORE-1.0.17-1-msys-1.0.17-bin.tar.lzma" />
<release tarname="msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma" />
+ <release tarname="msysCORE-1.0.19-1-msys-1.0.19-bin.tar.xz" />
+
+ <action class="post-install">
+ sysroot = os.getenv( "MSYS_SYSROOT" )
+ package.path = sysroot.."/postinstall/?.lua;"..package.path
+
+ local has_fstab_module, fstab = pcall( require, "fstab" )
+
+ if has_fstab_module and fstab
+ then
+ have_fstab = io.open( fstab.pathname(), "r" )
+ if have_fstab
+ then
+ io.close( have_fstab )
+ else
+ fstab.initialize()
+ end
+ fstab.sample = io.open( fstab.pathname( ".sample" ), "w" )
+ if fstab.sample
+ then
+ fstab.dump_sample( fstab.sample )
+ io.close( fstab.sample )
+ end
+ end
+ </action>
</component>
<component class="ext">
@@ -53,6 +78,7 @@
-->
<release tarname="msysCORE-1.0.17-1-msys-1.0.17-ext.tar.lzma" />
<release tarname="msysCORE-1.0.18-1-msys-1.0.18-ext.tar.lzma" />
+ <release tarname="msysCORE-1.0.19-1-msys-1.0.19-ext.tar.xz" />
<requires eq="msys-bash-*-msys-*-bin.tar" />
<requires eq="msys-core-%-msys-%-bin.tar" />
<requires eq="msys-coreutils-*-msys-*-bin.tar" />
@@ -64,21 +90,25 @@
<component class="dev">
<release tarname="msysCORE-1.0.17-1-msys-1.0.17-dev.tar.lzma" />
<release tarname="msysCORE-1.0.18-1-msys-1.0.18-dev.tar.lzma" />
+ <release tarname="msysCORE-1.0.19-1-msys-1.0.19-dev.tar.xz" />
</component>
<component class="doc">
<release tarname="msysCORE-1.0.17-1-msys-1.0.17-doc.tar.lzma" />
<release tarname="msysCORE-1.0.18-1-msys-1.0.18-doc.tar.lzma" />
+ <release tarname="msysCORE-1.0.19-1-msys-1.0.19-doc.tar.xz" />
</component>
<component class="lic">
<release tarname="msysCORE-1.0.17-1-msys-1.0.17-lic.tar.lzma" />
<release tarname="msysCORE-1.0.18-1-msys-1.0.18-lic.tar.lzma" />
+ <release tarname="msysCORE-1.0.19-1-msys-1.0.19-lic.tar.xz" />
</component>
<component class="dbg">
<release tarname="msysCORE-1.0.17-1-msys-1.0.17-dbg.tar.lzma" />
<release tarname="msysCORE-1.0.18-1-msys-1.0.18-dbg.tar.lzma" />
+ <release tarname="msysCORE-1.0.19-1-msys-1.0.19-dbg.tar.xz" />
<requires eq="msys-core-%-msys-%-bin.tar" />
</component>
</package>
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 9 +++++++++
common/issue.log | 2 +-
msys/issue.log | 4 ++--
msys/msys-core.xml | 30 ++++++++++++++++++++++++++++++
4 files changed, 42 insertions(+), 3 deletions(-)
hooks/post-receive
--
Repository: mingw-dist
|
|
From: Keith M. <no...@so...> - 2016-07-15 13:15:35
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-dist".
The branch, master has been updated
via fc5e9e664519f96f6099c20dbbd0bc0eed39493c (commit)
from 67cea671f9210b0a0af65c2a855a15340cd66f30 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/mingw-dist/ci/fc5e9e664519f96f6099c20dbbd0bc0eed39493c/
commit fc5e9e664519f96f6099c20dbbd0bc0eed39493c
Author: Keith Marshall <kei...@us...>
Date: Fri Jul 15 14:12:14 2016 +0100
Publish mingwrt-3.22 and w32api-3.18.
diff --git a/ChangeLog b/ChangeLog
index 2ba6f1f..016ddad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2016-07-15 Keith Marshall <kei...@us...>
+
+ Publish mingwrt-3.22 and w32api-3.18.
+
+ * mingw32/mingw32-runtime.xml (mingwrt-3.22): Add release records...
+ (dev, dll, lic, man): ...for each of these component packages.
+ (w32api-3.18): Likewise, for 'dev' component package only.
+
+ * common/issue.log mingw32/issue.log: Update accordingly.
+
2016-03-16 Erwin Waterlander <wat...@xs...>
New package msys-ncurses 6.0.
diff --git a/common/issue.log b/common/issue.log
index 62f0d78..ba53119 100644
--- a/common/issue.log
+++ b/common/issue.log
@@ -23,6 +23,6 @@
# MinGW Project, accept liability for any damages, however caused,
# arising from the use of this software.
#
- c6a9068e183254c0b930ac6e1a70fd81743dc212 2016031601 package-list.xml
+ c6a9068e183254c0b930ac6e1a70fd81743dc212 2016071501 package-list.xml
#
# $RCSfile$: end of file
diff --git a/mingw32/issue.log b/mingw32/issue.log
index 850b350..679d2cd 100644
--- a/mingw32/issue.log
+++ b/mingw32/issue.log
@@ -50,11 +50,11 @@
cd33ad74b608bce33ea297801253e6efbafce27c 2012073100 mingw32-mingw-utils.xml
8d3a7125499a85916b53efb4c897ac907e2490ab 2015082000 mingw32-mpc.xml
8a11de23e7a89fd11436bdf162ef90712f30101b 2013102300 mingw32-mpfr.xml
- 56f4032058328cacfabe64fa46706d72c2fa931e 2016022200 mingw32-package-list.xml
+ 56f4032058328cacfabe64fa46706d72c2fa931e 2016071500 mingw32-package-list.xml
1f15439ee5f66ec22321c7aa853559b6f8f7172f 2015090800 mingw32-pexports.xml
cdb2a4dbedfc9f2cdfc92340f6f9b12da061c0d9 2012073100 mingw32-popt.xml
0a5d210a13d073104fb74b4f9c081674c9745cd1 2013090900 mingw32-pthreads-w32.xml
- eb06e2c5405277455a42d3cadc6184811ad38034 2016012000 mingw32-runtime.xml
+ 73cfdf0a26055e9333b48f71c39567d678fa48cc 2016071500 mingw32-runtime.xml
12acb32f80e49c893167cfae82e448dd766d49bb 2013070100 mingw32-wsl-candidate.xml
247a02890f109a5fe4996fde4af9d576dca3cd1e 2012073100 mingw32-xz.xml
c223ecd7389eb02948b54f8959d595cf608306a7 2013101200 mingw32-zlib.xml
diff --git a/mingw32/mingw32-runtime.xml b/mingw32/mingw32-runtime.xml
index 88e1161..1a88484 100644
--- a/mingw32/mingw32-runtime.xml
+++ b/mingw32/mingw32-runtime.xml
@@ -29,6 +29,7 @@
<component class="dev">
<requires eq="mingwrt-%-mingw32-dll.tar" />
+ <release tarname="mingwrt-3.22-mingw32-dev.tar.xz" />
<release tarname="mingwrt-3.21-mingw32-dev.tar.xz" />
<release tarname="mingwrt-3.21.1-mingw32-dev.tar.xz" />
<release tarname="mingwrt-3.20-2-mingw32-dev.tar.lzma">
@@ -50,6 +51,7 @@
</component>
<component class="dll">
+ <release tarname="mingwrt-3.22-mingw32-dll.tar.xz" />
<release tarname="mingwrt-3.21-mingw32-dll.tar.xz" />
<release tarname="mingwrt-3.21.1-mingw32-dll.tar.xz" />
<release tarname="mingwrt-3.20-2-mingw32-dll.tar.lzma" />
@@ -59,6 +61,7 @@
</component>
<component class="lic">
+ <release tarname="mingwrt-3.22-mingw32-lic.tar.xz" />
<release tarname="mingwrt-3.21-mingw32-lic.tar.xz" />
<release tarname="mingwrt-3.21.1-mingw32-lic.tar.xz" />
<release tarname="mingwrt-3.20-2-mingw32-lic.tar.lzma">
@@ -80,6 +83,7 @@
</component>
<component class="man">
+ <release tarname="mingwrt-3.22-mingw32-man.tar.xz" />
<release tarname="mingwrt-3.21-mingw32-man.tar.xz" />
<release tarname="mingwrt-3.21.1-mingw32-man.tar.xz" />
<release tarname="mingwrt-3.20-2-mingw32-man.tar.lzma">
@@ -120,6 +124,7 @@
<licence tarname="w32api-%-mingw32-dev.tar.%" />
<component class="dev">
+ <release tarname="w32api-3.18-mingw32-dev.tar.xz" />
<release tarname="w32api-3.17-2-mingw32-dev.tar.lzma" />
<release tarname="w32api-3.17-1-mingw32-dev.tar.lzma" />
<release tarname="w32api-3.16-1-mingw32-dev.tar.lzma" />
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 10 ++++++++++
common/issue.log | 2 +-
mingw32/issue.log | 4 ++--
mingw32/mingw32-runtime.xml | 5 +++++
4 files changed, 18 insertions(+), 3 deletions(-)
hooks/post-receive
--
Repository: mingw-dist
|
|
From: Keith M. <no...@so...> - 2016-07-14 20:19:52
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The tag, w32api-3.18-release has been created
at 1fa7d08b511c446767370ae57bc1da6b1cb1f2b2 (commit)
- Log -----------------------------------------------------------------
commit 1fa7d08b511c446767370ae57bc1da6b1cb1f2b2
Author: Keith Marshall <kei...@us...>
Date: Thu Jul 14 19:02:24 2016 +0100
Prepare and tag all files for release of w32api-3.18.
-----------------------------------------------------------------------
hooks/post-receive
--
Repository: mingw-org-wsl
|
|
From: Keith M. <no...@so...> - 2016-07-14 20:19:50
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The tag, mingwrt-3.22-release has been created
at 1fa7d08b511c446767370ae57bc1da6b1cb1f2b2 (commit)
- Log -----------------------------------------------------------------
commit 1fa7d08b511c446767370ae57bc1da6b1cb1f2b2
Author: Keith Marshall <kei...@us...>
Date: Thu Jul 14 19:02:24 2016 +0100
Prepare and tag all files for release of w32api-3.18.
-----------------------------------------------------------------------
hooks/post-receive
--
Repository: mingw-org-wsl
|
|
From: Keith M. <no...@so...> - 2016-07-14 20:19:48
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The branch, legacy has been updated
via df3545be36f18656d5d232c555ad7c3a2866390f (commit)
via 1fa7d08b511c446767370ae57bc1da6b1cb1f2b2 (commit)
via af2dfd04b9d875a7bace110ba987ce072758bada (commit)
via 591dff56c6c73eec2236af4c980e2e57e3b1c6d0 (commit)
via dae98a836e072bfc1aacd34da8b63fa138e7c2d1 (commit)
via b4fe285fd979fae8364d3c70056584aaacd95e8b (commit)
via cc84f5a03d271ea8a3d14f20aa0f26cfedce6929 (commit)
from 8b688df2fd6c40d8287e8f84024546f8fff9f64a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/mingw-org-wsl/ci/df3545be36f18656d5d232c555ad7c3a2866390f/
commit df3545be36f18656d5d232c555ad7c3a2866390f
Author: Keith Marshall <kei...@us...>
Date: Thu Jul 14 19:03:12 2016 +0100
Added tag mingwrt-3.22-release, w32api-3.18-release for changeset ef4db1b16b14
diff --git a/.hgtags b/.hgtags
index 29afce2..3b76a40 100644
--- a/.hgtags
+++ b/.hgtags
@@ -1,2 +1,4 @@
e6ff0d91cb5027521a314fd0c5eaaedcc7521c19 mingwrt-3.21-release
283116261e256a65a941ce62e80059843d4d8c51 mingwrt-3.21.1-release
+ef4db1b16b1422d4eb06cbe47f0f3c08e11d2f8d mingwrt-3.22-release
+ef4db1b16b1422d4eb06cbe47f0f3c08e11d2f8d w32api-3.18-release
https://sf.net/p/mingw/mingw-org-wsl/ci/1fa7d08b511c446767370ae57bc1da6b1cb1f2b2/
commit 1fa7d08b511c446767370ae57bc1da6b1cb1f2b2
Author: Keith Marshall <kei...@us...>
Date: Thu Jul 14 19:02:24 2016 +0100
Prepare and tag all files for release of w32api-3.18.
diff --git a/w32api/ChangeLog b/w32api/ChangeLog
index a88eb4c..076f248 100644
--- a/w32api/ChangeLog
+++ b/w32api/ChangeLog
@@ -1,3 +1,7 @@
+2016-07-14 Keith Marshall <kei...@us...>
+
+ Prepare and tag all files for release of w32api-3.18.
+
2016-07-04 Keith Marshall <kei...@us...>
Do not pass MAKEFLAGS explicitly, when invoking recursive make.
https://sf.net/p/mingw/mingw-org-wsl/ci/af2dfd04b9d875a7bace110ba987ce072758bada/
commit af2dfd04b9d875a7bace110ba987ce072758bada
Author: Keith Marshall <kei...@us...>
Date: Thu Jul 14 19:00:23 2016 +0100
Prepare and tag all files for release of mingwrt-3.22.
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index d9daac2..3f7bb7c 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,5 +1,11 @@
2016-07-14 Keith Marshall <kei...@us...>
+ Prepare and tag all files for release of mingwrt-3.22.
+
+ * configure.ac (AC_INIT): Adjust package version number.
+
+2016-07-14 Keith Marshall <kei...@us...>
+
Preserve kludge to evade GCC build failure on S_ISBLK misuse.
* include/sys/stat.h (_NO_UNSUPPORTED): New feature test macro; it
diff --git a/mingwrt/configure.ac b/mingwrt/configure.ac
index 3bc73a4..598f2b2 100644
--- a/mingwrt/configure.ac
+++ b/mingwrt/configure.ac
@@ -29,7 +29,7 @@
# DEALINGS IN THE SOFTWARE.
#
AC_PREREQ([2.64])
- AC_INIT([MinGW C Runtime],[3.21.2],[http://mingw.org/Reporting_Bugs],[mingwrt])
+ AC_INIT([MinGW C Runtime],[3.22],[http://mingw.org/Reporting_Bugs],[mingwrt])
AC_PREFIX_DEFAULT([/mingw])
AC_CONFIG_SRCDIR([include/_mingw.h.in])
https://sf.net/p/mingw/mingw-org-wsl/ci/591dff56c6c73eec2236af4c980e2e57e3b1c6d0/
commit 591dff56c6c73eec2236af4c980e2e57e3b1c6d0
Author: Keith Marshall <kei...@us...>
Date: Thu Jul 14 18:59:07 2016 +0100
Preserve kludge to evade GCC build failure on S_ISBLK misuse.
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index 7b938f9..d9daac2 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,3 +1,12 @@
+2016-07-14 Keith Marshall <kei...@us...>
+
+ Preserve kludge to evade GCC build failure on S_ISBLK misuse.
+
+ * include/sys/stat.h (_NO_UNSUPPORTED): New feature test macro; it
+ should be user defined, if desired, before inclusion; leave undefined.
+ [!_S_IFBLK && !_NO_UNSUPPORTED && !_NO_OLDNAMES] (S_ISBLK): Define it,
+ as appropriate for POSIX conforming usage; do not poison it.
+
2016-07-10 Keith Marshall <kei...@us...>
Fix C++ strict type checking inconsistency in <glob.h>
diff --git a/mingwrt/include/sys/stat.h b/mingwrt/include/sys/stat.h
index fb84d90..f81bfb4 100644
--- a/mingwrt/include/sys/stat.h
+++ b/mingwrt/include/sys/stat.h
@@ -122,11 +122,23 @@
#ifndef _S_IFBLK
/* When the _S_IFBLK kludge is NOT enabled, (as it ideally should not be),
- * ensure that any attempt to use its dependent macros is firmly denied.
+ * ensure that any attempt to use its dependent macros is denied...
*/
# pragma GCC poison _S_ISBLK
-# pragma GCC poison S_ISBLK
+# if defined _NO_UNSUPPORTED || defined _NO_OLDNAMES
+ /* ...including that for the standard POSIX macro, when unsupported
+ * features, or Microsoft's old names, are explicitly forbidden...
+ */
+# pragma GCC poison S_ISBLK
+
+# else /* !(_NO_UNSUPPORTED || _NO_OLDNAMES) */
+ /* ...otherwise assume that the kludge is automatically enabled with
+ * respect to S_ISBLK, (because GCC gratuitously misuses it).
+ */
+# define S_IFBLK 0x3001 /* Block: unsupported on Win32 */
+
+# endif /* !(_NO_UNSUPPORTED || _NO_OLDNAMES) */
#endif /* !_S_IFBLK */
#endif /* !__WCHAR_H_SOURCED__ */
https://sf.net/p/mingw/mingw-org-wsl/ci/dae98a836e072bfc1aacd34da8b63fa138e7c2d1/
commit dae98a836e072bfc1aacd34da8b63fa138e7c2d1
Author: Keith Marshall <kei...@us...>
Date: Sun Jul 10 22:38:45 2016 +0100
Fix C++ strict type checking inconsistency in <glob.h>
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index 84588ad..7b938f9 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,3 +1,12 @@
+2016-07-10 Keith Marshall <kei...@us...>
+
+ Fix C++ strict type checking inconsistency in <glob.h>
+
+ * include/glob.h (__ERRFUNC_P): New private macro; define it to match
+ the type signature of the error function pointer, to be passed to...
+ (glob): ...this function; use it to correctly represent error function
+ pointer argument in inline implementation.
+
2016-07-09 Keith Marshall <kei...@us...>
Factor out <ctype.h> vs. <wctype.h> duplicate elements.
diff --git a/mingwrt/include/glob.h b/mingwrt/include/glob.h
index b9a7655..9cfa169 100644
--- a/mingwrt/include/glob.h
+++ b/mingwrt/include/glob.h
@@ -8,7 +8,7 @@
* $Id$
*
* Written by Keith Marshall <kei...@us...>
- * Copyright (C) 2011, 2012, 2014, MinGW.org Project.
+ * Copyright (C) 2011, 2012, 2014, 2016, MinGW.org Project.
*
*
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -132,15 +132,17 @@ _BEGIN_C_DECLS
* However, our actual function implementations are provided via this
* pair of reserved function names...
*/
-int __mingw_glob (const char *, int, int (*)( const char *, int ), glob_t *);
+int __mingw_glob (const char *, int, int (*)(const char *, int), glob_t *);
void __mingw_globfree (glob_t *);
/* ...to which the standard names are then mapped as aliases,
* via __CRT_ALIAS inline function expansion.
*/
__CRT_ALIAS __JMPSTUB__(( FUNCTION = glob ))
-int glob (const char *__pattern, int __flags, int (*__errfunc)(), glob_t *__data)
+# define __ERRFUNC_P (*__errfunc) (const char *, int)
+int glob (const char *__pattern, int __flags, int __ERRFUNC_P, glob_t *__data)
{ return __mingw_glob (__pattern, __flags, __errfunc, __data); }
+# undef __ERRFUNC_P
__CRT_ALIAS __JMPSTUB__(( FUNCTION = globfree ))
void globfree (glob_t *__data){ return __mingw_globfree (__data); }
https://sf.net/p/mingw/mingw-org-wsl/ci/b4fe285fd979fae8364d3c70056584aaacd95e8b/
commit b4fe285fd979fae8364d3c70056584aaacd95e8b
Author: Keith Marshall <kei...@us...>
Date: Sat Jul 9 21:53:41 2016 +0100
Factor out <ctype.h> vs. <wctype.h> duplicate elements.
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index 375577e..84588ad 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,3 +1,42 @@
+2016-07-09 Keith Marshall <kei...@us...>
+
+ Factor out <ctype.h> vs. <wctype.h> duplicate elements.
+
+ * include/ctype.h: Assert copyright; tidy layout.
+ [!_CTYPE_H_]: Do not evaluate; rename macro to be tested, as...
+ [!_CTYPE_H]: ...this preferred multiple inclusion guard macro name.
+ (__CTYPE_H_SOURCED__): New macro; define it, and include <wctype.h>,
+ so requesting partial inclusion, to retrieve definitions for...
+ (_ALPHA, _BLANK, _CONTROL, _DIGIT, _HEX, _LOWER, _PUNCT, _SPACE)
+ (_UPPER, WEOF): ...these macros; hence, do not define them locally.
+ (wint_t, wchar_t, wctype_t): Likewise these type definitions...
+ (iswalnum, iswalpha, iswascii, iswblank, iswcntrl, iswctype)
+ (iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace)
+ (iswupper, iswxdigit, towlower, towupper, is_wctype): ...these function
+ prototypes, and corresponding inline alternative implementations.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use these as appropriate.
+ [__MSVCRT_VERSION__<=__MSVCR70_DLL]: Likewise.
+
+ * include/wctype.h: Assert copyright; tidy layout.
+ [!_WCTYPE_H_]: Do not evaluate; rename macro to be tested, as...
+ [!_WCTYPE_H]: ...this preferred multiple inclusion guard macro name;
+ do not define it when partial inclusion only is selected, by...
+ [__CTYPE_H_SOURCED__]: ...this; thence define only...
+ (_ALPHA, _BLANK, _CONTROL, _DIGIT, _HEX, _LOWER, _PUNCT, _SPACE)
+ (_UPPER): ...these character characterisation macros...
+ (wint_t, wchar_t, wctype_t): ...these type definitions...
+ (iswalnum, iswalpha, iswascii, iswblank, iswcntrl, iswctype)
+ (iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace)
+ (iswupper, iswxdigit, towlower, towupper): ...these function
+ prototypes, with corresponding inline alternative implementations...
+ (is_wctype): ...this further prototype, qualified as deprecated...
+ (WEOF): ...and this status reporting macro.
+ (_ctype, _pctype, _pctype_dll, _imp___ctype, _imp___pctype): Delete
+ declarations, and associated definitions; they do not belong here.
+ (isleadbyte): Likewise, this Microsoft specific function prototype...
+ (_LEADBYTE): ...and this associated character classification macro.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use these as appropriate.
+
2016-07-04 Keith Marshall <kei...@us...>
Do not pass MAKEFLAGS explicitly, when invoking recursive make.
diff --git a/mingwrt/include/ctype.h b/mingwrt/include/ctype.h
index 5eec63b..5c4ef43 100644
--- a/mingwrt/include/ctype.h
+++ b/mingwrt/include/ctype.h
@@ -1,139 +1,166 @@
/*
* ctype.h
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is a part of the mingw-runtime package.
- * No warranty is given; refer to the file DISCLAIMER within the package.
*
- * Functions for testing character types and converting characters.
+ * Functions for character classification and conversion.
+ *
+ * $Id$
+ *
+ * Written by Colin Peters <co...@bi...>
+ * Copyright (C) 1997-2008, 2016, MinGW.org Project
+ *
+ *
+ * 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, this permission notice, and the following
+ * disclaimer 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 OF OR OTHER
+ * DEALINGS IN THE SOFTWARE.
*
*/
+#ifndef _CTYPE_H
+#pragma GCC system_header
+#define _CTYPE_H
-#ifndef _CTYPE_H_
-#define _CTYPE_H_
-
-/* All the headers include this file. */
+/* All MinGW headers must include <_mingw.h>
+ */
#include <_mingw.h>
-#define __need_wchar_t
-#define __need_wint_t
-#ifndef RC_INVOKED
-#include <stddef.h>
-#endif /* Not RC_INVOKED */
-
+/* Although conflicting with both ISO-C and POSIX, Microsoft say that,
+ * in addition to the single byte character classification API which is
+ * properly declared here, this file should also declare elements of the
+ * wide classification API, which is properly declared in <wctype.h>
+ *
+ * To avoid the burden of maintaining duplicate declarations, in two
+ * locations, we keep the wide character declarations where ISO-C and
+ * POSIX say they belong, in <wctype.h>, while accommodating Microsoft
+ * compatibility by providing for selective inclusion of the relevant
+ * elements of it here. (Note that we must do this early, because to
+ * avoid duplication, we delegate the definition of common character
+ * classification macros, with the exception of _LEADBYTE, which is
+ * not required in both headers, to <wctype.h>).
+ */
+#define __CTYPE_H_SOURCED__
+#include <wctype.h>
-/*
- * The following flags are used to tell iswctype and _isctype what character
- * types you are looking for.
+/* This is the one character classification macro, for which definition
+ * is NOT delegated to <wctype.h>
*/
-#define _UPPER 0x0001
-#define _LOWER 0x0002
-#define _DIGIT 0x0004
-#define _SPACE 0x0008 /* HT LF VT FF CR SP */
-#define _PUNCT 0x0010
-#define _CONTROL 0x0020
-/* _BLANK is set for SP and non-ASCII horizontal space chars (eg,
- "no-break space", 0xA0, in CP1250) but not for HT. */
-#define _BLANK 0x0040
-#define _HEX 0x0080
-#define _LEADBYTE 0x8000
-
-#define _ALPHA 0x0103
+#define _LEADBYTE 0x8000
#ifndef RC_INVOKED
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_CRTIMP int __cdecl __MINGW_NOTHROW isalnum(int);
-_CRTIMP int __cdecl __MINGW_NOTHROW isalpha(int);
-_CRTIMP int __cdecl __MINGW_NOTHROW iscntrl(int);
-_CRTIMP int __cdecl __MINGW_NOTHROW isdigit(int);
-_CRTIMP int __cdecl __MINGW_NOTHROW isgraph(int);
-_CRTIMP int __cdecl __MINGW_NOTHROW islower(int);
-_CRTIMP int __cdecl __MINGW_NOTHROW isprint(int);
-_CRTIMP int __cdecl __MINGW_NOTHROW ispunct(int);
-_CRTIMP int __cdecl __MINGW_NOTHROW isspace(int);
-_CRTIMP int __cdecl __MINGW_NOTHROW isupper(int);
-_CRTIMP int __cdecl __MINGW_NOTHROW isxdigit(int);
-
-#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \
- || !defined __STRICT_ANSI__
-int __cdecl __MINGW_NOTHROW isblank (int);
+_BEGIN_C_DECLS
+
+_CRTIMP __cdecl __MINGW_NOTHROW int isalnum(int);
+_CRTIMP __cdecl __MINGW_NOTHROW int isalpha(int);
+_CRTIMP __cdecl __MINGW_NOTHROW int iscntrl(int);
+_CRTIMP __cdecl __MINGW_NOTHROW int isdigit(int);
+_CRTIMP __cdecl __MINGW_NOTHROW int isgraph(int);
+_CRTIMP __cdecl __MINGW_NOTHROW int islower(int);
+_CRTIMP __cdecl __MINGW_NOTHROW int isleadbyte (int);
+_CRTIMP __cdecl __MINGW_NOTHROW int isprint(int);
+_CRTIMP __cdecl __MINGW_NOTHROW int ispunct(int);
+_CRTIMP __cdecl __MINGW_NOTHROW int isspace(int);
+_CRTIMP __cdecl __MINGW_NOTHROW int isupper(int);
+_CRTIMP __cdecl __MINGW_NOTHROW int isxdigit(int);
+
+#if __STDC_VERSION__ >= 199901L || !defined __STRICT_ANSI__
+__cdecl __MINGW_NOTHROW int isblank (int);
#endif
#ifndef __STRICT_ANSI__
-_CRTIMP int __cdecl __MINGW_NOTHROW _isctype (int, int);
+_CRTIMP __cdecl __MINGW_NOTHROW int _isctype (int, int);
#endif
-/* These are the ANSI versions, with correct checking of argument */
-_CRTIMP int __cdecl __MINGW_NOTHROW tolower(int);
-_CRTIMP int __cdecl __MINGW_NOTHROW toupper(int);
-
-/*
- * NOTE: The above are not old name type wrappers, but functions exported
- * explicitly by MSVCRT/CRTDLL. However, underscored versions are also
- * exported.
+/* These are ISO-C conforming functions, with correct checking of
+ * argument; they are exported by MSVCRT.DLL, and by CRTDLL.DLL as
+ * such, and are NOT simply old-name mapped variants; however...
*/
+_CRTIMP __cdecl __MINGW_NOTHROW int tolower (int);
+_CRTIMP __cdecl __MINGW_NOTHROW int toupper (int);
+
#ifndef __STRICT_ANSI__
-/*
- * These are the cheap non-std versions: The return values are undefined
- * if the argument is not ASCII char or is not of appropriate case
+/* ...Microsoft's beloved underscore decorated variants are also
+ * exported. These are cheap non-standard versions: their return
+ * values are undefined if the argument is not an ASCII character,
+ * or is not of appropriate case for the requested conversion.
+ *
+ * Note that these appear to be approximately equivalent to POSIX
+ * macros of the same names, (declared obsolescent in POSIX.1-2008),
+ * but are implemented as DLL functions, rather than macros.
*/
-_CRTIMP int __cdecl __MINGW_NOTHROW _tolower(int);
-_CRTIMP int __cdecl __MINGW_NOTHROW _toupper(int);
+_CRTIMP __cdecl __MINGW_NOTHROW int _tolower (int);
+_CRTIMP __cdecl __MINGW_NOTHROW int _toupper (int);
#endif
-/* Also defined in stdlib.h */
#ifndef MB_CUR_MAX
-#ifdef __DECLSPEC_SUPPORTED
-# ifdef __MSVCRT__
-# define MB_CUR_MAX __mb_cur_max
- __MINGW_IMPORT int __mb_cur_max;
-# else /* not __MSVCRT */
-# define MB_CUR_MAX __mb_cur_max_dll
- __MINGW_IMPORT int __mb_cur_max_dll;
-# endif /* not __MSVCRT */
-
-#else /* ! __DECLSPEC_SUPPORTED */
-# ifdef __MSVCRT__
- extern int* _imp____mb_cur_max;
-# define MB_CUR_MAX (*_imp____mb_cur_max)
-# else /* not __MSVCRT */
- extern int* _imp____mb_cur_max_dll;
-# define MB_CUR_MAX (*_imp____mb_cur_max_dll)
-# endif /* not __MSVCRT */
-#endif /* __DECLSPEC_SUPPORTED */
-#endif /* MB_CUR_MAX */
-
+/* FIXME: also defined in stdlib.h; should be factored into ONE
+ * location ONLY, and included into the other.
+ */
+# ifdef __DECLSPEC_SUPPORTED
+# ifdef __MSVCRT__
+# define MB_CUR_MAX __mb_cur_max
+ __MINGW_IMPORT int __mb_cur_max;
+
+# else /* !__MSVCRT__ */
+# define MB_CUR_MAX __mb_cur_max_dll
+ __MINGW_IMPORT int __mb_cur_max_dll;
+# endif /* !__MSVCRT__ */
+
+# else /* !__DECLSPEC_SUPPORTED */
+# ifdef __MSVCRT__
+# define MB_CUR_MAX (*_imp____mb_cur_max)
+ extern int *_imp____mb_cur_max;
+
+# else /* !__MSVCRT__ */
+# define MB_CUR_MAX (*_imp____mb_cur_max_dll)
+ extern int *_imp____mb_cur_max_dll;
+# endif /* !__MSVCRT__ */
+# endif /* __DECLSPEC_SUPPORTED */
+#endif /* ! MB_CUR_MAX */
#ifdef __DECLSPEC_SUPPORTED
-# if __MSVCRT_VERSION__ <= 0x0700
- __MINGW_IMPORT unsigned short _ctype[];
+# if __MSVCRT_VERSION__ <= __MSVCR70_DLL
+ __MINGW_IMPORT unsigned short _ctype[];
# endif
+
# ifdef __MSVCRT__
- __MINGW_IMPORT unsigned short* _pctype;
-# else /* CRTDLL */
- __MINGW_IMPORT unsigned short* _pctype_dll;
+ __MINGW_IMPORT unsigned short *_pctype;
+
+# else /* !__MSVCRT__ (implies CRTDLL) */
# define _pctype _pctype_dll
+ __MINGW_IMPORT unsigned short *_pctype_dll;
# endif
-#else /* __DECLSPEC_SUPPORTED */
-# if __MSVCRT_VERSION__ <= 0x0700
- extern unsigned short** _imp___ctype;
-# define _ctype (*_imp___ctype)
+#else /* !__DECLSPEC_SUPPORTED */
+# if __MSVCRT_VERSION__ <= __MSVCR70_DLL
+# define _ctype (*_imp___ctype)
+ extern unsigned short **_imp___ctype;
# endif
+
# ifdef __MSVCRT__
- extern unsigned short** _imp___pctype;
-# define _pctype (*_imp___pctype)
-# else /* CRTDLL */
- extern unsigned short** _imp___pctype_dll;
-# define _pctype (*_imp___pctype_dll)
+# define _pctype (*_imp___pctype)
+ extern unsigned short **_imp___pctype;
+
+# else /* !__MSVCRT__ (implies CRTDLL) */
+# define _pctype (*_imp___pctype_dll)
+ extern unsigned short **_imp___pctype_dll;
# endif /* CRTDLL */
-#endif /* __DECLSPEC_SUPPORTED */
+#endif /* !__DECLSPEC_SUPPORTED */
-/*
- * Use inlines here rather than macros, because macros will upset
+/* Use inlines here rather than macros, because macros will upset
* C++ usage (eg, ::isalnum), and so usually get undefined
*
* According to standard for SB chars, these function are defined only
@@ -149,127 +176,101 @@ _CRTIMP int __cdecl __MINGW_NOTHROW _toupper(int);
#if !(defined (__NO_INLINE__) || defined (__NO_CTYPE_INLINES) \
|| defined (__STRICT_ANSI__))
-/* use simple lookup if SB locale, else _isctype() */
-#define __ISCTYPE(c, mask) (MB_CUR_MAX == 1 ? (_pctype[c] & mask) : _isctype(c, mask))
-__CRT_INLINE int __cdecl __MINGW_NOTHROW isalnum(int c) {return __ISCTYPE(c, (_ALPHA|_DIGIT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW isalpha(int c) {return __ISCTYPE(c, _ALPHA);}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iscntrl(int c) {return __ISCTYPE(c, _CONTROL);}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW isdigit(int c) {return __ISCTYPE(c, _DIGIT);}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW isgraph(int c) {return __ISCTYPE(c, (_PUNCT|_ALPHA|_DIGIT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW islower(int c) {return __ISCTYPE(c, _LOWER);}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW isprint(int c) {return __ISCTYPE(c, (_BLANK|_PUNCT|_ALPHA|_DIGIT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW ispunct(int c) {return __ISCTYPE(c, _PUNCT);}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW isspace(int c) {return __ISCTYPE(c, _SPACE);}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW isupper(int c) {return __ISCTYPE(c, _UPPER);}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW isxdigit(int c) {return __ISCTYPE(c, _HEX);}
-
-#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \
- || !defined __STRICT_ANSI__
-__CRT_INLINE int __cdecl __MINGW_NOTHROW isblank (int c)
- {return (__ISCTYPE(c, _BLANK) || c == '\t');}
-#endif
+/* Use simple lookup in single byte locales, else _isctype()
+ */
+#define __ISCTYPE(c, mask) (MB_CUR_MAX == 1 ? (_pctype[c] & mask) : _isctype (c, mask))
-/* these reproduce behaviour of lib underscored versions */
-__CRT_INLINE int __cdecl __MINGW_NOTHROW _tolower(int c) {return ( c -'A'+'a');}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW _toupper(int c) {return ( c -'a'+'A');}
+__CRT_INLINE __cdecl __MINGW_NOTHROW int isalnum (int c)
+{ return __ISCTYPE(c, (_ALPHA|_DIGIT)); }
-/* TODO? Is it worth inlining ANSI tolower, toupper? Probably only
- if we only want C-locale. */
+__CRT_INLINE __cdecl __MINGW_NOTHROW int isalpha (int c)
+{ return __ISCTYPE(c, _ALPHA); }
-#endif /* _NO_CTYPE_INLINES */
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iscntrl (int c)
+{ return __ISCTYPE(c, _CONTROL); }
-/* Wide character equivalents */
+__CRT_INLINE __cdecl __MINGW_NOTHROW int isdigit (int c)
+{ return __ISCTYPE(c, _DIGIT); }
-#ifndef WEOF
-#define WEOF (wchar_t)(0xFFFF)
-#endif
+__CRT_INLINE __cdecl __MINGW_NOTHROW int isgraph (int c)
+{ return __ISCTYPE(c, (_PUNCT|_ALPHA|_DIGIT)); }
-#ifndef _WCTYPE_T_DEFINED
-typedef wchar_t wctype_t;
-#define _WCTYPE_T_DEFINED
-#endif
+__CRT_INLINE __cdecl __MINGW_NOTHROW int islower (int c)
+{ return __ISCTYPE(c, _LOWER); }
-_CRTIMP int __cdecl __MINGW_NOTHROW iswalnum(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswalpha(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswascii(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswcntrl(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswctype(wint_t, wctype_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW is_wctype(wint_t, wctype_t); /* Obsolete! */
-_CRTIMP int __cdecl __MINGW_NOTHROW iswdigit(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswgraph(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswlower(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswprint(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswpunct(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswspace(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswupper(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswxdigit(wint_t);
-
-#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \
- || !defined __STRICT_ANSI__ || defined __cplusplus
-int __cdecl __MINGW_NOTHROW iswblank (wint_t);
-#endif
+__CRT_INLINE __cdecl __MINGW_NOTHROW int isprint (int c)
+{ return __ISCTYPE(c, (_BLANK|_PUNCT|_ALPHA|_DIGIT)); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int ispunct (int c)
+{ return __ISCTYPE(c, _PUNCT); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int isspace (int c)
+{ return __ISCTYPE(c, _SPACE); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int isupper (int c)
+{ return __ISCTYPE(c, _UPPER); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int isxdigit (int c)
+{ return __ISCTYPE(c, _HEX); }
-/* Older MS docs uses wchar_t for arg and return type, while newer
- online MS docs say arg is wint_t and return is int.
- ISO C uses wint_t for both. */
-_CRTIMP wint_t __cdecl __MINGW_NOTHROW towlower (wint_t);
-_CRTIMP wint_t __cdecl __MINGW_NOTHROW towupper (wint_t);
-
-_CRTIMP int __cdecl __MINGW_NOTHROW isleadbyte (int);
-
-/* Also in wctype.h */
-#if ! (defined (__NO_INLINE__) || defined(__NO_CTYPE_INLINES) \
- || defined(__WCTYPE_INLINES_DEFINED))
-#define __WCTYPE_INLINES_DEFINED
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswascii(wint_t wc) {return ((wc & ~0x7F) ==0);}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswlower(wint_t wc) {return (iswctype(wc,_LOWER));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswspace(wint_t wc) {return (iswctype(wc,_SPACE));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswupper(wint_t wc) {return (iswctype(wc,_UPPER));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);}
-#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \
- || !defined __STRICT_ANSI__ || defined __cplusplus
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswblank (wint_t wc)
- {return (iswctype(wc,_BLANK) || wc == L'\t');}
+#if __STDC_VERSION__ >= 199901L || !defined __STRICT_ANSI__
+__CRT_INLINE __cdecl __MINGW_NOTHROW int isblank (int c)
+{ return (__ISCTYPE(c, _BLANK) || c == '\t'); }
#endif
-#endif /* !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) */
+/* These reproduce the behaviour of their DLL exported namesakes,
+ * and thus ARE the effective equivalents of the similarly named,
+ * and now-obsolescent, POSIX macros.
+ */
+__CRT_INLINE __cdecl __MINGW_NOTHROW int _tolower (int c)
+{ return (c - 'A' + 'a'); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int _toupper (int c)
+{ return (c - 'a' + 'A'); }
+
+/* TODO: is it worth inlining ANSI tolower(), and toupper()?
+ * Probably only if we only want C-locale.
+ */
+#endif /* _NO_CTYPE_INLINES */
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int isleadbyte (int c)
+{ return (_pctype[(unsigned char)(c)] & _LEADBYTE); }
#ifndef __STRICT_ANSI__
-int __cdecl __MINGW_NOTHROW __isascii (int);
-int __cdecl __MINGW_NOTHROW __toascii (int);
-int __cdecl __MINGW_NOTHROW __iscsymf (int); /* Valid first character in C symbol */
-int __cdecl __MINGW_NOTHROW __iscsym (int); /* Valid character in C symbol (after first) */
+__cdecl __MINGW_NOTHROW int __isascii (int);
+__cdecl __MINGW_NOTHROW int __toascii (int);
+__cdecl __MINGW_NOTHROW int __iscsymf (int); /* Valid as first character in a C symbol */
+__cdecl __MINGW_NOTHROW int __iscsym (int); /* Valid character in C symbol (after first) */
#if !(defined (__NO_INLINE__) || defined (__NO_CTYPE_INLINES))
-__CRT_INLINE int __cdecl __MINGW_NOTHROW __isascii(int c) {return ((c & ~0x7F) == 0);}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW __toascii(int c) {return (c & 0x7F);}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW __iscsymf(int c) {return (isalpha(c) || (c == '_'));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW __iscsym(int c) {return (isalnum(c) || (c == '_'));}
-#endif /* __NO_CTYPE_INLINES */
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int __isascii (int c)
+{ return ((c & ~0x7F) == 0); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int __toascii (int c)
+{ return (c & 0x7F); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int __iscsymf (int c)
+{ return (isalpha(c) || (c == '_')); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int __iscsym (int c)
+{ return (isalnum(c) || (c == '_')); }
+
+#endif /* !__NO_CTYPE_INLINES */
#ifndef _NO_OLDNAMES
/* Not _CRTIMP */
-int __cdecl __MINGW_NOTHROW isascii (int);
-int __cdecl __MINGW_NOTHROW toascii (int);
-int __cdecl __MINGW_NOTHROW iscsymf (int);
-int __cdecl __MINGW_NOTHROW iscsym (int);
-#endif /* Not _NO_OLDNAMES */
-
-#endif /* Not __STRICT_ANSI__ */
+__cdecl __MINGW_NOTHROW int isascii (int);
+__cdecl __MINGW_NOTHROW int toascii (int);
+__cdecl __MINGW_NOTHROW int iscsymf (int);
+__cdecl __MINGW_NOTHROW int iscsym (int);
+#endif /* !_NO_OLDNAMES */
-#ifdef __cplusplus
-}
-#endif
+#endif /* !__STRICT_ANSI__ */
-#endif /* Not RC_INVOKED */
+_END_C_DECLS
-#endif /* Not _CTYPE_H_ */
+#endif /* ! RC_INVOKED */
+#undef __CTYPE_H_SOURCED__
+#endif /* !_CTYPE_H: $RCSfile$: end of file */
diff --git a/mingwrt/include/wctype.h b/mingwrt/include/wctype.h
index 3b322ff..492f2f0 100644
--- a/mingwrt/include/wctype.h
+++ b/mingwrt/include/wctype.h
@@ -1,168 +1,210 @@
/*
* wctype.h
*
- * Functions for testing wide character types and converting characters.
+ * Functions for wide character classification and conversion.
*
- * This file is part of the Mingw32 package.
+ * $Id$
*
- * Contributors:
- * Created by Mumit Khan <kh...@xr...>
+ * Written by Mumit Khan <kh...@xr...>
+ * Copyright (C) 1999-2003, 2005-2007, 2016, MinGW.org Project
*
- * THIS SOFTWARE IS NOT COPYRIGHTED
*
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
+ * 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:
*
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * The above copyright notice, this permission notice, and the following
+ * disclaimer 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 OF OR OTHER
+ * DEALINGS IN THE SOFTWARE.
*
*/
+#ifndef _WCTYPE_H
+#pragma GCC system_header
+
+#ifndef __CTYPE_H_SOURCED__
+/* Perversely, (since they provide <wctype.h> themselves), Microsoft
+ * say that most of the definitions and declarations which follow are
+ * provided by <ctype.h>, rather than here; (this conflicts with both
+ * ISO-C and POSIX). We prefer to provide them here, for ISO-C/POSIX
+ * conformance, while also exposing them for selective inclusion by
+ * <ctype.h>, to maintain Microsoft compatibility.
+ *
+ * We define the <wctype.h> multiple inclusion guard macro only when
+ * <wctype.h> is included directly, NOT when included via <ctype.h>
+ */
+#define _WCTYPE_H
-#ifndef _WCTYPE_H_
-#define _WCTYPE_H_
-
-/* All the headers include this file. */
+/* All MinGW headers must include <_mingw.h>; when sourced by <ctype.h>,
+ * we may delegate that responsibility to it, but in the case of direct
+ * inclusion, we must address it ourselves.
+ */
#include <_mingw.h>
+#endif
+
+/* The following flags are used to tell iswctype() and _isctype() what
+ * character classes are to be matched; (note that _BLANK will match for
+ * SP and non-ASCII horizontal space chars -- e.g. for "no-break space",
+ * 0xA0, in CP1250 -- but NOT for HT).
+ *
+ * These are defined such that they will be made visible by inclusion
+ * of either <wctype.h> (this file), or <ctype.h>:
+ */
+#define _ALPHA 0x0103
+#define _LOWER 0x0002
+#define _UPPER 0x0001
+#define _DIGIT 0x0004
+#define _SPACE 0x0008 /* HT LF VT FF CR SP */
+#define _PUNCT 0x0010
+#define _CONTROL 0x0020
+#define _BLANK 0x0040
+#define _HEX 0x0080
-#define __need_wchar_t
-#define __need_wint_t
#ifndef RC_INVOKED
-#include <stddef.h>
-#endif /* Not RC_INVOKED */
-/*
- * The following flags are used to tell iswctype and _isctype what character
- * types you are looking for.
+/* ISO-C and POSIX specify that <wctype.h> must define wint_t, wctype_t,
+ * and the WEOF macro, (which also requires wchar_t), as they are defined
+ * in <wchar.h>; since <wchar.h> gets wint_t, (and wchar_t), from <stddef.h>,
+ * we do likewise here. Furthermore, to maintain Microsoft compatibility,
+ * we must also do this on behalf of <ctype.h>; however...
*/
-#define _UPPER 0x0001
-#define _LOWER 0x0002
-#define _DIGIT 0x0004
-#define _SPACE 0x0008
-#define _PUNCT 0x0010
-#define _CONTROL 0x0020
-#define _BLANK 0x0040
-#define _HEX 0x0080
-#define _LEADBYTE 0x8000
-
-#define _ALPHA 0x0103
+#if !(defined _WCTYPE_H && defined _CTYPE_H)
+/* ...we need not incur the overhead of doing it twice, when both <ctype.h>
+ * and <wctype.h> have been included.
+ */
+#define __need_wint_t
+#define __need_wchar_t
+#include <stddef.h>
-#ifndef RC_INVOKED
+typedef wchar_t wctype_t;
+#define WEOF (wchar_t)(0xffff)
-#ifdef __cplusplus
-extern "C" {
-#endif
+_BEGIN_C_DECLS
-#ifndef WEOF
-#define WEOF (wchar_t)(0xFFFF)
-#endif
+/* Wide character classification functions. In typically perverse
+ * fashion, and contrary to both ISO-C and POSIX, Microsoft specify
+ * that these should be declared in <ctype.h>; thus, to accommodate
+ * this persersity, we make them visible here, irrespective of any
+ * selective inclusion filter macro.
+ */
+_CRTIMP __cdecl __MINGW_NOTHROW int iswalnum (wint_t);
+_CRTIMP __cdecl __MINGW_NOTHROW int iswalpha (wint_t);
+_CRTIMP __cdecl __MINGW_NOTHROW int iswascii (wint_t);
+_CRTIMP __cdecl __MINGW_NOTHROW int iswcntrl (wint_t);
+_CRTIMP __cdecl __MINGW_NOTHROW int iswctype (wint_t, wctype_t);
+_CRTIMP __cdecl __MINGW_NOTHROW int iswdigit (wint_t);
+_CRTIMP __cdecl __MINGW_NOTHROW int iswgraph (wint_t);
+_CRTIMP __cdecl __MINGW_NOTHROW int iswlower (wint_t);
+_CRTIMP __cdecl __MINGW_NOTHROW int iswprint (wint_t);
+_CRTIMP __cdecl __MINGW_NOTHROW int iswpunct (wint_t);
+_CRTIMP __cdecl __MINGW_NOTHROW int iswspace (wint_t);
+_CRTIMP __cdecl __MINGW_NOTHROW int iswupper (wint_t);
+_CRTIMP __cdecl __MINGW_NOTHROW int iswxdigit (wint_t);
+
+__MINGW_ATTRIB_DEPRECATED
+/* This function is exported by all versions of MSVCRT.DLL, (up to and
+ * including that in Windows-7), and in all non-free counterparts up to
+ * and including MSVCR120.DLL, but as of MSVC-2013, Microsoft declare
+ * it to be obsolete. DO NOT USE IT! Use iswctype() instead.
+ */
+_CRTIMP __cdecl __MINGW_NOTHROW int is_wctype (wint_t, wctype_t);
-#ifndef _WCTYPE_T_DEFINED
-typedef wchar_t wctype_t;
-#define _WCTYPE_T_DEFINED
+#if __STDC_VERSION__>=199901L || !defined __STRICT_ANSI__ || defined __cplusplus
+__cdecl __MINGW_NOTHROW int iswblank (wint_t);
#endif
-/* Wide character equivalents - also in ctype.h */
-_CRTIMP int __cdecl __MINGW_NOTHROW iswalnum(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswalpha(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswascii(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswcntrl(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswctype(wint_t, wctype_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW is_wctype(wint_t, wctype_t); /* Obsolete! */
-_CRTIMP int __cdecl __MINGW_NOTHROW iswdigit(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswgraph(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswlower(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswprint(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswpunct(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswspace(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswupper(wint_t);
-_CRTIMP int __cdecl __MINGW_NOTHROW iswxdigit(wint_t);
-
-#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \
- || !defined __STRICT_ANSI__ || defined __cplusplus
-int __cdecl __MINGW_NOTHROW iswblank (wint_t);
-#endif
+/* Wide character case transliteration functions; the following conform
+ * to the ISO-C and POSIX standard declarations; Microsoft, at one time,
+ * specified both as taking a wchar_t argument, and returning a wchar_t
+ * result, but now take a wint_t argument, and return int.
+ */
+_CRTIMP __cdecl __MINGW_NOTHROW wint_t towlower (wint_t);
+_CRTIMP __cdecl __MINGW_NOTHROW wint_t towupper (wint_t);
+
+#if !(defined __NO_INLINE__ || defined __NO_CTYPE_INLINES)
+/* Provide inline alternatives to the DLL-exported isw*() functions.
+ * Note that POSIX stipulates that these alternatives should be macros;
+ * we prefer __CRT_INLINEs, (which GCC effectively treats as macros),
+ * because they do not interfere with C++ namespace qualification.
+ */
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswalnum (wint_t wc)
+{ return (iswctype (wc, _ALPHA | _DIGIT)); }
-/* Older MS docs uses wchar_t for arg and return type, while newer
- online MS docs say arg is wint_t and return is int.
- ISO C uses wint_t for both. */
-_CRTIMP wint_t __cdecl __MINGW_NOTHROW towlower (wint_t);
-_CRTIMP wint_t __cdecl __MINGW_NOTHROW towupper (wint_t);
-
-_CRTIMP int __cdecl __MINGW_NOTHROW isleadbyte (int);
-
-/* Also in ctype.h */
-
-#ifdef __DECLSPEC_SUPPORTED
-# if __MSVCRT_VERSION__ <= 0x0700
- __MINGW_IMPORT unsigned short _ctype[];
-# endif
-# ifdef __MSVCRT__
- __MINGW_IMPORT unsigned short* _pctype;
-# else /* CRTDLL */
- __MINGW_IMPORT unsigned short* _pctype_dll;
-# define _pctype _pctype_dll
-# endif
-
-#else /* ! __DECLSPEC_SUPPORTED */
-# if __MSVCRT_VERSION__ <= 0x0700
- extern unsigned short** _imp___ctype;
-# define _ctype (*_imp___ctype)
-# endif
-# ifdef __MSVCRT__
- extern unsigned short** _imp___pctype;
-# define _pctype (*_imp___pctype)
-# else /* CRTDLL */
- extern unsigned short** _imp___pctype_dll;
-# define _pctype (*_imp___pctype_dll)
-# endif /* CRTDLL */
-#endif /* __DECLSPEC_SUPPORTED */
-
-
-#if !(defined (__NO_INLINE__) || defined(__NO_CTYPE_INLINES) \
- || defined(__WCTYPE_INLINES_DEFINED))
-#define __WCTYPE_INLINES_DEFINED
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswascii(wint_t wc) {return ((wc & ~0x7F) ==0);}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswlower(wint_t wc) {return (iswctype(wc,_LOWER));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswspace(wint_t wc) {return (iswctype(wc,_SPACE));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswupper(wint_t wc) {return (iswctype(wc,_UPPER));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));}
-__CRT_INLINE int __cdecl __MINGW_NOTHROW isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);}
-
-#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \
- || !defined __STRICT_ANSI__ || defined __cplusplus
-__CRT_INLINE int __cdecl __MINGW_NOTHROW iswblank (wint_t wc)
- {return (iswctype(wc, _BLANK) || wc == L'\t');}
-#endif
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswalpha (wint_t wc)
+{ return (iswctype (wc, _ALPHA )); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswascii (wint_t wc)
+{ return ((wc & ~0x7F) == 0); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswcntrl (wint_t wc)
+{ return (iswctype (wc, _CONTROL)); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswdigit (wint_t wc)
+{ return (iswctype (wc, _DIGIT)); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswgraph (wint_t wc)
+{ return (iswctype (wc, _PUNCT | _ALPHA | _DIGIT)); }
-#endif /* !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) */
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswlower (wint_t wc)
+{ return (iswctype (wc, _LOWER)); }
-typedef wchar_t wctrans_t;
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswprint (wint_t wc)
+{ return (iswctype (wc, _BLANK | _PUNCT | _ALPHA | _DIGIT)); }
-/* These are resolved by libmingwex.a. Note, that they are also exported
- by the MS C++ runtime lib (msvcp60.dll). The msvcp60.dll implementations
- of wctrans and towctrans are not C99 compliant in that wctrans("tolower")
- returns 0, while std specifies that a non-zero value should be returned
- for a valid string descriptor. If you want the MS behaviour (and you have
- msvcp60.dll in your path) add -lmsvcp60 to your command line. */
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswpunct (wint_t wc)
+{ return (iswctype (wc, _PUNCT)); }
-wint_t __cdecl __MINGW_NOTHROW towctrans(wint_t, wctrans_t);
-wctrans_t __cdecl __MINGW_NOTHROW wctrans(const char*);
-wctype_t __cdecl __MINGW_NOTHROW wctype(const char*);
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswspace (wint_t wc)
+{ return (iswctype (wc, _SPACE)); }
-#ifdef __cplusplus
-}
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswupper (wint_t wc)
+{ return (iswctype (wc, _UPPER)); }
+
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswxdigit (wint_t wc)
+{ return (iswctype (wc, _HEX)); }
+
+#if __STDC_VERSION__>=199901L || !defined __STRICT_ANSI__ || defined __cplusplus
+__CRT_INLINE __cdecl __MINGW_NOTHROW int iswblank (wint_t wc)
+{ return (iswctype (wc, _BLANK) || wc == L'\t'); }
#endif
+#endif /* !__NO_CTYPE_INLINES */
+
+_END_C_DECLS
+
+#endif /* !(_WCTYPE_H && _CTYPE_H) */
-#endif /* Not RC_INVOKED */
+#ifdef _WCTYPE_H
+/* Although Microsoft make most of the content, which ISO-C and POSIX say
+ * should be in <wctype.h>, available through <ctype.h>, the declarations
+ * in this section are exclusive to <wctype.h>
+ */
+typedef wchar_t wctrans_t;
+
+_BEGIN_C_DECLS
+
+/* These are provided in libmingwex.a. Note, that they are also exported
+ * by the MS C++ runtime lib (MSVCP60.DLL). The MSVCP60.DLL implementations
+ * of wctrans and towctrans are not C99 compliant in that wctrans("tolower")
+ * returns 0, while C99 specifies that a non-zero value should be returned
+ * for a valid string descriptor. If you want the MS behaviour (and you
+ * have MSVCP60.DLL in your path) add -lmsvcp60 to your command line.
+ */
+__cdecl __MINGW_NOTHROW wint_t towctrans (wint_t, wctrans_t);
+__cdecl __MINGW_NOTHROW wctrans_t wctrans (const char*);
+__cdecl __MINGW_NOTHROW wctype_t wctype (const char*);
-#endif /* Not _WCTYPE_H_ */
+_END_C_DECLS
+#endif /* _WCTYPE_H */
+#endif /* ! RC_INVOKED */
+#endif /* !_WCTYPE_H: $RCSfile$: end of file */
https://sf.net/p/mingw/mingw-org-wsl/ci/cc84f5a03d271ea8a3d14f20aa0f26cfedce6929/
commit cc84f5a03d271ea8a3d14f20aa0f26cfedce6929
Author: Keith Marshall <kei...@us...>
Date: Mon Jul 4 12:00:52 2016 +0100
Do not pass MAKEFLAGS explicitly, when invoking recursive make.
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index da12f15..375577e 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,3 +1,10 @@
+2016-07-04 Keith Marshall <kei...@us...>
+
+ Do not pass MAKEFLAGS explicitly, when invoking recursive make.
+
+ * Makefile.in (install-strip, uninstall): Delete explicit $(MAKEFLAGS)
+ references from $(MAKE) command lines; make passes them implicitly.
+
2016-07-03 Keith Marshall <kei...@us...>
Rework tsearch and friends; resolve issues [#1512] and [#1576].
diff --git a/mingwrt/Makefile.in b/mingwrt/Makefile.in
index d5017f7..a6ad2b2 100644
--- a/mingwrt/Makefile.in
+++ b/mingwrt/Makefile.in
@@ -695,7 +695,7 @@ install-gcc: install-stage-1-only
install-strip: install-strip-mingwrt
install-strip-%:
- $(MAKE) --no-print-directory $(MAKEFLAGS) \
+ $(MAKE) --no-print-directory \
STRIP_DATA='cd ${libdir}; $(STRIP) --strip-unneeded $$1' \
STRIP_DLL='cd ${bindir}; $(STRIP) $$1' install-$*
@@ -812,7 +812,7 @@ uninstall-mingwrt-headers:
uninstall-mingwrt-dll \
uninstall-mingwrt-libdir-objects uninstall-mingwrt-libdir-libs: un%:
- $(MAKE) --no-print-directory $(MAKEFLAGS) mkinstalldirs= \
+ $(MAKE) --no-print-directory mkinstalldirs= \
INSTALL_DATA='cd $$2 && $(RM) $$1' $*
diff --git a/w32api/ChangeLog b/w32api/ChangeLog
index 3be6ffe..a88eb4c 100644
--- a/w32api/ChangeLog
+++ b/w32api/ChangeLog
@@ -1,3 +1,10 @@
+2016-07-04 Keith Marshall <kei...@us...>
+
+ Do not pass MAKEFLAGS explicitly, when invoking recursive make.
+
+ * Makefile.in (install-strip, uninstall): Delete explicit $(MAKEFLAGS)
+ references from $(MAKE) command lines; make passes them implicitly.
+
2016-06-04 Keith Marshall <kei...@us...>
Backport MemoryBarrier() implementation from 4.0-dev branch.
diff --git a/w32api/Makefile.in b/w32api/Makefile.in
index 56c4c73..5fc9e3a 100644
--- a/w32api/Makefile.in
+++ b/w32api/Makefile.in
@@ -276,7 +276,7 @@ install-w32api-libs: w32api-lib-reqs
$(if $(STRIP_LIBS),$(call STRIP_LIBS,$(filter-out w32api-lib-reqs,$^)))
install-strip-w32api-libs:
- $(MAKE) --no-print-directory $(MAKEFLAGS) \
+ $(MAKE) --no-print-directory \
STRIP_LIBS='cd ${libdir}; $(STRIP) --strip-unneeded $$1' \
install-w32api-libs
@@ -294,7 +294,7 @@ uninstall-w32api-headers:
done
uninstall-w32api-libs: un%:
- $(MAKE) --no-print-directory $(MAKEFLAGS) mkinstalldirs= \
+ $(MAKE) --no-print-directory mkinstalldirs= \
INSTALL_DATA='cd $$2 && rm -f $$1' $*
# Distribution
-----------------------------------------------------------------------
Summary of changes:
.hgtags | 2 +
mingwrt/ChangeLog | 70 ++++++++
mingwrt/Makefile.in | 4 +-
mingwrt/configure.ac | 2 +-
mingwrt/include/ctype.h | 409 ++++++++++++++++++++++----------------------
mingwrt/include/glob.h | 8 +-
mingwrt/include/sys/stat.h | 16 ++-
mingwrt/include/wctype.h | 314 +++++++++++++++++++---------------
w32api/ChangeLog | 11 ++
w32api/Makefile.in | 4 +-
10 files changed, 490 insertions(+), 350 deletions(-)
hooks/post-receive
--
Repository: mingw-org-wsl
|
|
From: Cesar S. <no...@so...> - 2016-07-14 13:41:17
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "UNNAMED PROJECT".
The branch, master has been updated
via a6b29e7d72ba72a18b278640bfbc4a9ea4bdef79 (commit)
via 74075ea8638a64e5450bd33f3b9d28a151612a42 (commit)
via 4f63b40378d1a84bc1d6b940e203074209050794 (commit)
from 96f67347bc237ca689ad6f13e634d49f9de38cab (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/msys-runtime/ci/a6b29e7d72ba72a18b278640bfbc4a9ea4bdef79/
commit a6b29e7d72ba72a18b278640bfbc4a9ea4bdef79
Author: Cesar Strauss <ces...@gm...>
Date: Tue Feb 9 16:04:24 2016 +0000
Optimize execvp, considering we already know the lengths of the strings we want to concatenate.
diff --git a/newlib/ChangeLog.MSYS b/newlib/ChangeLog.MSYS
index 74c5fd2..9f83a86 100644
--- a/newlib/ChangeLog.MSYS
+++ b/newlib/ChangeLog.MSYS
@@ -1,3 +1,9 @@
+2016.02.09 Cesar Strauss <ces...@gm...>
+
+ * libc/posix/execvp.c (execvp): Since we already know the lengths of
+ the strings, replace strccpy and strcat by memcpy.
+ (strccpy): Remove, no longer needed.
+
2016.02.08 Cesar Strauss <ces...@gm...>
* libc/posix/execvp.c (execvp): Check pathname size before copying it
diff --git a/newlib/libc/posix/execvp.c b/newlib/libc/posix/execvp.c
index 011aad6..030c8bc 100644
--- a/newlib/libc/posix/execvp.c
+++ b/newlib/libc/posix/execvp.c
@@ -18,26 +18,6 @@ static char path_delim;
#define PATH_DELIM ':'
#endif
-/*
- * Copy string, until c or <nul> is encountered.
- * NUL-terminate the destination string (s1).
- */
-
-static char *
-_DEFUN (strccpy, (s1, s2, c),
- char *s1 _AND
- char *s2 _AND
- char c)
-{
- char *dest = s1;
-
- while (*s2 && *s2 != c)
- *s1++ = *s2++;
- *s1 = 0;
-
- return dest;
-}
-
int
_DEFUN (execvp, (file, argv),
_CONST char *file _AND
@@ -83,22 +63,24 @@ _DEFUN (execvp, (file, argv),
else
path_len = strlen (path);
/* Check if the combined pathname fits into the buffer */
- if (path_len + file_len + 2 > MAXNAMLEN) {
+ if (path_len + file_len + 2 > MAXNAMLEN)
errno = ENAMETOOLONG;
- path += path_len;
- if (*path == PATH_DELIM)
- path++; /* skip over delim */
- continue;
+ else {
+ /* Combine the path element with the file name */
+ char *end_of_string = buf;
+ memcpy (end_of_string, path, path_len);
+ end_of_string += path_len;
+ /* An empty entry means the current directory. */
+ if (path_len != 0 && path[path_len - 1] != '/')
+ *end_of_string++ = '/';
+ memcpy (end_of_string, file, file_len);
+ end_of_string += file_len;
+ *end_of_string = 0;
+ /* Try executing the resulting pathname */
+ if (execv (buf, argv) == -1 && errno != ENOENT)
+ return -1;
}
- strccpy (buf, path, PATH_DELIM);
- /* An empty entry means the current directory. */
- if (*buf != 0 && buf[strlen(buf) - 1] != '/')
- strcat (buf, "/");
- strcat (buf, file);
- if (execv (buf, argv) == -1 && errno != ENOENT)
- return -1;
- while (*path && *path != PATH_DELIM)
- path++;
+ path += path_len;
if (*path == PATH_DELIM)
path++; /* skip over delim */
}
https://sf.net/p/mingw/msys-runtime/ci/74075ea8638a64e5450bd33f3b9d28a151612a42/
commit 74075ea8638a64e5450bd33f3b9d28a151612a42
Author: Cesar Strauss <ces...@gm...>
Date: Mon Feb 8 17:52:50 2016 +0000
Fix execvp to check pathname size before writing it into the buffer.
diff --git a/newlib/ChangeLog.MSYS b/newlib/ChangeLog.MSYS
index 14b13fa..74c5fd2 100644
--- a/newlib/ChangeLog.MSYS
+++ b/newlib/ChangeLog.MSYS
@@ -1,3 +1,8 @@
+2016.02.08 Cesar Strauss <ces...@gm...>
+
+ * libc/posix/execvp.c (execvp): Check pathname size before copying it
+ into the buffer.
+
2010.03.29 Charles Wilson <mi...@cw...>
* libc/include/sys/unistd.h: Declare fchdir and getdomainname.
diff --git a/newlib/libc/posix/execvp.c b/newlib/libc/posix/execvp.c
index ea87bb6..011aad6 100644
--- a/newlib/libc/posix/execvp.c
+++ b/newlib/libc/posix/execvp.c
@@ -45,6 +45,7 @@ _DEFUN (execvp, (file, argv),
{
char *path = getenv ("PATH");
char buf[MAXNAMLEN];
+ size_t file_len;
/* If $PATH doesn't exist, just pass FILE on unchanged. */
if (!path)
@@ -71,8 +72,24 @@ _DEFUN (execvp, (file, argv),
path_delim = cygwin_posix_path_list_p (path) ? ':' : ';';
#endif
+ file_len = strlen (file);
while (*path)
{
+ /* Find the length of the path element */
+ char *path_ptr = strchr (path, PATH_DELIM);
+ size_t path_len;
+ if (path_ptr)
+ path_len = path_ptr - path;
+ else
+ path_len = strlen (path);
+ /* Check if the combined pathname fits into the buffer */
+ if (path_len + file_len + 2 > MAXNAMLEN) {
+ errno = ENAMETOOLONG;
+ path += path_len;
+ if (*path == PATH_DELIM)
+ path++; /* skip over delim */
+ continue;
+ }
strccpy (buf, path, PATH_DELIM);
/* An empty entry means the current directory. */
if (*buf != 0 && buf[strlen(buf) - 1] != '/')
https://sf.net/p/mingw/msys-runtime/ci/4f63b40378d1a84bc1d6b940e203074209050794/
commit 4f63b40378d1a84bc1d6b940e203074209050794
Author: Cesar Strauss <ces...@gm...>
Date: Sun Jul 13 18:01:38 2014 +0000
Increment version to 1.0.19.
diff --git a/winsup/cygwin/ChangeLog.MSYS b/winsup/cygwin/ChangeLog.MSYS
index fc04e27..2cd8cc1 100644
--- a/winsup/cygwin/ChangeLog.MSYS
+++ b/winsup/cygwin/ChangeLog.MSYS
@@ -1,3 +1,7 @@
+2014.07.13 Cesar Strauss <ces...@gm...>
+
+ * include/cygwin/version.h: Increment version to 1.0.19.
+
2014.06.14 Cesar Strauss <ces...@gm...>
Import a Cygwin fix for the incorrect use of a pipe capability flag.
diff --git a/winsup/cygwin/include/cygwin/version.h b/winsup/cygwin/include/cygwin/version.h
index a0a2b84..0bcc86b 100644
--- a/winsup/cygwin/include/cygwin/version.h
+++ b/winsup/cygwin/include/cygwin/version.h
@@ -42,12 +42,12 @@ details. */
changes to the DLL and is mainly informative in nature. */
/* The current cygwin version is 1.3.3 */
- /* The current msys version is 1.0.18 */
+ /* The current msys version is 1.0.19 */
#define CYGWIN_VERSION_DLL_MAJOR 1000
-#define CYGWIN_VERSION_DLL_MINOR 18
+#define CYGWIN_VERSION_DLL_MINOR 19
#define DLL_VERSION_MAJOR 1000
-#define DLL_VERSION_MINOR 18
+#define DLL_VERSION_MINOR 19
/* Major numbers before CYGWIN_VERSION_DLL_EPOCH are
incompatible. */
-----------------------------------------------------------------------
Summary of changes:
newlib/ChangeLog.MSYS | 11 ++++++
newlib/libc/posix/execvp.c | 57 +++++++++++++++----------------
winsup/cygwin/ChangeLog.MSYS | 4 ++
winsup/cygwin/include/cygwin/version.h | 6 ++--
4 files changed, 46 insertions(+), 32 deletions(-)
hooks/post-receive
--
UNNAMED PROJECT
|
|
From: Keith M. <no...@so...> - 2016-07-03 19:25:35
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Repository: mingw-org-wsl".
The branch, legacy has been updated
via 8b688df2fd6c40d8287e8f84024546f8fff9f64a (commit)
via fc36f6df4ede289014df0c328a28a2621fea3457 (commit)
from 47d501fda777efe7fa8520aeac0e0da347ae20b0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sf.net/p/mingw/mingw-org-wsl/ci/8b688df2fd6c40d8287e8f84024546f8fff9f64a/
commit 8b688df2fd6c40d8287e8f84024546f8fff9f64a
Author: Keith Marshall <kei...@us...>
Date: Sun Jul 3 20:23:28 2016 +0100
Rework tsearch and friends; resolve issues [#1512] and [#1576].
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index 77484d2..da12f15 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,3 +1,40 @@
+2016-07-03 Keith Marshall <kei...@us...>
+
+ Rework tsearch and friends; resolve issues [#1512] and [#1576].
+
+ * include/search.h: Assert copyright; tidy layout.
+ (_SEARCH_H_): Rename this multiple inclusion guard macro...
+ (_SEARCH_H): ...to conform to this preferred standard convention.
+ (__search_comparator): New function prototype typedef; it provides a
+ convenient shorthand notation for argument declarations in functions
+ which require a comparator function pointer; use it where appropriate.
+ (tsearch, tfind, tdelete) [__MINGW_ATTRIB_NONNULL]: Apply to arguments
+ #2 and #3; was previously incorrectly applied to arguments #1 and #3.
+ (twalk) [__MINGW_ATTRIB_NONNULL]: Apply to both arguments #1 and #2.
+ [_SEARCH_PRIVATE] (__MINGW_ATTRIB_NONNULL): Suppress its effect, to
+ ensure that GCC does not optimize away checks within implementation.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use these.
+
+ * mingwex/tdelete.c: Tidy layout.
+ (tdelete): Reimplement it as a thin wrapper around...
+ (__tdelete): ...this; it encapsulates the original implementation as a
+ __CRT_ALIAS (inline) function, to simplify void ** --> node_t ** casts.
+ Remove unnecessary non-null assertions for arguments #1 and #3; prefer
+ to validate arguments #2 and #3 internally, and simply return NULL if
+ necessary; hence, do not include <assert.h>
+
+ * mingwex/tfind.c: Tidy layout.
+ (tfind): Similarly reimplement it as a thin wrapper around...
+ (__tfind): ...this __CRT_ALIAS (inline) encapsulation of the original.
+ Add non-null validation for argument #3; do not include <assert.h>
+
+ * mingwex/tsearch.c: Tidy layout.
+ (tsearch): Once again, reimplement it as a thin wrapper around...
+ (__tsearch): ...this __CRT_ALIAS variant. Add non-null validation for
+ argument #3; do not include <assert.h>
+
+ * mingwex/twalk.c: Tidy layout; do not include <assert.h>
+
2016-06-28 Keith Marshall <kei...@us...>
Rework __try1/__except1 to resolve issue [#1328].
diff --git a/mingwrt/include/search.h b/mingwrt/include/search.h
index ec14e95..ce93ca7 100644
--- a/mingwrt/include/search.h
+++ b/mingwrt/include/search.h
@@ -3,104 +3,143 @@
*
* Functions for searching and sorting.
*
- * This file is part of the Mingw32 package.
+ * $Id$
*
- * Contributors:
- * Created by Danny Smith <dan...@us...>
+ * Written by Danny Smith <dan...@us...>
+ * Copyright (C) 2003, 2004, 2007, 2016, MinGW.org Project.
*
- * THIS SOFTWARE IS NOT COPYRIGHTED
*
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
+ * 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:
*
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * The above copyright notice, this permission notice, and the following
+ * disclaimer 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 OF OR OTHER
+ * DEALINGS IN THE SOFTWARE.
*
*/
+#ifndef _SEARCH_H
+#pragma GCC system_header
+#define _SEARCH_H
-#ifndef _SEARCH_H_
-#define _SEARCH_H_
-
-/* All the headers include this file. */
+/* All MinGW headers must include <_mingw.h>
+ */
#include <_mingw.h>
#ifndef RC_INVOKED
-#ifdef __cplusplus
-extern "C" {
-#endif
+_BEGIN_C_DECLS
-#ifndef _SIZE_T_DEFINED
-typedef unsigned int size_t;
-#define _SIZE_T_DEFINED
-#endif
+/* POSIX specifies that <search.h> must define size_t, as it
+ * is defined in <sys/types.h>; get it from <stddef.h>, just as
+ * <sys/types.h> does.
+ */
+#define __need_size_t
+#include <stddef.h>
+
+/* All search functions require a user-specified comparator
+ * function, to be passed as an argument; this typedef is a
+ * convenient shorthand for its generic prototype.
+ */
+typedef int (*__search_comparator)(const void *, const void *);
-/* bsearch and qsort are also declared in stdlib.h */
-_CRTIMP void* __cdecl bsearch (const void*, const void*, size_t, size_t,
- int (*)(const void*, const void*));
-_CRTIMP void __cdecl qsort (void*, size_t, size_t,
- int (*)(const void*, const void*));
+/* POSIX specifies that bsearch() and qsort() are to be declared in
+ * <stdlib.h>, and NOT here; they ARE duplicated here, for Microsoft
+ * compatibility only.
+ */
+_CRTIMP __cdecl void *bsearch
+(const void *, const void *, size_t, size_t, __search_comparator );
-_CRTIMP void* __cdecl _lfind (const void*, const void*, unsigned int*,
- unsigned int, int (*)(const void*, const void*));
-_CRTIMP void* __cdecl _lsearch (const void*, void*, unsigned int*, unsigned int,
- int (*)(const void*, const void*));
-/*
-Documentation for these POSIX definitions and prototypes can be found in
-The Open Group Base Specifications Issue 6
-IEEE Std 1003.1, 2004 Edition.
-eg: http://www.opengroup.org/onlinepubs/009695399/functions/twalk.html
-*/
+_CRTIMP __cdecl void qsort (void *, size_t, size_t, __search_comparator );
+/* This pair of functions are Microsoft specific; see below for their
+ * POSIX counterparts, (corresponding to Microsoft's old names).
+ */
+_CRTIMP __cdecl void *_lfind
+(const void *, const void *, unsigned int *, unsigned int, __search_comparator );
-typedef struct entry {
- char *key;
- void *data;
+_CRTIMP __cdecl void *_lsearch
+(const void *, void *, unsigned int *, unsigned int, __search_comparator );
+
+#ifdef _POSIX_C_SOURCE
+/* Documentation for the following POSIX definitions and prototypes
+ * may be found in the Open Group Base Specifications Issue 7, (which
+ * corresponds to IEEE Std 1003.1, 2008 Edition); see:
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/search.h.html
+ */
+typedef
+struct entry
+{ char *key;
+ void *data;
} ENTRY;
-typedef enum {
- FIND,
- ENTER
-} ACTION;
+typedef
+enum { FIND, ENTER } ACTION;
-typedef enum {
- preorder,
- postorder,
- endorder,
- leaf
-} VISIT;
+typedef
+enum { preorder, postorder, endorder, leaf } VISIT;
#ifdef _SEARCH_PRIVATE
-typedef struct node {
- char *key;
- struct node *llink, *rlink;
+/* For private use within the respective tree function implementations,
+ * we define a structured representation of a tree node.
+ *
+ * FIXME: this really doesn't belong here! Users should NEVER enable
+ * this feature test; they should not be given this opportunity.
+ */
+typedef
+struct node
+{ const void *key;
+ struct node *llink, *rlink;
} node_t;
-#endif
-void * __cdecl tdelete (const void * __restrict__, void ** __restrict__,
- int (*)(const void *, const void *))
- __MINGW_ATTRIB_NONNULL (1) __MINGW_ATTRIB_NONNULL (3);
-void * __cdecl tfind (const void *, void * const *,
- int (*)(const void *, const void *))
- __MINGW_ATTRIB_NONNULL (1) __MINGW_ATTRIB_NONNULL (3);
-void * __cdecl tsearch (const void *, void **,
- int (*)(const void *, const void *))
- __MINGW_ATTRIB_NONNULL (1) __MINGW_ATTRIB_NONNULL (3);
-void __cdecl twalk (const void *, void (*)(const void *, VISIT, int));
-
-#ifndef _NO_OLDNAMES
-_CRTIMP void* __cdecl lfind (const void*, const void*, unsigned int*,
- unsigned int, int (*)(const void*, const void*));
-_CRTIMP void* __cdecl lsearch (const void*, void*, unsigned int*, unsigned int,
- int (*)(const void*, const void*));
-#endif
+/* Suppress non-null argument annotations, when building the tsearch(),
+ * tfind(), tdelete(), and twalk() implementations, to ensure that GCC
+ * does not optimize away internal argument validation checks.
+ */
+#undef __MINGW_ATTRIB_NONNULL
+#define __MINGW_ATTRIB_NONNULL(ARG_INDEX) /* NOTHING */
+
+#endif /* _SEARCH_PRIVATE */
+
+__cdecl void *tdelete
+(const void *__restrict__, void **__restrict__, __search_comparator)
+__MINGW_ATTRIB_NONNULL(2) __MINGW_ATTRIB_NONNULL(3);
+
+__cdecl void *tfind (const void *, void *const *, __search_comparator)
+__MINGW_ATTRIB_NONNULL(2) __MINGW_ATTRIB_NONNULL(3);
+
+__cdecl void *tsearch (const void *, void **, __search_comparator)
+__MINGW_ATTRIB_NONNULL(2) __MINGW_ATTRIB_NONNULL(3);
+
+__cdecl void twalk (const void *, void (*)(const void *, VISIT, int))
+__MINGW_ATTRIB_NONNULL(1) __MINGW_ATTRIB_NONNULL(2);
+
+#endif /* _POSIX_C_SOURCE */
+
+#if !defined _NO_OLDNAMES || defined _POSIX_C_SOURCE
+/* Declared as deprecated, by Microsoft, but these are the POSIX names
+ * for the functions which Microsoft now call _lfind() and _lsearch().
+ */
+_CRTIMP __cdecl void *lfind
+(const void *, const void *, unsigned int *, unsigned int, __search_comparator);
-#ifdef __cplusplus
-}
+_CRTIMP __cdecl void *lsearch
+(const void *, void *, unsigned int *, unsigned int, __search_comparator);
#endif
-#endif /* RC_INVOKED */
+_END_C_DECLS
-#endif /* _SEARCH_H_ */
+#endif /* ! RC_INVOKED */
+#endif /* !_SEARCH_H: $RCSfile$: end of file */
diff --git a/mingwrt/mingwex/tdelete.c b/mingwrt/mingwex/tdelete.c
index 4de3897..a4d0f92 100644
--- a/mingwrt/mingwex/tdelete.c
+++ b/mingwrt/mingwex/tdelete.c
@@ -1,65 +1,64 @@
-/* $NetBSD: tdelete.c,v 1.3 1999/09/20 04:39:43 lukem Exp $ */
-
-/*
- * Tree search generalized from Knuth (6.2.2) Algorithm T just like
- * the AT&T man page says.
+/* $NetBSD: tdelete.c,v 1.3 1999/09/20 04:39:43 lukem Exp $
*
- * The node_t structure is for internal use only, lint doesn't grok it.
+ *
+ * Tree search generalized from Knuth (6.2.2) Algorithm T just like
+ * the AT&T man page says; tdelete based on Knuth's Algorithm D.
*
* Written by reading the System V Interface Definition, not the code.
*
* Totally public domain.
+ *
*/
-
-#include <assert.h>
#define _SEARCH_PRIVATE
#include <search.h>
#include <stdlib.h>
-#define _DIAGASSERT assert
-
-
-
-/* delete node with given key */
-void *
-tdelete(const void *vkey, /* key to be deleted */
- void **vrootp, /* address of the root of tree */
- int (*compar)(const void *, const void *))
+__CRT_ALIAS void *__tdelete
+(const void *key, node_t **rootp, int (*compar)(const void *, const void *))
{
- node_t **rootp = (node_t **)vrootp;
- node_t *p, *q, *r;
- int cmp;
+ /* Delete node with specified "key", from tree referred to by "rootp".
+ *
+ * NOTE: node_t is defined as a structured data type, for internal use
+ * when _SEARCH_PRIVATE is enabled; for public consumption, it becomes
+ * an alias for "void", (assuming _SEARCH_PRIVATE is NOT enabled).
+ */
+ int cmp;
+ node_t *p, *q, *r;
- _DIAGASSERT(vkey != NULL);
- _DIAGASSERT(compar != NULL);
+ if( (rootp == NULL) || ((p = *rootp) == NULL) || (compar == NULL) )
+ return NULL;
- if (rootp == NULL || (p = *rootp) == NULL)
- return NULL;
+ while( (cmp = (*compar)(key, (*rootp)->key)) != 0 )
+ {
+ rootp = (cmp < 0)
+ ? &(p = *rootp)->llink /* follow llink branch */
+ : &(p = *rootp)->rlink; /* follow rlink branch */
- while ((cmp = (*compar)(vkey, (*rootp)->key)) != 0) {
- p = *rootp;
- rootp = (cmp < 0) ?
- &(*rootp)->llink : /* follow llink branch */
- &(*rootp)->rlink; /* follow rlink branch */
- if (*rootp == NULL)
- return NULL; /* key not found */
- }
- r = (*rootp)->rlink; /* D1: */
- if ((q = (*rootp)->llink) == NULL) /* Left NULL? */
- q = r;
- else if (r != NULL) { /* Right link is NULL? */
- if (r->llink == NULL) { /* D2: Find successor */
- r->llink = q;
- q = r;
- } else { /* D3: Find NULL link */
- for (q = r->llink; q->llink != NULL; q = r->llink)
- r = q;
- r->llink = q->rlink;
- q->llink = (*rootp)->llink;
- q->rlink = (*rootp)->rlink;
- }
- }
- free(*rootp); /* D4: Free node */
- *rootp = q; /* link parent to new node */
- return p;
+ if (*rootp == NULL)
+ return NULL; /* key not found */
+ }
+ r = (*rootp)->rlink; /* D1: */
+ if( (q = (*rootp)->llink) == NULL ) /* Left NULL? */
+ q = r;
+ else if( r != NULL ) /* Right link is NULL? */
+ { if( r->llink == NULL ) /* D2: Find successor */
+ { r->llink = q;
+ q = r;
+ }
+ else /* D3: Find NULL link */
+ {
+ for( q = r->llink; q->llink != NULL; q = r->llink )
+ r = q;
+ r->llink = q->rlink;
+ q->llink = (*rootp)->llink;
+ q->rlink = (*rootp)->rlink;
+ }
+ }
+ free(*rootp); /* D4: Free node */
+ *rootp = q; /* link parent to new node */
+ return p;
}
+
+void *tdelete
+(const void *key, void **rootp, int (*compar)(const void *, const void *))
+{ return __tdelete (key, (node_t **)(rootp), compar); }
diff --git a/mingwrt/mingwex/tfind.c b/mingwrt/mingwex/tfind.c
index e8ffe65..fa33d86 100644
--- a/mingwrt/mingwex/tfind.c
+++ b/mingwrt/mingwex/tfind.c
@@ -1,41 +1,45 @@
-/* $NetBSD: tfind.c,v 1.3.18.2 2005/03/23 11:12:21 tron Exp $ */
-
-/*
+/* $NetBSD: tfind.c,v 1.3.18.2 2005/03/23 11:12:21 tron Exp $
+ *
+ *
* Tree search generalized from Knuth (6.2.2) Algorithm T just like
* the AT&T man page says.
*
- * The node_t structure is for internal use only, lint doesn't grok it.
- *
* Written by reading the System V Interface Definition, not the code.
*
* Totally public domain.
+ *
*/
-
-#include <assert.h>
#define _SEARCH_PRIVATE
#include <stdlib.h>
#include <search.h>
-
-/* find a node, or return 0 */
-void *
-tfind(const void *vkey,
- void * const *vrootp,
- int (*compar) (const void *, const void *))
+__CRT_ALIAS void *__tfind
+(const void *key, node_t *const *rootp, int (*compar)(const void *, const void *))
{
- node_t * const *rootp = (node_t * const*)vrootp;
+ /* Find node with specified "key", within tree referred to by "rootp";
+ * return NULL if not found, (or if either "rootp" or "compar" is not
+ * a valid pointer).
+ *
+ * NOTE: node_t is defined as a structured data type, for internal use
+ * when _SEARCH_PRIVATE is enabled; for public consumption, it becomes
+ * an alias for "void", (assuming _SEARCH_PRIVATE is NOT enabled).
+ */
+ if( (rootp == NULL) || (compar == NULL) )
+ return NULL;
- if (rootp == NULL)
- return NULL;
+ while (*rootp != NULL) /* Knuth's T1: */
+ {
+ int cmp; /* T2: */
+ if( (cmp = (*compar)(key, (*rootp)->key)) == 0 )
+ return *rootp; /* key found */
- while (*rootp != NULL) { /* T1: */
- int r;
-
- if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */
- return *rootp; /* key found */
- rootp = (r < 0) ?
- &(*rootp)->llink : /* T3: follow left branch */
- &(*rootp)->rlink; /* T4: follow right branch */
- }
- return NULL;
+ rootp = (cmp < 0)
+ ? &(*rootp)->llink /* T3: follow left branch */
+ : &(*rootp)->rlink; /* T4: follow right branch */
+ }
+ return NULL; /* key not found */
}
+
+void *tfind
+(const void *key, void *const *rootp, int (*compar)(const void *, const void *))
+{ return __tfind (key, (node_t *const *)(rootp), compar); }
diff --git a/mingwrt/mingwex/tsearch.c b/mingwrt/mingwex/tsearch.c
index a0aa0eb..9cbba49 100644
--- a/mingwrt/mingwex/tsearch.c
+++ b/mingwrt/mingwex/tsearch.c
@@ -1,51 +1,57 @@
-/* $NetBSD: tsearch.c,v 1.4 1999/09/20 04:39:43 lukem Exp $ */
-
-/*
+/* $NetBSD: tsearch.c,v 1.4 1999/09/20 04:39:43 lukem Exp $
+ *
+ *
* Tree search generalized from Knuth (6.2.2) Algorithm T just like
* the AT&T man page says.
*
- * The node_t structure is for internal use only, lint doesn't grok it.
- *
* Written by reading the System V Interface Definition, not the code.
*
* Totally public domain.
+ *
*/
-
-#include <assert.h>
#define _SEARCH_PRIVATE
#include <search.h>
#include <stdlib.h>
-
-/* find or insert datum into search tree */
-void *
-tsearch(const void * __restrict__ vkey, /* key to be located */
- void ** __restrict__ vrootp, /* address of tree root */
- int (*compar) (const void *, const void *))
+__CRT_ALIAS void *__tsearch
+(const void *key, node_t **rootp, int (*compar)(const void *, const void *))
{
- node_t *q;
- node_t **rootp = (node_t **)vrootp;
-
- if (rootp == NULL)
- return NULL;
-
- while (*rootp != NULL) { /* Knuth's T1: */
- int r;
-
- if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */
- return *rootp; /* we found it! */
-
- rootp = (r < 0) ?
- &(*rootp)->llink : /* T3: follow left branch */
- &(*rootp)->rlink; /* T4: follow right branch */
- }
-
- q = malloc(sizeof(node_t)); /* T5: key not found */
- if (q != 0) { /* make new node */
- *rootp = q; /* link new node to old */
- /* LINTED const castaway ok */
- q->key = (void *)vkey; /* initialize new node */
- q->llink = q->rlink = NULL;
- }
- return q;
+ /* Find node identified by "key", within the tree referred to by "rootp",
+ * or insert such datum node, if not already present.
+ *
+ * NOTE: node_t is defined as a structured data type, for internal use
+ * when _SEARCH_PRIVATE is enabled; for public consumption, it becomes
+ * an alias for "void", (assuming _SEARCH_PRIVATE is NOT enabled).
+ */
+ node_t *q;
+
+ /* Cannot search from an invalid tree reference pointer, or without a
+ * valid comparator function reference.
+ */
+ if( (rootp == NULL) || (compar == NULL) )
+ return NULL;
+
+ while( *rootp != NULL ) /* Knuth's T1: */
+ {
+ int cmp; /* T2: */
+ if( (cmp = (*compar)(key, (*rootp)->key)) == 0 )
+ return *rootp; /* we found it! */
+
+ rootp = (cmp < 0)
+ ? &(*rootp)->llink /* T3: follow left branch */
+ : &(*rootp)->rlink; /* T4: follow right branch */
+ }
+
+ q = malloc( sizeof(node_t) ); /* T5: key not found */
+ if( q != NULL ) /* make new node */
+ {
+ *rootp = q; /* link new node to old */
+ q->key = key; /* initialize new node */
+ q->llink = q->rlink = NULL;
+ }
+ return q;
}
+
+void *tsearch
+(const void *key, void **rootp, int (*compar)(const void *, const void *))
+{ return __tsearch (key, (node_t **)(rootp), compar); }
diff --git a/mingwrt/mingwex/twalk.c b/mingwrt/mingwex/twalk.c
index aa7909c..0c681e5 100644
--- a/mingwrt/mingwex/twalk.c
+++ b/mingwrt/mingwex/twalk.c
@@ -1,48 +1,48 @@
-/* $NetBSD: twalk.c,v 1.2 1999/09/16 11:45:37 lukem Exp $ */
-
-/*
+/* $NetBSD: twalk.c,v 1.2 1999/09/16 11:45:37 lukem Exp $
+ *
+ *
* Tree search generalized from Knuth (6.2.2) Algorithm T just like
* the AT&T man page says.
*
- * The node_t structure is for internal use only, lint doesn't grok it.
- *
* Written by reading the System V Interface Definition, not the code.
*
* Totally public domain.
+ *
*/
-
-#include <assert.h>
#define _SEARCH_PRIVATE
#include <search.h>
#include <stdlib.h>
-static void trecurse (const node_t *, void (*action)(const void *, VISIT, int),
- int level) __MINGW_ATTRIB_NONNULL (1)
- __MINGW_ATTRIB_NONNULL (2);
-/* Walk the nodes of a tree */
-static void
-trecurse( const node_t *root, /* Root of the tree to be walked */
- void (*action)(const void *, VISIT, int),
- int level)
+static __MINGW_ATTRIB_NONNULL(1) __MINGW_ATTRIB_NONNULL(2)
+void trecurse (const node_t *, void (*)(const void *, VISIT, int), int);
+
+static void trecurse
+( const node_t *root, void (*action)(const void *, VISIT, int), int level)
{
- if (root->llink == NULL && root->rlink == NULL)
- (*action)(root, leaf, level);
- else {
- (*action)(root, preorder, level);
- if (root->llink != NULL)
- trecurse(root->llink, action, level + 1);
- (*action)(root, postorder, level);
- if (root->rlink != NULL)
- trecurse(root->rlink, action, level + 1);
- (*action)(root, endorder, level);
- }
+ /* Recursively walk the nodes of a tree, performing the specified
+ * action as each node is traversed, and as appropriate for each
+ * phase of traversal.
+ */
+ if( (root->llink == NULL) && (root->rlink == NULL) )
+ (*action) (root, leaf, level);
+
+ else
+ { (*action) (root, preorder, level);
+ if( root->llink != NULL )
+ trecurse (root->llink, action, level + 1);
+ (*action) (root, postorder, level);
+ if( root->rlink != NULL)
+ trecurse (root->rlink, action, level + 1);
+ (*action) (root, endorder, level);
+ }
}
-/* Walk the nodes of a tree */
-void
-twalk( const void *vroot, /* Root of the tree to be walked */
- void (*action) (const void *, VISIT, int))
+void twalk (const void *root, void (*action)(const void *, VISIT, int))
{
- if (vroot != NULL && action != NULL)
- trecurse(vroot, action, 0);
+ /* Walk the nodes of a tree, delegating to the local recursive
+ * helper function, to invoke the specified action on each node
+ * in turn, as appropriate in each phase of traversal.
+ */
+ if( (root != NULL) && (action != NULL) )
+ trecurse (root, action, 0);
}
https://sf.net/p/mingw/mingw-org-wsl/ci/fc36f6df4ede289014df0c328a28a2621fea3457/
commit fc36f6df4ede289014df0c328a28a2621fea3457
Author: Keith Marshall <kei...@us...>
Date: Tue Jun 28 14:50:38 2016 +0100
Rework __try1/__except1 to resolve issue [#1328].
diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog
index 7e2001b..77484d2 100644
--- a/mingwrt/ChangeLog
+++ b/mingwrt/ChangeLog
@@ -1,3 +1,22 @@
+2016-06-28 Keith Marshall <kei...@us...>
+
+ Rework __try1/__except1 to resolve issue [#1328].
+
+ * include/excpt.h: Assert copyright; tidy layout.
+ (_EXCPT_H_): Multiple inclusion guard macro renamed to...
+ (_EXCPT_H): ...this; update all references as appropriate.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use these.
+ (__typecast_alloca): New macro; define it, casting return type of...
+ (__builtin_alloca): ...this to a specified data type; use it in...
+ (__try1_setup, __except1_teardown): ...these new macros; define them
+ as parameterized templates, providing both -masm-att and -masm-intel
+ syntax implementations, with host specific word size and register
+ assignment parameter substitutions; use them to redefine...
+ (__try1, __except1): ...each of these, using __builtin_alloca to avoid
+ direct stack pushes when registering exception handlers; assign the
+ template parameters as appropriate to support implementation for...
+ [_WIN64, _WIN32]: ...either of these, as the host requires.
+
2016-06-17 Keith Marshall <kei...@us...>
Merge Cygwin CVS updates to legacy branch.
diff --git a/mingwrt/include/excpt.h b/mingwrt/include/excpt.h
index 7433dd0..df03176 100644
--- a/mingwrt/include/excpt.h
+++ b/mingwrt/include/excpt.h
@@ -1,115 +1,186 @@
/*
* excpt.h
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is a part of the mingw-runtime package.
- * No warranty is given; refer to the file DISCLAIMER within the package.
*
- * Support for operating system level structured exception handling.
+ * Experimental support for operating system level structured handling
+ * of exceptions.
*
- * NOTE: This is very preliminary stuff. I am also pretty sure it is
- * completely Intel specific.
+ * $Id$
+ *
+ * Written by Colin Peters <co...@bi...>
+ * Revised by Keith Marshall <kei...@us...>
+ * Copyright (C) 1997, 1999, 2001-2002, 2004, 2007, 2012, 2016,
+ * MinGW.org Project.
+ *
+ *
+ * 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, this permission notice, and the following
+ * disclaimer 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 OF OR OTHER
+ * DEALINGS IN THE SOFTWARE.
*
*/
+#ifndef _EXCPT_H
+#pragma GCC system_header
+#define _EXCPT_H
+
+/* FIXME: this utility macro, to allocate stack space for any aggregate
+ * data type, with an explicit type cast of a pointer to that data type,
+ * deserves a place in a more universally accessible header file. The
+ * type cast is not strictly necessary for C, (but is permitted); it is
+ * essential for C++.
+ */
+#define __typecast_alloca(type) (type *)(__builtin_alloca( sizeof(type) ))
-#ifndef _EXCPT_H_
-#define _EXCPT_H_
-
-/* All the headers include this file. */
+/* All MinGW CRT headers are required to include <_mingw.h>
+ */
#include <_mingw.h>
+/* Exception handler functions require definitions of _CONTEXT, and
+ * _EXCEPTION_RECORD structures, which are provided in <windef.h>
+ */
#include <windef.h>
-/*
- * NOTE: The constants structs and typedefs below should be defined in the
- * Win32 API headers.
+#ifndef _EXCPT_W32API_H
+/* FIXME: These constants, structs, and typedefs should be defined
+ * in the Win32 API headers; (we need to establish where -- perhaps
+ * this header itself should be redesignated as a W32API header).
*/
-#define EH_NONCONTINUABLE 0x01
-#define EH_UNWINDING 0x02
-#define EH_EXIT_UNWIND 0x04
-#define EH_STACK_INVALID 0x08
-#define EH_NESTED_CALL 0x10
-
-#ifndef RC_INVOKED
-
-typedef enum {
- ExceptionContinueExecution,
- ExceptionContinueSearch,
- ExceptionNestedException,
- ExceptionCollidedUnwind
+#define EH_NONCONTINUABLE 0x01
+#define EH_UNWINDING 0x02
+#define EH_EXIT_UNWIND 0x04
+#define EH_STACK_INVALID 0x08
+#define EH_NESTED_CALL 0x10
+
+#ifndef RC_INVOKED
+
+typedef enum
+{ ExceptionContinueExecution,
+ ExceptionContinueSearch,
+ ExceptionNestedException,
+ ExceptionCollidedUnwind
} EXCEPTION_DISPOSITION;
+#endif /* ! RC_INVOKED */
+#endif /* !_EXCPT_W2API_H */
-/*
- * End of stuff that should be in the Win32 API files.
- */
+#ifndef RC_INVOKED
+_BEGIN_C_DECLS
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The type of function that is expected as an exception handler to be
- * installed with __try1.
+/* The type of function that is expected as an exception handler,
+ * to be installed by the __try1(__handler) primitive.
*/
typedef EXCEPTION_DISPOSITION (*PEXCEPTION_HANDLER)
- (struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*);
+(struct _EXCEPTION_RECORD *, void *, struct _CONTEXT *, void *);
-/*
- * This is not entirely necessary, but it is the structure installed by
- * the __try1 primitive below.
- */
typedef struct _EXCEPTION_REGISTRATION
-{
- struct _EXCEPTION_REGISTRATION* prev;
- PEXCEPTION_HANDLER handler;
+{ /* Maps the structure of the exception handler registration
+ * block, as installed by the __try1(__handler) primitive.
+ */
+ struct _EXCEPTION_REGISTRATION *prev;
+ PEXCEPTION_HANDLER handler;
} EXCEPTION_REGISTRATION, *PEXCEPTION_REGISTRATION;
+/* Aliases which may be preferred, when referring to the
+ * EXCEPTION_REGISTRATION structure.
+ */
typedef EXCEPTION_REGISTRATION EXCEPTION_REGISTRATION_RECORD;
typedef PEXCEPTION_REGISTRATION PEXCEPTION_REGISTRATION_RECORD;
-/*
- * A macro which installs the supplied exception handler.
- * Push the pointer to the new handler onto the stack,
- * then push the pointer to the old registration structure (at fs:0)
- * onto the stack, then put a pointer to the new registration
- * structure (i.e. the current stack pointer) at fs:0.
+/* Deployment of exception handlers is facilitated by the pair
+ * of macros, __try1(_handler) and __except1.
+ *
+ * CAUTION: __try1(__handler) and __except1 must be deployed as
+ * a complementary pair, within the scope of the stack frame of
+ * a single function, with __try1(__handler) preceding the use
+ * of __except1. Failure to invoke __except1 before release of
+ * any stack frame, in which __try1(__handler) has been invoked,
+ * will invalidate the EXCEPTION_REGISTRATION_RECORD, which has
+ * been installed by __try1(_handler), at the head of the active
+ * exception handler chain; this will cause undefined behaviour,
+ * which is sure to go badly.
+ *
+ * To accommodate implementation differences between _WIN32 and
+ * _WIN64 hosts, the actual implementations of __try1(__handler)
+ * and __except1 are expressed in terms of a pair of lower level
+ * internal macros, namely:
+ *
+ * Macro: __try1_setup(__handler,__wsize,__ts)
+ *
+ * Helper for implementation of macro __try1(__handler); allocate
+ * a block of memory, within the stack frame of the calling function,
+ * which is then initialized as an EXCEPTION_REGISTRATION_RECORD, and
+ * linked to the head of the installed exception handler chain.
+ *
+ * Inputs:
+ * __handler pointer to an EXCEPTION_HANDLER function.
+ * __wsize the Intel host word size pointer description.
+ * __ts thread information segment register name.
*/
-#ifdef _WIN64
-# define __try1(pHandler) \
- __asm__ __volatile__ ("pushq %0;pushq %%gs:0;movq %%rsp,%%gs:0;" : : \
- "g" (pHandler));
-#else
-# define __try1(pHandler) \
- __asm__ __volatile__ ("pushl %0;pushl %%fs:0;movl %%esp,%%fs:0;" : : \
- "g" (pHandler));
-#endif
+#define __try1_setup(__handler,__wsize,__ts) \
+{ EXCEPTION_REGISTRATION *__hook; \
+ __hook = __typecast_alloca( EXCEPTION_REGISTRATION ); \
+ __hook->handler = __handler; \
+ __asm__ __volatile__ \
+ ( "mov{%z0}\t{%%|%0, "__wsize" }"__ts":{|[}0x0{, %0|]}\n\t" \
+ "mov{%z1}\t{%1, %%|"__wsize" }"__ts":{|[}0x0{|], %1}" \
+ :"=r"(__hook->prev):"r"(__hook):"memory" \
+ ); \
+}
-/*
- * A macro which (despite its name) *removes* an installed
- * exception handler. Should be used only in conjunction with the above
- * install routine __try1.
- * Move the pointer to the old reg. struct (at the current stack
- * position) to fs:0, replacing the pointer we installed above,
- * then add 8 to the stack pointer to get rid of the space we
- * used when we pushed on our new reg. struct above. Notice that
- * the stack must be in the exact state at this point that it was
- * after we did __try1 or this will smash things.
+/* Macro: __except1_teardown(__wsize,__ts)
+ *
+ * Helper which provides the implementation for the __except1
+ * complement to __try1(__handler) macro; it unlinks the first
+ * EXCEPTION_REGISTRATION_RECORD from the head of the exception
+ * handler chain. Arguments are as described for those of the
+ * same name, in the __try1_setup macro argument list.
+ */
+#define __except1_teardown(__wsize,__ts) \
+{ register EXCEPTION_REGISTRATION *__hook; \
+ __asm__ __volatile__ \
+ ( "mov{%z0}\t{%%|%0, "__wsize" }"__ts":{|[}0x0{, %0|]}\n\t" \
+ "mov{%z0}\t{(}%0{)}, {|"__wsize" [}%0{|]}\n\t" \
+ "mov{%z0}\t{%0, %%|"__wsize" }"__ts":{|[}0x0{|], %0}" \
+ :"+r"(__hook)::"memory" \
+ ); \
+}
+
+/* Specialization of the above primitives, creating __try1(__handler),
+ * and its complementary __except1 implementation, with the appropriate
+ * assignments of word size and TIB segment register, for each of...
*/
#ifdef _WIN64
-# define __except1 \
- __asm__ __volatile__ ("movq (%%rsp),%%rax;movq %%rax,%%gs:0;addq \
- $16,%%rsp;" : : : "%rax");
-#else
-# define __except1 \
- __asm__ __volatile__ ("movl (%%esp),%%eax;movl %%eax,%%fs:0;addl \
- $8,%%esp;" : : : "%eax");
-#endif
+/* ...64-bit windows, for which the word size for representation of
+ * pointers, in Intel-syntax code, is "QWORD PTR", and the gs segment
+ * is used for access to the thread information block...
+ */
+# define __try1(__handler) __try1_setup(__handler,"QWORD PTR","gs")
+# define __except1 __except1_teardown("QWORD PTR","gs")
-#ifdef __cplusplus
-}
+#else /* _WIN32 */
+/* ...while in 32-bit windows, the corresponding pointer word size
+ * is "DWORD PTR", and the the thread information block is located
+ * in the fs segment.
+ */
+# define __try1(__handler) __try1_setup(__handler,"DWORD PTR","fs")
+# define __except1 __except1_teardown("DWORD PTR","fs")
#endif
-#endif /* Not RC_INVOKED */
+_END_C_DECLS
-#endif /* _EXCPT_H_ not defined */
+#endif /* ! RC_INVOKED */
+#endif /* !_EXCPT_H: $RCSfile$: end of file */
-----------------------------------------------------------------------
Summary of changes:
mingwrt/ChangeLog | 56 +++++++++++
mingwrt/include/excpt.h | 233 +++++++++++++++++++++++++++++----------------
mingwrt/include/search.h | 187 ++++++++++++++++++++++--------------
mingwrt/mingwex/tdelete.c | 99 ++++++++++----------
mingwrt/mingwex/tfind.c | 56 ++++++-----
mingwrt/mingwex/tsearch.c | 82 +++++++++--------
mingwrt/mingwex/twalk.c | 64 ++++++------
7 files changed, 476 insertions(+), 301 deletions(-)
hooks/post-receive
--
Repository: mingw-org-wsl
|